You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

18 lines
711 KiB

function BigInteger(e,t,n){null!=e&&("number"==typeof e?this.fromNumber(e,t,n):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function nbi(){return new BigInteger(null)}function am1(e,t,n,i,a,o){for(;--o>=0;){var r=t*this[e++]+n[i]+a;a=Math.floor(r/67108864),n[i++]=67108863&r}return a}function am2(e,t,n,i,a,o){for(var r=32767&t,s=t>>15;--o>=0;){var c=32767&this[e],l=this[e++]>>15,u=s*c+l*r;c=r*c+((32767&u)<<15)+n[i]+(1073741823&a),a=(c>>>30)+(u>>>15)+s*l+(a>>>30),n[i++]=1073741823&c}return a}function am3(e,t,n,i,a,o){for(var r=16383&t,s=t>>14;--o>=0;){var c=16383&this[e],l=this[e++]>>14,u=s*c+l*r;c=r*c+((16383&u)<<14)+n[i]+a,a=(c>>28)+(u>>14)+s*l,n[i++]=268435455&c}return a}function int2char(e){return BI_RM.charAt(e)}function intAt(e,t){var n=BI_RC[e.charCodeAt(t)];return null==n?-1:n}function bnpCopyTo(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function bnpFromInt(e){this.t=1,this.s=0>e?-1:0,e>0?this[0]=e:-1>e?this[0]=e+this.DV:this.t=0}function nbv(e){var t=nbi();return t.fromInt(e),t}function bnpFromString(e,t,n){var i;if(16==t)i=4;else if(8==t)i=3;else if(256==t)i=8;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return void this.fromRadix(e,t);i=2}this.t=0,this.s=0;for(var a=e.length,o=!1,r=0;--a>=0;){var s=8==i?255&e[a]:intAt(e,a);0>s?"-"==e.charAt(a)&&(o=!0):(o=!1,0==r?this[this.t++]=s:r+i>this.DB?(this[this.t-1]|=(s&(1<<this.DB-r)-1)<<r,this[this.t++]=s>>this.DB-r):this[this.t-1]|=s<<r,r+=i,r>=this.DB&&(r-=this.DB))}8==i&&0!=(128&e[0])&&n&&(this.s=-1,r>0&&(this[this.t-1]|=(1<<this.DB-r)-1<<r)),this.clamp(),o&&BigInteger.ZERO.subTo(this,this)}function bnpClamp(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t}function bnToString(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var n,i=(1<<t)-1,a=!1,o="",r=this.t,s=this.DB-r*this.DB%t;if(r-->0)for(s<this.DB&&(n=this[r]>>s)>0&&(a=!0,o=int2char(n));r>=0;)t>s?(n=(this[r]&(1<<s)-1)<<t-s,n|=this[--r]>>(s+=this.DB-t)):(n=this[r]>>(s-=t)&i,0>=s&&(s+=this.DB,--r)),n>0&&(a=!0),a&&(o+=int2char(n));return a?o:"0"}function bnNegate(){var e=nbi();return BigInteger.ZERO.subTo(this,e),e}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0}function nbits(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function bnpDRShiftTo(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s}function bnpLShiftTo(e,t){var n,i=e%this.DB,a=this.DB-i,o=(1<<a)-1,r=Math.floor(e/this.DB),s=this.s<<i&this.DM;for(n=this.t-1;n>=0;--n)t[n+r+1]=this[n]>>a|s,s=(this[n]&o)<<i;for(n=r-1;n>=0;--n)t[n]=0;t[r]=s,t.t=this.t+r+1,t.s=this.s,t.clamp()}function bnpRShiftTo(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)return void(t.t=0);var i=e%this.DB,a=this.DB-i,o=(1<<i)-1;t[0]=this[n]>>i;for(var r=n+1;r<this.t;++r)t[r-n-1]|=(this[r]&o)<<a,t[r-n]=this[r]>>i;i>0&&(t[this.t-n-1]|=(this.s&o)<<a),t.t=this.t-n,t.clamp()}function bnpSubTo(e,t){for(var n=0,i=0,a=Math.min(e.t,this.t);a>n;)i+=this[n]-e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i-=e[n],t[n++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=0>i?-1:0,-1>i?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()}function bnpMultiplyTo(e,t){var n=this.abs(),i=e.abs(),a=n.t;for(t.t=a+i.t;--a>=0;)t[a]=0;for(a=0;a<i.t;++a)t[a+n.t]=n.am(0,i[a],t,a,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&BigInteger.ZERO.subTo(t,t)}function bnpSquareTo(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var i=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,i,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function bnpDivRemTo(e,t,n){var i=e.abs();if(!(i.t<=0)){var a=this.abs();if(a.t<i.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=nbi());var o=nbi(),r=this.s,s=e.s,c=this.DB-nbits(i[i.t-1]);c>0?(i.lShiftTo(c,o),a.lShiftTo(c,n)):(i.copyTo(o),a.copyTo(n));var l=o.t,u=o[l-1];if(0!=u){var d=u*(1<<this.F1)+(l>1?o[l-2]>>this.F2:0),p=this.FV/d,h=(1<<this.F1)/d,f=1<<this.F2,g=n.t,m=g-l,v=null==t?nbi():t;for(o.dlShiftTo(m,v),n.compareTo(v)>=0&&(n[n.t++]=1,n.subTo(v,n)),BigInteger.ONE.dlShiftTo(l,v),v.subTo(o,o);o.t<l;)o[o.t++]=0;for(;--m>=0;){var y=n[--g]==u?this.DM:Math.floor(n[g]*p+(n[g-1]+f)*h);if((n[g]+=o.am(0,y,n,m,0,l))<y)for(o.dlShiftTo(m,v),n.subTo(v,n);n[g]<--y;)n.subTo(v,n)}null!=t&&(n.drShiftTo(l,t),r!=s&&BigInteger.ZERO.subTo(t,t)),n.t=l,n.clamp(),c>0&&n.rShiftTo(c,n),0>r&&BigInteger.ZERO.subTo(n,n)}}}function bnMod(e){var t=nbi();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(BigInteger.ZERO)>0&&e.subTo(t,t),t}function Classic(e){this.m=e}function cConvert(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function cRevert(e){return e}function cReduce(e){e.divRemTo(this.m,null,e)}function cMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function cSqrTo(e,t){e.squareTo(t),this.reduce(t)}function bnpInvDigit(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Montgomery(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function montConvert(e){var t=nbi();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(BigInteger.ZERO)>0&&this.m.subTo(t,t),t}function montRevert(e){var t=nbi();return e.copyTo(t),this.reduce(t),t}function montReduce(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],i=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(n=t+this.m.t,e[n]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function montSqrTo(e,t){e.squareTo(t),this.reduce(t)}function montMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function bnpIsEven(){return 0==(this.t>0?1&this[0]:this.s)}function bnpExp(e,t){if(e>4294967295||1>e)return BigInteger.ONE;var n=nbi(),i=nbi(),a=t.convert(this),o=nbits(e)-1;for(a.copyTo(n);--o>=0;)if(t.sqrTo(n,i),(e&1<<o)>0)t.mulTo(i,a,n);else{var r=n;n=i,i=r}return t.revert(n)}function bnModPowInt(e,t){var n;return n=256>e||t.isEven()?new Classic(t):new Montgomery(t),this.exp(e,n)}function bnClone(){var e=nbi();return this.copyTo(e),e}function bnIntValue(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function bnByteValue(){return 0==this.t?this.s:this[0]<<24>>24}function bnShortValue(){return 0==this.t?this.s:this[0]<<16>>16}function bnpChunkSize(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function bnSigNum(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function bnpToRadix(e){if(null==e&&(e=10),0==this.signum()||2>e||e>36)return"0";var t=this.chunkSize(e),n=Math.pow(e,t),i=nbv(n),a=nbi(),o=nbi(),r="";for(this.divRemTo(i,a,o);a.signum()>0;)r=(n+o.intValue()).toString(e).substr(1)+r,a.divRemTo(i,a,o);return o.intValue().toString(e)+r}function bnpFromRadix(e,t){this.fromInt(0),null==t&&(t=10);for(var n=this.chunkSize(t),i=Math.pow(t,n),a=!1,o=0,r=0,s=0;s<e.length;++s){var c=intAt(e,s);0>c?"-"==e.charAt(s)&&0==this.signum()&&(a=!0):(r=t*r+c,++o>=n&&(this.dMultiply(i),this.dAddOffset(r,0),o=0,r=0))}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(r,0)),a&&BigInteger.ZERO.subTo(this,this)}function bnpFromNumber(e,t,n){if("number"==typeof t)if(2>e)this.fromInt(1);else for(this.fromNumber(e,n),this.testBit(e-1)||this.bitwiseTo(BigInteger.ONE.shiftLeft(e-1),op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(BigInteger.ONE.shiftLeft(e-1),this);else{var i=new Array,a=7&e;i.length=(e>>3)+1,t.nextBytes(i),a>0?i[0]&=(1<<a)-1:i[0]=0,this.fromString(i,256)}}function bnToByteArray(e){var t=this.t,n=new Array;n[0]=this.s;var i,a=this.DB-t*this.DB%8,o=0;if(t-->0)for(a<this.DB&&(i=this[t]>>a)!=(this.s&this.DM)>>a&&(n[o++]=i|this.s<<this.DB-a);t>=0;)8>a?(i=(this[t]&(1<<a)-1)<<8-a,i|=this[--t]>>(a+=this.DB-8)):(i=this[t]>>(a-=8)&255,0>=a&&(a+=this.DB,--t)),e&&0!=(128&i)&&(i|=-256),0==o&&(128&this.s)!=(128&i)&&++o,(o>0||i!=this.s)&&(n[o++]=i);return n}function bnEquals(e){return 0==this.compareTo(e)}function bnMin(e){return this.compareTo(e)<0?this:e}function bnMax(e){return this.compareTo(e)>0?this:e}function bnpBitwiseTo(e,t,n){var i,a,o=Math.min(e.t,this.t);for(i=0;o>i;++i)n[i]=t(this[i],e[i]);if(e.t<this.t){for(a=e.s&this.DM,i=o;i<this.t;++i)n[i]=t(this[i],a);n.t=this.t}else{for(a=this.s&this.DM,i=o;i<e.t;++i)n[i]=t(a,e[i]);n.t=e.t}n.s=t(this.s,e.s),n.clamp()}function op_and(e,t){return e&t}function bnAnd(e){var t=nbi();return this.bitwiseTo(e,op_and,t),t}function op_or(e,t){return e|t}function bnOr(e){var t=nbi();return this.bitwiseTo(e,op_or,t),t}function op_xor(e,t){return e^t}function bnXor(e){var t=nbi();return this.bitwiseTo(e,op_xor,t),t}function op_andnot(e,t){return e&~t}function bnAndNot(e){var t=nbi();return this.bitwiseTo(e,op_andnot,t),t}function bnNot(){for(var e=nbi(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e}function bnShiftLeft(e){var t=nbi();return 0>e?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function bnShiftRight(e){var t=nbi();return 0>e?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function lbit(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function bnGetLowestSetBit(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+lbit(this[e]);return this.s<0?this.t*this.DB:-1}function cbit(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function bnBitCount(){for(var e=0,t=this.s&this.DM,n=0;n<this.t;++n)e+=cbit(this[n]^t);return e}function bnTestBit(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)}function bnpChangeBit(e,t){var n=BigInteger.ONE.shiftLeft(e);return this.bitwiseTo(n,t,n),n}function bnSetBit(e){return this.changeBit(e,op_or)}function bnClearBit(e){return this.changeBit(e,op_andnot)}function bnFlipBit(e){return this.changeBit(e,op_xor)}function bnpAddTo(e,t){for(var n=0,i=0,a=Math.min(e.t,this.t);a>n;)i+=this[n]+e[n],t[n++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;n<this.t;)i+=this[n],t[n++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;n<e.t;)i+=e[n],t[n++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=0>i?-1:0,i>0?t[n++]=i:-1>i&&(t[n++]=this.DV+i),t.t=n,t.clamp()}function bnAdd(e){var t=nbi();return this.addTo(e,t),t}function bnSubtract(e){var t=nbi();return this.subTo(e,t),t}function bnMultiply(e){var t=nbi();return this.multiplyTo(e,t),t}function bnSquare(){var e=nbi();return this.squareTo(e),e}function bnDivide(e){var t=nbi();return this.divRemTo(e,t,null),t}function bnRemainder(e){var t=nbi();return this.divRemTo(e,null,t),t}function bnDivideAndRemainder(e){var t=nbi(),n=nbi();return this.divRemTo(e,t,n),new Array(t,n)}function bnpDMultiply(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}}function NullExp(){}function nNop(e){return e}function nMulTo(e,t,n){e.multiplyTo(t,n)}function nSqrTo(e,t){e.squareTo(t)}function bnPow(e){return this.exp(e,new NullExp)}function bnpMultiplyLowerTo(e,t,n){var i=Math.min(this.t+e.t,t);for(n.s=0,n.t=i;i>0;)n[--i]=0;var a;for(a=n.t-this.t;a>i;++i)n[i+this.t]=this.am(0,e[i],n,i,0,this.t);for(a=Math.min(e.t,t);a>i;++i)this.am(0,e[i],n,i,0,t-i);n.clamp()}function bnpMultiplyUpperTo(e,t,n){--t;var i=n.t=this.t+e.t-t;for(n.s=0;--i>=0;)n[i]=0;for(i=Math.max(t-this.t,0);i<e.t;++i)n[this.t+i-t]=this.am(t-i,e[i],n,0,0,this.t+i-t);n.clamp(),n.drShiftTo(1,n)}function Barrett(e){this.r2=nbi(),this.q3=nbi(),BigInteger.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function barrettConvert(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=nbi();return e.copyTo(t),this.reduce(t),t}function barrettRevert(e){return e}function barrettReduce(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function barrettSqrTo(e,t){e.squareTo(t),this.reduce(t)}function barrettMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function bnModPow(e,t){var n,i,a=e.bitLength(),o=nbv(1);if(0>=a)return o;n=18>a?1:48>a?3:144>a?4:768>a?5:6,i=8>a?new Classic(t):t.isEven()?new Barrett(t):new Montgomery(t);var r=new Array,s=3,c=n-1,l=(1<<n)-1;if(r[1]=i.convert(this),n>1){var u=nbi();for(i.sqrTo(r[1],u);l>=s;)r[s]=nbi(),i.mulTo(u,r[s-2],r[s]),s+=2}var d,p,h=e.t-1,f=!0,g=nbi();for(a=nbits(e[h])-1;h>=0;){for(a>=c?d=e[h]>>a-c&l:(d=(e[h]&(1<<a+1)-1)<<c-a,h>0&&(d|=e[h-1]>>this.DB+a-c)),s=n;0==(1&d);)d>>=1,--s;if((a-=s)<0&&(a+=this.DB,--h),f)r[d].copyTo(o),f=!1;else{for(;s>1;)i.sqrTo(o,g),i.sqrTo(g,o),s-=2;s>0?i.sqrTo(o,g):(p=o,o=g,g=p),i.mulTo(g,r[d],o)}for(;h>=0&&0==(e[h]&1<<a);)i.sqrTo(o,g),p=o,o=g,g=p,--a<0&&(a=this.DB-1,--h)}return i.revert(o)}function bnGCD(e){var t=this.s<0?this.negate():this.clone(),n=e.s<0?e.negate():e.clone();if(t.compareTo(n)<0){var i=t;t=n,n=i}var a=t.getLowestSetBit(),o=n.getLowestSetBit();if(0>o)return t;for(o>a&&(o=a),o>0&&(t.rShiftTo(o,t),n.rShiftTo(o,n));t.signum()>0;)(a=t.getLowestSetBit())>0&&t.rShiftTo(a,t),(a=n.getLowestSetBit())>0&&n.rShiftTo(a,n),t.compareTo(n)>=0?(t.subTo(n,t),t.rShiftTo(1,t)):(n.subTo(t,n),n.rShiftTo(1,n));return o>0&&n.lShiftTo(o,n),n}function bnpModInt(e){if(0>=e)return 0;var t=this.DV%e,n=this.s<0?e-1:0;if(this.t>0)if(0==t)n=this[0]%e;else for(var i=this.t-1;i>=0;--i)n=(t*n+this[i])%e;return n}function bnModInverse(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return BigInteger.ZERO;for(var n=e.clone(),i=this.clone(),a=nbv(1),o=nbv(0),r=nbv(0),s=nbv(1);0!=n.signum();){for(;n.isEven();)n.rShiftTo(1,n),t?(a.isEven()&&o.isEven()||(a.addTo(this,a),o.subTo(e,o)),a.rShiftTo(1,a)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;i.isEven();)i.rShiftTo(1,i),t?(r.isEven()&&s.isEven()||(r.addTo(this,r),s.subTo(e,s)),r.rShiftTo(1,r)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);n.compareTo(i)>=0?(n.subTo(i,n),t&&a.subTo(r,a),o.subTo(s,o)):(i.subTo(n,i),t&&r.subTo(a,r),s.subTo(o,s))}return 0!=i.compareTo(BigInteger.ONE)?BigInteger.ZERO:s.compareTo(e)>=0?s.subtract(e):s.signum()<0?(s.addTo(e,s),s.signum()<0?s.add(e):s):s}function bnIsProbablePrime(e){var t,n=this.abs();if(1==n.t&&n[0]<=lowprimes[lowprimes.length-1]){for(t=0;t<lowprimes.length;++t)if(n[0]==lowprimes[t])return!0;return!1}if(n.isEven())return!1;for(t=1;t<lowprimes.length;){for(var i=lowprimes[t],a=t+1;a<lowprimes.length&&lplim>i;)i*=lowprimes[a++];for(i=n.modInt(i);a>t;)if(i%lowprimes[t++]==0)return!1}return n.millerRabin(e)}function bnpMillerRabin(e){var t=this.subtract(BigInteger.ONE),n=t.getLowestSetBit();if(0>=n)return!1;var i=t.shiftRight(n);e=e+1>>1,e>lowprimes.length&&(e=lowprimes.length);for(var a=nbi(),o=0;e>o;++o){a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);var r=a.modPow(i,this);if(0!=r.compareTo(BigInteger.ONE)&&0!=r.compareTo(t)){for(var s=1;s++<n&&0!=r.compareTo(t);)if(r=r.modPowInt(2,this),0==r.compareTo(BigInteger.ONE))return!1;if(0!=r.compareTo(t))return!1}}return!0}function rng_seed_int(e){rng_pool[rng_pptr++]^=255&e,rng_pool[rng_pptr++]^=e>>8&255,rng_pool[rng_pptr++]^=e>>16&255,rng_pool[rng_pptr++]^=e>>24&255,rng_pptr>=rng_psize&&(rng_pptr-=rng_psize)}function rng_seed_time(){rng_seed_int((new Date).getTime())}function rng_get_byte(){if(null==rng_state){for(rng_seed_time(),rng_state=prng_newstate(),rng_state.init(rng_pool),rng_pptr=0;rng_pptr<rng_pool.length;++rng_pptr)rng_pool[rng_pptr]=0;rng_pptr=0}return rng_state.next()}function rng_get_bytes(e){var t;for(t=0;t<e.length;++t)e[t]=rng_get_byte()}function SecureRandom(){}function Arcfour(){this.i=0,this.j=0,this.S=new Array}function ARC4init(e){var t,n,i;for(t=0;256>t;++t)this.S[t]=t;for(n=0,t=0;256>t;++t)n=n+this.S[t]+e[t%e.length]&255,i=this.S[t],this.S[t]=this.S[n],this.S[n]=i;this.i=0,this.j=0}function ARC4next(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]}function prng_newstate(){return new Arcfour}function dT(){return"["+(((new Date).getTime()-_logTimer)/1e3).toFixed(3)+"]"}function checkClick(e,t){return 1==e.which&&(e.ctrlKey||e.metaKey)||2==e.which?!0:(t||e.preventDefault(),!1)}function checkDragEvent(e){if(!e||e.target&&("IMG"==e.target.tagName||"A"==e.target.tagName))return!1;if(!e.dataTransfer||!e.dataTransfer.types)return!0;for(var t=0;t<e.dataTransfer.types.length;t++)if("Files"==e.dataTransfer.types[t])return!0;return!1}function cancelEvent(e){return e=e||window.event,e&&(e=e.originalEvent||e),e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),!1}function onCtrlEnter(e,t){$(e).on("keydown",function(e){return 13==e.keyCode&&(e.ctrlKey||e.metaKey)?(t(),cancelEvent(e)):void 0})}function onContentLoaded(e){setTimeout(e,0)}function tsNow(e){var t=+new Date;return e?Math.floor(t/1e3):t}function safeReplaceObject(e,t){for(var n in e)t.hasOwnProperty(n)||"$"==n.charAt(0)||delete e[n];for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}function listMergeSorted(e,t){e=e||[],t=t||[];for(var n=angular.copy(e),i=e.length?e[e.length-1]:4294967295,a=0;a<t.length;a++)t[a]<i&&n.push(t[a]);return n}function listUniqSorted(e){e=e||[];for(var t=[],n=!1,i=0;i<e.length;i++)e[i]!==n&&t.push(e[i]),n=e[i];return t}function bigint(e){return new BigInteger(e.toString(16),16)}function bigStringInt(e){return new BigInteger(e,10)}function dHexDump(e){for(var t=[],n=0;n<e.length;n++)!n||n%2||t.push(n%16?n%4?" ":" ":"\n"),t.push((e[n]<16?"0":"")+e[n].toString(16));console.log(t.join(""))}function bytesToHex(e){e=e||[];for(var t=[],n=0;n<e.length;n++)t.push((e[n]<16?"0":"")+(e[n]||0).toString(16));return t.join("")}function bytesFromHex(e){var t,n=e.length,i=[];for(t=0;n>t;t+=2)i.push(parseInt(e.substr(t,2),16));return i}function bytesToBase64(e){for(var t,n="",i=e.length,a=0,o=0;i>o;o++)t=o%3,a|=e[o]<<(16>>>t&24),(2===t||i-o===1)&&(n+=String.fromCharCode(uint6ToBase64(a>>>18&63),uint6ToBase64(a>>>12&63),uint6ToBase64(a>>>6&63),uint6ToBase64(63&a)),a=0);return n.replace(/A(?=A$|$)/g,"=")}function uint6ToBase64(e){return 26>e?e+65:52>e?e+71:62>e?e-4:62===e?43:63===e?47:65}function bytesCmp(e,t){var n=e.length;if(n!=t.length)return!1;for(var i=0;n>i;i++)if(e[i]!=t[i])return!1;return!0}function bytesXor(e,t){for(var n=e.length,i=[],a=0;n>a;++a)i[a]=e[a]^t[a];return i}function bytesToWords(e){for(var t=e.length,n=[],i=0;t>i;i++)n[i>>>2]|=e[i]<<24-i%4*8;return new CryptoJS.lib.WordArray.init(n,t)}function bytesFromWords(e){for(var t=e.words,n=e.sigBytes,i=[],a=0;n>a;a++)i.push(t[a>>>2]>>>24-a%4*8&255);return i}function bytesFromBigInt(e,t){for(var n=e.toByteArray();!n[0]&&(!t||n.length>t);)n=n.slice(1);return n}function bytesFromLeemonBigInt(e){var t=bigInt2str(e,16);return bytesFromHex(t)}function bytesToArrayBuffer(e){return new Uint8Array(e).buffer}function bytesFromArrayBuffer(e){for(var t=e.byteLength,n=new Uint8Array(e),i=[],a=0;t>a;++a)i[a]=n[a];return i}function longToInts(e){var t=bigStringInt(e).divideAndRemainder(bigint(4294967296));return[t[0].intValue(),t[1].intValue()]}function longToBytes(e){return bytesFromWords({words:longToInts(e),sigBytes:8}).reverse()}function longFromInts(e,t){return bigint(e).shiftLeft(32).add(bigint(t)).toString(10)}function intToUint(e){return e=parseInt(e),0>e&&(e+=4294967296),e}function uintToInt(e){return e>2147483647&&(e-=4294967296),e}function sha1Hash(e){var t=sha1.hash(e,!0);return t}function rsaEncrypt(e,t){var n=255-t.length;if(n>0){var i=new Array(n);(new SecureRandom).nextBytes(i),t=t.concat(i)}var a=new BigInteger(e.modulus,16),o=new BigInteger(e.exponent,16),r=new BigInteger(t),s=r.modPowInt(o,a),c=bytesFromBigInt(s,256);return c}function aesEncrypt(e,t,n){var i=16-e.length%16;if(i>0&&16>i){var a=new Array(i);(new SecureRandom).nextBytes(a),e=e.concat(a)}var o=CryptoJS.AES.encrypt(bytesToWords(e),bytesToWords(t),{iv:bytesToWords(n),padding:CryptoJS.pad.NoPadding,mode:CryptoJS.mode.IGE}).ciphertext,r=bytesFromWords(o);return r}function aesDecrypt(e,t,n){var i=CryptoJS.AES.decrypt({ciphertext:bytesToWords(e)},bytesToWords(t),{iv:bytesToWords(n),padding:CryptoJS.pad.NoPadding,mode:CryptoJS.mode.IGE}),a=bytesFromWords(i);return a}function gzipUncompress(e){var t=new Zlib.Gunzip(e).decompress();return t}function nextRandomInt(e){return Math.floor(Math.random()*e)}function pqPrimeFactorization(e){var t=new BigInteger(e),n=!1;console.log("PQ start",e,t.toString(16),t.bitLength());try{n=pqPrimeLeemon(str2bigInt(t.toString(16),16,Math.ceil(64/bpe)+1))}catch(i){console.error("Pq leemon Exception",i)}if(n===!1&&t.bitLength()<=64)try{n=pqPrimeLong(goog.math.Long.fromString(t.toString(16),16))}catch(i){console.error("Pq long Exception",i)}return n===!1&&(n=pqPrimeBigInteger(t)),console.log("PQ finish"),n}function pqPrimeBigInteger(e){for(var t,n=0,i=0;3>i;i++){for(var a=(15&nextRandomInt(128))+17,o=bigint(nextRandomInt(1e9)+1),r=o.clone(),s=1<<i+18,c=1;s>c;c++){++n;for(var l=o.clone(),u=o.clone(),d=bigint(a);!u.equals(BigInteger.ZERO);)u.and(BigInteger.ONE).equals(BigInteger.ZERO)||(d=d.add(l),d.compareTo(e)>0&&(d=d.subtract(e))),l=l.add(l),l.compareTo(e)>0&&(l=l.subtract(e)),u=u.shiftRight(1);o=d.clone();var p=o.compareTo(r)<0?r.subtract(o):o.subtract(r);if(t=p.gcd(e),!t.equals(BigInteger.ONE))break;0==(c&c-1)&&(r=o.clone())}if(t.compareTo(BigInteger.ONE)>0)break}var h,f,g=e.divide(t);return t.compareTo(g)>0?(h=g,f=t):(h=t,f=g),[bytesFromBigInt(h),bytesFromBigInt(f),n]}function gcdLong(e,t){for(;e.notEquals(goog.math.Long.ZERO)&&t.notEquals(goog.math.Long.ZERO);){for(;t.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO);)t=t.shiftRight(1);for(;e.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO);)e=e.shiftRight(1);e.compare(t)>0?e=e.subtract(t):t=t.subtract(e)}return t.equals(goog.math.Long.ZERO)?e:t}function pqPrimeLong(e){for(var t,n=0,i=0;3>i;i++){for(var a=goog.math.Long.fromInt((15&nextRandomInt(128))+17),o=goog.math.Long.fromInt(nextRandomInt(1e9)+1),r=o,s=1<<i+18,c=1;s>c;c++){++n;for(var l=o,u=o,d=a;u.notEquals(goog.math.Long.ZERO);)u.and(goog.math.Long.ONE).notEquals(goog.math.Long.ZERO)&&(d=d.add(l),d.compare(e)>0&&(d=d.subtract(e))),l=l.add(l),l.compare(e)>0&&(l=l.subtract(e)),u=u.shiftRight(1);o=d;var p=o.compare(r)<0?r.subtract(o):o.subtract(r);if(t=gcdLong(p,e),t.notEquals(goog.math.Long.ONE))break;0==(c&c-1)&&(r=o)}if(t.compare(goog.math.Long.ONE)>0)break}var h,f,g=e.div(t);return t.compare(g)>0?(h=g,f=t):(h=t,f=g),[bytesFromHex(h.toString(16)),bytesFromHex(f.toString(16)),n]}function pqPrimeLeemon(e){var t,n,i,a,o,r,s,c=64,l=Math.ceil(c/bpe)+1,u=0,d=new Array(l),p=new Array(l),h=new Array(l),o=new Array(l),f=new Array(l),g=new Array(l),m=new Array(l);for(t=0;3>t;t++){for(n=(15&nextRandomInt(128))+17,copyInt_(g,nextRandomInt(1e9)+1),copy_(m,g),a=1<<t+18,i=1;a>i;i++){for(++u,copy_(d,g),copy_(p,g),copyInt_(h,n);!isZero(p);)1&p[0]&&(add_(h,d),greater(h,e)&&sub_(h,e)),add_(d,d),greater(d,e)&&sub_(d,e),rightShift_(p,1);if(copy_(g,h),greater(g,m)?(copy_(f,g),sub_(f,m)):(copy_(f,m),sub_(f,g)),eGCD_(f,e,o,d,p),!equalsInt(o,1))break;0==(i&i-1)&&copy_(m,g)}if(greater(o,one))break}return divide_(e,o,g,m),greater(o,g)?(r=g,s=o):(r=o,s=g),[bytesFromLeemonBigInt(r),bytesFromLeemonBigInt(s),u]}function bytesModPow(e,t,n){try{var i=str2bigInt(e,64),a=str2bigInt(t,64),o=str2bigInt(bytesToHex(n),16,2),r=powMod(i,a,o);return bytesFromHex(bigInt2str(r,16))}catch(s){}return bytesFromBigInt(new BigInteger(e).modPow(new BigInteger(t),new BigInteger(n)))}function TLSerialization(e){return e=e||{},this.maxLength=e.startMaxLength||2048,this.offset=0,this.createBuffer(),this.mtproto=e.mtproto||!1,this}function TLDeserialization(e,t){return t=t||{},this.offset=0,this.override=t.override||{},this.buffer=e,this.intView=new Uint32Array(this.buffer),this.byteView=new Uint8Array(this.buffer),this.mtproto=t.mtproto||!1,this}!function(e){"use strict";for(var t,n,i={},a=function(){},o="memory".split(","),r="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(",");t=o.pop();)e[t]=e[t]||i;for(;n=r.pop();)e[n]=e[n]||a}(this.console=this.console||{}),!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=at.type(e);return"function"===n||at.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function i(e,t,n){if(at.isFunction(t))return at.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return at.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(pt.test(t))return at.filter(t,e,n);t=at.filter(t,e)}return at.grep(e,function(e){return at.inArray(e,t)>=0!==n})}function a(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t=bt[e]={};return at.each(e.match(_t)||[],function(e,n){t[n]=!0}),t}function r(){ft.addEventListener?(ft.removeEventListener("DOMContentLoaded",s,!1),e.removeEventListener("load",s,!1)):(ft.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(ft.addEventListener||"load"===event.type||"complete"===ft.readyState)&&(r(),at.ready())}function c(e,t,n){if(void 0===n&&1===e.nodeType){var i="data-"+t.replace(St,"-$1").toLowerCase();if(n=e.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:kt.test(n)?at.parseJSON(n):n}catch(a){}at.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!at.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function u(e,t,n,i){if(at.acceptData(e)){var a,o,r=at.expando,s=e.nodeType,c=s?at.cache:e,l=s?e[r]:e[r]&&r;if(l&&c[l]&&(i||c[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[r]=K.pop()||at.guid++:r),c[l]||(c[l]=s?{}:{toJSON:at.noop}),("object"==typeof t||"function"==typeof t)&&(i?c[l]=at.extend(c[l],t):c[l].data=at.extend(c[l].data,t)),o=c[l],i||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[at.camelCase(t)]=n),"string"==typeof t?(a=o[t],null==a&&(a=o[at.camelCase(t)])):a=o,a}}function d(e,t,n){if(at.acceptData(e)){var i,a,o=e.nodeType,r=o?at.cache:e,s=o?e[at.expando]:at.expando;if(r[s]){if(t&&(i=n?r[s]:r[s].data)){at.isArray(t)?t=t.concat(at.map(t,at.camelCase)):t in i?t=[t]:(t=at.camelCase(t),t=t in i?[t]:t.split(" ")),a=t.length;for(;a--;)delete i[t[a]];if(n?!l(i):!at.isEmptyObject(i))return}(n||(delete r[s].data,l(r[s])))&&(o?at.cleanData([e],!0):nt.deleteExpando||r!=r.window?delete r[s]:r[s]=null)}}}function p(){return!0}function h(){return!1}function f(){try{return ft.activeElement}catch(e){}}function g(e){var t=Ft.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function m(e,t){var n,i,a=0,o=typeof e.getElementsByTagName!==Ct?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Ct?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[a]);a++)!t||at.nodeName(i,t)?o.push(i):at.merge(o,m(i,t));return void 0===t||t&&at.nodeName(e,t)?at.merge([e],o):o}function v(e){At.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t){return at.nodeName(e,"table")&&at.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function _(e){return e.type=(null!==at.find.attr(e,"type"))+"/"+e.type,e}function b(e){var t=Gt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function w(e,t){for(var n,i=0;null!=(n=e[i]);i++)at._data(n,"globalEval",!t||at._data(t[i],"globalEval"))}function $(e,t){if(1===t.nodeType&&at.hasData(e)){var n,i,a,o=at._data(e),r=at._data(t,o),s=o.events;if(s){delete r.handle,r.events={};for(n in s)for(i=0,a=s[n].length;a>i;i++)at.event.add(t,n,s[n][i])}r.data&&(r.data=at.extend({},r.data))}}function C(e,t){var n,i,a;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!nt.noCloneEvent&&t[at.expando]){a=at._data(t);for(i in a.events)at.removeEvent(t,i,a.handle);t.removeAttribute(at.expando)}"script"===n&&t.text!==e.text?(_(t).text=e.text,b(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),nt.html5Clone&&e.innerHTML&&!at.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&At.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function k(t,n){var i,a=at(n.createElement(t)).appendTo(n.body),o=e.getDefaultComputedStyle&&(i=e.getDefaultComputedStyle(a[0]))?i.display:at.css(a[0],"display");return a.detach(),o}function S(e){var t=ft,n=Jt[e];return n||(n=k(e,t),"none"!==n&&n||(Qt=(Qt||at("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(Qt[0].contentWindow||Qt[0].contentDocument).document,t.write(),t.close(),n=k(e,t),Qt.detach()),Jt[e]=n),n}function x(e,t){return{get:function(){var n=e();return null!=n?n?void delete this.get:(this.get=t).apply(this,arguments):void 0}}}function M(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),i=t,a=hn.length;a--;)if(t=hn[a]+n,t in e)return t;return i}function T(e,t){for(var n,i,a,o=[],r=0,s=e.length;s>r;r++)i=e[r],i.style&&(o[r]=at._data(i,"olddisplay"),n=i.style.display,t?(o[r]||"none"!==n||(i.style.display=""),""===i.style.display&&Tt(i)&&(o[r]=at._data(i,"olddisplay",S(i.nodeName)))):(a=Tt(i),(n&&"none"!==n||!a)&&at._data(i,"olddisplay",a?n:at.css(i,"display"))));for(r=0;s>r;r++)i=e[r],i.style&&(t&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=t?o[r]||"":"none"));return e}function E(e,t,n){var i=ln.exec(t);return i?Math.max(0,i[1]-(n||0))+(i[2]||"px"):t}function A(e,t,n,i,a){for(var o=n===(i?"border":"content")?4:"width"===t?1:0,r=0;4>o;o+=2)"margin"===n&&(r+=at.css(e,n+Mt[o],!0,a)),i?("content"===n&&(r-=at.css(e,"padding"+Mt[o],!0,a)),"margin"!==n&&(r-=at.css(e,"border"+Mt[o]+"Width",!0,a))):(r+=at.css(e,"padding"+Mt[o],!0,a),"padding"!==n&&(r+=at.css(e,"border"+Mt[o]+"Width",!0,a)));return r}function D(e,t,n){var i=!0,a="width"===t?e.offsetWidth:e.offsetHeight,o=en(e),r=nt.boxSizing&&"border-box"===at.css(e,"boxSizing",!1,o);if(0>=a||null==a){if(a=tn(e,t,o),(0>a||null==a)&&(a=e.style[t]),an.test(a))return a;i=r&&(nt.boxSizingReliable()||a===e.style[t]),a=parseFloat(a)||0}return a+A(e,t,n||(r?"border":"content"),i,o)+"px"}function I(e,t,n,i,a){return new I.prototype.init(e,t,n,i,a)}function P(){return setTimeout(function(){fn=void 0}),fn=at.now()}function N(e,t){var n,i={height:e},a=0;for(t=t?1:0;4>a;a+=2-t)n=Mt[a],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function L(e,t,n){for(var i,a=(bn[t]||[]).concat(bn["*"]),o=0,r=a.length;r>o;o++)if(i=a[o].call(n,t,e))return i
}function F(e,t,n){var i,a,o,r,s,c,l,u,d=this,p={},h=e.style,f=e.nodeType&&Tt(e),g=at._data(e,"fxshow");n.queue||(s=at._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,c=s.empty.fire,s.empty.fire=function(){s.unqueued||c()}),s.unqueued++,d.always(function(){d.always(function(){s.unqueued--,at.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],l=at.css(e,"display"),u="none"===l?at._data(e,"olddisplay")||S(e.nodeName):l,"inline"===u&&"none"===at.css(e,"float")&&(nt.inlineBlockNeedsLayout&&"inline"!==S(e.nodeName)?h.zoom=1:h.display="inline-block")),n.overflow&&(h.overflow="hidden",nt.shrinkWrapBlocks()||d.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],mn.exec(a)){if(delete t[i],o=o||"toggle"===a,a===(f?"hide":"show")){if("show"!==a||!g||void 0===g[i])continue;f=!0}p[i]=g&&g[i]||at.style(e,i)}else l=void 0;if(at.isEmptyObject(p))"inline"===("none"===l?S(e.nodeName):l)&&(h.display=l);else{g?"hidden"in g&&(f=g.hidden):g=at._data(e,"fxshow",{}),o&&(g.hidden=!f),f?at(e).show():d.done(function(){at(e).hide()}),d.done(function(){var t;at._removeData(e,"fxshow");for(t in p)at.style(e,t,p[t])});for(i in p)r=L(f?g[i]:0,i,d),i in g||(g[i]=r.start,f&&(r.end=r.start,r.start="width"===i||"height"===i?1:0))}}function B(e,t){var n,i,a,o,r;for(n in e)if(i=at.camelCase(n),a=t[i],o=e[n],at.isArray(o)&&(a=o[1],o=e[n]=o[0]),n!==i&&(e[i]=o,delete e[n]),r=at.cssHooks[i],r&&"expand"in r){o=r.expand(o),delete e[i];for(n in o)n in e||(e[n]=o[n],t[n]=a)}else t[i]=a}function O(e,t,n){var i,a,o=0,r=_n.length,s=at.Deferred().always(function(){delete c.elem}),c=function(){if(a)return!1;for(var t=fn||P(),n=Math.max(0,l.startTime+l.duration-t),i=n/l.duration||0,o=1-i,r=0,c=l.tweens.length;c>r;r++)l.tweens[r].run(o);return s.notifyWith(e,[l,o,n]),1>o&&c?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:at.extend({},t),opts:at.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:fn||P(),duration:n.duration,tweens:[],createTween:function(t,n){var i=at.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(i),i},stop:function(t){var n=0,i=t?l.tweens.length:0;if(a)return this;for(a=!0;i>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),u=l.props;for(B(u,l.opts.specialEasing);r>o;o++)if(i=_n[o].call(l,e,u,l.opts))return i;return at.map(u,L,l),at.isFunction(l.opts.start)&&l.opts.start.call(e,l),at.fx.timer(at.extend(c,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function U(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,a=0,o=t.toLowerCase().match(_t)||[];if(at.isFunction(n))for(;i=o[a++];)"+"===i.charAt(0)?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function R(e,t,n,i){function a(s){var c;return o[s]=!0,at.each(e[s]||[],function(e,s){var l=s(t,n,i);return"string"!=typeof l||r||o[l]?r?!(c=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),c}var o={},r=e===Vn;return a(t.dataTypes[0])||!o["*"]&&a("*")}function q(e,t){var n,i,a=at.ajaxSettings.flatOptions||{};for(i in t)void 0!==t[i]&&((a[i]?e:n||(n={}))[i]=t[i]);return n&&at.extend(!0,e,n),e}function H(e,t,n){for(var i,a,o,r,s=e.contents,c=e.dataTypes;"*"===c[0];)c.shift(),void 0===a&&(a=e.mimeType||t.getResponseHeader("Content-Type"));if(a)for(r in s)if(s[r]&&s[r].test(a)){c.unshift(r);break}if(c[0]in n)o=c[0];else{for(r in n){if(!c[0]||e.converters[r+" "+c[0]]){o=r;break}i||(i=r)}o=o||i}return o?(o!==c[0]&&c.unshift(o),n[o]):void 0}function j(e,t,n,i){var a,o,r,s,c,l={},u=e.dataTypes.slice();if(u[1])for(r in e.converters)l[r.toLowerCase()]=e.converters[r];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!c&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),c=o,o=u.shift())if("*"===o)o=c;else if("*"!==c&&c!==o){if(r=l[c+" "+o]||l["* "+o],!r)for(a in l)if(s=a.split(" "),s[1]===o&&(r=l[c+" "+s[0]]||l["* "+s[0]])){r===!0?r=l[a]:l[a]!==!0&&(o=s[0],u.unshift(s[1]));break}if(r!==!0)if(r&&e["throws"])t=r(t);else try{t=r(t)}catch(d){return{state:"parsererror",error:r?d:"No conversion from "+c+" to "+o}}}return{state:"success",data:t}}function V(e,t,n,i){var a;if(at.isArray(t))at.each(t,function(t,a){n||Kn.test(e)?i(e,a):V(e+"["+("object"==typeof a?t:"")+"]",a,n,i)});else if(n||"object"!==at.type(t))i(e,t);else for(a in t)V(e+"["+a+"]",t[a],n,i)}function z(){try{return new e.XMLHttpRequest}catch(t){}}function W(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function G(e){return at.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var K=[],X=K.slice,Y=K.concat,Z=K.push,Q=K.indexOf,J={},et=J.toString,tt=J.hasOwnProperty,nt={},it="1.11.1",at=function(e,t){return new at.fn.init(e,t)},ot=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rt=/^-ms-/,st=/-([\da-z])/gi,ct=function(e,t){return t.toUpperCase()};at.fn=at.prototype={jquery:it,constructor:at,selector:"",length:0,toArray:function(){return X.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:X.call(this)},pushStack:function(e){var t=at.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return at.each(this,e,t)},map:function(e){return this.pushStack(at.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(X.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:Z,sort:K.sort,splice:K.splice},at.extend=at.fn.extend=function(){var e,t,n,i,a,o,r=arguments[0]||{},s=1,c=arguments.length,l=!1;for("boolean"==typeof r&&(l=r,r=arguments[s]||{},s++),"object"==typeof r||at.isFunction(r)||(r={}),s===c&&(r=this,s--);c>s;s++)if(null!=(a=arguments[s]))for(i in a)e=r[i],n=a[i],r!==n&&(l&&n&&(at.isPlainObject(n)||(t=at.isArray(n)))?(t?(t=!1,o=e&&at.isArray(e)?e:[]):o=e&&at.isPlainObject(e)?e:{},r[i]=at.extend(l,o,n)):void 0!==n&&(r[i]=n));return r},at.extend({expando:"jQuery"+(it+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===at.type(e)},isArray:Array.isArray||function(e){return"array"===at.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!at.isArray(e)&&e-parseFloat(e)>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==at.type(e)||e.nodeType||at.isWindow(e))return!1;try{if(e.constructor&&!tt.call(e,"constructor")&&!tt.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(nt.ownLast)for(t in e)return tt.call(e,t);for(t in e);return void 0===t||tt.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?J[et.call(e)]||"object":typeof e},globalEval:function(t){t&&at.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(rt,"ms-").replace(st,ct)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,i){var a,o=0,r=e.length,s=n(e);if(i){if(s)for(;r>o&&(a=t.apply(e[o],i),a!==!1);o++);else for(o in e)if(a=t.apply(e[o],i),a===!1)break}else if(s)for(;r>o&&(a=t.call(e[o],o,e[o]),a!==!1);o++);else for(o in e)if(a=t.call(e[o],o,e[o]),a===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ot,"")},makeArray:function(e,t){var i=t||[];return null!=e&&(n(Object(e))?at.merge(i,"string"==typeof e?[e]:e):Z.call(i,e)),i},inArray:function(e,t,n){var i;if(t){if(Q)return Q.call(t,e,n);for(i=t.length,n=n?0>n?Math.max(0,i+n):n:0;i>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,i=0,a=e.length;n>i;)e[a++]=t[i++];if(n!==n)for(;void 0!==t[i];)e[a++]=t[i++];return e.length=a,e},grep:function(e,t,n){for(var i,a=[],o=0,r=e.length,s=!n;r>o;o++)i=!t(e[o],o),i!==s&&a.push(e[o]);return a},map:function(e,t,i){var a,o=0,r=e.length,s=n(e),c=[];if(s)for(;r>o;o++)a=t(e[o],o,i),null!=a&&c.push(a);else for(o in e)a=t(e[o],o,i),null!=a&&c.push(a);return Y.apply([],c)},guid:1,proxy:function(e,t){var n,i,a;return"string"==typeof t&&(a=e[t],t=e,e=a),at.isFunction(e)?(n=X.call(arguments,2),i=function(){return e.apply(t||this,n.concat(X.call(arguments)))},i.guid=e.guid=e.guid||at.guid++,i):void 0},now:function(){return+new Date},support:nt}),at.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){J["[object "+t+"]"]=t.toLowerCase()});var lt=function(e){function t(e,t,n,i){var a,o,r,s,c,l,d,h,f,g;if((t?t.ownerDocument||t:R)!==I&&D(t),t=t||I,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(N&&!i){if(a=yt.exec(e))if(r=a[1]){if(9===s){if(o=t.getElementById(r),!o||!o.parentNode)return n;if(o.id===r)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(r))&&O(t,o)&&o.id===r)return n.push(o),n}else{if(a[2])return J.apply(n,t.getElementsByTagName(e)),n;if((r=a[3])&&w.getElementsByClassName&&t.getElementsByClassName)return J.apply(n,t.getElementsByClassName(r)),n}if(w.qsa&&(!L||!L.test(e))){if(h=d=U,f=t,g=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=S(e),(d=t.getAttribute("id"))?h=d.replace(bt,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",c=l.length;c--;)l[c]=h+p(l[c]);f=_t.test(e)&&u(t.parentNode)||t,g=l.join(",")}if(g)try{return J.apply(n,f.querySelectorAll(g)),n}catch(m){}finally{d||t.removeAttribute("id")}}}return M(e.replace(ct,"$1"),t,n,i)}function n(){function e(n,i){return t.push(n+" ")>$.cacheLength&&delete e[t.shift()],e[n+" "]=i}var t=[];return e}function i(e){return e[U]=!0,e}function a(e){var t=I.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),i=e.length;i--;)$.attrHandle[n[i]]=t}function r(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function c(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return i(function(t){return t=+t,i(function(n,i){for(var a,o=e([],n.length,t),r=o.length;r--;)n[a=o[r]]&&(n[a]=!(i[a]=n[a]))})})}function u(e){return e&&typeof e.getElementsByTagName!==G&&e}function d(){}function p(e){for(var t=0,n=e.length,i="";n>t;t++)i+=e[t].value;return i}function h(e,t,n){var i=t.dir,a=n&&"parentNode"===i,o=H++;return t.first?function(t,n,o){for(;t=t[i];)if(1===t.nodeType||a)return e(t,n,o)}:function(t,n,r){var s,c,l=[q,o];if(r){for(;t=t[i];)if((1===t.nodeType||a)&&e(t,n,r))return!0}else for(;t=t[i];)if(1===t.nodeType||a){if(c=t[U]||(t[U]={}),(s=c[i])&&s[0]===q&&s[1]===o)return l[2]=s[2];if(c[i]=l,l[2]=e(t,n,r))return!0}}}function f(e){return e.length>1?function(t,n,i){for(var a=e.length;a--;)if(!e[a](t,n,i))return!1;return!0}:e[0]}function g(e,n,i){for(var a=0,o=n.length;o>a;a++)t(e,n[a],i);return i}function m(e,t,n,i,a){for(var o,r=[],s=0,c=e.length,l=null!=t;c>s;s++)(o=e[s])&&(!n||n(o,i,a))&&(r.push(o),l&&t.push(s));return r}function v(e,t,n,a,o,r){return a&&!a[U]&&(a=v(a)),o&&!o[U]&&(o=v(o,r)),i(function(i,r,s,c){var l,u,d,p=[],h=[],f=r.length,v=i||g(t||"*",s.nodeType?[s]:s,[]),y=!e||!i&&t?v:m(v,p,e,s,c),_=n?o||(i?e:f||a)?[]:r:y;if(n&&n(y,_,s,c),a)for(l=m(_,h),a(l,[],s,c),u=l.length;u--;)(d=l[u])&&(_[h[u]]=!(y[h[u]]=d));if(i){if(o||e){if(o){for(l=[],u=_.length;u--;)(d=_[u])&&l.push(y[u]=d);o(null,_=[],l,c)}for(u=_.length;u--;)(d=_[u])&&(l=o?tt.call(i,d):p[u])>-1&&(i[l]=!(r[l]=d))}}else _=m(_===r?_.splice(f,_.length):_),o?o(null,r,_,c):J.apply(r,_)})}function y(e){for(var t,n,i,a=e.length,o=$.relative[e[0].type],r=o||$.relative[" "],s=o?1:0,c=h(function(e){return e===t},r,!0),l=h(function(e){return tt.call(t,e)>-1},r,!0),u=[function(e,n,i){return!o&&(i||n!==T)||((t=n).nodeType?c(e,n,i):l(e,n,i))}];a>s;s++)if(n=$.relative[e[s].type])u=[h(f(u),n)];else{if(n=$.filter[e[s].type].apply(null,e[s].matches),n[U]){for(i=++s;a>i&&!$.relative[e[i].type];i++);return v(s>1&&f(u),s>1&&p(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ct,"$1"),n,i>s&&y(e.slice(s,i)),a>i&&y(e=e.slice(i)),a>i&&p(e))}u.push(n)}return f(u)}function _(e,n){var a=n.length>0,o=e.length>0,r=function(i,r,s,c,l){var u,d,p,h=0,f="0",g=i&&[],v=[],y=T,_=i||o&&$.find.TAG("*",l),b=q+=null==y?1:Math.random()||.1,w=_.length;for(l&&(T=r!==I&&r);f!==w&&null!=(u=_[f]);f++){if(o&&u){for(d=0;p=e[d++];)if(p(u,r,s)){c.push(u);break}l&&(q=b)}a&&((u=!p&&u)&&h--,i&&g.push(u))}if(h+=f,a&&f!==h){for(d=0;p=n[d++];)p(g,v,r,s);if(i){if(h>0)for(;f--;)g[f]||v[f]||(v[f]=Z.call(c));v=m(v)}J.apply(c,v),l&&!i&&v.length>0&&h+n.length>1&&t.uniqueSort(c)}return l&&(q=b,T=y),g};return a?i(r):r}var b,w,$,C,k,S,x,M,T,E,A,D,I,P,N,L,F,B,O,U="sizzle"+-new Date,R=e.document,q=0,H=0,j=n(),V=n(),z=n(),W=function(e,t){return e===t&&(A=!0),0},G="undefined",K=1<<31,X={}.hasOwnProperty,Y=[],Z=Y.pop,Q=Y.push,J=Y.push,et=Y.slice,tt=Y.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",it="[\\x20\\t\\r\\n\\f]",at="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot=at.replace("w","w#"),rt="\\["+it+"*("+at+")(?:"+it+"*([*^$|!~]?=)"+it+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ot+"))|)"+it+"*\\]",st=":("+at+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+rt+")*)|.*)\\)|)",ct=new RegExp("^"+it+"+|((?:^|[^\\\\])(?:\\\\.)*)"+it+"+$","g"),lt=new RegExp("^"+it+"*,"+it+"*"),ut=new RegExp("^"+it+"*([>+~]|"+it+")"+it+"*"),dt=new RegExp("="+it+"*([^\\]'\"]*?)"+it+"*\\]","g"),pt=new RegExp(st),ht=new RegExp("^"+ot+"$"),ft={ID:new RegExp("^#("+at+")"),CLASS:new RegExp("^\\.("+at+")"),TAG:new RegExp("^("+at.replace("w","w*")+")"),ATTR:new RegExp("^"+rt),PSEUDO:new RegExp("^"+st),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+it+"*(even|odd|(([+-]|)(\\d*)n|)"+it+"*(?:([+-]|)"+it+"*(\\d+)|))"+it+"*\\)|)","i"),bool:new RegExp("^(?:"+nt+")$","i"),needsContext:new RegExp("^"+it+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+it+"*((?:-\\d)?\\d*)"+it+"*\\)|)(?=[^-]|$)","i")},gt=/^(?:input|select|textarea|button)$/i,mt=/^h\d$/i,vt=/^[^{]+\{\s*\[native \w/,yt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_t=/[+~]/,bt=/'|\\/g,wt=new RegExp("\\\\([\\da-f]{1,6}"+it+"?|("+it+")|.)","ig"),$t=function(e,t,n){var i="0x"+t-65536;return i!==i||n?t:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)};try{J.apply(Y=et.call(R.childNodes),R.childNodes),Y[R.childNodes.length].nodeType}catch(Ct){J={apply:Y.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}w=t.support={},k=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=t.setDocument=function(e){var t,n=e?e.ownerDocument||e:R,i=n.defaultView;return n!==I&&9===n.nodeType&&n.documentElement?(I=n,P=n.documentElement,N=!k(n),i&&i!==i.top&&(i.addEventListener?i.addEventListener("unload",function(){D()},!1):i.attachEvent&&i.attachEvent("onunload",function(){D()})),w.attributes=a(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=a(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=vt.test(n.getElementsByClassName)&&a(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),w.getById=a(function(e){return P.appendChild(e).id=U,!n.getElementsByName||!n.getElementsByName(U).length}),w.getById?($.find.ID=function(e,t){if(typeof t.getElementById!==G&&N){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},$.filter.ID=function(e){var t=e.replace(wt,$t);return function(e){return e.getAttribute("id")===t}}):(delete $.find.ID,$.filter.ID=function(e){var t=e.replace(wt,$t);return function(e){var n=typeof e.getAttributeNode!==G&&e.getAttributeNode("id");return n&&n.value===t}}),$.find.TAG=w.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==G?t.getElementsByTagName(e):void 0}:function(e,t){var n,i=[],a=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[a++];)1===n.nodeType&&i.push(n);return i}return o},$.find.CLASS=w.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==G&&N?t.getElementsByClassName(e):void 0},F=[],L=[],(w.qsa=vt.test(n.querySelectorAll))&&(a(function(e){e.innerHTML="<select msallowclip=''><option selected=''></option></select>",e.querySelectorAll("[msallowclip^='']").length&&L.push("[*^$]="+it+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||L.push("\\["+it+"*(?:value|"+nt+")"),e.querySelectorAll(":checked").length||L.push(":checked")}),a(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&L.push("name"+it+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||L.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),L.push(",.*:")})),(w.matchesSelector=vt.test(B=P.matches||P.webkitMatchesSelector||P.mozMatchesSelector||P.oMatchesSelector||P.msMatchesSelector))&&a(function(e){w.disconnectedMatch=B.call(e,"div"),B.call(e,"[s!='']:x"),F.push("!=",st)}),L=L.length&&new RegExp(L.join("|")),F=F.length&&new RegExp(F.join("|")),t=vt.test(P.compareDocumentPosition),O=t||vt.test(P.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=t?function(e,t){if(e===t)return A=!0,0;var i=!e.compareDocumentPosition-!t.compareDocumentPosition;return i?i:(i=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&i||!w.sortDetached&&t.compareDocumentPosition(e)===i?e===n||e.ownerDocument===R&&O(R,e)?-1:t===n||t.ownerDocument===R&&O(R,t)?1:E?tt.call(E,e)-tt.call(E,t):0:4&i?-1:1)}:function(e,t){if(e===t)return A=!0,0;var i,a=0,o=e.parentNode,s=t.parentNode,c=[e],l=[t];if(!o||!s)return e===n?-1:t===n?1:o?-1:s?1:E?tt.call(E,e)-tt.call(E,t):0;if(o===s)return r(e,t);for(i=e;i=i.parentNode;)c.unshift(i);for(i=t;i=i.parentNode;)l.unshift(i);for(;c[a]===l[a];)a++;return a?r(c[a],l[a]):c[a]===R?-1:l[a]===R?1:0},n):I},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==I&&D(e),n=n.replace(dt,"='$1']"),!(!w.matchesSelector||!N||F&&F.test(n)||L&&L.test(n)))try{var i=B.call(e,n);if(i||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(a){}return t(n,I,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==I&&D(e),O(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==I&&D(e);var n=$.attrHandle[t.toLowerCase()],i=n&&X.call($.attrHandle,t.toLowerCase())?n(e,t,!N):void 0;return void 0!==i?i:w.attributes||!N?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],i=0,a=0;if(A=!w.detectDuplicates,E=!w.sortStable&&e.slice(0),e.sort(W),A){for(;t=e[a++];)t===e[a]&&(i=n.push(a));for(;i--;)e.splice(n[i],1)}return E=null,e},C=t.getText=function(e){var t,n="",i=0,a=e.nodeType;if(a){if(1===a||9===a||11===a){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===a||4===a)return e.nodeValue}else for(;t=e[i++];)n+=C(t);return n},$=t.selectors={cacheLength:50,createPseudo:i,match:ft,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(wt,$t),e[3]=(e[3]||e[4]||e[5]||"").replace(wt,$t),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return ft.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&pt.test(n)&&(t=S(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(wt,$t).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=j[e+" "];return t||(t=new RegExp("(^|"+it+")"+e+"("+it+"|$)"))&&j(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==G&&e.getAttribute("class")||"")})},ATTR:function(e,n,i){return function(a){var o=t.attr(a,e);return null==o?"!="===n:n?(o+="","="===n?o===i:"!="===n?o!==i:"^="===n?i&&0===o.indexOf(i):"*="===n?i&&o.indexOf(i)>-1:"$="===n?i&&o.slice(-i.length)===i:"~="===n?(" "+o+" ").indexOf(i)>-1:"|="===n?o===i||o.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(e,t,n,i,a){var o="nth"!==e.slice(0,3),r="last"!==e.slice(-4),s="of-type"===t;return 1===i&&0===a?function(e){return!!e.parentNode}:function(t,n,c){var l,u,d,p,h,f,g=o!==r?"nextSibling":"previousSibling",m=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!c&&!s;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;f=g="only"===e&&!f&&"nextSibling"}return!0}if(f=[r?m.firstChild:m.lastChild],r&&y){for(u=m[U]||(m[U]={}),l=u[e]||[],h=l[0]===q&&l[1],p=l[0]===q&&l[2],d=h&&m.childNodes[h];d=++h&&d&&d[g]||(p=h=0)||f.pop();)if(1===d.nodeType&&++p&&d===t){u[e]=[q,h,p];break}}else if(y&&(l=(t[U]||(t[U]={}))[e])&&l[0]===q)p=l[1];else for(;(d=++h&&d&&d[g]||(p=h=0)||f.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++p||(y&&((d[U]||(d[U]={}))[e]=[q,p]),d!==t)););return p-=a,p===i||p%i===0&&p/i>=0}}},PSEUDO:function(e,n){var a,o=$.pseudos[e]||$.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[U]?o(n):o.length>1?(a=[e,e,"",n],$.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,t){for(var i,a=o(e,n),r=a.length;r--;)i=tt.call(e,a[r]),e[i]=!(t[i]=a[r])}):function(e){return o(e,0,a)}):o}},pseudos:{not:i(function(e){var t=[],n=[],a=x(e.replace(ct,"$1"));return a[U]?i(function(e,t,n,i){for(var o,r=a(e,null,i,[]),s=e.length;s--;)(o=r[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,a(t,null,o,n),!n.pop()}}),has:i(function(e){return function(n){return t(e,n).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:i(function(e){return ht.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(wt,$t).toLowerCase(),function(t){var n;do if(n=N?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===P},focus:function(e){return e===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!$.pseudos.empty(e)},header:function(e){return mt.test(e.nodeName)},input:function(e){return gt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[0>n?n+t:n]}),even:l(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:l(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:l(function(e,t,n){for(var i=0>n?n+t:n;--i>=0;)e.push(i);return e}),gt:l(function(e,t,n){for(var i=0>n?n+t:n;++i<t;)e.push(i);return e})}},$.pseudos.nth=$.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})$.pseudos[b]=s(b);for(b in{submit:!0,reset:!0})$.pseudos[b]=c(b);return d.prototype=$.filters=$.pseudos,$.setFilters=new d,S=t.tokenize=function(e,n){var i,a,o,r,s,c,l,u=V[e+" "];if(u)return n?0:u.slice(0);for(s=e,c=[],l=$.preFilter;s;){(!i||(a=lt.exec(s)))&&(a&&(s=s.slice(a[0].length)||s),c.push(o=[])),i=!1,(a=ut.exec(s))&&(i=a.shift(),o.push({value:i,type:a[0].replace(ct," ")}),s=s.slice(i.length));for(r in $.filter)!(a=ft[r].exec(s))||l[r]&&!(a=l[r](a))||(i=a.shift(),o.push({value:i,type:r,matches:a}),s=s.slice(i.length));if(!i)break}return n?s.length:s?t.error(e):V(e,c).slice(0)},x=t.compile=function(e,t){var n,i=[],a=[],o=z[e+" "];if(!o){for(t||(t=S(e)),n=t.length;n--;)o=y(t[n]),o[U]?i.push(o):a.push(o);o=z(e,_(a,i)),o.selector=e}return o},M=t.select=function(e,t,n,i){var a,o,r,s,c,l="function"==typeof e&&e,d=!i&&S(e=l.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(r=o[0]).type&&w.getById&&9===t.nodeType&&N&&$.relative[o[1].type]){if(t=($.find.ID(r.matches[0].replace(wt,$t),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(a=ft.needsContext.test(e)?0:o.length;a--&&(r=o[a],!$.relative[s=r.type]);)if((c=$.find[s])&&(i=c(r.matches[0].replace(wt,$t),_t.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(a,1),e=i.length&&p(o),!e)return J.apply(n,i),n;break}}return(l||x(e,d))(i,t,!N,n,_t.test(e)&&u(t.parentNode)||t),n},w.sortStable=U.split("").sort(W).join("")===U,w.detectDuplicates=!!A,D(),w.sortDetached=a(function(e){return 1&e.compareDocumentPosition(I.createElement("div"))}),a(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&a(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),a(function(e){return null==e.getAttribute("disabled")})||o(nt,function(e,t,n){var i;return n?void 0:e[t]===!0?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null}),t}(e);at.find=lt,at.expr=lt.selectors,at.expr[":"]=at.expr.pseudos,at.unique=lt.uniqueSort,at.text=lt.getText,at.isXMLDoc=lt.isXML,at.contains=lt.contains;var ut=at.expr.match.needsContext,dt=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,pt=/^.[^:#\[\.,]*$/;at.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?at.find.matchesSelector(i,e)?[i]:[]:at.find.matches(e,at.grep(t,function(e){return 1===e.nodeType}))},at.fn.extend({find:function(e){var t,n=[],i=this,a=i.length;if("string"!=typeof e)return this.pushStack(at(e).filter(function(){for(t=0;a>t;t++)if(at.contains(i[t],this))return!0}));for(t=0;a>t;t++)at.find(e,i[t],n);return n=this.pushStack(a>1?at.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,"string"==typeof e&&ut.test(e)?at(e):e||[],!1).length}});var ht,ft=e.document,gt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,mt=at.fn.init=function(e,t){var n,i;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:gt.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ht).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof at?t[0]:t,at.merge(this,at.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:ft,!0)),dt.test(n[1])&&at.isPlainObject(t))for(n in t)at.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(i=ft.getElementById(n[2]),i&&i.parentNode){if(i.id!==n[2])return ht.find(e);this.length=1,this[0]=i}return this.context=ft,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):at.isFunction(e)?"undefined"!=typeof ht.ready?ht.ready(e):e(at):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),at.makeArray(e,this))};mt.prototype=at.fn,ht=at(ft);var vt=/^(?:parents|prev(?:Until|All))/,yt={children:!0,contents:!0,next:!0,prev:!0};at.extend({dir:function(e,t,n){for(var i=[],a=e[t];a&&9!==a.nodeType&&(void 0===n||1!==a.nodeType||!at(a).is(n));)1===a.nodeType&&i.push(a),a=a[t];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),at.fn.extend({has:function(e){var t,n=at(e,this),i=n.length;return this.filter(function(){for(t=0;i>t;t++)if(at.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,i=0,a=this.length,o=[],r=ut.test(e)||"string"!=typeof e?at(e,t||this.context):0;a>i;i++)for(n=this[i];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(r?r.index(n)>-1:1===n.nodeType&&at.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?at.unique(o):o)},index:function(e){return e?"string"==typeof e?at.inArray(this[0],at(e)):at.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(at.unique(at.merge(this.get(),at(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),at.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return at.dir(e,"parentNode")},parentsUntil:function(e,t,n){return at.dir(e,"parentNode",n)},next:function(e){return a(e,"nextSibling")},prev:function(e){return a(e,"previousSibling")},nextAll:function(e){return at.dir(e,"nextSibling")},prevAll:function(e){return at.dir(e,"previousSibling")},nextUntil:function(e,t,n){return at.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return at.dir(e,"previousSibling",n)},siblings:function(e){return at.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return at.sibling(e.firstChild)},contents:function(e){return at.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:at.merge([],e.childNodes)}},function(e,t){at.fn[e]=function(n,i){var a=at.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(a=at.filter(i,a)),this.length>1&&(yt[e]||(a=at.unique(a)),vt.test(e)&&(a=a.reverse())),this.pushStack(a)}});var _t=/\S+/g,bt={};at.Callbacks=function(e){e="string"==typeof e?bt[e]||o(e):at.extend({},e);var t,n,i,a,r,s,c=[],l=!e.once&&[],u=function(o){for(n=e.memory&&o,i=!0,r=s||0,s=0,a=c.length,t=!0;c&&a>r;r++)if(c[r].apply(o[0],o[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,c&&(l?l.length&&u(l.shift()):n?c=[]:d.disable())},d={add:function(){if(c){var i=c.length;!function o(t){at.each(t,function(t,n){var i=at.type(n);"function"===i?e.unique&&d.has(n)||c.push(n):n&&n.length&&"string"!==i&&o(n)})}(arguments),t?a=c.length:n&&(s=i,u(n))}return this},remove:function(){return c&&at.each(arguments,function(e,n){for(var i;(i=at.inArray(n,c,i))>-1;)c.splice(i,1),t&&(a>=i&&a--,r>=i&&r--)}),this},has:function(e){return e?at.inArray(e,c)>-1:!(!c||!c.length)},empty:function(){return c=[],a=0,this},disable:function(){return c=l=n=void 0,this},disabled:function(){return!c},lock:function(){return l=void 0,n||d.disable(),this},locked:function(){return!l},fireWith:function(e,n){return!c||i&&!l||(n=n||[],n=[e,n.slice?n.slice():n],t?l.push(n):u(n)),this
},fire:function(){return d.fireWith(this,arguments),this},fired:function(){return!!i}};return d},at.extend({Deferred:function(e){var t=[["resolve","done",at.Callbacks("once memory"),"resolved"],["reject","fail",at.Callbacks("once memory"),"rejected"],["notify","progress",at.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var e=arguments;return at.Deferred(function(n){at.each(t,function(t,o){var r=at.isFunction(e[t])&&e[t];a[o[1]](function(){var e=r&&r.apply(this,arguments);e&&at.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?at.extend(e,i):i}},a={};return i.pipe=i.then,at.each(t,function(e,o){var r=o[2],s=o[3];i[o[1]]=r.add,s&&r.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),a[o[0]]=function(){return a[o[0]+"With"](this===a?i:this,arguments),this},a[o[0]+"With"]=r.fireWith}),i.promise(a),e&&e.call(a,a),a},when:function(e){var t,n,i,a=0,o=X.call(arguments),r=o.length,s=1!==r||e&&at.isFunction(e.promise)?r:0,c=1===s?e:at.Deferred(),l=function(e,n,i){return function(a){n[e]=this,i[e]=arguments.length>1?X.call(arguments):a,i===t?c.notifyWith(n,i):--s||c.resolveWith(n,i)}};if(r>1)for(t=new Array(r),n=new Array(r),i=new Array(r);r>a;a++)o[a]&&at.isFunction(o[a].promise)?o[a].promise().done(l(a,i,o)).fail(c.reject).progress(l(a,n,t)):--s;return s||c.resolveWith(i,o),c.promise()}});var wt;at.fn.ready=function(e){return at.ready.promise().done(e),this},at.extend({isReady:!1,readyWait:1,holdReady:function(e){e?at.readyWait++:at.ready(!0)},ready:function(e){if(e===!0?!--at.readyWait:!at.isReady){if(!ft.body)return setTimeout(at.ready);at.isReady=!0,e!==!0&&--at.readyWait>0||(wt.resolveWith(ft,[at]),at.fn.triggerHandler&&(at(ft).triggerHandler("ready"),at(ft).off("ready")))}}}),at.ready.promise=function(t){if(!wt)if(wt=at.Deferred(),"complete"===ft.readyState)setTimeout(at.ready);else if(ft.addEventListener)ft.addEventListener("DOMContentLoaded",s,!1),e.addEventListener("load",s,!1);else{ft.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&ft.documentElement}catch(i){}n&&n.doScroll&&!function a(){if(!at.isReady){try{n.doScroll("left")}catch(e){return setTimeout(a,50)}r(),at.ready()}}()}return wt.promise(t)};var $t,Ct="undefined";for($t in at(nt))break;nt.ownLast="0"!==$t,nt.inlineBlockNeedsLayout=!1,at(function(){var e,t,n,i;n=ft.getElementsByTagName("body")[0],n&&n.style&&(t=ft.createElement("div"),i=ft.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),typeof t.style.zoom!==Ct&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",nt.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(i))}),function(){var e=ft.createElement("div");if(null==nt.deleteExpando){nt.deleteExpando=!0;try{delete e.test}catch(t){nt.deleteExpando=!1}}e=null}(),at.acceptData=function(e){var t=at.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t};var kt=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,St=/([A-Z])/g;at.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?at.cache[e[at.expando]]:e[at.expando],!!e&&!l(e)},data:function(e,t,n){return u(e,t,n)},removeData:function(e,t){return d(e,t)},_data:function(e,t,n){return u(e,t,n,!0)},_removeData:function(e,t){return d(e,t,!0)}}),at.fn.extend({data:function(e,t){var n,i,a,o=this[0],r=o&&o.attributes;if(void 0===e){if(this.length&&(a=at.data(o),1===o.nodeType&&!at._data(o,"parsedAttrs"))){for(n=r.length;n--;)r[n]&&(i=r[n].name,0===i.indexOf("data-")&&(i=at.camelCase(i.slice(5)),c(o,i,a[i])));at._data(o,"parsedAttrs",!0)}return a}return"object"==typeof e?this.each(function(){at.data(this,e)}):arguments.length>1?this.each(function(){at.data(this,e,t)}):o?c(o,e,at.data(o,e)):void 0},removeData:function(e){return this.each(function(){at.removeData(this,e)})}}),at.extend({queue:function(e,t,n){var i;return e?(t=(t||"fx")+"queue",i=at._data(e,t),n&&(!i||at.isArray(n)?i=at._data(e,t,at.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=at.queue(e,t),i=n.length,a=n.shift(),o=at._queueHooks(e,t),r=function(){at.dequeue(e,t)};"inprogress"===a&&(a=n.shift(),i--),a&&("fx"===t&&n.unshift("inprogress"),delete o.stop,a.call(e,r,o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return at._data(e,n)||at._data(e,n,{empty:at.Callbacks("once memory").add(function(){at._removeData(e,t+"queue"),at._removeData(e,n)})})}}),at.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?at.queue(this[0],e):void 0===t?this:this.each(function(){var n=at.queue(this,e,t);at._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&at.dequeue(this,e)})},dequeue:function(e){return this.each(function(){at.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,i=1,a=at.Deferred(),o=this,r=this.length,s=function(){--i||a.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";r--;)n=at._data(o[r],e+"queueHooks"),n&&n.empty&&(i++,n.empty.add(s));return s(),a.promise(t)}});var xt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Mt=["Top","Right","Bottom","Left"],Tt=function(e,t){return e=t||e,"none"===at.css(e,"display")||!at.contains(e.ownerDocument,e)},Et=at.access=function(e,t,n,i,a,o,r){var s=0,c=e.length,l=null==n;if("object"===at.type(n)){a=!0;for(s in n)at.access(e,t,s,n[s],!0,o,r)}else if(void 0!==i&&(a=!0,at.isFunction(i)||(r=!0),l&&(r?(t.call(e,i),t=null):(l=t,t=function(e,t,n){return l.call(at(e),n)})),t))for(;c>s;s++)t(e[s],n,r?i:i.call(e[s],s,t(e[s],n)));return a?e:l?t.call(e):c?t(e[0],n):o},At=/^(?:checkbox|radio)$/i;!function(){var e=ft.createElement("input"),t=ft.createElement("div"),n=ft.createDocumentFragment();if(t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",nt.leadingWhitespace=3===t.firstChild.nodeType,nt.tbody=!t.getElementsByTagName("tbody").length,nt.htmlSerialize=!!t.getElementsByTagName("link").length,nt.html5Clone="<:nav></:nav>"!==ft.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),nt.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",nt.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",nt.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,nt.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){nt.noCloneEvent=!1}),t.cloneNode(!0).click()),null==nt.deleteExpando){nt.deleteExpando=!0;try{delete t.test}catch(i){nt.deleteExpando=!1}}}(),function(){var t,n,i=ft.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(nt[t+"Bubbles"]=n in e)||(i.setAttribute(n,"t"),nt[t+"Bubbles"]=i.attributes[n].expando===!1);i=null}();var Dt=/^(?:input|select|textarea)$/i,It=/^key/,Pt=/^(?:mouse|pointer|contextmenu)|click/,Nt=/^(?:focusinfocus|focusoutblur)$/,Lt=/^([^.]*)(?:\.(.+)|)$/;at.event={global:{},add:function(e,t,n,i,a){var o,r,s,c,l,u,d,p,h,f,g,m=at._data(e);if(m){for(n.handler&&(c=n,n=c.handler,a=c.selector),n.guid||(n.guid=at.guid++),(r=m.events)||(r=m.events={}),(u=m.handle)||(u=m.handle=function(e){return typeof at===Ct||e&&at.event.triggered===e.type?void 0:at.event.dispatch.apply(u.elem,arguments)},u.elem=e),t=(t||"").match(_t)||[""],s=t.length;s--;)o=Lt.exec(t[s])||[],h=g=o[1],f=(o[2]||"").split(".").sort(),h&&(l=at.event.special[h]||{},h=(a?l.delegateType:l.bindType)||h,l=at.event.special[h]||{},d=at.extend({type:h,origType:g,data:i,handler:n,guid:n.guid,selector:a,needsContext:a&&at.expr.match.needsContext.test(a),namespace:f.join(".")},c),(p=r[h])||(p=r[h]=[],p.delegateCount=0,l.setup&&l.setup.call(e,i,f,u)!==!1||(e.addEventListener?e.addEventListener(h,u,!1):e.attachEvent&&e.attachEvent("on"+h,u))),l.add&&(l.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),a?p.splice(p.delegateCount++,0,d):p.push(d),at.event.global[h]=!0);e=null}},remove:function(e,t,n,i,a){var o,r,s,c,l,u,d,p,h,f,g,m=at.hasData(e)&&at._data(e);if(m&&(u=m.events)){for(t=(t||"").match(_t)||[""],l=t.length;l--;)if(s=Lt.exec(t[l])||[],h=g=s[1],f=(s[2]||"").split(".").sort(),h){for(d=at.event.special[h]||{},h=(i?d.delegateType:d.bindType)||h,p=u[h]||[],s=s[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),c=o=p.length;o--;)r=p[o],!a&&g!==r.origType||n&&n.guid!==r.guid||s&&!s.test(r.namespace)||i&&i!==r.selector&&("**"!==i||!r.selector)||(p.splice(o,1),r.selector&&p.delegateCount--,d.remove&&d.remove.call(e,r));c&&!p.length&&(d.teardown&&d.teardown.call(e,f,m.handle)!==!1||at.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)at.event.remove(e,h+t[l],n,i,!0);at.isEmptyObject(u)&&(delete m.handle,at._removeData(e,"events"))}},trigger:function(t,n,i,a){var o,r,s,c,l,u,d,p=[i||ft],h=tt.call(t,"type")?t.type:t,f=tt.call(t,"namespace")?t.namespace.split("."):[];if(s=u=i=i||ft,3!==i.nodeType&&8!==i.nodeType&&!Nt.test(h+at.event.triggered)&&(h.indexOf(".")>=0&&(f=h.split("."),h=f.shift(),f.sort()),r=h.indexOf(":")<0&&"on"+h,t=t[at.expando]?t:new at.Event(h,"object"==typeof t&&t),t.isTrigger=a?2:3,t.namespace=f.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:at.makeArray(n,[t]),l=at.event.special[h]||{},a||!l.trigger||l.trigger.apply(i,n)!==!1)){if(!a&&!l.noBubble&&!at.isWindow(i)){for(c=l.delegateType||h,Nt.test(c+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),u=s;u===(i.ownerDocument||ft)&&p.push(u.defaultView||u.parentWindow||e)}for(d=0;(s=p[d++])&&!t.isPropagationStopped();)t.type=d>1?c:l.bindType||h,o=(at._data(s,"events")||{})[t.type]&&at._data(s,"handle"),o&&o.apply(s,n),o=r&&s[r],o&&o.apply&&at.acceptData(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=h,!a&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),n)===!1)&&at.acceptData(i)&&r&&i[h]&&!at.isWindow(i)){u=i[r],u&&(i[r]=null),at.event.triggered=h;try{i[h]()}catch(g){}at.event.triggered=void 0,u&&(i[r]=u)}return t.result}},dispatch:function(e){e=at.event.fix(e);var t,n,i,a,o,r=[],s=X.call(arguments),c=(at._data(this,"events")||{})[e.type]||[],l=at.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(r=at.event.handlers.call(this,e,c),t=0;(a=r[t++])&&!e.isPropagationStopped();)for(e.currentTarget=a.elem,o=0;(i=a.handlers[o++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,n=((at.event.special[i.origType]||{}).handle||i.handler).apply(a.elem,s),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,i,a,o,r=[],s=t.delegateCount,c=e.target;if(s&&c.nodeType&&(!e.button||"click"!==e.type))for(;c!=this;c=c.parentNode||this)if(1===c.nodeType&&(c.disabled!==!0||"click"!==e.type)){for(a=[],o=0;s>o;o++)i=t[o],n=i.selector+" ",void 0===a[n]&&(a[n]=i.needsContext?at(n,this).index(c)>=0:at.find(n,this,null,[c]).length),a[n]&&a.push(i);a.length&&r.push({elem:c,handlers:a})}return s<t.length&&r.push({elem:this,handlers:t.slice(s)}),r},fix:function(e){if(e[at.expando])return e;var t,n,i,a=e.type,o=e,r=this.fixHooks[a];for(r||(this.fixHooks[a]=r=Pt.test(a)?this.mouseHooks:It.test(a)?this.keyHooks:{}),i=r.props?this.props.concat(r.props):this.props,e=new at.Event(o),t=i.length;t--;)n=i[t],e[n]=o[n];return e.target||(e.target=o.srcElement||ft),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,r.filter?r.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,i,a,o=t.button,r=t.fromElement;return null==e.pageX&&null!=t.clientX&&(i=e.target.ownerDocument||ft,a=i.documentElement,n=i.body,e.pageX=t.clientX+(a&&a.scrollLeft||n&&n.scrollLeft||0)-(a&&a.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(a&&a.scrollTop||n&&n.scrollTop||0)-(a&&a.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&r&&(e.relatedTarget=r===e.target?t.toElement:r),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==f()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===f()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return at.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return at.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,i){var a=at.extend(new at.Event,n,{type:e,isSimulated:!0,originalEvent:{}});i?at.event.trigger(a,null,t):at.event.dispatch.call(t,a),a.isDefaultPrevented()&&n.preventDefault()}},at.removeEvent=ft.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var i="on"+t;e.detachEvent&&(typeof e[i]===Ct&&(e[i]=null),e.detachEvent(i,n))},at.Event=function(e,t){return this instanceof at.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?p:h):this.type=e,t&&at.extend(this,t),this.timeStamp=e&&e.timeStamp||at.now(),void(this[at.expando]=!0)):new at.Event(e,t)},at.Event.prototype={isDefaultPrevented:h,isPropagationStopped:h,isImmediatePropagationStopped:h,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=p,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=p,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=p,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},at.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){at.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,i=this,a=e.relatedTarget,o=e.handleObj;return(!a||a!==i&&!at.contains(i,a))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),nt.submitBubbles||(at.event.special.submit={setup:function(){return at.nodeName(this,"form")?!1:void at.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=at.nodeName(t,"input")||at.nodeName(t,"button")?t.form:void 0;n&&!at._data(n,"submitBubbles")&&(at.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),at._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&at.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return at.nodeName(this,"form")?!1:void at.event.remove(this,"._submit")}}),nt.changeBubbles||(at.event.special.change={setup:function(){return Dt.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(at.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),at.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),at.event.simulate("change",this,e,!0)})),!1):void at.event.add(this,"beforeactivate._change",function(e){var t=e.target;Dt.test(t.nodeName)&&!at._data(t,"changeBubbles")&&(at.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||at.event.simulate("change",this.parentNode,e,!0)}),at._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return at.event.remove(this,"._change"),!Dt.test(this.nodeName)}}),nt.focusinBubbles||at.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){at.event.simulate(t,e.target,at.event.fix(e),!0)};at.event.special[t]={setup:function(){var i=this.ownerDocument||this,a=at._data(i,t);a||i.addEventListener(e,n,!0),at._data(i,t,(a||0)+1)},teardown:function(){var i=this.ownerDocument||this,a=at._data(i,t)-1;a?at._data(i,t,a):(i.removeEventListener(e,n,!0),at._removeData(i,t))}}}),at.fn.extend({on:function(e,t,n,i,a){var o,r;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(o in e)this.on(o,t,n,e[o],a);return this}if(null==n&&null==i?(i=t,n=t=void 0):null==i&&("string"==typeof t?(i=n,n=void 0):(i=n,n=t,t=void 0)),i===!1)i=h;else if(!i)return this;return 1===a&&(r=i,i=function(e){return at().off(e),r.apply(this,arguments)},i.guid=r.guid||(r.guid=at.guid++)),this.each(function(){at.event.add(this,e,i,n,t)})},one:function(e,t,n,i){return this.on(e,t,n,i,1)},off:function(e,t,n){var i,a;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,at(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(a in e)this.off(a,t,e[a]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=h),this.each(function(){at.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){at.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?at.event.trigger(e,t,n,!0):void 0}});var Ft="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Bt=/ jQuery\d+="(?:null|\d+)"/g,Ot=new RegExp("<(?:"+Ft+")[\\s/>]","i"),Ut=/^\s+/,Rt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,qt=/<([\w:]+)/,Ht=/<tbody/i,jt=/<|&#?\w+;/,Vt=/<(?:script|style|link)/i,zt=/checked\s*(?:[^=]|=\s*.checked.)/i,Wt=/^$|\/(?:java|ecma)script/i,Gt=/^true\/(.*)/,Kt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Xt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:nt.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},Yt=g(ft),Zt=Yt.appendChild(ft.createElement("div"));Xt.optgroup=Xt.option,Xt.tbody=Xt.tfoot=Xt.colgroup=Xt.caption=Xt.thead,Xt.th=Xt.td,at.extend({clone:function(e,t,n){var i,a,o,r,s,c=at.contains(e.ownerDocument,e);if(nt.html5Clone||at.isXMLDoc(e)||!Ot.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Zt.innerHTML=e.outerHTML,Zt.removeChild(o=Zt.firstChild)),!(nt.noCloneEvent&&nt.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||at.isXMLDoc(e)))for(i=m(o),s=m(e),r=0;null!=(a=s[r]);++r)i[r]&&C(a,i[r]);if(t)if(n)for(s=s||m(e),i=i||m(o),r=0;null!=(a=s[r]);r++)$(a,i[r]);else $(e,o);return i=m(o,"script"),i.length>0&&w(i,!c&&m(e,"script")),i=s=a=null,o},buildFragment:function(e,t,n,i){for(var a,o,r,s,c,l,u,d=e.length,p=g(t),h=[],f=0;d>f;f++)if(o=e[f],o||0===o)if("object"===at.type(o))at.merge(h,o.nodeType?[o]:o);else if(jt.test(o)){for(s=s||p.appendChild(t.createElement("div")),c=(qt.exec(o)||["",""])[1].toLowerCase(),u=Xt[c]||Xt._default,s.innerHTML=u[1]+o.replace(Rt,"<$1></$2>")+u[2],a=u[0];a--;)s=s.lastChild;if(!nt.leadingWhitespace&&Ut.test(o)&&h.push(t.createTextNode(Ut.exec(o)[0])),!nt.tbody)for(o="table"!==c||Ht.test(o)?"<table>"!==u[1]||Ht.test(o)?0:s:s.firstChild,a=o&&o.childNodes.length;a--;)at.nodeName(l=o.childNodes[a],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(at.merge(h,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=p.lastChild}else h.push(t.createTextNode(o));for(s&&p.removeChild(s),nt.appendChecked||at.grep(m(h,"input"),v),f=0;o=h[f++];)if((!i||-1===at.inArray(o,i))&&(r=at.contains(o.ownerDocument,o),s=m(p.appendChild(o),"script"),r&&w(s),n))for(a=0;o=s[a++];)Wt.test(o.type||"")&&n.push(o);return s=null,p},cleanData:function(e,t){for(var n,i,a,o,r=0,s=at.expando,c=at.cache,l=nt.deleteExpando,u=at.event.special;null!=(n=e[r]);r++)if((t||at.acceptData(n))&&(a=n[s],o=a&&c[a])){if(o.events)for(i in o.events)u[i]?at.event.remove(n,i):at.removeEvent(n,i,o.handle);c[a]&&(delete c[a],l?delete n[s]:typeof n.removeAttribute!==Ct?n.removeAttribute(s):n[s]=null,K.push(a))}}}),at.fn.extend({text:function(e){return Et(this,function(e){return void 0===e?at.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ft).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=y(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=y(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,i=e?at.filter(e,this):this,a=0;null!=(n=i[a]);a++)t||1!==n.nodeType||at.cleanData(m(n)),n.parentNode&&(t&&at.contains(n.ownerDocument,n)&&w(m(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&at.cleanData(m(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&at.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return at.clone(this,e,t)})},html:function(e){return Et(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Bt,""):void 0;if(!("string"!=typeof e||Vt.test(e)||!nt.htmlSerialize&&Ot.test(e)||!nt.leadingWhitespace&&Ut.test(e)||Xt[(qt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Rt,"<$1></$2>");try{for(;i>n;n++)t=this[n]||{},1===t.nodeType&&(at.cleanData(m(t,!1)),t.innerHTML=e);t=0}catch(a){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,at.cleanData(m(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=Y.apply([],e);var n,i,a,o,r,s,c=0,l=this.length,u=this,d=l-1,p=e[0],h=at.isFunction(p);if(h||l>1&&"string"==typeof p&&!nt.checkClone&&zt.test(p))return this.each(function(n){var i=u.eq(n);h&&(e[0]=p.call(this,n,i.html())),i.domManip(e,t)});if(l&&(s=at.buildFragment(e,this[0].ownerDocument,!1,this),n=s.firstChild,1===s.childNodes.length&&(s=n),n)){for(o=at.map(m(s,"script"),_),a=o.length;l>c;c++)i=s,c!==d&&(i=at.clone(i,!0,!0),a&&at.merge(o,m(i,"script"))),t.call(this[c],i,c);if(a)for(r=o[o.length-1].ownerDocument,at.map(o,b),c=0;a>c;c++)i=o[c],Wt.test(i.type||"")&&!at._data(i,"globalEval")&&at.contains(r,i)&&(i.src?at._evalUrl&&at._evalUrl(i.src):at.globalEval((i.text||i.textContent||i.innerHTML||"").replace(Kt,"")));s=n=null}return this}}),at.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){at.fn[e]=function(e){for(var n,i=0,a=[],o=at(e),r=o.length-1;r>=i;i++)n=i===r?this:this.clone(!0),at(o[i])[t](n),Z.apply(a,n.get());return this.pushStack(a)}});var Qt,Jt={};!function(){var e;nt.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,i;return n=ft.getElementsByTagName("body")[0],n&&n.style?(t=ft.createElement("div"),i=ft.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),typeof t.style.zoom!==Ct&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(ft.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(i),e):void 0}}();var en,tn,nn=/^margin/,an=new RegExp("^("+xt+")(?!px)[a-z%]+$","i"),on=/^(top|right|bottom|left)$/;e.getComputedStyle?(en=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)},tn=function(e,t,n){var i,a,o,r,s=e.style;return n=n||en(e),r=n?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==r||at.contains(e.ownerDocument,e)||(r=at.style(e,t)),an.test(r)&&nn.test(t)&&(i=s.width,a=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=r,r=n.width,s.width=i,s.minWidth=a,s.maxWidth=o)),void 0===r?r:r+""}):ft.documentElement.currentStyle&&(en=function(e){return e.currentStyle},tn=function(e,t,n){var i,a,o,r,s=e.style;return n=n||en(e),r=n?n[t]:void 0,null==r&&s&&s[t]&&(r=s[t]),an.test(r)&&!on.test(t)&&(i=s.left,a=e.runtimeStyle,o=a&&a.left,o&&(a.left=e.currentStyle.left),s.left="fontSize"===t?"1em":r,r=s.pixelLeft+"px",s.left=i,o&&(a.left=o)),void 0===r?r:r+""||"auto"}),!function(){function t(){var t,n,i,a;n=ft.getElementsByTagName("body")[0],n&&n.style&&(t=ft.createElement("div"),i=ft.createElement("div"),i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(i).appendChild(t),t.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o=r=!1,c=!0,e.getComputedStyle&&(o="1%"!==(e.getComputedStyle(t,null)||{}).top,r="4px"===(e.getComputedStyle(t,null)||{width:"4px"}).width,a=t.appendChild(ft.createElement("div")),a.style.cssText=t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",a.style.marginRight=a.style.width="0",t.style.width="1px",c=!parseFloat((e.getComputedStyle(a,null)||{}).marginRight)),t.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=t.getElementsByTagName("td"),a[0].style.cssText="margin:0;border:0;padding:0;display:none",s=0===a[0].offsetHeight,s&&(a[0].style.display="",a[1].style.display="none",s=0===a[0].offsetHeight),n.removeChild(i))}var n,i,a,o,r,s,c;n=ft.createElement("div"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=n.getElementsByTagName("a")[0],(i=a&&a.style)&&(i.cssText="float:left;opacity:.5",nt.opacity="0.5"===i.opacity,nt.cssFloat=!!i.cssFloat,n.style.backgroundClip="content-box",n.cloneNode(!0).style.backgroundClip="",nt.clearCloneStyle="content-box"===n.style.backgroundClip,nt.boxSizing=""===i.boxSizing||""===i.MozBoxSizing||""===i.WebkitBoxSizing,at.extend(nt,{reliableHiddenOffsets:function(){return null==s&&t(),s},boxSizingReliable:function(){return null==r&&t(),r},pixelPosition:function(){return null==o&&t(),o},reliableMarginRight:function(){return null==c&&t(),c}}))}(),at.swap=function(e,t,n,i){var a,o,r={};for(o in t)r[o]=e.style[o],e.style[o]=t[o];a=n.apply(e,i||[]);for(o in t)e.style[o]=r[o];return a};var rn=/alpha\([^)]*\)/i,sn=/opacity\s*=\s*([^)]*)/,cn=/^(none|table(?!-c[ea]).+)/,ln=new RegExp("^("+xt+")(.*)$","i"),un=new RegExp("^([+-])=("+xt+")","i"),dn={position:"absolute",visibility:"hidden",display:"block"},pn={letterSpacing:"0",fontWeight:"400"},hn=["Webkit","O","Moz","ms"];at.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=tn(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":nt.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var a,o,r,s=at.camelCase(t),c=e.style;if(t=at.cssProps[s]||(at.cssProps[s]=M(c,s)),r=at.cssHooks[t]||at.cssHooks[s],void 0===n)return r&&"get"in r&&void 0!==(a=r.get(e,!1,i))?a:c[t];if(o=typeof n,"string"===o&&(a=un.exec(n))&&(n=(a[1]+1)*a[2]+parseFloat(at.css(e,t)),o="number"),null!=n&&n===n&&("number"!==o||at.cssNumber[s]||(n+="px"),nt.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),!(r&&"set"in r&&void 0===(n=r.set(e,n,i)))))try{c[t]=n}catch(l){}}},css:function(e,t,n,i){var a,o,r,s=at.camelCase(t);return t=at.cssProps[s]||(at.cssProps[s]=M(e.style,s)),r=at.cssHooks[t]||at.cssHooks[s],r&&"get"in r&&(o=r.get(e,!0,n)),void 0===o&&(o=tn(e,t,i)),"normal"===o&&t in pn&&(o=pn[t]),""===n||n?(a=parseFloat(o),n===!0||at.isNumeric(a)?a||0:o):o}}),at.each(["height","width"],function(e,t){at.cssHooks[t]={get:function(e,n,i){return n?cn.test(at.css(e,"display"))&&0===e.offsetWidth?at.swap(e,dn,function(){return D(e,t,i)}):D(e,t,i):void 0},set:function(e,n,i){var a=i&&en(e);return E(e,n,i?A(e,t,i,nt.boxSizing&&"border-box"===at.css(e,"boxSizing",!1,a),a):0)}}}),nt.opacity||(at.cssHooks.opacity={get:function(e,t){return sn.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,i=e.currentStyle,a=at.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=i&&i.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===at.trim(o.replace(rn,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||i&&!i.filter)||(n.filter=rn.test(o)?o.replace(rn,a):o+" "+a)}}),at.cssHooks.marginRight=x(nt.reliableMarginRight,function(e,t){return t?at.swap(e,{display:"inline-block"},tn,[e,"marginRight"]):void 0}),at.each({margin:"",padding:"",border:"Width"},function(e,t){at.cssHooks[e+t]={expand:function(n){for(var i=0,a={},o="string"==typeof n?n.split(" "):[n];4>i;i++)a[e+Mt[i]+t]=o[i]||o[i-2]||o[0];return a}},nn.test(e)||(at.cssHooks[e+t].set=E)}),at.fn.extend({css:function(e,t){return Et(this,function(e,t,n){var i,a,o={},r=0;if(at.isArray(t)){for(i=en(e),a=t.length;a>r;r++)o[t[r]]=at.css(e,t[r],!1,i);return o}return void 0!==n?at.style(e,t,n):at.css(e,t)},e,t,arguments.length>1)},show:function(){return T(this,!0)},hide:function(){return T(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Tt(this)?at(this).show():at(this).hide()})}}),at.Tween=I,I.prototype={constructor:I,init:function(e,t,n,i,a,o){this.elem=e,this.prop=n,this.easing=a||"swing",this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=o||(at.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.pos=t=this.options.duration?at.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=at.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){at.fx.step[e.prop]?at.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[at.cssProps[e.prop]]||at.cssHooks[e.prop])?at.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},at.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2
}},at.fx=I.prototype.init,at.fx.step={};var fn,gn,mn=/^(?:toggle|show|hide)$/,vn=new RegExp("^(?:([+-])=|)("+xt+")([a-z%]*)$","i"),yn=/queueHooks$/,_n=[F],bn={"*":[function(e,t){var n=this.createTween(e,t),i=n.cur(),a=vn.exec(t),o=a&&a[3]||(at.cssNumber[e]?"":"px"),r=(at.cssNumber[e]||"px"!==o&&+i)&&vn.exec(at.css(n.elem,e)),s=1,c=20;if(r&&r[3]!==o){o=o||r[3],a=a||[],r=+i||1;do s=s||".5",r/=s,at.style(n.elem,e,r+o);while(s!==(s=n.cur()/i)&&1!==s&&--c)}return a&&(r=n.start=+r||+i||0,n.unit=o,n.end=a[1]?r+(a[1]+1)*a[2]:+a[2]),n}]};at.Animation=at.extend(O,{tweener:function(e,t){at.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,i=0,a=e.length;a>i;i++)n=e[i],bn[n]=bn[n]||[],bn[n].unshift(t)},prefilter:function(e,t){t?_n.unshift(e):_n.push(e)}}),at.speed=function(e,t,n){var i=e&&"object"==typeof e?at.extend({},e):{complete:n||!n&&t||at.isFunction(e)&&e,duration:e,easing:n&&t||t&&!at.isFunction(t)&&t};return i.duration=at.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in at.fx.speeds?at.fx.speeds[i.duration]:at.fx.speeds._default,(null==i.queue||i.queue===!0)&&(i.queue="fx"),i.old=i.complete,i.complete=function(){at.isFunction(i.old)&&i.old.call(this),i.queue&&at.dequeue(this,i.queue)},i},at.fn.extend({fadeTo:function(e,t,n,i){return this.filter(Tt).css("opacity",0).show().end().animate({opacity:t},e,n,i)},animate:function(e,t,n,i){var a=at.isEmptyObject(e),o=at.speed(t,n,i),r=function(){var t=O(this,at.extend({},e),o);(a||at._data(this,"finish"))&&t.stop(!0)};return r.finish=r,a||o.queue===!1?this.each(r):this.queue(o.queue,r)},stop:function(e,t,n){var i=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,a=null!=e&&e+"queueHooks",o=at.timers,r=at._data(this);if(a)r[a]&&r[a].stop&&i(r[a]);else for(a in r)r[a]&&r[a].stop&&yn.test(a)&&i(r[a]);for(a=o.length;a--;)o[a].elem!==this||null!=e&&o[a].queue!==e||(o[a].anim.stop(n),t=!1,o.splice(a,1));(t||!n)&&at.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=at._data(this),i=n[e+"queue"],a=n[e+"queueHooks"],o=at.timers,r=i?i.length:0;for(n.finish=!0,at.queue(this,e,[]),a&&a.stop&&a.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;r>t;t++)i[t]&&i[t].finish&&i[t].finish.call(this);delete n.finish})}}),at.each(["toggle","show","hide"],function(e,t){var n=at.fn[t];at.fn[t]=function(e,i,a){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(N(t,!0),e,i,a)}}),at.each({slideDown:N("show"),slideUp:N("hide"),slideToggle:N("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){at.fn[e]=function(e,n,i){return this.animate(t,e,n,i)}}),at.timers=[],at.fx.tick=function(){var e,t=at.timers,n=0;for(fn=at.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||at.fx.stop(),fn=void 0},at.fx.timer=function(e){at.timers.push(e),e()?at.fx.start():at.timers.pop()},at.fx.interval=13,at.fx.start=function(){gn||(gn=setInterval(at.fx.tick,at.fx.interval))},at.fx.stop=function(){clearInterval(gn),gn=null},at.fx.speeds={slow:600,fast:200,_default:400},at.fn.delay=function(e,t){return e=at.fx?at.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var i=setTimeout(t,e);n.stop=function(){clearTimeout(i)}})},function(){var e,t,n,i,a;t=ft.createElement("div"),t.setAttribute("className","t"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",i=t.getElementsByTagName("a")[0],n=ft.createElement("select"),a=n.appendChild(ft.createElement("option")),e=t.getElementsByTagName("input")[0],i.style.cssText="top:1px",nt.getSetAttribute="t"!==t.className,nt.style=/top/.test(i.getAttribute("style")),nt.hrefNormalized="/a"===i.getAttribute("href"),nt.checkOn=!!e.value,nt.optSelected=a.selected,nt.enctype=!!ft.createElement("form").enctype,n.disabled=!0,nt.optDisabled=!a.disabled,e=ft.createElement("input"),e.setAttribute("value",""),nt.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),nt.radioValue="t"===e.value}();var wn=/\r/g;at.fn.extend({val:function(e){var t,n,i,a=this[0];return arguments.length?(i=at.isFunction(e),this.each(function(n){var a;1===this.nodeType&&(a=i?e.call(this,n,at(this).val()):e,null==a?a="":"number"==typeof a?a+="":at.isArray(a)&&(a=at.map(a,function(e){return null==e?"":e+""})),t=at.valHooks[this.type]||at.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,a,"value")||(this.value=a))})):a?(t=at.valHooks[a.type]||at.valHooks[a.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(a,"value"))?n:(n=a.value,"string"==typeof n?n.replace(wn,""):null==n?"":n)):void 0}}),at.extend({valHooks:{option:{get:function(e){var t=at.find.attr(e,"value");return null!=t?t:at.trim(at.text(e))}},select:{get:function(e){for(var t,n,i=e.options,a=e.selectedIndex,o="select-one"===e.type||0>a,r=o?null:[],s=o?a+1:i.length,c=0>a?s:o?a:0;s>c;c++)if(n=i[c],!(!n.selected&&c!==a||(nt.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&at.nodeName(n.parentNode,"optgroup"))){if(t=at(n).val(),o)return t;r.push(t)}return r},set:function(e,t){for(var n,i,a=e.options,o=at.makeArray(t),r=a.length;r--;)if(i=a[r],at.inArray(at.valHooks.option.get(i),o)>=0)try{i.selected=n=!0}catch(s){i.scrollHeight}else i.selected=!1;return n||(e.selectedIndex=-1),a}}}}),at.each(["radio","checkbox"],function(){at.valHooks[this]={set:function(e,t){return at.isArray(t)?e.checked=at.inArray(at(e).val(),t)>=0:void 0}},nt.checkOn||(at.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var $n,Cn,kn=at.expr.attrHandle,Sn=/^(?:checked|selected)$/i,xn=nt.getSetAttribute,Mn=nt.input;at.fn.extend({attr:function(e,t){return Et(this,at.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){at.removeAttr(this,e)})}}),at.extend({attr:function(e,t,n){var i,a,o=e.nodeType;return e&&3!==o&&8!==o&&2!==o?typeof e.getAttribute===Ct?at.prop(e,t,n):(1===o&&at.isXMLDoc(e)||(t=t.toLowerCase(),i=at.attrHooks[t]||(at.expr.match.bool.test(t)?Cn:$n)),void 0===n?i&&"get"in i&&null!==(a=i.get(e,t))?a:(a=at.find.attr(e,t),null==a?void 0:a):null!==n?i&&"set"in i&&void 0!==(a=i.set(e,n,t))?a:(e.setAttribute(t,n+""),n):void at.removeAttr(e,t)):void 0},removeAttr:function(e,t){var n,i,a=0,o=t&&t.match(_t);if(o&&1===e.nodeType)for(;n=o[a++];)i=at.propFix[n]||n,at.expr.match.bool.test(n)?Mn&&xn||!Sn.test(n)?e[i]=!1:e[at.camelCase("default-"+n)]=e[i]=!1:at.attr(e,n,""),e.removeAttribute(xn?n:i)},attrHooks:{type:{set:function(e,t){if(!nt.radioValue&&"radio"===t&&at.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),Cn={set:function(e,t,n){return t===!1?at.removeAttr(e,n):Mn&&xn||!Sn.test(n)?e.setAttribute(!xn&&at.propFix[n]||n,n):e[at.camelCase("default-"+n)]=e[n]=!0,n}},at.each(at.expr.match.bool.source.match(/\w+/g),function(e,t){var n=kn[t]||at.find.attr;kn[t]=Mn&&xn||!Sn.test(t)?function(e,t,i){var a,o;return i||(o=kn[t],kn[t]=a,a=null!=n(e,t,i)?t.toLowerCase():null,kn[t]=o),a}:function(e,t,n){return n?void 0:e[at.camelCase("default-"+t)]?t.toLowerCase():null}}),Mn&&xn||(at.attrHooks.value={set:function(e,t,n){return at.nodeName(e,"input")?void(e.defaultValue=t):$n&&$n.set(e,t,n)}}),xn||($n={set:function(e,t,n){var i=e.getAttributeNode(n);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(n)),i.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},kn.id=kn.name=kn.coords=function(e,t,n){var i;return n?void 0:(i=e.getAttributeNode(t))&&""!==i.value?i.value:null},at.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:$n.set},at.attrHooks.contenteditable={set:function(e,t,n){$n.set(e,""===t?!1:t,n)}},at.each(["width","height"],function(e,t){at.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),nt.style||(at.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Tn=/^(?:input|select|textarea|button|object)$/i,En=/^(?:a|area)$/i;at.fn.extend({prop:function(e,t){return Et(this,at.prop,e,t,arguments.length>1)},removeProp:function(e){return e=at.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),at.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var i,a,o,r=e.nodeType;return e&&3!==r&&8!==r&&2!==r?(o=1!==r||!at.isXMLDoc(e),o&&(t=at.propFix[t]||t,a=at.propHooks[t]),void 0!==n?a&&"set"in a&&void 0!==(i=a.set(e,n,t))?i:e[t]=n:a&&"get"in a&&null!==(i=a.get(e,t))?i:e[t]):void 0},propHooks:{tabIndex:{get:function(e){var t=at.find.attr(e,"tabindex");return t?parseInt(t,10):Tn.test(e.nodeName)||En.test(e.nodeName)&&e.href?0:-1}}}}),nt.hrefNormalized||at.each(["href","src"],function(e,t){at.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),nt.optSelected||(at.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),at.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){at.propFix[this.toLowerCase()]=this}),nt.enctype||(at.propFix.enctype="encoding");var An=/[\t\r\n\f]/g;at.fn.extend({addClass:function(e){var t,n,i,a,o,r,s=0,c=this.length,l="string"==typeof e&&e;if(at.isFunction(e))return this.each(function(t){at(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(_t)||[];c>s;s++)if(n=this[s],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(An," "):" ")){for(o=0;a=t[o++];)i.indexOf(" "+a+" ")<0&&(i+=a+" ");r=at.trim(i),n.className!==r&&(n.className=r)}return this},removeClass:function(e){var t,n,i,a,o,r,s=0,c=this.length,l=0===arguments.length||"string"==typeof e&&e;if(at.isFunction(e))return this.each(function(t){at(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(_t)||[];c>s;s++)if(n=this[s],i=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(An," "):"")){for(o=0;a=t[o++];)for(;i.indexOf(" "+a+" ")>=0;)i=i.replace(" "+a+" "," ");r=e?at.trim(i):"",n.className!==r&&(n.className=r)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(at.isFunction(e)?function(n){at(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,i=0,a=at(this),o=e.match(_t)||[];t=o[i++];)a.hasClass(t)?a.removeClass(t):a.addClass(t);else(n===Ct||"boolean"===n)&&(this.className&&at._data(this,"__className__",this.className),this.className=this.className||e===!1?"":at._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,i=this.length;i>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(An," ").indexOf(t)>=0)return!0;return!1}}),at.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){at.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),at.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,i){return this.on(t,e,n,i)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Dn=at.now(),In=/\?/,Pn=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;at.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,i=null,a=at.trim(t+"");return a&&!at.trim(a.replace(Pn,function(e,t,a,o){return n&&t&&(i=0),0===i?e:(n=a||t,i+=!o-!a,"")}))?Function("return "+a)():at.error("Invalid JSON: "+t)},at.parseXML=function(t){var n,i;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(i=new DOMParser,n=i.parseFromString(t,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(a){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||at.error("Invalid XML: "+t),n};var Nn,Ln,Fn=/#.*$/,Bn=/([?&])_=[^&]*/,On=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Un=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Rn=/^(?:GET|HEAD)$/,qn=/^\/\//,Hn=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,jn={},Vn={},zn="*/".concat("*");try{Ln=location.href}catch(Wn){Ln=ft.createElement("a"),Ln.href="",Ln=Ln.href}Nn=Hn.exec(Ln.toLowerCase())||[],at.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ln,type:"GET",isLocal:Un.test(Nn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":at.parseJSON,"text xml":at.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?q(q(e,at.ajaxSettings),t):q(at.ajaxSettings,e)},ajaxPrefilter:U(jn),ajaxTransport:U(Vn),ajax:function(e,t){function n(e,t,n,i){var a,u,v,y,b,$=t;2!==_&&(_=2,s&&clearTimeout(s),l=void 0,r=i||"",w.readyState=e>0?4:0,a=e>=200&&300>e||304===e,n&&(y=H(d,w,n)),y=j(d,y,w,a),a?(d.ifModified&&(b=w.getResponseHeader("Last-Modified"),b&&(at.lastModified[o]=b),b=w.getResponseHeader("etag"),b&&(at.etag[o]=b)),204===e||"HEAD"===d.type?$="nocontent":304===e?$="notmodified":($=y.state,u=y.data,v=y.error,a=!v)):(v=$,(e||!$)&&($="error",0>e&&(e=0))),w.status=e,w.statusText=(t||$)+"",a?f.resolveWith(p,[u,$,w]):f.rejectWith(p,[w,$,v]),w.statusCode(m),m=void 0,c&&h.trigger(a?"ajaxSuccess":"ajaxError",[w,d,a?u:v]),g.fireWith(p,[w,$]),c&&(h.trigger("ajaxComplete",[w,d]),--at.active||at.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var i,a,o,r,s,c,l,u,d=at.ajaxSetup({},t),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?at(p):at.event,f=at.Deferred(),g=at.Callbacks("once memory"),m=d.statusCode||{},v={},y={},_=0,b="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===_){if(!u)for(u={};t=On.exec(r);)u[t[1].toLowerCase()]=t[2];t=u[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===_?r:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return _||(e=y[n]=y[n]||e,v[e]=t),this},overrideMimeType:function(e){return _||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>_)for(t in e)m[t]=[m[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||b;return l&&l.abort(t),n(0,t),this}};if(f.promise(w).complete=g.add,w.success=w.done,w.error=w.fail,d.url=((e||d.url||Ln)+"").replace(Fn,"").replace(qn,Nn[1]+"//"),d.type=t.method||t.type||d.method||d.type,d.dataTypes=at.trim(d.dataType||"*").toLowerCase().match(_t)||[""],null==d.crossDomain&&(i=Hn.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===Nn[1]&&i[2]===Nn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(Nn[3]||("http:"===Nn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=at.param(d.data,d.traditional)),R(jn,d,t,w),2===_)return w;c=d.global,c&&0===at.active++&&at.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Rn.test(d.type),o=d.url,d.hasContent||(d.data&&(o=d.url+=(In.test(o)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Bn.test(o)?o.replace(Bn,"$1_="+Dn++):o+(In.test(o)?"&":"?")+"_="+Dn++)),d.ifModified&&(at.lastModified[o]&&w.setRequestHeader("If-Modified-Since",at.lastModified[o]),at.etag[o]&&w.setRequestHeader("If-None-Match",at.etag[o])),(d.data&&d.hasContent&&d.contentType!==!1||t.contentType)&&w.setRequestHeader("Content-Type",d.contentType),w.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+zn+"; q=0.01":""):d.accepts["*"]);for(a in d.headers)w.setRequestHeader(a,d.headers[a]);if(d.beforeSend&&(d.beforeSend.call(p,w,d)===!1||2===_))return w.abort();b="abort";for(a in{success:1,error:1,complete:1})w[a](d[a]);if(l=R(Vn,d,t,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,d]),d.async&&d.timeout>0&&(s=setTimeout(function(){w.abort("timeout")},d.timeout));try{_=1,l.send(v,n)}catch($){if(!(2>_))throw $;n(-1,$)}}else n(-1,"No Transport");return w},getJSON:function(e,t,n){return at.get(e,t,n,"json")},getScript:function(e,t){return at.get(e,void 0,t,"script")}}),at.each(["get","post"],function(e,t){at[t]=function(e,n,i,a){return at.isFunction(n)&&(a=a||i,i=n,n=void 0),at.ajax({url:e,type:t,dataType:a,data:n,success:i})}}),at.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){at.fn[t]=function(e){return this.on(t,e)}}),at._evalUrl=function(e){return at.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},at.fn.extend({wrapAll:function(e){if(at.isFunction(e))return this.each(function(t){at(this).wrapAll(e.call(this,t))});if(this[0]){var t=at(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(at.isFunction(e)?function(t){at(this).wrapInner(e.call(this,t))}:function(){var t=at(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=at.isFunction(e);return this.each(function(n){at(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){at.nodeName(this,"body")||at(this).replaceWith(this.childNodes)}).end()}}),at.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!nt.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||at.css(e,"display"))},at.expr.filters.visible=function(e){return!at.expr.filters.hidden(e)};var Gn=/%20/g,Kn=/\[\]$/,Xn=/\r?\n/g,Yn=/^(?:submit|button|image|reset|file)$/i,Zn=/^(?:input|select|textarea|keygen)/i;at.param=function(e,t){var n,i=[],a=function(e,t){t=at.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=at.ajaxSettings&&at.ajaxSettings.traditional),at.isArray(e)||e.jquery&&!at.isPlainObject(e))at.each(e,function(){a(this.name,this.value)});else for(n in e)V(n,e[n],t,a);return i.join("&").replace(Gn,"+")},at.fn.extend({serialize:function(){return at.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=at.prop(this,"elements");return e?at.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!at(this).is(":disabled")&&Zn.test(this.nodeName)&&!Yn.test(e)&&(this.checked||!At.test(e))}).map(function(e,t){var n=at(this).val();return null==n?null:at.isArray(n)?at.map(n,function(e){return{name:t.name,value:e.replace(Xn,"\r\n")}}):{name:t.name,value:n.replace(Xn,"\r\n")}}).get()}}),at.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&z()||W()}:z;var Qn=0,Jn={},ei=at.ajaxSettings.xhr();e.ActiveXObject&&at(e).on("unload",function(){for(var e in Jn)Jn[e](void 0,!0)}),nt.cors=!!ei&&"withCredentials"in ei,ei=nt.ajax=!!ei,ei&&at.ajaxTransport(function(e){if(!e.crossDomain||nt.cors){var t;return{send:function(n,i){var a,o=e.xhr(),r=++Qn;if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)o[a]=e.xhrFields[a];e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(a in n)void 0!==n[a]&&o.setRequestHeader(a,n[a]+"");o.send(e.hasContent&&e.data||null),t=function(n,a){var s,c,l;if(t&&(a||4===o.readyState))if(delete Jn[r],t=void 0,o.onreadystatechange=at.noop,a)4!==o.readyState&&o.abort();else{l={},s=o.status,"string"==typeof o.responseText&&(l.text=o.responseText);try{c=o.statusText}catch(u){c=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=l.text?200:404}l&&i(s,c,l,o.getAllResponseHeaders())},e.async?4===o.readyState?setTimeout(t):o.onreadystatechange=Jn[r]=t:t()},abort:function(){t&&t(void 0,!0)}}}}),at.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return at.globalEval(e),e}}}),at.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),at.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=ft.head||at("head")[0]||ft.documentElement;return{send:function(i,a){t=ft.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||a(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var ti=[],ni=/(=)\?(?=&|$)|\?\?/;at.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=ti.pop()||at.expando+"_"+Dn++;return this[e]=!0,e}}),at.ajaxPrefilter("json jsonp",function(t,n,i){var a,o,r,s=t.jsonp!==!1&&(ni.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&ni.test(t.data)&&"data");return s||"jsonp"===t.dataTypes[0]?(a=t.jsonpCallback=at.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(ni,"$1"+a):t.jsonp!==!1&&(t.url+=(In.test(t.url)?"&":"?")+t.jsonp+"="+a),t.converters["script json"]=function(){return r||at.error(a+" was not called"),r[0]},t.dataTypes[0]="json",o=e[a],e[a]=function(){r=arguments},i.always(function(){e[a]=o,t[a]&&(t.jsonpCallback=n.jsonpCallback,ti.push(a)),r&&at.isFunction(o)&&o(r[0]),r=o=void 0}),"script"):void 0}),at.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||ft;var i=dt.exec(e),a=!n&&[];return i?[t.createElement(i[1])]:(i=at.buildFragment([e],t,a),a&&a.length&&at(a).remove(),at.merge([],i.childNodes))};var ii=at.fn.load;at.fn.load=function(e,t,n){if("string"!=typeof e&&ii)return ii.apply(this,arguments);var i,a,o,r=this,s=e.indexOf(" ");return s>=0&&(i=at.trim(e.slice(s,e.length)),e=e.slice(0,s)),at.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),r.length>0&&at.ajax({url:e,type:o,dataType:"html",data:t}).done(function(e){a=arguments,r.html(i?at("<div>").append(at.parseHTML(e)).find(i):e)}).complete(n&&function(e,t){r.each(n,a||[e.responseText,t,e])}),this},at.expr.filters.animated=function(e){return at.grep(at.timers,function(t){return e===t.elem}).length};var ai=e.document.documentElement;at.offset={setOffset:function(e,t,n){var i,a,o,r,s,c,l,u=at.css(e,"position"),d=at(e),p={};"static"===u&&(e.style.position="relative"),s=d.offset(),o=at.css(e,"top"),c=at.css(e,"left"),l=("absolute"===u||"fixed"===u)&&at.inArray("auto",[o,c])>-1,l?(i=d.position(),r=i.top,a=i.left):(r=parseFloat(o)||0,a=parseFloat(c)||0),at.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(p.top=t.top-s.top+r),null!=t.left&&(p.left=t.left-s.left+a),"using"in t?t.using.call(e,p):d.css(p)}},at.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){at.offset.setOffset(this,e,t)});var t,n,i={top:0,left:0},a=this[0],o=a&&a.ownerDocument;return o?(t=o.documentElement,at.contains(t,a)?(typeof a.getBoundingClientRect!==Ct&&(i=a.getBoundingClientRect()),n=G(o),{top:i.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:i.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):i):void 0},position:function(){if(this[0]){var e,t,n={top:0,left:0},i=this[0];return"fixed"===at.css(i,"position")?t=i.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),at.nodeName(e[0],"html")||(n=e.offset()),n.top+=at.css(e[0],"borderTopWidth",!0),n.left+=at.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-at.css(i,"marginTop",!0),left:t.left-n.left-at.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||ai;e&&!at.nodeName(e,"html")&&"static"===at.css(e,"position");)e=e.offsetParent;return e||ai})}}),at.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);at.fn[e]=function(i){return Et(this,function(e,i,a){var o=G(e);return void 0===a?o?t in o?o[t]:o.document.documentElement[i]:e[i]:void(o?o.scrollTo(n?at(o).scrollLeft():a,n?a:at(o).scrollTop()):e[i]=a)},e,i,arguments.length,null)}}),at.each(["top","left"],function(e,t){at.cssHooks[t]=x(nt.pixelPosition,function(e,n){return n?(n=tn(e,t),an.test(n)?at(e).position()[t]+"px":n):void 0})}),at.each({Height:"height",Width:"width"},function(e,t){at.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,i){at.fn[i]=function(i,a){var o=arguments.length&&(n||"boolean"!=typeof i),r=n||(i===!0||a===!0?"margin":"border");return Et(this,function(t,n,i){var a;return at.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(a=t.documentElement,Math.max(t.body["scroll"+e],a["scroll"+e],t.body["offset"+e],a["offset"+e],a["client"+e])):void 0===i?at.css(t,n,r):at.style(t,n,i,r)},t,o?i:void 0,o,null)}})}),at.fn.size=function(){return this.length},at.fn.andSelf=at.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return at});var oi=e.jQuery,ri=e.$;return at.noConflict=function(t){return e.$===at&&(e.$=ri),t&&e.jQuery===at&&(e.jQuery=oi),at},typeof t===Ct&&(e.jQuery=e.$=at),at}),Config=window.Config||{},Config.App={id:2496,hash:"8da85b0d5bfe62527e5b244c209159c3",version:"0.3.0"},Config.Modes={test:location.search.indexOf("test=1")>0,debug:location.search.indexOf("debug=1")>0,packed:"app:"==location.protocol||"chrome-extension:"==location.protocol,ios_standalone:window.navigator.standalone&&navigator.userAgent.match(/iOS|iPhone|iPad/),chrome_packed:window.chrome&&chrome.app&&chrome.app.window&&!0||!1},Config.Navigator={osX:-1!=(navigator.platform||"").toLowerCase().indexOf("mac")||-1!=(navigator.userAgent||"").toLowerCase().indexOf("mac"),retina:window.devicePixelRatio>1,ffos:-1!=navigator.userAgent.search(/mobi.+Gecko/i),touch:screen.width<=768,mobile:screen.width<480},Config.Schema=Config.Schema||{},Config.Schema.MTProto={constructors:[{id:"481674261",predicate:"vector",params:[],type:"Vector t"},{id:"85337187",predicate:"resPQ",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"pq",type:"bytes"},{name:"server_public_key_fingerprints",type:"Vector<long>"}],type:"ResPQ"},{id:"-2083955988",predicate:"p_q_inner_data",params:[{name:"pq",type:"bytes"},{name:"p",type:"bytes"},{name:"q",type:"bytes"},{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce",type:"int256"}],type:"P_Q_inner_data"},{id:"2043348061",predicate:"server_DH_params_fail",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash",type:"int128"}],type:"Server_DH_Params"},{id:"-790100132",predicate:"server_DH_params_ok",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"encrypted_answer",type:"bytes"}],type:"Server_DH_Params"},{id:"-1249309254",predicate:"server_DH_inner_data",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"g",type:"int"},{name:"dh_prime",type:"bytes"},{name:"g_a",type:"bytes"},{name:"server_time",type:"int"}],type:"Server_DH_inner_data"},{id:"1715713620",predicate:"client_DH_inner_data",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"retry_id",type:"long"},{name:"g_b",type:"bytes"}],type:"Client_DH_Inner_Data"},{id:"1003222836",predicate:"dh_gen_ok",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash1",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"1188831161",predicate:"dh_gen_retry",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash2",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"-1499615742",predicate:"dh_gen_fail",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash3",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"-212046591",predicate:"rpc_result",params:[{name:"req_msg_id",type:"long"},{name:"result",type:"Object"}],type:"RpcResult"},{id:"558156313",predicate:"rpc_error",params:[{name:"error_code",type:"int"},{name:"error_message",type:"string"}],type:"RpcError"},{id:"1579864942",predicate:"rpc_answer_unknown",params:[],type:"RpcDropAnswer"},{id:"-847714938",predicate:"rpc_answer_dropped_running",params:[],type:"RpcDropAnswer"},{id:"-1539647305",predicate:"rpc_answer_dropped",params:[{name:"msg_id",type:"long"},{name:"seq_no",type:"int"},{name:"bytes",type:"int"}],type:"RpcDropAnswer"},{id:"155834844",predicate:"future_salt",params:[{name:"valid_since",type:"int"},{name:"valid_until",type:"int"},{name:"salt",type:"long"}],type:"FutureSalt"},{id:"-1370486635",predicate:"future_salts",params:[{name:"req_msg_id",type:"long"},{name:"now",type:"int"},{name:"salts",type:"vector<future_salt>"}],type:"FutureSalts"},{id:"880243653",predicate:"pong",params:[{name:"msg_id",type:"long"},{name:"ping_id",type:"long"}],type:"Pong"},{id:"-501201412",predicate:"destroy_session_ok",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"1658015945",predicate:"destroy_session_none",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"-1631450872",predicate:"new_session_created",params:[{name:"first_msg_id",type:"long"},{name:"unique_id",type:"long"},{name:"server_salt",type:"long"}],type:"NewSession"},{id:"1945237724",predicate:"msg_container",params:[{name:"messages",type:"vector<%Message>"}],type:"MessageContainer"},{id:"1538843921",predicate:"message",params:[{name:"msg_id",type:"long"},{name:"seqno",type:"int"},{name:"bytes",type:"int"},{name:"body",type:"Object"}],type:"Message"},{id:"-530561358",predicate:"msg_copy",params:[{name:"orig_message",type:"Message"}],type:"MessageCopy"},{id:"812830625",predicate:"gzip_packed",params:[{name:"packed_data",type:"bytes"}],type:"Object"},{id:"1658238041",predicate:"msgs_ack",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgsAck"},{id:"-1477445615",predicate:"bad_msg_notification",params:[{name:"bad_msg_id",type:"long"},{name:"bad_msg_seqno",type:"int"},{name:"error_code",type:"int"}],type:"BadMsgNotification"},{id:"-307542917",predicate:"bad_server_salt",params:[{name:"bad_msg_id",type:"long"},{name:"bad_msg_seqno",type:"int"},{name:"error_code",type:"int"},{name:"new_server_salt",type:"long"}],type:"BadMsgNotification"},{id:"2105940488",predicate:"msg_resend_req",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgResendReq"},{id:"-630588590",predicate:"msgs_state_req",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgsStateReq"},{id:"81704317",predicate:"msgs_state_info",params:[{name:"req_msg_id",type:"long"},{name:"info",type:"bytes"}],type:"MsgsStateInfo"},{id:"-1933520591",predicate:"msgs_all_info",params:[{name:"msg_ids",type:"Vector<long>"},{name:"info",type:"bytes"}],type:"MsgsAllInfo"},{id:"661470918",predicate:"msg_detailed_info",params:[{name:"msg_id",type:"long"},{name:"answer_msg_id",type:"long"},{name:"bytes",type:"int"},{name:"status",type:"int"}],type:"MsgDetailedInfo"},{id:"-2137147681",predicate:"msg_new_detailed_info",params:[{name:"answer_msg_id",type:"long"},{name:"bytes",type:"int"},{name:"status",type:"int"}],type:"MsgDetailedInfo"}],methods:[{id:"1615239032",method:"req_pq",params:[{name:"nonce",type:"int128"}],type:"ResPQ"},{id:"-686627650",method:"req_DH_params",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"p",type:"bytes"},{name:"q",type:"bytes"},{name:"public_key_fingerprint",type:"long"},{name:"encrypted_data",type:"bytes"}],type:"Server_DH_Params"},{id:"-184262881",method:"set_client_DH_params",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"encrypted_data",type:"bytes"}],type:"Set_client_DH_params_answer"},{id:"1491380032",method:"rpc_drop_answer",params:[{name:"req_msg_id",type:"long"}],type:"RpcDropAnswer"},{id:"-1188971260",method:"get_future_salts",params:[{name:"num",type:"int"}],type:"FutureSalts"},{id:"2059302892",method:"ping",params:[{name:"ping_id",type:"long"}],type:"Pong"},{id:"-213746804",method:"ping_delay_disconnect",params:[{name:"ping_id",type:"long"},{name:"disconnect_delay",type:"int"}],type:"Pong"},{id:"-414113498",method:"destroy_session",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"-1835453025",method:"http_wait",params:[{name:"max_delay",type:"int"},{name:"wait_after",type:"int"},{name:"max_wait",type:"int"}],type:"HttpWait"}]},Config.Schema.API={constructors:[{id:"-1132882121",predicate:"boolFalse",params:[],type:"Bool"},{id:"-1720552011",predicate:"boolTrue",params:[],type:"Bool"},{id:"481674261",predicate:"vector",params:[],type:"Vector t"},{id:"-994444869",predicate:"error",params:[{name:"code",type:"int"},{name:"text",type:"string"}],type:"Error"},{id:"1450380236",predicate:"null",params:[],type:"Null"},{id:"2134579434",predicate:"inputPeerEmpty",params:[],type:"InputPeer"},{id:"2107670217",predicate:"inputPeerSelf",params:[],type:"InputPeer"},{id:"270785512",predicate:"inputPeerContact",params:[{name:"user_id",type:"int"}],type:"InputPeer"},{id:"-1690012891",predicate:"inputPeerForeign",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputPeer"},{id:"396093539",predicate:"inputPeerChat",params:[{name:"chat_id",type:"int"}],type:"InputPeer"},{id:"-1182234929",predicate:"inputUserEmpty",params:[],type:"InputUser"},{id:"-138301121",predicate:"inputUserSelf",params:[],type:"InputUser"},{id:"-2031530139",predicate:"inputUserContact",params:[{name:"user_id",type:"int"}],type:"InputUser"},{id:"1700689151",predicate:"inputUserForeign",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputUser"},{id:"-208488460",predicate:"inputPhoneContact",params:[{name:"client_id",type:"long"},{name:"phone",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"InputContact"},{id:"-181407105",predicate:"inputFile",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"name",type:"string"},{name:"md5_checksum",type:"string"}],type:"InputFile"},{id:"-1771768449",predicate:"inputMediaEmpty",params:[],type:"InputMedia"},{id:"767900285",predicate:"inputMediaUploadedPhoto",params:[{name:"file",type:"InputFile"}],type:"InputMedia"},{id:"-1893027092",predicate:"inputMediaPhoto",params:[{name:"id",type:"InputPhoto"}],type:"InputMedia"},{id:"-104578748",predicate:"inputMediaGeoPoint",params:[{name:"geo_point",type:"InputGeoPoint"}],type:"InputMedia"},{id:"-1494984313",predicate:"inputMediaContact",params:[{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"InputMedia"},{id:"322623222",predicate:"inputMediaUploadedVideo",params:[{name:"file",type:"InputFile"},{name:"duration",type:"int"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"mime_type",type:"string"}],type:"InputMedia"},{id:"-1726817601",predicate:"inputMediaUploadedThumbVideo",params:[{name:"file",type:"InputFile"},{name:"thumb",type:"InputFile"},{name:"duration",type:"int"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"mime_type",type:"string"}],type:"InputMedia"},{id:"2130852582",predicate:"inputMediaVideo",params:[{name:"id",type:"InputVideo"}],type:"InputMedia"},{id:"480546647",predicate:"inputChatPhotoEmpty",params:[],type:"InputChatPhoto"},{id:"-1809496270",predicate:"inputChatUploadedPhoto",params:[{name:"file",type:"InputFile"},{name:"crop",type:"InputPhotoCrop"}],type:"InputChatPhoto"},{id:"-1293828344",predicate:"inputChatPhoto",params:[{name:"id",type:"InputPhoto"},{name:"crop",type:"InputPhotoCrop"}],type:"InputChatPhoto"},{id:"-457104426",predicate:"inputGeoPointEmpty",params:[],type:"InputGeoPoint"},{id:"-206066487",predicate:"inputGeoPoint",params:[{name:"lat",type:"double"},{name:"long",type:"double"}],type:"InputGeoPoint"},{id:"483901197",predicate:"inputPhotoEmpty",params:[],type:"InputPhoto"},{id:"-74070332",predicate:"inputPhoto",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputPhoto"},{id:"1426648181",predicate:"inputVideoEmpty",params:[],type:"InputVideo"},{id:"-296249774",predicate:"inputVideo",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputVideo"},{id:"342061462",predicate:"inputFileLocation",params:[{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"InputFileLocation"},{id:"1023632620",predicate:"inputVideoFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputFileLocation"},{id:"-1377390588",predicate:"inputPhotoCropAuto",params:[],type:"InputPhotoCrop"},{id:"-644787419",predicate:"inputPhotoCrop",params:[{name:"crop_left",type:"double"},{name:"crop_top",type:"double"},{name:"crop_width",type:"double"}],type:"InputPhotoCrop"},{id:"1996904104",predicate:"inputAppEvent",params:[{name:"time",type:"double"},{name:"type",type:"string"},{name:"peer",type:"long"},{name:"data",type:"string"}],type:"InputAppEvent"},{id:"-1649296275",predicate:"peerUser",params:[{name:"user_id",type:"int"}],type:"Peer"},{id:"-1160714821",predicate:"peerChat",params:[{name:"chat_id",type:"int"}],type:"Peer"},{id:"-1432995067",predicate:"storage.fileUnknown",params:[],type:"storage.FileType"},{id:"8322574",predicate:"storage.fileJpeg",params:[],type:"storage.FileType"},{id:"-891180321",predicate:"storage.fileGif",params:[],type:"storage.FileType"},{id:"172975040",predicate:"storage.filePng",params:[],type:"storage.FileType"},{id:"-1373745011",predicate:"storage.filePdf",params:[],type:"storage.FileType"},{id:"1384777335",predicate:"storage.fileMp3",params:[],type:"storage.FileType"},{id:"1258941372",predicate:"storage.fileMov",params:[],type:"storage.FileType"},{id:"1086091090",predicate:"storage.filePartial",params:[],type:"storage.FileType"},{id:"-1278304028",predicate:"storage.fileMp4",params:[],type:"storage.FileType"},{id:"276907596",predicate:"storage.fileWebp",params:[],type:"storage.FileType"},{id:"2086234950",predicate:"fileLocationUnavailable",params:[{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"FileLocation"},{id:"1406570614",predicate:"fileLocation",params:[{name:"dc_id",type:"int"},{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"FileLocation"},{id:"537022650",predicate:"userEmpty",params:[{name:"id",type:"int"}],type:"User"},{id:"1912944108",predicate:"userSelf",params:[{name:"id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"phone",type:"string"},{name:"photo",type:"UserProfilePhoto"},{name:"status",type:"UserStatus"},{name:"inactive",type:"Bool"}],type:"User"},{id:"-218397927",predicate:"userContact",params:[{name:"id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"access_hash",type:"long"},{name:"phone",type:"string"},{name:"photo",type:"UserProfilePhoto"},{name:"status",type:"UserStatus"}],type:"User"},{id:"585682608",predicate:"userRequest",params:[{name:"id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"access_hash",type:"long"},{name:"phone",type:"string"},{name:"photo",type:"UserProfilePhoto"},{name:"status",type:"UserStatus"}],type:"User"},{id:"1377093789",predicate:"userForeign",params:[{name:"id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"access_hash",type:"long"},{name:"photo",type:"UserProfilePhoto"},{name:"status",type:"UserStatus"}],type:"User"},{id:"-1298475060",predicate:"userDeleted",params:[{name:"id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"User"},{id:"1326562017",predicate:"userProfilePhotoEmpty",params:[],type:"UserProfilePhoto"},{id:"-715532088",predicate:"userProfilePhoto",params:[{name:"photo_id",type:"long"},{name:"photo_small",type:"FileLocation"},{name:"photo_big",type:"FileLocation"}],type:"UserProfilePhoto"},{id:"164646985",predicate:"userStatusEmpty",params:[],type:"UserStatus"},{id:"-306628279",predicate:"userStatusOnline",params:[{name:"expires",type:"int"}],type:"UserStatus"},{id:"9203775",predicate:"userStatusOffline",params:[{name:"was_online",type:"int"}],type:"UserStatus"},{id:"-1683826688",predicate:"chatEmpty",params:[{name:"id",type:"int"}],type:"Chat"},{id:"1855757255",predicate:"chat",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"photo",type:"ChatPhoto"},{name:"participants_count",type:"int"},{name:"date",type:"int"},{name:"left",type:"Bool"},{name:"version",type:"int"}],type:"Chat"},{id:"-83047359",predicate:"chatForbidden",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"date",type:"int"}],type:"Chat"},{id:"1661886910",predicate:"chatFull",params:[{name:"id",type:"int"},{name:"participants",type:"ChatParticipants"},{name:"chat_photo",type:"Photo"},{name:"notify_settings",type:"PeerNotifySettings"}],type:"ChatFull"},{id:"-925415106",predicate:"chatParticipant",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChatParticipant"},{id:"265468810",predicate:"chatParticipantsForbidden",params:[{name:"chat_id",type:"int"}],type:"ChatParticipants"},{id:"2017571861",predicate:"chatParticipants",params:[{name:"chat_id",type:"int"},{name:"admin_id",type:"int"},{name:"participants",type:"Vector<ChatParticipant>"},{name:"version",type:"int"}],type:"ChatParticipants"},{id:"935395612",predicate:"chatPhotoEmpty",params:[],type:"ChatPhoto"},{id:"1632839530",predicate:"chatPhoto",params:[{name:"photo_small",type:"FileLocation"},{name:"photo_big",type:"FileLocation"}],type:"ChatPhoto"},{id:"-2082087340",predicate:"messageEmpty",params:[{name:"id",type:"int"}],type:"Message"},{id:"585853626",predicate:"message",params:[{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"to_id",type:"Peer"},{name:"out",type:"Bool"},{name:"unread",type:"Bool"},{name:"date",type:"int"},{name:"message",type:"string"},{name:"media",type:"MessageMedia"}],type:"Message"},{id:"99903492",predicate:"messageForwarded",params:[{name:"id",type:"int"},{name:"fwd_from_id",type:"int"},{name:"fwd_date",type:"int"},{name:"from_id",type:"int"},{name:"to_id",type:"Peer"},{name:"out",type:"Bool"},{name:"unread",type:"Bool"},{name:"date",type:"int"},{name:"message",type:"string"},{name:"media",type:"MessageMedia"}],type:"Message"},{id:"-1618124613",predicate:"messageService",params:[{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"to_id",type:"Peer"},{name:"out",type:"Bool"},{name:"unread",type:"Bool"},{name:"date",type:"int"},{name:"action",type:"MessageAction"}],type:"Message"},{id:"1038967584",predicate:"messageMediaEmpty",params:[],type:"MessageMedia"},{id:"-926655958",predicate:"messageMediaPhoto",params:[{name:"photo",type:"Photo"}],type:"MessageMedia"},{id:"-1563278704",predicate:"messageMediaVideo",params:[{name:"video",type:"Video"}],type:"MessageMedia"},{id:"1457575028",predicate:"messageMediaGeo",params:[{name:"geo",type:"GeoPoint"}],type:"MessageMedia"},{id:"1585262393",predicate:"messageMediaContact",params:[{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"user_id",type:"int"}],type:"MessageMedia"},{id:"694364726",predicate:"messageMediaUnsupported",params:[{name:"bytes",type:"bytes"}],type:"MessageMedia"},{id:"-1230047312",predicate:"messageActionEmpty",params:[],type:"MessageAction"},{id:"-1503425638",predicate:"messageActionChatCreate",params:[{name:"title",type:"string"},{name:"users",type:"Vector<int>"}],type:"MessageAction"},{id:"-1247687078",predicate:"messageActionChatEditTitle",params:[{name:"title",type:"string"}],type:"MessageAction"},{id:"2144015272",predicate:"messageActionChatEditPhoto",params:[{name:"photo",type:"Photo"}],type:"MessageAction"},{id:"-1780220945",predicate:"messageActionChatDeletePhoto",params:[],type:"MessageAction"},{id:"1581055051",predicate:"messageActionChatAddUser",params:[{name:"user_id",type:"int"}],type:"MessageAction"},{id:"-1297179892",predicate:"messageActionChatDeleteUser",params:[{name:"user_id",type:"int"}],type:"MessageAction"},{id:"-1422222932",predicate:"dialog",params:[{name:"peer",type:"Peer"},{name:"top_message",type:"int"},{name:"unread_count",type:"int"},{name:"notify_settings",type:"PeerNotifySettings"}],type:"Dialog"},{id:"590459437",predicate:"photoEmpty",params:[{name:"id",type:"long"}],type:"Photo"},{id:"582313809",predicate:"photo",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"user_id",type:"int"},{name:"date",type:"int"},{name:"caption",type:"string"},{name:"geo",type:"GeoPoint"},{name:"sizes",type:"Vector<PhotoSize>"}],type:"Photo"},{id:"236446268",predicate:"photoSizeEmpty",params:[{name:"type",type:"string"}],type:"PhotoSize"},{id:"2009052699",predicate:"photoSize",params:[{name:"type",type:"string"},{name:"location",type:"FileLocation"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"size",type:"int"}],type:"PhotoSize"},{id:"-374917894",predicate:"photoCachedSize",params:[{name:"type",type:"string"},{name:"location",type:"FileLocation"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"bytes",type:"bytes"}],type:"PhotoSize"},{id:"-1056548696",predicate:"videoEmpty",params:[{name:"id",type:"long"}],type:"Video"},{id:"948937617",predicate:"video",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"user_id",type:"int"},{name:"date",type:"int"},{name:"caption",type:"string"},{name:"duration",type:"int"},{name:"mime_type",type:"string"},{name:"size",type:"int"},{name:"thumb",type:"PhotoSize"},{name:"dc_id",type:"int"},{name:"w",type:"int"},{name:"h",type:"int"}],type:"Video"},{id:"286776671",predicate:"geoPointEmpty",params:[],type:"GeoPoint"},{id:"541710092",predicate:"geoPoint",params:[{name:"long",type:"double"},{name:"lat",type:"double"}],type:"GeoPoint"},{id:"-486486981",predicate:"auth.checkedPhone",params:[{name:"phone_registered",type:"Bool"},{name:"phone_invited",type:"Bool"}],type:"auth.CheckedPhone"},{id:"-269659687",predicate:"auth.sentCode",params:[{name:"phone_registered",type:"Bool"},{name:"phone_code_hash",type:"string"},{name:"send_call_timeout",type:"int"},{name:"is_password",type:"Bool"}],type:"auth.SentCode"},{id:"-155815004",predicate:"auth.authorization",params:[{name:"expires",type:"int"},{name:"user",type:"User"}],type:"auth.Authorization"},{id:"-543777747",predicate:"auth.exportedAuthorization",params:[{name:"id",type:"int"},{name:"bytes",type:"bytes"}],type:"auth.ExportedAuthorization"},{id:"-1195615476",predicate:"inputNotifyPeer",params:[{name:"peer",type:"InputPeer"}],type:"InputNotifyPeer"},{id:"423314455",predicate:"inputNotifyUsers",params:[],type:"InputNotifyPeer"},{id:"1251338318",predicate:"inputNotifyChats",params:[],type:"InputNotifyPeer"},{id:"-1540769658",predicate:"inputNotifyAll",params:[],type:"InputNotifyPeer"},{id:"-265263912",predicate:"inputPeerNotifyEventsEmpty",params:[],type:"InputPeerNotifyEvents"},{id:"-395694988",predicate:"inputPeerNotifyEventsAll",params:[],type:"InputPeerNotifyEvents"},{id:"1185074840",predicate:"inputPeerNotifySettings",params:[{name:"mute_until",type:"int"},{name:"sound",type:"string"},{name:"show_previews",type:"Bool"},{name:"events_mask",type:"int"}],type:"InputPeerNotifySettings"},{id:"-1378534221",predicate:"peerNotifyEventsEmpty",params:[],type:"PeerNotifyEvents"},{id:"1830677896",predicate:"peerNotifyEventsAll",params:[],type:"PeerNotifyEvents"},{id:"1889961234",predicate:"peerNotifySettingsEmpty",params:[],type:"PeerNotifySettings"},{id:"-1923214866",predicate:"peerNotifySettings",params:[{name:"mute_until",type:"int"},{name:"sound",type:"string"},{name:"show_previews",type:"Bool"},{name:"events_mask",type:"int"}],type:"PeerNotifySettings"},{id:"-860866985",predicate:"wallPaper",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"sizes",type:"Vector<PhotoSize>"},{name:"color",type:"int"}],type:"WallPaper"},{id:"1997575642",predicate:"userFull",params:[{name:"user",type:"User"},{name:"link",type:"contacts.Link"},{name:"profile_photo",type:"Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"blocked",type:"Bool"},{name:"real_first_name",type:"string"},{name:"real_last_name",type:"string"}],type:"UserFull"},{id:"-116274796",predicate:"contact",params:[{name:"user_id",type:"int"},{name:"mutual",type:"Bool"}],type:"Contact"},{id:"-805141448",predicate:"importedContact",params:[{name:"user_id",type:"int"},{name:"client_id",type:"long"}],type:"ImportedContact"},{id:"1444661369",predicate:"contactBlocked",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"ContactBlocked"},{id:"-360210539",predicate:"contactFound",params:[{name:"user_id",type:"int"}],type:"ContactFound"},{id:"1038193057",predicate:"contactSuggested",params:[{name:"user_id",type:"int"},{name:"mutual_contacts",type:"int"}],type:"ContactSuggested"},{id:"-1434994573",predicate:"contactStatus",params:[{name:"user_id",type:"int"},{name:"expires",type:"int"}],type:"ContactStatus"},{id:"909233996",predicate:"chatLocated",params:[{name:"chat_id",type:"int"},{name:"distance",type:"int"}],type:"ChatLocated"},{id:"322183672",predicate:"contacts.foreignLinkUnknown",params:[],type:"contacts.ForeignLink"},{id:"-1484775609",predicate:"contacts.foreignLinkRequested",params:[{name:"has_phone",type:"Bool"}],type:"contacts.ForeignLink"},{id:"468356321",predicate:"contacts.foreignLinkMutual",params:[],type:"contacts.ForeignLink"},{id:"-768992160",predicate:"contacts.myLinkEmpty",params:[],type:"contacts.MyLink"},{id:"1818882030",predicate:"contacts.myLinkRequested",params:[{name:"contact",type:"Bool"}],type:"contacts.MyLink"},{id:"-1035932711",predicate:"contacts.myLinkContact",params:[],type:"contacts.MyLink"},{id:"-322001931",predicate:"contacts.link",params:[{name:"my_link",type:"contacts.MyLink"},{name:"foreign_link",type:"contacts.ForeignLink"},{name:"user",type:"User"}],type:"contacts.Link"},{id:"1871416498",predicate:"contacts.contacts",params:[{name:"contacts",type:"Vector<Contact>"},{name:"users",type:"Vector<User>"}],type:"contacts.Contacts"},{id:"-1219778094",predicate:"contacts.contactsNotModified",params:[],type:"contacts.Contacts"},{id:"-1387117803",predicate:"contacts.importedContacts",params:[{name:"imported",type:"Vector<ImportedContact>"},{name:"retry_contacts",type:"Vector<long>"},{name:"users",type:"Vector<User>"}],type:"contacts.ImportedContacts"},{id:"471043349",predicate:"contacts.blocked",params:[{name:"blocked",type:"Vector<ContactBlocked>"},{name:"users",type:"Vector<User>"}],type:"contacts.Blocked"},{id:"-1878523231",predicate:"contacts.blockedSlice",params:[{name:"count",type:"int"},{name:"blocked",type:"Vector<ContactBlocked>"},{name:"users",type:"Vector<User>"}],type:"contacts.Blocked"},{id:"90570766",predicate:"contacts.found",params:[{name:"results",type:"Vector<ContactFound>"},{name:"users",type:"Vector<User>"}],type:"contacts.Found"},{id:"1447681221",predicate:"contacts.suggested",params:[{name:"results",type:"Vector<ContactSuggested>"},{name:"users",type:"Vector<User>"}],type:"contacts.Suggested"},{id:"364538944",predicate:"messages.dialogs",params:[{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Dialogs"},{id:"1910543603",predicate:"messages.dialogsSlice",params:[{name:"count",type:"int"},{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Dialogs"},{id:"-1938715001",predicate:"messages.messages",params:[{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"189033187",predicate:"messages.messagesSlice",params:[{name:"count",type:"int"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"1062078024",predicate:"messages.messageEmpty",params:[],type:"messages.Message"},{id:"-7289833",predicate:"messages.message",params:[{name:"message",type:"Message"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Message"},{id:"-1768654661",predicate:"messages.statedMessages",params:[{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"pts",type:"int"},{name:"seq",type:"int"}],type:"messages.StatedMessages"},{id:"-797251802",predicate:"messages.statedMessage",params:[{name:"message",type:"Message"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"pts",type:"int"},{name:"seq",type:"int"}],type:"messages.StatedMessage"},{id:"-772484260",predicate:"messages.sentMessage",params:[{name:"id",type:"int"},{name:"date",type:"int"},{name:"pts",type:"int"},{name:"seq",type:"int"}],type:"messages.SentMessage"},{id:"1089011754",predicate:"messages.chat",params:[{name:"chat",type:"Chat"},{name:"users",type:"Vector<User>"}],type:"messages.Chat"},{id:"-2125411368",predicate:"messages.chats",params:[{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Chats"},{id:"-438840932",predicate:"messages.chatFull",params:[{name:"full_chat",type:"ChatFull"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.ChatFull"},{id:"-1210173710",predicate:"messages.affectedHistory",params:[{name:"pts",type:"int"},{name:"seq",type:"int"},{name:"offset",type:"int"}],type:"messages.AffectedHistory"},{id:"1474492012",predicate:"inputMessagesFilterEmpty",params:[],type:"MessagesFilter"},{id:"-1777752804",predicate:"inputMessagesFilterPhotos",params:[],type:"MessagesFilter"},{id:"-1614803355",predicate:"inputMessagesFilterVideo",params:[],type:"MessagesFilter"},{id:"1458172132",predicate:"inputMessagesFilterPhotoVideo",params:[],type:"MessagesFilter"},{id:"-1629621880",predicate:"inputMessagesFilterDocument",params:[],type:"MessagesFilter"},{id:"-808946398",predicate:"inputMessagesFilterAudio",params:[],type:"MessagesFilter"},{id:"20626867",predicate:"updateNewMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"}],type:"Update"},{id:"1318109142",predicate:"updateMessageID",params:[{name:"id",type:"int"},{name:"random_id",type:"long"}],type:"Update"},{id:"-966484431",predicate:"updateReadMessages",params:[{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"}],type:"Update"},{id:"-1456734682",predicate:"updateDeleteMessages",params:[{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"}],type:"Update"},{id:"-782376883",predicate:"updateRestoreMessages",params:[{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"}],type:"Update"},{id:"1806337288",predicate:"updateUserTyping",params:[{name:"user_id",type:"int"}],type:"Update"},{id:"1011273702",predicate:"updateChatUserTyping",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"}],type:"Update"},{id:"125178264",predicate:"updateChatParticipants",params:[{name:"participants",type:"ChatParticipants"}],type:"Update"},{id:"469489699",predicate:"updateUserStatus",params:[{name:"user_id",type:"int"},{name:"status",type:"UserStatus"}],type:"Update"},{id:"-635250259",predicate:"updateUserName",params:[{name:"user_id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"Update"},{id:"-1791935732",predicate:"updateUserPhoto",params:[{name:"user_id",type:"int"},{name:"date",type:"int"},{name:"photo",type:"UserProfilePhoto"},{name:"previous",type:"Bool"}],type:"Update"},{id:"628472761",predicate:"updateContactRegistered",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"Update"},{id:"1369737882",predicate:"updateContactLink",params:[{name:"user_id",type:"int"},{name:"my_link",type:"contacts.MyLink"},{name:"foreign_link",type:"contacts.ForeignLink"}],type:"Update"},{id:"1869154659",predicate:"updateActivation",params:[{name:"user_id",type:"int"}],type:"Update"},{id:"-1895411046",predicate:"updateNewAuthorization",params:[{name:"auth_key_id",type:"long"},{name:"date",type:"int"},{name:"device",type:"string"},{name:"location",type:"string"}],type:"Update"},{id:"-1519637954",predicate:"updates.state",params:[{name:"pts",type:"int"},{name:"qts",type:"int"},{name:"date",type:"int"},{name:"seq",type:"int"},{name:"unread_count",type:"int"}],type:"updates.State"},{id:"1567990072",predicate:"updates.differenceEmpty",params:[{name:"date",type:"int"},{name:"seq",type:"int"}],type:"updates.Difference"},{id:"16030880",predicate:"updates.difference",params:[{name:"new_messages",type:"Vector<Message>"},{name:"new_encrypted_messages",type:"Vector<EncryptedMessage>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"state",type:"updates.State"}],type:"updates.Difference"},{id:"-1459938943",predicate:"updates.differenceSlice",params:[{name:"new_messages",type:"Vector<Message>"},{name:"new_encrypted_messages",type:"Vector<EncryptedMessage>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"intermediate_state",type:"updates.State"}],type:"updates.Difference"},{id:"-484987010",predicate:"updatesTooLong",params:[],type:"Updates"},{id:"-738961532",predicate:"updateShortMessage",params:[{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"message",type:"string"},{name:"pts",type:"int"},{name:"date",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"724548942",predicate:"updateShortChatMessage",params:[{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"chat_id",type:"int"},{name:"message",type:"string"},{name:"pts",type:"int"},{name:"date",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"2027216577",predicate:"updateShort",params:[{name:"update",type:"Update"},{name:"date",type:"int"}],type:"Updates"},{id:"1918567619",predicate:"updatesCombined",params:[{name:"updates",type:"Vector<Update>"},{name:"users",type:"Vector<User>"},{name:"chats",type:"Vector<Chat>"},{name:"date",type:"int"},{name:"seq_start",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"1957577280",predicate:"updates",params:[{name:"updates",type:"Vector<Update>"},{name:"users",type:"Vector<User>"},{name:"chats",type:"Vector<Chat>"},{name:"date",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"-1916114267",predicate:"photos.photos",params:[{name:"photos",type:"Vector<Photo>"},{name:"users",type:"Vector<User>"}],type:"photos.Photos"},{id:"352657236",predicate:"photos.photosSlice",params:[{name:"count",type:"int"},{name:"photos",type:"Vector<Photo>"},{name:"users",type:"Vector<User>"}],type:"photos.Photos"},{id:"539045032",predicate:"photos.photo",params:[{name:"photo",type:"Photo"},{name:"users",type:"Vector<User>"}],type:"photos.Photo"},{id:"157948117",predicate:"upload.file",params:[{name:"type",type:"storage.FileType"},{name:"mtime",type:"int"},{name:"bytes",type:"bytes"}],type:"upload.File"},{id:"784507964",predicate:"dcOption",params:[{name:"id",type:"int"},{name:"hostname",type:"string"},{name:"ip_address",type:"string"},{name:"port",type:"int"}],type:"DcOption"},{id:"777313652",predicate:"config",params:[{name:"date",type:"int"},{name:"test_mode",type:"Bool"},{name:"this_dc",type:"int"},{name:"dc_options",type:"Vector<DcOption>"},{name:"chat_size_max",type:"int"},{name:"broadcast_size_max",type:"int"}],type:"Config"},{id:"-1910892683",predicate:"nearestDc",params:[{name:"country",type:"string"},{name:"this_dc",type:"int"},{name:"nearest_dc",type:"int"}],type:"NearestDc"},{id:"-1987579119",predicate:"help.appUpdate",params:[{name:"id",type:"int"},{name:"critical",type:"Bool"},{name:"url",type:"string"},{name:"text",type:"string"}],type:"help.AppUpdate"},{id:"-1000708810",predicate:"help.noAppUpdate",params:[],type:"help.AppUpdate"},{id:"415997816",predicate:"help.inviteText",params:[{name:"message",type:"string"}],type:"help.InviteText"},{id:"1047852486",predicate:"messages.statedMessagesLinks",params:[{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"links",type:"Vector<contacts.Link>"},{name:"pts",type:"int"},{name:"seq",type:"int"}],type:"messages.StatedMessages"},{id:"-1448138623",predicate:"messages.statedMessageLink",params:[{name:"message",type:"Message"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"links",type:"Vector<contacts.Link>"},{name:"pts",type:"int"},{name:"seq",type:"int"}],type:"messages.StatedMessage"},{id:"-371504577",predicate:"messages.sentMessageLink",params:[{name:"id",type:"int"},{name:"date",type:"int"},{name:"pts",type:"int"},{name:"seq",type:"int"},{name:"links",type:"Vector<contacts.Link>"}],type:"messages.SentMessage"},{id:"1960072954",predicate:"inputGeoChat",params:[{name:"chat_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputGeoChat"},{id:"1301143240",predicate:"inputNotifyGeoChatPeer",params:[{name:"peer",type:"InputGeoChat"}],type:"InputNotifyPeer"},{id:"1978329690",predicate:"geoChat",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"venue",type:"string"},{name:"geo",type:"GeoPoint"},{name:"photo",type:"ChatPhoto"},{name:"participants_count",type:"int"},{name:"date",type:"int"},{name:"checked_in",type:"Bool"},{name:"version",type:"int"}],type:"Chat"},{id:"1613830811",predicate:"geoChatMessageEmpty",params:[{name:"chat_id",type:"int"},{name:"id",type:"int"}],type:"GeoChatMessage"},{id:"1158019297",predicate:"geoChatMessage",params:[{name:"chat_id",type:"int"},{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"date",type:"int"},{name:"message",type:"string"},{name:"media",type:"MessageMedia"}],type:"GeoChatMessage"},{id:"-749755826",predicate:"geoChatMessageService",params:[{name:"chat_id",type:"int"},{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"date",type:"int"},{name:"action",type:"MessageAction"}],type:"GeoChatMessage"},{id:"397498251",predicate:"geochats.statedMessage",params:[{name:"message",type:"GeoChatMessage"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"seq",type:"int"}],type:"geochats.StatedMessage"},{id:"1224651367",predicate:"geochats.located",params:[{name:"results",type:"Vector<ChatLocated>"},{name:"messages",type:"Vector<GeoChatMessage>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"geochats.Located"},{id:"-783127119",predicate:"geochats.messages",params:[{name:"messages",type:"Vector<GeoChatMessage>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"geochats.Messages"},{id:"-1135057944",predicate:"geochats.messagesSlice",params:[{name:"count",type:"int"},{name:"messages",type:"Vector<GeoChatMessage>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"geochats.Messages"},{id:"1862504124",predicate:"messageActionGeoChatCreate",params:[{name:"title",type:"string"},{name:"address",type:"string"}],type:"MessageAction"},{id:"209540062",predicate:"messageActionGeoChatCheckin",params:[],type:"MessageAction"},{id:"1516823543",predicate:"updateNewGeoChatMessage",params:[{name:"message",type:"GeoChatMessage"}],type:"Update"},{id:"1662091044",predicate:"wallPaperSolid",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"bg_color",type:"int"},{name:"color",type:"int"}],type:"WallPaper"},{id:"314359194",predicate:"updateNewEncryptedMessage",params:[{name:"message",type:"EncryptedMessage"},{name:"qts",type:"int"}],type:"Update"},{id:"386986326",predicate:"updateEncryptedChatTyping",params:[{name:"chat_id",type:"int"}],type:"Update"},{id:"-1264392051",predicate:"updateEncryption",params:[{name:"chat",type:"EncryptedChat"},{name:"date",type:"int"}],type:"Update"},{id:"956179895",predicate:"updateEncryptedMessagesRead",params:[{name:"chat_id",type:"int"},{name:"max_date",type:"int"},{name:"date",type:"int"}],type:"Update"},{id:"-1417756512",predicate:"encryptedChatEmpty",params:[{name:"id",type:"int"}],type:"EncryptedChat"},{id:"1006044124",predicate:"encryptedChatWaiting",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"}],type:"EncryptedChat"},{id:"-931638658",predicate:"encryptedChatRequested",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a",type:"bytes"}],type:"EncryptedChat"},{id:"-94974410",predicate:"encryptedChat",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a_or_b",type:"bytes"},{name:"key_fingerprint",type:"long"}],type:"EncryptedChat"},{id:"332848423",predicate:"encryptedChatDiscarded",params:[{name:"id",type:"int"}],type:"EncryptedChat"},{id:"-247351839",predicate:"inputEncryptedChat",params:[{name:"chat_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputEncryptedChat"},{id:"-1038136962",predicate:"encryptedFileEmpty",params:[],type:"EncryptedFile"},{id:"1248893260",predicate:"encryptedFile",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"size",type:"int"},{name:"dc_id",type:"int"},{name:"key_fingerprint",type:"int"}],type:"EncryptedFile"},{id:"406307684",predicate:"inputEncryptedFileEmpty",params:[],type:"InputEncryptedFile"},{id:"1690108678",predicate:"inputEncryptedFileUploaded",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"md5_checksum",type:"string"},{name:"key_fingerprint",type:"int"}],type:"InputEncryptedFile"},{id:"1511503333",predicate:"inputEncryptedFile",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputEncryptedFile"},{id:"-182231723",predicate:"inputEncryptedFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputFileLocation"},{id:"-317144808",predicate:"encryptedMessage",params:[{name:"random_id",type:"long"},{name:"chat_id",type:"int"},{name:"date",type:"int"},{name:"bytes",type:"bytes"},{name:"file",type:"EncryptedFile"}],type:"EncryptedMessage"},{id:"594758406",predicate:"encryptedMessageService",params:[{name:"random_id",type:"long"},{name:"chat_id",type:"int"},{name:"date",type:"int"},{name:"bytes",type:"bytes"}],type:"EncryptedMessage"},{id:"-1058912715",predicate:"messages.dhConfigNotModified",params:[{name:"random",type:"bytes"}],type:"messages.DhConfig"},{id:"740433629",predicate:"messages.dhConfig",params:[{name:"g",type:"int"},{name:"p",type:"bytes"},{name:"version",type:"int"},{name:"random",type:"bytes"}],type:"messages.DhConfig"},{id:"1443858741",predicate:"messages.sentEncryptedMessage",params:[{name:"date",type:"int"}],type:"messages.SentEncryptedMessage"},{id:"-1802240206",predicate:"messages.sentEncryptedFile",params:[{name:"date",type:"int"},{name:"file",type:"EncryptedFile"}],type:"messages.SentEncryptedMessage"},{id:"-95482955",predicate:"inputFileBig",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"name",type:"string"}],type:"InputFile"},{id:"767652808",predicate:"inputEncryptedFileBigUploaded",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"key_fingerprint",type:"int"}],type:"InputEncryptedFile"},{id:"974056226",predicate:"updateChatParticipantAdd",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"version",type:"int"}],type:"Update"},{id:"1851755554",predicate:"updateChatParticipantDelete",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"version",type:"int"}],type:"Update"},{id:"-1906403213",predicate:"updateDcOptions",params:[{name:"dc_options",type:"Vector<DcOption>"}],type:"Update"},{id:"1313442987",predicate:"inputMediaUploadedAudio",params:[{name:"file",type:"InputFile"},{name:"duration",type:"int"},{name:"mime_type",type:"string"}],type:"InputMedia"},{id:"-1986820223",predicate:"inputMediaAudio",params:[{name:"id",type:"InputAudio"}],type:"InputMedia"},{id:"887592125",predicate:"inputMediaUploadedDocument",params:[{name:"file",type:"InputFile"},{name:"file_name",type:"string"},{name:"mime_type",type:"string"}],type:"InputMedia"},{id:"1044831837",predicate:"inputMediaUploadedThumbDocument",params:[{name:"file",type:"InputFile"},{name:"thumb",type:"InputFile"},{name:"file_name",type:"string"},{name:"mime_type",type:"string"}],type:"InputMedia"},{id:"-779818943",predicate:"inputMediaDocument",params:[{name:"id",type:"InputDocument"}],type:"InputMedia"},{id:"802824708",predicate:"messageMediaDocument",params:[{name:"document",type:"Document"}],type:"MessageMedia"},{id:"-961117440",predicate:"messageMediaAudio",params:[{name:"audio",type:"Audio"}],type:"MessageMedia"},{id:"-648356732",predicate:"inputAudioEmpty",params:[],type:"InputAudio"},{id:"2010398975",predicate:"inputAudio",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputAudio"},{id:"1928391342",predicate:"inputDocumentEmpty",params:[],type:"InputDocument"},{id:"410618194",predicate:"inputDocument",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputDocument"},{id:"1960591437",predicate:"inputAudioFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputFileLocation"},{id:"1313188841",predicate:"inputDocumentFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputFileLocation"},{id:"1483311320",predicate:"audioEmpty",params:[{name:"id",type:"long"}],type:"Audio"},{id:"-945003370",predicate:"audio",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"user_id",type:"int"},{name:"date",type:"int"},{name:"duration",type:"int"},{name:"mime_type",type:"string"},{name:"size",type:"int"},{name:"dc_id",type:"int"}],type:"Audio"},{id:"922273905",predicate:"documentEmpty",params:[{name:"id",type:"long"}],type:"Document"},{id:"-1627626714",predicate:"document",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"user_id",type:"int"},{name:"date",type:"int"},{name:"file_name",type:"string"},{name:"mime_type",type:"string"},{name:"size",type:"int"},{name:"thumb",type:"PhotoSize"},{name:"dc_id",type:"int"}],type:"Document"},{id:"398898678",predicate:"help.support",params:[{name:"phone_number",type:"string"},{name:"user",type:"User"}],type:"help.Support"},{id:"-1613493288",predicate:"notifyPeer",params:[{name:"peer",type:"Peer"}],type:"NotifyPeer"},{id:"-1261946036",predicate:"notifyUsers",params:[],type:"NotifyPeer"},{id:"-1073230141",predicate:"notifyChats",params:[],type:"NotifyPeer"},{id:"1959820384",predicate:"notifyAll",params:[],type:"NotifyPeer"},{id:"-2131957734",predicate:"updateUserBlocked",params:[{name:"user_id",type:"int"},{name:"blocked",type:"Bool"}],type:"Update"},{id:"-1094555409",predicate:"updateNotifySettings",params:[{name:"peer",type:"NotifyPeer"},{name:"notify_settings",type:"PeerNotifySettings"}],type:"Update"},{id:"-484053553",predicate:"auth.sentAppCode",params:[{name:"phone_registered",type:"Bool"},{name:"phone_code_hash",type:"string"},{name:"send_call_timeout",type:"int"},{name:"is_password",type:"Bool"}],type:"auth.SentCode"}],methods:[{id:"-878758099",method:"invokeAfterMsg",params:[{name:"msg_id",type:"long"},{name:"query",type:"!X"}],type:"X"},{id:"1036301552",method:"invokeAfterMsgs",params:[{name:"msg_ids",type:"Vector<long>"},{name:"query",type:"!X"}],type:"X"},{id:"1877286395",method:"auth.checkPhone",params:[{name:"phone_number",type:"string"}],type:"auth.CheckedPhone"},{id:"1988976461",method:"auth.sendCode",params:[{name:"phone_number",type:"string"},{name:"sms_type",type:"int"},{name:"api_id",type:"int"},{name:"api_hash",type:"string"},{name:"lang_code",type:"string"}],type:"auth.SentCode"},{id:"63247716",method:"auth.sendCall",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"Bool"},{id:"453408308",method:"auth.signUp",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"auth.Authorization"},{id:"-1126886015",method:"auth.signIn",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"auth.Authorization"},{id:"1461180992",method:"auth.logOut",params:[],type:"Bool"},{id:"-1616179942",method:"auth.resetAuthorizations",params:[],type:"Bool"},{id:"1998331287",method:"auth.sendInvites",params:[{name:"phone_numbers",type:"Vector<string>"},{name:"message",type:"string"}],type:"Bool"},{id:"-440401971",method:"auth.exportAuthorization",params:[{name:"dc_id",type:"int"}],type:"auth.ExportedAuthorization"},{id:"-470837741",method:"auth.importAuthorization",params:[{name:"id",type:"int"},{name:"bytes",type:"bytes"}],type:"auth.Authorization"},{id:"-841733627",method:"auth.bindTempAuthKey",params:[{name:"perm_auth_key_id",type:"long"},{name:"nonce",type:"long"},{name:"expires_at",type:"int"},{name:"encrypted_message",type:"bytes"}],type:"Bool"},{id:"1147957548",method:"account.registerDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"},{name:"device_model",type:"string"},{name:"system_version",type:"string"},{name:"app_version",type:"string"},{name:"app_sandbox",type:"Bool"},{name:"lang_code",type:"string"}],type:"Bool"},{id:"1707432768",method:"account.unregisterDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"}],type:"Bool"},{id:"-2067899501",method:"account.updateNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"},{name:"settings",type:"InputPeerNotifySettings"}],type:"Bool"},{id:"313765169",method:"account.getNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"}],type:"PeerNotifySettings"},{id:"-612493497",method:"account.resetNotifySettings",params:[],type:"Bool"},{id:"-259486360",method:"account.updateProfile",params:[{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"User"},{id:"1713919532",method:"account.updateStatus",params:[{name:"offline",type:"Bool"}],type:"Bool"},{id:"-1068696894",method:"account.getWallPapers",params:[],type:"Vector<WallPaper>"},{id:"227648840",method:"users.getUsers",params:[{name:"id",type:"Vector<InputUser>"}],type:"Vector<User>"},{id:"-902781519",method:"users.getFullUser",params:[{name:"id",type:"InputUser"}],type:"UserFull"},{id:"-995929106",method:"contacts.getStatuses",params:[],type:"Vector<ContactStatus>"},{id:"583445000",method:"contacts.getContacts",params:[{name:"hash",type:"string"}],type:"contacts.Contacts"},{id:"-634342611",method:"contacts.importContacts",params:[{name:"contacts",type:"Vector<InputContact>"},{name:"replace",type:"Bool"}],type:"contacts.ImportedContacts"},{id:"301470424",method:"contacts.search",params:[{name:"q",type:"string"},{name:"limit",type:"int"}],type:"contacts.Found"},{id:"-847825880",method:"contacts.getSuggested",params:[{name:"limit",type:"int"}],type:"contacts.Suggested"},{id:"-1902823612",method:"contacts.deleteContact",params:[{name:"id",type:"InputUser"}],type:"contacts.Link"},{id:"1504393374",method:"contacts.deleteContacts",params:[{name:"id",type:"Vector<InputUser>"}],type:"Bool"},{id:"858475004",method:"contacts.block",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-448724803",method:"contacts.unblock",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-176409329",method:"contacts.getBlocked",params:[{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"contacts.Blocked"},{id:"-2065352905",method:"contacts.exportCard",params:[],type:"Vector<int>"},{id:"1340184318",method:"contacts.importCard",params:[{name:"export_card",type:"Vector<int>"}],type:"User"},{id:"1109588596",method:"messages.getMessages",params:[{name:"id",type:"Vector<int>"}],type:"messages.Messages"},{id:"-321970698",method:"messages.getDialogs",params:[{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Dialogs"},{id:"-1834885329",method:"messages.getHistory",params:[{name:"peer",type:"InputPeer"},{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"132772523",method:"messages.search",params:[{name:"peer",type:"InputPeer"},{name:"q",type:"string"},{name:"filter",type:"MessagesFilter"},{name:"min_date",type:"int"},{name:"max_date",type:"int"},{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"-1336990448",method:"messages.readHistory",params:[{name:"peer",type:"InputPeer"},{name:"max_id",type:"int"},{name:"offset",type:"int"}],type:"messages.AffectedHistory"},{id:"-185009311",method:"messages.deleteHistory",params:[{name:"peer",type:"InputPeer"},{name:"offset",type:"int"}],type:"messages.AffectedHistory"},{id:"351460618",method:"messages.deleteMessages",params:[{name:"id",type:"Vector<int>"}],type:"Vector<int>"},{id:"962567550",method:"messages.restoreMessages",params:[{name:"id",type:"Vector<int>"}],type:"Vector<int>"},{id:"682347368",method:"messages.receivedMessages",params:[{name:"max_id",type:"int"}],type:"Vector<int>"},{id:"1905801705",method:"messages.setTyping",params:[{name:"peer",type:"InputPeer"},{name:"typing",type:"Bool"}],type:"Bool"},{id:"1289620139",method:"messages.sendMessage",params:[{name:"peer",type:"InputPeer"},{name:"message",type:"string"},{name:"random_id",type:"long"}],type:"messages.SentMessage"},{id:"-1547149962",method:"messages.sendMedia",params:[{name:"peer",type:"InputPeer"},{name:"media",type:"InputMedia"},{name:"random_id",type:"long"}],type:"messages.StatedMessage"},{id:"1363988751",method:"messages.forwardMessages",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"Vector<int>"}],type:"messages.StatedMessages"},{id:"1013621127",method:"messages.getChats",params:[{name:"id",type:"Vector<int>"}],type:"messages.Chats"},{id:"998448230",method:"messages.getFullChat",params:[{name:"chat_id",type:"int"}],type:"messages.ChatFull"},{id:"-1262720843",method:"messages.editChatTitle",params:[{name:"chat_id",type:"int"},{name:"title",type:"string"}],type:"messages.StatedMessage"},{id:"-662601187",method:"messages.editChatPhoto",params:[{name:"chat_id",type:"int"},{name:"photo",type:"InputChatPhoto"}],type:"messages.StatedMessage"},{id:"787082910",method:"messages.addChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"},{name:"fwd_limit",type:"int"}],type:"messages.StatedMessage"},{id:"-1010447069",method:"messages.deleteChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"}],type:"messages.StatedMessage"},{id:"1100847854",method:"messages.createChat",params:[{name:"users",type:"Vector<InputUser>"},{name:"title",type:"string"}],type:"messages.StatedMessage"},{id:"-304838614",method:"updates.getState",params:[],type:"updates.State"},{id:"168039573",method:"updates.getDifference",params:[{name:"pts",type:"int"},{name:"date",type:"int"},{name:"qts",type:"int"}],type:"updates.Difference"},{id:"-285902432",method:"photos.updateProfilePhoto",params:[{name:"id",type:"InputPhoto"},{name:"crop",type:"InputPhotoCrop"}],type:"UserProfilePhoto"},{id:"-720397176",method:"photos.uploadProfilePhoto",params:[{name:"file",type:"InputFile"},{name:"caption",type:"string"},{name:"geo_point",type:"InputGeoPoint"},{name:"crop",type:"InputPhotoCrop"}],type:"photos.Photo"},{id:"-1291540959",method:"upload.saveFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"-475607115",method:"upload.getFile",params:[{name:"location",type:"InputFileLocation"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.File"},{id:"-990308245",method:"help.getConfig",params:[],type:"Config"},{id:"531836966",method:"help.getNearestDc",params:[],type:"NearestDc"},{id:"-938300290",method:"help.getAppUpdate",params:[{name:"device_model",type:"string"},{name:"system_version",type:"string"},{name:"app_version",type:"string"},{name:"lang_code",type:"string"}],type:"help.AppUpdate"},{id:"1862465352",method:"help.saveAppLog",params:[{name:"events",type:"Vector<InputAppEvent>"}],type:"Bool"},{id:"-1532407418",method:"help.getInviteText",params:[{name:"lang_code",type:"string"}],type:"help.InviteText"},{id:"-1209117380",method:"photos.getUserPhotos",params:[{name:"user_id",type:"InputUser"},{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"photos.Photos"},{id:"66319602",method:"messages.forwardMessage",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"random_id",type:"long"}],type:"messages.StatedMessage"},{id:"1102776690",method:"messages.sendBroadcast",params:[{name:"contacts",type:"Vector<InputUser>"},{name:"message",type:"string"},{name:"media",type:"InputMedia"}],type:"messages.StatedMessages"},{id:"2132356495",method:"geochats.getLocated",params:[{name:"geo_point",type:"InputGeoPoint"},{name:"radius",type:"int"},{name:"limit",type:"int"}],type:"geochats.Located"},{id:"-515735953",method:"geochats.getRecents",params:[{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"geochats.Messages"},{id:"1437853947",method:"geochats.checkin",params:[{name:"peer",type:"InputGeoChat"}],type:"geochats.StatedMessage"},{id:"1730338159",method:"geochats.getFullChat",params:[{name:"peer",type:"InputGeoChat"}],type:"messages.ChatFull"},{id:"1284383347",method:"geochats.editChatTitle",params:[{name:"peer",type:"InputGeoChat"},{name:"title",type:"string"},{name:"address",type:"string"}],type:"geochats.StatedMessage"},{id:"903355029",method:"geochats.editChatPhoto",params:[{name:"peer",type:"InputGeoChat"},{name:"photo",type:"InputChatPhoto"}],type:"geochats.StatedMessage"},{id:"-808598451",method:"geochats.search",params:[{name:"peer",type:"InputGeoChat"},{name:"q",type:"string"},{name:"filter",type:"MessagesFilter"},{name:"min_date",type:"int"},{name:"max_date",type:"int"},{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"geochats.Messages"},{id:"-1254131096",method:"geochats.getHistory",params:[{name:"peer",type:"InputGeoChat"},{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"geochats.Messages"},{id:"146319145",method:"geochats.setTyping",params:[{name:"peer",type:"InputGeoChat"},{name:"typing",type:"Bool"}],type:"Bool"},{id:"102432836",method:"geochats.sendMessage",params:[{name:"peer",type:"InputGeoChat"},{name:"message",type:"string"},{name:"random_id",type:"long"}],type:"geochats.StatedMessage"},{id:"-1192173825",method:"geochats.sendMedia",params:[{name:"peer",type:"InputGeoChat"},{name:"media",type:"InputMedia"},{name:"random_id",type:"long"}],type:"geochats.StatedMessage"},{id:"235482646",method:"geochats.createGeoChat",params:[{name:"title",type:"string"},{name:"geo_point",type:"InputGeoPoint"},{name:"address",type:"string"},{name:"venue",type:"string"}],type:"geochats.StatedMessage"},{id:"651135312",method:"messages.getDhConfig",params:[{name:"version",type:"int"},{name:"random_length",type:"int"}],type:"messages.DhConfig"},{id:"-162681021",method:"messages.requestEncryption",params:[{name:"user_id",type:"InputUser"},{name:"random_id",type:"int"},{name:"g_a",type:"bytes"}],type:"EncryptedChat"},{id:"1035731989",method:"messages.acceptEncryption",params:[{name:"peer",type:"InputEncryptedChat"},{name:"g_b",type:"bytes"},{name:"key_fingerprint",type:"long"}],type:"EncryptedChat"},{id:"-304536635",method:"messages.discardEncryption",params:[{name:"chat_id",type:"int"}],type:"Bool"},{id:"2031374829",method:"messages.setEncryptedTyping",params:[{name:"peer",type:"InputEncryptedChat"},{name:"typing",type:"Bool"}],type:"Bool"},{id:"2135648522",method:"messages.readEncryptedHistory",params:[{name:"peer",type:"InputEncryptedChat"},{name:"max_date",type:"int"}],type:"Bool"},{id:"-1451792525",method:"messages.sendEncrypted",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"-1701831834",method:"messages.sendEncryptedFile",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"},{name:"file",type:"InputEncryptedFile"}],type:"messages.SentEncryptedMessage"},{id:"852769188",method:"messages.sendEncryptedService",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"1436924774",method:"messages.receivedQueue",params:[{name:"max_qts",type:"int"}],type:"Vector<long>"},{id:"-562337987",method:"upload.saveBigFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"file_total_parts",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"1769565673",method:"initConnection",params:[{name:"api_id",type:"int"},{name:"device_model",type:"string"},{name:"system_version",type:"string"},{name:"app_version",type:"string"},{name:"lang_code",type:"string"},{name:"query",type:"!X"}],type:"X"},{id:"-1663104819",method:"help.getSupport",params:[],type:"help.Support"},{id:"229241832",method:"auth.sendSms",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"Bool"},{id:"-815855225",method:"invokeWithLayer16",params:[{name:"query",type:"!X"}],type:"X"}]},Config.Schema.API.layer=15,Config.Emoji={"00a9":["©",["copyright"]],"00ae":["®",["registered"]],"203c":["‼",["bangbang"]],2049:["⁉",["interrobang"]],2122:["™",["tm"]],2139:["ℹ",["information_source"]],2194:["↔",["left_right_arrow"]],2195:["↕",["arrow_up_down"]],2196:["↖",["arrow_upper_left"]],2197:["↗",["arrow_upper_right"]],2198:["↘",["arrow_lower_right"]],2199:["↙",["arrow_lower_left"]],"21a9":["↩",["leftwards_arrow_with_hook"]],"21aa":["↪",["arrow_right_hook"]],"231a":["⌚",["watch"]],"231b":["⌛",["hourglass"]],"23e9":["⏩",["fast_forward"]],"23ea":["⏪",["rewind"]],"23eb":["⏫",["arrow_double_up"]],"23ec":["⏬",["arrow_double_down"]],"23f0":["⏰",["alarm_clock"]],"23f3":["⏳",["hourglass_flowing_sand"]],"24c2":["Ⓜ",["m"]],"25aa":["▪",["black_small_square"]],"25ab":["▫",["white_small_square"]],"25b6":["▶",["arrow_forward"]],"25c0":["◀",["arrow_backward"]],"25fb":["◻",["white_medium_square"]],"25fc":["◼",["black_medium_square"]],"25fd":["◽",["white_medium_small_square"]],"25fe":["◾",["black_medium_small_square"]],2600:["☀",["sunny"]],2601:["☁",["cloud"]],"260e":["☎",["phone","telephone"]],2611:["☑",["ballot_box_with_check"]],2614:["☔",["umbrella"]],2615:["☕",["coffee"]],"261d":["☝",["point_up"]],"263a":["☺",["relaxed"]],2648:["♈",["aries"]],2649:["♉",["taurus"]],"264a":["♊",["gemini"]],"264b":["♋",["cancer"]],"264c":["♌",["leo"]],"264d":["♍",["virgo"]],"264e":["♎",["libra"]],"264f":["♏",["scorpius"]],2650:["♐",["sagittarius"]],2651:["♑",["capricorn"]],2652:["♒",["aquarius"]],2653:["♓",["pisces"]],2660:["♠",["spades"]],2663:["♣",["clubs"]],2665:["♥",["hearts"]],2666:["♦",["diamonds"]],2668:["♨",["hotsprings"]],"267b":["♻",["recycle"]],"267f":["♿",["wheelchair"]],2693:["⚓",["anchor"]],"26a0":["⚠",["warning"]],"26a1":["⚡",["zap"]],"26aa":["⚪",["white_circle"]],"26ab":["⚫",["black_circle"]],"26bd":["⚽",["soccer"]],"26be":["⚾",["baseball"]],"26c4":["⛄",["snowman"]],"26c5":["⛅",["partly_sunny"]],"26ce":["⛎",["ophiuchus"]],"26d4":["⛔",["no_entry"]],"26ea":["⛪",["church"]],"26f2":["⛲",["fountain"]],"26f3":["⛳",["golf"]],"26f5":["⛵",["boat","sailboat"]],"26fa":["⛺",["tent"]],"26fd":["⛽",["fuelpump"]],2702:["✂",["scissors"]],2705:["✅",["white_check_mark"]],2708:["✈",["airplane"]],2709:["✉",["email","envelope"]],"270a":["✊",["fist"]],"270b":["✋",["hand","raised_hand"]],"270c":["✌",["v"]],"270f":["✏",["pencil2"]],2712:["✒",["black_nib"]],2714:["✔",["heavy_check_mark"]],2716:["✖",["heavy_multiplication_x"]],2728:["✨",["sparkles"]],2733:["✳",["eight_spoked_asterisk"]],2734:["✴",["eight_pointed_black_star"]],2744:["❄",["snowflake"]],2747:["❇",["sparkle"]],"274c":["❌",["x"]],"274e":["❎",["negative_squared_cross_mark"]],2753:["❓",["question"]],2754:["❔",["grey_question"]],2755:["❕",["grey_exclamation"]],2757:["❗",["exclamation","heavy_exclamation_mark"]],2764:["❤",["heart"],"<3"],2795:["➕",["heavy_plus_sign"]],2796:["➖",["heavy_minus_sign"]],2797:["➗",["heavy_division_sign"]],"27a1":["➡",["arrow_right"]],"27b0":["➰",["curly_loop"]],"27bf":["➿",["loop"]],2934:["⤴",["arrow_heading_up"]],2935:["⤵",["arrow_heading_down"]],"2b05":["⬅",["arrow_left"]],"2b06":["⬆",["arrow_up"]],"2b07":["⬇",["arrow_down"]],"2b1b":["⬛",["black_large_square"]],"2b1c":["⬜",["white_large_square"]],"2b50":["⭐",["star"]],"2b55":["⭕",["o"]],3030:["〰",["wavy_dash"]],"303d":["〽",["part_alternation_mark"]],3297:["㊗",["congratulations"]],3299:["㊙",["secret"]],"1f004":["🀄",["mahjong"]],"1f0cf":["🃏",["black_joker"]],"1f170":["🅰",["a"]],"1f171":["🅱",["b"]],"1f17e":["🅾",["o2"]],"1f17f":["🅿",["parking"]],"1f18e":["🆎",["ab"]],"1f191":["🆑",["cl"]],"1f192":["🆒",["cool"]],"1f193":["🆓",["free"]],"1f194":["🆔",["id"]],"1f195":["🆕",["new"]],"1f196":["🆖",["ng"]],"1f197":["🆗",["ok"]],"1f198":["🆘",["sos"]],"1f199":["🆙",["up"]],"1f19a":["🆚",["vs"]],"1f201":["🈁",["koko"]],"1f202":["🈂",["sa"]],"1f21a":["🈚",["u7121"]],"1f22f":["🈯",["u6307"]],"1f232":["🈲",["u7981"]],"1f233":["🈳",["u7a7a"]],"1f234":["🈴",["u5408"]],"1f235":["🈵",["u6e80"]],"1f236":["🈶",["u6709"]],"1f237":["🈷",["u6708"]],"1f238":["🈸",["u7533"]],"1f239":["🈹",["u5272"]],"1f23a":["🈺",["u55b6"]],"1f250":["🉐",["ideograph_advantage"]],"1f251":["🉑",["accept"]],"1f300":["🌀",["cyclone"]],"1f301":["🌁",["foggy"]],"1f302":["🌂",["closed_umbrella"]],"1f303":["🌃",["stars"]],"1f304":["🌄",["sunrise_over_mountains"]],"1f305":["🌅",["sunrise"]],"1f306":["🌆",["city_sunset"]],"1f307":["🌇",["city_sunrise"]],"1f308":["🌈",["rainbow"]],"1f309":["🌉",["bridge_at_night"]],"1f30a":["🌊",["ocean"]],"1f30b":["🌋",["volcano"]],"1f30c":["🌌",["milky_way"]],"1f30d":["🌍",["earth_africa"]],"1f30e":["🌎",["earth_americas"]],"1f30f":["🌏",["earth_asia"]],"1f310":["🌐",["globe_with_meridians"]],"1f311":["🌑",["new_moon"]],"1f312":["🌒",["waxing_crescent_moon"]],"1f313":["🌓",["first_quarter_moon"]],"1f314":["🌔",["moon","waxing_gibbous_moon"]],"1f315":["🌕",["full_moon"]],"1f316":["🌖",["waning_gibbous_moon"]],"1f317":["🌗",["last_quarter_moon"]],"1f318":["🌘",["waning_crescent_moon"]],"1f319":["🌙",["crescent_moon"]],"1f31a":["🌚",["new_moon_with_face"]],"1f31b":["🌛",["first_quarter_moon_with_face"]],"1f31c":["🌜",["last_quarter_moon_with_face"]],"1f31d":["🌝",["full_moon_with_face"]],"1f31e":["🌞",["sun_with_face"]],"1f31f":["🌟",["star2"]],"1f330":["🌰",["chestnut"]],"1f331":["🌱",["seedling"]],"1f332":["🌲",["evergreen_tree"]],"1f333":["🌳",["deciduous_tree"]],"1f334":["🌴",["palm_tree"]],"1f335":["🌵",["cactus"]],"1f337":["🌷",["tulip"]],"1f338":["🌸",["cherry_blossom"]],"1f339":["🌹",["rose"]],"1f33a":["🌺",["hibiscus"]],"1f33b":["🌻",["sunflower"]],"1f33c":["🌼",["blossom"]],"1f33d":["🌽",["corn"]],"1f33e":["🌾",["ear_of_rice"]],"1f33f":["🌿",["herb"]],"1f340":["🍀",["four_leaf_clover"]],"1f341":["🍁",["maple_leaf"]],"1f342":["🍂",["fallen_leaf"]],"1f343":["🍃",["leaves"]],"1f344":["🍄",["mushroom"]],"1f345":["🍅",["tomato"]],"1f346":["🍆",["eggplant"]],"1f347":["🍇",["grapes"]],"1f348":["🍈",["melon"]],"1f349":["🍉",["watermelon"]],"1f34a":["🍊",["tangerine"]],"1f34b":["🍋",["lemon"]],"1f34c":["🍌",["banana"]],"1f34d":["🍍",["pineapple"]],"1f34e":["🍎",["apple"]],"1f34f":["🍏",["green_apple"]],"1f350":["🍐",["pear"]],"1f351":["🍑",["peach"]],"1f352":["🍒",["cherries"]],"1f353":["🍓",["strawberry"]],"1f354":["🍔",["hamburger"]],"1f355":["🍕",["pizza"]],"1f356":["🍖",["meat_on_bone"]],"1f357":["🍗",["poultry_leg"]],"1f358":["🍘",["rice_cracker"]],"1f359":["🍙",["rice_ball"]],"1f35a":["🍚",["rice"]],"1f35b":["🍛",["curry"]],"1f35c":["🍜",["ramen"]],"1f35d":["🍝",["spaghetti"]],"1f35e":["🍞",["bread"]],"1f35f":["🍟",["fries"]],"1f360":["🍠",["sweet_potato"]],"1f361":["🍡",["dango"]],"1f362":["🍢",["oden"]],"1f363":["🍣",["sushi"]],"1f364":["🍤",["fried_shrimp"]],"1f365":["🍥",["fish_cake"]],"1f366":["🍦",["icecream"]],"1f367":["🍧",["shaved_ice"]],"1f368":["🍨",["ice_cream"]],"1f369":["🍩",["doughnut"]],"1f36a":["🍪",["cookie"]],"1f36b":["🍫",["chocolate_bar"]],"1f36c":["🍬",["candy"]],"1f36d":["🍭",["lollipop"]],"1f36e":["🍮",["custard"]],"1f36f":["🍯",["honey_pot"]],"1f370":["🍰",["cake"]],"1f371":["🍱",["bento"]],"1f372":["🍲",["stew"]],"1f373":["🍳",["egg"]],"1f374":["🍴",["fork_and_knife"]],"1f375":["🍵",["tea"]],"1f376":["🍶",["sake"]],"1f377":["🍷",["wine_glass"]],"1f378":["🍸",["cocktail"]],"1f379":["🍹",["tropical_drink"]],"1f37a":["🍺",["beer"]],"1f37b":["🍻",["beers"]],"1f37c":["🍼",["baby_bottle"]],"1f380":["🎀",["ribbon"]],"1f381":["🎁",["gift"]],"1f382":["🎂",["birthday"]],"1f383":["🎃",["jack_o_lantern"]],"1f384":["🎄",["christmas_tree"]],"1f385":["🎅",["santa"]],"1f386":["🎆",["fireworks"]],"1f387":["🎇",["sparkler"]],"1f388":["🎈",["balloon"]],"1f389":["🎉",["tada"]],"1f38a":["🎊",["confetti_ball"]],"1f38b":["🎋",["tanabata_tree"]],"1f38c":["🎌",["crossed_flags"]],"1f38d":["🎍",["bamboo"]],"1f38e":["🎎",["dolls"]],"1f38f":["🎏",["flags"]],"1f390":["🎐",["wind_chime"]],"1f391":["🎑",["rice_scene"]],"1f392":["🎒",["school_satchel"]],"1f393":["🎓",["mortar_board"]],"1f3a0":["🎠",["carousel_horse"]],"1f3a1":["🎡",["ferris_wheel"]],"1f3a2":["🎢",["roller_coaster"]],"1f3a3":["🎣",["fishing_pole_and_fish"]],"1f3a4":["🎤",["microphone"]],"1f3a5":["🎥",["movie_camera"]],"1f3a6":["🎦",["cinema"]],"1f3a7":["🎧",["headphones"]],"1f3a8":["🎨",["art"]],"1f3a9":["🎩",["tophat"]],"1f3aa":["🎪",["circus_tent"]],"1f3ab":["🎫",["ticket"]],"1f3ac":["🎬",["clapper"]],"1f3ad":["🎭",["performing_arts"]],"1f3ae":["🎮",["video_game"]],"1f3af":["🎯",["dart"]],"1f3b0":["🎰",["slot_machine"]],"1f3b1":["🎱",["8ball"]],"1f3b2":["🎲",["game_die"]],"1f3b3":["🎳",["bowling"]],"1f3b4":["🎴",["flower_playing_cards"]],"1f3b5":["🎵",["musical_note"]],"1f3b6":["🎶",["notes"]],"1f3b7":["🎷",["saxophone"]],"1f3b8":["🎸",["guitar"]],"1f3b9":["🎹",["musical_keyboard"]],"1f3ba":["🎺",["trumpet"]],"1f3bb":["🎻",["violin"]],"1f3bc":["🎼",["musical_score"]],"1f3bd":["🎽",["running_shirt_with_sash"]],"1f3be":["🎾",["tennis"]],"1f3bf":["🎿",["ski"]],"1f3c0":["🏀",["basketball"]],"1f3c1":["🏁",["checkered_flag"]],"1f3c2":["🏂",["snowboarder"]],"1f3c3":["🏃",["runner","running"]],"1f3c4":["🏄",["surfer"]],"1f3c6":["🏆",["trophy"]],"1f3c7":["🏇",["horse_racing"]],"1f3c8":["🏈",["football"]],"1f3c9":["🏉",["rugby_football"]],"1f3ca":["🏊",["swimmer"]],"1f3e0":["🏠",["house"]],"1f3e1":["🏡",["house_with_garden"]],"1f3e2":["🏢",["office"]],"1f3e3":["🏣",["post_office"]],"1f3e4":["🏤",["european_post_office"]],"1f3e5":["🏥",["hospital"]],"1f3e6":["🏦",["bank"]],"1f3e7":["🏧",["atm"]],"1f3e8":["🏨",["hotel"]],"1f3e9":["🏩",["love_hotel"]],"1f3ea":["🏪",["convenience_store"]],"1f3eb":["🏫",["school"]],"1f3ec":["🏬",["department_store"]],"1f3ed":["🏭",["factory"]],"1f3ee":["🏮",["izakaya_lantern","lantern"]],"1f3ef":["🏯",["japanese_castle"]],"1f3f0":["🏰",["european_castle"]],"1f400":["🐀",["rat"]],"1f401":["🐁",["mouse2"]],"1f402":["🐂",["ox"]],"1f403":["🐃",["water_buffalo"]],"1f404":["🐄",["cow2"]],"1f405":["🐅",["tiger2"]],"1f406":["🐆",["leopard"]],"1f407":["🐇",["rabbit2"]],"1f408":["🐈",["cat2"]],"1f409":["🐉",["dragon"]],"1f40a":["🐊",["crocodile"]],"1f40b":["🐋",["whale2"]],"1f40c":["🐌",["snail"]],"1f40d":["🐍",["snake"]],"1f40e":["🐎",["racehorse"]],"1f40f":["🐏",["ram"]],"1f410":["🐐",["goat"]],"1f411":["🐑",["sheep"]],"1f412":["🐒",["monkey"]],"1f413":["🐓",["rooster"]],"1f414":["🐔",["chicken"]],"1f415":["🐕",["dog2"]],"1f416":["🐖",["pig2"]],"1f417":["🐗",["boar"]],"1f418":["🐘",["elephant"]],"1f419":["🐙",["octopus"]],"1f41a":["🐚",["shell"]],"1f41b":["🐛",["bug"]],"1f41c":["🐜",["ant"]],"1f41d":["🐝",["bee","honeybee"]],"1f41e":["🐞",["beetle"]],"1f41f":["🐟",["fish"]],"1f420":["🐠",["tropical_fish"]],"1f421":["🐡",["blowfish"]],"1f422":["🐢",["turtle"]],"1f423":["🐣",["hatching_chick"]],"1f424":["🐤",["baby_chick"]],"1f425":["🐥",["hatched_chick"]],"1f426":["🐦",["bird"]],"1f427":["🐧",["penguin"]],"1f428":["🐨",["koala"]],"1f429":["🐩",["poodle"]],"1f42a":["🐪",["dromedary_camel"]],"1f42b":["🐫",["camel"]],"1f42c":["🐬",["dolphin","flipper"]],"1f42d":["🐭",["mouse"]],"1f42e":["🐮",["cow"]],"1f42f":["🐯",["tiger"]],"1f430":["🐰",["rabbit"]],"1f431":["🐱",["cat"]],"1f432":["🐲",["dragon_face"]],"1f433":["🐳",["whale"]],"1f434":["🐴",["horse"]],"1f435":["🐵",["monkey_face"]],"1f436":["🐶",["dog"]],"1f437":["🐷",["pig"]],"1f438":["🐸",["frog"]],"1f439":["🐹",["hamster"]],"1f43a":["🐺",["wolf"]],"1f43b":["🐻",["bear"]],"1f43c":["🐼",["panda_face"]],"1f43d":["🐽",["pig_nose"]],"1f43e":["🐾",["feet","paw_prints"]],"1f440":["👀",["eyes"]],"1f442":["👂",["ear"]],"1f443":["👃",["nose"]],"1f444":["👄",["lips"]],"1f445":["👅",["tongue"]],"1f446":["👆",["point_up_2"]],"1f447":["👇",["point_down"]],"1f448":["👈",["point_left"]],"1f449":["👉",["point_right"]],"1f44a":["👊",["facepunch","punch"]],"1f44b":["👋",["wave"]],"1f44c":["👌",["ok_hand"]],"1f44d":["👍",["+1","thumbsup"]],"1f44e":["👎",["-1","thumbsdown"]],"1f44f":["👏",["clap"]],"1f450":["👐",["open_hands"]],"1f451":["👑",["crown"]],"1f452":["👒",["womans_hat"]],"1f453":["👓",["eyeglasses"]],"1f454":["👔",["necktie"]],"1f455":["👕",["shirt","tshirt"]],"1f456":["👖",["jeans"]],"1f457":["👗",["dress"]],"1f458":["👘",["kimono"]],"1f459":["👙",["bikini"]],"1f45a":["👚",["womans_clothes"]],"1f45b":["👛",["purse"]],"1f45c":["👜",["handbag"]],"1f45d":["👝",["pouch"]],"1f45e":["👞",["mans_shoe","shoe"]],"1f45f":["👟",["athletic_shoe"]],"1f460":["👠",["high_heel"]],"1f461":["👡",["sandal"]],"1f462":["👢",["boot"]],"1f463":["👣",["footprints"]],"1f464":["👤",["bust_in_silhouette"]],"1f465":["👥",["busts_in_silhouette"]],"1f466":["👦",["boy"]],"1f467":["👧",["girl"]],"1f468":["👨",["man"]],"1f469":["👩",["woman"]],"1f46a":["👪",["family"]],"1f46b":["👫",["couple"]],"1f46c":["👬",["two_men_holding_hands"]],"1f46d":["👭",["two_women_holding_hands"]],"1f46e":["👮",["cop"]],"1f46f":["👯",["dancers"]],"1f470":["👰",["bride_with_veil"]],"1f471":["👱",["person_with_blond_hair"]],"1f472":["👲",["man_with_gua_pi_mao"]],"1f473":["👳",["man_with_turban"]],"1f474":["👴",["older_man"]],"1f475":["👵",["older_woman"]],"1f476":["👶",["baby"]],"1f477":["👷",["construction_worker"]],"1f478":["👸",["princess"]],"1f479":["👹",["japanese_ogre"]],"1f47a":["👺",["japanese_goblin"]],"1f47b":["👻",["ghost"]],"1f47c":["👼",["angel"]],"1f47d":["👽",["alien"]],"1f47e":["👾",["space_invader"]],"1f47f":["👿",["imp"]],"1f480":["💀",["skull"]],"1f481":["💁",["information_desk_person"]],"1f482":["💂",["guardsman"]],"1f483":["💃",["dancer"]],"1f484":["💄",["lipstick"]],"1f485":["💅",["nail_care"]],"1f486":["💆",["massage"]],"1f487":["💇",["haircut"]],"1f488":["💈",["barber"]],"1f489":["💉",["syringe"]],"1f48a":["💊",["pill"]],"1f48b":["💋",["kiss"]],"1f48c":["💌",["love_letter"]],"1f48d":["💍",["ring"]],"1f48e":["💎",["gem"]],"1f48f":["💏",["couplekiss"]],"1f490":["💐",["bouquet"]],"1f491":["💑",["couple_with_heart"]],"1f492":["💒",["wedding"]],"1f493":["💓",["heartbeat"]],"1f494":["💔",["broken_heart"],"</3"],"1f495":["💕",["two_hearts"]],"1f496":["💖",["sparkling_heart"]],"1f497":["💗",["heartpulse"]],"1f498":["💘",["cupid"]],"1f499":["💙",["blue_heart"],"<3"],"1f49a":["💚",["green_heart"],"<3"],"1f49b":["💛",["yellow_heart"],"<3"],"1f49c":["💜",["purple_heart"],"<3"],"1f49d":["💝",["gift_heart"]],"1f49e":["💞",["revolving_hearts"]],"1f49f":["💟",["heart_decoration"]],"1f4a0":["💠",["diamond_shape_with_a_dot_inside"]],"1f4a1":["💡",["bulb"]],"1f4a2":["💢",["anger"]],"1f4a3":["💣",["bomb"]],"1f4a4":["💤",["zzz"]],"1f4a5":["💥",["boom","collision"]],"1f4a6":["💦",["sweat_drops"]],"1f4a7":["💧",["droplet"]],"1f4a8":["💨",["dash"]],"1f4a9":["💩",["hankey","poop","shit"]],"1f4aa":["💪",["muscle"]],"1f4ab":["💫",["dizzy"]],"1f4ac":["💬",["speech_balloon"]],"1f4ad":["💭",["thought_balloon"]],"1f4ae":["💮",["white_flower"]],"1f4af":["💯",["100"]],"1f4b0":["💰",["moneybag"]],"1f4b1":["💱",["currency_exchange"]],"1f4b2":["💲",["heavy_dollar_sign"]],"1f4b3":["💳",["credit_card"]],"1f4b4":["💴",["yen"]],"1f4b5":["💵",["dollar"]],"1f4b6":["💶",["euro"]],"1f4b7":["💷",["pound"]],"1f4b8":["💸",["money_with_wings"]],"1f4b9":["💹",["chart"]],"1f4ba":["💺",["seat"]],"1f4bb":["💻",["computer"]],"1f4bc":["💼",["briefcase"]],"1f4bd":["💽",["minidisc"]],"1f4be":["💾",["floppy_disk"]],"1f4bf":["💿",["cd"]],"1f4c0":["📀",["dvd"]],"1f4c1":["📁",["file_folder"]],"1f4c2":["📂",["open_file_folder"]],"1f4c3":["📃",["page_with_curl"]],"1f4c4":["📄",["page_facing_up"]],"1f4c5":["📅",["date"]],"1f4c6":["📆",["calendar"]],"1f4c7":["📇",["card_index"]],"1f4c8":["📈",["chart_with_upwards_trend"]],"1f4c9":["📉",["chart_with_downwards_trend"]],"1f4ca":["📊",["bar_chart"]],"1f4cb":["📋",["clipboard"]],"1f4cc":["📌",["pushpin"]],"1f4cd":["📍",["round_pushpin"]],"1f4ce":["📎",["paperclip"]],"1f4cf":["📏",["straight_ruler"]],"1f4d0":["📐",["triangular_ruler"]],"1f4d1":["📑",["bookmark_tabs"]],"1f4d2":["📒",["ledger"]],"1f4d3":["📓",["notebook"]],"1f4d4":["📔",["notebook_with_decorative_cover"]],"1f4d5":["📕",["closed_book"]],"1f4d6":["📖",["book","open_book"]],"1f4d7":["📗",["green_book"]],"1f4d8":["📘",["blue_book"]],"1f4d9":["📙",["orange_book"]],"1f4da":["📚",["books"]],"1f4db":["📛",["name_badge"]],"1f4dc":["📜",["scroll"]],"1f4dd":["📝",["memo","pencil"]],"1f4de":["📞",["telephone_receiver"]],"1f4df":["📟",["pager"]],"1f4e0":["📠",["fax"]],"1f4e1":["📡",["satellite"]],"1f4e2":["📢",["loudspeaker"]],"1f4e3":["📣",["mega"]],"1f4e4":["📤",["outbox_tray"]],"1f4e5":["📥",["inbox_tray"]],"1f4e6":["📦",["package"]],"1f4e7":["📧",["e-mail"]],"1f4e8":["📨",["incoming_envelope"]],"1f4e9":["📩",["envelope_with_arrow"]],"1f4ea":["📪",["mailbox_closed"]],"1f4eb":["📫",["mailbox"]],"1f4ec":["📬",["mailbox_with_mail"]],"1f4ed":["📭",["mailbox_with_no_mail"]],"1f4ee":["📮",["postbox"]],"1f4ef":["📯",["postal_horn"]],"1f4f0":["📰",["newspaper"]],"1f4f1":["📱",["iphone"]],"1f4f2":["📲",["calling"]],"1f4f3":["📳",["vibration_mode"]],"1f4f4":["📴",["mobile_phone_off"]],"1f4f5":["📵",["no_mobile_phones"]],"1f4f6":["📶",["signal_strength"]],"1f4f7":["📷",["camera"]],"1f4f9":["📹",["video_camera"]],"1f4fa":["📺",["tv"]],"1f4fb":["📻",["radio"]],"1f4fc":["📼",["vhs"]],"1f500":["🔀",["twisted_rightwards_arrows"]],"1f501":["🔁",["repeat"]],"1f502":["🔂",["repeat_one"]],"1f503":["🔃",["arrows_clockwise"]],"1f504":["🔄",["arrows_counterclockwise"]],"1f505":["🔅",["low_brightness"]],"1f506":["🔆",["high_brightness"]],"1f507":["🔇",["mute"]],"1f509":["🔉",["sound"]],"1f50a":["🔊",["speaker"]],"1f50b":["🔋",["battery"]],"1f50c":["🔌",["electric_plug"]],"1f50d":["🔍",["mag"]],"1f50e":["🔎",["mag_right"]],"1f50f":["🔏",["lock_with_ink_pen"]],"1f510":["🔐",["closed_lock_with_key"]],"1f511":["🔑",["key"]],"1f512":["🔒",["lock"]],"1f513":["🔓",["unlock"]],"1f514":["🔔",["bell"]],"1f515":["🔕",["no_bell"]],"1f516":["🔖",["bookmark"]],"1f517":["🔗",["link"]],"1f518":["🔘",["radio_button"]],"1f519":["🔙",["back"]],"1f51a":["🔚",["end"]],"1f51b":["🔛",["on"]],"1f51c":["🔜",["soon"]],"1f51d":["🔝",["top"]],"1f51e":["🔞",["underage"]],"1f51f":["🔟",["keycap_ten"]],"1f520":["🔠",["capital_abcd"]],"1f521":["🔡",["abcd"]],"1f522":["🔢",["1234"]],"1f523":["🔣",["symbols"]],"1f524":["🔤",["abc"]],"1f525":["🔥",["fire"]],"1f526":["🔦",["flashlight"]],"1f527":["🔧",["wrench"]],"1f528":["🔨",["hammer"]],"1f529":["🔩",["nut_and_bolt"]],"1f52a":["🔪",["hocho"]],"1f52b":["🔫",["gun"]],"1f52c":["🔬",["microscope"]],"1f52d":["🔭",["telescope"]],"1f52e":["🔮",["crystal_ball"]],"1f52f":["🔯",["six_pointed_star"]],"1f530":["🔰",["beginner"]],"1f531":["🔱",["trident"]],"1f532":["🔲",["black_square_button"]],"1f533":["🔳",["white_square_button"]],"1f534":["🔴",["red_circle"]],"1f535":["🔵",["large_blue_circle"]],"1f536":["🔶",["large_orange_diamond"]],"1f537":["🔷",["large_blue_diamond"]],"1f538":["🔸",["small_orange_diamond"]],"1f539":["🔹",["small_blue_diamond"]],"1f53a":["🔺",["small_red_triangle"]],"1f53b":["🔻",["small_red_triangle_down"]],"1f53c":["🔼",["arrow_up_small"]],"1f53d":["🔽",["arrow_down_small"]],"1f550":["🕐",["clock1"]],"1f551":["🕑",["clock2"]],"1f552":["🕒",["clock3"]],"1f553":["🕓",["clock4"]],"1f554":["🕔",["clock5"]],"1f555":["🕕",["clock6"]],"1f556":["🕖",["clock7"]],"1f557":["🕗",["clock8"]],"1f558":["🕘",["clock9"]],"1f559":["🕙",["clock10"]],"1f55a":["🕚",["clock11"]],"1f55b":["🕛",["clock12"]],"1f55c":["🕜",["clock130"]],"1f55d":["🕝",["clock230"]],"1f55e":["🕞",["clock330"]],"1f55f":["🕟",["clock430"]],"1f560":["🕠",["clock530"]],"1f561":["🕡",["clock630"]],"1f562":["🕢",["clock730"]],"1f563":["🕣",["clock830"]],"1f564":["🕤",["clock930"]],"1f565":["🕥",["clock1030"]],"1f566":["🕦",["clock1130"]],"1f567":["🕧",["clock1230"]],"1f5fb":["🗻",["mount_fuji"]],"1f5fc":["🗼",["tokyo_tower"]],"1f5fd":["🗽",["statue_of_liberty"]],"1f5fe":["🗾",["japan"]],"1f5ff":["🗿",["moyai"]],"1f600":["😀",["grinning"]],"1f601":["😁",["grin"]],"1f602":["😂",["joy"]],"1f603":["😃",["smiley"],":)"],"1f604":["😄",["smile"],":)"],"1f605":["😅",["sweat_smile"]],"1f606":["😆",["laughing","satisfied"]],"1f607":["😇",["innocent"]],"1f608":["😈",["smiling_imp"]],"1f609":["😉",["wink"],";)"],"1f60a":["😊",["blush"]],"1f60b":["😋",["yum"]],"1f60c":["😌",["relieved"]],"1f60d":["😍",["heart_eyes"]],"1f60e":["😎",["sunglasses"]],"1f60f":["😏",["smirk"]],"1f610":["😐",["neutral_face"]],"1f611":["😑",["expressionless"]],"1f612":["😒",["unamused"]],"1f613":["😓",["sweat"]],"1f614":["😔",["pensive"]],"1f615":["😕",["confused"]],"1f616":["😖",["confounded"]],"1f617":["😗",["kissing"]],"1f618":["😘",["kissing_heart"]],"1f619":["😙",["kissing_smiling_eyes"]],"1f61a":["😚",["kissing_closed_eyes"]],"1f61b":["😛",["stuck_out_tongue"]],"1f61c":["😜",["stuck_out_tongue_winking_eye"],";p"],"1f61d":["😝",["stuck_out_tongue_closed_eyes"]],"1f61e":["😞",["disappointed"],":("],"1f61f":["😟",["worried"]],"1f620":["😠",["angry"]],"1f621":["😡",["rage"]],"1f622":["😢",["cry"],":'("],"1f623":["😣",["persevere"]],"1f624":["😤",["triumph"]],"1f625":["😥",["disappointed_relieved"]],"1f626":["😦",["frowning"]],"1f627":["😧",["anguished"]],"1f628":["😨",["fearful"]],"1f629":["😩",["weary"]],"1f62a":["😪",["sleepy"]],"1f62b":["😫",["tired_face"]],"1f62c":["😬",["grimacing"]],"1f62d":["😭",["sob"],":'("],"1f62e":["😮",["open_mouth"]],"1f62f":["😯",["hushed"]],"1f630":["😰",["cold_sweat"]],"1f631":["😱",["scream"]],"1f632":["😲",["astonished"]],"1f633":["😳",["flushed"]],"1f634":["😴",["sleeping"]],"1f635":["😵",["dizzy_face"]],"1f636":["😶",["no_mouth"]],"1f637":["😷",["mask"]],"1f638":["😸",["smile_cat"]],"1f639":["😹",["joy_cat"]],"1f63a":["😺",["smiley_cat"]],"1f63b":["😻",["heart_eyes_cat"]],"1f63c":["😼",["smirk_cat"]],"1f63d":["😽",["kissing_cat"]],"1f63e":["😾",["pouting_cat"]],"1f63f":["😿",["crying_cat_face"]],"1f640":["🙀",["scream_cat"]],"1f645":["🙅",["no_good"]],"1f646":["🙆",["ok_woman"]],"1f647":["🙇",["bow"]],"1f648":["🙈",["see_no_evil"]],"1f649":["🙉",["hear_no_evil"]],"1f64a":["🙊",["speak_no_evil"]],"1f64b":["🙋",["raising_hand"]],"1f64c":["🙌",["raised_hands"]],"1f64d":["🙍",["person_frowning"]],"1f64e":["🙎",["person_with_pouting_face"]],"1f64f":["🙏",["pray"]],"1f680":["🚀",["rocket"]],"1f681":["🚁",["helicopter"]],"1f682":["🚂",["steam_locomotive"]],"1f683":["🚃",["railway_car","train"]],"1f684":["🚄",["bullettrain_side"]],"1f685":["🚅",["bullettrain_front"]],"1f686":["🚆",["train2"]],"1f687":["🚇",["metro"]],"1f688":["🚈",["light_rail"]],"1f689":["🚉",["station"]],"1f68a":["🚊",["tram"]],"1f68c":["🚌",["bus"]],"1f68d":["🚍",["oncoming_bus"]],"1f68e":["🚎",["trolleybus"]],"1f68f":["🚏",["busstop"]],"1f690":["🚐",["minibus"]],"1f691":["🚑",["ambulance"]],"1f692":["🚒",["fire_engine"]],"1f693":["🚓",["police_car"]],"1f694":["🚔",["oncoming_police_car"]],"1f695":["🚕",["taxi"]],"1f696":["🚖",["oncoming_taxi"]],"1f697":["🚗",["car","red_car"]],"1f698":["🚘",["oncoming_automobile"]],"1f699":["🚙",["blue_car"]],"1f69a":["🚚",["truck"]],"1f69b":["🚛",["articulated_lorry"]],"1f69c":["🚜",["tractor"]],"1f69d":["🚝",["monorail"]],"1f69e":["🚞",["mountain_railway"]],"1f69f":["🚟",["suspension_railway"]],"1f6a0":["🚠",["mountain_cableway"]],"1f6a1":["🚡",["aerial_tramway"]],"1f6a2":["🚢",["ship"]],"1f6a3":["🚣",["rowboat"]],"1f6a4":["🚤",["speedboat"]],"1f6a5":["🚥",["traffic_light"]],"1f6a6":["🚦",["vertical_traffic_light"]],"1f6a7":["🚧",["construction"]],"1f6a8":["🚨",["rotating_light"]],"1f6a9":["🚩",["triangular_flag_on_post"]],"1f6aa":["🚪",["door"]],"1f6ab":["🚫",["no_entry_sign"]],"1f6ac":["🚬",["smoking"]],"1f6ad":["🚭",["no_smoking"]],"1f6ae":["🚮",["put_litter_in_its_place"]],"1f6af":["🚯",["do_not_litter"]],"1f6b0":["🚰",["potable_water"]],"1f6b1":["🚱",["non-potable_water"]],"1f6b2":["🚲",["bike"]],"1f6b3":["🚳",["no_bicycles"]],"1f6b4":["🚴",["bicyclist"]],"1f6b5":["🚵",["mountain_bicyclist"]],"1f6b6":["🚶",["walking"]],"1f6b7":["🚷",["no_pedestrians"]],"1f6b8":["🚸",["children_crossing"]],"1f6b9":["🚹",["mens"]],"1f6ba":["🚺",["womens"]],"1f6bb":["🚻",["restroom"]],"1f6bc":["🚼",["baby_symbol"]],"1f6bd":["🚽",["toilet"]],"1f6be":["🚾",["wc"]],"1f6bf":["🚿",["shower"]],"1f6c0":["🛀",["bath"]],"1f6c1":["🛁",["bathtub"]],"1f6c2":["🛂",["passport_control"]],"1f6c3":["🛃",["customs"]],"1f6c4":["🛄",["baggage_claim"]],"1f6c5":["🛅",["left_luggage"]],"0023":["#",["hash"]],"0030":["0",["zero"]],"0031":["1",["one"]],"0032":["2",["two"]],"0033":["3",["three"]],"0034":["4",["four"]],"0035":["5",["five"]],"0036":["6",["six"]],"0037":["7",["seven"]],"0038":["8",["eight"]],"0039":["9",["nine"]],"1f1e8-1f1f3":["🇨🇳",["cn"]],"1f1e9-1f1ea":["🇩🇪",["de"]],"1f1ea-1f1f8":["🇪🇸",["es"]],"1f1eb-1f1f7":["🇫🇷",["fr"]],"1f1ec-1f1e7":["🇬🇧",["gb","uk"]],"1f1ee-1f1f9":["🇮🇹",["it"]],"1f1ef-1f1f5":["🇯🇵",["jp"]],"1f1f0-1f1f7":["🇰🇷",["kr"]],"1f1f7-1f1fa":["🇷🇺",["ru"]],"1f1fa-1f1f8":["🇺🇸",["us"]]},Config.EmojiCategories=[["1f604","1f603","1f600","1f60a","263a","1f609","1f60d","1f618","1f61a","1f617","1f619","1f61c","1f61d","1f61b","1f633","1f601","1f614","1f60c","1f612","1f61e","1f623","1f622","1f602","1f62d","1f62a","1f625","1f630","1f605","1f613","1f629","1f62b","1f628","1f631","1f620","1f621","1f624","1f616","1f606","1f60b","1f637","1f60e","1f634","1f635","1f632","1f61f","1f626","1f627","1f608","1f47f","1f62e","1f62c","1f610","1f615","1f62f","1f636","1f607","1f60f","1f611","1f472","1f473","1f46e","1f477","1f482","1f476","1f466","1f467","1f468","1f469","1f474","1f475","1f471","1f47c","1f478","1f63a","1f638","1f63b","1f63d","1f63c","1f640","1f63f","1f639","1f63e","1f479","1f47a","1f648","1f649","1f64a","1f480","1f47d","1f4a9","1f525","2728","1f31f","1f4ab","1f4a5","1f4a2","1f4a6","1f4a7","1f4a4","1f4a8","1f442","1f440","1f443","1f445","1f444","1f44d","1f44e","1f44c","1f44a","270a","270c","1f44b","270b","1f450","1f446","1f447","1f449","1f448","1f64c","1f64f","261d","1f44f","1f4aa","1f6b6","1f3c3","1f483","1f46b","1f46a","1f46c","1f46d","1f48f","1f491","1f46f","1f646","1f645","1f481","1f64b","1f486","1f487","1f485","1f470","1f64e","1f64d","1f647","1f3a9","1f451","1f452","1f45f","1f45e","1f461","1f460","1f462","1f455","1f454","1f45a","1f457","1f3bd","1f456","1f458","1f459","1f4bc","1f45c","1f45d","1f45b","1f453","1f380","1f302","1f484","1f49b","1f499","1f49c","1f49a","2764","1f494","1f497","1f493","1f495","1f496","1f49e","1f498","1f48c","1f48b","1f48d","1f48e","1f464","1f465","1f4ac","1f463","1f4ad"],["1f436","1f43a","1f431","1f42d","1f439","1f430","1f438","1f42f","1f428","1f43b","1f437","1f43d","1f42e","1f417","1f435","1f412","1f434","1f411","1f418","1f43c","1f427","1f426","1f424","1f425","1f423","1f414","1f40d","1f422","1f41b","1f41d","1f41c","1f41e","1f40c","1f419","1f41a","1f420","1f41f","1f42c","1f433","1f40b","1f404","1f40f","1f400","1f403","1f405","1f407","1f409","1f40e","1f410","1f413","1f415","1f416","1f401","1f402","1f432","1f421","1f40a","1f42b","1f42a","1f406","1f408","1f429","1f43e","1f490","1f338","1f337","1f340","1f339","1f33b","1f33a","1f341","1f343","1f342","1f33f","1f33e","1f344","1f335","1f334","1f332","1f333","1f330","1f331","1f33c","1f310","1f31e","1f31d","1f31a","1f311","1f312","1f313","1f314","1f315","1f316","1f317","1f318","1f31c","1f31b","1f319","1f30d","1f30e","1f30f","1f30b","1f30c","1f30d","2b50","2600","26c5","2601","26a1","2614","2744","26c4","1f300","1f301","1f308","1f30a"],["1f38d","1f49d","1f38e","1f392","1f393","1f38f","1f386","1f387","1f390","1f391","1f383","1f47b","1f385","1f384","1f381","1f38b","1f389","1f38a","1f388","1f38c","1f52e","1f3a5","1f4f7","1f4f9","1f4fc","1f4bf","1f4c0","1f4bd","1f4be","1f4bb","1f4f1","260e","1f4de","1f4df","1f4e0","1f4e1","1f4fa","1f4fb","1f50a","1f509","1f509","1f507","1f514","1f514","1f4e2","1f4e3","23f3","231b","23f0","231a","1f513","1f512","1f50f","1f510","1f511","1f50e","1f4a1","1f526","1f506","1f505","1f50c","1f50b","1f50d","1f6c0","1f6bf","1f6bd","1f527","1f529","1f528","1f6aa","1f6ac","1f4a3","1f52b","1f52a","1f48a","1f489","1f4b0","1f4b4","1f4b5","1f4b7","1f4b6","1f4b3","1f4b8","1f4f2","1f4e7","1f4e5","1f4e4","2709","1f4e9","1f4e8","1f4ef","1f4eb","1f4ea","1f4ec","1f4ed","1f4ee","1f4e6","1f4dd","1f4c4","1f4c3","1f4d1","1f4ca","1f4c8","1f4c9","1f4dc","1f4cb","1f4c5","1f4c6","1f4c7","1f4c1","1f4c2","2702","1f4cc","1f4ce","2712","270f","1f4cf","1f4d0","1f4d5","1f4d7","1f4d8","1f4d9","1f4d3","1f4d4","1f4d2","1f4da","1f4d6","1f516","1f4db","1f52c","1f52d","1f4f0","1f3a8","1f3ac","1f3a4","1f3a7","1f3bc","1f3b5","1f3b6","1f3b9","1f3bb","1f3ba","1f3b7","1f3b8","1f47e","1f3ae","1f0cf","1f3b4","1f004","1f3b2","1f3af","1f3c8","1f3c0","26bd","26be","1f3be","1f3b1","1f3c9","1f3b3","26f3","1f6b5","1f6b4","1f3c1","1f3c7","1f3c6","1f3bf","1f3c2","1f3ca","1f3c4","1f3a3","2615","1f375","1f376","1f37c","1f37a","1f37b","1f378","1f379","1f377","1f374","1f355","1f354","1f35f","1f357","1f356","1f35d","1f35b","1f364","1f371","1f363","1f365","1f359","1f358","1f35a","1f35c","1f372","1f362","1f361","1f373","1f35e","1f369","1f36e","1f366","1f368","1f367","1f382","1f370","1f36a","1f36b","1f36c","1f36d","1f36f","1f34e","1f34f","1f34a","1f34b","1f352","1f347","1f349","1f353","1f351","1f348","1f34c","1f350","1f34d","1f360","1f346","1f345","1f33d"],["1f3e0","1f3e1","1f3eb","1f3e2","1f3e3","1f3e5","1f3e6","1f3ea","1f3e9","1f3e8","1f492","26ea","1f3ec","1f3e4","1f307","1f306","1f3ef","1f3f0","26fa","1f3ed","1f5fc","1f5fe","1f5fb","1f304","1f305","1f303","1f5fd","1f309","1f3a0","1f3a1","26f2","1f3a2","1f6a2","26f5","1f6a4","1f6a3","2693","1f680","2708","1f4ba","1f681","1f682","1f68a","1f689","1f69e","1f686","1f684","1f685","1f688","1f687","1f69d","1f69d","1f683","1f68e","1f68c","1f68d","1f699","1f698","1f697","1f695","1f696","1f69b","1f69a","1f6a8","1f693","1f694","1f692","1f691","1f690","1f6b2","1f6a1","1f69f","1f6a0","1f69c","1f488","1f68f","1f3ab","1f6a6","1f6a5","26a0","1f6a7","1f530","26fd","1f3ee","1f3b0","2668","1f5ff","1f3aa","1f3ad","1f4cd","1f6a9","1f1ef-1f1f5","1f1f0-1f1f7","1f1e9-1f1ea","1f1e8-1f1f3","1f1fa-1f1f8","1f1eb-1f1f7","1f1ea-1f1f8","1f1ee-1f1f9","1f1f7-1f1fa","1f1ec-1f1e7"],["0031","0032","0033","0034","0035","0036","0037","0038","0039","0030","1f51f","1f522","0023","1f523","2b06","2b07","2b05","27a1","1f520","1f521","1f524","2197","2196","2198","2199","2194","2195","1f504","25c0","25b6","1f53c","1f53d","21a9","21aa","2139","23ea","23e9","23eb","23ec","2935","2934","1f197","1f500","1f501","1f502","1f195","1f199","1f192","1f193","1f196","1f4f6","1f3a6","1f201","1f22f","1f233","1f235","1f232","1f234","1f232","1f250","1f239","1f23a","1f236","1f21a","1f6bb","1f6b9","1f6ba","1f6bc","1f6be","1f6b0","1f6ae","1f17f","267f","1f6ad","1f237","1f238","1f202","24c2","1f251","3299","3297","1f191","1f198","1f194","1f6ab","1f51e","1f4f5","1f6af","1f6b1","1f6b3","1f6b7","1f6b8","26d4","2733","2747","274e","2705","2734","1f49f","1f19a","1f4f3","1f4f4","1f170","1f171","1f18e","1f17e","1f4a0","27bf","267b","2648","2649","264a","264b","264c","264d","264e","264f","2650","2651","2652","2653","26ce","1f52f","1f3e7","1f4b9","1f4b2","1f4b1","00a9","00ae","2122","303d","3030","1f51d","1f51a","1f519","1f51b","1f51c","274c","2b55","2757","2753","2755","2754","1f503","1f55b","1f567","1f550","1f55c","1f551","1f55d","1f552","1f55e","1f553","1f55f","1f554","1f560","1f555","1f556","1f557","1f558","1f559","1f55a","1f561","1f562","1f563","1f564","1f565","1f566","2716","2795","2796","2797","2660","2665","2663","2666","1f4ae","1f4af","2714","2611","1f518","1f517","27b0","1f531","1f532","1f533","25fc","25fb","25fe","25fd","25aa","25ab","1f53a","2b1c","2b1b","26ab","26aa","1f534","1f535","1f53b","1f536","1f537","1f538","1f539"]],Config.EmojiCategorySpritesheetDimens=[[7,27],[4,29],[7,33],[3,34],[6,34]],Config.CountryCodes=[["AB","Abkhazia","+7 840","+7 940","+995 44"],["AF","Afghanistan","+93"],["AX","Åland Islands","+358 18"],["AL","Albania","+355"],["DZ","Algeria","+213"],["AS","American Samoa","+1 684"],["AD","Andorra","+376"],["AO","Angola","+244"],["AI","Anguilla","+1 264"],["AG","Antigua and Barbuda","+1 268"],["AR","Argentina","+54"],["AM","Armenia","+374"],["AW","Aruba","+297"],["SH","Ascension","+247"],["AU","Australia","+61"],["AU","Australian External Territories","+672"],["AT","Austria","+43"],["AZ","Azerbaijan","+994"],["BS","Bahamas","+1 242"],["BH","Bahrain","+973"],["BD","Bangladesh","+880"],["BB","Barbados","+1 246"],["AG","Barbuda","+1 268"],["BY","Belarus","+375"],["BE","Belgium","+32"],["BZ","Belize","+501"],["BJ","Benin","+229"],["BM","Bermuda","+1 441"],["BT","Bhutan","+975"],["BO","Bolivia","+591"],["BQ","Bonaire","+599 7"],["BA","Bosnia and Herzegovina","+387"],["BW","Botswana","+267"],["BR","Brazil","+55"],["IO","British Indian Ocean Territory","+246"],["VG","British Virgin Islands","+1 284"],["BN","Brunei Darussalam","+673"],["BG","Bulgaria","+359"],["BF","Burkina Faso","+226"],["MY","Burma","+95"],["BI","Burundi","+257"],["KH","Cambodia","+855"],["CM","Cameroon","+237"],["CA","Canada","+1"],["CV","Cape Verde","+238"],["KY","Cayman Islands","+1 345"],["CF","Central African Republic","+236"],["TD","Chad","+235"],["CL","Chile","+56"],["CN","China","+86"],["CX","Christmas Island","+61"],["CC","Cocos (Keeling) Islands","+61"],["CO","Colombia","+57"],["KM","Comoros","+269"],["CG","Congo","+242"],["CD","Congo, Democratic Republic of the (Zaire)","+243"],["CK","Cook Islands","+682"],["CR","Costa Rica","+506"],["CI","Côte d'Ivoire","+225"],["HR","Croatia","+385"],["CU","Cuba","+53"],["CW","Curaçao","+599 9"],["CY","Cyprus","+357"],["CZ","Czech Republic","+420"],["DK","Denmark","+45"],["DG","Diego Garcia","+246"],["DJ","Djibouti","+253"],["DM","Dominica","+1 767"],["DO","Dominican Republic","+1 809","+1 829","+1 849"],["TL","East Timor","+670"],["EC","Ecuador","+593"],["EG","Egypt","+20"],["SV","El Salvador","+503"],["GQ","Equatorial Guinea","+240"],["ER","Eritrea","+291"],["EE","Estonia","+372"],["ET","Ethiopia","+251"],["FK","Falkland Islands","+500"],["FO","Faroe Islands","+298"],["FJ","Fiji","+679"],["FI","Finland","+358"],["FR","France","+33"],["GF","French Guiana","+594"],["PF","French Polynesia","+689"],["GA","Gabon","+241"],["GM","Gambia","+220"],["GE","Georgia","+995"],["DE","Germany","+49"],["GH","Ghana","+233"],["GI","Gibraltar","+350"],["GR","Greece","+30"],["GL","Greenland","+299"],["GD","Grenada","+1 473"],["GP","Guadeloupe","+590"],["GU","Guam","+1 671"],["GT","Guatemala","+502"],["GG","Guernsey","+44"],["GN","Guinea","+224"],["GW","Guinea-Bissau","+245"],["GY","Guyana","+592"],["HT","Haiti","+509"],["HN","Honduras","+504"],["HK","Hong Kong","+852"],["HU","Hungary","+36"],["IS","Iceland","+354"],["IN","India","+91"],["ID","Indonesia","+62"],["IR","Iran","+98"],["IQ","Iraq","+964"],["IE","Ireland","+353"],["IL","Israel","+972"],["IT","Italy","+39"],["JM","Jamaica","+1 876"],["SJ","Jan Mayen","+47 79"],["JP","Japan","+81"],["JE","Jersey","+44"],["JO","Jordan","+962"],["KZ","Kazakhstan","+7 6","+7 7"],["KE","Kenya","+254"],["KI","Kiribati","+686"],["KP","Korea, North","+850"],["KR","Korea, South","+82"],["KW","Kuwait","+965"],["KG","Kyrgyzstan","+996"],["LA","Laos","+856"],["LV","Latvia","+371"],["LB","Lebanon","+961"],["LS","Lesotho","+266"],["LR","Liberia","+231"],["LY","Libya","+218"],["LI","Liechtenstein","+423"],["LT","Lithuania","+370"],["LU","Luxembourg","+352"],["MO","Macau","+853"],["MK","Macedonia","+389"],["MG","Madagascar","+261"],["MW","Malawi","+265"],["MY","Malaysia","+60"],["MV","Maldives","+960"],["ML","Mali","+223"],["MT","Malta","+356"],["MH","Marshall Islands","+692"],["MQ","Martinique","+596"],["MR","Mauritania","+222"],["MU","Mauritius","+230"],["YT","Mayotte","+262"],["MX","Mexico","+52"],["FM","Micronesia, Federated States of","+691"],["MD","Moldova","+373"],["MC","Monaco","+377"],["MN","Mongolia","+976"],["ME","Montenegro","+382"],["MS","Montserrat","+1 664"],["MA","Morocco","+212"],["MZ","Mozambique","+258"],["NA","Namibia","+264"],["NR","Nauru","+674"],["NP","Nepal","+977"],["NL","Netherlands","+31"],["NC","New Caledonia","+687"],["NZ","New Zealand","+64"],["NI","Nicaragua","+505"],["NE","Niger","+227"],["NG","Nigeria","+234"],["NU","Niue","+683"],["NF","Norfolk Island","+672"],["MP","Northern Mariana Islands","+1 670"],["NO","Norway","+47"],["OM","Oman","+968"],["PK","Pakistan","+92"],["PW","Palau","+680"],["PS","Palestinian territories","+970"],["PA","Panama","+507"],["PG","Papua New Guinea","+675"],["PY","Paraguay","+595"],["PE","Peru","+51"],["PH","Philippines","+63"],["PN","Pitcairn Islands","+64"],["PL","Poland","+48"],["PT","Portugal","+351"],["PR","Puerto Rico","+1 787","+1 939"],["QA","Qatar","+974"],["RE","Réunion","+262"],["RO","Romania","+40"],["RU","Russia","+7"],["RW","Rwanda","+250"],["BL","Saint Barthélemy","+590"],["SH","Saint Helena","+290"],["KN","Saint Kitts and Nevis","+1 869"],["LC","Saint Lucia","+1 758"],["MF","Saint Martin (France)","+590"],["PM","Saint Pierre and Miquelon","+508"],["VC","Saint Vincent and the Grenadines","+1 784"],["WS","Samoa","+685"],["SM","San Marino","+378"],["ST","São Tomé and Príncipe","+239"],["SA","Saudi Arabia","+966"],["SN","Senegal","+221"],["RS","Serbia","+381"],["SC","Seychelles","+248"],["SL","Sierra Leone","+232"],["SG","Singapore","+65"],["BQ","Sint Eustatius","+599 3"],["SX","Sint Maarten (Netherlands)","+1 721"],["SK","Slovakia","+421"],["SI","Slovenia","+386"],["SB","Solomon Islands","+677"],["SO","Somalia","+252"],["ZA","South Africa","+27"],["GS","South Georgia and the South Sandwich Islands","+500"],[!1,"South Ossetia","+995 34"],["SS","South Sudan","+211"],["ES","Spain","+34"],["LK","Sri Lanka","+94"],["SD","Sudan","+249"],["SR","Suriname","+597"],["SJ","Svalbard","+47 79"],["SZ","Swaziland","+268"],["SE","Sweden","+46"],["CH","Switzerland","+41"],["SY","Syria","+963"],["TW","Taiwan","+886"],["TJ","Tajikistan","+992"],["TZ","Tanzania","+255"],["TH","Thailand","+66"],["TG","Togo","+228"],["TK","Tokelau","+690"],["TO","Tonga","+676"],["TT","Trinidad and Tobago","+1 868"],["TN","Tunisia","+216"],["TR","Turkey","+90"],["TM","Turkmenistan","+993"],["TC","Turks and Caicos Islands","+1 649"],["TV","Tuvalu","+688"],["UG","Uganda","+256"],["UA","Ukraine","+380"],["AE","United Arab Emirates","+971"],["UK","United Kingdom","+44"],["US","United States","+1"],["UY","Uruguay","+598"],["VI","US Virgin Islands","+1 340"],["UZ","Uzbekistan","+998"],["VU","Vanuatu","+678"],["VE","Venezuela","+58"],["VA","Vatican City State (Holy See)","+39 06 698","+379"],["VN","Vietnam","+84"],["WF","Wallis and Futuna","+681"],["YE","Yemen","+967"],["ZM","Zambia","+260"],[!1,"Zanzibar","+255"],["ZW","Zimbabwe","+263"]],Config.LangCountries={es:"ES",ru:"RU",en:"US",de:"DE",it:"IT",nl:"NL",fr:"FR",ca:"ES","es-419":"MX",ar:"SA",he:"IL",tr:"TR",id:"ID",pl:"PL"},function(){try{window==window.top||window.chrome&&chrome.app&&chrome.app.window?document.documentElement.style.display="block":top.location=self.location
}catch(e){console.error("CJ protection",e)}if(window.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e});var n=!1;try{n=confirm(e.message)}catch(i){n=!0}setTimeout(function(){t(n)},10)},window.applicationCache&&!Config.Modes.packed&&window.addEventListener){var t=window.applicationCache,n=!1,i=!1,a=function(e){clearTimeout(i),i=setTimeout(function(){try{t.update()}catch(e){console.log("appCache.update: "+e)}},e||3e5)},o=function(){t.addEventListener("updateready",function(){t.status==t.UPDATEREADY&&(n||(safeConfirm({type:"WEBOGRAM_UPDATED_RELOAD",message:"A new version of Webogram is downloaded. Launch it?"},function(e){e?window.location.reload():n=!0}),a()))},!1),t.addEventListener("noupdate",function(){a()},!1),t.addEventListener("error",function(){a()},!1)};a(3e3),window.addEventListener("load",o)}}(),function(e,t,n){"use strict";var i,a,o,r,s,c,l,u,d,p,h,f,g,m,v,y,_,b,w,$,C,k,S,x,M,T,E,A,D,I,P;S={paneClass:"nano-pane",sliderClass:"nano-slider",contentClass:"nano-content",iOSNativeScrolling:!1,preventPageScrolling:!1,disableResize:!1,alwaysVisible:!1,flashDelay:1500,sliderMinHeight:20,sliderMaxHeight:null,documentContext:null,windowContext:null},b="scrollbar",_="scroll",d="mousedown",p="mouseenter",h="mousemove",g="mousewheel",f="mouseup",y="resize",s="drag",c="enter",$="up",v="panedown",o="DOMMouseScroll",r="down",C="wheel",l="keydown",u="keyup",w="touchmove",i="Microsoft Internet Explorer"===t.navigator.appName&&/msie 7./i.test(t.navigator.appVersion)&&t.ActiveXObject,a=null,E=t.requestAnimationFrame,k=t.cancelAnimationFrame,D=n.createElement("div").style,P=function(){var e,t,n,i,a,o;for(i=["t","webkitT","MozT","msT","OT"],e=a=0,o=i.length;o>a;e=++a)if(n=i[e],t=i[e]+"ransform",t in D)return i[e].substr(0,i[e].length-1);return!1}(),I=function(e){return P===!1?!1:""===P?e:P+e.charAt(0).toUpperCase()+e.substr(1)},A=I("transform"),M=A!==!1,x=function(){var e,t,i;return e=n.createElement("div"),t=e.style,t.position="absolute",t.width="100px",t.height="100px",t.overflow=_,t.top="-9999px",n.body.appendChild(e),i=e.offsetWidth-e.clientWidth,n.body.removeChild(e),i},T=function(){var e,n,i;return n=t.navigator.userAgent,(e=/(?=.+Mac OS X)(?=.+Firefox)/.test(n))?(i=/Firefox\/\d{2}\./.exec(n),i&&(i=i[0].replace(/\D+/g,"")),e&&+i>23):!1},m=function(){function l(i,o){this.el=i,this.options=o,a||(a=x()),this.$el=e(this.el),this.doc=e(this.options.documentContext||n),this.win=e(this.options.windowContext||t),this.body=this.doc.find("body"),this.$content=this.$el.children("."+o.contentClass),this.$content.attr("tabindex",this.options.tabIndex||0),this.content=this.$content[0],this.previousPosition=0,this.options.iOSNativeScrolling&&(null!=this.el.style.WebkitOverflowScrolling||navigator.userAgent.match(/mobi.+Gecko/i))?this.nativeScrolling():this.generate(),this.createEvents(),this.addEvents(),this.reset()}return l.prototype.preventScrolling=function(e,t){if(this.isActive)if(e.type===o)(t===r&&e.originalEvent.detail>0||t===$&&e.originalEvent.detail<0)&&e.preventDefault();else if(e.type===g){if(!e.originalEvent||!e.originalEvent.wheelDelta)return;(t===r&&e.originalEvent.wheelDelta<0||t===$&&e.originalEvent.wheelDelta>0)&&e.preventDefault()}},l.prototype.nativeScrolling=function(){this.$content.css({WebkitOverflowScrolling:"touch"}),this.iOSNativeScrolling=!0,this.isActive=!0},l.prototype.updateScrollValues=function(){var e,t;e=this.content,this.maxScrollTop=e.scrollHeight-e.clientHeight,this.prevScrollTop=this.contentScrollTop||0,this.contentScrollTop=e.scrollTop,t=this.contentScrollTop>this.previousPosition?"down":this.contentScrollTop<this.previousPosition?"up":"same",this.previousPosition=this.contentScrollTop,"same"!==t&&this.$el.trigger("update",{position:this.contentScrollTop,maximum:this.maxScrollTop,direction:t}),this.iOSNativeScrolling||(this.maxSliderTop=this.paneHeight-this.sliderHeight,this.sliderTop=0===this.maxScrollTop?0:this.contentScrollTop*this.maxSliderTop/this.maxScrollTop)},l.prototype.setOnScrollStyles=function(){var e;M?(e={},e[A]="translate(0, "+this.sliderTop+"px)"):e={top:this.sliderTop},E?(k&&this.scrollRAF&&k(this.scrollRAF),this.scrollRAF=E(function(t){return function(){return t.scrollRAF=null,t.slider.css(e)}}(this))):this.slider.css(e)},l.prototype.createEvents=function(){this.events={down:function(e){return function(t){return e.isBeingDragged=!0,e.offsetY=t.pageY-e.slider.offset().top,e.slider.is(t.target)||(e.offsetY=0),e.pane.addClass("active"),e.doc.bind(h,e.events[s]).bind(f,e.events[$]),e.body.bind(p,e.events[c]),!1}}(this),drag:function(e){return function(t){return e.sliderY=t.pageY-e.$el.offset().top-e.paneTop-(e.offsetY||.5*e.sliderHeight),e.scroll(),e.contentScrollTop>=e.maxScrollTop&&e.prevScrollTop!==e.maxScrollTop?e.$el.trigger("scrollend"):0===e.contentScrollTop&&0!==e.prevScrollTop&&e.$el.trigger("scrolltop"),!1}}(this),up:function(e){return function(){return e.isBeingDragged=!1,e.pane.removeClass("active"),e.doc.unbind(h,e.events[s]).unbind(f,e.events[$]),e.body.unbind(p,e.events[c]),!1}}(this),resize:function(e){return function(){e.reset()}}(this),panedown:function(e){return function(t){return e.sliderY=(t.offsetY||t.originalEvent.layerY)-.5*e.sliderHeight,e.scroll(),e.events.down(t),!1}}(this),scroll:function(e){return function(t){e.updateScrollValues(),e.isBeingDragged||(e.iOSNativeScrolling||(e.sliderY=e.sliderTop,e.setOnScrollStyles()),null!=t&&(e.contentScrollTop>=e.maxScrollTop?(e.options.preventPageScrolling&&e.preventScrolling(t,r),e.prevScrollTop!==e.maxScrollTop&&e.$el.trigger("scrollend")):0===e.contentScrollTop&&(e.options.preventPageScrolling&&e.preventScrolling(t,$),0!==e.prevScrollTop&&e.$el.trigger("scrolltop"))))}}(this),wheel:function(e){return function(t){var n;if(null!=t)return n=t.delta||t.wheelDelta||t.originalEvent&&t.originalEvent.wheelDelta||-t.detail||t.originalEvent&&-t.originalEvent.detail,n&&(e.sliderY+=-n/3),e.scroll(),!1}}(this),enter:function(e){return function(t){var n;if(e.isBeingDragged)return 1!==(t.buttons||t.which)?(n=e.events)[$].apply(n,arguments):void 0}}(this)}},l.prototype.addEvents=function(){var e;this.removeEvents(),e=this.events,this.options.disableResize||this.win.bind(y,e[y]),this.iOSNativeScrolling||(this.slider.bind(d,e[r]),this.pane.bind(d,e[v]).bind(""+g+" "+o,e[C])),this.$content.bind(""+_+" "+g+" "+o+" "+w,e[_])},l.prototype.removeEvents=function(){var e;e=this.events,this.win.unbind(y,e[y]),this.iOSNativeScrolling||(this.slider.unbind(),this.pane.unbind()),this.$content.unbind(""+_+" "+g+" "+o+" "+w,e[_])},l.prototype.generate=function(){var e,n,i,o,r,s,c;return o=this.options,s=o.paneClass,c=o.sliderClass,e=o.contentClass,(r=this.$el.children("."+s)).length||r.children("."+c).length||this.$el.append('<div class="'+s+'"><div class="'+c+'" /></div>'),this.pane=this.$el.children("."+s),this.slider=this.pane.find("."+c),0===a&&T()?(i=t.getComputedStyle(this.content,null).getPropertyValue("padding-right").replace(/[^0-9.]+/g,""),n={right:-14,paddingRight:+i+14}):a&&(n={right:-a},this.$el.addClass("has-scrollbar")),null!=n&&this.$content.css(n),this},l.prototype.restore=function(){this.stopped=!1,this.iOSNativeScrolling||this.pane.show(),this.addEvents()},l.prototype.reset=function(){var e,t,n,o,r,s,c,l,u,d,p,h;return this.iOSNativeScrolling?void(this.contentHeight=this.content.scrollHeight):(this.$el.find("."+this.options.paneClass).length||this.generate().stop(),this.stopped&&this.restore(),e=this.content,o=e.style,r=o.overflowY,i&&this.$content.css({height:this.$content.height()}),t=e.scrollHeight+a,d=parseInt(this.$el.css("max-height"),10),d>0&&(this.$el.height(""),this.$el.height(e.scrollHeight>d?d:e.scrollHeight)),c=this.pane.outerHeight(!1),u=parseInt(this.pane.css("top"),10),s=parseInt(this.pane.css("bottom"),10),l=c+u+s,h=Math.round(l/t*l),h<this.options.sliderMinHeight?h=this.options.sliderMinHeight:null!=this.options.sliderMaxHeight&&h>this.options.sliderMaxHeight&&(h=this.options.sliderMaxHeight),r===_&&o.overflowX!==_&&(h+=a),this.maxSliderTop=l-h,this.contentHeight=t,this.paneHeight=c,this.paneOuterHeight=l,this.sliderHeight=h,this.paneTop=u,this.slider.height(h),this.events.scroll(),this.pane.show(),this.isActive=!0,e.scrollHeight===e.clientHeight||this.pane.outerHeight(!0)>=e.scrollHeight&&r!==_?(this.pane.hide(),this.isActive=!1):this.el.clientHeight===e.scrollHeight&&r===_?this.slider.hide():this.slider.show(),this.pane.css({opacity:this.options.alwaysVisible?1:"",visibility:this.options.alwaysVisible?"visible":""}),n=this.$content.css("position"),("static"===n||"relative"===n)&&(p=parseInt(this.$content.css("right"),10),p&&this.$content.css({right:"",marginRight:p})),this)},l.prototype.scroll=function(){return this.isActive?(this.sliderY=Math.max(0,this.sliderY),this.sliderY=Math.min(this.maxSliderTop,this.sliderY),this.$content.scrollTop(this.maxScrollTop*this.sliderY/this.maxSliderTop),this.iOSNativeScrolling||(this.updateScrollValues(),this.setOnScrollStyles()),this):void 0},l.prototype.scrollBottom=function(e){return this.isActive?(this.$content.scrollTop(this.contentHeight-this.$content.height()-e).trigger(g),this.stop().restore(),this):void 0},l.prototype.scrollTop=function(e){return this.isActive?(this.$content.scrollTop(+e).trigger(g),this.stop().restore(),this):void 0},l.prototype.scrollTo=function(e){return this.isActive?(this.scrollTop(this.$el.find(e).get(0).offsetTop),this):void 0},l.prototype.stop=function(){return k&&this.scrollRAF&&(k(this.scrollRAF),this.scrollRAF=null),this.stopped=!0,this.removeEvents(),this.iOSNativeScrolling||this.pane.hide(),this},l.prototype.destroy=function(){return this.stopped||this.stop(),!this.iOSNativeScrolling&&this.pane.length&&this.pane.remove(),i&&this.$content.height(""),this.$content.removeAttr("tabindex"),this.$el.hasClass("has-scrollbar")&&(this.$el.removeClass("has-scrollbar"),this.$content.css({right:""})),this},l.prototype.flash=function(){return!this.iOSNativeScrolling&&this.isActive?(this.reset(),this.pane.addClass("flashed"),setTimeout(function(e){return function(){e.pane.removeClass("flashed")}}(this),this.options.flashDelay),this):void 0},l}(),e.fn.nanoScroller=function(t){return this.each(function(){var n,i;if((i=this.nanoscroller)||(n=e.extend({},S,t),this.nanoscroller=i=new m(this,n)),t&&"object"==typeof t){if(e.extend(i.options,t),null!=t.scrollBottom)return i.scrollBottom(t.scrollBottom);if(null!=t.scrollTop)return i.scrollTop(t.scrollTop);if(t.scrollTo)return i.scrollTo(t.scrollTo);if("bottom"===t.scroll)return i.scrollBottom(0);if("top"===t.scroll)return i.scrollTop(0);if(t.scroll&&t.scroll instanceof e)return i.scrollTo(t.scroll);if(t.stop)return i.stop();if(t.destroy)return i.destroy();if(t.flash)return i.flash()}return i.reset()})},e.fn.nanoScroller.Constructor=m}(jQuery,window,document),function(e,t,n){var i=1,a=3,o=["p","div","pre","form"],r=27,s=9;e.emojiarea={path:"",spritesheetPath:"",spritesheetDimens:[],iconSize:20,icons:{},defaults:{button:null,buttonLabel:"Emojis",buttonPosition:"after"}},e.fn.emojiarea=function(t){return t=e.extend({},e.emojiarea.defaults,t),this.each(function(){var i=e(this);"contentEditable"in n.body&&t.wysiwyg!==!1?new d(i,t):new u(i,t)})};var c={};c.restoreSelection=function(){return t.getSelection?function(e){var n=t.getSelection();n.removeAllRanges();for(var i=0,a=e.length;a>i;++i)n.addRange(e[i])}:n.selection&&n.selection.createRange?function(e){e&&e.select()}:void 0}(),c.saveSelection=function(){return t.getSelection?function(){var e=t.getSelection(),n=[];if(e.rangeCount)for(var i=0,a=e.rangeCount;a>i;++i)n.push(e.getRangeAt(i));return n}:n.selection&&n.selection.createRange?function(){var e=n.selection;return"none"!==e.type.toLowerCase()?e.createRange():null}:void 0}(),c.replaceSelection=function(){return t.getSelection?function(e){var i,a=t.getSelection(),o="string"==typeof e?n.createTextNode(e):e;a.getRangeAt&&a.rangeCount&&(i=a.getRangeAt(0),i.deleteContents(),i.insertNode(n.createTextNode(" ")),i.insertNode(o),i.setStart(o,0),t.setTimeout(function(){i=n.createRange(),i.setStartAfter(o),i.collapse(!0),a.removeAllRanges(),a.addRange(i)},0))}:n.selection&&n.selection.createRange?function(e){var t=n.selection.createRange();"string"==typeof e?t.text=e:t.pasteHTML(e.outerHTML)}:void 0}(),c.insertAtCursor=function(e,t){e=" "+e;var i,a,o,r=t.value;"undefined"!=typeof t.selectionStart&&"undefined"!=typeof t.selectionEnd?(a=t.selectionStart,i=t.selectionEnd,t.value=r.substring(0,a)+e+r.substring(t.selectionEnd),t.selectionStart=t.selectionEnd=a+e.length):"undefined"!=typeof n.selection&&"undefined"!=typeof n.selection.createRange&&(t.focus(),o=n.selection.createRange(),o.text=e,o.select())},c.extend=function(e,t){if("undefined"!=typeof e&&e||(e={}),"object"==typeof t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},c.escapeRegex=function(e){return(e+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},c.htmlEntities=function(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},c.emojiInserted=function(e,t){try{var n=localStorage.getItem("emojis_recent")}catch(i){return!1}var a=n&&n.split(",")||[],o=a.indexOf(e);return o?(-1!=o&&a.splice(o,1),a.unshift(e),a.length>42&&(a=a.slice(42)),localStorage.setItem("emojis_recent",a.join(",")),void(t&&t.updateRecentTab(a))):!1};var l=function(){};l.prototype.setup=function(){var e=this;this.$editor.on("focus",function(){e.hasFocus=!0}),this.$editor.on("blur",function(){e.hasFocus=!1}),this.setupButton()},l.prototype.setupButton=function(){var t,n=this;this.options.button?t=e(this.options.button):this.options.button!==!1?(t=e('<a href="javascript:void(0)">'),t.html(this.options.buttonLabel),t.addClass("emoji-button"),t.attr({title:this.options.buttonLabel}),this.$editor[this.options.buttonPosition](t)):t=e(""),t.on("click",function(e){p.show(n),e.stopPropagation()}),this.$button=t},l.createIcon=function(t,n){var i=t[0],a=t[1],o=t[2],r=t[3],s=e.emojiarea.spritesheetPath,l=n&&Config.Navigator.mobile?26:e.emojiarea.iconSize,u=-(l*o),d=-(l*a),p=e.emojiarea.spritesheetDimens[i][1]*l,h=e.emojiarea.spritesheetDimens[i][0]*l,f="display:inline-block;";return f+="width:"+l+"px;",f+="height:"+l+"px;",f+="background:url('"+s.replace("!",i)+"') "+u+"px "+d+"px no-repeat;",f+="background-size:"+p+"px "+h+"px;",'<img src="img/blank.gif" class="img" style="'+f+'" alt="'+c.htmlEntities(r)+'">'};var u=function(e,t){this.options=t,this.$textarea=e,this.$editor=e,this.setup()};u.prototype.insert=function(t){e.emojiarea.icons.hasOwnProperty(t)&&(c.insertAtCursor(t,this.$textarea[0]),c.emojiInserted(t,this.menu),this.$textarea.trigger("change"))},u.prototype.val=function(){return this.$textarea.val()},c.extend(u.prototype,l.prototype);var d=function(t,i){var a=this;this.options=i||{},this.$textarea=t,this.$editor=e("<div>").addClass("emoji-wysiwyg-editor"),this.$editor.text(t.val()),this.$editor.attr({contenteditable:"true"});var o="blur change";this.options.norealTime||(o+=" keyup"),this.$editor.on(o,function(e){return a.onChange.apply(a,[e])}),this.$editor.on("paste",function(e){return a.onPaste.apply(a,[e])}),this.$editor.on("mousedown focus",function(){n.execCommand("enableObjectResizing",!1,!1)}),this.$editor.on("blur",function(){n.execCommand("enableObjectResizing",!0,!0)});var r=this.$editor.text(),s=e.emojiarea.icons;for(var u in s)s.hasOwnProperty(u)&&(r=r.replace(new RegExp(c.escapeRegex(u),"g"),l.createIcon(s[u])));this.$editor.html(r),t.hide().after(this.$editor),this.setup(),e(n.body).on("mousedown",function(){a.hasFocus&&(a.selection=c.saveSelection())})};d.prototype.onPaste=function(e){var t,i=(e.originalEvent||e).clipboardData,a=i&&i.items||[];for(t=0;t<a.length;t++)if("file"==a[t].kind)return e.preventDefault(),!0;var o=(e.originalEvent||e).clipboardData.getData("text/plain"),r=this;return setTimeout(function(){r.onChange()},0),o.length?(n.execCommand("insertText",!1,o),cancelEvent(e)):!0},d.prototype.onChange=function(){this.$textarea.val(this.val()).trigger("change")},d.prototype.insert=function(t){var n=e(l.createIcon(e.emojiarea.icons[t]));n[0].attachEvent&&n[0].attachEvent("onresizestart",function(e){e.returnValue=!1},!1),this.$editor.trigger("focus"),this.selection&&c.restoreSelection(this.selection);try{c.replaceSelection(n[0])}catch(i){}var a=this;setTimeout(function(){a.selection=c.saveSelection()},100),c.emojiInserted(t,this.menu),this.onChange()},d.prototype.val=function(){for(var e=[],t=[],n=function(){e.push(t.join("")),t=[]},r=function(e){if(e.nodeType===a)t.push(e.nodeValue);else if(e.nodeType===i){var s=e.tagName.toLowerCase(),c=-1!==o.indexOf(s);if(c&&t.length&&n(),"img"===s){var l=e.getAttribute("alt")||"";return void(l&&t.push(l))}"br"===s&&n();for(var u=e.childNodes,d=0;d<u.length;d++)r(u[d]);c&&t.length&&n()}},s=this.$editor[0].childNodes,c=0;c<s.length;c++)r(s[c]);return t.length&&n(),e.join("\n")},c.extend(d.prototype,l.prototype);var p=function(){var i=this,a=e(n.body),o=e(t);this.visible=!1,this.emojiarea=null,this.$menu=e("<div>"),this.$menu.addClass("emoji-menu"),this.$menu.hide(),this.hasRecent=!0,this.$itemsTailWrap=e('<div class="emoji-items-wrap1"></div>').appendTo(this.$menu),this.$categoryTabs=e('<table class="emoji-menu-tabs"><tr><td><a class="emoji-menu-tab icon-recent" ></a></td><td><a class="emoji-menu-tab icon-smile" ></a></td><td><a class="emoji-menu-tab icon-flower"></a></td><td><a class="emoji-menu-tab icon-bell"></a></td><td><a class="emoji-menu-tab icon-car"></a></td><td><a class="emoji-menu-tab icon-grid"></a></td></tr></table>').appendTo(this.$itemsTailWrap),this.$itemsWrap=e('<div class="emoji-items-wrap nano"></div>').appendTo(this.$itemsTailWrap),this.$items=e('<div class="emoji-items nano-content">').appendTo(this.$itemsWrap),e('<div class="emoji-menu-tail">').appendTo(this.$menu),a.append(this.$menu),this.$itemsWrap.nanoScroller({preventPageScrolling:!0,tabIndex:-1}),a.on("keydown",function(e){(e.keyCode===r||e.keyCode===s)&&i.hide()}),a.on("message_send",function(){i.hide()}),a.on("mouseup",function(e){e=e.originalEvent||e;for(var n=e.originalTarget||e.target||t;n&&n!=t;)if(n=n.parentNode,n==i.$menu[0]||i.emojiarea&&n==i.emojiarea.$button[0])return;i.hide()}),o.on("resize",function(){i.visible&&i.reposition()}),this.$menu.on("mouseup","a",function(e){return e.stopPropagation(),!1}),this.$menu.on("click","a",function(n){if(e(this).hasClass("emoji-menu-tab"))return i.getTabIndex(this)!==i.currentCategory&&i.selectCategory(i.getTabIndex(this)),!1;var a=e(".label",e(this)).text();return t.setTimeout(function(){i.onItemSelected(a),(n.ctrlKey||n.metaKey)&&i.hide()},0),n.stopPropagation(),!1}),this.selectCategory(0),this.updateRecentTab()};p.prototype.getTabIndex=function(e){return this.$categoryTabs.find(".emoji-menu-tab").index(e)},p.prototype.selectCategory=function(e){this.$categoryTabs.find(".emoji-menu-tab").each(function(t){t===e?this.className+="-selected":this.className=this.className.replace("-selected","")}),this.currentCategory=e,this.load(e),this.$itemsWrap.nanoScroller({scroll:"top"})},p.prototype.onItemSelected=function(e){this.emojiarea.insert(e)},p.prototype.load=function(t){var n=[],i=e.emojiarea.icons,a=e.emojiarea.path;if(a.length&&"/"!==a.charAt(a.length-1)&&(a+="/"),t>0)for(var o in i)i.hasOwnProperty(o)&&i[o][0]===t-1&&n.push('<a href="javascript:void(0)" title="'+c.htmlEntities(o)+'">'+l.createIcon(i[o],!0)+'<span class="label">'+c.htmlEntities(o)+"</span></a>");else try{var o,r,s=(localStorage.getItem("emojis_recent")||"").split(",");for(r=0;r<s.length;r++)o=s[r],i[o]&&n.push('<a href="javascript:void(0)" title="'+c.htmlEntities(o)+'">'+l.createIcon(i[o],!0)+'<span class="label">'+c.htmlEntities(o)+"</span></a>")}catch(u){}this.$items.html(n.join(""));var d=this;setTimeout(function(){d.$itemsWrap.nanoScroller()},100)},p.prototype.updateRecentTab=function(e){if(void 0===e)try{var t=localStorage.getItem("emojis_recent");e=t&&t.split(",")||[]}catch(n){e=[]}if(this.hasRecent!=e.length>1){var i=this.$categoryTabs.find(".emoji-menu-tab").eq(0);this.hasRecent?(i.hide(),this.currentCategory||this.selectCategory(1)):i.show(),this.hasRecent=!this.hasRecent}},p.prototype.reposition=function(){var e=this.emojiarea.$button,t=e.offset();t.top+=e.outerHeight(),t.left+=Math.round(e.outerWidth()/2),this.$menu.css({top:t.top,left:t.left})},p.prototype.hide=function(){this.emojiarea&&(this.emojiarea.menu=null,this.emojiarea.$button.removeClass("on"),this.emojiarea=null),this.visible=!1,this.$menu.hide()},p.prototype.show=function(e){return this.emojiarea&&this.emojiarea===e?this.hide():(e.$button.addClass("on"),this.emojiarea=e,this.emojiarea.menu=this,this.reposition(),this.$menu.show(),this.currentCategory||this.load(0),void(this.visible=!0))},p.show=function(){var e=null;return function(t){e=e||new p,e.show(t)}}()}(jQuery,window,document),function(e,t,n){"use strict";function i(e,t){return t=t||Error,function(){var n,i,a=arguments[0],o="["+(e?e+":":"")+a+"] ",r=arguments[1],s=arguments,c=function(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e};for(n=o+r.replace(/\{\d+\}/g,function(e){var t,n=+e.slice(1,-1);return n+2<s.length?(t=s[n+2],"function"==typeof t?t.toString().replace(/ ?\{[\s\S]*$/,""):"undefined"==typeof t?"undefined":"string"!=typeof t?V(t):t):e}),n=n+"\nhttp://errors.angularjs.org/1.3.0-rc.0/"+(e?e+"/":"")+a,i=2;i<arguments.length;i++)n=n+(2==i?"?":"&")+"p"+(i-2)+"="+encodeURIComponent(c(arguments[i]));return new t(n)}}function a(e){if(null==e||S(e))return!1;var t=e.length;return 1===e.nodeType&&t?!0:b(e)||Ki(e)||0===t||"number"==typeof t&&t>0&&t-1 in e}function o(e,t,n){var i,r;if(e)if(C(e))for(i in e)"prototype"==i||"length"==i||"name"==i||e.hasOwnProperty&&!e.hasOwnProperty(i)||t.call(n,e[i],i);else if(Ki(e)||a(e)){var s="object"!=typeof e;for(i=0,r=e.length;r>i;i++)(s||i in e)&&t.call(n,e[i],i)}else if(e.forEach&&e.forEach!==o)e.forEach(t,n);else for(i in e)e.hasOwnProperty(i)&&t.call(n,e[i],i);return e}function r(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t.sort()}function s(e,t,n){for(var i=r(e),a=0;a<i.length;a++)t.call(n,e[i[a]],i[a]);return i}function c(e){return function(t,n){e(n,t)}}function l(){return++Wi}function u(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function d(e){var t=e.$$hashKey;return o(arguments,function(t){t!==e&&o(t,function(t,n){e[n]=t})}),u(e,t),e}function p(e){return parseInt(e,10)}function h(e,t){return d(new(d(function(){},{prototype:e})),t)}function f(){}function g(e){return e}function m(e){return function(){return e}}function v(e){return"undefined"==typeof e}function y(e){return"undefined"!=typeof e}function _(e){return null!==e&&"object"==typeof e}function b(e){return"string"==typeof e}function w(e){return"number"==typeof e}function $(e){return"[object Date]"===ji.call(e)}function C(e){return"function"==typeof e}function k(e){return"[object RegExp]"===ji.call(e)}function S(e){return e&&e.window===e}function x(e){return e&&e.$evalAsync&&e.$watch}function M(e){return"[object File]"===ji.call(e)}function T(e){return"[object Blob]"===ji.call(e)}function E(e){return e&&C(e.then)}function A(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function D(e){var t,n={},i=e.split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}function I(e){return Ii(e.nodeName||e[0].nodeName)}function P(e,t,n){var i=[];return o(e,function(e,a,o){i.push(t.call(n,e,a,o))}),i}function N(e,t){return-1!=L(e,t)}function L(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;n++)if(t===e[n])return n;return-1}function F(e,t){var n=L(e,t);return n>=0&&e.splice(n,1),t}function B(e,t,n,i){if(S(e)||x(e))throw Vi("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(t){if(e===t)throw Vi("cpi","Can't copy! Source and destination are identical.");if(n=n||[],i=i||[],_(e)){var a=L(n,e);if(-1!==a)return i[a];n.push(e),i.push(t)}var r;if(Ki(e)){t.length=0;for(var s=0;s<e.length;s++)r=B(e[s],null,n,i),_(e[s])&&(n.push(e[s]),i.push(r)),t.push(r)}else{var c=t.$$hashKey;Ki(t)?t.length=0:o(t,function(e,n){delete t[n]});for(var l in e)e.hasOwnProperty(l)&&(r=B(e[l],null,n,i),_(e[l])&&(n.push(e[l]),i.push(r)),t[l]=r);u(t,c)}}else if(t=e,e)if(Ki(e))t=B(e,[],n,i);else if($(e))t=new Date(e.getTime());else if(k(e))t=new RegExp(e.source,e.toString().match(/[^\/]*$/)[0]),t.lastIndex=e.lastIndex;else if(_(e)){var d=Object.create(Object.getPrototypeOf(e));t=B(e,d,n,i)}return t}function O(e,t){if(Ki(e)){t=t||[];for(var n=0,i=e.length;i>n;n++)t[n]=e[n]}else if(_(e)){t=t||{};for(var a in e)("$"!==a.charAt(0)||"$"!==a.charAt(1))&&(t[a]=e[a])}return t||e}function U(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var i,a,o,r=typeof e,s=typeof t;if(r==s&&"object"==r){if(!Ki(e)){if($(e))return $(t)?U(e.getTime(),t.getTime()):!1;if(k(e)&&k(t))return e.toString()==t.toString();if(x(e)||x(t)||S(e)||S(t)||Ki(t))return!1;o={};for(a in e)if("$"!==a.charAt(0)&&!C(e[a])){if(!U(e[a],t[a]))return!1;o[a]=!0}for(a in t)if(!o.hasOwnProperty(a)&&"$"!==a.charAt(0)&&t[a]!==n&&!C(t[a]))return!1;return!0}if(!Ki(t))return!1;if((i=e.length)==t.length){for(a=0;i>a;a++)if(!U(e[a],t[a]))return!1;return!0}}return!1}function R(e,t,n){return e.concat(qi.call(t,n))}function q(e,t){return qi.call(e,t||0)}function H(e,t){var n=arguments.length>2?q(arguments,2):[];return!C(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,n.concat(qi.call(arguments,0))):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function j(e,i){var a=i;return"string"==typeof e&&"$"===e.charAt(0)&&"$"===e.charAt(1)?a=n:S(i)?a="$WINDOW":i&&t===i?a="$DOCUMENT":x(i)&&(a="$SCOPE"),a}function V(e,t){return"undefined"==typeof e?n:JSON.stringify(e,j,t?" ":null)}function z(e){return b(e)?JSON.parse(e):e}function W(e){e=Oi(e).clone();try{e.empty()}catch(t){}var n=3,i=Oi("<div>").append(e).html();try{return e[0].nodeType===n?Ii(i):i.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+Ii(t)})}catch(t){return Ii(i)}}function G(e){try{return decodeURIComponent(e)}catch(t){}}function K(e){var t,n,i={};return o((e||"").split("&"),function(e){if(e&&(t=e.replace(/\+/g,"%20").split("="),n=G(t[0]),y(n))){var a=y(t[1])?G(t[1]):!0;Pi.call(i,n)?Ki(i[n])?i[n].push(a):i[n]=[i[n],a]:i[n]=a}}),i}function X(e){var t=[];return o(e,function(e,n){Ki(e)?o(e,function(e){t.push(Z(n,!0)+(e===!0?"":"="+Z(e,!0)))}):t.push(Z(n,!0)+(e===!0?"":"="+Z(e,!0)))}),t.length?t.join("&"):""}function Y(e){return Z(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Z(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function Q(e,t){var n,i,a=Zi.length;for(e=Oi(e),i=0;a>i;++i)if(n=Zi[i]+t,b(n=e.attr(n)))return n;return null}function J(e,t){var n,i,a={};o(Zi,function(t){var a=t+"app";!n&&e.hasAttribute&&e.hasAttribute(a)&&(n=e,i=e.getAttribute(a))}),o(Zi,function(t){var a,o=t+"app";!n&&(a=e.querySelector("["+o.replace(":","\\:")+"]"))&&(n=a,i=a.getAttribute(o))}),n&&(a.strictDi=null!==Q(n,"strict-di"),t(n,i?[i]:[],a))}function et(n,i,a){_(a)||(a={});var r={strictDi:!1};a=d(r,a);var s=function(){if(n=Oi(n),n.injector()){var e=n[0]===t?"document":W(n);throw Vi("btstrpd","App Already Bootstrapped with this Element '{0}'",e.replace(/</,"&lt;").replace(/>/,"&gt;"))}i=i||[],i.unshift(["$provide",function(e){e.value("$rootElement",n)}]),a.debugInfoEnabled&&i.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),i.unshift("ng");var o=qt(i,a.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,i){e.$apply(function(){t.data("$injector",i),n(t)(e)})}]),o},c=/^NG_ENABLE_DEBUG_INFO!/,l=/^NG_DEFER_BOOTSTRAP!/;return e&&c.test(e.name)&&(a.debugInfoEnabled=!0,e.name=e.name.replace(c,"")),e&&!l.test(e.name)?s():(e.name=e.name.replace(l,""),void(zi.resumeBootstrap=function(e){o(e,function(e){i.push(e)}),s()}))}function tt(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function nt(e){return zi.element(e).injector().get("$$testability")}function it(e,t){return t=t||"_",e.replace(Qi,function(e,n){return(n?t:"")+e.toLowerCase()})}function at(){var t;Ji||(Ui=e.jQuery,Ui&&Ui.fn.on?(Oi=Ui,d(Ui.fn,{scope:fa.scope,isolateScope:fa.isolateScope,controller:fa.controller,injector:fa.injector,inheritedData:fa.inheritedData}),t=Ui.cleanData,Ui.cleanData=function(e){if(Gi)Gi=!1;else for(var n,i=0;null!=(n=e[i]);i++)Ui(n).triggerHandler("$destroy");t(e)}):Oi=_t,zi.element=Oi,Ji=!0)}function ot(e,t,n){if(!e)throw Vi("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function rt(e,t,n){return n&&Ki(e)&&(e=e[e.length-1]),ot(C(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function st(e,t){if("hasOwnProperty"===e)throw Vi("badname","hasOwnProperty is not a valid {0} name",t)}function ct(e,t,n){if(!t)return e;for(var i,a=t.split("."),o=e,r=a.length,s=0;r>s;s++)i=a[s],e&&(e=(o=e)[i]);return!n&&C(e)?H(o,e):e}function lt(e){var t=e[0],n=e[e.length-1],i=[t];do{if(t=t.nextSibling,!t)break;i.push(t)}while(t!==n);return Oi(i)}function ut(){return Object.create(null)}function dt(e){function t(e,t,n){return e[t]||(e[t]=n())}var n=i("$injector"),a=i("ng"),o=t(e,"angular",Object);return o.$$minErr=o.$$minErr||i,t(o,"module",function(){var e={};return function(i,o,r){var s=function(e,t){if("hasOwnProperty"===e)throw a("badname","hasOwnProperty is not a valid {0} name",t)};return s(i,"module"),o&&e.hasOwnProperty(i)&&(e[i]=null),t(e,i,function(){function e(e,n,i,a){return a||(a=t),function(){return a[i||"push"]([e,n,arguments]),l}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",i);var t=[],a=[],s=[],c=e("$injector","invoke","push",a),l={_invokeQueue:t,_configBlocks:a,_runBlocks:s,requires:o,name:i,provider:e("$provide","provider"),factory:e("$provide","factory"),service:e("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),animation:e("$animateProvider","register"),filter:e("$filterProvider","register"),controller:e("$controllerProvider","register"),directive:e("$compileProvider","directive"),config:c,run:function(e){return s.push(e),this}};return r&&c(r),l})}})}function pt(t){d(t,{bootstrap:et,copy:B,extend:d,equals:U,element:Oi,forEach:o,injector:qt,noop:f,bind:H,toJson:V,fromJson:z,identity:g,isUndefined:v,isDefined:y,isString:b,isFunction:C,isObject:_,isNumber:w,isElement:A,isArray:Ki,version:ea,isDate:$,lowercase:Ii,uppercase:Ni,callbacks:{counter:0},getTestability:nt,$$minErr:i,$$csp:Yi,reloadWithDebugInfo:tt}),Ri=dt(e);try{Ri("ngLocale")}catch(n){Ri("ngLocale",[]).provider("$locale",dn)}Ri("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:On}),e.provider("$compile",Kt).directive({a:Ya,input:go,textarea:go,form:to,script:ar,select:sr,style:lr,option:cr,ngBind:No,ngBindHtml:Fo,ngBindTemplate:Lo,ngClass:Bo,ngClassEven:Uo,ngClassOdd:Oo,ngCloak:Ro,ngController:qo,ngForm:no,ngHide:Qo,ngIf:Vo,ngInclude:zo,ngInit:Go,ngNonBindable:Ko,ngPluralize:Xo,ngRepeat:Yo,ngShow:Zo,ngStyle:Jo,ngSwitch:er,ngSwitchWhen:tr,ngSwitchDefault:nr,ngOptions:rr,ngTransclude:ir,ngModel:ko,ngList:Ao,ngChange:So,pattern:Mo,ngPattern:Mo,required:xo,ngRequired:xo,minlength:Eo,ngMinlength:Eo,maxlength:To,ngMaxlength:To,ngValue:Io,ngModelOptions:Po}).directive({ngInclude:Wo}).directive(Za).directive(Ho),e.provider({$anchorScroll:Ht,$animate:ka,$browser:zt,$cacheFactory:Wt,$controller:Zt,$document:Qt,$exceptionHandler:Jt,$filter:Zn,$interpolate:ln,$interval:un,$http:on,$httpBackend:sn,$location:kn,$log:Sn,$parse:In,$rootScope:Bn,$q:Pn,$$q:Nn,$sce:jn,$sceDelegate:Hn,$sniffer:Vn,$templateCache:Gt,$templateRequest:zn,$$testability:Wn,$timeout:Gn,$window:Yn,$$rAF:Fn,$$asyncCallback:jt})}])}function ht(){return++na
}function ft(e){return e.replace(oa,function(e,t,n,i){return i?n.toUpperCase():n}).replace(ra,"Moz$1")}function gt(e){return!ua.test(e)}function mt(e){var t=e.nodeType;return 1===t||!t||9===t}function vt(e,t){var n,i,a,r,s=t.createDocumentFragment(),c=[];if(gt(e))c.push(t.createTextNode(e));else{for(n=n||s.appendChild(t.createElement("div")),i=(da.exec(e)||["",""])[1].toLowerCase(),a=ha[i]||ha._default,n.innerHTML=a[1]+e.replace(pa,"<$1></$2>")+a[2],r=a[0];r--;)n=n.lastChild;c=R(c,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(c,function(e){s.appendChild(e)}),s}function yt(e,n){n=n||t;var i;return(i=la.exec(e))?[n.createElement(i[1])]:(i=vt(e,n))?i.childNodes:[]}function _t(e){if(e instanceof _t)return e;var t;if(b(e)&&(e=Xi(e),t=!0),!(this instanceof _t)){if(t&&"<"!=e.charAt(0))throw ca("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new _t(e)}t?Et(this,yt(e)):Et(this,e)}function bt(e){return e.cloneNode(!0)}function wt(e,t){if(t||Ct(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),i=0,a=n.length;a>i;i++)Ct(n[i])}function $t(e,t,n,i){if(y(i))throw ca("offargs","jqLite#off() does not support the `selector` argument");var a=kt(e),r=a&&a.events,s=a&&a.handle;if(s)if(t)o(t.split(" "),function(t){v(n)?(aa(e,t,r[t]),delete r[t]):F(r[t]||[],n)});else for(t in r)"$destroy"!==t&&aa(e,t,r[t]),delete r[t]}function Ct(e,t){var i=e.ng339,a=i&&ta[i];if(a){if(t)return void delete a.data[t];a.handle&&(a.events.$destroy&&a.handle({},"$destroy"),$t(e)),delete ta[i],e.ng339=n}}function kt(e,t){var i=e.ng339,a=i&&ta[i];return t&&!a&&(e.ng339=i=ht(),a=ta[i]={events:{},data:{},handle:n}),a}function St(e,t,n){if(mt(e)){var i=y(n),a=!i&&t&&!_(t),o=!t,r=kt(e,!a),s=r&&r.data;if(i)s[t]=n;else{if(o)return s;if(a)return s&&s[t];d(s,t)}}}function xt(e,t){return e.getAttribute?(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1:!1}function Mt(e,t){t&&e.setAttribute&&o(t.split(" "),function(t){e.setAttribute("class",Xi((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Xi(t)+" "," ")))})}function Tt(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(t.split(" "),function(e){e=Xi(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")}),e.setAttribute("class",Xi(n))}}function Et(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var i=0;n>i;i++)e[e.length++]=t[i]}else e[e.length++]=t}}function At(e,t){return Dt(e,"$"+(t||"ngController")+"Controller")}function Dt(e,t,i){9==e.nodeType&&(e=e.documentElement);for(var a=Ki(t)?t:[t];e;){for(var o=0,r=a.length;r>o;o++)if((i=Oi.data(e,a[o]))!==n)return i;e=e.parentNode||11===e.nodeType&&e.host}}function It(e){for(wt(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function Pt(e,t){t||wt(e);var n=e.parentNode;n&&n.removeChild(e)}function Nt(e,t){var n=ga[t.toLowerCase()];return n&&ma[I(e)]&&n}function Lt(e,t){var n=e.nodeName;return("INPUT"===n||"TEXTAREA"===n)&&va[t]}function Ft(e,t){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var a=t[i||n.type],o=a?a.length:0;if(o){o>1&&(a=O(a));for(var r=0;o>r;r++)a[r].call(e,n)}};return n.elem=e,n}function Bt(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var i=typeof e;return n="function"==i||"object"==i&&null!==e?e.$$hashKey=i+":"+(t||l)():i+":"+e}function Ot(e,t){if(t){var n=0;this.nextUid=function(){return++n}}o(e,this.put,this)}function Ut(e){var t=e.toString().replace(wa,""),n=t.match(ya);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Rt(e,t,n){var i,a,r,s;if("function"==typeof e){if(!(i=e.$inject)){if(i=[],e.length){if(t)throw b(n)&&n||(n=e.name||Ut(e)),$a("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);a=e.toString().replace(wa,""),r=a.match(ya),o(r[1].split(_a),function(e){e.replace(ba,function(e,t,n){i.push(n)})})}e.$inject=i}}else Ki(e)?(s=e.length-1,rt(e[s],"fn"),i=e.slice(0,s)):rt(e,"fn",!0);return i}function qt(e,t){function i(e){return function(t,n){return _(t)?void o(t,c(e)):e(t,n)}}function a(e,t){if(st(e,"service"),(C(t)||Ki(t))&&(t=k.instantiate(t)),!t.$get)throw $a("pget","Provider '{0}' must define $get factory method.",e);return $[e+v]=t}function r(e,t){return a(e,{$get:t})}function s(e,t){return r(e,["$injector",function(e){return e.instantiate(t)}])}function l(e,t){return r(e,m(t))}function u(e,t){st(e,"constant"),$[e]=t,S[e]=t}function d(e,t){var n=k.get(e+v),i=n.$get;n.$get=function(){var e=x.invoke(i,n);return x.invoke(t,null,{$delegate:e})}}function p(e){var t,n=[];return o(e,function(e){function i(e){var t,n;for(t=0,n=e.length;n>t;t++){var i=e[t],a=k.get(i[0]);a[i[1]].apply(a,i[2])}}if(!w.get(e)){w.put(e,!0);try{b(e)?(t=Ri(e),n=n.concat(p(t.requires)).concat(t._runBlocks),i(t._invokeQueue),i(t._configBlocks)):C(e)?n.push(k.invoke(e)):Ki(e)?n.push(k.invoke(e)):rt(e,"module")}catch(a){throw Ki(e)&&(e=e[e.length-1]),a.message&&a.stack&&-1==a.stack.indexOf(a.message)&&(a=a.message+"\n"+a.stack),$a("modulerr","Failed to instantiate module {0} due to:\n{1}",e,a.stack||a.message||a)}}}),n}function h(e,n){function i(t){if(e.hasOwnProperty(t)){if(e[t]===g)throw $a("cdep","Circular dependency found: {0}",t+" <- "+y.join(" <- "));return e[t]}try{return y.unshift(t),e[t]=g,e[t]=n(t)}catch(i){throw e[t]===g&&delete e[t],i}finally{y.shift()}}function a(e,n,a,o){"string"==typeof a&&(o=a,a=null);var r,s,c,l=[],u=Rt(e,t,o);for(s=0,r=u.length;r>s;s++){if(c=u[s],"string"!=typeof c)throw $a("itkn","Incorrect injection token! Expected service name as string, got {0}",c);l.push(a&&a.hasOwnProperty(c)?a[c]:i(c))}return Ki(e)&&(e=e[r]),e.apply(n,l)}function o(e,t,n){var i,o,r=function(){};return r.prototype=(Ki(e)?e[e.length-1]:e).prototype,i=new r,o=a(e,i,t,n),_(o)||C(o)?o:i}return{invoke:a,instantiate:o,get:i,annotate:Rt,has:function(t){return $.hasOwnProperty(t+v)||e.hasOwnProperty(t)}}}t=t===!0;var g={},v="Provider",y=[],w=new Ot([],!0),$={$provide:{provider:i(a),factory:i(r),service:i(s),value:i(l),constant:i(u),decorator:d}},k=$.$injector=h($,function(){throw $a("unpr","Unknown provider: {0}",y.join(" <- "))}),S={},x=S.$injector=h(S,function(e){var t=k.get(e+v);return x.invoke(t.$get,t,n,e)});return o(p(e),function(e){x.invoke(e||f)}),x}function Ht(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,i){function a(e){var t=null;return o(e,function(e){t||"a"!==I(e)||(t=e)}),t}function r(){var e,i=n.hash();i?(e=s.getElementById(i))?e.scrollIntoView():(e=a(s.getElementsByName(i)))?e.scrollIntoView():"top"===i&&t.scrollTo(0,0):t.scrollTo(0,0)}var s=t.document;return e&&i.$watch(function(){return n.hash()},function(){i.$evalAsync(r)}),r}]}function jt(){this.$get=["$$rAF","$timeout",function(e,t){return e.supported?function(t){return e(t)}:function(e){return t(e,0,!1)}}]}function Vt(e,t,i,a){function r(e){try{e.apply(null,q(arguments,1))}finally{if(y--,0===y)for(;_.length;)try{_.pop()()}catch(t){i.error(t)}}}function s(e,t){!function n(){o($,function(e){e()}),w=t(n,e)}()}function c(){S=null,C!=l.url()&&(C=l.url(),o(x,function(e){e(l.url())}))}var l=this,u=t[0],d=e.location,p=e.history,h=e.setTimeout,g=e.clearTimeout,m={};l.isMock=!1;var y=0,_=[];l.$$completeOutstandingRequest=r,l.$$incOutstandingRequestCount=function(){y++},l.notifyWhenNoOutstandingRequests=function(e){o($,function(e){e()}),0===y?e():_.push(e)};var w,$=[];l.addPollFn=function(e){return v(w)&&s(100,h),$.push(e),e};var C=d.href,k=t.find("base"),S=null;l.url=function(t,n){if(d!==e.location&&(d=e.location),p!==e.history&&(p=e.history),t){if(C==t)return;return C=t,a.history?n?p.replaceState(null,"",t):(p.pushState(null,"",t),k.attr("href",k.attr("href"))):(S=t,n?d.replace(t):d.href=t),l}return S||d.href.replace(/%27/g,"'")};var x=[],M=!1;l.onUrlChange=function(t){return M||(a.history&&Oi(e).on("popstate",c),a.hashchange?Oi(e).on("hashchange",c):l.addPollFn(c),M=!0),x.push(t),t},l.$$checkUrlChange=c,l.baseHref=function(){var e=k.attr("href");return e?e.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var T={},E="",A=l.baseHref();l.cookies=function(e,t){var a,o,r,s,c;if(!e){if(u.cookie!==E)for(E=u.cookie,o=E.split("; "),T={},s=0;s<o.length;s++)r=o[s],c=r.indexOf("="),c>0&&(e=decodeURIComponent(r.substring(0,c)),T[e]===n&&(T[e]=decodeURIComponent(r.substring(c+1))));return T}t===n?u.cookie=encodeURIComponent(e)+"=;path="+A+";expires=Thu, 01 Jan 1970 00:00:00 GMT":b(t)&&(a=(u.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)+";path="+A).length+1,a>4096&&i.warn("Cookie '"+e+"' possibly not set or overflowed because it was too large ("+a+" > 4096 bytes)!"))},l.defer=function(e,t){var n;return y++,n=h(function(){delete m[n],r(e)},t||0),m[n]=!0,n},l.defer.cancel=function(e){return m[e]?(delete m[e],g(e),r(f),!0):!1}}function zt(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,i){return new Vt(e,i,t,n)}]}function Wt(){this.$get=function(){function e(e,n){function a(e){e!=p&&(h?h==e&&(h=e.n):h=e,o(e.n,e.p),o(e,p),p=e,p.n=null)}function o(e,t){e!=t&&(e&&(e.p=t),t&&(t.n=e))}if(e in t)throw i("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var r=0,s=d({},n,{id:e}),c={},l=n&&n.capacity||Number.MAX_VALUE,u={},p=null,h=null;return t[e]={put:function(e,t){if(l<Number.MAX_VALUE){var n=u[e]||(u[e]={key:e});a(n)}if(!v(t))return e in c||r++,c[e]=t,r>l&&this.remove(h.key),t},get:function(e){if(l<Number.MAX_VALUE){var t=u[e];if(!t)return;a(t)}return c[e]},remove:function(e){if(l<Number.MAX_VALUE){var t=u[e];if(!t)return;t==p&&(p=t.p),t==h&&(h=t.n),o(t.n,t.p),delete u[e]}delete c[e],r--},removeAll:function(){c={},r=0,u={},p=h=null},destroy:function(){c=null,s=null,u=null,delete t[e]},info:function(){return d({},s,{size:r})}}}var t={};return e.info=function(){var e={};return o(t,function(t,n){e[n]=t.info()}),e},e.get=function(e){return t[e]},e}}function Gt(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function Kt(e,i){var a={},r="Directive",s=/^\s*directive\:\s*([\d\w_\-]+)\s+(.*)$/,l=/(([\d\w_\-]+)(?:\:([^;]+))?;?)/,u=D("ngSrc,ngSrcset,src,srcset"),p=/^(on[a-z]+|formaction)$/;this.directive=function w(t,n){return st(t,"directive"),b(t)?(ot(n,"directiveFactory"),a.hasOwnProperty(t)||(a[t]=[],e.factory(t+r,["$injector","$exceptionHandler",function(e,n){var i=[];return o(a[t],function(a,o){try{var r=e.invoke(a);C(r)?r={compile:m(r)}:!r.compile&&r.link&&(r.compile=m(r.link)),r.priority=r.priority||0,r.index=o,r.name=r.name||t,r.require=r.require||r.controller&&r.name,r.restrict=r.restrict||"EA",i.push(r)}catch(s){n(s)}}),i}])),a[t].push(n)):o(t,c(w)),this},this.aHrefSanitizationWhitelist=function(e){return y(e)?(i.aHrefSanitizationWhitelist(e),this):i.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return y(e)?(i.imgSrcSanitizationWhitelist(e),this):i.imgSrcSanitizationWhitelist()};var v=!0;this.debugInfoEnabled=function(e){return y(e)?(v=e,this):v},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(e,i,c,m,y,w,$,k,S,M,T){function E(e,t){try{e.addClass(t)}catch(n){}}function A(e,t,n,i,a){e instanceof Oi||(e=Oi(e)),o(e,function(t,n){3==t.nodeType&&t.nodeValue.match(/\S+/)&&(e[n]=Oi(t).wrap("<span></span>").parent()[0])});var r=P(e,t,e,n,i,a);A.$$addScopeClass(e);var s,c=null,l=e;return function(t,n,i,a,o){ot(t,"scope"),c||(c=D(o)),"html"!==c&&e[0]!==s&&(l=Oi(Z(c,Oi("<div>").append(e).html()))),s=e[0];var u=n?fa.clone.call(l):l;if(i)for(var d in i)u.data("$"+d+"Controller",i[d].instance);return A.$$addScopeInfo(u,t),n&&n(u,t),r&&r(t,u,u,a),u}}function D(e){var t=e&&e[0];return t&&"foreignobject"!==I(t)&&t.toString().match(/SVG/)?"svg":"html"}function P(e,t,i,a,o,r){function s(e,i,a,o){var r,s,c,l,u,d,p,h,m;if(f){var v=i.length;for(m=new Array(v),u=0;u<g.length;u+=3)p=g[u],m[p]=i[p]}else m=i;for(u=0,d=g.length;d>u;)c=m[g[u++]],r=g[u++],s=g[u++],r?(r.scope?(l=e.$new(),A.$$addScopeInfo(Oi(c),l)):l=e,h=r.transcludeOnThisElement?N(e,r.transclude,o,r.elementTranscludeOnThisElement):!r.templateOnThisElement&&o?o:!o&&t?N(e,t):null,r(s,l,c,a,h)):s&&s(e,c.childNodes,n,o)}for(var c,l,u,d,p,h,f,g=[],m=0;m<e.length;m++)c=new at,l=L(e[m],[],c,0===m?a:n,o),u=l.length?R(l,e[m],c,t,i,null,[],[],r):null,u&&u.scope&&A.$$addScopeClass(c.$$element),p=u&&u.terminal||!(d=e[m].childNodes)||!d.length?null:P(d,u?(u.transcludeOnThisElement||!u.templateOnThisElement)&&u.transclude:t),(u||p)&&(g.push(m,u,p),h=!0,f=f||u),r=null;return h?s:null}function N(e,t,n,i){var a=function(a,o,r,s){var c=!1;a||(a=e.$new(),a.$$transcluded=!0,c=!0);var l=t(a,o,r,n,s);return c&&!i&&l.on("$destroy",function(){a.$destroy()}),l};return a}function L(e,t,n,i,a){var o,r,c=e.nodeType,u=n.$attr;switch(c){case 1:j(t,Xt(I(e)),"E",i,a);for(var d,p,h,f,g,m,v=e.attributes,y=0,_=v&&v.length;_>y;y++){var w=!1,$=!1;if(d=v[y],!Bi||Bi>=8||d.specified){p=d.name,g=Xi(d.value),f=Xt(p),(m=lt.test(f))&&(p=it(f.substr(6),"-"));var C=f.replace(/(Start|End)$/,"");V(C)&&f===C+"Start"&&(w=p,$=p.substr(0,p.length-5)+"end",p=p.substr(0,p.length-6)),h=Xt(p.toLowerCase()),u[h]=p,(m||!n.hasOwnProperty(h))&&(n[h]=g,Nt(e,h)&&(n[h]=!0)),J(e,t,g,h,m),j(t,h,"A",i,a,w,$)}}if(r=e.className,b(r)&&""!==r)for(;o=l.exec(r);)h=Xt(o[2]),j(t,h,"C",i,a)&&(n[h]=Xi(o[3])),r=r.substr(o.index+o[0].length);break;case 3:Y(t,e.nodeValue);break;case 8:try{o=s.exec(e.nodeValue),o&&(h=Xt(o[1]),j(t,h,"M",i,a)&&(n[h]=Xi(o[2])))}catch(k){}}return t.sort(K),t}function B(e,t,n){var i=[],a=0;if(t&&e.hasAttribute&&e.hasAttribute(t)){do{if(!e)throw Sa("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);1==e.nodeType&&(e.hasAttribute(t)&&a++,e.hasAttribute(n)&&a--),i.push(e),e=e.nextSibling}while(a>0)}else i.push(e);return Oi(i)}function O(e,t,n){return function(i,a,o,r,s){return a=B(a[0],t,n),e(i,a,o,r,s)}}function R(e,a,r,s,l,u,d,p,h){function f(e,t,n,i){e&&(n&&(e=O(e,n,i)),e.require=k.require,e.directiveName=S,(P===k||k.$$isolateScope)&&(e=tt(e,{isolateScope:!0})),d.push(e)),t&&(n&&(t=O(t,n,i)),t.require=k.require,t.directiveName=S,(P===k||k.$$isolateScope)&&(t=tt(t,{isolateScope:!0})),p.push(t))}function g(e,t,n,i){var a,r="data",s=!1;if(b(t)){for(;"^"==(a=t.charAt(0))||"?"==a;)t=t.substr(1),"^"==a&&(r="inheritedData"),s=s||"?"==a;if(a=null,i&&"data"===r&&(a=i[t])&&(a=a.instance),a=a||n[r]("$"+t+"Controller"),!a&&!s)throw Sa("ctreq","Controller '{0}', required by directive '{1}', can't be found!",t,e);return a}return Ki(t)&&(a=[],o(t,function(t){a.push(g(e,t,n,i))})),a}function m(e,t,s,c,l){function u(e,t,i){var a;return x(e)||(i=t,t=e,e=n),V&&(a=b),i||(i=V?k.parent():k),l(e,t,a,i)}var h,f,m,v,_,b,C,k,S;if(a===s?(S=r,k=r.$$element):(k=Oi(s),S=new at(k,r)),P&&(_=t.$new(!0)),C=l&&u,I&&($={},b={},o(I,function(e){var n,i={$scope:e===P||e.$$isolateScope?_:t,$element:k,$attrs:S,$transclude:C};v=e.controller,"@"==v&&(v=S[e.name]),n=w(v,i,!0,e.controllerAs),b[e.name]=n,V||k.data("$"+e.name+"Controller",n.instance),$[e.name]=n})),P){var M=/^\s*([@=&])(\??)\s*(\w*)\s*$/;A.$$addScopeInfo(k,_,!0,!(N&&(N===P||N===P.$$originalDirective))),A.$$addScopeClass(k,!0);var T=$&&$[P.name],E=_;T&&T.identifier&&P.bindToController===!0&&(E=T.instance),o(P.scope,function(e,n){var a,o,r,s,c=e.match(M)||[],l=c[3]||n,u="?"==c[2],d=c[1];switch(_.$$isolateBindings[n]=d+l,d){case"@":S.$observe(l,function(e){_[n]=e}),S.$$observers[l].$$scope=t,S[l]&&(E[n]=i(S[l])(t));break;case"=":if(u&&!S[l])return;o=y(S[l]),s=o.literal?U:function(e,t){return e===t||e!==e&&t!==t},r=o.assign||function(){throw a=E[n]=o(t),Sa("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",S[l],P.name)},a=E[n]=o(t);var p=t.$watch(y(S[l],function(e){return s(e,E[n])||(s(e,a)?r(t,e=E[n]):E[n]=e),a=e}),null,o.literal);_.$on("$destroy",p);break;case"&":o=y(S[l]),E[n]=function(e){return o(t,e)};break;default:throw Sa("iscp","Invalid isolate scope definition for directive '{0}'. Definition: {... {1}: '{2}' ...}",P.name,n,e)}})}for($&&(o($,function(e){e()}),$=null),h=0,f=d.length;f>h;h++)m=d[h],nt(m,m.isolateScope?_:t,k,S,m.require&&g(m.directiveName,m.require,k,b),C);var D=t;for(P&&(P.template||null===P.templateUrl)&&(D=_),e&&e(D,s.childNodes,n,l),h=p.length-1;h>=0;h--)m=p[h],nt(m,m.isolateScope?_:t,k,S,m.require&&g(m.directiveName,m.require,k,b),C)}h=h||{};for(var v,$,k,S,M,T,E,D=-Number.MAX_VALUE,I=h.controllerDirectives,P=h.newIsolateScopeDirective,N=h.templateDirective,F=h.nonTlbTranscludeDirective,R=!1,j=!1,V=h.hasElementTranscludeDirective,K=r.$$element=Oi(a),Y=u,Q=s,J=0,it=e.length;it>J;J++){k=e[J];var ot=k.$$start,rt=k.$$end;if(ot&&(K=B(a,ot,rt)),M=n,D>k.priority)break;if((E=k.scope)&&(k.templateUrl||(_(E)?(X("new/isolated scope",P||v,k,K),P=k):X("new/isolated scope",P,k,K)),v=v||k),S=k.name,!k.templateUrl&&k.controller&&(E=k.controller,I=I||{},X("'"+S+"' controller",I[S],k,K),I[S]=k),(E=k.transclude)&&(R=!0,k.$$tlb||(X("transclusion",F,k,K),F=k),"element"==E?(V=!0,D=k.priority,M=K,K=r.$$element=Oi(t.createComment(" "+S+": "+r[S]+" ")),a=K[0],et(l,q(M),a),Q=A(M,s,D,Y&&Y.name,{nonTlbTranscludeDirective:F})):(M=Oi(bt(a)).contents(),K.empty(),Q=A(M,s))),k.template)if(j=!0,X("template",N,k,K),N=k,E=C(k.template)?k.template(K,r):k.template,E=ct(E),k.replace){if(Y=k,M=gt(E)?[]:Oi(Z(k.templateNamespace,Xi(E))),a=M[0],1!=M.length||1!==a.nodeType)throw Sa("tplrt","Template for directive '{0}' must have exactly one root element. {1}",S,"");et(l,K,a);var st={$attr:{}},lt=L(a,[],st),ut=e.splice(J+1,e.length-(J+1));P&&H(lt),e=e.concat(lt).concat(ut),z(r,st),it=e.length}else K.html(E);if(k.templateUrl)j=!0,X("template",N,k,K),N=k,k.replace&&(Y=k),m=G(e.splice(J,e.length-J),K,r,l,R&&Q,d,p,{controllerDirectives:I,newIsolateScopeDirective:P,templateDirective:N,nonTlbTranscludeDirective:F}),it=e.length;else if(k.compile)try{T=k.compile(K,r,Q),C(T)?f(null,T,ot,rt):T&&f(T.pre,T.post,ot,rt)}catch(dt){c(dt,W(K))}k.terminal&&(m.terminal=!0,D=Math.max(D,k.priority))}return m.scope=v&&v.scope===!0,m.transcludeOnThisElement=R,m.elementTranscludeOnThisElement=V,m.templateOnThisElement=j,m.transclude=Q,h.hasElementTranscludeDirective=V,m}function H(e){for(var t=0,n=e.length;n>t;t++)e[t]=h(e[t],{$$isolateScope:!0})}function j(t,i,o,s,l,u,d){if(i===l)return null;var p=null;if(a.hasOwnProperty(i))for(var f,g=e.get(i+r),m=0,v=g.length;v>m;m++)try{f=g[m],(s===n||s>f.priority)&&-1!=f.restrict.indexOf(o)&&(u&&(f=h(f,{$$start:u,$$end:d})),t.push(f),p=f)}catch(y){c(y)}return p}function V(t){if(a.hasOwnProperty(t))for(var n,i=e.get(t+r),o=0,s=i.length;s>o;o++)if(n=i[o],n.multiElement)return!0;return!1}function z(e,t){var n=t.$attr,i=e.$attr,a=e.$$element;o(e,function(i,a){"$"!=a.charAt(0)&&(t[a]&&t[a]!==i&&(i+=("style"===a?";":" ")+t[a]),e.$set(a,i,!0,n[a]))}),o(t,function(t,o){"class"==o?(E(a,t),e["class"]=(e["class"]?e["class"]+" ":"")+t):"style"==o?(a.attr("style",a.attr("style")+";"+t),e.style=(e.style?e.style+";":"")+t):"$"==o.charAt(0)||e.hasOwnProperty(o)||(e[o]=t,i[o]=n[o])})}function G(e,t,n,i,a,r,s,c){var l,u,p=[],h=t[0],f=e.shift(),g=d({},f,{templateUrl:null,transclude:null,replace:null,$$originalDirective:f}),v=C(f.templateUrl)?f.templateUrl(t,n):f.templateUrl,y=f.templateNamespace;return t.empty(),m(S.getTrustedResourceUrl(v)).then(function(d){var m,b,w,$;if(d=ct(d),f.replace){if(w=gt(d)?[]:Oi(Z(y,Xi(d))),m=w[0],1!=w.length||1!==m.nodeType)throw Sa("tplrt","Template for directive '{0}' must have exactly one root element. {1}",f.name,v);b={$attr:{}},et(i,t,m);var C=L(m,[],b);_(f.scope)&&H(C),e=C.concat(e),z(n,b)}else m=h,t.html(d);for(e.unshift(g),l=R(e,m,n,a,t,f,r,s,c),o(i,function(e,n){e==m&&(i[n]=t[0])}),u=P(t[0].childNodes,a);p.length;){var k=p.shift(),S=p.shift(),x=p.shift(),M=p.shift(),T=t[0];if(S!==h){var A=S.className;c.hasElementTranscludeDirective&&f.replace||(T=bt(m)),et(x,Oi(S),T),E(Oi(T),A)}$=l.transcludeOnThisElement?N(k,l.transclude,M):M,l(u,k,T,i,$)}p=null}),function(e,t,n,i,a){var o=a;p?(p.push(t),p.push(n),p.push(i),p.push(o)):(l.transcludeOnThisElement&&(o=N(t,l.transclude,a)),l(u,t,n,i,o))}}function K(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function X(e,t,n,i){if(t)throw Sa("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",t.name,n.name,e,W(i))}function Y(e,t){var n=i(t,!0);n&&e.push({priority:0,compile:function(e){var t=e.parent(),i=!!t.length;return i&&A.$$addBindingClass(t),function(e,t){var a=t.parent();i||A.$$addBindingClass(a),A.$$addBindingInfo(a,n.expressions),e.$watch(n,function(e){t[0].nodeValue=e})}}})}function Z(e,n){switch(e=Ii(e||"html")){case"svg":case"math":var i=t.createElement("div");return i.innerHTML="<"+e+">"+n+"</"+e+">",i.childNodes[0].childNodes;default:return n}}function Q(e,t){if("srcdoc"==t)return S.HTML;var n=I(e);return"xlinkHref"==t||"form"==n&&"action"==t||"img"!=n&&("src"==t||"ngSrc"==t)?S.RESOURCE_URL:void 0}function J(e,t,n,a,o){var r=i(n,!0);if(r){if("multiple"===a&&"select"===I(e))throw Sa("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",W(e));t.push({priority:100,compile:function(){return{pre:function(t,n,s){var c=s.$$observers||(s.$$observers={});if(p.test(a))throw Sa("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");r=i(s[a],!0,Q(e,a),u[a]||o),r&&(s[a]=r(t),(c[a]||(c[a]=[])).$$inter=!0,(s.$$observers&&s.$$observers[a].$$scope||t).$watch(r,function(e,t){"class"===a&&e!=t?s.$updateClass(e,t):s.$set(a,e)}))}}}})}}function et(e,n,i){var a,o,r=n[0],s=n.length,c=r.parentNode;if(e)for(a=0,o=e.length;o>a;a++)if(e[a]==r){e[a++]=i;for(var l=a,u=l+s-1,d=e.length;d>l;l++,u++)d>u?e[l]=e[u]:delete e[l];e.length-=s-1,e.context===r&&(e.context=i);break}c&&c.replaceChild(i,r);var p=t.createDocumentFragment();p.appendChild(r),Oi(i).data(Oi(r).data()),Ui?(Gi=!0,Ui.cleanData([r])):delete Oi.cache[r[Oi.expando]];for(var h=1,f=n.length;f>h;h++){var g=n[h];Oi(g).remove(),p.appendChild(g),delete n[h]}n[0]=i,n.length=1}function tt(e,t){return d(function(){return e.apply(null,arguments)},e,t)}function nt(e,t,n,i,a,o){try{e(t,n,i,a,o)}catch(r){c(r,W(n))}}var at=function(e,t){if(t){var n,i,a,o=Object.keys(t);for(n=0,i=o.length;i>n;n++)a=o[n],this[a]=t[a]}else this.$attr={};this.$$element=e};at.prototype={$normalize:Xt,$addClass:function(e){e&&e.length>0&&M.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&M.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=Yt(e,t);n&&n.length&&M.addClass(this.$$element,n);var i=Yt(t,e);i&&i.length&&M.removeClass(this.$$element,i)},$set:function(e,t,i,a){var r,s=this.$$element[0],l=Nt(s,e),u=Lt(s,e),d=e;l?(this.$$element.prop(e,t),a=l):u&&(this[u]=t,d=u),this[e]=t,a?this.$attr[e]=a:(a=this.$attr[e],a||(this.$attr[e]=a=it(e,"-"))),r=I(this.$$element),("a"===r&&"href"===e||"img"===r&&"src"===e)&&(this[e]=t=T(t,"src"===e)),i!==!1&&(null===t||t===n?this.$$element.removeAttr(a):this.$$element.attr(a,t));var p=this.$$observers;p&&o(p[d],function(e){try{e(t)}catch(n){c(n)}})},$observe:function(e,t){var n=this,i=n.$$observers||(n.$$observers={}),a=i[e]||(i[e]=[]);return a.push(t),$.$evalAsync(function(){a.$$inter||t(n[e])}),function(){F(a,t)}}};var rt=i.startSymbol(),st=i.endSymbol(),ct="{{"==rt||"}}"==st?g:function(e){return e.replace(/\{\{/g,rt).replace(/}}/g,st)},lt=/^ngAttr[A-Z]/;return A.$$addBindingInfo=v?function(e,t){var n=e.data("$binding")||[];Ki(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:f,A.$$addBindingClass=v?function(e){E(e,"ng-binding")}:f,A.$$addScopeInfo=v?function(e,t,n,i){var a=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(a,t)}:f,A.$$addScopeClass=v?function(e,t){E(e,t?"ng-isolate-scope":"ng-scope")}:f,A}]}function Xt(e){return ft(e.replace(xa,""))}function Yt(e,t){var n="",i=e.split(/\s+/),a=t.split(/\s+/);e:for(var o=0;o<i.length;o++){for(var r=i[o],s=0;s<a.length;s++)if(r==a[s])continue e;n+=(n.length>0?" ":"")+r}return n}function Zt(){var e={},t=!1,a=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(t,n){st(t,"controller"),_(t)?d(e,t):e[t]=n},this.allowGlobals=function(){t=!0},this.$get=["$injector","$window",function(o,r){function s(e,t,n,a){if(!e||!_(e.$scope))throw i("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",a,t);e.$scope[t]=n}return function(i,c,l,u){var p,h,f,g;if(l=l===!0,u&&b(u)&&(g=u),b(i)&&(h=i.match(a),f=h[1],g=g||h[3],i=e.hasOwnProperty(f)?e[f]:ct(c.$scope,f,!0)||(t?ct(r,f,!0):n),rt(i,f,!0)),l){var m=function(){};return m.prototype=(Ki(i)?i[i.length-1]:i).prototype,p=new m,g&&s(c,g,p,f||i.name),d(function(){return o.invoke(i,p,c,f),p},{instance:p,identifier:g})}return p=o.instantiate(i,c,f),g&&s(c,g,p,f||i.name),p}}]}function Qt(){this.$get=["$window",function(e){return Oi(e.document)}]}function Jt(){this.$get=["$log",function(e){return function(){e.error.apply(e,arguments)}}]}function en(e){var t,n,i,a={};return e?(o(e.split("\n"),function(e){i=e.indexOf(":"),t=Ii(Xi(e.substr(0,i))),n=Xi(e.substr(i+1)),t&&(a[t]=a[t]?a[t]+", "+n:n)}),a):a}function tn(e){var t=_(e)?e:n;return function(n){return t||(t=en(e)),n?t[Ii(n)]||null:t}}function nn(e,t,n){return C(n)?n(e,t):(o(n,function(n){e=n(e,t)}),e)}function an(e){return e>=200&&300>e}function on(){var e=/^\s*(\[|\{[^\{])/,t=/[\}\]]\s*$/,i=/^\)\]\}',?\n/,a={"Content-Type":"application/json;charset=utf-8"},r=this.defaults={transformResponse:[function(n){return b(n)&&(n=n.replace(i,""),e.test(n)&&t.test(n)&&(n=z(n))),n}],transformRequest:[function(e){return!_(e)||M(e)||T(e)?e:V(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:O(a),put:O(a),patch:O(a)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},c=!1;this.useApplyAsync=function(e){return y(e)?(c=!!e,this):c};var l=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(e,t,i,a,u,p){function h(e){function t(e){var t=d({},e,{data:nn(e.data,e.headers,a.transformResponse)});return an(e.status)?t:u.reject(t)}function i(e){function t(e){var t;o(e,function(n,i){C(n)&&(t=n(),null!=t?e[i]=t:delete e[i])})}var n,i,a,s=r.headers,c=d({},e.headers);s=d({},s.common,s[Ii(e.method)]);e:for(n in s){i=Ii(n);for(a in c)if(Ii(a)===i)continue e;c[n]=s[n]}return t(c),c}var a={method:"get",transformRequest:r.transformRequest,transformResponse:r.transformResponse},s=i(e);d(a,e),a.headers=s,a.method=Ni(a.method);var c=function(e){s=e.headers;var n=nn(e.data,tn(s),e.transformRequest);return v(n)&&o(s,function(e,t){"content-type"===Ii(t)&&delete s[t]}),v(e.withCredentials)&&!v(r.withCredentials)&&(e.withCredentials=r.withCredentials),m(e,n,s).then(t,t)},l=[c,n],p=u.when(a);for(o(S,function(e){(e.request||e.requestError)&&l.unshift(e.request,e.requestError),(e.response||e.responseError)&&l.push(e.response,e.responseError)});l.length;){var h=l.shift(),f=l.shift();p=p.then(h,f)}return p.success=function(e){return p.then(function(t){e(t.data,t.status,t.headers,a)}),p},p.error=function(e){return p.then(null,function(t){e(t.data,t.status,t.headers,a)}),p},p}function f(){o(arguments,function(e){h[e]=function(t,n){return h(d(n||{},{method:e,url:t}))}})}function g(){o(arguments,function(e){h[e]=function(t,n,i){return h(d(i||{},{method:e,url:t,data:n}))}})}function m(i,o,s){function l(e,t,n,i){function o(){d(t,e,n,i)}f&&(an(e)?f.put($,[e,t,en(n),i]):f.remove($)),c?a.$applyAsync(o):(o(),a.$$phase||a.$apply())}function d(e,t,n,a){t=Math.max(t,0),(an(t)?m.resolve:m.reject)({data:e,status:t,headers:tn(n),config:i,statusText:a})}function p(){var e=L(h.pendingRequests,i);-1!==e&&h.pendingRequests.splice(e,1)}var f,g,m=u.defer(),b=m.promise,$=w(i.url,i.params);if(h.pendingRequests.push(i),b.then(p,p),!i.cache&&!r.cache||i.cache===!1||"GET"!==i.method&&"JSONP"!==i.method||(f=_(i.cache)?i.cache:_(r.cache)?r.cache:k),f)if(g=f.get($),y(g)){if(E(g))return g.then(p,p),g;Ki(g)?d(g[1],g[0],O(g[2]),g[3]):d(g,200,{},"OK")}else f.put($,b);if(v(g)){var C=Xn(i.url)?t.cookies()[i.xsrfCookieName||r.xsrfCookieName]:n;C&&(s[i.xsrfHeaderName||r.xsrfHeaderName]=C),e(i.method,$,o,l,s,i.timeout,i.withCredentials,i.responseType)}return b}function w(e,t){if(!t)return e;var n=[];return s(t,function(e,t){null===e||v(e)||(Ki(e)||(e=[e]),o(e,function(e){_(e)&&($(e)?e=e.toISOString():_(e)&&(e=V(e))),n.push(Z(t)+"="+Z(e))}))}),n.length>0&&(e+=(-1==e.indexOf("?")?"?":"&")+n.join("&")),e}var k=i("$http"),S=[];return o(l,function(e){S.unshift(b(e)?p.get(e):p.invoke(e))}),h.pendingRequests=[],f("get","delete","head","jsonp"),g("post","put","patch"),h.defaults=r,h}]}function rn(t){if(8>=Bi&&(!t.match(/^(get|post|head|put|delete|options)$/i)||!e.XMLHttpRequest))return new e.ActiveXObject("Microsoft.XMLHTTP");if(e.XMLHttpRequest)return new e.XMLHttpRequest;throw i("$httpBackend")("noxhr","This browser does not support XMLHttpRequest.")}function sn(){this.$get=["$browser","$window","$document",function(e,t,n){return cn(e,rn,e.defer,t.angular.callbacks,n[0])}]}function cn(e,t,n,i,a){function r(e,t,n){var o=a.createElement("script"),r=null;return o.type="text/javascript",o.src=e,o.async=!0,r=function(e){aa(o,"load",r),aa(o,"error",r),a.body.removeChild(o),o=null;var s=-1,c="unknown";e&&("load"!==e.type||i[t].called||(e={type:"error"}),c=e.type,s="error"===e.type?404:200),n&&n(s,c)},ia(o,"load",r),ia(o,"error",r),a.body.appendChild(o),r}var s=-1;return function(a,c,l,u,d,p,h,g){function m(){_=s,w&&w(),$&&$.abort()}function v(t,i,a,o,r){k&&n.cancel(k),w=$=null,0===i&&(i=a?200:"file"==Kn(c).protocol?404:0),i=1223===i?204:i,r=r||"",t(i,a,o,r),e.$$completeOutstandingRequest(f)}var _;if(e.$$incOutstandingRequestCount(),c=c||e.url(),"jsonp"==Ii(a)){var b="_"+(i.counter++).toString(36);i[b]=function(e){i[b].data=e,i[b].called=!0};var w=r(c.replace("JSON_CALLBACK","angular.callbacks."+b),b,function(e,t){v(u,e,i[b].data,"",t),i[b]=f})}else{var $=t(a);if($.open(a,c,!0),o(d,function(e,t){y(e)&&$.setRequestHeader(t,e)}),$.onreadystatechange=function(){if($&&4==$.readyState){var e=null,t=null,n="";_!==s&&(e=$.getAllResponseHeaders(),t="response"in $?$.response:$.responseText),_===s&&10>Bi||(n=$.statusText),v(u,_||$.status,t,e,n)}},h&&($.withCredentials=!0),g)try{$.responseType=g}catch(C){if("json"!==g)throw C}$.send(l||null)}if(p>0)var k=n(m,p);else E(p)&&p.then(m)}}function ln(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,a){function o(e){return"\\\\\\"+e}function r(o,r,p,h){function f(n){return n.replace(l,e).replace(u,t)}function g(e){try{return E(T(e))}catch(t){var n=Ma("interr","Can't interpolate: {0}\n{1}",o,t.toString());i(n)}}h=!!h;for(var m,y,_,b=0,w=[],$=[],k=o.length,S=[],x=[];k>b;){if(-1==(m=o.indexOf(e,b))||-1==(y=o.indexOf(t,m+s))){b!==k&&S.push(f(o.substring(b)));break}b!==m&&S.push(f(o.substring(b,m))),_=o.substring(m+s,y),w.push(_),$.push(n(_,g)),b=y+c,x.push(S.length),S.push("")}if(p&&S.length>1)throw Ma("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",o);if(!r||w.length){var M=function(e){for(var t=0,n=w.length;n>t;t++){if(h&&v(e[t]))return;S[x[t]]=e[t]}return S.join("")},T=function(e){return p?a.getTrusted(p,e):a.valueOf(e)},E=function(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=V(e)}return e};return d(function(e){var t=0,n=w.length,a=new Array(n);try{for(;n>t;t++)a[t]=$[t](e);return M(a)}catch(r){var s=Ma("interr","Can't interpolate: {0}\n{1}",o,r.toString());i(s)}},{exp:o,expressions:w,$$watchDelegate:function(e,t,n){var i;return e.$watchGroup($,function(n,a){var o=M(n);C(t)&&t.call(this,o,n!==a?i:o,e),i=o},n)}})}}var s=e.length,c=t.length,l=new RegExp(e.replace(/./g,o),"g"),u=new RegExp(t.replace(/./g,o),"g");
return r.startSymbol=function(){return e},r.endSymbol=function(){return t},r}]}function un(){this.$get=["$rootScope","$window","$q","$$q",function(e,t,n,i){function a(a,r,s,c){var l=t.setInterval,u=t.clearInterval,d=0,p=y(c)&&!c,h=(p?i:n).defer(),f=h.promise;return s=y(s)?s:0,f.then(null,null,a),f.$$intervalId=l(function(){h.notify(d++),s>0&&d>=s&&(h.resolve(d),u(f.$$intervalId),delete o[f.$$intervalId]),p||e.$apply()},r),o[f.$$intervalId]=h,f}var o={};return a.cancel=function(e){return e&&e.$$intervalId in o?(o[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete o[e.$$intervalId],!0):!1},a}]}function dn(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(e){return 1===e?"one":"other"}}}}function pn(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=Y(t[n]);return t.join("/")}function hn(e,t,n){var i=Kn(e,n);t.$$protocol=i.protocol,t.$$host=i.hostname,t.$$port=p(i.port)||Ea[i.protocol]||null}function fn(e,t,n){var i="/"!==e.charAt(0);i&&(e="/"+e);var a=Kn(e,n);t.$$path=decodeURIComponent(i&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname),t.$$search=K(a.search),t.$$hash=decodeURIComponent(a.hash),t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function gn(e,t){return 0===t.indexOf(e)?t.substr(e.length):void 0}function mn(e){var t=e.indexOf("#");return-1==t?e:e.substr(0,t)}function vn(e){return e.substr(0,mn(e).lastIndexOf("/")+1)}function yn(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function _n(e,t){this.$$html5=!0,t=t||"";var i=vn(e);hn(e,this,e),this.$$parse=function(t){var n=gn(i,t);if(!b(n))throw Aa("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',t,i);fn(n,this,e),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=X(this.$$search),t=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=pn(this.$$path)+(e?"?"+e:"")+t,this.$$absUrl=i+this.$$url.substr(1)},this.$$parseLinkUrl=function(a,o){if(o&&"#"===o[0])return this.hash(o.slice(1)),!0;var r,s,c;return(r=gn(e,a))!==n?(s=r,c=(r=gn(t,r))!==n?i+(gn("/",r)||r):e+s):(r=gn(i,a))!==n?c=i+r:i==a+"/"&&(c=i),c&&this.$$parse(c),!!c}}function bn(e,t){var n=vn(e);hn(e,this,e),this.$$parse=function(i){function a(e,t,n){var i,a=/^\/[A-Z]:(\/.*)/;return 0===t.indexOf(n)&&(t=t.replace(n,"")),a.exec(t)?e:(i=a.exec(e),i?i[1]:e)}var o=gn(e,i)||gn(n,i),r="#"==o.charAt(0)?gn(t,o):this.$$html5?o:"";if(!b(r))throw Aa("ihshprfx",'Invalid url "{0}", missing hash prefix "{1}".',i,t);fn(r,this,e),this.$$path=a(this.$$path,r,e),this.$$compose()},this.$$compose=function(){var n=X(this.$$search),i=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=pn(this.$$path)+(n?"?"+n:"")+i,this.$$absUrl=e+(this.$$url?t+this.$$url:"")},this.$$parseLinkUrl=function(t){return mn(e)==mn(t)?(this.$$parse(t),!0):!1}}function wn(e,t){this.$$html5=!0,bn.apply(this,arguments);var n=vn(e);this.$$parseLinkUrl=function(i,a){if(a&&"#"===a[0])return this.hash(a.slice(1)),!0;var o,r;return e==mn(i)?o=i:(r=gn(n,i))?o=e+t+r:n===i+"/"&&(o=n),o&&this.$$parse(o),!!o},this.$$compose=function(){var n=X(this.$$search),i=this.$$hash?"#"+Y(this.$$hash):"";this.$$url=pn(this.$$path)+(n?"?"+n:"")+i,this.$$absUrl=e+t+this.$$url}}function $n(e){return function(){return this[e]}}function Cn(e,t){return function(n){return v(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function kn(){var t="",n=!1;this.hashPrefix=function(e){return y(e)?(t=e,this):t},this.html5Mode=function(e){return y(e)?(n=e,this):n},this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(i,a,o,r){function s(e){i.$broadcast("$locationChangeSuccess",c.absUrl(),e)}var c,l,u,d=a.baseHref(),p=a.url();if(n){if(!d)throw Aa("nobase","$location in HTML5 mode requires a <base> tag to be present!");u=yn(p)+(d||"/"),l=o.history?_n:wn}else u=mn(p),l=bn;c=new l(u,"#"+t),c.$$parseLinkUrl(p,p);var h=/^\s*(javascript|mailto):/i;r.on("click",function(t){if(!t.ctrlKey&&!t.metaKey&&2!=t.which){for(var n=Oi(t.target);"a"!==I(n[0]);)if(n[0]===r[0]||!(n=n.parent())[0])return;var o=n.prop("href"),s=n.attr("href")||n.attr("xlink:href");_(o)&&"[object SVGAnimatedString]"===o.toString()&&(o=Kn(o.animVal).href),h.test(o)||!o||n.attr("target")||t.isDefaultPrevented()||c.$$parseLinkUrl(o,s)&&(t.preventDefault(),c.absUrl()!=a.url()&&(i.$apply(),e.angular["ff-684208-preventDefault"]=!0))}}),c.absUrl()!=p&&a.url(c.absUrl(),!0),a.onUrlChange(function(e){c.absUrl()!=e&&(i.$evalAsync(function(){var t=c.absUrl();c.$$parse(e),i.$broadcast("$locationChangeStart",e,t).defaultPrevented?(c.$$parse(t),a.url(t)):s(t)}),i.$$phase||i.$digest())});var f=0;return i.$watch(function(){var e=a.url(),t=c.$$replace;return f&&e==c.absUrl()||(f++,i.$evalAsync(function(){i.$broadcast("$locationChangeStart",c.absUrl(),e).defaultPrevented?c.$$parse(e):(a.url(c.absUrl(),t),s(e))})),c.$$replace=!1,f}),c}]}function Sn(){var e=!0,t=this;this.debugEnabled=function(t){return y(t)?(e=t,this):e},this.$get=["$window",function(n){function i(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function a(e){var t=n.console||{},a=t[e]||t.log||f,r=!1;try{r=!!a.apply}catch(s){}return r?function(){var e=[];return o(arguments,function(t){e.push(i(t))}),a.apply(t,e)}:function(e,t){a(e,null==t?"":t)}}return{log:a("log"),info:a("info"),warn:a("warn"),error:a("error"),debug:function(){var n=a("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function xn(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw Da("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function Mn(e,t){if(e){if(e.constructor===e)throw Da("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw Da("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw Da("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw Da("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function Tn(e,t){if(e){if(e.constructor===e)throw Da("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===Ia||e===Pa||e===Na)throw Da("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function En(e,t,n,i){for(var a,o=t.split("."),r=0;o.length>1;r++){a=xn(o.shift(),i);var s=e[a];s||(s={},e[a]=s),e=s}return a=xn(o.shift(),i),Mn(e,i),Mn(e[a],i),e[a]=n,n}function An(e,t,i,a,o,r){return xn(e,r),xn(t,r),xn(i,r),xn(a,r),xn(o,r),function(r,s){var c=s&&s.hasOwnProperty(e)?s:r;return null==c?c:(c=c[e],t?null==c?n:(c=c[t],i?null==c?n:(c=c[i],a?null==c?n:(c=c[a],o?null==c?n:c=c[o]:c):c):c):c)}}function Dn(e,t,i){var a=Ua[e];if(a)return a;var r=e.split("."),s=r.length;if(t.csp)a=6>s?An(r[0],r[1],r[2],r[3],r[4],i):function(e,t){var a,o=0;do a=An(r[o++],r[o++],r[o++],r[o++],r[o++],i)(e,t),t=n,e=a;while(s>o);return a};else{var c="";o(r,function(e,t){xn(e,i),c+="if(s == null) return undefined;\ns="+(t?"s":'((l&&l.hasOwnProperty("'+e+'"))?l:s)')+"."+e+";\n"}),c+="return s;";var l=new Function("s","l",c);l.toString=m(c),a=l}return Ua[e]=a,a}function In(){var e=ut(),t={csp:!1};this.$get=["$filter","$sniffer",function(n,i){function a(e,t,n,i){var a,o;return a=e.$watch(function(e){return i(e)},function(e,n,i){o=e,C(t)&&t.apply(this,arguments),y(e)&&i.$$postDigest(function(){y(o)&&a()})},n)}function r(e,t,n,i){function a(e){var t=!0;return o(e,function(e){y(e)||(t=!1)}),t}var r;return r=e.$watch(function(e){return i(e)},function(e,n,i){C(t)&&t.call(this,e,n,i),a(e)&&i.$$postDigest(function(){a(e)&&r()})},n)}function s(e,t,n,i){var a;return a=e.$watch(function(e){return i(e)},function(){C(t)&&t.apply(this,arguments),a()},n)}function c(e,t){if(!t)return e;var n=function(n,i){var a=e(n,i),o=t(a,n,i);return y(a)?o:a};return n.$$watchDelegate=e.$$watchDelegate,n}return t.csp=i.csp,function(i,o){var l,u,d;switch(typeof i){case"string":if(d=i=i.trim(),l=e[d],!l){":"===i.charAt(0)&&":"===i.charAt(1)&&(u=!0,i=i.substring(2));var p=new Ba(t),h=new Oa(p,n,t);l=h.parse(i),l.constant?l.$$watchDelegate=s:u&&(l.$$watchDelegate=l.literal?r:a),e[d]=l}return c(l,o);case"function":return c(i,o);default:return c(f,o)}}}]}function Pn(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return Ln(function(t){e.$evalAsync(t)},t)}]}function Nn(){this.$get=["$browser","$exceptionHandler",function(e,t){return Ln(function(t){e.defer(t)},t)}]}function Ln(e,t){function a(e,t,n){function i(t){return function(n){a||(a=!0,t.call(e,n))}}var a=!1;return[i(t),i(n)]}function r(){this.$$state={status:0}}function s(e,t){return function(n){t.call(e,n)}}function c(e){var i,a,o;o=e.pending,e.processScheduled=!1,e.pending=n;for(var r=0,s=o.length;s>r;++r){a=o[r][0],i=o[r][e.status];try{C(i)?a.resolve(i(e.value)):1===e.status?a.resolve(e.value):a.reject(e.value)}catch(c){a.reject(c),t(c)}}}function l(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e(function(){c(t)}))}function u(){this.promise=new r,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function d(e){var t=new u,n=0,i=Ki(e)?[]:{};return o(e,function(e,a){n++,v(e).then(function(e){i.hasOwnProperty(a)||(i[a]=e,--n||t.resolve(i))},function(e){i.hasOwnProperty(a)||t.reject(e)})}),0===n&&t.resolve(i),t.promise}var p=i("$q",TypeError),h=function(){return new u};r.prototype={then:function(e,t,n){var i=new u;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,e,t,n]),this.$$state.status>0&&l(this.$$state),i.promise},"catch":function(e){return this.then(null,e)},"finally":function(e,t){return this.then(function(t){return m(t,!0,e)},function(t){return m(t,!1,e)},t)}},u.prototype={resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(p("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){var n,i;i=a(this,this.$$resolve,this.$$reject);try{(_(e)||C(e))&&(n=e&&e.then),C(n)?(this.promise.$$state.status=-1,n.call(e,i[0],i[1],this.notify)):(this.promise.$$state.value=e,this.promise.$$state.status=1,l(this.promise.$$state))}catch(o){i[1](o),t(o)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,l(this.promise.$$state)},notify:function(n){var i=this.promise.$$state.pending;this.promise.$$state.status<=0&&i&&i.length&&e(function(){for(var e,a,o=0,r=i.length;r>o;o++){a=i[o][0],e=i[o][3];try{a.notify(C(e)?e(n):n)}catch(s){t(s)}}})}};var f=function(e){var t=new u;return t.reject(e),t.promise},g=function(e,t){var n=new u;return t?n.resolve(e):n.reject(e),n.promise},m=function(e,t,n){var i=null;try{C(n)&&(i=n())}catch(a){return g(a,!1)}return E(i)?i.then(function(){return g(e,t)},function(e){return g(e,!1)}):g(e,t)},v=function(e,t,n,i){var a=new u;return a.resolve(e),a.promise.then(t,n,i)},y=function b(e){function t(e){i.resolve(e)}function n(e){i.reject(e)}if(!C(e))throw p("norslvr","Expected resolverFn, got '{0}'",e);if(!(this instanceof b))return new b(e);var i=new u;return e(t,n),i.promise};return y.defer=h,y.reject=f,y.when=v,y.all=d,y}function Fn(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame,i=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,a=!!n,o=a?function(e){var t=n(e);return function(){i(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=a,o}]}function Bn(){var e=10,t=i("$rootScope"),n=null,r=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(i,s,c,u){function d(){this.$id=l(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this["this"]=this.$root=this,this.$$destroyed=!1,this.$$asyncQueue=[],this.$$postDigestQueue=[],this.$$listeners={},this.$$listenerCount={},this.$$isolateBindings={},this.$$applyAsyncQueue=[]}function p(e){if(b.$$phase)throw t("inprog","{0} already in progress",b.$$phase);b.$$phase=e}function h(){b.$$phase=null}function g(e,t,n){do e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n];while(e=e.$parent)}function m(){}function v(){for(var e=b.$$applyAsyncQueue;e.length;)try{e.shift()()}catch(t){s(t)}r=null}function y(){null===r&&(r=u.defer(function(){b.$apply(v)}))}d.prototype={constructor:d,$new:function(e){var t;return e?(t=new d,t.$root=this.$root,t.$$asyncQueue=this.$$asyncQueue,t.$$postDigestQueue=this.$$postDigestQueue):(this.$$ChildScope||(this.$$ChildScope=function(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$id=l(),this.$$ChildScope=null},this.$$ChildScope.prototype=this),t=new this.$$ChildScope),t["this"]=t,t.$parent=this,t.$$prevSibling=this.$$childTail,this.$$childHead?(this.$$childTail.$$nextSibling=t,this.$$childTail=t):this.$$childHead=this.$$childTail=t,t},$watch:function(e,t,i){var a=c(e);if(a.$$watchDelegate)return a.$$watchDelegate(this,t,i,a);var o=this,r=o.$$watchers,s={fn:t,last:m,get:a,exp:e,eq:!!i};return n=null,C(t)||(s.fn=f),r||(r=o.$$watchers=[]),r.unshift(s),function(){F(r,s),n=null}},$watchGroup:function(e,t){function n(){c=!1,l?(l=!1,t(a,a,s)):t(a,i,s)}var i=new Array(e.length),a=new Array(e.length),r=[],s=this,c=!1,l=!0;if(!e.length){var u=!0;return s.$evalAsync(function(){u&&t(a,a,s)}),function(){u=!1}}return 1===e.length?this.$watch(e[0],function(e,n,o){a[0]=e,i[0]=n,t(a,e===n?a:i,o)}):(o(e,function(e,t){var o=s.$watch(e,function(e,o){a[t]=e,i[t]=o,c||(c=!0,s.$evalAsync(n))});r.push(o)}),function(){for(;r.length;)r.shift()()})},$watchCollection:function(e,t){function n(e){o=e;var t,n,i,s,c;if(_(o))if(a(o)){r!==h&&(r=h,m=r.length=0,d++),t=o.length,m!==t&&(d++,r.length=m=t);for(var l=0;t>l;l++)c=r[l],s=o[l],i=c!==c&&s!==s,i||c===s||(d++,r[l]=s)}else{r!==f&&(r=f={},m=0,d++),t=0;for(n in o)o.hasOwnProperty(n)&&(t++,s=o[n],c=r[n],n in r?(i=c!==c&&s!==s,i||c===s||(d++,r[n]=s)):(m++,r[n]=s,d++));if(m>t){d++;for(n in r)o.hasOwnProperty(n)||(m--,delete r[n])}}else r!==o&&(r=o,d++);return d}function i(){if(g?(g=!1,t(o,o,l)):t(o,s,l),u)if(_(o))if(a(o)){s=new Array(o.length);for(var e=0;e<o.length;e++)s[e]=o[e]}else{s={};for(var n in o)Pi.call(o,n)&&(s[n]=o[n])}else s=o}var o,r,s,l=this,u=t.length>1,d=0,p=c(e,n),h=[],f={},g=!0,m=0;return this.$watch(p,i)},$digest:function(){var i,a,o,c,l,d,f,g,y,_,w,$=this.$$asyncQueue,k=this.$$postDigestQueue,S=e,x=this,M=[];p("$digest"),u.$$checkUrlChange(),this===b&&null!==r&&(u.defer.cancel(r),v()),n=null;do{for(d=!1,g=x;$.length;){try{w=$.shift(),w.scope.$eval(w.expression)}catch(T){s(T)}n=null}e:do{if(c=g.$$watchers)for(l=c.length;l--;)try{if(i=c[l])if((a=i.get(g))===(o=i.last)||(i.eq?U(a,o):"number"==typeof a&&"number"==typeof o&&isNaN(a)&&isNaN(o))){if(i===n){d=!1;break e}}else d=!0,n=i,i.last=i.eq?B(a,null):a,i.fn(a,o===m?a:o,g),5>S&&(y=4-S,M[y]||(M[y]=[]),_=C(i.exp)?"fn: "+(i.exp.name||i.exp.toString()):i.exp,_+="; newVal: "+V(a)+"; oldVal: "+V(o),M[y].push(_))}catch(T){s(T)}if(!(f=g.$$childHead||g!==x&&g.$$nextSibling))for(;g!==x&&!(f=g.$$nextSibling);)g=g.$parent}while(g=f);if((d||$.length)&&!S--)throw h(),t("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,V(M))}while(d||$.length);for(h();k.length;)try{k.shift()()}catch(T){s(T)}},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;if(this.$broadcast("$destroy"),this.$$destroyed=!0,this!==b){for(var t in this.$$listenerCount)g(this,this.$$listenerCount[t],t);e.$$childHead==this&&(e.$$childHead=this.$$nextSibling),e.$$childTail==this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null,this.$$listeners={},this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[],this.$destroy=this.$digest=this.$apply=f,this.$on=this.$watch=this.$watchGroup=function(){return f}}}},$eval:function(e,t){return c(e)(this,t)},$evalAsync:function(e){b.$$phase||b.$$asyncQueue.length||u.defer(function(){b.$$asyncQueue.length&&b.$digest()}),this.$$asyncQueue.push({scope:this,expression:e})},$$postDigest:function(e){this.$$postDigestQueue.push(e)},$apply:function(e){try{return p("$apply"),this.$eval(e)}catch(t){s(t)}finally{h();try{b.$digest()}catch(t){throw s(t),t}}},$applyAsync:function(e){function t(){n.$eval(e)}var n=this;e&&b.$$applyAsyncQueue.push(t),y()},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var i=this;do i.$$listenerCount[e]||(i.$$listenerCount[e]=0),i.$$listenerCount[e]++;while(i=i.$parent);var a=this;return function(){n[L(n,t)]=null,g(a,1,e)}},$emit:function(e){var t,n,i,a=[],o=this,r=!1,c={name:e,targetScope:o,stopPropagation:function(){r=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},l=R([c],arguments,1);do{for(t=o.$$listeners[e]||a,c.currentScope=o,n=0,i=t.length;i>n;n++)if(t[n])try{t[n].apply(null,l)}catch(u){s(u)}else t.splice(n,1),n--,i--;if(r)return c.currentScope=null,c;o=o.$parent}while(o);return c.currentScope=null,c},$broadcast:function(e){var t=this,n=t,i=t,a={name:e,targetScope:t,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!t.$$listenerCount[e])return a;for(var o,r,c,l=R([a],arguments,1);n=i;){for(a.currentScope=n,o=n.$$listeners[e]||[],r=0,c=o.length;c>r;r++)if(o[r])try{o[r].apply(null,l)}catch(u){s(u)}else o.splice(r,1),r--,c--;if(!(i=n.$$listenerCount[e]&&n.$$childHead||n!==t&&n.$$nextSibling))for(;n!==t&&!(i=n.$$nextSibling);)n=n.$parent}return a.currentScope=null,a}};var b=new d;return b}]}function On(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return y(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return y(e)?(t=e,this):t},this.$get=function(){return function(n,i){var a,o=i?t:e;return Bi&&!(Bi>=8)||(a=Kn(n).href,""===a||a.match(o))?n:"unsafe:"+a}}}function Un(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")}function Rn(e){if("self"===e)return e;if(b(e)){if(e.indexOf("***")>-1)throw Ra("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=Un(e).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+e+"$")}if(k(e))return new RegExp("^"+e.source+"$");throw Ra("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function qn(e){var t=[];return y(e)&&o(e,function(e){t.push(Rn(e))}),t}function Hn(){this.SCE_CONTEXTS=qa;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=qn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=qn(e)),t},this.$get=["$injector",function(i){function a(e,t){return"self"===e?Xn(t):!!e.exec(t.href)}function o(n){var i,o,r=Kn(n.toString()),s=!1;for(i=0,o=e.length;o>i;i++)if(a(e[i],r)){s=!0;break}if(s)for(i=0,o=t.length;o>i;i++)if(a(t[i],r)){s=!1;break}return s}function r(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function s(e,t){var i=p.hasOwnProperty(e)?p[e]:null;if(!i)throw Ra("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||t===n||""===t)return t;if("string"!=typeof t)throw Ra("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new i(t)}function c(e){return e instanceof d?e.$$unwrapTrustedValue():e}function l(e,t){if(null===t||t===n||""===t)return t;var i=p.hasOwnProperty(e)?p[e]:null;if(i&&t instanceof i)return t.$$unwrapTrustedValue();if(e===qa.RESOURCE_URL){if(o(t))return t;throw Ra("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===qa.HTML)return u(t);throw Ra("unsafe","Attempting to use an unsafe value in a safe context.")}var u=function(){throw Ra("unsafe","Attempting to use an unsafe value in a safe context.")};i.has("$sanitize")&&(u=i.get("$sanitize"));var d=r(),p={};return p[qa.HTML]=r(d),p[qa.CSS]=r(d),p[qa.URL]=r(d),p[qa.JS]=r(d),p[qa.RESOURCE_URL]=r(p[qa.URL]),{trustAs:s,getTrusted:l,valueOf:c}}]}function jn(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sniffer","$sceDelegate",function(t,n,i){if(e&&n.msie&&n.msieDocumentMode<8)throw Ra("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 9 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var a=O(qa);a.isEnabled=function(){return e},a.trustAs=i.trustAs,a.getTrusted=i.getTrusted,a.valueOf=i.valueOf,e||(a.trustAs=a.getTrusted=function(e,t){return t},a.valueOf=g),a.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,function(t){return a.getTrusted(e,t)})};var r=a.parseAs,s=a.getTrusted,c=a.trustAs;return o(qa,function(e,t){var n=Ii(t);a[ft("parse_as_"+n)]=function(t){return r(e,t)},a[ft("get_trusted_"+n)]=function(t){return s(e,t)},a[ft("trust_as_"+n)]=function(t){return c(e,t)}}),a}]}function Vn(){this.$get=["$window","$document",function(e,t){var n,i,a={},o=p((/android (\d+)/.exec(Ii((e.navigator||{}).userAgent))||[])[1]),r=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},c=s.documentMode,l=/^(Moz|webkit|O|ms)(?=[A-Z])/,u=s.body&&s.body.style,d=!1,h=!1;if(u){for(var f in u)if(i=l.exec(f)){n=i[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in u&&"webkit"),d=!!("transition"in u||n+"Transition"in u),h=!!("animation"in u||n+"Animation"in u),!o||d&&h||(d=b(s.body.style.webkitTransition),h=b(s.body.style.webkitAnimation))}return{history:!(!e.history||!e.history.pushState||4>o||r),hashchange:"onhashchange"in e&&(!c||c>7),hasEvent:function(e){if("input"==e&&9==Bi)return!1;if(v(a[e])){var t=s.createElement("div");a[e]="on"+e in t}return a[e]},csp:Yi(),vendorPrefix:n,transitions:d,animations:h,android:o,msie:Bi,msieDocumentMode:c}}]}function zn(){this.$get=["$templateCache","$http","$q",function(e,t,n){function i(a,o){function r(){if(s.totalPendingRequests--,!o)throw Sa("tpload","Failed to load template: {0}",a);return n.reject()}var s=i;return s.totalPendingRequests++,t.get(a,{cache:e}).then(function(t){var n=t.data;return n&&0!==n.length?(s.totalPendingRequests--,e.put(a,n),n):r()},r)}return i.totalPendingRequests=0,i}]}function Wn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var i={};return i.findBindings=function(e,t,n){var i=e.getElementsByClassName("ng-binding"),a=[];return o(i,function(e){var i=zi.element(e).data("$binding");i&&o(i,function(i){if(n){var o=new RegExp("(^|\\s)"+t+"(\\s|\\||$)");o.test(i)&&a.push(e)}else-1!=i.indexOf(t)&&a.push(e)})}),a},i.findModels=function(e,t,n){for(var i=["ng-","data-ng-","ng\\:"],a=0;a<i.length;++a){var o=n?"=":"*=",r="["+i[a]+"model"+o+'"'+t+'"]',s=e.querySelectorAll(r);if(s.length)return s}},i.getLocation=function(){return n.url()},i.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},i.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},i}]}function Gn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,i,a){function o(o,s,c){var l,u=y(c)&&!c,d=(u?i:n).defer(),p=d.promise;return l=t.defer(function(){try{d.resolve(o())}catch(t){d.reject(t),a(t)}finally{delete r[p.$$timeoutId]}u||e.$apply()},s),p.$$timeoutId=l,r[l]=d,p}var r={};return o.cancel=function(e){return e&&e.$$timeoutId in r?(r[e.$$timeoutId].reject("canceled"),delete r[e.$$timeoutId],t.defer.cancel(e.$$timeoutId)):!1},o}]}function Kn(e){var t=e;return Bi&&(Ha.setAttribute("href",t),t=Ha.href),Ha.setAttribute("href",t),{href:Ha.href,protocol:Ha.protocol?Ha.protocol.replace(/:$/,""):"",host:Ha.host,search:Ha.search?Ha.search.replace(/^\?/,""):"",hash:Ha.hash?Ha.hash.replace(/^#/,""):"",hostname:Ha.hostname,port:Ha.port,pathname:"/"===Ha.pathname.charAt(0)?Ha.pathname:"/"+Ha.pathname}}function Xn(e){var t=b(e)?Kn(e):e;return t.protocol===ja.protocol&&t.host===ja.host}function Yn(){this.$get=m(e)}function Zn(e){function t(i,a){if(_(i)){var r={};return o(i,function(e,n){r[n]=t(n,e)}),r}return e.factory(i+n,a)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",Jn),t("date",ui),t("filter",Qn),t("json",di),t("limitTo",pi),t("lowercase",Ka),t("number",ei),t("orderBy",hi),t("uppercase",Xa)}function Qn(){return function(e,t,n){if(!Ki(e))return e;var i=typeof n,a=[];a.check=function(e,t){for(var n=0;n<a.length;n++)if(!a[n](e,t))return!1;return!0},"function"!==i&&(n="boolean"===i&&n?function(e,t){return zi.equals(e,t)}:function(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){for(var i in e)if("$"!==i.charAt(0)&&Pi.call(e,i)&&n(e[i],t[i]))return!0;return!1}return t=(""+t).toLowerCase(),(""+e).toLowerCase().indexOf(t)>-1});var o=function(e,t){if("string"==typeof t&&"!"===t.charAt(0))return!o(e,t.substr(1));switch(typeof e){case"boolean":case"number":case"string":return n(e,t);case"object":switch(typeof t){case"object":return n(e,t);default:for(var i in e)if("$"!==i.charAt(0)&&o(e[i],t))return!0}return!1;case"array":for(var a=0;a<e.length;a++)if(o(e[a],t))return!0;return!1;default:return!1}};switch(typeof t){case"boolean":case"number":case"string":t={$:t};case"object":for(var r in t)!function(e){"undefined"!=typeof t[e]&&a.push(function(n){return o("$"==e?n:n&&n[e],t[e])})}(r);break;case"function":a.push(t);break;default:return e}for(var s=[],c=0;c<e.length;c++){var l=e[c];a.check(l,c)&&s.push(l)}return s}}function Jn(e){var t=e.NUMBER_FORMATS;return function(e,n){return v(n)&&(n=t.CURRENCY_SYM),null==e?e:ti(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,2).replace(/\u00A4/g,n)}}function ei(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:ti(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function ti(e,t,n,i,a){if(!isFinite(e)||_(e))return"";var o=0>e;e=Math.abs(e);var r=e+"",s="",c=[],l=!1;if(-1!==r.indexOf("e")){var u=r.match(/([\d\.]+)e(-?)(\d+)/);u&&"-"==u[2]&&u[3]>a+1?(r="0",e=0):(s=r,l=!0)}if(l)a>0&&e>-1&&1>e&&(s=e.toFixed(a));else{var d=(r.split(Va)[1]||"").length;v(a)&&(a=Math.min(Math.max(t.minFrac,d),t.maxFrac)),e=+(Math.round(+(e.toString()+"e"+a)).toString()+"e"+-a);var p=(""+e).split(Va),h=p[0];p=p[1]||"";var f,g=0,m=t.lgSize,y=t.gSize;if(h.length>=m+y)for(g=h.length-m,f=0;g>f;f++)(g-f)%y===0&&0!==f&&(s+=n),s+=h.charAt(f);for(f=g;f<h.length;f++)(h.length-f)%m===0&&0!==f&&(s+=n),s+=h.charAt(f);for(;p.length<a;)p+="0";a&&"0"!==a&&(s+=i+p.substr(0,a))}return c.push(o?t.negPre:t.posPre),c.push(s),c.push(o?t.negSuf:t.posSuf),c.join("")}function ni(e,t,n){var i="";for(0>e&&(i="-",e=-e),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),i+e}function ii(e,t,n,i){return n=n||0,function(a){var o=a["get"+e]();return(n>0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),ni(o,t,i)}}function ai(e,t){return function(n,i){var a=n["get"+e](),o=Ni(t?"SHORT"+e:e);return i[o][a]}}function oi(e){var t=-1*e.getTimezoneOffset(),n=t>=0?"+":"";return n+=ni(Math[t>0?"floor":"ceil"](t/60),2)+ni(Math.abs(t%60),2)}function ri(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(4>=t?5:12)-t)}function si(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function ci(e){return function(t){var n=ri(t.getFullYear()),i=si(t),a=+i-+n,o=1+Math.round(a/6048e5);return ni(o,e)}}function li(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function ui(e){function t(e){var t;if(t=e.match(n)){var i=new Date(0),a=0,o=0,r=t[8]?i.setUTCFullYear:i.setFullYear,s=t[8]?i.setUTCHours:i.setHours;t[9]&&(a=p(t[9]+t[10]),o=p(t[9]+t[11])),r.call(i,p(t[1]),p(t[2])-1,p(t[3]));var c=p(t[4]||0)-a,l=p(t[5]||0)-o,u=p(t[6]||0),d=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(i,c,l,u,d),i}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,i,a){var r,s,c="",l=[];if(i=i||"mediumDate",i=e.DATETIME_FORMATS[i]||i,b(n)&&(n=Ga.test(n)?p(n):t(n)),w(n)&&(n=new Date(n)),!$(n))return n;for(;i;)s=Wa.exec(i),s?(l=R(l,s,1),i=l.pop()):(l.push(i),i=null);return a&&"UTC"===a&&(n=new Date(n.getTime()),n.setMinutes(n.getMinutes()+n.getTimezoneOffset())),o(l,function(t){r=za[t],c+=r?r(n,e.DATETIME_FORMATS):t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}}function di(){return function(e){return V(e,!0)}}function pi(){return function(e,t){if(!Ki(e)&&!b(e))return e;if(t=1/0===Math.abs(Number(t))?Number(t):p(t),b(e))return t?t>=0?e.slice(0,t):e.slice(t,e.length):"";var n,i,a=[];for(t>e.length?t=e.length:t<-e.length&&(t=-e.length),t>0?(n=0,i=t):(n=e.length+t,i=e.length);i>n;n++)a.push(e[n]);return a}}function hi(e){return function(t,n,i){function a(e,t){for(var i=0;i<n.length;i++){var a=n[i](e,t);if(0!==a)return a}return 0}function o(e,t){return t?function(t,n){return e(n,t)}:e}function r(e,t){var n=typeof e,i=typeof t;return n==i?($(e)&&$(t)&&(e=e.valueOf(),t=t.valueOf()),"string"==n&&(e=e.toLowerCase(),t=t.toLowerCase()),e===t?0:t>e?-1:1):i>n?-1:1}if(!Ki(t))return t;if(!n)return t;n=Ki(n)?n:[n],n=P(n,function(t){var n=!1,i=t||g;if(b(t)&&(("+"==t.charAt(0)||"-"==t.charAt(0))&&(n="-"==t.charAt(0),t=t.substring(1)),i=e(t),i.constant)){var a=i();return o(function(e,t){return r(e[a],t[a])},n)}return o(function(e,t){return r(i(e),i(t))},n)});for(var s=[],c=0;c<t.length;c++)s.push(t[c]);return s.sort(o(a,i))}}function fi(e){return C(e)&&(e={link:e}),e.restrict=e.restrict||"AC",m(e)}function gi(e,t,i,a){function r(t,n){n=n?"-"+it(n,"-"):"",a.removeClass(e,(t?vo:mo)+n),a.addClass(e,(t?mo:vo)+n)}var s=this,c=e.parent().controller("form")||Qa,l=0,u=0,d=[],p=s.$error={};s.$name=t.name||t.ngForm,s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,c.$addControl(s),e.addClass(yo),r(!0),s.$rollbackViewValue=function(){o(d,function(e){e.$rollbackViewValue()})},s.$commitViewValue=function(){o(d,function(e){e.$commitViewValue()})},s.$addControl=function(e){st(e.$name,"input"),d.push(e),e.$name&&(s[e.$name]=e)},s.$removeControl=function(e){e.$name&&s[e.$name]===e&&delete s[e.$name],s.$$clearControlValidity(e),F(d,e)},s.$$clearControlValidity=function(e){function t(t,n){s.$setValidity(n,!0,e)}o(s.$pending,t),o(p,t),c.$$clearControlValidity(s)},s.$$setPending=function(e,t){var i=s.$pending&&s.$pending[e];i&&N(i,t)||(u++,s.$valid=s.$invalid=n,s.$pending=s.$pending||{},i||(i=s.$pending[e]=[]),i.push(t),c.$$setPending(e,s))},s.$setValidity=function(e,t,i){var a,o=p[e],d=s.$pending&&s.$pending[e];
d&&(a=L(d,i)>=0,a&&(F(d,i),u--,0===d.length&&delete s.$pending[e]));var h=s.$pending&&0===u;if(h&&(s.$pending=n),t)(o||a)&&(o&&F(o,i),o&&o.length||(p[e]&&l--,l?h&&(r(!1),s.$valid=!1,s.$invalid=!0):s.$pending||(r(t),s.$valid=!0,s.$invalid=!1),p[e]=!1,r(!0,e),c.$setValidity(e,!0,s)));else{if(s.$pending||(s.$valid=!1,s.$invalid=!0),l||r(t),o){if(N(o,i))return}else p[e]=o=[],l++,r(!1,e),c.$setValidity(e,!1,s);o.push(i)}},s.$setDirty=function(){a.removeClass(e,yo),a.addClass(e,_o),s.$dirty=!0,s.$pristine=!1,c.$setDirty()},s.$setPristine=function(){a.setClass(e,yo,_o+" "+Ja),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,o(d,function(e){e.$setPristine()})},s.$setSubmitted=function(){a.addClass(e,Ja),s.$submitted=!0,c.$setSubmitted()}}function mi(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function vi(e,t,n,i,a,o){yi(e,t,n,i,a,o),mi(i)}function yi(e,t,n,i,a,o){var r=t.prop(Di),s=t[0].placeholder,c={},l=Ii(t[0].type);if(i.$$validityState=r,!a.android){var u=!1;t.on("compositionstart",function(){u=!0}),t.on("compositionend",function(){u=!1,d()})}var d=function(a){if(!u){var o=t.val(),d=a&&a.type;if(Bi&&"input"===(a||c).type&&t[0].placeholder!==s)return void(s=t[0].placeholder);"password"===l||n.ngTrim&&"false"===n.ngTrim||(o=Xi(o));var p=r&&i.$$hasNativeValidators;(i.$viewValue!==o||""===o&&p)&&(e.$$phase?i.$setViewValue(o,d,p):e.$apply(function(){i.$setViewValue(o,d,p)}))}};if(a.hasEvent("input"))t.on("input",d);else{var p,h=function(e){p||(p=o.defer(function(){d(e),p=null}))};t.on("keydown",function(e){var t=e.keyCode;91===t||t>15&&19>t||t>=37&&40>=t||h(e)}),a.hasEvent("paste")&&t.on("paste cut",h)}t.on("change",d),i.$render=function(){t.val(i.$isEmpty(i.$viewValue)?"":i.$viewValue)}}function _i(e){if($(e))return e;if(b(e)){co.lastIndex=0;var t=co.exec(e);if(t){var n=+t[1],i=+t[2],a=ri(n),o=7*(i-1);return new Date(n,0,a.getDate()+o)}}return 0/0}function bi(e,t){return function(n){var i,a;return $(n)?n:b(n)&&(e.lastIndex=0,i=e.exec(n))?(i.shift(),a={yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0},o(i,function(e,n){n<t.length&&(a[t[n]]=+e)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0)):0/0}}function wi(e,t,i,a){return function(o,r,s,c,l,u,d){$i(o,r,s,c),yi(o,r,s,c,l,u);var p=c&&c.$options&&c.$options.timezone;c.$$parserName=e,c.$parsers.push(function(e){if(c.$isEmpty(e))return null;if(t.test(e)){var a=i(e);return"UTC"===p&&a.setMinutes(a.getMinutes()-a.getTimezoneOffset()),a}return n}),c.$formatters.push(function(e){return $(e)?d("date")(e,a,p):""}),s.min&&(c.$validators.min=function(e){return c.$isEmpty(e)||v(s.min)||i(e)>=i(s.min)}),s.max&&(c.$validators.max=function(e){return c.$isEmpty(e)||v(s.max)||i(e)<=i(s.max)})}}function $i(e,t,i,a){var o=t[0],r=a.$$hasNativeValidators=_(o.validity);r&&a.$parsers.push(function(e){var i=t.prop(Di)||{};return i.badInput||i.typeMismatch?n:e})}function Ci(e,t,i,a,o,r){$i(e,t,i,a),yi(e,t,i,a,o,r),a.$$parserName="number",a.$parsers.push(function(e){return a.$isEmpty(e)?null:oo.test(e)?parseFloat(e):n}),a.$formatters.push(function(e){if(!a.$isEmpty(e)){if(!w(e))throw ho("numfmt","Expected `{0}` to be a number",e);e=e.toString()}return e}),i.min&&(a.$validators.min=function(e){return a.$isEmpty(e)||v(i.min)||e>=parseFloat(i.min)}),i.max&&(a.$validators.max=function(e){return a.$isEmpty(e)||v(i.max)||e<=parseFloat(i.max)})}function ki(e,t,n,i,a,o){$i(e,t,n,i),yi(e,t,n,i,a,o),mi(i),i.$$parserName="url",i.$validators.url=function(e,t){var n=e||t;return i.$isEmpty(n)||io.test(n)}}function Si(e,t,n,i,a,o){$i(e,t,n,i),yi(e,t,n,i,a,o),mi(i),i.$$parserName="email",i.$validators.email=function(e,t){var n=e||t;return i.$isEmpty(n)||ao.test(n)}}function xi(e,t,n,i){v(n.name)&&t.attr("name",l());var a=function(a){t[0].checked&&e.$apply(function(){i.$setViewValue(n.value,a&&a.type)})};t.on("click",a),i.$render=function(){var e=n.value;t[0].checked=e==i.$viewValue},n.$observe("value",i.$render)}function Mi(e,t,n,a,o){var r;if(y(a)){if(r=e(a),!r.constant)throw i("ngModel")("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,a);return r(t)}return o}function Ti(e,t,n,i,a,o,r,s){var c=Mi(s,e,"ngTrueValue",n.ngTrueValue,!0),l=Mi(s,e,"ngFalseValue",n.ngFalseValue,!1),u=function(n){e.$apply(function(){i.$setViewValue(t[0].checked,n&&n.type)})};t.on("click",u),i.$render=function(){t[0].checked=i.$viewValue},i.$isEmpty=function(e){return e!==c},i.$formatters.push(function(e){return U(e,c)}),i.$parsers.push(function(e){return e?c:l})}function Ei(e,t){return e="ngClass"+e,["$animate",function(n){function i(e,t){var n=[];e:for(var i=0;i<e.length;i++){for(var a=e[i],o=0;o<t.length;o++)if(a==t[o])continue e;n.push(a)}return n}function a(e){if(Ki(e))return e;if(b(e))return e.split(" ");if(_(e)){var t=[];return o(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t}return e}return{restrict:"AC",link:function(r,s,c){function l(e){var t=d(e,1);c.$addClass(t)}function u(e){var t=d(e,-1);c.$removeClass(t)}function d(e,t){var n=s.data("$classCounts")||{},i=[];return o(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&i.push(e))}),s.data("$classCounts",n),i.join(" ")}function p(e,t){var a=i(t,e),o=i(e,t);a=d(a,1),o=d(o,-1),a&&a.length&&n.addClass(s,a),o&&o.length&&n.removeClass(s,o)}function h(e){if(t===!0||r.$index%2===t){var n=a(e||[]);if(f){if(!U(e,f)){var i=a(f);p(i,n)}}else l(n)}f=O(e)}var f;r.$watch(c[e],h,!0),c.$observe("class",function(){h(r.$eval(c[e]))}),"ngClass"!==e&&r.$watch("$index",function(n,i){var o=1&n;if(o!==(1&i)){var s=a(r.$eval(c[e]));o===t?l(s):u(s)}})}}}]}var Ai=/^\/(.+)\/([a-z]*)$/,Di="validity",Ii=function(e){return b(e)?e.toLowerCase():e},Pi=Object.prototype.hasOwnProperty,Ni=function(e){return b(e)?e.toUpperCase():e},Li=function(e){return b(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Fi=function(e){return b(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(-33&e.charCodeAt(0))}):e};"i"!=="I".toLowerCase()&&(Ii=Li,Ni=Fi);var Bi,Oi,Ui,Ri,qi=[].slice,Hi=[].push,ji=Object.prototype.toString,Vi=i("ng"),zi=e.angular||(e.angular={}),Wi=0;Bi=p((/msie (\d+)/.exec(Ii(navigator.userAgent))||[])[1]),isNaN(Bi)&&(Bi=p((/trident\/.*; rv:(\d+)/.exec(Ii(navigator.userAgent))||[])[1])),f.$inject=[],g.$inject=[];var Gi,Ki=Array.isArray,Xi=function(e){return b(e)?e.trim():e},Yi=function(){if(y(Yi.isActive_))return Yi.isActive_;var e=!(!t.querySelector("[ng-csp]")&&!t.querySelector("[data-ng-csp]"));if(!e)try{new Function("")}catch(n){e=!0}return Yi.isActive_=e},Zi=["ng-","data-ng-","ng:","x-ng-"],Qi=/[A-Z]/g,Ji=!1,ea={full:"1.3.0-rc.0",major:1,minor:3,dot:0,codeName:"sonic-boltification"};_t.expando="ng339";var ta=_t.cache={},na=1,ia=function(e,t,n){e.addEventListener(t,n,!1)},aa=function(e,t,n){e.removeEventListener(t,n,!1)};_t._data=function(e){return this.cache[e[this.expando]]||{}};var oa=/([\:\-\_]+(.))/g,ra=/^moz([A-Z])/,sa={mouseleave:"mouseout",mouseenter:"mouseover"},ca=i("jqLite"),la=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ua=/<|&#?\w+;/,da=/<([\w:]+)/,pa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ha={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ha.optgroup=ha.option,ha.tbody=ha.tfoot=ha.colgroup=ha.caption=ha.thead,ha.th=ha.td;var fa=_t.prototype={ready:function(n){function i(){a||(a=!0,n())}var a=!1;"complete"===t.readyState?setTimeout(i):(this.on("DOMContentLoaded",i),_t(e).on("load",i),this.on("DOMContentLoaded",i))},toString:function(){var e=[];return o(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return Oi(e>=0?this[e]:this[this.length+e])},length:0,push:Hi,sort:[].sort,splice:[].splice},ga={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){ga[Ii(e)]=e});var ma={};o("input,select,option,textarea,button,form,details".split(","),function(e){ma[e]=!0});var va={ngMinlength:"minlength",ngMaxlength:"maxlength",ngPattern:"pattern"};o({data:St,removeData:Ct},function(e,t){_t[t]=e}),o({data:St,inheritedData:Dt,scope:function(e){return Oi.data(e,"$scope")||Dt(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return Oi.data(e,"$isolateScope")||Oi.data(e,"$isolateScopeNoTemplate")},controller:At,injector:function(e){return Dt(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:xt,css:function(e,t,n){return t=ft(t),y(n)?void(e.style[t]=n):e.style[t]},attr:function(e,t,i){var a=Ii(t);if(ga[a]){if(!y(i))return e[t]||(e.attributes.getNamedItem(t)||f).specified?a:n;i?(e[t]=!0,e.setAttribute(t,a)):(e[t]=!1,e.removeAttribute(a))}else if(y(i))e.setAttribute(t,i);else if(e.getAttribute){var o=e.getAttribute(t,2);return null===o?n:o}},prop:function(e,t,n){return y(n)?void(e[t]=n):e[t]},text:function(){function e(e,t){if(v(t)){var n=e.nodeType;return 1===n||3===n?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(v(t)){if(e.multiple&&"select"===I(e)){var n=[];return o(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){return v(t)?e.innerHTML:(wt(e,!0),void(e.innerHTML=t))},empty:It},function(e,t){_t.prototype[t]=function(t,i){var a,o,r=this.length;if(e!==It&&(2==e.length&&e!==xt&&e!==At?t:i)===n){if(_(t)){for(a=0;r>a;a++)if(e===St)e(this[a],t);else for(o in t)e(this[a],o,t[o]);return this}for(var s=e.$dv,c=s===n?Math.min(r,1):r,l=0;c>l;l++){var u=e(this[l],t,i);s=s?s+u:u}return s}for(a=0;r>a;a++)e(this[a],t,i);return this}}),o({removeData:Ct,on:function ur(e,t,n,i){if(y(i))throw ca("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(mt(e)){var a=kt(e,!0),o=a.events,r=a.handle;r||(r=a.handle=Ft(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],c=s.length;c--;){t=s[c];var l=o[t];l||(o[t]=[],"mouseenter"===t||"mouseleave"===t?ur(e,sa[t],function(e){var n=this,i=e.relatedTarget;(!i||i!==n&&!n.contains(i))&&r(e,t)}):"$destroy"!==t&&ia(e,t,r),l=o[t]),l.push(n)}}},off:$t,one:function(e,t,n){e=Oi(e),e.on(t,function i(){e.off(t,n),e.off(t,i)}),e.on(t,n)},replaceWith:function(e,t){var n,i=e.parentNode;wt(e),o(new _t(t),function(t){n?i.insertBefore(t,n.nextSibling):i.replaceChild(t,e),n=t})},children:function(e){var t=[];return o(e.childNodes,function(e){1===e.nodeType&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(1===n||11===n){t=new _t(t);for(var i=0,a=t.length;a>i;i++){var o=t[i];e.appendChild(o)}}},prepend:function(e,t){if(1===e.nodeType){var n=e.firstChild;o(new _t(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){t=Oi(t).eq(0).clone()[0];var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)},remove:Pt,detach:function(e){Pt(e,!0)},after:function(e,t){var n=e,i=e.parentNode;t=new _t(t);for(var a=0,o=t.length;o>a;a++){var r=t[a];i.insertBefore(r,n.nextSibling),n=r}},addClass:Tt,removeClass:Mt,toggleClass:function(e,t,n){t&&o(t.split(" "),function(t){var i=n;v(i)&&(i=!xt(e,t)),(i?Tt:Mt)(e,t)})},parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:bt,triggerHandler:function(e,t,n){var i,a,r,s=t.type||t,c=kt(e),l=c&&c.events,u=l&&l[s];u&&(i={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopPropagation:f,type:s,target:e},t.type&&(i=d(i,t)),a=O(u),r=n?[i].concat(n):[i],o(a,function(t){t.apply(e,r)}))}},function(e,t){_t.prototype[t]=function(t,n,i){for(var a,o=0,r=this.length;r>o;o++)v(a)?(a=e(this[o],t,n,i),y(a)&&(a=Oi(a))):Et(a,e(this[o],t,n,i));return y(a)?a:this},_t.prototype.bind=_t.prototype.on,_t.prototype.unbind=_t.prototype.off}),Ot.prototype={put:function(e,t){this[Bt(e,this.nextUid)]=t},get:function(e){return this[Bt(e,this.nextUid)]},remove:function(e){var t=this[e=Bt(e,this.nextUid)];return delete this[e],t}};var ya=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,_a=/,/,ba=/^\s*(_?)(\S+?)\1\s*$/,wa=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,$a=i("$injector");qt.$$annotate=Rt;var Ca=i("$animate"),ka=["$provide",function(e){this.$$selectors={},this.register=function(t,n){var i=t+"-animation";if(t&&"."!=t.charAt(0))throw Ca("notcsel","Expecting class selector starting with '.' got '{0}'.",t);this.$$selectors[t.substr(1)]=i,e.factory(i,n)},this.classNameFilter=function(e){return 1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null),this.$$classNameFilter},this.$get=["$$q","$$asyncCallback",function(e,t){function n(){return i||(i=e.defer(),t(function(){i.resolve(),i=null})),i.promise}var i;return{enter:function(e,t,i){return i?i.after(e):t.prepend(e),n()},leave:function(e){return e.remove(),n()},move:function(e,t,n){return this.enter(e,t,n)},addClass:function(e,t){return t=b(t)?t:Ki(t)?t.join(" "):"",o(e,function(e){Tt(e,t)}),n()},removeClass:function(e,t){return t=b(t)?t:Ki(t)?t.join(" "):"",o(e,function(e){Mt(e,t)}),n()},setClass:function(e,t,i){return this.addClass(e,t),this.removeClass(e,i),n()},enabled:f,cancel:f}}]}],Sa=i("$compile");Kt.$inject=["$provide","$$sanitizeUriProvider"];var xa=/^(x[\:\-_]|data[\:\-_])/i,Ma=i("$interpolate"),Ta=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Ea={http:80,https:443,ftp:21},Aa=i("$location");wn.prototype=bn.prototype=_n.prototype={$$html5:!1,$$replace:!1,absUrl:$n("$$absUrl"),url:function(e,t){if(v(e))return this.$$url;var n=Ta.exec(e);return n[1]&&this.path(decodeURIComponent(n[1])),(n[2]||n[1])&&this.search(n[3]||""),this.hash(n[5]||"",t),this},protocol:$n("$$protocol"),host:$n("$$host"),port:$n("$$port"),path:Cn("$$path",function(e){return"/"==e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(b(e))this.$$search=K(e);else{if(!_(e))throw Aa("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");o(e,function(t,n){null==t&&delete e[n]}),this.$$search=e}break;default:v(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:Cn("$$hash",g),replace:function(){return this.$$replace=!0,this}};var Da=i("$parse"),Ia=Function.prototype.call,Pa=Function.prototype.apply,Na=Function.prototype.bind,La=d(ut(),{"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:f,"+":function(e,t,i,a){return i=i(e,t),a=a(e,t),y(i)?y(a)?i+a:i:y(a)?a:n},"-":function(e,t,n,i){return n=n(e,t),i=i(e,t),(y(n)?n:0)-(y(i)?i:0)},"*":function(e,t,n,i){return n(e,t)*i(e,t)},"/":function(e,t,n,i){return n(e,t)/i(e,t)},"%":function(e,t,n,i){return n(e,t)%i(e,t)},"^":function(e,t,n,i){return n(e,t)^i(e,t)},"=":f,"===":function(e,t,n,i){return n(e,t)===i(e,t)},"!==":function(e,t,n,i){return n(e,t)!==i(e,t)},"==":function(e,t,n,i){return n(e,t)==i(e,t)},"!=":function(e,t,n,i){return n(e,t)!=i(e,t)},"<":function(e,t,n,i){return n(e,t)<i(e,t)},">":function(e,t,n,i){return n(e,t)>i(e,t)},"<=":function(e,t,n,i){return n(e,t)<=i(e,t)},">=":function(e,t,n,i){return n(e,t)>=i(e,t)},"&&":function(e,t,n,i){return n(e,t)&&i(e,t)},"||":function(e,t,n,i){return n(e,t)||i(e,t)},"&":function(e,t,n,i){return n(e,t)&i(e,t)},"|":function(e,t,n,i){return i(e,t)(e,t,n(e,t))},"!":function(e,t,n){return!n(e,t)}}),Fa={n:"\n",f:"\f",r:"\r",t:" ",v:" ","'":"'",'"':'"'},Ba=function(e){this.options=e};Ba.prototype={constructor:Ba,lex:function(e){for(this.text=e,this.index=0,this.ch=n,this.tokens=[];this.index<this.text.length;)if(this.ch=this.text.charAt(this.index),this.is("\"'"))this.readString(this.ch);else if(this.isNumber(this.ch)||this.is(".")&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(this.ch))this.readIdent();else if(this.is("(){}[].,;:?"))this.tokens.push({index:this.index,text:this.ch}),this.index++;else if(this.isWhitespace(this.ch))this.index++;else{var t=this.ch+this.peek(),i=t+this.peek(2),a=La[this.ch],o=La[t],r=La[i];r?(this.tokens.push({index:this.index,text:i,fn:r}),this.index+=3):o?(this.tokens.push({index:this.index,text:t,fn:o}),this.index+=2):a?(this.tokens.push({index:this.index,text:this.ch,fn:a}),this.index+=1):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(e){return-1!==e.indexOf(this.ch)},peek:function(e){var t=e||1;return this.index+t<this.text.length?this.text.charAt(this.index+t):!1},isNumber:function(e){return e>="0"&&"9">=e},isWhitespace:function(e){return" "===e||"\r"===e||" "===e||"\n"===e||" "===e||" "===e},isIdent:function(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e||"$"===e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var i=y(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw Da("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,i,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=Ii(this.text.charAt(this.index));if("."==n||this.isNumber(n))e+=n;else{var i=this.peek();if("e"==n&&this.isExpOperator(i))e+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"==e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!=e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}e=1*e,this.tokens.push({index:t,text:e,constant:!0,fn:function(){return e}})},readIdent:function(){for(var e,t,i,a,o=this,r="",s=this.index;this.index<this.text.length&&(a=this.text.charAt(this.index),"."===a||this.isIdent(a)||this.isNumber(a));)"."===a&&(e=this.index),r+=a,this.index++;if(e&&"."===r[r.length-1]&&(this.index--,r=r.slice(0,-1),e=r.lastIndexOf("."),-1===e&&(e=n)),e)for(t=this.index;t<this.text.length;){if(a=this.text.charAt(t),"("===a){i=r.substr(e-s+1),r=r.substr(0,e-s),this.index=t;break}if(!this.isWhitespace(a))break;t++}var c={index:s,text:r},l=La[r];if(l)c.fn=l,c.constant=!0;else{var u=Dn(r,this.options,this.text);c.fn=d(function(e,t){return u(e,t)},{assign:function(e,t){return En(e,r,t,o.text)}})}this.tokens.push(c),i&&(this.tokens.push({index:e,text:"."}),this.tokens.push({index:e+1,text:i}))},readString:function(e){var t=this.index;this.index++;for(var n="",i=e,a=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(i+=o,a){if("u"===o){var r=this.text.substring(this.index+1,this.index+5);r.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+r+"]"),this.index+=4,n+=String.fromCharCode(parseInt(r,16))}else{var s=Fa[o];n+=s||o}a=!1}else if("\\"===o)a=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:i,string:n,constant:!0,fn:function(){return n}});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var Oa=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n};Oa.ZERO=d(function(){return 0},{constant:!0}),Oa.prototype={constructor:Oa,parse:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.statements();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t.literal=!!t.literal,t.constant=!!t.constant,t},primary:function(){var e;if(this.expect("("))e=this.filterChain(),this.consume(")");else if(this.expect("["))e=this.arrayDeclaration();else if(this.expect("{"))e=this.object();else{var t=this.expect();e=t.fn,e||this.throwError("not a primary expression",t),t.constant&&(e.constant=!0,e.literal=!0)}for(var n,i;n=this.expect("(","[",".");)"("===n.text?(e=this.functionCall(e,i),i=null):"["===n.text?(i=e,e=this.objectIndex(e)):"."===n.text?(i=e,e=this.fieldAccess(e)):this.throwError("IMPOSSIBLE");return e},throwError:function(e,t){throw Da("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},peekToken:function(){if(0===this.tokens.length)throw Da("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,i){if(this.tokens.length>0){var a=this.tokens[0],o=a.text;if(o===e||o===t||o===n||o===i||!e&&!t&&!n&&!i)return a}return!1},expect:function(e,t,n,i){var a=this.peek(e,t,n,i);return a?(this.tokens.shift(),a):!1},consume:function(e){this.expect(e)||this.throwError("is unexpected, expecting ["+e+"]",this.peek())},unaryFn:function(e,t){return d(function(n,i){return e(n,i,t)},{constant:t.constant})},ternaryFn:function(e,t,n){return d(function(i,a){return e(i,a)?t(i,a):n(i,a)},{constant:e.constant&&t.constant&&n.constant})},binaryFn:function(e,t,n){return d(function(i,a){return t(i,a,e,n)},{constant:e.constant&&n.constant})},statements:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.filterChain()),!this.expect(";"))return 1===e.length?e[0]:function(t,n){for(var i,a=0;a<e.length;a++){var o=e[a];o&&(i=o(t,n))}return i}},filterChain:function(){for(var e,t=this.expression();;){if(!(e=this.expect("|")))return t;t=this.binaryFn(t,e.fn,this.filter())}},filter:function(){var e,t,i=this.expect(),a=this.$filter(i.text);if(this.peek(":"))for(e=[],t=[];this.expect(":");)e.push(this.expression());return m(function(i,o,r){if(t){t[0]=r;for(var s=e.length;s--;)t[s+1]=e[s](i,o);return a.apply(n,t)}return a(r)})},expression:function(){return this.assignment()},assignment:function(){var e,t,n=this.ternary();return(t=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,t.index)+"] can not be assigned to",t),e=this.ternary(),function(t,i){return n.assign(t,e(t,i),i)}):n},ternary:function(){var e,t,n=this.logicalOR();return(t=this.expect("?"))?(e=this.assignment(),(t=this.expect(":"))?this.ternaryFn(n,e,this.assignment()):void this.throwError("expected :",t)):n},logicalOR:function(){for(var e,t=this.logicalAND();;){if(!(e=this.expect("||")))return t;t=this.binaryFn(t,e.fn,this.logicalAND())}},logicalAND:function(){var e,t=this.equality();return(e=this.expect("&&"))&&(t=this.binaryFn(t,e.fn,this.logicalAND())),t},equality:function(){var e,t=this.relational();return(e=this.expect("==","!=","===","!=="))&&(t=this.binaryFn(t,e.fn,this.equality())),t},relational:function(){var e,t=this.additive();return(e=this.expect("<",">","<=",">="))&&(t=this.binaryFn(t,e.fn,this.relational())),t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t=this.binaryFn(t,e.fn,this.multiplicative());return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t=this.binaryFn(t,e.fn,this.unary());return t},unary:function(){var e;return this.expect("+")?this.primary():(e=this.expect("-"))?this.binaryFn(Oa.ZERO,e.fn,this.unary()):(e=this.expect("!"))?this.unaryFn(e.fn,this.unary()):this.primary()},fieldAccess:function(e){var t=this,n=this.expect().text,i=Dn(n,this.options,this.text);return d(function(t,n,a){return i(a||e(t,n))},{assign:function(i,a,o){var r=e(i,o);return r||e.assign(i,r={}),En(r,n,a,t.text)}})},objectIndex:function(e){var t=this,i=this.expression();return this.consume("]"),d(function(a,o){var r,s=e(a,o),c=i(a,o);return xn(c,t.text),s?r=Mn(s[c],t.text):n},{assign:function(n,a,o){var r=xn(i(n,o),t.text),s=Mn(e(n,o),t.text);return s||e.assign(n,s={}),s[r]=a}})},functionCall:function(e,t){var n=[];if(")"!==this.peekToken().text)do n.push(this.expression());while(this.expect(","));this.consume(")");var i=this.text,a=n.length?[]:null;return function(o,r){var s=t?t(o,r):o,c=e(o,r,s)||f;if(a)for(var l=n.length;l--;)a[l]=n[l](o,r);Mn(s,i),Tn(c,i);var u=c.apply?c.apply(s,a):c(a[0],a[1],a[2],a[3],a[4]);return Mn(u,i)}},arrayDeclaration:function(){var e=[],t=!0;if("]"!==this.peekToken().text)do{if(this.peek("]"))break;var n=this.expression();e.push(n),n.constant||(t=!1)}while(this.expect(","));return this.consume("]"),d(function(t,n){for(var i=[],a=0;a<e.length;a++)i.push(e[a](t,n));return i},{literal:!0,constant:t})},object:function(){var e=[],t=!0;if("}"!==this.peekToken().text)do{if(this.peek("}"))break;var n=this.expect(),i=n.string||n.text;this.consume(":");var a=this.expression();e.push({key:i,value:a}),a.constant||(t=!1)}while(this.expect(","));return this.consume("}"),d(function(t,n){for(var i={},a=0;a<e.length;a++){var o=e[a];i[o.key]=o.value(t,n)}return i},{literal:!0,constant:t})}};var Ua=ut(),Ra=i("$sce"),qa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Sa=i("$compile"),Ha=t.createElement("a"),ja=Kn(e.location.href,!0);Zn.$inject=["$provide"],Jn.$inject=["$locale"],ei.$inject=["$locale"];var Va=".",za={yyyy:ii("FullYear",4),yy:ii("FullYear",2,0,!0),y:ii("FullYear",1),MMMM:ai("Month"),MMM:ai("Month",!0),MM:ii("Month",2,1),M:ii("Month",1,1),dd:ii("Date",2),d:ii("Date",1),HH:ii("Hours",2),H:ii("Hours",1),hh:ii("Hours",2,-12),h:ii("Hours",1,-12),mm:ii("Minutes",2),m:ii("Minutes",1),ss:ii("Seconds",2),s:ii("Seconds",1),sss:ii("Milliseconds",3),EEEE:ai("Day"),EEE:ai("Day",!0),a:li,Z:oi,ww:ci(2),w:ci(1)},Wa=/((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|w+))(.*)/,Ga=/^\-?\d+$/;ui.$inject=["$locale"];var Ka=m(Ii),Xa=m(Ni);hi.$inject=["$parse"];var Ya=m({restrict:"E",compile:function(e,n){return 8>=Bi&&(n.href||n.name||n.$set("href",""),e.append(t.createComment("IE fix"))),n.href||n.xlinkHref||n.name?void 0:function(e,t){var n="[object SVGAnimatedString]"===ji.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}),Za={};o(ga,function(e,t){if("multiple"!=e){var n=Xt("ng-"+t);Za[n]=function(){return{restrict:"A",priority:100,link:function(e,i,a){e.$watch(a[n],function(e){a.$set(t,!!e)})}}}}}),o(va,function(e,t){Za[t]=function(){return{priority:100,link:function(e,n,i){if("ngPattern"===t&&"/"==i.ngPattern.charAt(0)){var a=i.ngPattern.match(Ai);if(a)return void i.$set("ngPattern",new RegExp(a[1],a[2]))}e.$watch(i[t],function(e){i.$set(t,e)})}}}}),o(["src","srcset","href"],function(e){var t=Xt("ng-"+e);Za[t]=function(){return{priority:99,link:function(n,i,a){var o=e,r=e;"href"===e&&"[object SVGAnimatedString]"===ji.call(i.prop("href"))&&(r="xlinkHref",a.$attr[r]="xlink:href",o=null),a.$observe(t,function(t){return t?(a.$set(r,t),void(Bi&&o&&i.prop(o,a[r]))):void("href"===e&&a.$set(r,null))})}}}});var Qa={$addControl:f,$removeControl:f,$setValidity:f,$$setPending:f,$setDirty:f,$setPristine:f,$setSubmitted:f,$$clearControlValidity:f},Ja="ng-submitted";gi.$inject=["$element","$attrs","$scope","$animate"];var eo=function(e){return["$timeout",function(t){var i={name:"form",restrict:e?"EAC":"E",controller:gi,compile:function(){return{pre:function(e,i,a,o){if(!a.action){var r=function(t){e.$apply(function(){o.$commitViewValue(),o.$setSubmitted()}),t.preventDefault?t.preventDefault():t.returnValue=!1};ia(i[0],"submit",r),i.on("$destroy",function(){t(function(){aa(i[0],"submit",r)},0,!1)})}var s=i.parent().controller("form"),c=a.name||a.ngForm;c&&En(e,c,o,c),s&&i.on("$destroy",function(){s.$removeControl(o),c&&En(e,c,n,c),d(o,Qa)})}}}};return i}]},to=eo(),no=eo(!0),io=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,ao=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,oo=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,ro=/^(\d{4})-(\d{2})-(\d{2})$/,so=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d))?$/,co=/^(\d{4})-W(\d\d)$/,lo=/^(\d{4})-(\d\d)$/,uo=/^(\d\d):(\d\d)(?::(\d\d))?$/,po=/(\s+|^)default(\s+|$)/,ho=new i("ngModel"),fo={text:vi,date:wi("date",ro,bi(ro,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":wi("datetimelocal",so,bi(so,["yyyy","MM","dd","HH","mm","ss"]),"yyyy-MM-ddTHH:mm:ss"),time:wi("time",uo,bi(uo,["HH","mm","ss"]),"HH:mm:ss"),week:wi("week",co,_i,"yyyy-Www"),month:wi("month",lo,bi(lo,["yyyy","MM"]),"yyyy-MM"),number:Ci,url:ki,email:Si,radio:xi,checkbox:Ti,hidden:f,button:f,submit:f,reset:f,file:f},go=["$browser","$sniffer","$filter","$parse",function(e,t,n,i){return{restrict:"E",require:["?ngModel"],link:function(a,o,r,s){s[0]&&(fo[Ii(r.type)]||fo.text)(a,o,r,s[0],t,e,n,i)}}}],mo="ng-valid",vo="ng-invalid",yo="ng-pristine",_o="ng-dirty",bo="ng-untouched",wo="ng-touched",$o="ng-pending",Co=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout",function(e,t,i,a,r,s,c){function l(e,t){t=t?"-"+it(t,"-"):"",s.removeClass(a,(e?vo:mo)+t),s.addClass(a,(e?mo:vo)+t)}this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$validators={},this.$asyncValidators={},this.$validators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$name=i.name;var u=r(i.ngModel),d=u.assign,p=null,h=this;this.$$setOptions=function(e){if(h.$options=e,!(d||e&&e.getterSetter))throw ho("nonassign","Expression '{0}' is non-assignable. Element: {1}",i.ngModel,W(a))},this.$render=f,this.$isEmpty=function(e){return v(e)||""===e||null===e||e!==e};var g=a.inheritedData("$formController")||Qa,m=0,_=0,b=this.$error={};a.addClass(yo).addClass(bo),l(!0),this.$$clearValidity=function(){s.removeClass(a,$o),o(h.$error,function(e,t){var n=it(t,"-");s.removeClass(a,mo+n),s.removeClass(a,vo+n)}),h.$pending&&h.$$clearPending(),m=0,b=h.$error={},g.$$clearControlValidity(h)},this.$$clearPending=function(){_=0,h.$pending=n,s.removeClass(a,$o)},this.$$setPending=function(e,t,i){function o(t){return function(){var n=h.$viewValue||"";h.$pending&&h.$pending[e]&&i===n&&(_--,delete h.$pending[e],h.$setValidity(e,t),0===_&&(h.$$clearPending(),h.$$updateValidModelValue(n),h.$$writeModelToScope()))}}h.$pending=h.$pending||{},zi.isUndefined(h.$pending[e])&&(h.$pending[e]=!0,_++),h.$valid=h.$invalid=n,g.$$setPending(e,h),s.addClass(a,$o),s.removeClass(a,vo),s.removeClass(a,mo),i=i||"",t.then(o(!0),o(!1))},this.$setValidity=function(e,t){(h.$pending||b[e]!==!t)&&(t?(b[e]&&m--,m||_||(l(!0),h.$valid=!0,h.$invalid=!1)):b[e]||(m++,_||(l(!1),h.$invalid=!0,h.$valid=!1)),b[e]=!t,l(t,e),g.$setValidity(e,t,h))},this.$setPristine=function(){h.$dirty=!1,h.$pristine=!0,s.removeClass(a,_o),s.addClass(a,yo)},this.$setUntouched=function(){h.$touched=!1,h.$untouched=!0,s.setClass(a,bo,wo)},this.$setTouched=function(){h.$touched=!0,h.$untouched=!1,s.setClass(a,wo,bo)},this.$rollbackViewValue=function(){c.cancel(p),h.$viewValue=h.$$lastCommittedViewValue,h.$render()},this.$validate=function(){if(h.$modelValue===h.$modelValue){var e=h.$modelValue;h.$$runValidators(h.$$invalidModelValue||h.$modelValue,h.$viewValue),e!==h.$modelValue&&h.$$writeModelToScope()}},this.$$runValidators=function(e,t){function n(n,i){var a=!0;return o(n,function(n,o){var r=n(e,t);i(o,r),a=a&&r}),a}h.$pending&&h.$$clearPending();var i=n(h.$validators,function(e,t){h.$setValidity(e,t)});i&&n(h.$asyncValidators,function(t,n){if(!E(n))throw ho("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",n);h.$$setPending(t,n,e)}),h.$$updateValidModelValue(e)},this.$$updateValidModelValue=function(e){h.$modelValue=h.$valid?e:n,h.$$invalidModelValue=h.$valid?n:e},this.$commitViewValue=function(e){var t=h.$viewValue;if(c.cancel(p),e||h.$$lastCommittedViewValue!==t){h.$$lastCommittedViewValue=t,h.$pristine&&(h.$dirty=!0,h.$pristine=!1,s.removeClass(a,yo),s.addClass(a,_o),g.$setDirty());for(var i,o=t,r=0;r<h.$parsers.length;r++)if(o=h.$parsers[r](o),v(o)){i=!0;break}var l=h.$$parserName||"parse";i?(h.$$invalidModelValue=h.$modelValue=n,h.$$clearValidity(),h.$setValidity(l,!1),h.$$writeModelToScope()):h.$modelValue===o||!v(h.$$invalidModelValue)&&h.$$invalidModelValue==o||(h.$setValidity(l,!0),h.$$runValidators(o,t),h.$$writeModelToScope())}},this.$$writeModelToScope=function(){var n;h.$options&&h.$options.getterSetter&&C(n=u(e))?n(h.$modelValue):d(e,h.$modelValue),o(h.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}})},this.$setViewValue=function(e,t,n){h.$viewValue=e,(!h.$options||h.$options.updateOnDefault)&&h.$$debounceViewValueCommit(t,n)},this.$$debounceViewValueCommit=function(e,t){var n,i=0,a=h.$options;a&&y(a.debounce)&&(n=a.debounce,w(n)?i=n:w(n[e])?i=n[e]:w(n["default"])&&(i=n["default"])),c.cancel(p),i?p=c(function(){h.$commitViewValue(t)
},i):h.$commitViewValue(t)},e.$watch(function(){var t=u(e);if(h.$options&&h.$options.getterSetter&&C(t)&&(t=t()),h.$modelValue!==t&&(v(h.$$invalidModelValue)||h.$$invalidModelValue!=t)){for(var n=h.$formatters,i=n.length,a=t;i--;)a=n[i](a);h.$$runValidators(t,a),h.$viewValue!==a&&(h.$viewValue=h.$$lastCommittedViewValue=a,h.$render())}return t})}],ko=function(){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Co,link:{pre:function(e,t,n,i){var a=i[0],o=i[1]||Qa;a.$$setOptions(i[2]&&i[2].$options),o.$addControl(a),e.$on("$destroy",function(){o.$removeControl(a)})},post:function(e,t,n,i){var a=i[0];a.$options&&a.$options.updateOn&&t.on(a.$options.updateOn,function(t){e.$apply(function(){a.$$debounceViewValueCommit(t&&t.type)})}),t.on("blur",function(){a.$touched||e.$apply(function(){a.$setTouched()})})}}}},So=m({restrict:"A",require:"ngModel",link:function(e,t,n,i){i.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),xo=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){i&&(n.required=!0,i.$validators.required=function(e,t){return!n.required||!i.$isEmpty(t)},n.$observe("required",function(){i.$validate()}))}}},Mo=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,a,o){if(o){var r,s=a.ngPattern||a.pattern;a.$observe("pattern",function(e){if(b(e)&&e.length>0&&(e=new RegExp(e)),e&&!e.test)throw i("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,e,W(t));r=e||n,o.$validate()}),o.$validators.pattern=function(e){return o.$isEmpty(e)||v(r)||r.test(e)}}}}},To=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var a=0;n.$observe("maxlength",function(e){a=p(e)||0,i.$validate()}),i.$validators.maxlength=function(e,t){return i.$isEmpty(t)||t.length<=a}}}}},Eo=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var a=0;n.$observe("minlength",function(e){a=p(e)||0,i.$validate()}),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=a}}}}},Ao=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,i,a){var r=t.attr(i.$attr.ngList)||", ",s="false"!==i.ngTrim,c=s?Xi(r):r,l=function(e){if(!v(e)){var t=[];return e&&o(e.split(c),function(e){e&&t.push(s?Xi(e):e)}),t}};a.$parsers.push(l),a.$formatters.push(function(e){return Ki(e)?e.join(r):n}),a.$isEmpty=function(e){return!e||!e.length}}}},Do=/^(true|false|\d+)$/,Io=function(){return{restrict:"A",priority:100,compile:function(e,t){return Do.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},Po=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var i=this;this.$options=e.$eval(t.ngModelOptions),this.$options.updateOn!==n?(this.$options.updateOnDefault=!1,this.$options.updateOn=Xi(this.$options.updateOn.replace(po,function(){return i.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},No=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,i,a){e.$$addBindingInfo(i,a.ngBind),t.$watch(a.ngBind,function(e){i.text(e==n?"":e)})}}}}],Lo=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,i,a){var o=e(i.attr(a.$attr.ngBindTemplate));t.$$addBindingInfo(i,o.expressions),a.$observe("ngBindTemplate",function(e){i.text(e)})}}}}],Fo=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(i,a){var o=t(a.ngBindHtml),r=t(a.ngBindHtml,function(e){return(e||"").toString()});return n.$$addBindingClass(i),function(t,i,a){n.$$addBindingInfo(i,a.ngBindHtml),t.$watch(r,function(){i.html(e.getTrustedHtml(o(t))||"")})}}}}],Bo=Ei("",!0),Oo=Ei("Odd",0),Uo=Ei("Even",1),Ro=fi({compile:function(e,t){t.$set("ngCloak",n),e.removeClass("ng-cloak")}}),qo=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ho={},jo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=Xt("ng-"+e);Ho[t]=["$parse",function(n){return{restrict:"A",compile:function(i,a){var o=n(a[t]);return function(t,n){var i=Ii(e);n.on(i,function(e){var n=function(){o(t,{$event:e})};jo[i]&&t.$$phase?t.$evalAsync(n):t.$apply(n)})}}}}]});var Vo=["$animate",function(e){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,a,o,r){var s,c,l;n.$watch(a.ngIf,function(n){n?c||r(function(n,o){c=o,n[n.length++]=t.createComment(" end ngIf: "+a.ngIf+" "),s={clone:n},e.enter(n,i.parent(),i)}):(l&&(l.remove(),l=null),c&&(c.$destroy(),c=null),s&&(l=lt(s.clone),e.leave(l).then(function(){l=null}),s=null))})}}}],zo=["$templateRequest","$anchorScroll","$animate","$sce",function(e,t,n,i){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:zi.noop,compile:function(a,o){var r=o.ngInclude||o.src,s=o.onload||"",c=o.autoscroll;return function(a,o,l,u,d){var p,h,f,g=0,m=function(){h&&(h.remove(),h=null),p&&(p.$destroy(),p=null),f&&(n.leave(f).then(function(){h=null}),h=f,f=null)};a.$watch(i.parseAsResourceUrl(r),function(i){var r=function(){!y(c)||c&&!a.$eval(c)||t()},l=++g;i?(e(i,!0).then(function(e){if(l===g){var t=a.$new();u.template=e;var i=d(t,function(e){m(),n.enter(e,null,o).then(r)});p=t,f=i,p.$emit("$includeContentLoaded"),a.$eval(s)}},function(){l===g&&(m(),a.$emit("$includeContentError"))}),a.$emit("$includeContentRequested")):(m(),u.template=null)})}}}}],Wo=["$compile",function(e){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(t,n,i,a){n.html(a.template),e(n.contents())(t)}}}],Go=fi({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Ko=fi({terminal:!0,priority:1e3}),Xo=["$locale","$interpolate",function(e,t){var n=/{}/g;return{restrict:"EA",link:function(i,a,r){var s=r.count,c=r.$attr.when&&a.attr(r.$attr.when),l=r.offset||0,u=i.$eval(c)||{},d={},p=t.startSymbol(),h=t.endSymbol(),f=/^when(Minus)?(.+)$/;o(r,function(e,t){f.test(t)&&(u[Ii(t.replace("when","").replace("Minus","-"))]=a.attr(r.$attr[t]))}),o(u,function(e,i){d[i]=t(e.replace(n,p+s+"-"+l+h))}),i.$watch(function(){var t=parseFloat(i.$eval(s));return isNaN(t)?"":(t in u||(t=e.pluralCat(t-l)),d[t](i))},function(e){a.text(e)})}}}],Yo=["$parse","$animate",function(e,r){var s="$$NG_REMOVED",c=i("ngRepeat"),l=function(e,t,n,i,a,o,r){e[n]=i,a&&(e[a]=o),e.$index=t,e.$first=0===t,e.$last=t===r-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0===(1&t))},u=function(e){return e.clone[0]},d=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(i,p){var h=p.ngRepeat,f=t.createComment(" end ngRepeat: "+h+" "),g=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!g)throw c("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",h);var m=g[1],v=g[2],y=g[3],_=g[4];if(g=m.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/),!g)throw c("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",m);var b=g[3]||g[1],w=g[2];if(y&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(y)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent)$/.test(y)))throw c("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",y);var $,C,k,S,x={$id:Bt};return _?$=e(_):(k=function(e,t){return Bt(t)},S=function(e){return e}),function(e,t,i,p,g){$&&(C=function(t,n,i){return w&&(x[w]=t),x[b]=n,x.$index=i,$(e,x)});var m=ut();e.$watchCollection(v,function(i){var p,v,_,$,x,M,T,E,A,D,I,P,N=t[0],L=ut();if(y&&(e[y]=i),a(i))A=i,E=C||k;else{E=C||S,A=[];for(var F in i)i.hasOwnProperty(F)&&"$"!=F.charAt(0)&&A.push(F);A.sort()}for($=A.length,I=new Array($),p=0;$>p;p++)if(x=i===A?p:A[p],M=i[x],T=E(x,M,p),m[T])D=m[T],delete m[T],L[T]=D,I[p]=D;else{if(L[T])throw o(I,function(e){e&&e.scope&&(m[e.id]=e)}),c("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",h,T,V(M));I[p]={id:T,scope:n,clone:n},L[T]=!0}for(var B in m){if(D=m[B],P=lt(D.clone),r.leave(P),P[0].parent)for(p=0,v=P.length;v>p;p++)P[p][s]=!0;D.scope.$destroy()}for(p=0;$>p;p++)if(x=i===A?p:A[p],M=i[x],D=I[p],D.scope){_=N;do _=_.nextSibling;while(_&&_[s]);u(D)!=_&&r.move(lt(D.clone),null,Oi(N)),N=d(D),l(D.scope,p,b,M,w,x,$)}else g(function(e,t){D.scope=t;var n=f.cloneNode();e[e.length++]=n,r.enter(e,null,Oi(N)),N=n,D.clone=e,L[D.id]=D,l(D.scope,p,b,M,w,x,$)});m=L})}}}}],Zo=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngShow,function(t){e[t?"removeClass":"addClass"](n,"ng-hide")})}}}],Qo=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngHide,function(t){e[t?"addClass":"removeClass"](n,"ng-hide")})}}}],Jo=fi(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&o(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),er=["$animate",function(e){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,i,a,r){var s=a.ngSwitch||a.on,c=[],l=[],u=[],d=[];n.$watch(s,function(i){var s,p;for(s=0,p=u.length;p>s;++s)e.cancel(u[s]);for(u.length=0,s=0,p=d.length;p>s;++s){var h=lt(l[s].clone);d[s].$destroy();var f=u[s]=e.leave(h);f.then(function(){u.splice(s,1)})}l.length=0,d.length=0,(c=r.cases["!"+i]||r.cases["?"])&&(n.$eval(a.change),o(c,function(n){n.transclude(function(i,a){d.push(a);var o=n.element;i[i.length++]=t.createComment(" end ngSwitchWhen: ");var r={clone:i};l.push(r),e.enter(i,o.parent(),o)})}))})}}}],tr=fi({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,a){i.cases["!"+n.ngSwitchWhen]=i.cases["!"+n.ngSwitchWhen]||[],i.cases["!"+n.ngSwitchWhen].push({transclude:a,element:t})}}),nr=fi({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,a){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:a,element:t})}}),ir=fi({restrict:"EAC",link:function(e,t,n,a,o){if(!o)throw i("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",W(t));o(function(e){t.empty(),t.append(e)})}}),ar=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"==n.type){var i=n.id,a=t[0].text;e.put(i,a)}}}}],or=i("ngOptions"),rr=m({restrict:"A",terminal:!0}),sr=["$compile","$parse",function(e,i){var a=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,s={$setViewValue:f};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(e,t,n){var i,a,o=this,r={},c=s;o.databound=n.ngModel,o.init=function(e,t,n){c=e,i=t,a=n},o.addOption=function(t,n){st(t,'"option value"'),r[t]=!0,c.$viewValue==t&&(e.val(t),a.parent()&&a.remove()),n[0].hasAttribute("selected")&&(n[0].selected=!0)},o.removeOption=function(e){this.hasOption(e)&&(delete r[e],c.$viewValue==e&&this.renderUnknownOption(e))},o.renderUnknownOption=function(t){var n="? "+Bt(t)+" ?";a.val(n),e.prepend(a),e.val(n),a.prop("selected",!0)},o.hasOption=function(e){return r.hasOwnProperty(e)},t.$on("$destroy",function(){o.renderUnknownOption=f})}],link:function(s,c,l,u){function d(e,t,n,i){n.$render=function(){var e=n.$viewValue;i.hasOption(e)?(S.parent()&&S.remove(),t.val(e),""===e&&f.prop("selected",!0)):v(e)&&f?t.val(""):i.renderUnknownOption(e)},t.on("change",function(){e.$apply(function(){S.parent()&&S.remove(),n.$setViewValue(t.val())})})}function p(e,t,n){var i;n.$render=function(){var e=new Ot(n.$viewValue);o(t.find("option"),function(t){t.selected=y(e.get(t.value))})},e.$watch(function(){U(i,n.$viewValue)||(i=O(n.$viewValue),n.$render())}),t.on("change",function(){e.$apply(function(){var e=[];o(t.find("option"),function(t){t.selected&&e.push(t.value)}),n.$setViewValue(e)})})}function h(t,o,s){function c(){var e=!1;if(_){var n=s.$modelValue;if(S&&Ki(n)){e=new Ot([]);for(var i={},a=0;a<n.length;a++)i[p]=n[a],e.put(S(t,i),n[a])}else e=new Ot(n)}return e}function l(){$=!1;var e,n,i,a,l,u,v,b,M,T,E,A,D,I,P,N={"":[]},L=[""],F=s.$modelValue,B=m(t)||[],O=h?r(B):B,U={},R=c();for(E=0;M=O.length,M>E;E++){if(v=E,h){if(v=O[E],"$"===v.charAt(0))continue;U[h]=v}if(U[p]=B[v],e=f(t,U)||"",(n=N[e])||(n=N[e]=[],L.push(e)),_)A=y(R.remove(S?S(t,U):g(t,U)));else{if(S){var q={};q[p]=F,A=S(t,q)===S(t,U)}else A=F===g(t,U);R=R||A}P=d(t,U),P=y(P)?P:"",n.push({id:S?S(t,U):h?O[E]:E,label:P,selected:A})}for(_||(w||null===F?N[""].unshift({id:"",label:"",selected:!R}):R||N[""].unshift({id:"?",label:"",selected:!0})),T=0,b=L.length;b>T;T++){for(e=L[T],n=N[e],x.length<=T?(a={element:k.clone().attr("label",e),label:n.label},l=[a],x.push(l),o.append(a.element)):(l=x[T],a=l[0],a.label!=e&&a.element.attr("label",a.label=e)),D=null,E=0,M=n.length;M>E;E++)i=n[E],(u=l[E+1])?(D=u.element,u.label!==i.label&&D.text(u.label=i.label),u.id!==i.id&&D.val(u.id=i.id),D[0].selected!==i.selected&&(D.prop("selected",u.selected=i.selected),Bi&&D.prop("selected",u.selected))):(""===i.id&&w?I=w:(I=C.clone()).val(i.id).prop("selected",i.selected).attr("selected",i.selected).text(i.label),l.push(u={element:I,label:i.label,id:i.id,selected:i.selected}),D?D.after(I):a.element.append(I),D=I);for(E++;l.length>E;)l.pop().element.remove()}for(;x.length>T;)x.pop()[0].element.remove()}var u;if(!(u=b.match(a)))throw or("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",b,W(o));var d=i(u[2]||u[1]),p=u[4]||u[6],h=u[5],f=i(u[3]||""),g=i(u[2]?u[1]:p),m=i(u[7]),v=u[8],S=v?i(u[8]):null,x=[[{element:o,label:""}]];w&&(e(w)(t),w.removeClass("ng-scope"),w.remove()),o.empty(),o.on("change",function(){t.$apply(function(){var e,i,a,r,c,u,d,f,v,y=m(t)||[],b={};if(_){for(a=[],u=0,f=x.length;f>u;u++)for(e=x[u],c=1,d=e.length;d>c;c++)if((r=e[c].element)[0].selected){if(i=r.val(),h&&(b[h]=i),S)for(v=0;v<y.length&&(b[p]=y[v],S(t,b)!=i);v++);else b[p]=y[i];a.push(g(t,b))}}else if(i=o.val(),"?"==i)a=n;else if(""===i)a=null;else if(S){for(v=0;v<y.length;v++)if(b[p]=y[v],S(t,b)==i){a=g(t,b);break}}else b[p]=y[i],h&&(b[h]=i),a=g(t,b);s.$setViewValue(a),l()})}),s.$render=l,t.$watchCollection(m,function(){$||(t.$$postDigest(l),$=!0)}),_&&t.$watchCollection(function(){return s.$modelValue},function(){$||(t.$$postDigest(l),$=!0)})}if(u[1]){for(var f,g=u[0],m=u[1],_=l.multiple,b=l.ngOptions,w=!1,$=!1,C=Oi(t.createElement("option")),k=Oi(t.createElement("optgroup")),S=C.clone(),x=0,M=c.children(),T=M.length;T>x;x++)if(""===M[x].value){f=w=M.eq(x);break}g.init(m,w,S),_&&(m.$isEmpty=function(e){return!e||0===e.length}),b?h(s,c,m):_?p(s,c,m):d(s,c,m,g)}}}}],cr=["$interpolate",function(e){var t={addOption:f,removeOption:f};return{restrict:"E",priority:100,compile:function(n,i){if(v(i.value)){var a=e(n.text(),!0);a||i.$set("value",n.text())}return function(e,n,i){var o="$selectController",r=n.parent(),s=r.data(o)||r.parent().data(o);s&&s.databound?n.prop("selected",!1):s=t,a?e.$watch(a,function(e,t){i.$set("value",e),t!==e&&s.removeOption(t),s.addOption(e,n)}):s.addOption(i.value,n),n.on("$destroy",function(){s.removeOption(i.value)})}}}}],lr=m({restrict:"E",terminal:!1});return e.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(at(),pt(zi),void Oi(t).ready(function(){J(t,et)}))}(window,document),!window.angular.$$csp()&&window.angular.element(document).find("head").prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-animate){display:none !important;}ng\\:form{display:block;}</style>'),function(e,t){"use strict";function n(){function e(e,n){return t.extend(new(t.extend(function(){},{prototype:e})),n)}function n(e,t){var n=t.caseInsensitiveMatch,i={originalPath:e,regexp:e},a=i.keys=[];return e=e.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(e,t,n,i){var o="?"===i?i:null,r="*"===i?i:null;return a.push({name:n,optional:!!o}),t=t||"",""+(o?"":t)+"(?:"+(o?t:"")+(r&&"(.+?)"||"([^/]+)")+(o||"")+")"+(o||"")}).replace(/([\/$\*])/g,"\\$1"),i.regexp=new RegExp("^"+e+"$",n?"i":""),i}var i={};this.when=function(e,a){if(i[e]=t.extend({reloadOnSearch:!0},a,e&&n(e,a)),e){var o="/"==e[e.length-1]?e.substr(0,e.length-1):e+"/";i[o]=t.extend({redirectTo:e},n(o,a))}return this},this.otherwise=function(e){return"string"==typeof e&&(e={redirectTo:e}),this.when(null,e),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function(n,a,o,r,c,l,u){function d(e,t){var n=t.keys,i={};if(!t.regexp)return null;var a=t.regexp.exec(e);if(!a)return null;for(var o=1,r=a.length;r>o;++o){var s=n[o-1],c=a[o];s&&c&&(i[s.name]=c)}return i}function p(){var e=h(),i=m.current;e&&i&&e.$$route===i.$$route&&t.equals(e.pathParams,i.pathParams)&&!e.reloadOnSearch&&!g?(i.params=e.params,t.copy(i.params,o),n.$broadcast("$routeUpdate",i)):(e||i)&&(g=!1,n.$broadcast("$routeChangeStart",e,i),m.current=e,e&&e.redirectTo&&(t.isString(e.redirectTo)?a.path(f(e.redirectTo,e.params)).search(e.params).replace():a.url(e.redirectTo(e.pathParams,a.path(),a.search())).replace()),r.when(e).then(function(){if(e){var n,i,a=t.extend({},e.resolve);return t.forEach(a,function(e,n){a[n]=t.isString(e)?c.get(e):c.invoke(e,null,null,n)}),t.isDefined(n=e.template)?t.isFunction(n)&&(n=n(e.params)):t.isDefined(i=e.templateUrl)&&(t.isFunction(i)&&(i=i(e.params)),i=u.getTrustedResourceUrl(i),t.isDefined(i)&&(e.loadedTemplateUrl=i,n=l(i))),t.isDefined(n)&&(a.$template=n),r.all(a)}}).then(function(a){e==m.current&&(e&&(e.locals=a,t.copy(e.params,o)),n.$broadcast("$routeChangeSuccess",e,i))},function(t){e==m.current&&n.$broadcast("$routeChangeError",e,i,t)}))}function h(){var n,o;return t.forEach(i,function(i){!o&&(n=d(a.path(),i))&&(o=e(i,{params:t.extend({},a.search(),n),pathParams:n}),o.$$route=i)}),o||i[null]&&e(i[null],{params:{},pathParams:{}})}function f(e,n){var i=[];return t.forEach((e||"").split(":"),function(e,t){if(0===t)i.push(e);else{var a=e.match(/(\w+)(.*)/),o=a[1];i.push(n[o]),i.push(a[2]||""),delete n[o]}}),i.join("")}var g=!1,m={routes:i,reload:function(){g=!0,n.$evalAsync(p)},updateParams:function(e){if(!this.current||!this.current.$$route)throw s("norout","Tried updating route when with no current route");var n={},i=this;t.forEach(Object.keys(e),function(t){i.current.pathParams[t]||(n[t]=e[t])}),e=t.extend({},this.current.params,e),a.path(f(this.current.$$route.originalPath,e)),a.search(t.extend({},a.search(),n))}};return n.$on("$locationChangeSuccess",p),m}]}function i(){this.$get=function(){return{}}}function a(e,n,i){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,o,r,s,c){function l(){h&&(h.remove(),h=null),d&&(d.$destroy(),d=null),p&&(i.leave(p).then(function(){h=null}),h=p,p=null)}function u(){var r=e.current&&e.current.locals,s=r&&r.$template;if(t.isDefined(s)){var u=a.$new(),h=e.current,m=c(u,function(e){i.enter(e,null,p||o).then(function(){!t.isDefined(f)||f&&!a.$eval(f)||n()}),l()});p=m,d=h.scope=u,d.$emit("$viewContentLoaded"),d.$eval(g)}else l()}var d,p,h,f=r.autoscroll,g=r.onload||"";a.$on("$routeChangeSuccess",u),u()}}}function o(e,t,n){return{restrict:"ECA",priority:-400,link:function(i,a){var o=n.current,r=o.locals;a.html(r.$template);var s=e(a.contents());if(o.controller){r.$scope=i;var c=t(o.controller,r);o.controllerAs&&(i[o.controllerAs]=c),a.data("$ngControllerController",c),a.children().data("$ngControllerController",c)}s(i)}}}var r=t.module("ngRoute",["ng"]).provider("$route",n),s=t.$$minErr("ngRoute");r.provider("$routeParams",i),r.directive("ngView",a),r.directive("ngView",o),a.$inject=["$route","$anchorScroll","$animate"],o.$inject=["$compile","$controller","$route"]}(window,window.angular),function(e,t,n){"use strict";t.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){var e="$$ngAnimateChildren";return function(n,i,a){var o=a.ngAnimateChildren;t.isString(o)&&0===o.length?i.data(e,!0):n.$watch(o,function(t){i.data(e,!!t)})}}).factory("$$animateReflow",["$$rAF","$document",function(e,t){var n=t[0].body;return function(t){return e(function(){n.offsetWidth+1;t()})}}]).config(["$provide","$animateProvider",function(i,a){function o(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType==h)return n}}function r(e){return e&&t.element(e)}function s(e){return t.element(o(e))}function c(e,t){return o(e)==o(t)}var l=t.noop,u=t.forEach,d=a.$$selectors,p=t.isArray,h=1,f="$$ngAnimateState",g="$$ngAnimateChildren",m="ng-animate",v={running:!0};i.decorator("$animate",["$delegate","$$q","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document","$templateRequest",function(e,n,i,h,y,_,b,w,$){function C(e,t){var n=e.data(f)||{};return t&&(n.running=!0,n.structural=!0,e.data(f,n)),n.disabled||n.running&&n.structural}function k(e){var t,i=n.defer();return i.promise.$$cancelFn=function(){t&&t()},b.$$postDigest(function(){t=e(function(){i.resolve()})}),i.promise}function S(e,t,n){n=n||{};var i={};u(t.add,function(e){e&&e.length&&(i[e]=i[e]||0,i[e]++)}),u(t.remove,function(e){e&&e.length&&(i[e]=i[e]||0,i[e]--)});var a=[];u(n,function(e,t){u(t.split(" "),function(t){a[t]=e})});var o=[],r=[];return u(i,function(t,n){var i=e.hasClass(n),s=a[n]||{};0>t?(i||"addClass"==s.event)&&r.push(n):t>0&&(i&&"removeClass"!=s.event||o.push(n))}),o.length+r.length>0&&[o.join(" "),r.join(" ")]}function x(e){if(e){var t=[],n={},a=e.substr(1).split(".");(h.transitions||h.animations)&&t.push(i.get(d[""]));for(var o=0;o<a.length;o++){var r=a[o],s=d[r];s&&!n[r]&&(t.push(i.get(s)),n[r]=!0)}return t}}function M(e,t,n){function i(e,t){var n=e[t],i=e["before"+t.charAt(0).toUpperCase()+t.substr(1)];return n||i?("leave"==t&&(i=n,n=null),b.push({event:t,fn:n}),v.push({event:t,fn:i}),!0):void 0}function a(t,i,a){function o(e){if(i){if((i[e]||l)(),++d<c.length)return;i=null}a()}var c=[];u(t,function(e){e.fn&&c.push(e)});var d=0;u(c,function(t,a){var c=function(){o(a)};switch(t.event){case"setClass":i.push(t.fn(e,r,s,c));break;case"addClass":i.push(t.fn(e,r||n,c));break;case"removeClass":i.push(t.fn(e,s||n,c));break;default:i.push(t.fn(e,c))}}),i&&0===i.length&&a()}var o=e[0];if(o){var r,s;p(n)&&(r=n[0],s=n[1],r?s?n=r+" "+s:(n=r,t="addClass"):(n=s,t="removeClass"));var c="setClass"==t,d=c||"addClass"==t||"removeClass"==t,h=e.attr("class"),f=h+" "+n;if(L(f)){var g=l,m=[],v=[],y=l,_=[],b=[],w=(" "+f).replace(/\s+/g,".");return u(x(w),function(e){var n=i(e,t);!n&&c&&(i(e,"addClass"),i(e,"removeClass"))}),{node:o,event:t,className:n,isClassBased:d,isSetClassOperation:c,before:function(e){g=e,a(v,m,function(){g=l,e()})},after:function(e){y=e,a(b,_,function(){y=l,e()})},cancel:function(){m&&(u(m,function(e){(e||l)(!0)}),g(!0)),_&&(u(_,function(e){(e||l)(!0)}),y(!0))}}}}}function T(e,n,i,a,o,r,s){function c(t){var a="$animate:"+t;w&&w[a]&&w[a].length>0&&_(function(){i.triggerHandler(a,{event:e,className:n})})}function d(){c("before")}function p(){c("after")}function h(){c("close"),s()}function g(){g.hasBeenRun||(g.hasBeenRun=!0,r())}function v(){if(!v.hasBeenRun){v.hasBeenRun=!0;var t=i.data(f);t&&(b&&b.isClassBased?A(i,n):(_(function(){var t=i.data(f)||{};N==t.index&&A(i,n,e)}),i.data(f,t))),h()}}var y=l,b=M(i,e,n);if(!b)return g(),d(),p(),v(),y;e=b.event,n=b.className;var w=t.element._data(b.node);if(w=w&&w.events,a||(a=o?o.parent():i.parent()),D(i,a))return g(),d(),p(),v(),y;var $=i.data(f)||{},C=$.active||{},k=$.totalActive||0,S=$.last,x=!1;if(k>0){var T=[];if(b.isClassBased){if("setClass"==S.event)T.push(S),A(i,n);else if(C[n]){var E=C[n];E.event==e?x=!0:(T.push(E),A(i,n))}}else if("leave"==e&&C["ng-leave"])x=!0;else{for(var I in C)T.push(C[I]);$={},A(i,!0)}T.length>0&&u(T,function(e){e.cancel()})}if(!b.isClassBased||b.isSetClassOperation||x||(x="addClass"==e==i.hasClass(n)),x)return g(),d(),p(),h(),y;C=$.active||{},k=$.totalActive||0,"leave"==e&&i.one("$destroy",function(){var e=t.element(this),n=e.data(f);if(n){var i=n.active["ng-leave"];i&&(i.cancel(),A(e,"ng-leave"))}}),i.addClass(m);var N=P++;return k++,C[n]=b,i.data(f,{last:b,active:C,index:N,totalActive:k}),d(),b.before(function(t){var a=i.data(f);t=t||!a||!a.active[n]||b.isClassBased&&a.active[n].event!=e,g(),t===!0?v():(p(),b.after(v))}),b.cancel}function E(e){var n=o(e);if(n){var i=t.isFunction(n.getElementsByClassName)?n.getElementsByClassName(m):n.querySelectorAll("."+m);u(i,function(e){e=t.element(e);var n=e.data(f);n&&n.active&&u(n.active,function(e){e.cancel()})})}}function A(e,t){if(c(e,y))v.disabled||(v.running=!1,v.structural=!1);else if(t){var n=e.data(f)||{},i=t===!0;!i&&n.active&&n.active[t]&&(n.totalActive--,delete n.active[t]),(i||!n.totalActive)&&(e.removeClass(m),e.removeData(f))}}function D(e,n){if(v.disabled)return!0;if(c(e,y))return v.running;var i,a,o;do{if(0===n.length)break;var r=c(n,y),s=r?v:n.data(f)||{};if(s.disabled)return!0;if(r&&(o=!0),i!==!1){var l=n.data(g);t.isDefined(l)&&(i=l)}a=a||s.running||s.last&&!s.last.isClassBased}while(n=n.parent());return!o||!i&&a}y.data(f,v);var I=b.$watch(function(){return $.totalPendingRequests},function(e){0===e&&(I(),b.$$postDigest(function(){b.$$postDigest(function(){v.running=!1})}))}),P=0,N=a.classNameFilter(),L=N?function(e){return N.test(e)}:function(){return!0};return{enter:function(n,i,a){return n=t.element(n),i=r(i),a=r(a),C(n,!0),e.enter(n,i,a),k(function(e){return T("enter","ng-enter",s(n),i,a,l,e)})},leave:function(n){return n=t.element(n),E(n),C(n,!0),this.enabled(!1,n),k(function(t){return T("leave","ng-leave",s(n),null,null,function(){e.leave(n)},t)})},move:function(n,i,a){return n=t.element(n),i=r(i),a=r(a),E(n),C(n,!0),e.move(n,i,a),k(function(e){return T("move","ng-move",s(n),i,a,l,e)})},addClass:function(e,t){return this.setClass(e,t,[])},removeClass:function(e,t){return this.setClass(e,[],t)},setClass:function(n,i,a){var o="$$animateClasses";if(n=t.element(n),n=s(n),C(n))return e.setClass(n,i,a);i=p(i)?i:i.split(" "),a=p(a)?a:a.split(" ");var r=n.data(o);return r?(r.add=r.add.concat(i),r.remove=r.remove.concat(a),r.promise):(n.data(o,r={add:i,remove:a}),r.promise=k(function(t){var i=n.data(o);n.removeData(o);var a=n.data(f)||{},r=S(n,i,a.active);return r?T("setClass",r,n,null,null,function(){e.setClass(n,r[0],r[1])},t):t()}))},cancel:function(e){e.$$cancelFn()},enabled:function(e,t){switch(arguments.length){case 2:if(e)A(t);else{var n=t.data(f)||{};n.disabled=!0,t.data(f,n)}break;case 1:v.disabled=!e;break;default:e=!v.disabled}return!!e}}}]),a.register("",["$window","$sniffer","$timeout","$$animateReflow",function(i,a,r,s){function c(e,t){I&&I(),z.push(t),I=s(function(){u(z,function(e){e()}),z=[],I=null,j={}})}function d(e,n){var i=o(e);e=t.element(i),K.push(e);var a=Date.now()+n;G>=a||(r.cancel(W),G=a,W=r(function(){f(K),K=[]},n,!1))}function f(e){u(e,function(e){var t=e.data(U);t&&u(t.closeAnimationFns,function(e){e()})})}function g(e,t){var n=t?j[t]:null;if(!n){var a=0,o=0,r=0,s=0;u(e,function(e){if(e.nodeType==h){var t=i.getComputedStyle(e)||{},n=t[M+P];a=Math.max(m(n),a);var c=t[M+L];o=Math.max(m(c),o);{t[E+L]}s=Math.max(m(t[E+L]),s);var l=m(t[E+P]);l>0&&(l*=parseInt(t[E+F],10)||1),r=Math.max(l,r)}}),n={total:0,transitionDelay:o,transitionDuration:a,animationDelay:s,animationDuration:r},t&&(j[t]=n)}return n}function m(e){var n=0,i=t.isString(e)?e.split(/\s*,\s*/):[];return u(i,function(e){n=Math.max(parseFloat(e)||0,n)}),n}function v(e){var t=e.parent(),n=t.data(O);return n||(t.data(O,++V),n=V),n+"-"+o(e).getAttribute("class")}function y(e,t,n){var i=["ng-enter","ng-leave","ng-move"].indexOf(n)>=0,a=v(t),r=a+" "+n,s=j[r]?++j[r].total:0,c={};if(s>0){var l=n+"-stagger",u=a+" "+l,d=!j[u];d&&t.addClass(l),c=g(t,u),d&&t.removeClass(l)}t.addClass(n);var p=t.data(U)||{},h=g(t,r),f=h.transitionDuration,m=h.animationDuration;if(i&&0===f&&0===m)return t.removeClass(n),!1;var y=i&&f>0,_=m>0&&c.animationDelay>0&&0===c.animationDuration,$=p.closeAnimationFns||[];t.data(U,{stagger:c,cacheKey:r,running:p.running||0,itemIndex:s,blockTransition:y,closeAnimationFns:$});var C=o(t);return y&&b(C,!0),_&&w(C,!0),!0}function _(e,t,n,i){function a(){t.off(F,s),t.removeClass(p),t.removeClass(h),N&&r.cancel(N),S(t,n);var e=o(t);for(var i in m)e.style.removeProperty(m[i])}function s(e){e.stopPropagation();var t=e.originalEvent||e,n=t.$manualTimeStamp||t.timeStamp||Date.now(),a=parseFloat(t.elapsedTime.toFixed(R));Math.max(n-L,0)>=I&&a>=M&&i()}var c=o(t),l=t.data(U);if(-1==c.getAttribute("class").indexOf(n)||!l)return void i();l.blockTransition&&b(c,!1);var p="",h="";u(n.split(" "),function(e,t){var n=(t>0?" ":"")+e;p+=n+"-active",h+=n+"-pending"});var f="",m=[],v=l.itemIndex,y=l.stagger,_=0;if(v>0){var $=0;y.transitionDelay>0&&0===y.transitionDuration&&($=y.transitionDelay*v);var C=0;y.animationDelay>0&&0===y.animationDuration&&(C=y.animationDelay*v,m.push(D+"animation-play-state")),_=Math.round(100*Math.max($,C))/100}_||t.addClass(p);var k=l.cacheKey+" "+p,x=g(t,k),M=Math.max(x.transitionDuration,x.animationDuration);if(0===M)return t.removeClass(p),S(t,n),void i();var E=Math.max(x.transitionDelay,x.animationDelay),I=E*H;if(m.length>0){var P=c.getAttribute("style")||"";";"!==P.charAt(P.length-1)&&(P+=";"),c.setAttribute("style",P+" "+f)}var N,L=Date.now(),F=A+" "+T,B=(E+M)*q,O=(_+B)*H;return _>0&&(t.addClass(h),N=r(function(){N=null,t.addClass(p),t.removeClass(h),x.animationDuration>0&&w(c,!1)},_*H,!1)),t.on(F,s),l.closeAnimationFns.push(function(){a(),i()}),l.running++,d(t,O),a}function b(e,t){e.style[M+N]=t?"none":""}function w(e,t){e.style[E+B]=t?"paused":""}function $(e,t,n,i){return y(e,t,n,i)?function(e){e&&S(t,n)}:void 0}function C(e,t,n,i){return t.data(U)?_(e,t,n,i):(S(t,n),void i())}function k(e,t,n,i){var a=$(e,t,n);if(!a)return void i();var o=a;return c(t,function(){o=C(e,t,n,i)}),function(e){(o||l)(e)}}function S(e,t){e.removeClass(t);var n=e.data(U);n&&(n.running&&n.running--,n.running&&0!==n.running||e.removeData(U))}function x(e,t){var n="";return e=p(e)?e:e.split(/\s+/),u(e,function(e,i){e&&e.length>0&&(n+=(i>0?" ":"")+e+t)}),n}var M,T,E,A,D="";e.ontransitionend===n&&e.onwebkittransitionend!==n?(D="-webkit-",M="WebkitTransition",T="webkitTransitionEnd transitionend"):(M="transition",T="transitionend"),e.onanimationend===n&&e.onwebkitanimationend!==n?(D="-webkit-",E="WebkitAnimation",A="webkitAnimationEnd animationend"):(E="animation",A="animationend");var I,P="Duration",N="Property",L="Delay",F="IterationCount",B="PlayState",O="$$ngAnimateKey",U="$$ngAnimateCSS3Data",R=3,q=1.5,H=1e3,j={},V=0,z=[],W=null,G=0,K=[];return{enter:function(e,t){return k("enter",e,"ng-enter",t)},leave:function(e,t){return k("leave",e,"ng-leave",t)},move:function(e,t){return k("move",e,"ng-move",t)},beforeSetClass:function(e,t,n,i){var a=x(n,"-remove")+" "+x(t,"-add"),o=$("setClass",e,a);return o?(c(e,i),o):void i()},beforeAddClass:function(e,t,n){var i=$("addClass",e,x(t,"-add"));return i?(c(e,n),i):void n()},beforeRemoveClass:function(e,t,n){var i=$("removeClass",e,x(t,"-remove"));return i?(c(e,n),i):void n()},setClass:function(e,t,n,i){n=x(n,"-remove"),t=x(t,"-add");var a=n+" "+t;return C("setClass",e,a,i)},addClass:function(e,t,n){return C("addClass",e,x(t,"-add"),n)},removeClass:function(e,t,n){return C("removeClass",e,x(t,"-remove"),n)}}}])}])}(window,window.angular),function(e,t){"use strict";function n(){this.$get=["$$sanitizeUri",function(e){return function(t){var n=[];return o(t,c(n,function(t,n){return!/^unsafe/.test(e(t,n))})),n.join("")}}]}function i(e){var n=[],i=c(n,t.noop);
return i.chars(e),n.join("")}function a(e){var t,n={},i=e.split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}function o(e,n){function i(e,i,o,s){if(i=t.lowercase(i),k[i])for(;_.last()&&S[_.last()];)a("",_.last());C[i]&&_.last()==i&&a("",i),s=b[i]||!!s,s||_.push(i);var c={};o.replace(p,function(e,t,n,i,a){var o=n||i||a||"";c[t]=r(o)}),n.start&&n.start(i,c,s)}function a(e,i){var a,o=0;if(i=t.lowercase(i))for(o=_.length-1;o>=0&&_[o]!=i;o--);if(o>=0){for(a=_.length-1;a>=o;a--)n.end&&n.end(_[a]);_.length=o}}"string"!=typeof e&&(e=null===e||"undefined"==typeof e?"":""+e);var o,s,c,y,_=[],w=e;for(_.last=function(){return _[_.length-1]};e;){if(y="",s=!0,_.last()&&x[_.last()]?(e=e.replace(new RegExp("(.*)<\\s*\\/\\s*"+_.last()+"[^>]*>","i"),function(e,t){return t=t.replace(g,"$1").replace(v,"$1"),n.chars&&n.chars(r(t)),""}),a("",_.last())):(0===e.indexOf("<!--")?(o=e.indexOf("--",4),o>=0&&e.lastIndexOf("-->",o)===o&&(n.comment&&n.comment(e.substring(4,o)),e=e.substring(o+3),s=!1)):m.test(e)?(c=e.match(m),c&&(e=e.replace(c[0],""),s=!1)):f.test(e)?(c=e.match(d),c&&(e=e.substring(c[0].length),c[0].replace(d,a),s=!1)):h.test(e)&&(c=e.match(u),c?(c[4]&&(e=e.substring(c[0].length),c[0].replace(u,i)),s=!1):(y+="<",e=e.substring(1))),s&&(o=e.indexOf("<"),y+=0>o?e:e.substring(0,o),e=0>o?"":e.substring(o),n.chars&&n.chars(r(y)))),e==w)throw l("badparse","The sanitizer was unable to parse the following block of html: {0}",e);w=e}a()}function r(e){if(!e)return"";var t=D.exec(e),n=t[1],i=t[3],a=t[2];return a&&(A.innerHTML=a.replace(/</g,"&lt;"),a="textContent"in A?A.textContent:A.innerText),n+a+i}function s(e){return e.replace(/&/g,"&amp;").replace(y,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(_,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function c(e,n){var i=!1,a=t.bind(e,e.push);return{start:function(e,o,r){e=t.lowercase(e),!i&&x[e]&&(i=e),i||M[e]!==!0||(a("<"),a(e),t.forEach(o,function(i,o){var r=t.lowercase(o),c="img"===e&&"src"===r||"background"===r;E[r]!==!0||T[r]===!0&&!n(i,c)||(a(" "),a(o),a('="'),a(s(i)),a('"'))}),a(r?"/>":">"))},end:function(e){e=t.lowercase(e),i||M[e]!==!0||(a("</"),a(e),a(">")),e==i&&(i=!1)},chars:function(e){i||a(s(e))}}}var l=t.$$minErr("$sanitize"),u=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,d=/^<\/\s*([\w:-]+)[^>]*>/,p=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,h=/^</,f=/^<\//,g=/<!--(.*?)-->/g,m=/<!DOCTYPE([^>]*?)>/i,v=/<!\[CDATA\[(.*?)]]>/g,y=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,_=/([^\#-~| |!])/g,b=a("area,br,col,hr,img,wbr"),w=a("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),$=a("rp,rt"),C=t.extend({},$,w),k=t.extend({},w,a("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),S=t.extend({},$,a("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),x=a("script,style"),M=t.extend({},b,k,S,C),T=a("background,cite,href,longdesc,src,usemap"),E=t.extend({},T,a("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width")),A=document.createElement("pre"),D=/^(\s*)([\s\S]*?)(\s*)$/;t.module("ngSanitize",[]).provider("$sanitize",n),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"]/,a=/^mailto:/;return function(o,r){function s(e){e&&h.push(i(e))}function c(e,n){h.push("<a "),t.isDefined(r)&&(h.push('target="'),h.push(r),h.push('" ')),h.push('href="'),h.push(e),h.push('">'),s(n),h.push("</a>")}if(!o)return o;for(var l,u,d,p=o,h=[];l=p.match(n);)u=l[0],l[2]==l[3]&&(u="mailto:"+u),d=l.index,s(p.substr(0,d)),c(u,l[0].replace(a,"")),p=p.substring(d+l[0].length);return s(p),e(h.join(""))}}])}(window,window.angular),function(e,t){"use strict";function n(e,n,a){i.directive(e,["$parse","$swipe",function(i,o){var r=75,s=.3,c=30;return function(l,u,d){function p(e){if(!h)return!1;var t=Math.abs(e.y-h.y),i=(e.x-h.x)*n;return f&&r>t&&i>0&&i>c&&s>t/i}var h,f,g=i(d[e]),m=["touch"];t.isDefined(d.ngSwipeDisableMouse)||m.push("mouse"),o.bind(u,{start:function(e){h=e,f=!0},cancel:function(){f=!1},end:function(e,t){p(e)&&l.$apply(function(){u.triggerHandler(a),g(l,{$event:t})})}},m)}}])}var i=t.module("ngTouch",[]);i.factory("$swipe",[function(){function e(e){var t=e.touches&&e.touches.length?e.touches:[e],n=e.changedTouches&&e.changedTouches[0]||e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches[0]||t[0].originalEvent||t[0];return{x:n.clientX,y:n.clientY}}function n(e,n){var i=[];return t.forEach(e,function(e){var t=a[e][n];t&&i.push(t)}),i.join(" ")}var i=10,a={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(t,a,o){var r,s,c,l,u=!1;o=o||["mouse","touch"],t.on(n(o,"start"),function(t){c=e(t),u=!0,r=0,s=0,l=c,a.start&&a.start(c,t)});var d=n(o,"cancel");d&&t.on(d,function(e){u=!1,a.cancel&&a.cancel(e)}),t.on(n(o,"move"),function(t){if(u&&c){var n=e(t);if(r+=Math.abs(n.x-l.x),s+=Math.abs(n.y-l.y),l=n,!(i>r&&i>s))return s>r?(u=!1,void(a.cancel&&a.cancel(t))):(t.preventDefault(),void(a.move&&a.move(n,t)))}}),t.on(n(o,"end"),function(t){u&&(u=!1,a.end&&a.end(e(t),t))})}}}]),i.config(["$provide",function(e){e.decorator("ngClickDirective",["$delegate",function(e){return e.shift(),e}])}]),i.directive("ngClick",["$parse","$timeout","$rootElement",function(e,n,i){function a(e,t,n,i){return Math.abs(e-n)<g&&Math.abs(t-i)<g}function o(e,t,n){for(var i=0;i<e.length;i+=2)if(a(e[i],e[i+1],t,n))return e.splice(i,i+2),!0;return!1}function r(e){if(!(Date.now()-l>f)){var t=e.touches&&e.touches.length?e.touches:[e],n=t[0].clientX,i=t[0].clientY;1>n&&1>i||d&&d[0]===n&&d[1]===i||(d&&(d=null),"label"===e.target.tagName.toLowerCase()&&(d=[n,i]),o(u,n,i)||(e.stopPropagation(),e.preventDefault(),e.target&&e.target.blur()))}}function s(e){var t=e.touches&&e.touches.length?e.touches:[e],i=t[0].clientX,a=t[0].clientY;u.push(i,a),n(function(){for(var e=0;e<u.length;e+=2)if(u[e]==i&&u[e+1]==a)return void u.splice(e,e+2)},f,!1)}function c(e,t){u||(i[0].addEventListener("click",r,!0),i[0].addEventListener("touchstart",s,!0),u=[]),l=Date.now(),o(u,e,t)}var l,u,d,p=750,h=12,f=2500,g=25,m="ng-click-active";return function(n,i,a){function o(){f=!1,i.removeClass(m)}var r,s,l,u,d=e(a.ngClick),f=!1;i.on("touchstart",function(e){f=!0,r=e.target?e.target:e.srcElement,3==r.nodeType&&(r=r.parentNode),i.addClass(m),s=Date.now();var t=e.touches&&e.touches.length?e.touches:[e],n=t[0].originalEvent||t[0];l=n.clientX,u=n.clientY}),i.on("touchmove",function(){o()}),i.on("touchcancel",function(){o()}),i.on("touchend",function(e){var n=Date.now()-s,d=e.changedTouches&&e.changedTouches.length?e.changedTouches:e.touches&&e.touches.length?e.touches:[e],g=d[0].originalEvent||d[0],m=g.clientX,v=g.clientY,y=Math.sqrt(Math.pow(m-l,2)+Math.pow(v-u,2));f&&p>n&&h>y&&(c(m,v),r&&r.blur(),t.isDefined(a.disabled)&&a.disabled!==!1||i.triggerHandler("click",[e])),o()}),i.onclick=function(){},i.on("click",function(e,t){n.$apply(function(){d(n,{$event:t||e})})}),i.on("mousedown",function(){i.addClass(m)}),i.on("mousemove mouseup",function(){i.removeClass(m)})}}]),n("ngSwipeLeft",-1,"swipeleft"),n("ngSwipeRight",1,"swiperight")}(window,window.angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.dropdownToggle","ui.bootstrap.modal","ui.bootstrap.position","ui.bootstrap.bindHtml","ui.bootstrap.tooltip"]),angular.module("ui.bootstrap.tpls",["template/modal/backdrop.html","template/modal/window.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){function i(e){for(var t in e)if(void 0!==o.style[t])return e[t]}var a=function(i,o,r){r=r||{};var s=e.defer(),c=a[r.animation?"animationEndEventName":"transitionEndEventName"],l=function(){n.$apply(function(){i.unbind(c,l),s.resolve(i)})};return c&&i.bind(c,l),t(function(){angular.isString(o)?i.addClass(o):angular.isFunction(o)?o(i):angular.isObject(o)&&i.css(o),c||s.resolve(i)}),s.promise.cancel=function(){c&&i.unbind(c,l),s.reject("Transition cancelled")},s.promise},o=document.createElement("trans"),r={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},s={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return a.transitionEndEventName=i(r),a.animationEndEventName=i(s),a}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(e){return{link:function(t,n,i){function a(t){function i(){l===a&&(l=void 0)}var a=e(n,t);return l&&l.cancel(),l=a,a.then(i,i),a}function o(){u?(u=!1,r()):(n.removeClass("collapse").addClass("collapsing"),a({height:n[0].scrollHeight+"px"}).then(r))}function r(){n.removeClass("collapsing"),n.addClass("collapse in"),n.css({height:"auto"})}function s(){if(u)u=!1,c(),n.css({height:0});else{n.css({height:n[0].scrollHeight+"px"});{n[0].offsetWidth}n.removeClass("collapse in").addClass("collapsing"),a({height:0}).then(c)}}function c(){n.removeClass("collapsing"),n.addClass("collapse")}var l,u=!0;t.$watch(i.collapse,function(e){e?s():o()})}}}]),angular.module("ui.bootstrap.dropdownToggle",[]).directive("dropdownToggle",["$document","$location",function(e){var t=null,n=angular.noop;return{restrict:"CA",link:function(i,a){i.$watch("$location.path",function(){n()}),a.parent().bind("click",function(){n()}),a.bind("click",function(i){var o=a===t;i.preventDefault(),i.stopPropagation(),t&&n(),o||a.hasClass("disabled")||a.prop("disabled")||(a.parent().addClass("open"),t=a,n=function(i){i&&(i.preventDefault(),i.stopPropagation()),e.unbind("click",n),a.parent().removeClass("open"),n=angular.noop,t=null},e.bind("click",n))})}}}]),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n<e.length;n++)if(t==e[n].key)return e[n]},keys:function(){for(var t=[],n=0;n<e.length;n++)t.push(e[n].key);return t},top:function(){return e[e.length-1]},remove:function(t){for(var n=-1,i=0;i<e.length;i++)if(t==e[i].key){n=i;break}return e.splice(n,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}).directive("modalBackdrop",["$timeout",function(e){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t){t.animate=!1,e(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(e,t){return{restrict:"EA",scope:{index:"@",animate:"=",nav:"="},replace:!0,transclude:!0,templateUrl:"template/modal/window.html",link:function(n,i,a){n.windowClass=a.windowClass||"",t(function(){n.animate=!0,i[0].focus()}),n.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!=n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click"))}}}}]).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(e,t,n,i,a,o){function r(){for(var e=-1,t=h.keys(),n=0;n<t.length;n++)h.get(t[n]).value.backdrop&&(e=n);return e}function s(e){var t=n.find("body").eq(0),i=h.get(e).value;h.remove(e),l(i.modalDomEl,i.modalScope,0,c),t.toggleClass(p,h.length()>0)}function c(){if(u&&-1==r()){var e=d;l(u,d,0,function(){e.$destroy(),e=null}),u=void 0,d=void 0}}function l(n,i,a,o){function r(){r.done||(r.done=!0,n.remove(),o&&o())}i.animate=!1;var s=e.transitionEndEventName;if(s){var c=t(r,a);n.bind(s,function(){t.cancel(c),r(),i.$apply()})}else t(r,0)}var u,d,p="modal-open",h=o.createNew(),f={};return a.$watch(r,function(e){d&&(d.index=e)}),n.bind("keydown",function(e){var t;27===e.which&&(t=h.top(),t&&t.value.keyboard&&a.$apply(function(){f.dismiss(t.key)}))}),f.open=function(e,t){h.add(e,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});var o=n.find("body").eq(0),s=r();s>=0&&!u&&(d=a.$new(!0),d.index=s,u=i("<div modal-backdrop></div>")(d),o.append(u));var c=angular.element("<div modal-window></div>");c.attr("window-class",t.windowClass),c.attr("index",h.length()-1),c.attr("animate","animate"),c.attr("nav","nav"),c.html(t.content);var l=i(c)(t.scope);h.top().value.modalDomEl=l,o.append(l),o.addClass(p)},f.close=function(e,t){var n=h.get(e).value;n&&(n.deferred.resolve(t),s(e))},f.dismiss=function(e,t){var n=h.get(e).value;n&&(n.deferred.reject(t),s(e))},f.dismissAll=function(e){for(var t=this.getTop();t;)this.dismiss(t.key,e),t=this.getTop()},f.getTop=function(){return h.top()},f}]).provider("$modal",function(){var e={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,n,i,a,o,r,s){function c(e){return e.template?i.when(e.template):a.get(e.templateUrl,{cache:o}).then(function(e){return e.data})}function l(e){var n=[];return angular.forEach(e,function(e){(angular.isFunction(e)||angular.isArray(e))&&n.push(i.when(t.invoke(e)))}),n}var u={};return u.open=function(t){var a=i.defer(),o=i.defer(),u={result:a.promise,opened:o.promise,close:function(e){s.close(u,e)},dismiss:function(e){s.dismiss(u,e)}};if(t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");var d=i.all([c(t)].concat(l(t.resolve)));return d.then(function(e){var i=(t.scope||n).$new();i.$close=u.close,i.$dismiss=u.dismiss;var o,c={},l=1;t.controller&&(c.$scope=i,c.$modalInstance=u,angular.forEach(t.resolve,function(t,n){c[n]=e[l++]}),o=r(t.controller,c)),s.open(u,{scope:i,deferred:a,content:e[0],backdrop:t.backdrop,keyboard:t.keyboard,windowClass:t.windowClass})},function(e){a.reject(e)}),d.then(function(){o.resolve(!0)},function(){o.reject(!1)}),u},u}]};return e}),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function i(e){return"static"===(n(e,"position")||"static")}var a=function(t){for(var n=e[0],a=t.offsetParent||n;a&&a!==n&&i(a);)a=a.offsetParent;return a||n};return{position:function(t){var n=this.offset(t),i={top:0,left:0},o=a(t[0]);o!=e[0]&&(i=this.offset(angular.element(o)),i.top+=o.clientTop-o.scrollTop,i.left+=o.clientLeft-o.scrollLeft);var r=t[0].getBoundingClientRect();return{width:r.width||t.prop("offsetWidth"),height:r.height||t.prop("offsetHeight"),top:n.top-i.top,left:n.left-i.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(t.pageYOffset||e[0].body.scrollTop||e[0].documentElement.scrollTop),left:i.left+(t.pageXOffset||e[0].body.scrollLeft||e[0].documentElement.scrollLeft)}}}}]),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(e,t,n){t.addClass("ng-binding").data("$binding",n.bindHtmlUnsafe),e.$watch(n.bindHtmlUnsafe,function(e){t.html(e||"")})}}),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function e(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var t={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},i={};this.options=function(e){angular.extend(i,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(a,o,r,s,c,l,u){return function(a,d,p){function h(e){var t=e||f.trigger||p,i=n[t]||t;return{show:t,hide:i}}var f=angular.extend({},t,i),g=e(a),m=u.startSymbol(),v=u.endSymbol(),y="<div "+g+'-popup title="'+m+"tt_title"+v+'" content="'+m+"tt_content"+v+'" placement="'+m+"tt_placement"+v+'" animation="tt_animation" is-open="tt_isOpen"></div>';return{restrict:"EA",scope:!0,compile:function(){var e=o(y);return function(t,n,i){function o(){t.tt_isOpen?p():u()}function u(){(!S||t.$eval(i[d+"Enable"]))&&(t.tt_popupDelay?(w=r(g,t.tt_popupDelay,!1),w.then(function(e){e()})):g()())}function p(){t.$apply(function(){m()})}function g(){return t.tt_content?(v(),b&&r.cancel(b),_.css({top:0,left:0,display:"block"}),$?c.find("body").append(_):n.after(_),x(),t.tt_isOpen=!0,t.$digest(),x):angular.noop}function m(){t.tt_isOpen=!1,r.cancel(w),t.tt_animation?b=r(y,500):y()}function v(){_&&y(),_=e(t,function(){}),t.$digest()}function y(){_&&(_.remove(),_=null)}var _,b,w,$=angular.isDefined(f.appendToBody)?f.appendToBody:!1,C=h(void 0),k=!1,S=angular.isDefined(i[d+"Enable"]),x=function(){var e,i,a,o;switch(e=$?l.offset(n):l.position(n),i=_.prop("offsetWidth"),a=_.prop("offsetHeight"),t.tt_placement){case"right":o={top:e.top+e.height/2-a/2,left:e.left+e.width};break;case"bottom":o={top:e.top+e.height,left:e.left+e.width/2-i/2};break;case"left":o={top:e.top+e.height/2-a/2,left:e.left-i};break;default:o={top:e.top-a,left:e.left+e.width/2-i/2}}o.top+="px",o.left+="px",_.css(o)};t.tt_isOpen=!1,i.$observe(a,function(e){t.tt_content=e,!e&&t.tt_isOpen&&m()}),i.$observe(d+"Title",function(e){t.tt_title=e}),i.$observe(d+"Placement",function(e){t.tt_placement=angular.isDefined(e)?e:f.placement}),i.$observe(d+"PopupDelay",function(e){var n=parseInt(e,10);t.tt_popupDelay=isNaN(n)?f.popupDelay:n});var M=function(){k&&(n.unbind(C.show,u),n.unbind(C.hide,p))};i.$observe(d+"Trigger",function(e){M(),C=h(e),C.show===C.hide?n.bind(C.show,o):(n.bind(C.show,u),n.bind(C.hide,p)),k=!0});var T=t.$eval(i[d+"Animation"]);t.tt_animation=angular.isDefined(T)?!!T:f.animation,i.$observe(d+"AppendToBody",function(e){$=angular.isDefined(e)?s(e)(t):$}),$&&t.$on("$locationChangeSuccess",function(){t.tt_isOpen&&m()}),t.$on("$destroy",function(){r.cancel(b),r.cancel(w),M(),y()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(e){return e("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("template/modal/backdrop.html",'<div class="modal-backdrop fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1040 + index*10 + 1}"></div>')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(e){e.put("template/modal/window.html",'<div tabindex="-1" class="modal fade {{ windowClass }}" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n <div class="modal_prev_wrap hidden-xs hidden-sm" ng-show="nav.hasPrev" ng-click="nav.prev($event)">\n <div class="modal_prev"></div>\n </div>\n <div class="modal_close_wrap hidden-xs hidden-sm" ng-click="close($event)">\n <div class="modal_close"></div>\n </div>\n <div class="modal-dialog"><div class="modal-content" ng-transclude></div></div>\n</div>')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]);var dbits,canary=0xdeadbeefcafe,j_lm=15715070==(16777215&canary);j_lm&&"Microsoft Internet Explorer"==navigator.appName?(BigInteger.prototype.am=am2,dbits=30):j_lm&&"Netscape"!=navigator.appName?(BigInteger.prototype.am=am1,dbits=26):(BigInteger.prototype.am=am3,dbits=28),BigInteger.prototype.DB=dbits,BigInteger.prototype.DM=(1<<dbits)-1,BigInteger.prototype.DV=1<<dbits;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;t<z.length;++t)rng_pool[rng_pptr++]=255&z.charCodeAt(t)}for(;rng_psize>rng_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||s).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 r=n[o>>>2]>>>24-o%4*8&255;t[i+o>>>2]|=r<<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<n.length;o++)t.push(n[o]);return this.sigBytes+=a,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>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)}}),r=n.enc={},s=r.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)}},c=r.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)}},l=r.Utf8={stringify:function(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return c.parse(unescape(encodeURIComponent(e)))}},u=i.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,i=n.words,a=n.sigBytes,r=this.blockSize,s=4*r,c=a/s;c=t?e.ceil(c):e.max((0|c)-this._minBufferSize,0);var l=c*r,u=e.min(4*l,a);if(l){for(var d=0;l>d;d+=r)this._doProcessBlock(i,d);var p=i.splice(0,l);n.sigBytes-=u}return new o.init(p,u)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),d=(i.Hasher=u.extend({cfg:a.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){u.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 d.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,r=t.enc,s=(r.Utf8,r.Base64),c=t.algo,l=c.EvpKDF,u=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?$:_}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)}}}}()}),d=(n.StreamCipher=u.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}}),h=d.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 r=0;i>r;r++)t[n+r]^=o[r]}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}(),f=(d.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 r=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=r}}),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 r=n.slice(i,i+o);t(n,this._iv2p,i,o),a.decryptBlock(n,i),t(n,this._ivp,i,o),this._ivp=r,this._iv2p=n.slice(i,i+o)
}}),n}(),t.pad={}),g=f.Pkcs7={pad:function(e,t){for(var n=4*t,i=n-e.sigBytes%n,o=i<<24|i<<16|i<<8|i,r=[],s=0;i>s;s+=4)r.push(o);var c=a.create(r,i);e.concat(c)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},m=(f.NoPadding={pad:function(){},unpad:function(){}},n.BlockCipher=u.extend({cfg:u.cfg.extend({mode:h,padding:g}),reset:function(){u.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)}})),v=t.format={},y=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(s)},parse:function(e){var t=s.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 m.create({ciphertext:t,salt:i})}},_=n.SerializableCipher=i.extend({cfg:i.extend({format:y}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var a=e.createEncryptor(n,i),o=a.finalize(t),r=a.cfg;return m.create({ciphertext:o,key:n,iv:r.iv,algorithm:e,mode:r.mode,padding:r.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=l.create({keySize:t+n}).compute(e,i),r=a.create(o.words.slice(t),4*n);return o.sigBytes=4*t,m.create({key:o,iv:r,salt:i})}},$=n.PasswordBasedCipher=_.extend({cfg:_.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=_.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=_.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=[],r=[],s=[],c=[],l=[],u=[],d=[],p=[],h=[];!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 f=i^i<<1^i<<2^i<<3^i<<4;f=f>>>8^255&f^99,a[n]=f,o[f]=n;var g=e[n],m=e[g],v=e[m],y=257*e[f]^16843008*f;r[n]=y<<24|y>>>8,s[n]=y<<16|y>>>16,c[n]=y<<8|y>>>24,l[n]=y;var y=16843009*v^65537*m^257*g^16843008*n;u[f]=y<<24|y>>>8,d[f]=y<<16|y>>>16,p[f]=y<<8|y>>>24,h[f]=y,n?(n=g^e[e[e[v^g]]],i^=e[e[i]]):n=i=1}}();var f=[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),r=this._keySchedule=[],s=0;o>s;s++)if(n>s)r[s]=t[s];else{var c=r[s-1];s%n?n>6&&s%n==4&&(c=a[c>>>24]<<24|a[c>>>16&255]<<16|a[c>>>8&255]<<8|a[255&c]):(c=c<<8|c>>>24,c=a[c>>>24]<<24|a[c>>>16&255]<<16|a[c>>>8&255]<<8|a[255&c],c^=f[s/n|0]<<24),r[s]=r[s-n]^c}for(var l=this._invKeySchedule=[],g=0;o>g;g++){var s=o-g;if(g%4)var c=r[s];else var c=r[s-4];l[g]=4>g||4>=s?c:u[a[c>>>24]]^d[a[c>>>16&255]]^p[a[c>>>8&255]]^h[a[255&c]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,r,s,c,l,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,u,d,p,h,o);var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,a,o,r,s){for(var c=this._nRounds,l=e[t]^n[0],u=e[t+1]^n[1],d=e[t+2]^n[2],p=e[t+3]^n[3],h=4,f=1;c>f;f++){var g=i[l>>>24]^a[u>>>16&255]^o[d>>>8&255]^r[255&p]^n[h++],m=i[u>>>24]^a[d>>>16&255]^o[p>>>8&255]^r[255&l]^n[h++],v=i[d>>>24]^a[p>>>16&255]^o[l>>>8&255]^r[255&u]^n[h++],y=i[p>>>24]^a[l>>>16&255]^o[u>>>8&255]^r[255&d]^n[h++];l=g,u=m,d=v,p=y}var g=(s[l>>>24]<<24|s[u>>>16&255]<<16|s[d>>>8&255]<<8|s[255&p])^n[h++],m=(s[u>>>24]<<24|s[d>>>16&255]<<16|s[p>>>8&255]<<8|s[255&l])^n[h++],v=(s[d>>>24]<<24|s[p>>>16&255]<<16|s[l>>>8&255]<<8|s[255&u])^n[h++],y=(s[p>>>24]<<24|s[l>>>16&255]<<16|s[u>>>8&255]<<8|s[255&d])^n[h++];e[t]=g,e[t+1]=m,e[t+2]=v,e[t+3]=y},keySize:8});e.AES=n._createHelper(g)}();var sha1;!function(e){function t(e){for(var t,n="",i=7;i>=0;--i)t=e>>>(i<<2)&15,n+=t.toString(16);return n}function n(e){for(var t,n=[],i=3;i>=0;--i)t=e>>8*i&255,n.push(t);return n}function i(e,t){return e<<t|e>>>32-t}function a(e){e=e.replace(/[\u0080-\u07ff]/g,function(e){var t=e.charCodeAt(0);return String.fromCharCode(192|t>>6,128|63&t)}),e=e.replace(/[\u0080-\uffff]/g,function(e){var t=e.charCodeAt(0);return String.fromCharCode(224|t>>12,128|t>>6&63,128|63&t)});for(var t=e.length,n=new Uint8Array(t),i=0;t>i;++i)n[i]=e.charCodeAt(i);return n.buffer}function o(e){for(var t=e.length,n=new Uint8Array(t),i=0;t>i;++i)n[i]=e[i];return n.buffer}function r(e,r){var s;s=e instanceof ArrayBuffer?e:"[object Array]"==Object.prototype.toString.apply(e)?o(e):a(String(e));var u,d,p=1732584193,h=4023233417,f=2562383102,g=271733878,m=3285377520,v=s.byteLength,y=v<<3,_=y+65,b=Math.ceil(_/512)<<9,w=b>>>3,$=w>>>2,C=new l($),k=C.bytes,S=new Uint32Array(80),x=new Uint8Array(s);for(u=0;v>u;++u)k[u]=x[u];for(k[v]=128,C.set($-2,Math.floor(y/c)),C.set($-1,4294967295&y),u=0;$>u;u+=16){for(d=0;16>d;++d)S[d]=C.get(u+d);for(;80>d;++d)S[d]=i(S[d-3]^S[d-8]^S[d-14]^S[d-16],1);var M,T,E,A=p,D=h,I=f,P=g,N=m;for(d=0;80>d;++d)20>d?(M=D&I|~D&P,T=1518500249):40>d?(M=D^I^P,T=1859775393):60>d?(M=D&I^D&P^I&P,T=2400959708):(M=D^I^P,T=3395469782),E=i(A,5)+M+N+T+S[d]&4294967295,N=P,P=I,I=i(D,30),D=A,A=E;p=p+A&4294967295,h=h+D&4294967295,f=f+I&4294967295,g=g+P&4294967295,m=m+N&4294967295}return r?n(p).concat(n(h),n(f),n(g),n(m)):t(p)+t(h)+t(f)+t(g)+t(m)}var s=Math.pow(2,24),c=Math.pow(2,32),l=function(){function e(e){this.bytes=new Uint8Array(e<<2)}return e.prototype.get=function(e){return e<<=2,this.bytes[e]*s+(this.bytes[e+1]<<16|this.bytes[e+2]<<8|this.bytes[e+3])},e.prototype.set=function(e,t){var n=Math.floor(t/s),i=t-n*s;e<<=2,this.bytes[e]=n,this.bytes[e+1]=i>>16,this.bytes[e+2]=i>>8&255,this.bytes[e+3]=255&i},e}();e.hash=r}(sha1||(sha1={})),function(){"use strict";function e(e){throw e}function t(e,t){var n=e.split("."),i=d;!(n[0]in i)&&i.execScript&&i.execScript("var "+n[0]);for(var a;n.length&&(a=n.shift());)n.length||t===u?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^v[255&(i^e[t])];for(a=o>>3;a--;t+=8)i=i>>>8^v[255&(i^e[t])],i=i>>>8^v[255&(i^e[t+1])],i=i>>>8^v[255&(i^e[t+2])],i=i>>>8^v[255&(i^e[t+3])],i=i>>>8^v[255&(i^e[t+4])],i=i>>>8^v[255&(i^e[t+5])],i=i>>>8^v[255&(i^e[t+6])],i=i>>>8^v[255&(i^e[t+7])];return(4294967295^i)>>>0}function i(){}function a(e){var t,n,i,a,o,r,s,c,l,u=e.length,d=0,h=Number.POSITIVE_INFINITY;for(c=0;u>c;++c)e[c]>d&&(d=e[c]),e[c]<h&&(h=e[c]);for(t=1<<d,n=new(p?Uint32Array:Array)(t),i=1,a=0,o=2;d>=i;){for(c=0;u>c;++c)if(e[c]===i){for(r=0,s=a,l=0;i>l;++l)r=r<<1|1&s,s>>=1;for(l=r;t>l;l+=o)n[l]=i<<16|c;++a}++i,a<<=1,o<<=1}return[n,d,h]}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=$,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 $: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 r(t,n){for(var i,a=t.f,o=t.d,r=t.input,s=t.c;n>o;)i=r[s++],i===u&&e(Error("input buffer is broken")),a|=i<<o,o+=8;return i=a&(1<<n)-1,t.f=a>>>n,t.d=o-n,t.c=s,i}function s(e,t){for(var n,i,a,o=e.f,r=e.d,s=e.input,c=e.c,l=t[0],d=t[1];d>r&&(n=s[c++],n!==u);)o|=n<<r,r+=8;return i=l[o&(1<<d)-1],a=i>>>16,e.f=o>>a,e.d=r-a,e.c=c,65535&i}function c(e){function t(e,t,n){var i,a,o,c;for(c=0;e>c;)switch(i=s(this,t)){case 16:for(o=3+r(this,2);o--;)n[c++]=a;break;case 17:for(o=3+r(this,3);o--;)n[c++]=0;a=0;break;case 18:for(o=11+r(this,7);o--;)n[c++]=0;a=0;break;default:a=n[c++]=i}return n}var n,i,o,c,l=r(e,5)+257,u=r(e,5)+1,d=r(e,4)+4,h=new(p?Uint8Array:Array)(x.length);for(c=0;d>c;++c)h[x[c]]=r(e,3);n=a(h),i=new(p?Uint8Array:Array)(l),o=new(p?Uint8Array:Array)(u),e.l(a(t.call(e,l,n,i)),a(t.call(e,u,n,o)))}function l(e){this.input=e,this.c=0,this.m=[],this.s=!1}var u=void 0,d=this,p="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array;new(p?Uint8Array:Array)(256);var h;for(h=0;256>h;++h)for(var f=h,g=7,f=f>>>1;f;f>>>=1)--g;var m=[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],v=p?new Uint32Array(m):m;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 y,_=[];for(y=0;288>y;y++)switch(!0){case 143>=y:_.push([y+48,8]);break;case 255>=y:_.push([y-144+400,9]);break;case 279>=y:_.push([y-256+0,7]);break;case 287>=y:_.push([y-280+192,8]);break;default:e("invalid literal: "+y)}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,$=1;o.prototype.g=function(){for(;!this.o;){var t=r(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,s=u,l=u,d=u,h=a.length,f=u;switch(this.d=this.f=0,s=n[i++],s===u&&e(Error("invalid uncompressed block header: LEN (first byte)")),l=s,s=n[i++],s===u&&e(Error("invalid uncompressed block header: LEN (second byte)")),l|=s<<8,s=n[i++],s===u&&e(Error("invalid uncompressed block header: NLEN (first byte)")),d=s,s=n[i++],s===u&&e(Error("invalid uncompressed block header: NLEN (second byte)")),d|=s<<8,l===~d&&e(Error("invalid uncompressed block header: length verify")),i+l>n.length&&e(Error("input buffer is broken")),this.k){case w:for(;o+l>a.length;){if(f=h-o,l-=f,p)a.set(n.subarray(i,i+f),o),o+=f,i+=f;else for(;f--;)a[o++]=n[i++];this.a=o,a=this.e(),o=this.a}break;case $:for(;o+l>a.length;)a=this.e({t:2});break;default:e(Error("invalid inflate mode"))}if(p)a.set(n.subarray(i,i+l),o),o+=l,i+=l;else for(;l--;)a[o++]=n[i++];this.c=i,this.a=o,this.b=a;break;case 1:this.l(O,R);break;case 2:c(this);break;default:e(Error("unknown BTYPE: "+t))}}return this.q()};var C,k,S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],x=p?new Uint16Array(S):S,M=[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],T=p?new Uint16Array(M):M,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],A=p?new Uint8Array(E):E,D=[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],I=p?new Uint16Array(D):D,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,L=new(p?Uint8Array:Array)(288);for(C=0,k=L.length;k>C;++C)L[C]=143>=C?8:255>=C?9:279>=C?7:8;var F,B,O=a(L),U=new(p?Uint8Array:Array)(30);for(F=0,B=U.length;B>F;++F)U[F]=5;var R=a(U);o.prototype.l=function(e,t){var n=this.b,i=this.a;this.r=e;for(var a,o,c,l,u=n.length-258;256!==(a=s(this,e));)if(256>a)i>=u&&(this.a=i,n=this.e(),i=this.a),n[i++]=a;else for(o=a-257,l=T[o],0<A[o]&&(l+=r(this,A[o])),a=s(this,t),c=I[a],0<N[a]&&(c+=r(this,N[a])),i>=u&&(this.a=i,n=this.e(),i=this.a);l--;)n[i]=n[i++-c];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,c,l,u=n.length;256!==(a=s(this,e));)if(256>a)i>=u&&(n=this.e(),u=n.length),n[i++]=a;else for(o=a-257,l=T[o],0<A[o]&&(l+=r(this,A[o])),a=s(this,t),c=I[a],0<N[a]&&(c+=r(this,N[a])),i+l>u&&(n=this.e(),u=n.length);l--;)n[i]=n[i++-c];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,r=this.input,s=this.b;return e&&("number"==typeof e.t&&(o=e.t),"number"==typeof e.z&&(o+=e.z)),2>o?(n=(r.length-this.c)/this.r[2],a=258*(n/2)|0,i=a<s.length?s.length+a:s.length<<1):i=s.length*o,p?(t=new Uint8Array(i),t.set(s)):t=s,this.b=t},o.prototype.q=function(){var e,t,n,i,a,o=0,r=this.b,s=this.i,c=new(p?Uint8Array:Array)(this.n+(this.a-32768));if(0===s.length)return p?this.b.subarray(32768,this.a):this.b.slice(32768,this.a);for(t=0,n=s.length;n>t;++t)for(e=s[t],i=0,a=e.length;a>i;++i)c[o++]=e[i];for(t=32768,n=this.a;n>t;++t)c[o++]=r[t];return this.i=[],this.buffer=c},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},l.prototype.F=function(){return this.s||this.g(),this.m.slice()},l.prototype.g=function(){for(var t=this.input.length;this.c<t;){var a=new i,r=u,s=u,c=u,l=u,d=u,h=u,f=u,g=u,m=u,v=this.input,y=this.c;switch(a.u=v[y++],a.v=v[y++],(31!==a.u||139!==a.v)&&e(Error("invalid file signature:"+a.u+","+a.v)),a.p=v[y++],a.p){case 8:break;default:e(Error("unknown compression method: "+a.p))}if(a.h=v[y++],g=v[y++]|v[y++]<<8|v[y++]<<16|v[y++]<<24,a.H=new Date(1e3*g),a.N=v[y++],a.M=v[y++],0<(4&a.h)&&(a.I=v[y++]|v[y++]<<8,y+=a.I),0<(8&a.h)){for(f=[],h=0;0<(d=v[y++]);)f[h++]=String.fromCharCode(d);a.name=f.join("")}if(0<(16&a.h)){for(f=[],h=0;0<(d=v[y++]);)f[h++]=String.fromCharCode(d);a.J=f.join("")}0<(2&a.h)&&(a.B=65535&n(v,0,y),a.B!==(v[y++]|v[y++]<<8)&&e(Error("invalid header crc16"))),r=v[v.length-4]|v[v.length-3]<<8|v[v.length-2]<<16|v[v.length-1]<<24,v.length-y-4-4<512*r&&(l=r),s=new o(v,{index:y,bufferSize:l}),a.data=c=s.g(),y=s.c,a.K=m=(v[y++]|v[y++]<<8|v[y++]<<16|v[y++]<<24)>>>0,n(c,u,u)!==m&&e(Error("invalid CRC-32 checksum: 0x"+n(c,u,u).toString(16)+" / 0x"+m.toString(16))),a.L=r=(v[y++]|v[y++]<<8|v[y++]<<16|v[y++]<<24)>>>0,(4294967295&c.length)!==r&&e(Error("invalid input size: "+(4294967295&c.length)+" / "+r)),this.m.push(a),this.c=y}this.s=!0;var _,b,w,$=this.m,C=0,k=0;for(_=0,b=$.length;b>_;++_)k+=$[_].data.length;if(p)for(w=new Uint8Array(k),_=0;b>_;++_)w.set($[_].data,C),C+=$[_].data.length;else{for(w=[],_=0;b>_;++_)w[_]=$[_].data;w=Array.prototype.concat.apply([],w)}return w},t("Zlib.Gunzip",l),t("Zlib.Gunzip.prototype.decompress",l.prototype.g),t("Zlib.Gunzip.prototype.getMembers",l.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;o<e.length;o+=8){var r=Math.min(8,e.length-o),s=parseInt(e.substring(o,o+r),n);if(8>r){var c=goog.math.Long.fromNumber(Math.pow(n,r));a=a.multiply(c).add(goog.math.Long.fromNumber(s))}else a=a.multiply(i),a=a.add(goog.math.Long.fromNumber(s))}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,r="";;){var s=a.div(o),c=a.subtract(s.multiply(o)).toInt(),l=c.toString(t);if(a=s,a.isZero())return l+r;for(;l.length<6;)l="0"+l;r=""+l+r}},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<<t);t--);return 0!=this.high_?t+33:t+1},goog.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},goog.math.Long.prototype.isNegative=function(){return this.high_<0},goog.math.Long.prototype.isOdd=function(){return 1==(1&this.low_)},goog.math.Long.prototype.equals=function(e){return this.high_==e.high_&&this.low_==e.low_},goog.math.Long.prototype.notEquals=function(e){return this.high_!=e.high_||this.low_!=e.low_},goog.math.Long.prototype.lessThan=function(e){return this.compare(e)<0},goog.math.Long.prototype.lessThanOrEqual=function(e){return this.compare(e)<=0},goog.math.Long.prototype.greaterThan=function(e){return this.compare(e)>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,r=65535&e.high_,s=e.low_>>>16,c=65535&e.low_,l=0,u=0,d=0,p=0;return p+=a+c,d+=p>>>16,p&=65535,d+=i+s,u+=d>>>16,d&=65535,u+=n+r,l+=u>>>16,u&=65535,l+=t+o,l&=65535,goog.math.Long.fromBits(d<<16|p,l<<16|u)},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,r=65535&e.high_,s=e.low_>>>16,c=65535&e.low_,l=0,u=0,d=0,p=0;return p+=a*c,d+=p>>>16,p&=65535,d+=i*c,u+=d>>>16,d&=65535,d+=a*s,u+=d>>>16,d&=65535,u+=n*c,l+=u>>>16,u&=65535,u+=i*s,l+=u>>>16,u&=65535,u+=a*r,l+=u>>>16,u&=65535,l+=t*c+n*s+i*r+a*o,l&=65535,goog.math.Long.fromBits(d<<16|p,l<<16|u)},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())),r=Math.ceil(Math.log(n)/Math.LN2),s=48>=r?1:Math.pow(2,r-48),c=goog.math.Long.fromNumber(n),l=c.multiply(e);l.isNegative()||l.greaterThan(i);)n-=s,c=goog.math.Long.fromNumber(n),l=c.multiply(e);c.isZero()&&(c=goog.math.Long.ONE),o=o.add(c),i=i.subtract(l)}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<<e,n<<e|t>>>32-e)}return goog.math.Long.fromBits(0,t<<e-32)},goog.math.Long.prototype.shiftRight=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 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)};var _logTimer=(new Date).getTime();Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),n=this,i=function(){},a=function(){return n.apply(this instanceof i&&e?this:e,t.concat(Array.prototype.slice.call(arguments)))};return i.prototype=this.prototype,a.prototype=new i,a}),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(){for(var e=[],t=0;t<this.offset;t++)e.push(this.byteView[t]);return e},TLSerialization.prototype.checkLength=function(e){if(!(this.offset+e<this.maxLength)){console.trace("Increase buffer",this.offset,e,this.maxLength),this.maxLength=4*Math.ceil(Math.max(2*this.maxLength,this.offset+e+16)/4);var t=this.buffer,n=new Int32Array(t);this.createBuffer(),new Int32Array(this.buffer).set(n)}},TLSerialization.prototype.writeInt=function(e,t){this.debug&&console.log(">>>",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);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");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){this.debug&&console.log(">>>",bytesToHex(e),(t||"")+":bytes"),this.checkLength(e.length+8);var n=e.length;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);for(var i=0;n>i;i++)this.byteView[this.offset++]=e[i];for(;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeIntBytes=function(e,t,n){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);for(var a=0;i>a;a++)this.byteView[this.offset++]=e[a]},TLSerialization.prototype.storeRawBytes=function(e,t){var n=e.length;this.debug&&console.log(">>>",bytesToHex(e),t||""),this.checkLength(n);for(var i=0;n>i;i++)this.byteView[this.offset++]=e[i]},TLSerialization.prototype.storeMethod=function(e,t){var n,i=this.mtproto?Config.Schema.MTProto:Config.Schema.API,a=!1;for(n=0;n<i.methods.length;n++)if(i.methods[n].method==e){a=i.methods[n];break}if(!a)throw new Error("No method "+e+" found");this.storeInt(intToUint(a.id),e+"[id]");var o=this;return angular.forEach(a.params,function(n){o.storeObject(t[n.name],n.type,e+"["+n.name+"]")}),a.type},TLSerialization.prototype.storeObject=function(e,t,n){switch(t){case"int":return this.storeInt(e,n);case"long":return this.storeLong(e,n);case"int128":return this.storeIntBytes(e,128,n);case"int256":return this.storeIntBytes(e,256,n);case"int512":return this.storeIntBytes(e,512,n);case"string":return this.storeString(e,n);case"bytes":return this.storeBytes(e,n);case"double":return this.storeDouble(e,n);case"Bool":return this.storeBool(e,n)}if(angular.isArray(e)){if("Vector"==t.substr(0,6))this.writeInt(481674261,n+"[id]");else if("vector"!=t.substr(0,6))throw new Error("Invalid vector type "+t);var i=t.substr(7,t.length-8);this.writeInt(e.length,n+"[count]");for(var a=0;a<e.length;a++)this.storeObject(e[a],i,n+"["+a+"]");return!0}if("vector"==t.substr(0,6).toLowerCase())throw new Error("Invalid vector object");if(!angular.isObject(e))throw new Error("Invalid object for type "+t);
var a,o=this.mtproto?Config.Schema.MTProto:Config.Schema.API,r=e._,s=!1,c=!1;for((s="%"==t.charAt(0))&&(t=t.substr(1)),a=0;a<o.constructors.length;a++)if(o.constructors[a].predicate==r){c=o.constructors[a];break}if(!c)throw new Error("No predicate "+r+" found");r==t&&(s=!0),s||this.writeInt(intToUint(c.id),n+"["+r+"][id]");var l=this;return angular.forEach(c.params,function(t){l.storeObject(e[t.name],t.type,n+"["+r+"]["+t.name+"]")}),c.type},TLDeserialization.prototype.readInt=function(e){if(this.offset>=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;for(var n=[],i=0;t>i;i++)n.push(this.byteView[this.offset++]);for(;this.offset%4;)this.offset++;return this.debug&&console.log("<<<",bytesToHex(n),(e||"")+":bytes"),n},TLDeserialization.prototype.fetchIntBytes=function(e,t){if(e%32)throw new Error("Invalid bits: "+e);for(var n=e/8,i=[],a=0;n>a;a++)i.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(i),(t||"")+":int"+e),i},TLDeserialization.prototype.fetchRawBytes=function(e,t){e===!1&&(e=this.readInt((t||"")+"_length"));for(var n=[],i=0;e>i;i++)n.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(n),t||""),n},TLDeserialization.prototype.fetchObject=function(e,t){switch(e){case"int":return this.fetchInt(t);case"long":return this.fetchLong(t);case"int128":return this.fetchIntBytes(128,t);case"int256":return this.fetchIntBytes(256,t);case"int512":return this.fetchIntBytes(512,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),r=0;i>r;r++)a.push(this.fetchObject(o,t+"["+r+"]"));return a}var s=this.mtproto?Config.Schema.MTProto:Config.Schema.API,c=!1,l=!1;if("%"==e.charAt(0)){var u=e.substr(1);for(r=0;r<s.constructors.length;r++)if(s.constructors[r].type==u){l=s.constructors[r];break}if(!l)throw new Error("Constructor not found for type: "+e)}else if(e.charAt(0)>=97&&e.charAt(0)<=122){for(r=0;r<s.constructors.length;r++)if(s.constructors[r].predicate==e){l=s.constructors[r];break}if(!l)throw new Error("Constructor not found for predicate: "+e)}else{var n=this.readInt(t+"[id]"),d=uintToInt(n);if(812830625==d){var p=this.fetchBytes(t+"[packed_string]"),h=gzipUncompress(p),f=bytesToArrayBuffer(h),g=new TLDeserialization(f);return g.fetchObject(e,t)}for(r=0;r<s.constructors.length;r++)if(s.constructors[r].id==d){l=s.constructors[r];break}var m=!1;if(!l&&this.mtproto){var v=Config.Schema.API;for(r=0;r<v.constructors.length;r++)if(v.constructors[r].id==d){l=v.constructors[r],delete this.mtproto,m=!0;break}}if(!l)throw new Error("Constructor not found: "+n)}c=l.predicate;var a={_:c},y=(this.mtproto?"mt_":"")+c,_=this;return this.override[y]?this.override[y].apply(this,[a,t+"["+c+"]"]):angular.forEach(l.params,function(e){a[e.name]=_.fetchObject(e.type,t+"["+c+"]["+e.name+"]")}),m&&(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(){var e="",t={},n=!!(window.chrome&&chrome.storage&&chrome.storage.local),i=!n&&!!window.localStorage;this.setPrefix=function(t){e=t},this.$get=["$q",function(a){function o(){for(var o=Array.prototype.slice.call(arguments),r=[],s=1==o.length,c=!0,l=0;l<o.length;l++)o[l]=e+o[l];if(angular.forEach(o,function(e){if(void 0!==t[e])r.push(t[e]);else if(i){var a=localStorage.getItem(e);a=void 0===a||null===a?!1:JSON.parse(a),r.push(t[e]=a)}else n?c=!1:r.push(t[e]=!1)}),c)return a.when(s?r[0]:r);var u=a.defer();return chrome.storage.local.get(o,function(e){r=[],angular.forEach(o,function(n){var i=e[n];i=void 0===i||null===i?!1:JSON.parse(i),r.push(t[n]=i)}),u.resolve(s?r[0]:r)}),u.promise}function r(o){var r={};if(angular.forEach(o,function(n,i){r[e+i]=JSON.stringify(n),t[e+i]=n}),i)return angular.forEach(r,function(e,t){localStorage.setItem(t,e)}),a.when();if(!n)return a.when();var s=a.defer();return chrome.storage.local.set(r,function(){s.resolve()}),s.promise}function s(){for(var o=Array.prototype.slice.call(arguments),r=0;r<o.length;r++)o[r]=e+o[r];if(angular.forEach(o,function(e){delete t[e]}),i)return angular.forEach(o,function(e){localStorage.removeItem(e)}),a.when();if(!n)return a.when();var s=a.defer();return chrome.storage.local.remove(o,function(){s.resolve()}),s.promise}return{get:o,set:r,remove:s}}]}).service("FileManager",["$window","$timeout","$q",function(e,t,n){function i(){return p}function a(e,t){return c(t).then(function(t){return r(t,e).then(function(){return t},function(e){return n.reject(e)})})}function o(e,t){var n;try{n=new Blob(e,{type:t})}catch(i){var a=new BlobBuilder;angular.forEach(e,function(e){a.append(e)}),n=a.getBlob(t)}return n}function r(e,t){var i=n.defer();if(e.onwriteend=function(){i.resolve()},e.onerror=function(e){i.reject(e)},t.file)t.file(function(t){e.write(t)},function(e){i.reject(e)});else if(t instanceof Blob)e.write(t);else{try{var a=o([bytesToArrayBuffer(t)])}catch(r){i.reject(r)}e.write(a)}return i.promise}function s(t,i,a){if(!e.chrome||!chrome.fileSystem||!chrome.fileSystem.chooseEntry)return n.reject();var o=n.defer();return chrome.fileSystem.chooseEntry({type:"saveFile",suggestedName:t,accepts:[{mimeTypes:[a],extensions:[i]}]},function(e){o.resolve(e)}),o.promise}function c(e){var t=n.defer();return e.createWriter(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise}function l(e,n){var i=[],a={write:function(e){return p?(i.push(e),void t(function(){a.onwriteend&&a.onwriteend()})):(a.onerror&&a.onerror(new Error("Blob not supported by browser")),!1)},truncate:function(){i=[]},finalize:function(){var t=o(i,e);return n&&n(t),t}};return a}function u(e,t){return void 0!==e.toURL?e.toURL(t):e instanceof Blob?URL.createObjectURL(e):"data:"+t+";base64,"+bytesToBase64(e)}function d(e,n,i){var a=$("<a>Download</a>").css({position:"absolute",top:1,left:1}).attr("href",e).attr("target","_blank").attr("download",i).appendTo("body");a[0].dataset.downloadurl=[n,i,e].join(":"),a[0].click(),t(function(){a.remove()},100)}e.URL=e.URL||e.webkitURL,e.BlobBuilder=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder;var p=!0;try{o([],"")}catch(h){p=!1}return{isAvailable:i,copy:a,write:r,getFileWriter:c,getFakeFileWriter:l,chooseSave:s,getUrl:u,download:d}}]).service("IdbFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){return p}function a(){if(c)return c;try{var t=indexedDB.open(l,d),n=e.defer(),i=function(e){e.createObjectStore(u)}}catch(a){return p=!1,e.reject(a)}return t.onsuccess=function(){db=t.result,db.onerror=function(e){p=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},db.setVersion&&db.version!=d?db.setVersion(d).onsuccess=function(){i(db),n.resolve(db)}:n.resolve(db)},t.onerror=function(e){p=!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){try{var a=e.defer(),o=i.transaction([u],IDBTransaction.READ_WRITE||"readwrite").objectStore(u),r=o.put(n,t)}catch(s){return p=!1,e.reject(s)}return r.onsuccess=function(){a.resolve(n)},r.onerror=function(e){a.reject(e)},a.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){void 0===e.target.result?i.reject():i.resolve(e.target.result)},o.onerror=function(e){i.reject(e)},i.promise})}function s(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,l="cachedFiles",u="files",d=1,p=void 0!==t.indexedDB&&void 0!==t.IDBTransaction;return a(),{isAvailable:i,saveFile:o,getFile:r,getFileWriter:s}}]).service("TmpfsFileStorage",["$q","$window","FileManager",function(e,t,n){function i(){if(c)return c;if(!t.requestFileSystem)return c=e.reject({type:"FS_BROWSER_UNSUPPORTED",description:"requestFileSystem not present"});var n=e.defer();return t.requestFileSystem(t.TEMPORARY,5242880,function(e){cachedFs=e,n.resolve()},function(e){l=!1,n.reject(e)}),c=n.promise}function a(){return l}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 r(e,t){return s(e).then(function(e){return n.write(e,t).then(function(){return e.finalize()})})}function s(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){i.reject(e)})},function(e){i.reject(e)}),i.promise})}t.requestFileSystem=t.requestFileSystem||t.webkitRequestFileSystem;var c,l=void 0!==t.requestFileSystem;return i(),{isAvailable:a,saveFile:r,getFile:o,getFileWriter:s}}]).service("MemoryFileStorage",["$q","FileManager",function(e,t){function n(){return!0}function i(t){return r[t]?e.when(r[t]):e.reject(new Error("FILE_NOT_FOUND"))}function a(t,n){return e.when(r[t]=n)}function o(n,i){var o=t.getFakeFileWriter(i,function(e){a(n,e)});return e.when(o)}var r={};return{isAvailable:n,saveFile:a,getFile:i,getFileWriter:o}}]).service("CryptoWorker",["$timeout","$q",function(e,t){function n(e,n){console.log(dT(),"CW start",e);var r=t.defer();return o[a]=r,n.task=e,n.taskID=a,i.postMessage(n),a++,r.promise}var i=window.Worker&&new Worker("js/lib/crypto_worker.js")||!1,a=0,o={};return i&&(i.onmessage=function(e){var t=o[e.data.taskID];void 0!==t&&(console.log(dT(),"CW done"),t.resolve(e.data.result),delete o[e.data.taskID])},i.onerror=function(e){console.log("CW error",e,e.stack)}),{sha1Hash:function(t){return e(function(){return sha1Hash(t)})},aesEncrypt:function(t,n,i){return e(function(){return aesEncrypt(t,n,i)})},aesDecrypt:function(t,n,i){return e(function(){return aesDecrypt(t,n,i)})},factorize:function(t){return 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)})}}}]),angular.module("izhukov.mtproto",["izhukov.utils"]).factory("MtpDcConfigurator",function(){function e(e){if(void 0===n[e]){var i,a,o=!1;for(i=0;i<t.length;i++)a=t[i],a.id==e&&(o=a.host+":"+a.port);n[e]=o}return n[e]}var t=Config.Modes.test?[{id:1,host:"173.240.5.253",port:80},{id:2,host:"149.154.167.40",port:80},{id:3,host:"174.140.142.5",port:80}]:[{id:1,host:"173.240.5.1",port:80},{id:2,host:"149.154.167.50",port:80},{id:3,host:"174.140.142.6",port:80},{id:4,host:"149.154.167.90",port:80},{id:5,host:"149.154.171.5",port:80}],n={};return{chooseServer:e}}).factory("MtpRsaKeysManager",function(){function e(){if(!a){for(var e=0;e<n.length;e++){var t=n[e],o=new TLSerialization;o.storeBytes(bytesFromHex(t.modulus),"n"),o.storeBytes(bytesFromHex(t.exponent),"e");var r=o.getBuffer(),s=sha1Hash(r).slice(-8);s.reverse(),i[bytesToHex(s)]={modulus:t.modulus,exponent:t.exponent}}a=!0}}function t(t){e();var n,a,o;for(o=0;o<t.length;o++)if(n=bigStringInt(t[o]).toString(16),a=i[n])return angular.extend({fingerprint:t[o]},a);return!1}var n=[{modulus:"c150023e2f70db7985ded064759cfecf0af328e69a41daf4d6f01b538135a6f91f8f8b2a0ec9ba9720ce352efcf6c5680ffc424bd634864902de0b4bd6d49f4e580230e3ae97d95c8b19442b3c0a10d8f5633fecedd6926a7f6dab0ddb7d457f9ea81b8465fcd6fffeed114011df91c059caedaf97625f6c96ecc74725556934ef781d866b34f011fce4d835a090196e9a5f0e4449af7eb697ddb9076494ca5f81104a305b6dd27665722c46b60e5df680fb16b210607ef217652e60236c255f6a28315f4083a96791d7214bf64c1df4fd0db1944fb26a2a57031b32eee64ad15a8ba68885cde74a5bfc920f6abf59ba5c75506373e7130f9042da922179251f",exponent:"010001"}],i={},a=!1;return{prepare:e,select:t}}).service("MtpSecureRandom",function(){return new SecureRandom}).factory("MtpTimeManager",["Storage",function(e){function t(){var e=tsNow(),t=Math.floor(e/1e3)+a,n=e%1e3,o=nextRandomInt(65535),r=[t,n<<21|o<<3|4];return(i[0]>r[0]||i[0]==r[0]&&i[1]>=r[1])&&(r=[i[0],i[1]+4]),i=r,longFromInts(r[0],r[1])}function n(t,n){var o=t-Math.floor((n||tsNow())/1e3),r=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,r),r}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,r,s){function c(t,n){var a=n.byteLength,s=new Int32Array(n),c=new TLSerialization;c.storeLongP(0,0,"auth_key_id"),c.storeLong(i.generateID(),"msg_id"),c.storeInt(a,"request_length");var l=c.getBuffer(),u=new Int32Array(l),d=l.byteLength,p=new ArrayBuffer(d+a),h=new Int32Array(p);return h.set(u),h.set(s,u.length),delete o.defaults.headers.post["Content-Type"],delete o.defaults.headers.common.Accept,"ArrayBufferView"in window||g&&!(30>g)||(h=h.buffer),o.post("http://"+e.chooseServer(t)+"/apiw1",h,{responseType:"arraybuffer",transformRequest:null}).then(function(e){if(!e.data||!e.data.byteLength)return r.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 r.reject({code:406,type:"NETWORK_BAD_RESPONSE",originalError:n})}return rng_seed_time(),t},function(e){return e.message||e.type||(e={code:406,type:"NETWORK_BAD_REQUEST",originalError:e}),r.reject(e)})}function l(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)),c(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]),u(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)}),s(function(){t.prepare()})}function u(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=sha1Hash(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"),c(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=sha1Hash(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{d(e,i.encrypted_answer)}catch(o){return t.reject(o),!1}p(e)},function(e){t.reject(e)})}function d(e,t){e.localTime=tsNow(),e.tmpAesKey=sha1Hash(e.newNonce.concat(e.serverNonce)).concat(sha1Hash(e.serverNonce.concat(e.newNonce)).slice(0,12)),e.tmpAesIv=sha1Hash(e.serverNonce.concat(e.newNonce)).slice(12).concat(sha1Hash([].concat(e.newNonce,e.newNonce)),e.newNonce.slice(0,4));var n=aesDecrypt(t,e.tmpAesKey,e.tmpAesIv),a=n.slice(0,20),o=n.slice(20),r=bytesToArrayBuffer(o),s=new TLDeserialization(r,{mtproto:!0}),c=s.fetchObject("Server_DH_inner_data");if("server_DH_inner_data"!=c._)throw new Error("server_DH_inner_data response invalid: "+constructor);if(!bytesCmp(e.nonce,c.nonce))throw new Error("server_DH_inner_data nonce mismatch");if(!bytesCmp(e.serverNonce,c.server_nonce))throw new Error("server_DH_inner_data serverNonce mismatch");console.log(dT(),"Done decrypting answer"),e.g=c.g,e.dhPrime=c.dh_prime,e.gA=c.g_a,e.serverTime=c.server_time,e.retry=0;var l=s.getOffset();if(!bytesCmp(a,sha1Hash(o.slice(0,l))))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=sha1Hash(i.getBuffer()).concat(i.getBytes()),r=aesEncrypt(o,e.tmpAesKey,e.tmpAesIv),s=new TLSerialization({mtproto:!0});s.storeMethod("set_client_DH_params",{nonce:e.nonce,server_nonce:e.serverNonce,encrypted_data:r}),console.log(dT(),"Send set_client_DH_params"),c(e.dcID,s.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=sha1Hash(n),o=a.slice(0,8),r=a.slice(-8);switch(console.log(dT(),"Got Set_client_DH_params_answer",i._),i._){case"dh_gen_ok":var s=sha1Hash(e.newNonce.concat([1],o)).slice(-16);if(!bytesCmp(s,i.new_nonce_hash1))return t.reject(new Error("Set_client_DH_params_answer new_nonce_hash1 mismatch")),!1;var c=bytesXor(e.newNonce.slice(0,8),e.serverNonce.slice(0,8));e.authKeyID=r,e.authKey=n,e.serverSalt=c,t.resolve(e);break;case"dh_gen_retry":var l=sha1Hash(e.newNonce.concat([2],o)).slice(-16);return bytesCmp(l,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 u=sha1Hash(e.newNonce.concat([3],o)).slice(-16);return bytesCmp(u,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 h(t){if(void 0!==m[t])return m[t];for(var n=[],i=0;16>i;i++)n.push(nextRandomInt(255));if(!e.chooseServer(t))return r.reject(new Error("No server found for dc "+t));var a={dcID:t,nonce:n,deferred:r.defer()};return s(function(){l(a)}),m[t]=a.deferred.promise,m[t]["catch"](function(){delete m[t]}),m[t]}var f=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),g=f&&parseFloat(f[1])||!1,m={};return{auth:h}}]).factory("MtpNetworkerFactory",["MtpDcConfigurator","MtpTimeManager","MtpSecureRandom","Storage","CryptoWorker","$http","$q","$timeout","$interval","$rootScope",function(e,t,n,i,a,o,r,s,c,l){function u(e,t,n,i){i=i||{},this.dcID=e,this.iii=p++,this.authKey=t,this.authKeyID=sha1Hash(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(),h||(h=!0,l.offline=!0,l.offlineConnecting=!0),Config.Navigator.mobile&&this.setupMobileSleep()}var d,p=0,h=!1,f=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),g=f&&parseFloat(f[1])||!1;return l.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;l.$watch("idle.isIDLE",function(t){t?e.sleepAfter=tsNow()+3e4:(delete e.sleepAfter,e.checkLongPoll())}),l.$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(),r=this.generateSeqNo(),s={msg_id:o,seq_no:r,body:a.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT call",e,n,o,r),this.pushMessage(s,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),r={msg_id:a,seq_no:o,body:i.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT message",e,a,o),this.pushMessage(r,n)},u.prototype.wrapApiCall=function(e,n,i){var a=new TLSerialization(i);this.connectionInited||(a.storeInt(3479112071,"invokeWithLayer16"),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(),r=this.generateSeqNo(),s={msg_id:o,seq_no:r,body:a.getBytes(),isAPI:!0};return Config.Modes.debug?console.log(dT(),"Api call",e,n,o,r,i):console.log(dT(),"Api call",e),this.pushMessage(s,i)},u.prototype.checkLongPoll=function(){var e=this.cleanupSent();if(this.longPollPending&&tsNow()<this.longPollPending||this.offline)return!1;var t=this;i.get("dc").then(function(n){e&&(n!=t.dcID||t.upload||t.sleepAfter&&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,s(t.checkLongPoll.bind(t),0)},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<i.inner.length;a++)this.pendingMessages[i.inner[a]]=n;else this.pendingMessages[e]=n;this.sheduleRequest(t)},u.prototype.getMsgKeyIv=function(e,t){var n=this.authKey,i=t?0:8,o={sha1a:a.sha1Hash(e.concat(n.slice(i,i+32))),sha1b:a.sha1Hash(n.slice(32+i,48+i).concat(e,n.slice(48+i,64+i))),sha1c:a.sha1Hash(n.slice(64+i,96+i).concat(e)),sha1d:a.sha1Hash(e.concat(n.slice(96+i,128+i)))};return r.all(o).then(function(e){var t=e.sha1a.slice(0,8).concat(e.sha1b.slice(8,20),e.sha1c.slice(4,16)),n=e.sha1a.slice(8,20).concat(e.sha1b.slice(0,8),e.sha1c.slice(16,20),e.sha1d.slice(0,8));return[t,n]})},u.prototype.checkConnection=function(e){l.offlineConnecting=!0,console.log(dT(),"Check connection",e),s.cancel(this.checkConnectionPromise);var n=new TLSerialization({mtproto:!0}),i=[nextRandomInt(4294967295),nextRandomInt(4294967295)];n.storeMethod("ping",{ping_id:i});var a={msg_id:t.generateID(),seq_no:this.generateSeqNo(!0),body:n.getBytes()},o=this;this.sendEncryptedRequest(a).then(function(){delete l.offlineConnecting,o.toggleOffline(!1)},function(){console.log(dT(),"Delay ",1e3*o.checkConnectionPeriod),o.checkConnectionPromise=s(o.checkConnection.bind(o),parseInt(1e3*o.checkConnectionPeriod)),o.checkConnectionPeriod=Math.min(60,1.5*o.checkConnectionPeriod),s(function(){delete l.offlineConnecting},1e3)})},u.prototype.toggleOffline=function(e){return void 0!==this.offline&&this.offline==e?!1:(this.offline=e,l.offline=e,l.offlineConnecting=!1,void(this.offline?(s.cancel(this.nextReqPromise),delete this.nextReq,this.checkConnectionPeriod<1.5&&(this.checkConnectionPeriod=0),this.checkConnectionPromise=s(this.checkConnection.bind(this),parseInt(1e3*this.checkConnectionPeriod)),this.checkConnectionPeriod=Math.min(60,1.5*(1+this.checkConnectionPeriod)),this.onOnlineCb=this.checkConnection.bind(this),$(document.body).on("online",this.onOnlineCb)):(delete this.longPollPending,this.checkLongPoll(),this.sheduleRequest(),this.onOnlineCb&&$(document.body).off("online",this.onOnlineCb),s.cancel(this.checkConnectionPromise))))},u.prototype.performSheduledRequest=function(){if(this.offline)return console.log(dT(),"Cancel sheduled"),!1;if(delete this.nextReq,this.pendingAcks.length){for(var e=[],n=0;n<this.pendingAcks.length;n++)e.push(this.pendingAcks[n]);this.wrapMtpMessage({_:"msgs_ack",msg_ids:e},{notContentRelated:!0,noShedule:!0})}if(this.pendingResends.length){for(var i=[],a={noShedule:!0,notContentRelated:!0},n=0;n<this.pendingResends.length;n++)i.push(this.pendingResends[n]);this.wrapMtpMessage({_:"msg_resend_req",msg_ids:i},a),this.lastResendReq={req_msg_id:a.messageID,resend_msg_ids:i}}var o,r=[],s=0,c=tsNow(),l=!1,u=!1,d=this;if(angular.forEach(this.pendingMessages,function(e,t){(!e||e>=c)&&((o=d.sentMessages[t])&&(r.push(o),s+=o.body.length+32,o.isAPI?l=!0:o.longPoll&&(u=!0)),delete d.pendingMessages[t])}),l&&!u){var p=new TLSerialization({mtproto:!0});p.storeMethod("http_wait",{max_delay:0,wait_after:0,max_wait:1e3}),r.push({msg_id:t.generateID(),seq_no:this.generateSeqNo(),body:p.getBytes()})}if(r.length){var h=[];if(r.length>1){var f=new TLSerialization({mtproto:!0,startMaxLength:s+64});f.storeInt(1945237724,"CONTAINER[id]"),f.storeInt(r.length,"CONTAINER[count]");for(var g=[],n=0;n<r.length;n++)f.storeLong(r[n].msg_id,"CONTAINER["+n+"][msg_id]"),g.push(r[n].msg_id),f.storeInt(r[n].seq_no,"CONTAINER["+n+"][seq_no]"),f.storeInt(r[n].body.length,"CONTAINER["+n+"][bytes]"),f.storeRawBytes(r[n].body,"CONTAINER["+n+"][body]"),r[n].noResponse&&h.push(r[n].msg_id);var m={msg_id:t.generateID(),seq_no:this.generateSeqNo(!0),container:!0,inner:g};o=angular.extend({body:f.getBytes()},m),this.sentMessages[o.msg_id]=m,Config.Modes.debug&&console.log(dT(),"Container",g,o.msg_id,o.seq_no)}else o.noResponse&&h.push(o.msg_id),this.sentMessages[o.msg_id]=o;this.pendingAcks=[];var d=this;this.sendEncryptedRequest(o).then(function(e){d.toggleOffline(!1),d.parseResponse(e.data).then(function(e){Config.Modes.debug&&console.log(dT(),"Server response",d.dcID,e),d.processMessage(e.response,e.messageID,e.sessionID),angular.forEach(h,function(e){if(d.sentMessages[e]){var t=d.sentMessages[e].deferred;delete d.sentMessages[e],t.resolve()}}),d.checkLongPoll(),this.checkConnectionPeriod=Math.max(1.1,Math.sqrt(this.checkConnectionPeriod))})},function(e){console.log("Encrypted request failed",e),o.container?(angular.forEach(o.inner,function(e){d.pendingMessages[e]=0}),delete d.sentMessages[o.msg_id]):d.pendingMessages[o.msg_id]=0,angular.forEach(h,function(e){if(d.sentMessages[e]){var t=d.sentMessages[e].deferred;delete d.sentMessages[e],delete d.pendingMessages[e],t.reject()}}),d.toggleOffline(!0)})}},u.prototype.getEncryptedMessage=function(e){var t=this;return a.sha1Hash(e).then(function(n){var i=n.slice(-16);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){var n=this,i=new TLSerialization({startMaxLength:t.body.length+64});return i.storeIntBytes(this.serverSalt,64,"salt"),i.storeIntBytes(this.sessionID,64,"session_id"),i.storeLong(t.msg_id,"message_id"),i.storeInt(t.seq_no,"seq_no"),i.storeInt(t.body.length,"message_data_length"),i.storeRawBytes(t.body,"message_data"),this.getEncryptedMessage(i.getBytes()).then(function(t){var i=new TLSerialization({startMaxLength:t.bytes.length+256});i.storeIntBytes(n.authKeyID,64,"auth_key_id"),i.storeIntBytes(t.msgKey,128,"msg_key"),i.storeRawBytes(t.bytes,"encrypted_data"),delete o.defaults.headers.post["Content-Type"],delete o.defaults.headers.common.Accept;var a=i.getArray();return"ArrayBufferView"in window||g&&!(30>g)||(a=a.buffer),o.post("http://"+e.chooseServer(n.dcID)+"/apiw1",a,{responseType:"arraybuffer",transformRequest:null}).then(function(e){return e.data&&e.data.byteLength?e:r.reject({code:406,type:"NETWORK_BAD_RESPONSE"})},function(e){return 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,"auth_key_id");if(!bytesCmp(i,this.authKeyID))throw new Error("Invalid server auth_key_id: "+bytesToHex(i));var o=n.fetchIntBytes(128,"msg_key"),r=e.byteLength-n.getOffset(),s=n.fetchRawBytes(r,"encrypted_data");return this.getDecryptedMessage(o,s).then(function(e){var n=bytesToArrayBuffer(e),i=new TLDeserialization(n,{mtproto:!0}),r=(i.fetchIntBytes(64,"salt"),i.fetchIntBytes(64,"session_id")),s=i.fetchLong("message_id"),c=i.fetchInt("seq_no"),l=i.fetchRawBytes(!1,"message_data"),u=i.getOffset();
return a.sha1Hash(e.slice(0,u)).then(function(e){if(!bytesCmp(o,e.slice(-16)))throw new Error("server msgKey mismatch");var n=bytesToArrayBuffer(l),i={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),console.log(dT(),e),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]")}}},a=new TLDeserialization(n,i),u=a.fetchObject("","INPUT");return{response:u,messageID:s,sessionID:r,seqNo:c}})})},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:(s.cancel(this.nextReqPromise),this.nextReqPromise=s(this.performSheduledRequest.bind(this),e||0),void(this.nextReq=t))},u.prototype.onSessionCreate=function(){},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;a<n.inner.length;a++)if(void 0!==e.sentMessages[n.inner[a]])return void(t=!0);delete e.sentMessages[i]}else t=!0}),!t},u.prototype.processMessageAck=function(e){var t=this.sentMessages[e];return t&&!t.acked?(delete t.body,t.acked=!0,!0):!1},u.prototype.processError=function(e){var t=(e.error_message||"").match(/^([A-Z_0-9]+\b)(: (.+))?/)||[];return e.error_code=uintToInt(e.error_code),{code:!e.error_code||e.error_code<=0?500:e.error_code,type:t[1]||"UNKNOWN",description:t[3]||"CODE#"+e.error_code+" "+e.error_message,originalError:e}},u.prototype.processMessage=function(e,n,i){switch(e._){case"msg_container":for(var a=e.messages.length,o=0;a>o;o++)this.processMessage(e.messages[o],n,i);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 s=this.updateSentMessage(e.bad_msg_id);this.pushResend(s.msg_id),this.ackMessage(n)}break;case"message":this.serverMessages.push(e.msg_id),this.processMessage(e.body,e.msg_id,i);break;case"new_session_created":this.ackMessage(n),this.processMessageAck(e.first_msg_id),this.applyServerSalt(e.server_salt),this.onSessionCreate(i,n);break;case"msgs_ack":for(var o=0;o<e.msg_ids.length;o++)this.processMessageAck(e.msg_ids[o]);break;case"msg_detailed_info":if(!this.sentMessages[e.msg_id]){this.ackMessage(e.answer_msg_id);break}case"msg_new_detailed_info":this.reqResendMessage(e.answer_msg_id);break;case"msgs_state_info":if(this.ackMessage(e.answer_msg_id),this.lastResendReq&&this.lastResendReq.req_msg_id==e.req_msg_id&&this.pendingResends.length){var o,c,l;for(o=0;o<this.lastResendReq.resend_msg_ids.length;o++)c=this.lastResendReq.resend_msg_ids[o],l=this.pendingResends.indexOf(c),-1!=l&&this.pendingResends.splice(l,1)}break;case"rpc_result":this.ackMessage(n);var u=e.req_msg_id,r=this.sentMessages[u];if(this.processMessageAck(u),r){var p=r.deferred;if("rpc_error"==e.result._){var h=this.processError(e.result);console.log(dT(),"Rpc error",h),p&&p.reject(h)}else{if(p){if(Config.Modes.debug)console.log(dT(),"Rpc response",e.result);else{var f=e.result._;f||(f=e.result.length>5?"[.."+e.result.length+"..]":e.result),console.log(dT(),"Rpc response",f)}r.deferred.resolve(e.result)}r.isAPI&&(this.connectionInited=!0)}delete this.sentMessages[u]}break;default:this.ackMessage(n),d&&d(e)}},{getNetworker:function(e,t,n,i){return new u(e,t,n,i)},setUpdatesProcessor:function(e){d=e}}}]),angular.module("izhukov.mtproto.wrapper",["izhukov.utils","izhukov.mtproto"]).factory("MtpApiManager",["Storage","MtpAuthorizer","MtpNetworkerFactory","ErrorService","$q",function(e,t,n,i,a){function o(t,n){e.set({dc:t,user_auth:angular.extend({dcID:t},n)}),f=t}function r(){return c("auth.logOut").then(function(){e.remove("dc","user_auth"),f=!1},function(t){e.remove("dc","user_auth"),t&&401!=t.code&&e.remove("dc"+f+"_auth_key"),f=!1,t.handled=!0})}function s(i,o){o=o||{};var r=o.fileUpload||o.fileDownload?p:d;if(!i)throw new Exception("get Networker without dcID");if(void 0!==r[i])return a.when(r[i]);var s="dc"+i+"_auth_key",c="dc"+i+"_server_salt";return e.get(s,c).then(function(l){if(void 0!==r[i])return r[i];var u=l[0],d=l[1];if(u&&512==u.length){var p=bytesFromHex(u),h=bytesFromHex(d);return r[i]=n.getNetworker(i,p,h,o)}return o.createNetworker?t.auth(i).then(function(t){var a={};return a[s]=bytesToHex(t.authKey),a[c]=bytesToHex(t.serverSalt),e.set(a),r[i]=n.getNetworker(i,t.authKey,t.serverSalt,o)},function(e){return console.log("Get networker error",e,e.stack),a.reject(e)}):a.reject({type:"AUTH_KEY_EMPTY",code:401})})}function c(t,n,o){o=o||{};var r,l,u=a.defer(),d=function(e){e?angular.isObject(e)||(e={message:e}):e={type:"ERROR_EMPTY"},u.reject(e),o.noErrorBox||(e.input=t,e.stack=e.stack||(new Error).stack,setTimeout(function(){e.handled||(i.show({error:e}),e.handled=!0)},100))};l=(r=o.dcID)?s(r,o):e.get("dc").then(function(e){return s(r=e||2,o)});var p,g=!1;if(l.then(function(i){return(p=i).wrapApiCall(t,n,o).then(function(e){u.resolve(e)},function(l){if(console.error(dT(),"Error",l.code,l.type,f,r),401==l.code&&f==r)e.remove("dc","user_auth");else if(401==l.code&&f&&r!=f){if(void 0===h[r]){var g=a.defer();c("auth.exportAuthorization",{dc_id:r},{noErrorBox:!0}).then(function(e){c("auth.importAuthorization",{id:e.id,bytes:e.bytes},{dcID:r,noErrorBox:!0}).then(function(){g.resolve()},function(e){g.reject(e)})},function(e){g.reject(e)}),h[r]=g.promise}h[r].then(function(){(p=i).wrapApiCall(t,n,o).then(function(e){u.resolve(e)},function(e){d(e)})},function(e){d(e)})}else if(303==l.code){var m=l.type.match(/^(PHONE_MIGRATE_|NETWORK_MIGRATE_)(\d+)/)[2];m!=r&&(o.dcID?o.dcID=m:e.set({dc:f=m}),s(m,o).then(function(e){e.wrapApiCall(t,n,o).then(function(e){u.resolve(e)},function(e){d(e)})}))}else d(l)})},function(e){d(e)}),!(g=g||(new Error).stack))try{window.unexistingFunction()}catch(m){g=m.stack||""}return u.promise}function l(){return e.get("user_auth").then(function(e){return e.id||0})}function u(){return f||!1}var d={},p={},h={},f=!1;return e.get("dc").then(function(e){e&&(f=e)}),{getBaseDcID:u,getUserID:l,invokeApi:c,getNetworker:s,setUserAuth:o,logOut:r}}]).factory("MtpApiFileManager",["MtpApiManager","$q","FileManager","IdbFileStorage","TmpfsFileStorage","MemoryFileStorage",function(e,t,n,i,a,o){function r(e,n,i){void 0===_[e]&&(_[e]=[],b[e]=0);var a=_[e],o=t.defer();return a.push({cb:n,deferred:o,activeDelta:i}),s(e),o.promise}function s(e){var t=_[e];if(b[e]>=w||!t||!t.length)return!1;var n=t.shift(),i=n.activeDelta||1;b[e]+=i;$++;n.cb().then(function(t){b[e]-=i,s(e),n.deferred.resolve(t)},function(t){b[e]-=i,s(e),n.deferred.reject(t)})}function c(e){switch(e._){case"inputVideoFileLocation":return"video"+e.id+".mp4";case"inputDocumentFileLocation":return"doc"+e.id;case"inputAudioFileLocation":return"audio"+e.id}return e.volume_id||console.trace("Empty location",e),e.volume_id+"_"+e.local_id+"_"+e.secret+".jpg"}function l(e){if(!e)return!1;var t=c(e);return y[t]||!1}function u(){return a.isAvailable()?a:i.isAvailable()?i:o}function d(e,t){var i=c(e),a="image/jpeg";return m[i]||(m[i]=u().saveFile(i,t).then(function(e){return y[i]=n.getUrl(e,a)})),m[i]}function p(i){if(!n.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});var a=c(i),o="image/jpeg",s=m[a]||v[a];if(s)return s;var l=u();return v[a]=l.getFile(a).then(function(e){return y[a]=n.getUrl(e,o)},function(){var t=r(i.dc_id,function(){return e.invokeApi("upload.getFile",{location:angular.extend({},i,{_:"inputFileLocation"}),offset:0,limit:0},{dcID:i.dc_id,fileDownload:!0,createNetworker:!0})});return l.getFileWriter(a,o).then(function(e){return t.then(function(t){return n.write(e,t.bytes).then(function(){return y[a]=n.getUrl(e.finalize(),o)})})})})}function h(i,a,o,s){if(!n.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});s=s||{};var l=c(a),d=s.toFileEntry||null,p=m[l]||v[l],h=u();if(p)return d?p.then(function(){return h.getFile(l).then(function(e){return n.copy(e,d)})}):p;var f,g=t.defer(),_=!1,b=!1,w=s.mime||"image/jpeg",$=function(e){g.reject(e),$=angular.noop,f&&f.truncate(0)};return h.getFile(l).then(function(e){d?n.copy(e,d).then(function(){g.resolve()},$):g.resolve(y[l]=n.getUrl(e,w))},function(){var s=d?n.getFileWriter(d):h.getFileWriter(l,w);s.then(function(s){f=s;for(var c,u=524288,p=t.when(),h=0;o>h;h+=u)c=t.defer(),function(c,p,h,f){return r(i,function(){return _?t.when():e.invokeApi("upload.getFile",{location:a,offset:p,limit:u},{dcID:i,fileDownload:!0,createNetworker:!0})},6).then(function(e){f.then(function(){return _?t.when():n.write(s,e.bytes).then(function(){h.resolve()},$).then(function(){c?(b=!0,d?g.resolve():g.resolve(y[l]=n.getUrl(s.finalize(),w))):g.notify({done:p+u,total:o})})})})}(h+u>=o,h,c,p),p=c.promise})}),g.promise.cancel=function(){_||b||(_=!0,delete v[l],$({type:"DOWNLOAD_CANCELED"}))},d||(v[l]=g.promise),g.promise}function f(n){var i=n.size,a=i>102400?524288:32768,o=i>=10485760,r=Math.ceil(i/a),s=!1,c=!1,l=0;if(r>1500)return t.reject({type:"FILE_TOO_BIG"});var u,d=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=t.defer(),h=function(e){p.reject(e),h=angular.noop},f=0,m={_:o?"inputFileBig":"inputFile",id:d,parts:r,name:n.name,md5_checksum:""},v=t.when();for(u=0;i>u;u+=a)!function(u,f){v=v.then(function(){var v=t.defer(),y=new FileReader,_=n.slice(u,u+a);return y.onloadend=function(t){if(!s&&t.target.readyState==FileReader.DONE){var n=g=g.then(function(){return e.invokeApi(o?"upload.saveBigFilePart":"upload.saveFilePart",{file_id:d,file_part:f,file_total_parts:r,bytes:bytesFromArrayBuffer(t.target.result)},{startMaxLength:a+256,fileUpload:!0})},h);n.then(function(){l++,v.resolve(),l>=r?(p.resolve(m),c=!0):(console.log(dT(),"Progress",l*a/i),p.notify({done:l*a,total:i}))},h)}},y.readAsArrayBuffer(_),v.promise})}(u,f++);return p.promise.cancel=function(){console.log("cancel upload",s,c),s||c||(s=!0,h({type:"UPLOAD_CANCELED"}))},p.promise}var g=t.when(),m={},v={},y={},_={},b={},w=5,$=0;return{getCachedFile:l,downloadFile:h,downloadSmallFile:p,saveSmallFile:d,uploadFile:f}}]),angular.module("myApp",["ngRoute","ngSanitize","ngTouch","ui.bootstrap","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){var a,o,r,s,c,l,u,d={},p={};for(o=0;o<Config.EmojiCategories.length;o++)for(u=Config.EmojiCategorySpritesheetDimens[o][1],a=0;a<Config.EmojiCategories[o].length;a++)s=Config.Emoji[Config.EmojiCategories[o][a]],r=s[1][0],c=Math.floor(a/u),l=a%u,d[":"+r+":"]=[o,c,l,":"+r+":"],p[r]=s[0];$.emojiarea.spritesheetPath="img/emojisprite_!.png",$.emojiarea.spritesheetDimens=Config.EmojiCategorySpritesheetDimens,$.emojiarea.iconSize=20,$.emojiarea.icons=d,$.emojiarea.reverseIcons=p,n.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|filesystem|chrome-extension|app):|data:image\//),n.aHrefSanitizationWhitelist(/^\s*(https?|ftp|file|mailto|blob|filesystem|chrome-extension|app):|data:image\//),Config.Modes.test&&i.setPrefix("t_"),t.when("/",{templateUrl:"partials/welcome.html",controller:"AppWelcomeController"}),t.when("/login",{templateUrl:"partials/login.html",controller:"AppLoginController"}),t.when("/im",{templateUrl:"partials/im.html",controller:"AppIMController",reloadOnSearch:!1}),t.otherwise({redirectTo:"/"})}]),function(){var e=[Config.Navigator.osX?"osx":"non_osx",Config.Navigator.retina?"is_2x":"is_1x"];Config.Modes.ios_standalone&&e.push("ios_standalone"),$(document.body).addClass(e.join(" "))}(),angular.module("myApp.services",[]).service("AppUsersManager",["$rootScope","$modal","$modalStack","$filter","$q","MtpApiFileManager","MtpApiManager","RichTextProcessor","SearchIndexManager","ErrorService","Storage",function(e,t,n,i,a,o,r,s,c,l,u){function d(){return E?E:E=r.invokeApi("contacts.getContacts",{hash:""}).then(function(e){var t,n;A=[],f(e.users);for(var n=0;n<e.contacts.length;n++)t=e.contacts[n].user_id,A.push(t),c.indexObject(t,p(t),P);return A})}function p(e){var t=D[e];return t?(t.first_name||"")+" "+(t.last_name||"")+" "+(t.phone||""):!1}function h(e){return d().then(function(t){if(angular.isString(e)&&e.length){for(var n=c.search(e,P),i=[],a=0;a<t.length;a++)n[t[a]]&&i.push(t[a]);t=i}return t})}function f(e){angular.forEach(e,g)}function g(t){angular.isObject(t)&&(t.phone&&(t.rPhone=i("phoneNumber")(t.phone)),t.num=Math.abs(t.id)%8+1,t.first_name?(t.rFirstName=s.wrapRichText(t.first_name,{noLinks:!0,noLinebreaks:!0}),t.rFullName=s.wrapRichText(t.first_name+" "+(t.last_name||""),{noLinks:!0,noLinebreaks:!0})):(t.rFirstName=s.wrapRichText(t.last_name,{noLinks:!0,noLinebreaks:!0})||t.rPhone||"DELETED",t.rFullName=s.wrapRichText(t.last_name,{noLinks:!0,noLinebreaks:!0})||t.rPhone||"DELETED"),t.sortName=c.cleanSearchText(t.first_name+" "+(t.last_name||"")),t.sortStatus=t.status&&(t.status.expires||t.status.was_online)||0,void 0===D[t.id]?D[t.id]=t:safeReplaceObject(D[t.id],t),e.$broadcast("user_update",t.id),void 0!==I[t.id]&&safeReplaceObject(I[t.id],t&&t.photo&&t.photo.photo_small||{empty:!0}))}function m(e){return angular.isObject(e)?e:D[e]||{id:e,deleted:!0}}function v(e){return angular.isObject(D[e])}function y(e,t){var n=m(e);return 333e3==e?{placeholder:"img/placeholders/DialogListAvatarSystem@2x.png"}:(void 0===I[e]&&(I[e]=n&&n.photo&&n.photo.photo_small||{empty:!0}),{num:n.num,placeholder:"img/placeholders/"+t+"Avatar"+n.num+"@2x.png",location:I[e]})}function _(e){var t=m(e);return"u"+e+(t.access_hash?"_"+t.access_hash:"")}function b(e){var t=m(e);return"userSelf"==t._?{_:"inputUserSelf"}:{_:"inputUserForeign",user_id:e,access_hash:t.access_hash||0}}function w(){var t=tsNow(!0)+N;angular.forEach(D,function(n){n.status&&"userStatusOnline"==n.status._&&n.status.expires>t&&(n.status={_:"userStatusOffline",was_online:n.status.expires},e.$broadcast("user_update",n.id))})}function $(e){var t=m(e);return t}function C(n){var i=e.$new();i.userID=n;var a="partials/user_modal.html",o="user_modal_window page_modal";Config.Navigator.mobile&&(a="partials/mobile/user_modal.html",o+=" mobile_modal");t.open({templateUrl:a,controller:"UserModalController",scope:i,windowClass:o})}function k(e,t,n){return r.invokeApi("contacts.importContacts",{contacts:[{_:"inputPhoneContact",client_id:"1",phone:e,first_name:t,last_name:n}],replace:!1}).then(function(e){f(e.users);var t=!1;return angular.forEach(e.imported,function(e){M(t=e.user_id,!0)}),t?1:0})}function S(e){var t,n,i=[];for(t=0;t<e.length;t++)for(n=0;n<e[t].phones.length;n++)i.push({_:"inputPhoneContact",client_id:(t<<16|n).toString(10),phone:e[t].phones[n],first_name:e[t].first_name,last_name:e[t].last_name});return r.invokeApi("contacts.importContacts",{contacts:i,replace:!1}).then(function(e){f(e.users);var t=[];return angular.forEach(e.imported,function(e){M(e.user_id,!0),t.push(e.user_id)}),t})}function x(e){var t=[];return angular.forEach(e,function(e){t.push({_:"inputUserContact",user_id:e})}),r.invokeApi("contacts.deleteContacts",{id:t}).then(function(){angular.forEach(e,function(e){M(e,!1)})})}function M(e,t){if(angular.isArray(A)){var n=i=A.indexOf(e),i=-1!=n;t!=i&&(t?(A.push(e),c.indexObject(e,p(e),P)):A.splice(n,1))}}function T(){return t.open({templateUrl:"partials/import_contact_modal.html",controller:"ImportContactModalController",windowClass:"import_contact_modal_window"}).result.then(function(e){return e?e:a.reject()})}var E,A,D={},I={},P=c.createIndex(),N=0;return u.get("server_time_offset").then(function(e){e&&(N=e)}),e.openUser=C,e.$on("apiUpdate",function(t,n){switch(n._){case"updateUserStatus":var i=n.user_id,a=D[i];a&&(a.status=n.status,a.sortStatus=n.status&&(n.status.expires||n.status.was_online)||0,e.$broadcast("user_update",i));break;case"updateUserPhoto":var i=n.user_id;D[i]&&(safeReplaceObject(D[i].photo,n.photo),void 0!==I[i]&&safeReplaceObject(I[i],n.photo&&n.photo.photo_small||{empty:!0}),e.$broadcast("user_update",i));break;case"updateContactLink":M(n.user_id,"contacts.myLinkContact"==n.my_link._)}}),setInterval(w,6e4),{getContacts:h,saveApiUsers:f,saveApiUser:g,getUser:m,getUserInput:b,getUserPhoto:y,getUserString:_,getUserSearchText:p,hasUser:v,importContact:k,importContacts:S,deleteContacts:x,wrapForFull:$,openUser:C,openImportContact:T}}]).service("PhonebookContactsService",["$q","$modal","$sce","FileManager",function(e,t,n,i){function a(){if(Config.Navigator.mobile&&Config.Navigator.ffos&&Config.Modes.packed)try{return navigator.mozContacts&&navigator.mozContacts.getAll}catch(e){return console.error(dT(),"phonebook n/a",e),!1}return!1}function o(){return t.open({templateUrl:"partials/mobile/phonebook_modal.html",controller:"PhonebookModalController",windowClass:"phonebook_modal_window page_modal mobile_modal"})}function r(){try{var t=window.navigator.mozContacts.getAll({})}catch(a){return e.reject(a)}var o=e.defer(),r=[],s=0;return t.onsuccess=function(){if(this.result){var e={id:s,first_name:(this.result.givenName||[]).join(" "),last_name:(this.result.familyName||[]).join(" "),phones:[]};if(void 0!==this.result.tel)for(var t=0;t<this.result.tel.length;t++)e.phones.push(this.result.tel[t].value);if(this.result.photo&&this.result.photo[0])try{e.photo=i.getUrl(this.result.photo[0])}catch(a){}e.photo||(e.photo="img/placeholders/UserAvatar"+(Math.abs(s)%8+1)+"@2x.png"),e.photo=n.trustAsResourceUrl(e.photo),s++,r.push(e)}return!this.result||s>=1e3?void o.resolve(r):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:r}}]).service("AppChatsManager",["$rootScope","$modal","MtpApiFileManager","MtpApiManager","AppUsersManager","RichTextProcessor",function(e,t,n,i,a,o){function r(e){angular.forEach(e,s)}function s(e){angular.isObject(e)&&(e.rTitle=o.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0})||"DELETED",void 0===f[e.id]?f[e.id]=e:safeReplaceObject(f[e.id],e),void 0!==g[e.id]&&safeReplaceObject(g[e.id],e&&e.photo&&e.photo.photo_small||{empty:!0}))}function c(e){return f[e]||{id:e,deleted:!0}}function l(e){return angular.isObject(f[e])}function u(e,t){var n=c(e);return void 0===g[e]&&(g[e]=n&&n.photo&&n.photo.photo_small||{empty:!0}),{placeholder:"img/placeholders/"+t+"Avatar"+(Math.abs(e)%4+1)+"@2x.png",location:g[e]}}function d(e){c(e);return"g"+e}function p(e,t){var n=angular.copy(t),o=c(e);return n.participants&&"chatParticipants"==n.participants._&&i.getUserID().then(function(e){angular.forEach(n.participants.participants,function(t){t.user=a.getUser(t.user_id),t.inviter=a.getUser(t.inviter_id),t.canKick=e!=t.user_id&&(e==n.participants.admin_id||e==t.inviter_id)})}),n.thumb={placeholder:"img/placeholders/GroupAvatar"+(Math.abs(e)%4+1)+"@2x.png",location:o&&o.photo&&o.photo.photo_small,width:120,height:120,size:0},n.peerString=d(e),n.chat=o,n}function h(n){var i=e.$new();i.chatID=n;var a="partials/chat_modal.html",o="chat_modal_window page_modal";Config.Navigator.mobile&&(a="partials/mobile/chat_modal.html",o+=" mobile_modal");t.open({templateUrl:a,controller:"ChatModalController",scope:i,windowClass:o})}var f={},g={};return e.openChat=h,{saveApiChats:r,saveApiChat:s,getChat:c,getChatPhoto:u,getChatString:d,hasChat:l,wrapForFull:p,openChat:h}}]).service("AppPeersManager",["AppUsersManager","AppChatsManager",function(e,t){return{getInputPeer:function(e){var t="u"==e.charAt(0),n=e.substr(1).split("_");return t?{_:"inputPeerForeign",user_id:n[0],access_hash:n[1]}:{_:"inputPeerChat",chat_id:n[0]}},getInputPeerByID:function(t){return t>0?{_:"inputPeerForeign",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=e.getUserSearchText(n);else if(0>n){var a=t.getChat(-n);i=a.title||""}return i},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("SearchIndexManager",function(){function e(){return{shortIndexes:{},fullTexts:{}}}function t(e){e=e.replace(a," ").replace(o,"").toLowerCase();for(var t in r)r.hasOwnProperty(t)&&(e=e.replace(r[t],t));return e}function n(e,n,i){if(void 0!==i.fullTexts[e])return!1;if(n=t(n),!n.length)return!1;var a=i.shortIndexes;i.fullTexts[e]=n,angular.forEach(n.split(" "),function(t){var n,i,o=Math.min(t.length,3);for(i=1;o>=i;i++)n=t.substr(0,i),void 0===a[n]?a[n]=[e]:a[n].push(e)})}function i(e,n){var i=n.shortIndexes,a=n.fullTexts;e=t(e);var o,r,s,c,l,u=e.split(" "),d=!1;for(r=0;r<u.length;r++){if(o=i[u[r].substr(0,3)],!o){d=[];break}(d===!1||d.length>o.length)&&(d=o)}for(o={},s=0;s<d.length;s++){for(l=!0,c=a[d[s]],r=0;r<u.length;r++)if(-1==c.indexOf(u[r])){l=!1;break}l&&(o[d[s]]=!0)}return o}var a=/[`~!@#$%^&*()\-_=+\[\]\\|{}'";:\/?.>,<\s]+/g,o=/^\s+|\s$/g,r={a:/[åáâäà]/g,e:/[éêëè]/g,i:/[íîïì]/g,o:/[óôöò]/g,u:/[úûüù]/g,c:/ç/g,ss:/ß/g};return{createIndex:e,indexObject:n,cleanSearchText:t,search:i}}).service("AppMessagesManager",["$q","$rootScope","$location","$filter","ApiUpdatesManager","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","AppVideoManager","AppDocsManager","AppAudioManager","MtpApiManager","MtpApiFileManager","RichTextProcessor","NotificationsManager","SearchIndexManager","PeersSelectService","Storage",function(e,t,n,i,a,o,r,s,c,l,u,d,p,h,f,g,m,v,y){function _(t,n,i){var a=G;if(angular.isString(t)&&t.length){if(!i||et.query!==t){et.query=t;var c=m.search(t,J);et.dialogs=[],angular.forEach(G.dialogs,function(e){c[e.peerID]&&et.dialogs.push(e)}),et.count=et.dialogs.length}a=et}else et.query=!1;var l=0;if(n>0)for(l=0;l<a.dialogs.length&&!(n>a.dialogs[l].top_message);l++);return null!==a.count&&a.dialogs.length==a.count||a.dialogs.length>=l+(i||1)?e.when({count:a.count,dialogs:a.dialogs.slice(l,l+(i||20))}):(i=i||20,p.invokeApi("messages.getDialogs",{offset:l,limit:i,max_id:n||0}).then(function(e){if(o.saveApiUsers(e.users),r.saveApiChats(e.chats),E(e.messages),n>0)for(l=0;l<a.dialogs.length&&!(n>a.dialogs[l].top_message);l++);return a.count=e.count||e.dialogs.length,a.dialogs.splice(l,a.dialogs.length-l),angular.forEach(e.dialogs,function(e){var t=s.getPeerID(e.peer),n=s.getPeerSearchText(t);m.indexObject(t,n,J),a.dialogs.push({peerID:t,top_message:e.top_message,unread_count:e.unread_count}),void 0===W[t]&&(W[t]={count:null,history:[e.top_message],pending:[]}),g.savePeerSettings(t,e.notify_settings)}),{count:a.count,dialogs:a.dialogs.slice(l,l+i)}}))}function b(e,t,n,i){return p.invokeApi("messages.getHistory",{peer:e,offset:i||0,limit:n||0,max_id:t||0}).then(function(e){return o.saveApiUsers(e.users),r.saveApiChats(e.chats),E(e.messages),e})}function w(e,t,n,i){return b(e,t,n).then(function(a){i.count=a.count||a.messages.length;var o=0;if(t>0)for(o=0;o<i.history.length&&!(t>i.history[o]);o++);return i.history.splice(o,i.history.length-o),angular.forEach(a.messages,function(e){i.history.push(e.id)}),n-=a.messages.length,n>0&&i.history.length<i.count?(t=i.history[i.history.length-1],w(e,t,n,i)):!0})}function $(t,n,i,a){var o=s.getPeerID(t),r=W[o],c=0,l=!1,u=!1,d=!1,p=[];if(void 0===r?r=W[o]={count:null,history:[],pending:[]}:!n&&r.pending.length&&(p=r.pending.slice()),i||n){if(n>0)for(l=!0,c=0;c<r.history.length;c++)if(n>r.history[c]){l=!1;break}}else{var h=R(o);if(h&&h[0]&&h[0].unread_count>1){var f=h[0].unread_count;(d=f>50)?(i=10,u=6,c=f-u):(i=Math.max(10,f+2),u=f)}}return!l&&(null!==r.count&&r.history.length==r.count||r.history.length>=c+(i||1))?(a?(a=Math.min(c,a),c=Math.max(0,c-a),i+=a):i=i||(c?20:5),e.when({count:r.count,history:p.concat(r.history.slice(c,c+i)),unreadOffset:u,unreadSkip:d})):(a||i||(i=20),l&&(c=0),a||d||n&&-1==r.history.indexOf(n)?(a&&(c=-a,i+=a),b(t,n,i,c).then(function(e){r.count=e.count||e.messages.length;var t=[];return angular.forEach(e.messages,function(e){t.push(e.id)}),{count:r.count,history:p.concat(t),unreadOffset:u,unreadSkip:d}})):w(t,n,i,r).then(function(){if(c=0,n>0)for(c=0;c<r.history.length&&!(n>r.history[c]);c++);return{count:r.count,history:p.concat(r.history.slice(c,c+i)),unreadOffset:u,unreadSkip:d}}))}function C(t,n,i,a,c){var l=[],u=!n,d=s.getPeerID(t),h={peer:d,filter:i},f=u&&angular.equals(tt,h);if(u&&!f&&(tt=h,nt=[]),!a&&!n){var g=W[d];if(void 0!==g&&g.history.length){var m,v,y={},_=c||20;switch(i._){case"inputMessagesFilterPhotos":y.messageMediaPhoto=!0;break;case"inputMessagesFilterVideo":y.messageMediaVideo=!0;break;case"inputMessagesFilterPhotoVideo":y.messageMediaPhoto=!0,y.messageMediaVideo=!0;break;case"inputMessagesFilterDocument":y.messageMediaDocument=!0;break;case"inputMessagesFilterAudio":y.messageMediaAudio=!0}for(m=0;m<g.history.length&&(v=j[g.history[m]],!(v.media&&y[v.media._]&&(l.push(v.id),l.length>=_)));m++);}if(l.length<_&&nt.length&&f)for(var b=l.length?l[l.length-1]:4294967295,m=0;m<nt.length&&!(nt[m]<b&&(l.push(nt[m]),l.length>=_));m++);}return l.length||1e3==c?(u&&(nt=listMergeSorted(nt,l)),e.when({count:null,history:l})):p.invokeApi("messages.search",{peer:t,q:n||"",filter:i||{_:"inputMessagesFilterEmpty"},min_date:0,max_date:0,limit:c||20,max_id:a||0}).then(function(e){o.saveApiUsers(e.users),r.saveApiChats(e.chats),E(e.messages);var t=e.count||e.messages.length;return l=[],angular.forEach(e.messages,function(e){l.push(e.id)}),u&&(nt=listMergeSorted(nt,l)),{count:t,history:l}})}function k(e){return j[e]||{deleted:!0}}function S(e){return p.invokeApi("messages.deleteMessages",{id:e}).then(function(e){return a.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:e}}),e})}function x(t,n,i){return a.processUpdateMessage({_:"updates",seq:n.seq,updates:[]})?n.offset?p.invokeApi(i,{peer:t,offset:n.offset,max_id:0}).then(function(e){return x(t,e,i)}):e.when():!1}function M(e){var n=s.getPeerID(e),i=W[n],a=R(n);if(!a[0]||!a[0].unread_count){if(!i||!i.history.length)return!1;var o,r,c=!1;for(l=i.history.length;l>=0;l--)if(o=i.history[l],r=j[o],r&&!r.out&&r.unread){c=!0;break}if(!c)return!1}if(i.readPromise)return i.readPromise;if(i.readPromise=p.invokeApi("messages.readHistory",{peer:e,offset:0,max_id:0}).then(function(t){return x(e,t,"messages.readHistory")}).then(function(){a[0]&&(a[0].unread_count=0,t.$broadcast("dialog_unread",{peerID:n,count:0}))})["finally"](function(){delete i.readPromise}),i&&i.history.length){var o,r,l,n,a;for(l=0;l<i.history.length;l++)o=i.history[l],r=j[o],r&&!r.out&&(r.unread=!1,V[o]&&(V[o].unread=!1),z[o]&&(z[o].unread=!1))}return i.readPromise}function T(e){{var n=s.getPeerID(e);W[n]}return p.invokeApi("messages.deleteHistory",{peer:e,offset:0}).then(function(t){return x(e,t,"messages.deleteHistory")}).then(function(){var e=R(n);e[0]&&G.dialogs.splice(e[1],1),delete W[n],t.$broadcast("dialog_flush",{peerID:n})})}function E(e){angular.forEach(e,function(e){j[e.id]=e,e.date-=it,e.media&&"messageMediaPhoto"==e.media._&&c.savePhoto(e.media.photo),e.media&&"messageMediaVideo"==e.media._&&l.saveVideo(e.media.video),e.media&&"messageMediaDocument"==e.media._&&u.saveDoc(e.media.document),e.media&&"messageMediaAudio"==e.media._&&d.saveAudio(e.media.audio),e.action&&"messageActionChatEditPhoto"==e.action._&&c.savePhoto(e.action.photo)})}function A(e,n){var i,o=Q--,r=[nextRandomInt(4294967295),nextRandomInt(4294967295)],c=bigint(r[0]).shiftLeft(32).add(bigint(r[1])).toString(),l=W[e],u=s.getInputPeerByID(e);void 0===l&&(l=W[e]={count:null,history:[],pending:[]}),p.getUserID().then(function(d){i={_:"message",id:o,from_id:d,to_id:s.getOutputPeer(e),out:!0,unread:!0,date:tsNow(!0)+it,message:n,media:{_:"messageMediaEmpty"},random_id:c,pending:!0};var h=function(e){var t=V[o];e?(i.error=!0,t&&(t.error=!0)):(delete i.error,t&&delete t.error)};i.send=function(){h(!1);var t={};Y[e]&&(t.afterMessageID=Y[e].messageID),p.invokeApi("messages.sendMessage",{peer:u,message:n,random_id:r},t).then(function(e){i.date=e.date,i.id=e.id,a.processUpdateMessage({_:"updates",users:[],chats:[],seq:e.seq,updates:[{_:"updateMessageID",random_id:c,id:e.id},{_:"updateNewMessage",message:i,pts:e.pts}]})},function(){h(!0)})["finally"](function(){Y[e]===t&&delete Y[e]}),Y[e]=t},E([i]),l.pending.unshift(o),t.$broadcast("history_append",{peerID:e,messageID:o,my:!0}),i.send()}),K[c]=[e,o]}function D(n,i,o){o=o||{};var r,c,l=Q--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],d=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),f=W[n],g=s.getInputPeerByID(n);o.isMedia?["image/jpeg","image/png","image/bmp"].indexOf(i.type)>=0?(r="photo",c="photo."+i.type.split("/")[1]):"video/"==i.type.substr(0,6)?(r="video",c="video.mp4"):"audio/"==i.type.substr(0,6)?(r="audio",c="audio."+i.type.split("/")[1]||"mp3"):(r="document",c="document."+i.type.split("/")[1]):(r="document",c="document."+i.type.split("/")[1]),i.name||(i.name=c),void 0===f&&(f=W[n]={count:null,history:[],pending:[]}),p.getUserID().then(function(o){var c={_:"messageMediaPending",type:r,file_name:i.name,size:i.size,progress:{percent:1,total:i.size}},m={_:"message",id:l,from_id:o,to_id:s.getOutputPeer(n),out:!0,unread:!0,date:tsNow(!0)+it,message:"",media:c,random_id:d,pending:!0},v=function(e){var t=V[l];e?(m.error=!0,t&&(t.error=!0)):(delete m.error,t&&delete t.error)};m.send=function(){var o=e.defer();Z.then(function(){var e=!1,s=h.uploadFile(i);s.then(function(t){e=!0;var n;switch(r){case"photo":n={_:"inputMediaUploadedPhoto",file:t};break;case"video":n={_:"inputMediaUploadedVideo",file:t,duration:0,w:0,h:0,mime_type:i.type};break;case"audio":n={_:"inputMediaUploadedAudio",file:t,duration:0,mime_type:i.type};break;case"document":default:n={_:"inputMediaUploadedDocument",file:t,file_name:i.name,mime_type:i.type}}p.invokeApi("messages.sendMedia",{peer:g,media:n,random_id:u}).then(function(e){m.date=e.message.date,m.id=e.message.id,m.media=e.message.media,a.processUpdateMessage({_:"updates",users:e.users,chats:e.chats,seq:e.seq,updates:[{_:"updateMessageID",random_id:d,id:e.message.id},{_:"updateNewMessage",message:m,pts:e.pts}]})},function(){v(!0)})},function(){v(!0)},function(e){c.progress.done=e.done,c.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update",{peerID:n})}),c.progress.cancel=function(){e||(o.resolve(),s.cancel(),N(d))},s["finally"](function(){o.resolve()})}),Z=o.promise},E([m]),f.pending.unshift(l),t.$broadcast("history_append",{peerID:n,messageID:l,my:!0}),m.send()}),K[d]=[n,l]
}function I(e,n){var i=Q--,o=[nextRandomInt(4294967295),nextRandomInt(4294967295)],r=bigint(o[0]).shiftLeft(32).add(bigint(o[1])).toString(),l=W[e],u=s.getInputPeerByID(e);void 0===l&&(l=W[e]={count:null,history:[],pending:[]}),p.getUserID().then(function(d){var h;switch(n._){case"inputMediaContact":h=angular.extend({},n,{_:"messageMediaContact"});break;case"inputMediaPhoto":h={photo:c.getPhoto(n.id.id)}}var f={_:"message",id:i,from_id:d,to_id:s.getOutputPeer(e),out:!0,unread:!0,date:tsNow(!0)+it,message:"",media:h,random_id:r,pending:!0},g=function(e){var t=V[i];e?(f.error=!0,t&&(t.error=!0)):(delete f.error,t&&delete t.error)};f.send=function(){p.invokeApi("messages.sendMedia",{peer:u,media:n,random_id:o}).then(function(e){f.date=e.message.date,f.id=e.message.id,f.media=e.message.media,a.processUpdateMessage({_:"updates",users:e.users,chats:e.chats,seq:e.seq,updates:[{_:"updateMessageID",random_id:r,id:e.message.id},{_:"updateNewMessage",message:f,pts:e.pts}]})},function(){g(!0)})},E([f]),l.pending.unshift(i),t.$broadcast("history_append",{peerID:e,messageID:i,my:!0}),f.send()}),K[r]=[e,i]}function P(e,t){return t=t.sort(),p.invokeApi("messages.forwardMessages",{peer:s.getInputPeerByID(e),id:t}).then(function(e){var t=[];angular.forEach(e.messages,function(n){t.push({_:"updateNewMessage",message:n,pts:e.pts})}),a.processUpdateMessage({_:"updates",users:e.users,chats:e.chats,seq:e.seq,updates:t})})}function N(e){var t=K[e];if(console.log("pending",e,t),t){var n,i=t[0],o=t[1],r=W[i];for(a.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:[o]}}),n=0;n<r.pending.length;n++)if(r.pending[n]==o){r.pending.splice(n,1);break}return delete V[o],delete j[o],!0}return!1}function L(e,t){var n=K[e];if(n){var i,a=n[0],o=n[1],r=W[a],s=!1,c=!1;for(i=0;i<r.pending.length;i++)if(r.pending[i]==o){r.pending.splice(i,1);break}return(s=j[o])&&(delete s.pending,delete s.error,delete s.random_id,delete s.send),(c=V[o])&&(V[t.id]=angular.extend(c,O(t.id)),delete c.pending,delete c.error,delete c.random_id,delete c.send),delete V[o],delete j[o],s}return!1}function F(e){var t=e.to_id&&s.getPeerID(e.to_id)||0;return 0>t?t:e.out?t:e.from_id}function B(e,t){if(void 0!==z[e])return z[e];var n=angular.copy(j[e])||{id:e};return n.fromUser=o.getUser(n.from_id),(n.chatID=n.to_id.chat_id)?(n.peerID=-n.chatID,n.peerData=r.getChat(n.chatID),n.peerString=r.getChatString(n.chatID)):(n.peerID=n.out?n.to_id.user_id:n.from_id,n.peerData=o.getUser(n.peerID),n.peerString=o.getUserString(n.peerID)),n.peerPhoto=s.getPeerPhoto(n.peerID,"User","Group"),n.unreadCount=t,"messageService"==n._&&n.action.user_id&&(n.action.user=o.getUser(n.action.user_id)),n.message&&n.message.length&&(n.richMessage=f.wrapRichText(n.message.substr(0,64),{noLinks:!0,noLinebreaks:!0})),n.dateText=i("dateOrTime")(n.date),z[e]=n}function O(e){if(void 0!==V[e])return V[e];var t=angular.copy(j[e])||{id:e};if(t.media&&void 0!==t.media.progress&&(t.media.progress=j[e].media.progress),t.media)switch(t.media._){case"messageMediaPhoto":t.media.photo=c.wrapForHistory(t.media.photo.id);break;case"messageMediaVideo":t.media.video=l.wrapForHistory(t.media.video.id);break;case"messageMediaDocument":t.media.document=u.wrapForHistory(t.media.document.id);break;case"messageMediaAudio":t.media.audio=d.wrapForHistory(t.media.audio.id);break;case"messageMediaContact":t.media.rFullName=f.wrapRichText(t.media.first_name+" "+(t.media.last_name||""),{noLinks:!0,noLinebreaks:!0})}else if(t.action)switch(t.action._){case"messageActionChatEditPhoto":t.action.photo=c.wrapForHistory(t.action.photo.id);break;case"messageActionChatCreate":case"messageActionChatEditTitle":t.action.rTitle=f.wrapRichText(t.action.title,{noLinks:!0,noLinebreaks:!0})||"DELETED"}return t.message&&t.message.length&&(t.richMessage=f.wrapRichText(t.message)),V[e]=t}function U(e,t){if(e&&e.length){var n,i,a,o,r,s=0,c=e.length,l=c;for(t>0?l=Math.min(t,c):0>t&&(s=Math.max(0,l+t)),n=s;l>n;n++){if(o=e[n],i=Math.floor((o.date+H)/86400),i===a?delete o.needDate:(!n||r)&&(o.needDate=!0),r&&o.from_id==r.from_id&&!r.fwd_from_id==!o.fwd_from_id&&!r.action&&!o.action&&o.date<r.date+900){var u=o.message&&o.message.length<70&&-1==o.message.indexOf("\n");o.grouped=o.fwd_from_id&&o.fwd_from_id==r.fwd_from_id?u?"im_grouped_fwd_short":"im_grouped_fwd":!o.fwd_from_id&&u?"im_grouped_short":"im_grouped",o.fwd_from_id&&(r.grouped||(r.grouped="im_grouped_fwd_start"),o.grouped&&n==c-1&&(o.grouped+=" im_grouped_fwd_end"))}else(r||!n)&&(delete o.grouped,r&&r.grouped&&r.fwd_from_id&&(r.grouped+=" im_grouped_fwd_end"));r=o,a=i}}}function R(e){for(var t=0;t<G.dialogs.length;t++)if(G.dialogs[t].peerID==e)return[G.dialogs[t],t];return[]}function q(e){var n,i,a=F(e),s=o.getUser(e.from_id),c=o.getUserPhoto(e.from_id,"User"),l={},u=!1;if(e.message)u=f.wrapPlainText(e.message);else if(e.media&&"messageMediaEmpty"!=e.media._)switch(e.media._){case"messageMediaPhoto":u="Photo";break;case"messageMediaVideo":u="Video";break;case"messageMediaDocument":u="Document";break;case"messageMediaAudio":u="Voice message";break;case"messageMediaGeo":u="Location";break;case"messageMediaContact":u="Contact";break;default:u="Attachment"}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":u="created the group";break;case"messageActionChatEditTitle":u="changed group name";break;case"messageActionChatEditPhoto":u="changed group photo";break;case"messageActionChatDeletePhoto":u="removed group photo";break;case"messageActionChatAddUser":u=e.action.user_id==e.from_id?"returned to group":"invited user";break;case"messageActionChatDeleteUser":u=e.action.user_id==e.from_id?"left group":"kicked user"}a>0?(l.title=(s.first_name||"")+(s.first_name&&s.last_name?" ":"")+(s.last_name||""),i=c,n=o.getUserString(a)):(l.title=(s.first_name||s.last_name||"Somebody")+" @ "+(r.getChat(-a).title||"Unknown chat"),i=r.getChatPhoto(-a,"Group"),n=r.getChatString(-a)),l.title=f.wrapPlainText(l.title),l.onclick=function(){t.$broadcast("history_focus",{peerString:n})},l.message=u,l.image=i.placeholder,l.key="msg"+e.id,l.tag=n,i.location&&!i.location.empty?h.downloadSmallFile(i.location,i.size).then(function(t){l.image=t,e.unread&&g.notify(l)}):g.notify(l)}var H,j={},V={},z={},W={},G={count:null,dialogs:[]},K={},X={},Y={},Z=e.when(),Q=-1,J=m.createIndex(),et={query:!1},tt={},nt=[],it=0,at=tsNow(!0),ot=at-at%86400,rt=new Date;return y.get("server_time_offset").then(function(e){e&&(it=e)}),rt.setHours(0),rt.setMinutes(0),rt.setSeconds(0),H=ot-Math.floor(+rt/1e3),g.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&&v.selectPeer({confirm_type:"EXT_SHARE_PEER"}).then(function(e){var i=s.getPeerID(e);angular.forEach(n.data.blobs,function(e){D(i,e,{isMedia:!0})}),t.$broadcast("history_focus",{peerString:e})})}),t.$on("apiUpdate",function(e,n){switch(n._){case"updateMessageID":X[n.id]=n.random_id;break;case"updateNewMessage":var i=n.message,a=F(i),o=W[a];if(void 0!==o){{W[a].history[0]}if(-1!=W[a].history.indexOf(i.id))return!1;o.history.unshift(i.id),o.history.sort(function(e,t){return t-e})}else o=W[a]={count:null,history:[i.id],pending:[]};E([i]),null!==o.count&&o.count++;var r,c=X[i.id];c&&((r=L(c,i))&&t.$broadcast("history_update",{peerID:a}),delete X[i.id]),r||t.$broadcast("history_append",{peerID:a,messageID:i.id});var l,u=R(a);u.length?(l=u[0],G.dialogs.splice(u[1],1)):l={peerID:a,unread_count:0,top_message:!1},!i.out&&i.unread&&l.unread_count++,l.top_message=i.id,m.indexObject(a,s.getPeerSearchText(a),J),G.dialogs.unshift(l),t.$broadcast("dialogs_update",l),(Config.Navigator.mobile&&t.selectedPeerID!=a||t.idle.isIDLE)&&!i.out&&i.unread&&g.getPeerMuted(a).then(function(e){i.unread&&!e&&q(i)});break;case"updateReadMessages":var d,i,p,a,u,l,h={};for(p=0;p<n.messages.length;p++)d=n.messages[p],i=j[d],i&&i.unread&&(i.unread=!1,V[d]&&(V[d].unread=!1),z[d]&&(z[d].unread=!1),a=F(i),i.out||(u=R(a),u&&(h[a]=--u[0].unread_count),g.cancel("msg"+d)));angular.forEach(h,function(e,n){t.$broadcast("dialog_unread",{peerID:n,count:e})});break;case"updateDeleteMessages":var d,i,p,a,u,l,f,h={},v={};for(p=0;p<n.messages.length;p++)d=n.messages[p],i=j[d],i&&(a=F(i),f=v[a]||(v[a]={count:0,unread:0,msgs:{}}),!i.out&&i.unread&&(f.unread++,g.cancel("msg"+d)),f.count++,f.msgs[d]=!0,V[d]&&(V[d].deleted=!0,delete V[d]),z[d]&&(z[d].deleted=!0,delete z[d]),i.deleted=!0,j[d]={deleted:!0,id:d,from_id:i.from_id,to_id:i.to_id,out:i.out,unread:i.unread,date:i.date});angular.forEach(v,function(e,n){var i=R(n);i&&e.unread&&(i[0].unread_count-=e.unread,t.$broadcast("dialog_unread",{peerID:n,count:i[0].unread_count}));var a=W[n];if(void 0!==a){for(var o=[],r=[],s=0;s<a.history.length;s++)e.msgs[a.history[s]]||o.push(a.history[s]);a.history=o;for(var s=0;s<a.pending.length;s++)e.msgs[a.pending[s]]||r.push(a.pending[s]);a.pending=r,t.$broadcast("history_delete",{peerID:n,msgs:e.msgs})}})}}),{getDialogs:_,getHistory:$,getSearch:C,getMessage:k,readHistory:M,flushHistory:T,deleteMessages:S,saveMessages:E,sendText:A,sendFile:D,sendOther:I,forwardMessages:P,getMessagePeer:F,wrapForDialog:B,wrapForHistory:O,regroupWrappedHistory:U}}]).service("AppPhotosManager",["$modal","$window","$timeout","$rootScope","MtpApiManager","MtpApiFileManager","AppUsersManager","FileManager",function(e,t,n,i,a,o,r,s){function c(e){v[e.id]=e,angular.forEach(e.sizes,function(e){"photoCachedSize"==e._&&(o.saveSmallFile(e.location,e.bytes),e.size=e.bytes.length,delete e.bytes,e._="photoSize")})}function l(e,t,n){var i={_:"photoSizeEmpty"},a=16777215;return angular.forEach(e.sizes,function(e){var o=Math.abs(e.w*e.h-t*n);a>o&&(i=e,a=o)}),i}function u(e,t,n){return a.invokeApi("photos.getUserPhotos",{user_id:e,offset:0,limit:n||20,max_id:t||0}).then(function(e){r.saveApiUsers(e.users);for(var t=[],n=0;n<e.photos.length;n++)c(e.photos[n]),t.push(e.photos[n].id);return{count:e.count||e.photos.length,photos:t}})}function d(e){if(v[e]){var n=v[e],i=$(window).width()-36,a=$(t).height()-150,r=l(n,i,a);r&&!r.preloaded&&(r.preloaded=!0,r.size?o.downloadFile(r.location.dc_id,{_:"inputFileLocation",volume_id:r.location.volume_id,local_id:r.location.local_id,secret:r.location.secret},r.size):o.downloadSmallFile(r.location))}}function p(e){return v[e]||{_:"photoEmpty"}}function h(e){var t=angular.copy(v[e])||{_:"photoEmpty"},n=Math.min(y-80,260),i=Math.min(_-100,260),a=l(t,n,i),o={placeholder:"img/placeholders/PhotoThumbConversation.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):(o.width=100,o.height=100),t.thumb=o,t}function f(e){var n=h(e),i=$(window).width()-(Config.Navigator.mobile?20:36),a=$(t).height()-150,o=l(n,i,a),s={placeholder:"img/placeholders/PhotoThumbModal.gif"};return i>800&&(i-=200),s.width=i,s.height=a,o&&"photoSizeEmpty"!=o._&&(o.w/o.h>i/a?s.height=parseInt(o.h*i/o.w):(s.width=parseInt(o.w*a/o.h),s.width>i&&(s.height=parseInt(s.height*i/s.width),s.width=i)),!Config.Navigator.mobile&&s.width>=o.w&&s.height>=o.h&&(s.width=o.w,s.height=o.h),s.modalWidth=Math.max(s.width,Math.min(400,i)),s.location=o.location,s.size=o.size),n.full=s,n.fromUser=r.getUser(n.user_id),n}function g(t,n){if(!t||"0"===t)return!1;var a=i.$new(!0);a.photoID=t,0>n?a.userID=-n:a.messageID=n;e.open({templateUrl:"partials/photo_modal.html",controller:a.userID?"UserpicModalController":"PhotoModalController",scope:a,windowClass:"photo_modal_window"})}function m(e){var n=v[e],i="jpg",a="image/jpeg",r="photo"+e+"."+i,c=$(window).width()-36,u=$(t).height()-150,d=l(n,c,u),p={_:"inputFileLocation",volume_id:d.location.volume_id,local_id:d.location.local_id,secret:d.location.secret};s.chooseSave(r,i,a).then(function(e){o.downloadFile(d.location.dc_id,p,d.size,{mime:a,toFileEntry:e}).then(function(){console.log("file save done")},function(e){console.log("photo download failed",e)})},function(){o.downloadFile(d.location.dc_id,p,d.size,{mime:a}).then(function(e){s.download(e,a,r)},function(e){console.log("photo download failed",e)})})}var v={},y=$(window).width(),_=$(window).height();return i.preloadPhoto=d,i.openPhoto=g,{savePhoto:c,preloadPhoto:d,getUserPhotos:u,getPhoto:p,wrapForHistory:h,wrapForFull:f,openPhoto:g,downloadPhoto:m}}]).service("AppVideoManager",["$rootScope","$modal","$window","$timeout","MtpApiFileManager","AppUsersManager","FileManager",function(e,t,n,i,a,o,r){function s(e){p[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!==h[e])return h[e];var t=angular.copy(p[e]),n=Math.min(f-80,479>=f?260:200),i=Math.min(g-100,479>=f?260:200),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,h[e]=t}function l(e){var t=c(e),i=Math.min($(window).width()-60,542),a=$(n).height()-150,r={placeholder:"img/placeholders/VideoThumbModal.gif",width:i,height:a};return t.w&&t.h?t.w>t.h?r.height=parseInt(t.h*i/t.w):(r.width=parseInt(t.w*a/t.h),r.width>i&&(r.height=parseInt(r.height*i/r.width),r.width=i)):r.height=r.width=Math.min(i,a),t.full=r,t.fullThumb=angular.copy(t.thumb),t.fullThumb.width=r.width,t.fullThumb.height=r.height,t.fromUser=o.getUser(t.user_id),t}function u(n,i){var a=e.$new(!0);a.videoID=n,a.messageID=i;t.open({templateUrl:"partials/video_modal.html",controller:"VideoModalController",scope:a,windowClass:"video_modal_window"})}function d(t,n,i){function o(t){console.log("dl progress",t),c.progress.done=t.done,c.progress.percent=Math.max(1,Math.floor(100*t.done/t.total)),e.$broadcast("history_update")}var s=p[t],c=h[t]||s||{},l={_:"inputVideoFileLocation",id:t,access_hash:n||s.access_hash};c.progress={enabled:!0,percent:1,total:s.size};var u="mp4",d="video/mpeg4",f="video"+t+"."+u;r.chooseSave(f,u,d).then(function(e){var t=a.downloadFile(s.dc_id,l,s.size,{mime:d,toFileEntry:e});t.then(function(){delete c.progress,console.log("file save done")},function(e){console.log("video download failed",e),c.progress.enabled=!1},o),c.progress.cancel=t.cancel},function(){var e=a.downloadFile(s.dc_id,l,s.size,{mime:d});e.then(function(e){return delete c.progress,i?void window.open(e,"_blank"):void r.download(e,d,f)},function(e){console.log("video download failed",e),c.progress.enabled=!1},o),c.progress.cancel=e.cancel})}var p={},h={},f=$(window).width(),g=$(window).height();return e.openVideo=u,e.downloadVideo=d,{saveVideo:s,wrapForHistory:c,wrapForFull:l,openVideo:u}}]).service("AppDocsManager",["$rootScope","$modal","$window","$timeout","MtpApiFileManager","FileManager",function(e,t,n,i,a,o){function r(e){l[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 s(e){if(void 0!==u[e])return u[e];var t=angular.copy(l[e]),n="image/gif"==t.mime_type,i=n?Math.min(d-80,260):100,a=n?Math.min(p-100,260):100,o=t.thumb,r={width:i,height:a};return o&&"photoSizeEmpty"!=o._?(o.w/o.h>i/a?r.height=parseInt(o.h*i/o.w):(r.width=parseInt(o.w*a/o.h),r.width>i&&(r.height=parseInt(r.height*i/r.width),r.width=i)),r.location=o.location,r.size=o.size):r=!1,t.thumb=r,t.canDownload=!(window.chrome&&chrome.fileSystem&&chrome.fileSystem.chooseEntry),t.withPreview=t.canDownload&&t.thumb&&t.mime_type.match(/^(image\/|application\/pdf)/)?1:0,t.withPreview&&n&&(t.isSpecial="gif"),u[e]=t}function c(t,n){function i(t){console.log("dl progress",t),s.progress.done=t.done,s.progress.percent=Math.max(1,Math.floor(100*t.done/t.total)),e.$broadcast("history_update")}var r=l[t],s=u[t]||r||{},c={_:"inputDocumentFileLocation",id:t,access_hash:r.access_hash};s.progress={enabled:!0,percent:1,total:r.size};var d=(r.file_name.split(".",2)||[])[1]||"";o.chooseSave(r.file_name,d,r.mime_type).then(function(e){var t=a.downloadFile(r.dc_id,c,r.size,{mime:r.mime_type,toFileEntry:e});t.then(function(){delete s.progress,console.log("file save done")},function(e){console.log("document download failed",e),s.progress.enabled=!1},i),s.progress.cancel=t.cancel},function(){var e=a.downloadFile(r.dc_id,c,r.size,{mime:r.mime_type});e.then(function(e){switch(delete s.progress,s.url=e,n){case 1:window.open(e,"_blank");break;default:o.download(e,r.mime_type,r.file_name)}},function(e){console.log("document download failed",e),s.progress.enabled=!1},i),s.progress.cancel=e.cancel})}var l={},u={},d=$(window).width(),p=$(window).height();return e.downloadDoc=c,{saveDoc:r,wrapForHistory:s,downloadDoc:c}}]).service("AppAudioManager",["$rootScope","$modal","$window","$timeout","$sce","MtpApiFileManager",function(e,t,n,i,a,o){function r(e){l[e.id]=e}function s(e){if(void 0!==u[e])return u[e];var t=angular.copy(l[e]);return u[e]=t}function c(t,n){function r(t){console.log("dl progress",t),c.progress.done=t.done,c.progress.percent=Math.max(1,Math.floor(100*t.done/t.total)),e.$broadcast("history_update")}var s=l[t],c=u[t]||s||{},d={_:"inputAudioFileLocation",id:t,access_hash:n||s.access_hash};c.progress={enabled:!0,percent:1,total:s.size};var p=o.downloadFile(s.dc_id,d,s.size,{mime:"audio/ogg"});p.then(function(t){delete c.progress,c.url=a.trustAsResourceUrl(t),c.autoplay=!0,i(function(){console.log("disable autoplay"),delete c.autoplay,e.$broadcast("history_update")},1e3)},function(e){console.log("audio download failed",e),c.progress.enabled=!1},r),c.progress.cancel=p.cancel}var l={},u={};return e.openAudio=c,{saveAudio:r,wrapForHistory:s,openAudio:c}}]).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("ApiUpdatesManager",["$rootScope","MtpNetworkerFactory","AppUsersManager","AppChatsManager","AppPeersManager","MtpApiManager",function(e,t,n,i,a,o){function r(){var e=g.seq+1,t=m[e];t&&(console.log(dT(),"pop pending update",e,t),c(t)&&delete m[e])}function s(){h||l()}function c(e){if(e.seq){if(!d(e.seq,e.seq_start))return m[e.seq_start||e.seq]=e,!1;e.date&&(g.date=e.date)}switch(e._){case"updatesTooLong":s();break;case"updateShort":u(e.update);break;case"updateShortMessage":if(!n.hasUser(e.from_id)){console.log("User not found",e.from_id,"getDiff"),s();break}u({_:"updateNewMessage",message:{_:"message",id:e.id,from_id:e.from_id,to_id:a.getOutputPeer(o.getUserID()),out:!1,unread:!0,date:e.date,message:e.message,media:{_:"messageMediaEmpty"}},pts:e.pts});break;case"updateShortChatMessage":if(!n.hasUser(e.from_id)||!i.hasChat(e.chat_id)){console.log("User or chat not found",e.from_id,e.chat_id,"getDiff"),s();break}u({_:"updateNewMessage",message:{_:"message",id:e.id,from_id:e.from_id,to_id:a.getOutputPeer(-e.chat_id),out:!1,unread:!0,date:e.date,message:e.message,media:{_:"messageMediaEmpty"}},pts:e.pts});break;case"updatesCombined":case"updates":n.saveApiUsers(e.users),i.saveApiChats(e.chats);for(var t,c,l,t=0;t<e.updates.length;t++)switch(c=e.updates[t],c._){case"updateNewMessage":if(l=c.message,l.from_id&&!n.hasUser(l.from_id))return console.log("User not found",l.from_id,"getDiff"),s(),!1;if(l.to_id.chat_id&&!i.hasChat(l.to_id.chat_id))return console.log("Chat not found",l.to_id.chat_id,"getDiff"),s(),!1}angular.forEach(e.updates,function(e){u(e)});break;default:console.warn(dT(),"Unknown update message",e)}return r(),f&&g.seq>=f.seqAwaiting&&(console.log(dT(),"cancel pending getDiff",f.seqAwaiting),clearTimeout(f.timeout),f=!1),!0}function l(){h=!0,f&&(clearTimeout(f.timeout),f=!1),o.invokeApi("updates.getDifference",{pts:g.pts,date:g.date,qts:0}).then(function(e){if("updates.differenceEmpty"==e._)return console.log(dT(),"apply empty diff",e.seq),g.date=e.date,g.seq=e.seq,h=!1,r(),!1;n.saveApiUsers(e.users),i.saveApiChats(e.chats),angular.forEach(e.other_updates,function(e){u(e)}),angular.forEach(e.new_messages,function(e){u({_:"updateNewMessage",message:e,pts:g.pts})});var t=e.intermediate_state||e.state;g.seq=t.seq,g.pts=t.pts,g.date=t.date,console.log(dT(),"apply diff",g.seq,g.pts),"updates.differenceSlice"==e._?l(!0):h=!1})}function u(t){t.pts&&(g.pts=t.pts),e.$broadcast("apiUpdate",t)}function d(e,t){return(t=t||e)?h?(console.log(dT(),"Seq decline",t),!1):t!=g.seq+1?(t>g.seq&&(console.warn(dT(),"Seq hole",t,f&&f.seqAwaiting),f||(f={seqAwaiting:t,timeout:setTimeout(function(){l()},5e3)})),!1):(g.seq=e,!0):!0}function p(){t.setUpdatesProcessor(c),o.invokeApi("updates.getState").then(function(e){g.seq=e.seq,g.pts=e.pts,g.date=e.date,h=!1})}var h=!0,f=!1,g={},m={};return{processUpdateMessage:c,attach:p}}]).service("RichTextProcessor",["$sce","$sanitize",function(e,t){function n(e){return e.replace(/&/g,"&amp;").replace(/([^\#-~| |!])/g,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function i(e){for(var t,n,i,a,o=0;o<Config.EmojiCategories.length;o++)if(a=Config.EmojiCategorySpritesheetDimens[o][1],t=Config.EmojiCategories[o].indexOf(e),t>-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 a(a,o){if(!a||!a.length)return"";o=o||{},a=a.replace(/\ufe0f/g,"",a);for(var s,d,p,h=a,m=[],v=!1;s=h.match(f);)m.push(n(h.substr(0,s.index))),s[1]?o.noLinks?m.push(n(s[0])):s[3]?m.push('<a href="',n("mailto:"+s[3]+s[4]),'" target="_blank">',n(s[3]+s[4]),"</a>"):m.push('<a href="',n(s[2]+"://"+s[4]),'" target="_blank">',n(s[2]+"://"+s[4]),"</a>"):s[5]?m.push(o.noLinebreaks?" ":"<br/>"):s[6]?(r=c[s[6]])&&(p=i(r))?(d=n(l[r][1][0]),v=!0,m.push('<span class="emoji emoji-',p.category,"-",u*p.column,"-",u*p.row,'" ','title="',d,'">',":",d,":</span>")):m.push(n(s[6])):s[8]&&(o.noLinks?m.push(s[7],n(s[8])):m.push(s[7],'<a href="#/im?q=',encodeURIComponent(s[8]),'">',n(s[8]),"</a>")),h=h.substr(s.index+s[0].length);if(m.push(n(h)),a=t(m.join("")),v&&(a=a.replace(/<span class="emoji emoji-(\d)-(\d+)-(\d+)"(.+?)<\/span>/g,'<span class="emoji emoji-spritesheet-$1" style="background-position: -$2px -$3px;" $4</span>')),!o.noLinks){var y=a.match(g),_=y&&y[1];if(_){var b=Config.Modes.chrome_packed?"webview":"iframe";a=a+'<div class="im_message_iframe_video"><'+b+' type="text/html" frameborder="0" src="http://www.youtube.com/embed/'+_+'?autoplay=0&amp;controls=2"></'+b+"></div>"}}return e.trustAs("html",a)}function o(e,t){if(d)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(f);)e.push(a.substr(0,n.index)),e.push(n[6]?(r=c[n[6]])&&(i=l[r][1][0])?":"+i+":":n[0]:n[0]),a=a.substr(n.index+n[0].length);return e.push(a),e.join("")}var r,s=[],c={},l=Config.Emoji,u=18,d=-1!=navigator.userAgent.search(/OS X|iPhone|iPad|iOS|Android/i);for(r in l)s.push(l[r][0]),c[l[r][0]]=r;var p="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._"+p,f=new RegExp("((?:(ftp|https?)://|(?:mailto:)?([A-Za-z0-9._%+-]+@))(\\S*\\.\\S*[^\\s.;,(){}<>\"']))|(\\n)|("+s.join("|")+")|(^|\\s)(#["+h+"]{3,20})","i"),g=/(?:https?:\/\/)?(?:www\.)?youtu(?:|.be|be.com|.b)(?:\/v\/|\/watch\\?v=|e\/|\/watch(?:.+)v=)(.{11})(?:\&[^\s]*)?/;return{wrapRichText:a,wrapPlainText:o}}]).service("IdleManager",["$rootScope","$window","$timeout",function(e,t,n){function i(){r||(r=!0,$(t).on("blur focus keydown mousedown touchstart",a),setTimeout(function(){a({type:"blur"})},0))}function a(i){"mousemove"==i.type&&$(t).off("mousemove",a);var r="blur"==i.type||"timeout"==i.type?!0:!1;n.cancel(o),r||(o=n(function(){a({type:"timeout"})},3e4)),e.idle.isIDLE!=r&&(e.$apply(function(){e.idle.isIDLE=r}),r&&"timeout"==i.type&&$(t).on("mousemove",a))}e.idle={isIDLE:!1};var o,r=!1;return{start:i}}]).service("StatusManager",["$timeout","$rootScope","MtpApiManager","IdleManager",function(e,t,n){function i(){c||(c=!0,t.$watch("idle.isIDLE",o),t.$watch("offline",o))}function a(e){var i=tsNow();if(!(e&&!s||!e&&5e4>i-s||t.offline))return s=e?0:i,n.invokeApi("account.updateStatus",{offline:e},{noErrorBox:!0})}function o(){r&&e.cancel(r),t.idle.isIDLE?r=e(function(){a(!0)},5e3):(a(!1),r=e(o,6e4))}var r,s=0,c=!1;return{start:i}}]).service("NotificationsManager",["$rootScope","$window","$timeout","$interval","$q","MtpApiManager","AppPeersManager","IdleManager","Storage",function(e,t,n,i,a,o,r,s,c){function l(e){return void 0!==T[e]?T[e]:T[e]=o.invokeApi("account.getNotifySettings",{peer:{_:"inputNotifyPeer",peer:r.getInputPeerByID(e)}})}function u(e,t){T[e]=a.when(t)}function d(e,t){u(e,t);var n=angular.copy(t);return n._="inputPeerNotifySettings",o.invokeApi("account.updateNotifySettings",{peer:{_:"inputNotifyPeer",peer:r.getInputPeerByID(e)},settings:n})}function p(e){return l(e).then(function(e){return"peerNotifySettings"==e._&&1e3*e.mute_until>tsNow()})}function h(){if(_(),!C)return!1;"Notification"in window&&"granted"!==Notification.permission&&"denied"!==Notification.permission&&$(t).on("click",f);try{$(t).on("beforeunload",y)}catch(e){}}function f(){Notification.requestPermission(),$(t).off("click",f)}function g(t){return console.log("notify",e.idle.isIDLE,C),Config.Navigator.ffos&&(t.image="https://raw.githubusercontent.com/zhukov/webogram/master/app/img/icons/icon60.png"),x++,!C||"Notification"in window&&"granted"!==Notification.permission?!1:(c.get("notify_nosound","notify_volume").then(function(e){(!e[0]&&e[1]===!1||e[1]>0)&&m(e[1]||.5)}),void c.get("notify_nodesktop","notify_novibrate").then(function(e){if(e[0]){if(M&&!e[1])return void navigator.vibrate([200,100,200])}else{var n,i=++S,a=t.key||"k"+i;if("Notification"in window)n=new Notification(t.title,{icon:t.image||"",body:t.message||"",tag:t.tag||""});else{if(!("mozNotification"in navigator))return;n=navigator.mozNotification.createNotification(t.title,t.message||"",t.image||"")}n.onclick=function(){n.close(),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()),y(),t.onclick&&t.onclick()},n.onclose=function(){delete k[a],y()},n.show&&n.show(),k[a]=n}}))}function m(e){var t="img/sound_a.wav",n=$("#notify_sound").html('<audio autoplay="autoplay"><source src="'+t+'" type="audio/mpeg" /><embed hidden="true" autostart="true" loop="false" volume="'+100*e+'" src="'+t+'" /></audio>');n.find("audio")[0].volume=e}function v(e){var t=k[e];if(t){x>0&&x--;try{t.close&&t.close()}catch(n){}delete x[e]}}function y(){angular.forEach(k,function(e){try{e.close&&e.close()}catch(t){}}),k={},x=0}function _(){if(I)return!1;if(navigator.push&&Config.Navigator.ffos&&Config.Modes.packed){var e=navigator.push.register();e.onsuccess=function(){clearTimeout(N),console.log(dT(),"Push registered",e.result),I=e.result,o.invokeApi("account.registerDevice",{token_type:4,token:I,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()),N=setTimeout(_,P),P=Math.min(3e4,1.5*P)}}}function b(){return M}navigator.vibrate=navigator.vibrate||navigator.mozVibrate||navigator.webkitVibrate;var w,C="Notification"in window||"mozNotification"in navigator,k={},S=0,x=0,M=!!navigator.vibrate,T={},E=$('link[rel="icon"]'),A=$('<link rel="icon" href="favicon_unread.ico" type="image/x-icon" />'),D=document.title;e.$watch("idle.isIDLE",function(e){i.cancel(w),e?(D=document.title,w=i(function(){var e=tsNow();if(!x||e%2e3>1e3){document.title=D;var t=$('link[rel="icon"]');-1!=t.attr("href").indexOf("favicon_unread")&&t.replaceWith(E)}else document.title=x>1?x+" notifications":"1 notification",$('link[rel="icon"]').replaceWith(A)},1e3)):(document.title=D,$('link[rel="icon"]').replaceWith(E),y())}),e.$on("apiUpdate",function(e,t){switch(t._){case"updateNotifySettings":if("notifyPeer"==t.peer._){var n=r.getPeerID(t.peer.peer);u(n,t.notify_settings)}}});var I=!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),I=!1,_()})),{start:h,notify:g,cancel:v,clear:y,getPeerSettings:l,getPeerMuted:p,savePeerSettings:u,updatePeerSettings:d,getVibrateSupport:b,testSound:m};var P,N}]).service("ErrorService",["$rootScope","$modal","$window",function(e,t,n){function i(n,i){if(r>=2)return console.log("Skip error box, too many open",r,n,i),!1;i=i||{};var a=e.$new();angular.extend(a,n),r++;var o=t.open({templateUrl:"partials/error_modal.html",scope:a,windowClass:i.windowClass||"error_modal_window"});return o.result["finally"](function(){r--}),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:"partials/confirm_modal.html",scope:a,windowClass:i.windowClass||"confirm_modal_window"});return o.result}var r=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();n&&angular.extend(i,n);var a="partials/peer_select.html",o="peer_select_window page_modal";return Config.Navigator.mobile&&(a="partials/mobile/peer_select.html",o+=" mobile_modal"),t.open({templateUrl:a,controller:"PeerSelectController",scope:i,windowClass:o}).result}return{selectPeer:n}}]).service("ContactsSelectService",["$rootScope","$modal",function(e,t){function n(n,i){i=i||{};var a=e.$new();a.multiSelect=n,angular.extend(a,i),!a.action&&n&&(a.action="select");var o="partials/contacts_modal.html",r="contacts_modal_window page_modal";return Config.Navigator.mobile&&(o="partials/mobile/contacts_modal.html",r+=" mobile_modal"),t.open({templateUrl:o,controller:"ContactsModalController",scope:a,windowClass:r}).result}return{selectContacts:function(e){return n(!0,e)},selectContact:function(e){return n(!1,e)}}}]).service("ChangelogNotifyService",["Storage","$rootScope","$http","$modal",function(e,t,n,i){function a(e,t){"string"!=typeof e&&(e=""),"string"!=typeof t&&(t=""),e=e.replace(/^\s+|\s+$/g,"").split("."),t=t.replace(/^\s+|\s+$/g,"").split(".");var n,i=Math.max(e.length,t.length);for(n=0;i>n;n++)if(e[n]!=t[n])return e[n]>t[n]?1:-1;return 0}function o(){e.get("last_version").then(function(t){t!=Config.App.version&&(t&&r(t),e.set({last_version:Config.App.version}))})}function r(e){var n=t.$new();n.lastVersion=e,n.canShowVersion=function(t){return n.lastVersion===!1||void 0===n.lastVersion?!0:a(t,e)>=0},i.open({templateUrl:"partials/changelog_modal.html",scope:n,windowClass:"changelog_modal_window page_modal"})
}return{checkUpdate:o,showChangelog:r}}]),angular.module("myApp.controllers",[]).controller("AppWelcomeController",["$scope","$location","MtpApiManager","ErrorService","ChangelogNotifyService",function(e,t,n,i,a){n.getUserID().then(function(n){n?t.url("/im"):e.showWelcome=!0}),a.checkUpdate()}]).controller("AppLoginController",["$scope","$location","$timeout","$modal","$modalStack","MtpApiManager","ErrorService","ChangelogNotifyService",function(e,t,n,i,a,o,r,s){function c(){var t=(navigator.language||"").toLowerCase(),n=Config.LangCountries[t],i=!Config.Navigator.mobile;if(l(-1==["en","en-us","en-uk"].indexOf(t)?void 0!==n?n:t.indexOf("-")>0?t.split("-")[1].toUpperCase():"US":"US"),i){var a=e.credentials.phone_country;o.invokeApi("help.getNearestDc",{},{dcID:4,createNetworker:!0}).then(function(t){a==e.credentials.phone_country&&l(t.country),t.nearest_dc!=t.this_dc&&o.getNetworker(t.nearest_dc,{createNetworker:!0})})}}function l(e){var t,n;for(t=0;t<Config.CountryCodes.length;t++)if(n=Config.CountryCodes[t],n[0]==e)return u({name:n[1],code:n[2]});return u({name:"United States",code:"+1"})}function u(t){g=t,e.credentials.phone_country!=t.code?e.credentials.phone_country=t.code:d(),e.$broadcast("country_selected")}function d(){var t,n,i,a=((e.credentials.phone_country||"")+(e.credentials.phone_number||"")).replace(/\D+/g,""),o=0,r=!1;if(a.length)if(g&&!a.indexOf(g.code.replace(/\D+/g,"")))r=g.name;else for(t=0;t<Config.CountryCodes.length;t++)for(n=2;n<Config.CountryCodes[t].length;n++)i=Config.CountryCodes[t][n].replace(/\D+/g,""),i.length>o&&!a.indexOf(i)&&(o=i.length,r=Config.CountryCodes[t][1]);e.credentials.phone_full=a,e.credentials.phone_country_name=r||"Unknown"}function p(e){o.setUserAuth(f.dcID,{expires:e.expires,id:e.user.id}),n.cancel(m),t.url("/im")}function h(){n.cancel(m),e.credentials.viaApp||(--e.callPending.remaining?m=n(h,1e3):(e.callPending.success=!1,o.invokeApi("auth.sendCall",{phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash},f).then(function(){e.callPending.success=!0})))}a.dismissAll(),o.getUserID().then(function(e){return e?void t.url("/im"):void 0});var f={dcID:2,createNetworker:!0},g=!1;e.credentials={phone_country:"",phone_country_name:"",phone_number:"",phone_full:""},e.progress={},e.callPending={},e.chooseCountry=function(){var e="partials/country_select_modal.html",t="countries_modal_window page_modal";Config.Navigator.mobile&&(e="partials/mobile/country_select_modal.html",t+=" mobile_modal");var n=i.open({templateUrl:e,controller:"CountrySelectModalController",windowClass:t});n.result.then(u)},e.$watch("credentials.phone_country",d),e.$watch("credentials.phone_number",d),c();var m;e.sendCode=function(){n.cancel(m),r.confirm({type:"LOGIN_PHONE_CORRECT",country_code:e.credentials.phone_country,phone_number:e.credentials.phone_number}).then(function(){e.progress.enabled=!0,o.invokeApi("auth.sendCode",{phone_number:e.credentials.phone_full,sms_type:5,api_id:Config.App.id,api_hash:Config.App.hash},f).then(function(t){e.progress.enabled=!1,e.credentials.phone_code_hash=t.phone_code_hash,e.credentials.phone_occupied=t.phone_registered,e.credentials.viaApp="auth.sentAppCode"==t._,e.callPending.remaining=t.send_call_timeout||60,e.error={},h()},function(t){switch(e.progress.enabled=!1,console.log("sendCode error",t),t.type){case"NETWORK_BAD_REQUEST":"https:"==location.protocol&&(r.confirm({type:"HTTPS_MIXED_FAIL"}).then(function(){location=location.toString().replace(/^https:/,"http:")}),t.handled=!0);break;case"PHONE_NUMBER_INVALID":e.error={field:"phone"},t.handled=!0}})})},e.sendSms=function(){e.credentials.viaApp&&(delete e.credentials.viaApp,o.invokeApi("auth.sendSms",{phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash},f).then(h))},e.editPhone=function(){n.cancel(m),delete e.credentials.phone_code_hash,delete e.credentials.phone_unoccupied,delete e.credentials.phone_code_valid,delete e.credentials.viaApp,delete e.callPending.remaining,delete e.callPending.success},e.logIn=function(t){var n="auth.signIn",i={phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash,phone_code:e.credentials.phone_code};t&&(n="auth.signUp",angular.extend(i,{first_name:e.credentials.first_name,last_name:e.credentials.last_name})),e.progress.enabled=!0,o.invokeApi(n,i,f).then(p,function(t){if(e.progress.enabled=!1,400==t.code&&"PHONE_NUMBER_UNOCCUPIED"==t.type)return t.handled=!0,e.credentials.phone_code_valid=!0,void(e.credentials.phone_unoccupied=!0);if(400==t.code&&"PHONE_NUMBER_OCCUPIED"==t.type)return t.handled=!0,e.logIn(!1);switch(t.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},t.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},t.handled=!0;break;case"PHONE_CODE_INVALID":e.error={field:"phone_code"},delete e.credentials.phone_code_valid,t.handled=!0}})},s.checkUpdate()}]).controller("AppIMController",["$scope","$location","$routeParams","$modal","$rootScope","$modalStack","MtpApiManager","AppUsersManager","ContactsSelectService","ChangelogNotifyService","ErrorService",function(e,t,n,i,a,o,r,s,c,l,u){function d(){if(n.q){if(n.q!==p&&(e.search.query=p=n.q,e.search.messages=!0,void 0!==e.curDialog))return!1}else p=!1;e.curDialog={peer:n.p||!1,messageID:n.m||!1}}e.$on("$routeUpdate",d),e.$on("history_focus",function(n,i){o.dismissAll(),i.peerString==e.curDialog.peer&&i.messageID==e.curDialog.messageID?e.$broadcast(i.messageID?"ui_history_change_scroll":"ui_history_focus"):t.url("/im?p="+i.peerString+(i.messageID?"&m="+i.messageID:""))}),e.isLoggedIn=!0,e.isEmpty={},e.search={},e.historyFilter={mediaType:!1},e.historyPeer={},e.historyState={selectActions:!1,typing:[]},e.openSettings=function(){var e="partials/settings_modal.html",t="settings_modal_window page_modal";Config.Navigator.mobile&&(e="partials/mobile/settings_modal.html",t+=" mobile_modal"),i.open({templateUrl:e,controller:"SettingsModalController",windowClass:t})},e.openContacts=function(){c.selectContact().then(function(t){e.dialogSelect(s.getUserString(t))})},e.openGroup=function(){c.selectContacts({action:"new_group"}).then(function(t){if(1==t.length)e.dialogSelect(s.getUserString(t[0]));else if(t.length>1){var n=a.$new();n.userIDs=t,i.open({templateUrl:"partials/chat_create_modal.html",controller:"ChatCreateModalController",scope:n,windowClass:"group_edit_modal_window"})}})},e.importContact=function(){s.openImportContact().then(function(t){t&&e.$broadcast("contact_imported")})},e.dialogSelect=function(e,t){var n={peerString:e};t&&(n.messageID=t),a.$broadcast("history_focus",n)},e.logOut=function(){u.confirm({type:"LOGOUT"}).then(function(){r.logOut().then(function(){location.hash="/login",location.reload()})})},e.showPeerInfo=function(){e.curDialog.peerID>0?a.openUser(e.curDialog.peerID):e.curDialog.peerID<0&&a.openChat(-e.curDialog.peerID)},e.toggleEdit=function(){e.$broadcast("history_edit_toggle")},e.selectedFlush=function(){e.$broadcast("history_edit_flush")},e.toggleMedia=function(t){e.$broadcast("history_media_toggle",t)},e.returnToRecent=function(){e.$broadcast("history_return_recent")},e.toggleSearch=function(){e.$broadcast("dialogs_search_toggle")},d();var p=!1;l.checkUpdate()}]).controller("AppImDialogsController",["$scope","$location","$q","$timeout","$routeParams","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppPeersManager","PhonebookContactsService","ErrorService",function(e,t,n,i,a,o,r,s,c,l,u,d){function p(a){var r,s=e.search.messages&&e.search.query.length>0,l=++_;return i.cancel($),s?($=a?n.when():i(angular.noop,500),r=$.then(function(){return c.getSearch({_:"inputPeerEmpty"},e.search.query,{_:"inputMessagesFilterEmpty"},v)})):r=c.getDialogs(e.search.query,v),r.then(function(e){if(l!=_)return n.reject();if(s){var t=[];angular.forEach(e.history,function(e){var n=c.getMessage(e),i=c.getMessagePeer(n);t.push({peerID:i,top_message:e,unread_count:0})}),e={count:e.count,dialogs:t}}return e},function(e){return"NETWORK_BAD_REQUEST"==e.type&&"https:"==location.protocol&&(d.confirm({type:"HTTPS_MIXED_FAIL"}).then(function(){location=location.toString().replace(/^https:/,"http:")}),e.handled=!0),401==e.code&&(o.logOut()["finally"](function(){t.url("/login")}),e.handled=!0),n.reject()})}function h(t){m=0,v=0,y=!1,b={},g=!1,p(t).then(function(t){e.dialogs=[],e.contacts=[],t.dialogs.length&&(m+=t.dialogs.length,v=t.dialogs[t.dialogs.length-1].top_message,y=null===t.count||m<t.count,angular.forEach(t.dialogs,function(t){b[t.peerID]=!0,e.dialogs.push(c.wrapForDialog(t.top_message,t.unread_count))}),delete e.isEmpty.dialogs),e.$broadcast("ui_dialogs_change"),e.search.query?f():(c.getDialogs("",v,100),t.dialogs.length||(e.isEmpty.dialogs=!0))})}function f(){if(!g||y&&m){if(!(y||e.search.messages||!e.search.query&&e.dialogs.length)){g=!0;var t=++_;return r.getContacts(e.search.query).then(function(n){t==_&&(e.contacts=[],angular.forEach(n,function(t){void 0===b[t]&&e.contacts.push({userID:t,user:r.getUser(t),userPhoto:r.getUserPhoto(t,"User"),peerString:r.getUserString(t)})}),n.length?delete e.isEmpty.contacts:e.search.query||(e.isEmpty.contacts=!0))}),void e.$broadcast("ui_dialogs_append")}p().then(function(t){t.dialogs.length&&(m+=t.dialogs.length,v=t.dialogs[t.dialogs.length-1].top_message,y=null===t.count||m<t.count,angular.forEach(t.dialogs,function(t){b[t.peerID]=!0,e.dialogs.push(c.wrapForDialog(t.top_message,t.unread_count))}),e.$broadcast("ui_dialogs_append"))})}}e.dialogs=[],e.contacts=[],e.contactsLoaded=!1,void 0===e.search&&(e.search={}),void 0===e.isEmpty&&(e.isEmpty={}),e.phonebookAvailable=u.isAvailable();var g,m=0,v=0,y=!1,_=0,b={};o.invokeApi("account.updateStatus",{offline:!1}),e.$on("dialogs_need_more",function(){f()}),e.$on("dialog_unread",function(t,n){angular.forEach(e.dialogs,function(e){e.peerID==n.peerID&&(e.unreadCount=n.count)})}),e.$on("dialogs_update",function(t,n){if(void 0!==e.search.query&&e.search.query.length)return!1;var i=!1;angular.forEach(e.dialogs,function(e,t){e.peerID==n.peerID&&(i=t)});var a=c.wrapForDialog(n.top_message,n.unread_count);if(i!==!1){var o=e.dialogs.splice(i,1);safeReplaceObject(o,a),m++}e.dialogs.unshift(a)}),e.$on("dialog_flush",function(t,n){for(var i=0;i<e.dialogs.length;i++)if(e.dialogs[i].peerID==n.peerID){e.dialogs[i].deleted=!0;break}}),e.$on("history_delete",function(t,n){for(var i=0;i<e.dialogs.length;i++)if(e.dialogs[i].peerID==n.peerID){n.msgs[e.dialogs[i].id]&&(e.dialogs[i].deleted=!0);break}}),e.$on("contact_imported",function(){g&&h()});var w=!1;e.$watchCollection("search",function(){e.search.messages!=w?(w=e.search.messages,e.dialogs=[],h(!0)):h(),!a.q||e.search.messages&&e.search.query==a.q||i(function(){t.url("/im"+(e.curDialog.peer?"?p="+e.curDialog.peer+(e.curDialog.messageID?"&m="+e.curDialog.messageID:""):""))})}),Config.Navigator.mobile&&e.$watch("curDialog.peer",function(){e.$broadcast("ui_dialogs_update")}),e.importPhonebook=function(){u.openPhonebookImport().result.then(function(e){g&&e.length&&h()})},e.searchClear=function(){e.search.query="",e.search.messages=!1,e.$broadcast("search_clear")},e.$on("ui_dialogs_search_clear",e.searchClear);var $;e.importPhonebook=function(){u.openPhonebookImport().result.then(function(e){g&&e.length&&h()})}}]).controller("AppImHistoryController",["$scope","$location","$timeout","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","PeersSelectService","IdleManager","StatusManager","ErrorService",function(e,t,n,i,a,o,r,s,c,l,u,d,p,h){function f(t,n){var a=t.peer||e.curDialog.peer||"";return A=c.getPeerID(a),A==e.curDialog.peerID&&n.messageID==t.messageID?!1:(i.selectedPeerID=A,e.curDialog.peerID=A,e.curDialog.inputPeer=c.getInputPeer(a),e.historyFilter.mediaType=!1,C(!0),void(n.peer&&n.peer==t.peer&&t.messageID?m():A?(g(!0),_()):b()))}function g(t){var n=c.getPeer(A);return!n||n.deleted?(safeReplaceObject(e.state,{loaded:!1}),!1):(e.history=[],safeReplaceObject(e.historyPeer,{id:A,data:n,photo:c.getPeerPhoto(A,"User","Group")}),a.getUserID().then(function(t){e.ownPhoto=o.getUserPhoto(t,"User")}),void(t&&(e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_peer_change"),e.$broadcast("ui_history_change"),safeReplaceObject(e.state,{loaded:!0}))))}function m(){var t,n=!1;for(t=0;t<e.history.length;t++)if(e.curDialog.messageID==e.history[t].id){n=!0;break}n?(e.historyUnread={},e.historyFocus=e.curDialog.messageID,e.$broadcast("ui_history_change_scroll")):_()}function v(){if(I){var t=B,n=++U,i=0,a=20;s.getHistory(e.curDialog.inputPeer,N,i,a).then(function(i){if(t==B&&n==U){var o,r;for(o=i.history.length-1;o>=0;o--)r=i.history[o],r>N&&e.history.push(s.wrapForHistory(r));i.history.length?(N=i.history.length>=a?i.history[0]:0,s.regroupWrappedHistory(e.history,-a),e.$broadcast("ui_history_append")):N=0,e.skippedHistory=I=N>0}})}}function y(){if(D){var t=B,n=O,i=e.historyFilter.mediaType&&{_:F[e.historyFilter.mediaType]},a=Config.Navigator.mobile?20:0,o=i?s.getSearch(e.curDialog.inputPeer,"",i,P,a):s.getHistory(e.curDialog.inputPeer,P,a);o.then(function(i){t==B&&n==O&&(angular.forEach(i.history,function(t){e.history.unshift(s.wrapForHistory(t))}),D=null===i.count||i.history.length&&e.history.length<i.count,i.history.length&&(P=i.history[i.history.length-1],s.regroupWrappedHistory(e.history,i.history.length+1),e.$broadcast("ui_history_prepend")))})}}function _(t){e.missedCount=0,D=!1,e.skippedHistory=I=!1,P=0,N=0;var n=0,i=0;e.curDialog.messageID?(P=parseInt(e.curDialog.messageID),n=5,i=5):t?n=10:Config.Navigator.mobile&&(n=20);var a=++B,o=e.historyFilter.mediaType&&{_:F[e.historyFilter.mediaType]},r=o?s.getSearch(e.curDialog.inputPeer,"",o,P):s.getHistory(e.curDialog.inputPeer,P,n,i);e.state.mayBeHasMore=!0,r.then(function(t){a==B&&(N=t.unreadSkip||P&&t.history.indexOf(P)>=i-1?t.history[0]:0,P=t.history[t.history.length-1],e.skippedHistory=I=N>0,D=null===t.count||t.history.length&&t.history.length<t.count,g(),safeReplaceObject(e.state,{loaded:!0}),e.history=[],angular.forEach(t.history,function(t){var n=s.wrapForHistory(t);e.skippedHistory&&delete n.unread,e.history.push(n)}),e.history.reverse(),s.regroupWrappedHistory(e.history),t.unreadOffset?e.historyUnreadAfter=t.history[t.unreadOffset-1]:delete e.historyUnreadAfter,e.historyFocus=e.curDialog.messageID||0,e.$broadcast("ui_history_change"),s.readHistory(e.curDialog.inputPeer))},function(){safeReplaceObject(e.state,{error:!0})})}function b(){safeReplaceObject(e.state,{notSelected:!0}),e.history=[],D=!1,e.$broadcast("ui_history_change")}function w(t,n){var i=n.target,a=n.shiftKey;if(a&&e.$broadcast("ui_selection_clear"),!e.historyState.selectActions&&!$(i).hasClass("icon-select-tick")&&!$(i).hasClass("im_content_message_select_area"))return!1;if(e.selectedMsgs[t])L=!1,delete e.selectedMsgs[t],e.selectedCount--,e.selectedCount||(e.historyState.selectActions=!1,e.$broadcast("ui_panel_update"));else{if(a){if(L!=t){var o,r,s,c=L>t;for(o=0;o<e.history.length;o++)if(e.history[o].id==L){r=o;break}for(o=r;e.history[o]&&(s=e.history[o].id)!=t;)e.selectedMsgs[s]||(e.selectedMsgs[s]=!0,e.selectedCount++),o+=c?-1:1}}else L=t;e.selectedMsgs[t]=!0,e.selectedCount++,e.historyState.selectActions||(e.historyState.selectActions=!0,e.$broadcast("ui_panel_update"))}}function C(t){e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,L=!1,t||e.$broadcast("ui_panel_update")}function k(){h.confirm({type:"HISTORY_FLUSH"}).then(function(){s.flushHistory(e.curDialog.inputPeer).then(function(){C()})})}function S(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedMsgs,function(e,n){t.push(n)}),s.deleteMessages(t).then(function(){C()})}}function x(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedMsgs,function(e,n){t.push(n)}),u.selectPeer({confirm_type:"FORWARD_PEER"}).then(function(e){var n=c.getPeerID(e);s.forwardMessages(n,t).then(function(){C(),i.$broadcast("history_focus",{peerString:e})})})}}function M(){e.historyState.selectActions?C():(e.historyState.selectActions=!0,e.$broadcast("ui_panel_update"))}function T(t){e.historyFilter.mediaType=t||!1,e.history=[],_()}function E(){e.historyFilter.mediaType?T():e.curDialog.messageID?i.$broadcast("history_focus",{peerString:e.curDialog.peer}):_(!0)}e.$watch("curDialog",f),l.attach(),d.start(),p.start(),e.history=[],e.skippedHistory=!1,e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,e.missedCount=0,e.state={},e.toggleMessage=w,e.selectedDelete=S,e.selectedForward=x,e.selectedCancel=C,e.selectedFlush=k,e.toggleEdit=M,e.toggleMedia=T,e.returnToRecent=E,e.$on("history_edit_toggle",M),e.$on("history_edit_flush",k),e.$on("history_media_toggle",function(e,t){T(t)}),e.$on("history_return_recent",E);var A,D=!1,I=!1,P=0,N=0,L=!1,F={photos:"inputMessagesFilterPhotos",video:"inputMessagesFilterVideo",documents:"inputMessagesFilterDocument",audio:"inputMessagesFilterAudio"},B=0,O=0,U=0;e.$on("history_update",angular.noop);var R={};e.$on("history_append",function(t,a){if(a.peerID==e.curDialog.peerID){if(e.historyFilter.mediaType||e.skippedHistory)return void(a.my?E():e.missedCount++);e.history.push(s.wrapForHistory(a.messageID)),s.regroupWrappedHistory(e.history,-3),e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_history_append_new",{my:a.my}),a.my&&delete e.historyUnreadAfter,i.idle.isIDLE||n(function(){s.readHistory(e.curDialog.inputPeer)})}}),e.$on("history_delete",function(t,n){if(n.peerID==e.curDialog.peerID){for(var i=[],a=0;a<e.history.length;a++)n.msgs[e.history[a].id]||i.push(e.history[a]);e.history=i,s.regroupWrappedHistory(e.history)}}),e.$on("dialog_flush",function(t,n){n.peerID==e.curDialog.peerID&&(e.history=[])}),e.$on("history_focus",function(){e.historyFilter.mediaType&&T()}),e.$on("apiUpdate",function(t,i){switch(i._){case"updateUserTyping":case"updateChatUserTyping":o.hasUser(i.user_id)&&e.curDialog.peerID==("updateUserTyping"==i._?i.user_id:-i.chat_id)&&(-1==e.historyState.typing.indexOf(i.user_id)&&e.historyState.typing.push(i.user_id),n.cancel(R[i.user_id]),R[i.user_id]=n(function(){var t=e.historyState.typing.indexOf(i.user_id);-1!==t&&e.historyState.typing.splice(t,1)},6e3))}}),e.$on("history_need_less",v),e.$on("history_need_more",y),i.$watch("idle.isIDLE",function(t){t||!e.curDialog||!e.curDialog.peerID||e.historyFilter.mediaType||e.skippedHistory||s.readHistory(e.curDialog.inputPeer)})}]).controller("AppImPanelController",["$scope",function(e){e.$on("user_update",angular.noop)}]).controller("AppImSendController",["$scope","$timeout","MtpApiManager","Storage","AppPeersManager","AppMessagesManager","ApiUpdatesManager","MtpApiFileManager",function(e,t,n,i,a,o){function r(n){return e.$broadcast("ui_message_before_send"),t(function(){var t=e.draftMessage.text;if(!angular.isString(t)||!t.length)return!1;t=t.replace(/:([a-z0-9\-\+\*_]+?):/gi,function(e,t){var n=$.emojiarea.reverseIcons[t];return void 0!==n?n:e});var n=0;do!function(e,t,n){setTimeout(function(){o.sendText(e,t)},n)}(e.curDialog.peerID,t.substr(0,4096),n),t=t.substr(4096),n+=100;while(t.length);s(),e.$broadcast("ui_message_send")}),cancelEvent(n)}function s(t){t?i.get("draft"+e.curDialog.peerID).then(function(t){e.draftMessage.text=t||"",e.$broadcast("ui_peer_draft")}):(e.draftMessage.text="",e.$broadcast("ui_peer_draft"))}function c(t){if(t&&t.length){e.historyFilter.mediaType||e.skippedHistory||o.readHistory(e.curDialog.inputPeer);var n={};n["draft"+e.curDialog.peerID]=t,i.set(n)}else i.remove("draft"+e.curDialog.peerID)}function l(){n.invokeApi("messages.setTyping",{peer:e.curDialog.inputPeer,typing:!0})}function u(t){if(angular.isArray(t)&&t.length)for(var n=0;n<t.length;n++)o.sendFile(e.curDialog.peerID,t[n],{isMedia:e.draftMessage.isMedia}),e.$broadcast("ui_message_send")}e.$watch("curDialog.peer",s),e.$on("user_update",angular.noop),e.$on("ui_typing",l),e.draftMessage={text:""},e.$watch("draftMessage.text",c),e.$watch("draftMessage.files",u),e.sendMessage=r}]).controller("PhotoModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppMessagesManager","AppPeersManager","PeersSelectService","ErrorService",function(e,t,n,i,a,o,r,s,c){function l(n){var i=m.indexOf(t.messageID),r=i>=0?i+n:0,s=++_,c=r>=m.length?u():e.when();c.then(function(){s==_&&(t.messageID=m[r],t.photoID=o.getMessage(t.messageID).media.photo.id,t.photo=a.wrapForFull(t.photoID),d())})}function u(){return b?b:b=o.getSearch(h,f,g,v).then(function(e){e.history.length?(v=e.history[e.history.length-1],m=m.concat(e.history),y=m.length<e.count):y=!1,d(),b=!1})}function d(){var e=m.indexOf(t.messageID);t.nav.hasNext=e>0,t.nav.hasPrev=y||e<m.length-1,t.canForward=t.canDelete=t.messageID>0}if(t.photo=a.wrapForFull(t.photoID),t.nav={},t.download=function(){a.downloadPhoto(t.photoID)},(!t.messageID||Config.Navigator.mobile)&&(t.nav.next=function(){i.close()}),t.messageID){if(t.forward=function(){var e=t.messageID;s.selectPeer({confirm_type:"FORWARD_PEER"}).then(function(t){var i=r.getPeerID(t);o.forwardMessages(i,[e]).then(function(){n.$broadcast("history_focus",{peerString:t})})})},Config.Navigator.mobile)return t.canForward=!0,void(t.canDelete=!0);t.delete=function(){var e=t.messageID;c.confirm({type:"MESSAGE_DELETE"}).then(function(){o.deleteMessages([e])})};var p=o.getMessagePeer(o.getMessage(t.messageID)),h=r.getInputPeerByID(p),f="",g={_:"inputMessagesFilterPhotos"},m=[t.messageID],v=t.messageID,y=!0;d(),o.getSearch(h,f,g,0,1e3).then(function(e){e.history.indexOf(t.messageID)>=0&&(m=e.history,v=m[m.length-1],d())});var _=0,b=!1;t.nav.next=function(){return t.nav.hasNext?void l(-1):!1},t.nav.prev=function(){return t.nav.hasPrev?void l(1):!1},t.$on("history_delete",function(e,n){if(console.log(dT(),"delete",n),n.peerID==p){if(n.msgs[t.messageID])if(t.nav.hasNext)t.nav.next();else{if(!t.nav.hasPrev)return i.dismiss();t.nav.prev()}for(var a=[],o=0;o<m.length;o++)n.msgs[m[o]]||a.push(m[o]);m=a}})}}]).controller("UserpicModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppUsersManager","AppPeersManager","AppMessagesManager","PeersSelectService","ErrorService",function(e,t,n,i,a,o,r,s,c,l){function u(n){var i=f.indexOf(t.photoID),o=i>=0?i+n:0,r=++v,s=o>=f.length?d():e.when();s.then(function(){r==v&&(t.photoID=f[o],t.photo=a.wrapForFull(t.photoID),p())})}function d(){return y?y:y=a.getUserPhotos(h,g).then(function(e){g=e.photos[e.photos.length-1],f=f.concat(e.photos),m=f.length<e.count,p(),y=!1},function(){y=!1})}function p(){var e=f.indexOf(t.photoID);t.nav.hasNext=e>0,t.nav.hasPrev=m||e<f.length-1}t.photo=a.wrapForFull(t.photoID),t.nav={},t.canForward=!0;var h=o.getUserInput(t.userID),f=[t.photoID],g=t.photoID,m=!0;p(),a.getUserPhotos(h,0,1e3).then(function(e){e.photos.indexOf(t.photoID)>=0&&(f=e.photos,g=f[f.length-1],m=f.length<e.count,p())});var v=0,y=!1;t.nav.next=function(){return t.nav.hasNext?void u(-1):!1},t.nav.prev=function(){return t.nav.hasPrev?void u(1):!1},t.forward=function(){t.photoID;c.selectPeer({confirm_type:"FORWARD_PEER"}).then(function(e){var i=r.getPeerID(e);s.sendOther(i,{_:"inputMediaPhoto",id:{_:"inputPhoto",id:t.photoID,access_hash:t.photo.access_hash}}),n.$broadcast("history_focus",{peerString:e})})},t.delete=function(){var e=t.photoID;l.confirm({type:"MESSAGE_DELETE"}).then(function(){s.deleteMessages([e])})},t.download=function(){a.downloadPhoto(t.photoID)}}]).controller("VideoModalController",["$scope","$rootScope","$modalInstance","PeersSelectService","AppMessagesManager","AppVideoManager","AppPeersManager","ErrorService",function(e,t,n,i,a,o,r,s){e.video=o.wrapForFull(e.videoID),e.progress={enabled:!1},e.player={},e.forward=function(){var n=e.messageID;i.selectPeer({confirm_type:"FORWARD_PEER"}).then(function(e){var i=r.getPeerID(e);a.forwardMessages(i,[n]).then(function(){t.$broadcast("history_focus",{peerString:e})})})},e.delete=function(){var t=e.messageID;s.confirm({type:"MESSAGE_DELETE"}).then(function(){a.deleteMessages([t])})},e.download=function(){t.downloadVideo(e.videoID)},e.$on("history_delete",function(t,i){i.msgs[e.messageID]&&n.dismiss()})}]).controller("UserModalController",["$scope","$location","$rootScope","$modal","AppUsersManager","MtpApiManager","NotificationsManager","AppPhotosManager","AppMessagesManager","AppPeersManager","PeersSelectService","ErrorService",function(e,t,n,i,a,o,r,s,c,l,u,d){var p=a.getUserString(e.userID);e.user=a.getUser(e.userID),e.userPhoto=a.getUserPhoto(e.userID,"User"),e.settings={notifications:!0},o.invokeApi("users.getFullUser",{id:a.getUserInput(e.userID)}).then(function(t){a.saveApiUser(t.user),s.savePhoto(t.profile_photo),"photoEmpty"!=t.profile_photo._&&(e.userPhoto.id=t.profile_photo.id),r.savePeerSettings(e.userID,t.notify_settings),r.getPeerMuted(e.userID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t===n?!1:void r.getPeerSettings(e.userID).then(function(n){n.mute_until=t?0:2e9,r.updatePeerSettings(e.userID,n)})})})}),e.goToHistory=function(){n.$broadcast("history_focus",{peerString:p})},e.flushHistory=function(){d.confirm({type:"HISTORY_FLUSH"}).then(function(){c.flushHistory(l.getInputPeerByID(e.userID)).then(function(){e.goToHistory()})})},e.importContact=function(t){var o=n.$new();o.importContact={phone:e.user.phone,first_name:e.user.first_name,last_name:e.user.last_name},i.open({templateUrl:t?"partials/edit_contact_modal.html":"partials/import_contact_modal.html",controller:"ImportContactModalController",windowClass:"import_contact_modal_window page_modal",scope:o}).result.then(function(t){e.userID==t&&(e.user=a.getUser(e.userID),console.log(e.user))})},e.deleteContact=function(){a.deleteContacts([e.userID]).then(function(){e.user=a.getUser(e.userID),console.log(e.user)})},e.shareContact=function(){u.selectPeer({confirm_type:"SHARE_CONTACT_PEER"}).then(function(t){var i=l.getPeerID(t);c.sendOther(i,{_:"inputMediaContact",phone_number:e.user.phone,first_name:e.user.first_name,last_name:e.user.last_name,user_id:e.user.id}),n.$broadcast("history_focus",{peerString:t})})}}]).controller("ChatModalController",["$scope","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,i,a,o,r,s,c,l,u,d,p,h){function f(t){d.processUpdateMessage({_:"updates",users:t.users,chats:t.chats,seq:t.seq,updates:[{_:"updateNewMessage",message:t.message,pts:t.pts}]}),n.$broadcast("history_focus",{peerString:e.chatFull.peerString})}function g(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,s.uploadFile(t).then(function(t){return r.invokeApi("messages.editChatPhoto",{chat_id:e.chatID,photo:{_:"inputChatUploadedPhoto",file:t,crop:{_:"inputPhotoCropAuto"}}}).then(function(e){f(e)})})["finally"](function(){e.photo.updating=!1}))}e.chatFull=o.wrapForFull(e.chatID,{}),r.invokeApi("messages.getFullChat",{chat_id:e.chatID}).then(function(t){o.saveApiChats(t.chats),a.saveApiUsers(t.users),e.chatFull=o.wrapForFull(e.chatID,t.full_chat),e.$broadcast("ui_height")}),e.settings={notifications:!0},c.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t===n?!1:void c.getPeerSettings(-e.chatID).then(function(n){n.mute_until=t?0:2e9,c.updatePeerSettings(-e.chatID,n)})})}),e.leaveGroup=function(){r.invokeApi("messages.deleteChatUser",{chat_id:e.chatID,user_id:{_:"inputUserSelf"}}).then(f)},e.returnToGroup=function(){r.invokeApi("messages.addChatUser",{chat_id:e.chatID,user_id:{_:"inputUserSelf"}}).then(f)},e.inviteToGroup=function(){var t=[];angular.forEach(e.chatFull.participants.participants,function(e){t.push(e.user_id)}),p.selectContacts({disabled:t}).then(function(t){angular.forEach(t,function(t){r.invokeApi("messages.addChatUser",{chat_id:e.chatID,user_id:{_:"inputUserContact",user_id:t},fwd_limit:100}).then(function(e){d.processUpdateMessage({_:"updates",seq:e.seq,users:e.users,chats:e.chats,updates:[{_:"updateNewMessage",message:e.message,pts:e.pts}]})})}),n.$broadcast("history_focus",{peerString:e.chatFull.peerString})})},e.kickFromGroup=function(t){var n=a.getUser(t);console.log({_:"inputUserForeign",user_id:t,access_hash:n.access_hash||"0"},n),r.invokeApi("messages.deleteChatUser",{chat_id:e.chatID,user_id:{_:"inputUserForeign",user_id:t,access_hash:n.access_hash||"0"}}).then(f)},e.flushHistory=function(){h.confirm({type:"HISTORY_FLUSH"}).then(function(){l.flushHistory(u.getInputPeerByID(-e.chatID)).then(function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})})})},e.photo={},e.$watch("photo.file",g),e.deletePhoto=function(){e.photo.updating=!0,r.invokeApi("messages.editChatPhoto",{chat_id:e.chatID,photo:{_:"inputChatPhotoEmpty"}}).then(function(e){f(e)})["finally"](function(){e.photo.updating=!1})},e.editTitle=function(){var t=n.$new();t.chatID=e.chatID,i.open({templateUrl:"partials/chat_edit_modal.html",controller:"ChatEditModalController",scope:t,windowClass:"group_edit_modal_window"})}}]).controller("SettingsModalController",["$rootScope","$scope","$timeout","$modal","AppUsersManager","AppChatsManager","AppPhotosManager","MtpApiManager","Storage","NotificationsManager","MtpApiFileManager","ApiUpdatesManager","ChangelogNotifyService","ErrorService",function(e,t,n,i,a,o,r,s,c,l,u,d,p,h){function f(e){e&&e.type&&0===e.type.indexOf("image")&&(t.photo.updating=!0,u.uploadFile(e).then(function(e){s.invokeApi("photos.uploadProfilePhoto",{file:e,caption:"",geo_point:{_:"inputGeoPointEmpty"},crop:{_:"inputPhotoCropAuto"}}).then(function(e){a.saveApiUsers(e.users),s.getUserID().then(function(e){d.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:e,date:tsNow(!0),photo:a.getUser(e).photo,previous:!0}}),t.photo=a.getUserPhoto(e,"User")})})})["finally"](function(){delete t.updating}))}t.profile={},t.photo={},t.version=Config.App.version,s.getUserID().then(function(e){t.profile=a.getUser(e),t.photo=a.getUserPhoto(e,"User")}),s.invokeApi("users.getFullUser",{id:{_:"inputUserSelf"}}).then(function(e){a.saveApiUser(e.user),r.savePhoto(e.profile_photo),"photoEmpty"!=e.profile_photo._&&(t.photo.id=e.profile_photo.id)}),t.notify={},t.send={},t.$watch("photo.file",f),t.deletePhoto=function(){t.photo.updating=!0,s.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"},crop:{_:"inputPhotoCropAuto"}}).then(function(e){s.getUserID().then(function(n){d.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:e,previous:!0}}),t.photo=a.getUserPhoto(n,"User")})})["finally"](function(){delete t.photo.updating})},t.editProfile=function(){i.open({templateUrl:"partials/profile_edit_modal.html",controller:"ProfileEditModalController",windowClass:"profile_edit_modal_window page_modal"})},t.terminateSessions=function(){h.confirm({type:"TERMINATE_SESSIONS"}).then(function(){s.invokeApi("auth.resetAuthorizations",{})})},c.get("notify_nodesktop","notify_nosound","send_ctrlenter","notify_volume","notify_novibrate").then(function(i){t.notify.desktop=!i[0],t.send.enter=i[2]?"":"1",t.notify.volume=i[1]?0:i[3]!==!1?i[3]>0&&Math.ceil(10*i[3])||0:5,t.notify.canVibrate=l.getVibrateSupport(),t.notify.vibrate=!i[4],t.notify.volumeOf4=function(){return 1+Math.ceil((t.notify.volume-1)/3.3)},t.toggleSound=function(){t.notify.volume=t.notify.volume?0:5};var a;t.$watch("notify.volume",function(e,t){if(e!==t){var i=e/10;c.set({notify_volume:i}),c.remove("notify_nosound"),l.clear(),a&&n.cancel(a),a=n(function(){l.testSound(i)},500)}}),t.toggleDesktop=function(){t.notify.desktop=!t.notify.desktop,t.notify.desktop?c.remove("notify_nodesktop"):c.set({notify_nodesktop:!0})},t.toggleVibrate=function(){t.notify.vibrate=!t.notify.vibrate,t.notify.vibrate?c.remove("notify_novibrate"):c.set({notify_novibrate:!0})},t.toggleCtrlEnter=function(n){t.send.enter=n,t.send.enter?c.remove("send_ctrlenter"):c.set({send_ctrlenter:!0}),e.$broadcast("settings_changed")
}}),t.openChangelog=function(){p.showChangelog(!1)}}]).controller("ProfileEditModalController",["$rootScope","$scope","$timeout","$modal","$modalInstance","AppUsersManager","AppChatsManager","MtpApiManager","Storage","NotificationsManager","MtpApiFileManager","ApiUpdatesManager",function(e,t,n,i,a,o,r,s){t.profile={},t.error={},s.getUserID().then(function(e){t.profile=o.getUser(e)}),t.updateProfile=function(){t.profile.updating=!0,s.invokeApi("account.updateProfile",{first_name:t.profile.first_name||"",last_name:t.profile.last_name||""}).then(function(e){t.error={},o.saveApiUser(e),a.close()},function(e){switch(e.type){case"FIRSTNAME_INVALID":t.error={field:"first_name"},e.handled=!0;break;case"LASTNAME_INVALID":t.error={field:"last_name"},e.handled=!0;break;case"NAME_NOT_MODIFIED":e.handled=!0,a.close()}})["finally"](function(){delete t.profile.updating})}}]).controller("ContactsModalController",["$scope","$modal","$modalInstance","AppUsersManager","ErrorService",function(e,t,n,i){function a(){e.selectedContacts={},e.selectedCount=0}function o(t){i.getContacts(t).then(function(n){e.contacts=[],e.slice.limit=20,angular.forEach(n,function(t){var n={userID:t,user:i.getUser(t),userPhoto:i.getUserPhoto(t,"User")};e.contacts.push(n)}),e.contactsEmpty=t?!1:!e.contacts.length,e.$broadcast("contacts_change")})}if(e.contacts=[],e.search={},e.slice={limit:20,limitDelta:20},a(),e.disabledContacts={},e.disabled)for(var r=0;r<e.disabled.length;r++)e.disabledContacts[e.disabled[r]]=!0;if(e.selected)for(var r=0;r<e.selected.length;r++)e.selectedContacts[e.selected[r]]||(e.selectedContacts[e.selected[r]]=!0,e.selectedCount++);e.$watch("search.query",o),e.toggleEdit=function(t){e.action=t?"edit":"",e.multiSelect=t,a()},e.contactSelect=function(t){return e.disabledContacts[t]?!1:e.multiSelect?void(e.selectedContacts[t]?(delete e.selectedContacts[t],e.selectedCount--):(e.selectedContacts[t]=!0,e.selectedCount++)):n.close(t)},e.submitSelected=function(){if(e.selectedCount>0){var t=[];return angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),n.close(t)}},e.deleteSelected=function(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),i.deleteContacts(t).then(function(){a(),o(e.search.query)})}},e.importContact=function(){i.openImportContact().then(function(){o(e.search&&e.search.query||"")})}}]).controller("PeerSelectController",["$scope","$modalInstance","$q","AppPeersManager","ErrorService",function(e,t,n,i,a){e.dialogSelect=function(o){var r;if(e.confirm_type){var s=i.getPeerID(o),c=i.getPeer(s);r=a.confirm({type:e.confirm_type,peer_id:s,peer_data:c})}else r=n.when();r.then(function(){t.close(o)})},e.toggleSearch=function(){e.$broadcast("dialogs_search_toggle")}}]).controller("ChatCreateModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,i,a,o,r){e.group={name:""},e.createGroup=function(){if(e.group.name){e.group.creating=!0;var t=[];return angular.forEach(e.userIDs,function(e){t.push({_:"inputUserContact",user_id:e})}),i.invokeApi("messages.createChat",{title:e.group.name,users:t}).then(function(e){r.processUpdateMessage({_:"updates",seq:e.seq,users:e.users,chats:e.chats,updates:[{_:"updateNewMessage",message:e.message,pts:e.pts}]});var t=o.getChatString(e.message.to_id.chat_id);n.$broadcast("history_focus",{peerString:t})})["finally"](function(){delete e.group.creating})}}}]).controller("ChatEditModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,i,a,o,r){var s=o.getChat(e.chatID);e.group={name:s.title},e.updateGroup=function(){return e.group.name?e.group.name==s.title?t.close():(e.group.updating=!0,i.invokeApi("messages.editChatTitle",{chat_id:e.chatID,title:e.group.name}).then(function(t){r.processUpdateMessage({_:"updates",seq:t.seq,users:t.users,chats:t.chats,updates:[{_:"updateNewMessage",message:t.message,pts:t.pts}]});var i=o.getChatString(e.chatID);n.$broadcast("history_focus",{peerString:i})})["finally"](function(){delete e.group.updating})):void 0}}]).controller("ImportContactModalController",["$scope","$modalInstance","$rootScope","AppUsersManager","ErrorService","PhonebookContactsService",function(e,t,n,i,a,o){void 0===e.importContact&&(e.importContact={}),e.phonebookAvailable=o.isAvailable(),e.doImport=function(){e.importContact&&e.importContact.phone&&(e.progress={enabled:!0},i.importContact(e.importContact.phone,e.importContact.first_name||"",e.importContact.last_name||"").then(function(e){e||a.show({error:{code:404,type:"USER_NOT_USING_TELEGRAM"}}),t.close(e)})["finally"](function(){delete e.progress.enabled}))},e.importPhonebook=function(){o.openPhonebookImport().result.then(function(e){e?t.close(e[0]):t.dismiss()})}}]).controller("CountrySelectModalController",["$scope","$modalInstance","$rootScope","SearchIndexManager",function(e,t,n,i){e.search={},e.slice={limit:20,limitDelta:20};for(var a=i.createIndex(),o=0;o<Config.CountryCodes.length;o++)i.indexObject(o,Config.CountryCodes[o].join(" "),a);e.$watch("search.query",function(t){var n=!1,o={};angular.isString(t)&&t.length&&(n=!0,o=i.search(t,a)),e.countries=[],e.slice.limit=20;for(var r,s=0;s<Config.CountryCodes.length;s++)if(!n||o[s])for(r=2;r<Config.CountryCodes[s].length;r++)e.countries.push({name:Config.CountryCodes[s][1],code:Config.CountryCodes[s][r]})})}]).controller("PhonebookModalController",["$scope","$modalInstance","$rootScope","AppUsersManager","PhonebookContactsService","SearchIndexManager","ErrorService",function(e,t,n,i,a,o,r){function s(){var t=!1,n={};if(angular.isString(e.search.query)&&e.search.query.length){t=!0,n=o.search(e.search.query,c),e.contacts=[],delete e.contactsEmpty;for(var i=0;i<e.phonebook.length;i++)(!t||n[i])&&e.contacts.push(e.phonebook[i])}else e.contacts=e.phonebook,e.contactsEmpty=!e.contacts.length;e.slice.limit=20}e.search={},e.phonebook=[],e.selectedContacts={},e.selectedCount=0,e.slice={limit:20,limitDelta:20},e.progress={enabled:!1},e.multiSelect=!0;var c=o.createIndex(),l=!1;a.getPhonebookContacts().then(function(t){for(var n=0;n<t.length;n++)o.indexObject(n,t[n].first_name+" "+t[n].last_name+" "+t[n].phones.join(" "),c);e.phonebook=t,e.toggleSelection(!0),l=!0,s()},function(e){r.show({error:{code:403,type:"PHONEBOOK_GET_CONTACTS_FAILED",originalError:e}})}),e.$watch("search.query",function(){l&&s()}),e.contactSelect=function(n){return e.multiSelect?void(e.selectedContacts[n]?(delete e.selectedContacts[n],e.selectedCount--):(e.selectedContacts[n]=!0,e.selectedCount++)):t.close(e.phonebook[n])},e.toggleSelection=function(t){if(!e.selectedCount||t){e.selectedCount=e.phonebook.length;for(var n=0;n<e.phonebook.length;n++)e.selectedContacts[n]=!0}else e.selectedCount=0,e.selectedContacts={}},e.submitSelected=function(){e.selectedCount<=0&&t.dismiss();var n=[];angular.forEach(e.selectedContacts,function(t,i){n.push(e.phonebook[i])}),r.confirm({type:"CONTACTS_IMPORT_PERFORM"}).then(function(){e.progress.enabled=!0,i.importContacts(n).then(function(e){e.length||r.show({error:{code:404,type:"USERS_NOT_USING_TELEGRAM"}}),t.close(e)})["finally"](function(){e.progress.enabled=!1})})}}]),angular.module("myApp.filters",[]).filter("userName",[function(){return function(e){return e&&(e.first_name||e.last_name)?e.first_name+" "+e.last_name:"DELETED"}}]).filter("userFirstName",[function(){return function(e){return e&&(e.first_name||e.last_name)?e.first_name||e.last_name:"DELETED"}}]).filter("userStatus",["$filter",function(e){return function(t){return t&&t.status&&"userStatusEmpty"!=t.status._?"userStatusOnline"==t.status._?"online":"last seen "+e("relativeTime")(t.status.was_online):"offline"}}]).filter("chatTitle",[function(){return function(e){return e&&e.title?e.title:"DELETED"}}]).filter("dateOrTime",["$filter",function(e){var t={},n=e("date");return function(e){if(t[e])return t[e];var i=1e3*e,a=Math.abs(tsNow()-i),o="HH:mm";return a>5184e5?o="shortDate":a>432e5&&(o="EEE"),t[e]=n(i,o)}}]).filter("time",["$filter",function(e){var t={},n=e("date"),i=Config.Navigator.mobile?"HH:mm":"HH:mm:ss";return function(e){return t[e]?t[e]:t[e]=n(1e3*e,i)}}]).filter("myDate",["$filter",function(e){var t={},n=e("date");return function(e){return t[e]?t[e]:t[e]=n(1e3*e,"fullDate")}}]).filter("duration",[function(){return function(e){var t=e%60,n=Math.floor((e-t)/60);return 10>t&&(t="0"+t),n+":"+t}}]).filter("phoneNumber",[function(){return function(e){var t=" ";return e=(e||"").replace(/\D/g,""),"7"==e.charAt(0)&&11==e.length?"+"+e.charAt(0)+t+"("+e.substr(1,3)+")"+t+e.substr(4,3)+"-"+e.substr(7,2)+"-"+e.substr(9,2):"+"+e}}]).filter("formatSize",[function(){return function(e){return e?1024>e?e+" b":1048576>e?Math.round(e/1024*10)/10+" Kb":Math.round(e/1048576*100)/100+" Mb":"0"}}]).filter("formatSizeProgress",["$filter",function(e){return function(t){var n=e("formatSize")(t.done),i=n.split(" "),a=e("formatSize")(t.total),o=a.split(" ");return o[1]===i[1]?i[0]+" of "+o[0]+" "+(i[1]||""):n+" of "+a}}]).filter("nl2br",[function(){return function(e){return e.replace(/\n/g,"<br/>")}}]).filter("richText",["$filter",function(e){return function(t){return e("linky")(t,"_blank").replace(/\n|&#10;/g,"<br/>")}}]).filter("relativeTime",["$filter",function(e){var t={one:"minute ago",many:"minutes ago"},n={one:"hour ago",many:"hours ago"};return function(i){var a=1e3*i,o=Math.abs(tsNow()-a);if(6e4>o)return"just now";if(3e6>o){var r=Math.ceil(o/6e4);return r+" "+t[r>1?"many":"one"]}if(1e7>o){var s=Math.ceil(o/36e5);return s+" "+n[s>1?"many":"one"]}return e("dateOrTime")(i)}}]),angular.module("myApp.templates",[]).run(["$templateCache",function(e){e.put("partials/changelog_modal.html",'<div class="changelog_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$close()"><i></i></a>\n\n <div class="modal-body">\n\n <div class="changelog_card_wrap" ng-switch="lastVersion === false">\n <div ng-switch-when="true">\n <div class="changelog_card"></div>\n <h2 class="changelog_header">Recent updates in <strong>Telegram Web</strong></h2>\n </div>\n <div ng-switch-default>\n <div class="changelog_card"></div>\n <h2 class="changelog_header"><strong>Telegram Web</strong> has been updated!</h2>\n </div>\n </div>\n\n <div class="changelog_versions_wrap">\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n <span class="pull-right">current version</span>\n Version 0.3.0\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Log in codes may be received in other Telegram apps</li>\n <li>Partner\'s online status updates automatically</li>\n <li>Added support for non-english hashtags in messages</li>\n <li>Fixed invalid scrollbar width bug</li>\n <li>[Desktop] Added automatic country code detection</li>\n <li>[FirefoxOS] Improved PUSH-notifications for &lt;= 1.1</li>\n <li>[FirefoxOS] Fixed emoji in notifications</li>\n <li>[FirefoxOS] Fixed attachment bug for &lt;= 1.1</li>\n <li>[FirefoxOS] Added phonebook permissions handling</li>\n <li>[FirefoxOS] Added ability to share Gallery photos in Telegram</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2.9\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Updated mobile layout</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2.5\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Updated mobile layout</li>\n <li>Improved performance</li>\n <li>Improved messages grouping</li>\n <li>[FirefoxOS] Fixed notifications for &lt;= 1.1</li>\n <li>[FirefoxOS] Fixed phonebook import</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2.1\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improved key generation performance on slow devices</li>\n <li>Added network sleep for mobile devices</li>\n <li>[FirefoxOS] Added support of PUSH notifications</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.2\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Updated contacts list, added edit mode</li>\n <li>First Firefox OS release. See <a href="https://marketplace.firefox.com/app/telegram" target="_blank">Firefox Marketplace</a></li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.9\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.9\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improvements of performance</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.8\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.8\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improved mobile layout</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.7\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.7\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Improved mobile layout</li>\n <li>Added file cache for Firefox and Android</li>\n <li>New design for forwarded messages</li>\n <li>Hash-tags support</li>\n <li>Messaging bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.6\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.6\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added search of messages</li>\n <li>Improved performance of chats with lots of unread messages</li>\n <li>Bugfixes</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.5\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.5\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added registration</li>\n <li>Improved experience for newly registered users</li>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.4\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.4\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Browse userpic history (click on the photo in user info)</li>\n <li>New <a href="https://github.com/zhukov/webogram" target="_blank" title="Source code on GitHub">GitHub</a>, <a href="https://twitter.com/telegram_web" target="_blank" title="Follow us on Twitter!">Twitter</a> buttons in Settings</li>\n <li>Updated keyboard shortcuts:</li>\n <ul>\n <li><strong>Alt+Home</strong> - switch to first (most recent) conversation</li>\n <li>Removed <strong>Alt+1, 2, 3..</strong> shortcuts due to conflicts in different browsers</li>\n </ul>\n </ul>\n </div>\n </div>\n\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.3\')">\n <h3 class="modal_section_header changelog_version_title">\n Version 0.1.3\n </h3>\n <div class="modal_section_body changelog_version_changes">\n <ul class="list-unstyled changelog_version_changes_list">\n <li>Added version history to welcome screen</li>\n <li>Added keyboard shortcuts:</li>\n <ul>\n <li><strong>Tab</strong> - set focus to message field</li>\n <li><strong>Esc</strong> or <strong>Shift+Tab</strong> - set focus to search field</li>\n <li><strong>Up/Down</strong> (while in search field) - move between conversations</li>\n <li><strong>Enter</strong> (while in search field) - open selected or first conversation</li>\n <li><strong>Alt+Up/Down</strong> - move to previous/next conversation</li>\n </ul>\n <li>Improved grouping for messages</li>\n <li>Fixed video modal positioning bug</li>\n <li>Fixed focusing issues on mobile</li>\n </ul>\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>'),e.put("partials/chat_create_modal.html",'<div class="contacts_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="createGroup()">\n\n <h4>Create Group</h4>\n\n <div class="form-group">\n <input class="form-control input-sm" my-focused type="text" placeholder="Group name" ng-model="group.name"/>\n </div>\n\n </form>\n\n </div>\n\n <div class="modal-footer">\n <a class="btn btn-link" ng-click="$dismiss()">Cancel</a>\n <button class="btn btn-primary" ng-class="{disabled: group.creating}" ng-click="createGroup()" ng-bind="group.creating ? \'Creating...\' : \'Create Group\'" ng-disabled="group.creating"></button>\n </div>\n\n</div>'),e.put("partials/chat_edit_modal.html",'<div class="contacts_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="updateGroup()">\n\n <h4>Edit Group</h4>\n\n <div class="form-group">\n <input class="form-control input-sm" my-focused type="text" placeholder="Group name" ng-model="group.name"/>\n </div>\n\n </form>\n\n </div>\n\n <div class="modal-footer">\n <a class="btn btn-link" ng-click="$dismiss()">Cancel</a>\n <button class="btn btn-primary" ng-class="{disabled: group.updating}" ng-click="updateGroup()" ng-bind="group.updating ? \'Saving...\' : \'Save\'" ng-disabled="group.updating"></button>\n </div>\n\n</div>'),e.put("partials/chat_modal.html",'<div class="chat_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$close()"><i></i></a>\n\n <div class="modal-body">\n\n <div class="user_modal_photo_profile_wrap">\n\n <div class="user_modal_image_wrap pull-left">\n <img\n class="user_modal_image"\n my-load-thumb\n watch="true"\n thumb="chatFull.thumb"\n />\n </div>\n\n <div class="chat_modal_info_wrap clearfix">\n <h4 class="chat_modal_header" ng-bind-html="chatFull.chat.rTitle"></h4>\n <p class="chat_modal_members_count" ng-if="chatFull.chat.participants_count > 0">\n <ng-pluralize count="chatFull.chat.participants_count"\n when="{\'0\': \'No members\', \'one\': \'1 member\', \'other\': \'{} members\'}">\n </ng-pluralize>\n </p>\n\n <div class="chat_modal_actions_wrap clearfix">\n\n <button ng-if="!chatFull.chat.left &amp;&amp; chatFull.participants.participants.length" class="btn btn-primary chat_modal_invite_btn" ng-click="inviteToGroup()">Add member</button>\n <button ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; chatFull.chat.left" class="btn btn-primary chat_modal_main_btn" ng-click="returnToGroup()">Return to group</button>\n <button ng-if="chatFull.chat._ == \'chatForbidden\'" class="btn btn-danger chat_modal_delete_btn" ng-click="flushHistory()">Delete chat</button>\n\n <span ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; !chatFull.chat.left &amp;&amp; !photo.updating" class="btn btn-primary chat_modal_main_btn" >\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\n Update photo\n </span>\n <span ng-if="photo.updating" class="btn btn-primary chat_modal_main_btn disabled" disabled>\n Updating<span my-loading-dots></span>\n </span>\n\n\n <div class="dropdown chat_modal_other_btn" ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; !chatFull.chat.left">\n <button class="btn btn-link dropdown-toggle">More<i class="icon icon-caret"></i></button>\n <ul class="dropdown-menu">\n <li ng-if="chatFull.thumb.location">\n <a ng-click="deletePhoto()">Delete photo</a>\n </li>\n <li>\n <a ng-click="editTitle()">Edit group</a>\n </li>\n <li>\n <a ng-click="leaveGroup()">Leave group</a>\n </li>\n <li>\n <a ng-click="flushHistory()">Delete chat</a>\n </li>\n </ul>\n </div>\n\n </div>\n\n </div>\n </div>\n\n <div class="modal_section">\n <h3 class="modal_section_header">Settings</h3>\n <div class="modal_section_body">\n\n <div class="tg_form_group">\n <a class="tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Notifications</span>\n </a>\n </div>\n </div>\n </div>\n\n <div class="modal_section">\n <h3 class="modal_section_header">Members</h3>\n <div class="modal_section_body">\n\n <div class="chat_modal_members_list">\n\n <div class="chat_modal_participant_wrap clearfix" ng-repeat="participant in chatFull.participants.participants | orderBy:\'-user.sortStatus\'">\n <a ng-if="participant.canKick" ng-click="kickFromGroup(participant.user_id)" class="chat_modal_participant_kick pull-right">Kick</a>\n\n <a class="chat_modal_participant_photo pull-left" my-user-photolink="participant.user_id" img-class="chat_modal_participant_photo" status="true"></a>\n\n <div class="chat_modal_participant_name">\n <a my-user-link="participant.user_id"></a>\n </div>\n <div class="chat_modal_participant_status" my-user-status="::participant.user_id"></div>\n </div>\n\n </div>\n\n <div class="chat_modal_members_forbidden" ng-if="chatFull.chat._ == \'chatForbidden\' || chatFull.chat.left">\n Group members list is unavailable.\n </div>\n\n </div>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/confirm_modal.html",'<div class="confirm_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <div class="confirm_modal_description" ng-switch="type">\n <span ng-switch-when="LOGOUT">Are you sure you want to log out?</span>\n <span ng-switch-when="WEBOGRAM_UPDATED_RELOAD">A new version of Webogram has been downloaded. Launch it?</span>\n <span ng-switch-when="HISTORY_FLUSH">Are you sure? This can not be undone!</span>\n <span ng-switch-when="TERMINATE_SESSIONS">Are you sure you want to log out all devices except for the current one?</span>\n <span ng-switch-when="HTTPS_MIXED_FAIL">\n Your browser <a href="http://mzl.la/13jCUSU" target="_blank">does not support</a> mixed content which is neccessary for MTProto support on https. <a href="https://github.com/zhukov/webogram/issues/237" target="_blank">Learn more &raquo;</a><br/><br/>\n Would you like use http-version instead?\n </span>\n\n <span ng-switch-when="FILES_CLIPBOARD_PASTE">\n <ng-pluralize count="files.length"\n when="{\'one\': \'Are you sure to send file from clipboard?\', \'other\': \'Are you sure to send {} files from clipboard?\'}">\n </ng-pluralize>\n </span>\n <span ng-switch-when="FILE_CLIPBOARD_PASTE">Are you sure to send file(s) from clipboard?</span>\n <span ng-switch-when="MESSAGE_DELETE">Are you sure you want to delete the message?</span>\n <span ng-switch-when="CONTACTS_IMPORT_PERFORM">Telegram will now sync your contacts in order to find your friends.</span>\n <div ng-switch-when="LOGIN_PHONE_CORRECT">\n Is this phone number correct?\n <div class="confirm_phone_number"> <span ng-bind="country_code"></span> <span ng-bind="phone_number"></span> </div>\n </div>\n <span ng-switch-when="FORWARD_PEER">Forward to <strong ng-switch="peer_id > 0">\n <span ng-switch-when="true" ng-bind-html="peer_data.rFullName"></span>\n <span ng-switch-default ng-bind-html="peer_data.rTitle"></span>\n </strong>?</span>\n <span ng-switch-when="SHARE_CONTACT_PEER">Send to <strong ng-switch="peer_id > 0">\n <span ng-switch-when="true" ng-bind-html="peer_data.rFullName"></span>\n <span ng-switch-default ng-bind-html="peer_data.rTitle"></span>\n </strong>?</span>\n <span ng-switch-when="EXT_SHARE_PEER">Share with <strong ng-switch="peer_id > 0">\n <span ng-switch-when="true" ng-bind-html="peer_data.rFullName"></span>\n <span ng-switch-default ng-bind-html="peer_data.rTitle"></span>\n </strong>?</span>\n <span ng-switch-default ng-bind="message || \'Are you sure?\'"></span>\n </div>\n\n </div>\n\n <div class="modal-footer">\n <a class="btn btn-link" ng-click="$dismiss()" ng-switch="type">\n <span ng-switch-default>Cancel</span>\n </a>\n <button type="button" class="btn btn-primary" ng-switch="type" ng-click="$close()" my-focused>\n <span ng-switch-when="LOGOUT">Log Out</span>\n <span ng-switch-when="HISTORY_FLUSH">Delete Chat</span>\n <span ng-switch-when="FILES_CLIPBOARD_PASTE">Send</span>\n <span ng-switch-when="FILE_CLIPBOARD_PASTE">Send</span>\n <span ng-switch-when="MESSAGE_DELETE">Delete</span>\n <span ng-switch-when="FORWARD_PEER">Forward message</span>\n <span ng-switch-when="PHOTO_SHARE_PEER">Forward photo</span>\n <span ng-switch-when="VIDEO_SHARE_PEER">Forward video</span>\n <span ng-switch-when="SHARE_CONTACT_PEER">Send contact</span>\n <span ng-switch-when="EXT_SHARE_PEER">Share file</span>\n <span ng-switch-default>OK</span>\n </button>\n </div>\n\n</div>'),e.put("partials/contacts_modal.html",'<div class="contacts_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <div class="contacts_modal_header">\n <div class="contacts_modal_edit_wrap" ng-if="!action || action == \'edit\'" ng-switch="action">\n <a ng-switch-when="edit" class="contacts_modal_edit_link" ng-click="toggleEdit(false)">\n Cancel\n </a>\n <a ng-switch-default class="contacts_modal_edit_link" ng-click="toggleEdit(true)">\n Edit\n </a>\n </div>\n <h4 class="contacts_modal_title" ng-switch="action">\n <div ng-switch-when="new_group" ng-switch="selectedCount > 0">\n <span ng-switch-when="true">\n <ng-pluralize count="selectedCount" when="{\'one\': \'1 participant\', \'other\': \'{} participants\'}">\n </ng-pluralize>\n </span>\n <span ng-switch-default>New Group</span>\n </div>\n <span ng-switch-default>Contacts</span>\n </h4>\n </div>\n\n\n <div class="contacts_modal_search">\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="Search" ng-model="search.query"/>\n <a class="contacts_modal_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length"></a>\n </div>\n\n\n <div my-contacts-list class="contacts_modal_col">\n\n <div class="contacts_wrap nano" my-infinite-scroller>\n <div class="contacts_scrollable_wrap nano-content" ng-switch="contactsEmpty">\n\n <div ng-switch-when="true" class="contacts_modal_contacts_empty" my-vertical-position="0.2" padding="true">\n Your contacts list is empty. You can <a href="" ng-click="importContact()">add new contact</a> by phone number.\n </div>\n\n <ul ng-switch-default class="contacts_modal_members_list nav nav-pills nav-stacked">\n\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | orderBy:\'user.sortName\' | limitTo: slice.limit track by contact.userID" ng-class="{active: selectedContacts[contact.userID], disabled: disabledContacts[contact.userID]}">\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)">\n\n <i ng-if="multiSelect" class="icon icon-contact-tick"></i>\n\n <div class="contacts_modal_contact_photo pull-left" my-user-photolink="contact.userID" status="true" img-class="contacts_modal_contact_photo"></div>\n <div class="contacts_modal_contact_name" ng-bind-html="contact.user.rFullName"></div>\n <div class="contacts_modal_contact_status" my-user-status="::contact.userID"></div>\n\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n <div class="modal-footer contacts_modal_panel" ng-switch="action">\n <div ng-switch-when="new_group" class="pull-right">\n <button class="btn btn-link" ng-click="$dismiss()">Cancel</button>\n <button class="btn btn-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit">\n Next\n </button>\n </div>\n\n <button ng-switch-when="select" class="btn btn-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit">\n Next\n </button>\n <button ng-switch-when="edit" class="btn btn-danger" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="deleteSelected()">\n Delete <strong ng-bind="selectedCount"></strong>\n </button>\n <button ng-switch-default class="btn btn-link" ng-click="importContact()">\n New contact\n </button>\n </div>\n\n</div>'),e.put("partials/country_select_modal.html",'<div class="countries_modal_wrap" my-modal-position>\n\n <div class="modal-body">\n\n <h4 class="modal_simple_header">Country</h4>\n\n <div class="countries_modal_search">\n <input class="form-control countries_modal_search_field" my-focused type="search" placeholder="Search" ng-model="search.query"/>\n <a class="countries_modal_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length"></a>\n </div>\n\n <div class="countries_modal_col" my-countries-list>\n\n <div class="countries_wrap nano" my-infinite-scroller>\n <div class="countries_scrollable_wrap nano-content">\n\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\n\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\n <a class="countries_modal_country" ng-click="$close(country)">\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n <div class="modal-footer">\n <button type="button" class="btn btn-primary" ng-click="$dismiss()">Done</button>\n </div>\n\n</div>'),e.put("partials/dialog.html",'<a class="im_dialog" ng-click="dialogSelect(dialogMessage.peerString, search.messages &amp;&amp; dialogMessage.id)">\n\n <div class="im_dialog_meta pull-right text-right">\n <div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div>\n <span\n class="im_dialog_badge badge"\n ng-show="dialogMessage.unreadCount > 0 &amp;&amp; !dialogMessage.out"\n ng-bind="dialogMessage.unreadCount"\n ></span>\n <i\n class="im_dialog_unread"\n ng-show="dialogMessage.out &amp;&amp; dialogMessage.unread"\n ></i>\n </div>\n\n <div class="im_dialog_photo pull-left">\n <img\n class="im_dialog_photo"\n my-load-thumb\n watch="true"\n thumb="dialogMessage.peerPhoto"\n />\n </div>\n\n <div class="im_dialog_message_wrap">\n\n <div class="im_dialog_peer" ng-switch="dialogMessage.peerID > 0">\n <span class="im_dialog_user" ng-switch-when="true" ng-bind-html="dialogMessage.peerData.rFullName"></span>\n <span class="im_dialog_chat" ng-switch-default>\n <span ng-bind-html="dialogMessage.peerData.rTitle"></span>\n </span>\n </div>\n\n <div ng-switch="dialogMessage.deleted">\n <div ng-switch-when="true" class="im_dialog_message">\n <span class="im_dialog_message_text">deleted message</span>\n </div>\n <div ng-switch-default class="im_dialog_message">\n <span class="im_dialog_chat_from_wrap">\n <span\n class="im_dialog_chat_from"\n ng-if="!dialogMessage.out &amp;&amp; dialogMessage.chatID"\n ng-bind-html="dialogMessage.fromUser.rFirstName"\n ></span><span\n class="im_dialog_chat_from"\n ng-if="dialogMessage.out"\n >You</span>{{((dialogMessage.out || dialogMessage.peerID &lt; 0) &amp;&amp; (dialogMessage.message.length || dialogMessage.media &amp;&amp; dialogMessage.media._ != \'messageMediaEmpty\')) ? \':\' : \'\'}}\n </span>\n\n <span class="im_dialog_message_media" ng-if="dialogMessage.media &amp;&amp; dialogMessage.media._ != \'messageMediaEmpty\'" ng-switch="dialogMessage.media._">\n <span ng-switch-when="messageMediaPhoto">Photo</span>\n <span ng-switch-when="messageMediaVideo">Video</span>\n <span ng-switch-when="messageMediaDocument">Document</span>\n <span ng-switch-when="messageMediaAudio">Audio</span>\n <span ng-switch-when="messageMediaGeo">Location</span>\n <span ng-switch-when="messageMediaContact">Contact</span>\n </span>\n\n <span class="im_dialog_message_service" ng-if="dialogMessage._ == \'messageService\'" ng-switch="dialogMessage.action._">\n <span ng-switch-when="messageActionChatCreate">created the group</span>\n <span ng-switch-when="messageActionChatEditTitle">changed group name</span>\n <span ng-switch-when="messageActionChatEditPhoto">changed group photo</span>\n <span ng-switch-when="messageActionChatDeletePhoto">removed group photo</span>\n\n <span ng-switch-when="messageActionChatAddUser" ng-switch="dialogMessage.from_id == dialogMessage.action.user_id">\n <span ng-switch-when="true">\n returned to group\n </span>\n <span ng-switch-default>\n invited <span ng-bind-html="dialogMessage.action.user.rFullName"></span>\n </span>\n </span>\n\n <span ng-switch-when="messageActionChatDeleteUser" ng-switch="dialogMessage.from_id == dialogMessage.action.user_id">\n <span ng-switch-when="true">\n left group\n </span>\n <span ng-switch-default>\n kicked <span ng-bind-html="dialogMessage.action.user.rFullName"></span>\n </span>\n </span>\n </span>\n\n <span class="im_dialog_message_text" ng-if="dialogMessage.message.length" ng-bind-html="dialogMessage.richMessage"></span>\n </div>\n </div>\n\n </div>\n</a>\n'),e.put("partials/edit_contact_modal.html",'<div class="import_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="doImport()">\n\n <h4>Edit contact</h4>\n\n <div class="form-group">\n <span class="form-control uneditable-input disabled" disabled ng-bind="importContact.phone | phoneNumber"></span>\n </div>\n <div class="form-group">\n <input class="form-control input-sm" my-focused type="text" placeholder="First name" ng-model="importContact.first_name"/>\n </div>\n <div class="form-group">\n <input class="form-control input-sm" type="text" placeholder="Last name" ng-model="importContact.last_name"/>\n </div>\n\n </form>\n\n </div>\n\n <div class="modal-footer">\n <a class="btn btn-link" ng-click="$dismiss()">Cancel</a>\n <button class="btn btn-primary" ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'Saving...\' : \'Save\'" ng-disabled="progress.enabled"></button>\n </div>\n\n</div>'),e.put("partials/error_modal.html",'<div class="error_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$close()"><i></i></a>\n\n <div class="modal-body">\n\n <h4 ng-if="error" class="modal_simple_header" ng-switch="error.type">\n <span ng-switch-when="ACCOUNT_REQUIRED">No account</span>\n <span ng-switch-default ng-switch="error.code">\n <span ng-switch-when="400">Error</span>\n <span ng-switch-when="401">Unauthorized</span>\n <span ng-switch-when="403">Access denied</span>\n <span ng-switch-when="404">Not found</span>\n <span ng-switch-when="406">Network error</span>\n <span ng-switch-when="420">Too fast</span>\n <span ng-switch-default>Server error</span>\n </span>\n </h4>\n <h4 ng-if="!error" class="modal_simple_header" ng-bind="title || \'Alert\'"></h4>\n\n <div ng-if="error" class="error_modal_description" ng-switch="error.type">\n <span ng-switch-when="NETWORK_BAD_REQUEST">\n Please check your internet connection.\n </span>\n <span ng-switch-when="NETWORK_BAD_RESPONSE">\n Please check your internet connection.\n </span>\n <span ng-switch-when="FIRSTNAME_INVALID">\n The first name you entered is invalid.\n </span>\n <span ng-switch-when="LASTNAME_INVALID">\n The last name you entered is invalid.\n </span>\n <span ng-switch-when="PHONE_NUMBER_INVALID">\n The phone number you entered is invalid.\n </span>\n <span ng-switch-when="USERS_TOO_MUCH">\n You have selected too much users.\n </span>\n <span ng-switch-when="PHOTO_INVALID_DIMENSIONS">\n The photo dimensions are invalid, please select another file.\n </span>\n <span ng-switch-when="VIDEO_EXT_INVALID">\n The video file extension is invalid or unsupported, please select another file.\n </span>\n <span ng-switch-when="PHOTO_CROP_SIZE_SMALL">\n The photo you provided is too small.\n </span>\n <span ng-switch-when="ACCOUNT_REQUIRED">\n Sorry, there is no <strong>Telegram</strong> account for {{phone | phoneNumber}}<br/><br/>\n Please <strong>sign up</strong> using our mobile apps for <a href="https://telegram.org/" target="_blank">iOS</a> or <a href="https://telegram.org/" target="_blank">Android</a>.\n </span>\n <span ng-switch-when="USER_NOT_USING_TELEGRAM">\n Sorry, there is no <strong>Telegram</strong> account with the phone number you provided.\n </span>\n <span ng-switch-when="USERS_NOT_USING_TELEGRAM">\n Sorry, there are no <strong>Telegram</strong> accounts with the phone numbers you provided.\n </span>\n <span ng-switch-when="PHONEBOOK_GET_CONTACTS_FAILED">\n Telegram needs access to phonebook to import contacts.\n </span>\n\n <div ng-switch-default ng-switch="error.code">\n <span ng-switch-when="400">One of the params is missing or invalid.</span>\n <span ng-switch-when="401">This action requires authorization access. Please <a href="#/login">log in</a>.</span>\n <span ng-switch-when="403">You are not allowed for this action.</span>\n <span ng-switch-when="404">The page was not found.</span>\n <span ng-switch-when="420">You are performing too many actions. Please try again later.</span>\n <span ng-switch-default>Internal server error occured. Please try again later.</span>\n </div>\n\n </div>\n\n <div ng-if="error" class="error_modal_details" ng-switch="error.detailsShown">\n <textarea ng-switch-when="true" rows="3" onclick="this.select()">Method: {{error.input || \'N/A\'}}\nResult: {{error.originalError ? error.originalError : (error.stack ? (error.name || \'\') + \' \' + (error.description || error.message) : error)}}\nStack: {{error.stack}}</textarea>\n <div ng-switch-default>\n <a href="" ng-click="error.detailsShown = true">Technical details here</a>\n </div>\n </div>\n\n <div ng-if="!error" class="error_modal_description" ng-bind="description"></div>\n\n </div>\n\n</div>'),e.put("partials/full_gif.html",'<a class="img_gif_with_progress_wrap" ng-click="toggle()">\n\n <div class="img_gif_image_wrap" ng-switch="document.url &amp;&amp; isActive">\n\n <img ng-switch-when="true" class="img_gif_image" ng-src="{{document.url}}" />\n <img ng-switch-default class="img_gif_thumb" my-load-thumb thumb="document.thumb" />\n\n </div>\n\n <div ng-show="!isActive" ng-switch="document.progress.enabled">\n\n <div ng-switch-when="true" class="img_gif_progress_wrap">\n <div class="img_gif_progress progress tg_progress">\n <div class="progress-bar progress-bar-success" ng-style="{width: document.progress.percent + \'%\'}"></div>\n </div>\n </div>\n\n <div ng-switch-default class="img_gif_info_wrap">\n <div class="img_gif_label pull-left">GIF</div>\n <div ng-if="!document.url" class="img_gif_size pull-right" ng-bind="::document.size | formatSize"></div>\n </div>\n\n </div>\n\n</a>'),e.put("partials/full_photo.html",'<div class="img_fullsize_with_progress_wrap">\n <div class="img_fullsize_progress_overlay" ng-show="progress.enabled">\n <div class="img_fullsize_progress_wrap">\n <div class="img_fullsize_progress progress tg_progress" ng-show="progress.percent > 0">\n <div class="progress-bar progress-bar-success" ng-style="{width: progress.percent + \'%\'}">\n </div>\n </div>\n </div>\n </div>\n <div class="photo_full_wrap">\n <a class="photo_modal_image">\n <img class="photo_modal_image"/>\n </a>\n </div>\n <div class="photo_modal_error_wrap" ng-if="error">\n <div class="photo_modal_error" ng-if="error.html" ng-bind-html="error.html"></div>\n <div class="photo_modal_error" ng-if="error.text" ng-bind="error.text"></div>\n </div>\n</div>'),e.put("partials/full_video.html",'<div class="img_fullsize_with_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\n <div class="img_fullsize_progress_overlay" ng-show="progress.enabled">\n <div class="img_fullsize_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\n <div class="img_fullsize_progress progress tg_progress">\n <div class="progress-bar progress-bar-success" style="width: {{progress.percent}}%"></div>\n </div>\n </div>\n </div>\n <div class="img_fullsize_wrap" ng-if="!player.src">\n <img\n class="img_fullsize"\n my-load-thumb\n thumb="video.fullThumb"\n />\n </div>\n <div class="video_full_player" ng-if="player.src">\n <embed ng-src="{{player.src}}" width="{{video.full.width}}" height="{{video.full.height}}" autoplay="true" CONTROLLER="TRUE" SHOWCONTROLS="TRUE" controller="true" loop="false" pluginspace="http://www.apple.com/quicktime/" ng-if="player.quicktime"/>\n <video width="{{video.full.width}}" height="{{video.full.height}}" controls autoplay ng-if="!player.quicktime">\n <source ng-src="{{player.src}}" type="video/mp4">\n </video>\n </div>\n <div class="video_full_error_wrap" ng-if="error">\n <div class="video_full_error" ng-if="error.html" ng-bind-html="error.html"></div>\n <div class="video_full_error" ng-if="error.text" ng-bind="error.text"></div>\n </div>\n</div>'),e.put("partials/head.html",'<div class="tg_page_head">\n <div class="navbar navbar-static-top navbar-inverse" role="navigation" ng-class="{navbar_peer_not_selected: !curDialog.peer, navbar_offline: offline, navbar_history_select: historyState.selectActions}">\n <div class="container">\n\n <a class="navbar-peer-wrap" ng-click="showPeerInfo()">\n <img\n my-load-thumb\n watch="true"\n thumb="historyPeer.photo"\n />\n </a>\n\n <div class="navbar-toggle-wrap dropdown">\n <a class="dropdown-toggle navbar-toggle">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul ng-if="!curDialog.peer &amp;&amp; isLoggedIn" class="dropdown-menu">\n <li><a ng-click="openGroup()">New Group</a></li>\n <li><a ng-click="importContact()">New Contact</a></li>\n <li><a ng-click="openContacts()">Contacts</a></li>\n <li><a ng-click="openSettings()">Settings</a></li>\n <li><a ng-click="logOut()">Log Out</a></li>\n </ul>\n <ul ng-if="curDialog.peer &amp;&amp; isLoggedIn" class="dropdown-menu">\n <li><a ng-click="toggleEdit()">Edit messages</a></li>\n <li ng-if="!historyFilter.mediaType" class="divider"></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'photos\')">Photos</a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'video\')">Videos</a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'documents\')">Documents</a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'audio\')">Voice notes</a></li>\n </ul>\n <ul ng-if="!isLoggedIn" class="dropdown-menu">\n <li><a href="https://github.com/zhukov/webogram" target="_blank">About</a></li>\n </ul>\n </div>\n\n <a ng-if="isLoggedIn" class="navbar-search-wrap" ng-click="toggleSearch()">\n <i class="icon-search"></i>\n </a>\n\n <div class="navbar-header">\n\n <a class="navbar-brand" href="{{isLoggedIn ? \'#/im\' : \'#/\'}}"><span class="tg_head_logo"></span></a>\n\n <div ng-show="curDialog.peer" ng-switch="curDialog.peer &amp;&amp; historyFilter.mediaType.length > 0">\n <ul ng-switch-when="true" class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="toggleMedia()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title" ng-switch="historyFilter.mediaType">\n <h4 ng-switch-when="photos">Photos</h4>\n <h4 ng-switch-when="video">Videos</h4>\n <h4 ng-switch-when="documents">Documents</h4>\n <h4 ng-switch-when="audio">Voice messages</h4>\n </div>\n </a>\n </li>\n </ul>\n <div ng-switch-default ng-switch="historyState.selectActions">\n <ul ng-switch-when="true" class="nav navbar-navbar navbar-quick-nav navbar-history-edit">\n <li class="navbar-quick-right">\n <a ng-click="toggleEdit()">Cancel</a>\n </li>\n <li class="navbar-quick-left">\n <a ng-click="selectedFlush()">Clear All</a>\n </li>\n <li class="navbar-quick-title">Edit</li>\n </ul>\n <ul ng-switch-default class="nav navbar-nav navbar-quick-nav" ng-switch="historyPeer.id > 0">\n <li ng-switch-when="true">\n <a href="#/im" class="navbar-quick-profile-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 ng-bind-html="historyPeer.data.rFullName"></h4>\n <small ng-switch="historyState.typing.length">\n <span ng-switch-when="1" class="status_online">\n typing<span my-loading-dots></span>\n </span>\n <span ng-switch-default my-user-status="historyPeer.id"></span>\n </small>\n </div>\n </a>\n </li>\n <li ng-switch-default>\n <a href="#/im" class="navbar-quick-group-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 ng-bind-html="historyPeer.data.rTitle"></h4>\n <small ng-switch="historyState.typing.length">\n <ng-pluralize ng-switch-when="0" count="historyPeer.data.participants_count"\n when="{\'0\': \'No members\', \'one\': \'1 member\', \'other\': \'{} members\'}">\n </ng-pluralize>\n <span ng-switch-when="1" class="status_online">\n <span my-user-link="historyState.typing[0]" short="true"></span> is typing<span my-loading-dots></span>\n </span>\n <span ng-switch-when="2" class="status_online">\n <span my-user-link="historyState.typing[0]" short="true"></span>, <span my-user-link="historyState.typing[1]" short="true"></span><span my-loading-dots></span>\n </span>\n <span ng-switch-default class="status_online">\n <span my-user-link="historyState.typing[0]" short="true"></span>+{{historyState.typing.length - 1}}<span my-loading-dots></span>\n </span>\n </small>\n </div>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n\n <div class="navbar-menu" ng-switch="offline">\n\n <ul ng-switch-when="true" class="nav navbar-nav navbar-offline">\n <li ng-show="!offlineConnecting"><span class="navbar-offline-text">Waiting for network<span my-loading-dots></span></span></li>\n <li ng-show="!offlineConnecting" class="hidden-xs"><a href="" ng-click="retryOnline()">Retry</a></li>\n <li ng-show="offlineConnecting"><span class="navbar-offline-text">Connecting<span my-loading-dots></span></span></li>\n </ul>\n\n <ul ng-switch-default class="nav navbar-nav navbar-right">\n <li ng-if="isLoggedIn &amp;&amp; !isEmpty.contacts"><a href="" ng-click="openContacts()">Contacts</a></li>\n <li ng-if="isLoggedIn"><a href="" ng-click="openSettings()">Settings</a></li>\n <li ng-if="isLoggedIn"><a href="" ng-click="logOut()">Log Out</a></li>\n <li ng-if="!isLoggedIn"><a href="https://github.com/zhukov/webogram" target="_blank">About</a></li>\n </ul>\n\n </div>\n\n </div>\n </div>\n</div>\n'),e.put("partials/im.html",'<div my-head></div>\n\n<div class="im_page_wrap" ng-class="{im_page_peer_not_selected: !curDialog.peer}">\n\n <div class="im_page_split clearfix">\n\n <div class="im_dialogs_col_wrap" ng-controller="AppImDialogsController" my-dialogs has-tabs="{{search.query.length > 0}}">\n <div class="im_dialogs_panel">\n <div class="dropdown im_dialogs_panel_dropdown pull-right">\n <a class="dropdown-toggle">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li><a ng-click="openGroup()">New Group</a></li>\n <li><a ng-click="importContact()">New Contact</a></li>\n <li><a ng-click="openContacts()">Contacts</a></li>\n <li><a ng-click="openSettings()">Settings</a></li>\n </ul>\n </div>\n <div class="im_dialogs_search">\n <input class="form-control im_dialogs_search_field no_outline" type="search" placeholder="Search" ng-model="search.query"/>\n <a class="im_dialogs_search_clear" ng-click="searchClear()" ng-show="search.query.length"></a>\n </div>\n\n <div class="im_dialogs_tabs_wrap">\n <div class="im_dialogs_tabs clearfix">\n <a href="" class="im_dialogs_tab" ng-class="{active: !search.messages}" ng-click="search.messages = false">Conversations</a>\n <a href="" class="im_dialogs_tab" ng-class="{active: search.messages}" ng-click="search.messages = true">Messages</a>\n </div>\n </div>\n </div>\n\n <div my-dialogs-list class="im_dialogs_col">\n <div class="im_dialogs_wrap nano">\n <div class="im_dialogs_scrollable_wrap nano-content">\n\n <div class="im_dialogs_empty_wrap" ng-if="isEmpty.contacts">\n <h3 class="im_dialogs_empty_header">No contacts yet</h3>\n <p class="im_dialogs_empty_lead">Get started by adding a contact to chat with</p>\n <button type="button" class="btn btn-primary btn-sm" ng-click="importContact()">Add contact</button>\n <button ng-if="phonebookAvailable" type="button" class="btn btn-primary btn-sm im_dialogs_import_phonebook" ng-click="importPhonebook()">Import phonebook</button>\n </div>\n\n <div ng-switch="search.messages">\n <ul ng-switch-when="true" class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.id" ng-class="{active: curDialog.peerID == dialogMessage.peerID &amp;&amp; curDialog.messageID == dialogMessage.id}"></li>\n </ul>\n <ul ng-switch-default class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID" ng-class="{active: curDialog.peerID == dialogMessage.peerID}"></li>\n </ul>\n </div>\n\n <div class="im_dialogs_contacts_wrap" ng-show="!search.messages &amp;&amp; contacts.length > 0">\n <h5>Contacts</h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:\'user.sortName\' track by contact.userID" ng-class="{active: curDialog.peerID == contact.userID}">\n <a class="im_dialog" ng-click="dialogSelect(contact.peerString)">\n <div class="im_dialog_photo pull-left">\n <img\n class="im_dialog_photo"\n my-load-thumb\n thumb="contact.userPhoto"\n />\n </div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" ng-bind-html="contact.user.rFullName"></span>\n </div>\n <div class="im_dialog_message">\n <span class="im_dialog_message_text" my-user-status="::contact.userID"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n\n <div class="im_history_col_wrap" ng-controller="AppImHistoryController">\n <div ng-show="state.notSelected" ng-switch="isEmpty.contacts &amp;&amp; isEmpty.dialogs">\n <div ng-switch-when="true" class="im_history_no_dialogs_wrap">\n <h3 class="im_dialogs_empty_header">Get started</h3>\n <p class="im_dialogs_empty_lead">Welcome to Telegram Web. You can always set your profile photo and change your name in Settings.</p>\n <button type="button" class="btn btn-primary btn-sm" ng-click="openSettings()">Open Settings</button>\n </div>\n <div ng-switch-default class="im_history_not_selected" my-vertical-position="0.35" padding="true">\n Please select a chat to start messaging\n </div>\n </div>\n <div ng-show="!state.notSelected &amp;&amp; !state.loaded" class="im_history_not_selected" my-vertical-position="0.35" padding="true">\n Loading history<span my-loading-dots></span>\n </div>\n\n <div ng-show="state.loaded">\n <div my-history class="im_history_col">\n\n <div class="im_history_panel_wrap">\n\n <div class="im_history_panel clearfix" ng-controller="AppImPanelController">\n <div class="im_history_panel_title">\n\n <a class="im_history_panel_info_link pull-right" ng-click="showPeerInfo()">Info</a>\n <a class="im_history_panel_edit_link pull-right" ng-click="toggleEdit()">Edit</a>\n\n <div class="dropdown im_history_panel_media_dropdown pull-right">\n <a class="dropdown-toggle">Media<i class="icon icon-caret"></i></a>\n <ul class="dropdown-menu">\n <li><a ng-click="toggleMedia(\'photos\')">Photos</a></li>\n <li><a ng-click="toggleMedia(\'video\')">Videos</a></li>\n <li><a ng-click="toggleMedia(\'documents\')">Documents</a></li>\n <li><a ng-click="toggleMedia(\'audio\')">Voice messages</a></li>\n </ul>\n </div>\n <a ng-show="historyFilter.mediaType.length || skippedHistory" class="im_history_panel_return_link pull-right" ng-click="returnToRecent()" ng-switch="skippedHistory">\n <span ng-switch-when="true">Show recent messages</span>\n <span ng-switch-default>Show all messages</span>\n <strong class="im_history_panel_return_count" ng-show="missedCount > 0" ng-bind="\'+\' + missedCount"></strong>\n </a>\n\n <div ng-switch="historyFilter.mediaType">\n <h4 ng-switch-when="photos">Photos</h4>\n <h4 ng-switch-when="video">Videos</h4>\n <h4 ng-switch-when="documents">Documents</h4>\n <h4 ng-switch-when="audio">Voice messages</h4>\n\n <h4 ng-switch-default ng-switch="historyPeer.id > 0" ng-click="showPeerInfo()">\n <div ng-switch-when="true">\n <span ng-bind-html="historyPeer.data.rFullName"></span>\n <small class="im_peer_online" my-user-status="historyPeer.id"></small>\n </div>\n <div ng-switch-default>\n <span ng-bind-html="historyPeer.data.rTitle"></span>\n <small class="im_chat_users">\n <ng-pluralize count="historyPeer.data.participants_count"\n when="{\'0\': \'No members\', \'one\': \'1 member\', \'other\': \'{} members\'}">\n </ng-pluralize>\n </small>\n </div>\n </h4>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n <div class="im_history_wrap nano">\n\n <div class="im_history_scrollable_wrap nano-content">\n\n <div class="im_history_scrollable">\n <div class="im_history" ng-class="{im_history_selectable: historyState.selectActions}">\n <div ng-if="!history.length" class="im_history_empty" ng-switch="state.mayBeHasMore" my-vertical-position="0.25" padding="true">\n <span ng-switch-when="true">Loading history<span my-loading-dots></span></span>\n <span ng-switch-default>No messages here yet...</span>\n </div>\n\n <div class="im_history_messages" ng-class="{im_history_messages_group: historyPeer.id < 0}">\n <div class="im_history_message_wrap" my-message ng-repeat="historyMessage in history"></div>\n </div>\n </div>\n\n <div class="im_history_typing_wrap">\n\n <div class="im_history_typing" ng-show="historyState.typing.length > 0 &amp;&amp; !historyFilter.mediaType" ng-switch="historyState.typing.length">\n <span ng-switch-when="1">\n <a class="im_history_typing_author" my-user-link="historyState.typing[0]"></a> is typing<span my-loading-dots></span>\n </span>\n <span ng-switch-when="2">\n <a class="im_history_typing_author" my-user-link="historyState.typing[0]"></a> and <a class="im_history_typing_author" my-user-link="historyState.typing[1]"></a> are typing<span my-loading-dots></span>\n </span>\n <span ng-switch-default>\n <a class="im_history_typing_author" my-user-link="historyState.typing[0]"></a>, <a class="im_history_typing_author" my-user-link="historyState.typing[1]"></a> and {{historyState.typing.length - 2}} more are typing<span my-loading-dots></span>\n </span>\n </div>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n <div class="im_bottom_panel_wrap">\n\n <div class="im_edit_panel_wrap clearfix" ng-show="historyState.selectActions">\n <div class="im_edit_panel_border"></div>\n <a class="im_edit_flush_link" ng-click="selectedFlush()" ng-switch="historyPeer.id > 0">\n <span ng-switch-when="true">Delete Chat</span>\n <span ng-switch-default>Clear History</span>\n </a>\n <a class="im_edit_cancel_link" ng-click="selectedCancel()">Cancel</a>\n <div class="im_edit_selected_actions">\n <a class="btn btn-primary im_edit_forward_btn" ng-click="selectedForward()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount">\n Forward <strong class="im_selected_count" ng-show="selectedCount > 0" ng-bind="selectedCount"></strong>\n </a><a class="btn btn-danger im_edit_delete_btn" ng-click="selectedDelete()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount">\n Delete <strong class="im_selected_count" ng-show="selectedCount > 0" ng-bind="selectedCount"></strong>\n </a>\n </div>\n </div>\n\n <div class="im_send_panel_wrap" ng-hide="historyState.selectActions">\n\n <div class="im_send_form_wrap1">\n\n <div class="im_send_form_wrap clearfix" ng-controller="AppImSendController">\n <div class="pull-right im_panel_peer_photo" ng-click="showPeerInfo()">\n <img\n class="im_panel_peer_photo"\n my-load-thumb\n watch="true"\n thumb="historyPeer.photo"\n />\n <i class="icon im_panel_peer_online" ng-show="historyPeer.id > 0 &amp;&amp; historyPeer.data.status._ == \'userStatusOnline\'"></i>\n </div>\n <div class="pull-left im_panel_own_photo">\n <img\n class="im_panel_own_photo"\n my-load-thumb\n watch="true"\n thumb="ownPhoto"\n />\n </div>\n <form my-send-form draft-message="draftMessage" class="im_send_form" ng-class="{im_send_form_empty: !draftMessage.text.length}" ng-submit="sendMessage($event)">\n\n <div class="im_send_field_wrap">\n <div class="im_send_dropbox_wrap"> Drop photos here to send </div>\n <textarea ng-model="draftMessage.text" placeholder="Write a message..." class="form-control im_message_field no_outline"></textarea>\n </div>\n\n <div class="im_media_attach pull-right">\n <input type="file" class="im_media_attach_input" size="28" multiple="true" accept="image/*, video/*, audio/*" title="Send media"/>\n <i class="icon icon-camera"></i>\n </div>\n\n <div class="im_attach pull-right">\n <input type="file" class="im_attach_input" size="28" multiple="true" title="Send file" />\n <i class="icon icon-paperclip"></i>\n </div>\n\n <div class="im_emoji_btn pull-right" title="Insert emoticon">\n <i class="icon icon-emoji"></i>\n </div>\n\n <button type="submit" class="btn btn-success im_submit">\n <span class="im_submit_text">Send</span>\n </button>\n </form>\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n\n</div>\n\n<div class="im_page_footer">\n <a class="im_page_footer_brand" target="_blank" href="https://github.com/zhukov/webogram">Telegram beta</a> by izhukov &amp; toberg\n</div>\n\n<div id="notify_sound"></div>\n'),e.put("partials/import_contact_modal.html",'<div class="import_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="doImport()">\n\n <h4>Add new contact</h4>\n\n <div class="form-group">\n <input class="form-control input-sm" my-focused type="text" placeholder="Phone number" ng-model="importContact.phone"/>\n </div>\n <div class="form-group">\n <input class="form-control input-sm" type="text" placeholder="First name" ng-model="importContact.first_name"/>\n </div>\n <div class="form-group">\n <input class="form-control input-sm" type="text" placeholder="Last name" ng-model="importContact.last_name"/>\n </div>\n\n </form>\n\n </div>\n\n <div class="modal-footer">\n <a class="btn btn-link pull-left" ng-if="phonebookAvailable" ng-click="importPhonebook()">Phonebook</a>\n <a class="btn btn-link" ng-click="$dismiss()">Cancel</a>\n <button class="btn btn-primary" ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'Importing...\' : \'Save\'" ng-disabled="progress.enabled"></button>\n </div>\n\n</div>'),e.put("partials/login.html",'<div my-head></div>\n\n\n<div class="login_form_wrap" my-vertical-position="0.4">\n <div class="error" ng-if="error.message" ng-bind="error.message"></div>\n\n <form name="mySendCodeForm" ng-if="!credentials.phone_code_hash" ng-submit="sendCode()">\n <h3 class="login_form_head">Sign in</h3>\n <p class="login_form_lead">Please choose your country and enter your full phone number.</p>\n\n <div class="login_country_selector" ng-click="chooseCountry()">\n <span ng-bind="credentials.phone_country_name"></span>\n <i class="icon icon-caret pull-right"></i>\n </div>\n\n <div class="form-group" ng-class="{\'has-error\': error.field == \'phone\'}">\n <label class="control-label" ng-if="error.field == \'phone\'">Incorrect phone number</label>\n <div class="clearfix">\n <input type="tel" autocomplete="off" class="form-control pull-left login_phone_country" my-focused name="phone_country" ng-model="credentials.phone_country">\n <input type="tel" autocomplete="off" class="form-control pull-left login_phone_number" my-focus-on="country_selected" name="phone_number" ng-model="credentials.phone_number" placeholder="Enter your phone" required>\n </div>\n </div>\n <button class="btn btn-primary btn-block" ng-class="{disabled: progress.enabled}" ng-disabled="progress.enabled" type="submit" ng-switch="progress.enabled">\n <span ng-switch-when="true">Generating keys<span my-loading-dots></span></span>\n <span ng-switch-default>Next</span>\n </button>\n <div class="login_form_messaging" ng-show="progress.enabled">Keys are only generated once. This can take a few minutes on slower devices, please be patient.</div>\n </form>\n\n <form name="myLoginForm" ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-submit="logIn()">\n <h3 class="login_form_head"><span ng-bind="credentials.phone_country"></span> <span ng-bind="credentials.phone_number"></span></h3>\n <div class="login_edit_phone"><a ng-click="editPhone()">Edit phone number</a></div>\n <div ng-switch="credentials.viaApp">\n <div ng-switch-when="true">\n <p class="login_form_lead">\n Please enter the code you\'ve just received in your other <strong>Telegram</strong> app\n </p>\n <p class="login_form_lead">\n <a ng-click="sendSms()">Haven\'t received the code?</a>\n </p>\n </div>\n <div ng-switch-default>\n <p class="login_form_lead">We have sent you a code via SMS.<br/>Please enter it below.</p>\n\n <p class="login_form_lead">\n <span ng-show="callPending.remaining > 0">Telegram will call you in {{callPending.remaining | duration}}</span>\n <span ng-show="!callPending.remaining &amp;&amp; !callPending.success">Telegram is calling you</span>\n <span ng-show="!callPending.remaining &amp;&amp; callPending.success">Telegram dialed your number</span>\n </p>\n </div>\n </div>\n\n <div class="form-group" ng-class="{\'has-error\': error.field == \'phone_code\'}">\n <label class="control-label" for="phone_code" ng-if="error.field == \'phone_code\'">Incorrect SMS code</label>\n <input type="number" my-focused class="form-control" name="phone_code" ng-model="credentials.phone_code" placeholder="Enter your code" autocomplete="off" required>\n </div>\n\n <button class="btn btn-primary btn-block" type="submit" ng-class="{disabled: progress.enabled}" ng-disabled="progress.enabled" ng-switch="progress.enabled">\n <span ng-switch-when="true">Checking code<span my-loading-dots></span></span>\n <span ng-switch-default>Next</span>\n </button>\n </form>\n\n <form name="myFullNameForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-submit="logIn(true)">\n <h3 class="login_form_head">Your info</h3>\n <p class="login_form_lead">Please enter your full name to set up a Telegram account.</p>\n\n <div class="form-group login_first_name_wrap" ng-class="{\'has-error\': error.field == \'first_name\'}">\n <label class="control-label" for="first_name" ng-if="error.field == \'first_name\'">Incorrect first name</label>\n <input my-focused class="form-control" name="first_name" ng-model="credentials.first_name" placeholder="First name" autocomplete="off" required>\n </div>\n\n <div class="form-group" ng-class="{\'has-error\': error.field == \'last_name\'}">\n <label class="control-label" for="last_name" ng-if="error.field == \'last_name\'">Incorrect last name</label>\n <input class="form-control" name="last_name" ng-model="credentials.last_name" placeholder="Last name" autocomplete="off">\n </div>\n\n <button class="btn btn-primary btn-block" ng-class="{disabled: progress.enabled}" ng-disabled="progress.enabled" type="submit" ng-switch="progress.enabled">\n <span ng-switch-when="true">Signing up<span my-loading-dots></span></span>\n <span ng-switch-default>Sign up</span>\n </button>\n </form>\n\n</div>\n'),e.put("partials/message.html",'<div class="im_message_unread_split" ng-if="::historyUnreadAfter == historyMessage.id || false" ng-show="historyUnreadAfter == historyMessage.id">\n Unread messages\n</div>\n\n<div class="im_message_date_split im_service_message_wrap" ng-if="::historyMessage.needDate || false" ng-show="historyMessage.needDate">\n <div class="im_service_message" ng-bind="historyMessage.date | myDate"></div>\n</div>\n\n<div class="im_message_outer_wrap" ng-class="[selectedMsgs[historyMessage.id] ? \'im_message_selected\' : \'\', historyMessage.grouped, historyFocus == historyMessage.id ? \'im_message_focus\' : \'\', historyMessage.unread ? \'im_message_unread\' : \'\', historyMessage.error ? \'im_message_error\' : \'\', historyMessage.pending ? \'im_message_pending\' : \'\']" ng-click="toggleMessage(historyMessage.id, $event)">\n\n\n <div class="im_message_wrap clearfix">\n\n <div class="im_service_message_wrap" ng-if="::historyMessage._ == \'messageService\'">\n <div class="im_service_message">\n <a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0"></a>\n <span class="im_message_service" my-service-message></span>\n </div>\n\n <a ng-if="::historyMessage.action._ == \'messageActionChatEditPhoto\'" class="im_service_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.action.photo.id)">\n <img\n class="im_service_message_photo_thumb"\n my-load-thumb\n thumb="historyMessage.action.photo.thumb"\n />\n </a>\n\n </div>\n\n <div ng-if="::historyMessage._ != \'messageService\'" class="im_content_message_wrap" ng-class="::[historyMessage.out ? \'im_message_out\' : \'im_message_in\', historyMessage._ == \'messageForwarded\' ? \'im_message_fwd\' : \'\']">\n <div class="im_content_message_select_area">\n <i class="icon icon-select-tick"></i>\n </div>\n\n <a class="im_message_error_btn" ng-if="::historyMessage.pending || historyMessage.error || false" ng-click="historyMessage.send()">\n <i class="icon-message-status" tooltip="Try again"></i>\n </a>\n\n <i ng-if="::historyMessage.unread || historyMessage.pending || false" class="icon-message-status" ng-class="{\'icon-message-status-unread\': historyMessage.unread, \'icon-message-status-pending\': historyMessage.pending}" ng-show="!historyMessage.error"></i>\n\n <a class="im_message_from_photo pull-left" my-user-photolink="historyMessage.from_id" img-class="im_message_from_photo"></a>\n\n <div class="im_message_meta pull-right text-right">\n <i class="icon-message-status-tick"></i>\n <span class="im_message_date" ng-bind="::historyMessage.date | time"></span>\n </div>\n\n <div class="im_message_body" ng-class="{im_message_body_media: historyMessage._ == \'message\' &amp;&amp; historyMessage.media &amp;&amp; historyMessage.media._ != \'messageMediaEmpty\'}">\n\n <a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0"></a>\n\n <div ng-if="::historyMessage._ == \'messageForwarded\' || false" class="im_message_fwd_from">\n <div class="im_message_fwd_title" ng-if="::historyMessage.grouped == \'im_grouped_fwd_start\'">Forwarded message</div>\n <a class="im_message_fwd_photo pull-left" my-user-photolink="historyMessage.fwd_from_id" img-class="im_message_fwd_photo"></a>\n <div class="im_message_fwd_author_wrap">\n <a class="im_message_fwd_author" my-user-link="historyMessage.fwd_from_id" short="true"></a><span class="im_message_fwd_date" ng-bind="historyMessage.fwd_date | dateOrTime"></span>\n </div>\n </div>\n\n <div ng-if="::historyMessage.media &amp;&amp; historyMessage.media._ != \'messageMediaEmpty\' || false" class="im_message_media" ng-switch="historyMessage.media._">\n\n <div ng-switch-when="messageMediaPhoto" my-message-photo></div>\n <div ng-switch-when="messageMediaVideo" my-message-video></div>\n <div ng-switch-when="messageMediaDocument" my-message-document></div>\n <div ng-switch-when="messageMediaAudio" my-message-audio></div>\n <div ng-switch-when="messageMediaGeo" my-message-map></div>\n <div ng-switch-when="messageMediaContact" my-message-contact></div>\n <div ng-switch-when="messageMediaPending" my-message-pending></div>\n\n </div>\n\n <div class="im_message_text" ng-if="::historyMessage.message.length || false" ng-bind-html="::historyMessage.richMessage"></div>\n </div>\n\n </div>\n </div>\n\n</div>\n\n'),e.put("partials/message_attach_audio.html",'<div class="im_message_document im_message_audio" ng-class="{im_message_audio_done: historyMessage.media.audio.url, im_message_audio_progress: historyMessage.media.audio.progress.enabled}">\n <a href="" ng-click="openAudio(historyMessage.media.audio.id)" ng-if="!historyMessage.media.audio.progress.enabled &amp;&amp; !historyMessage.media.audio.url">\n <i class="icon icon-audio"></i>\n </a>\n <i class="icon icon-audio" ng-if="historyMessage.media.audio.progress.enabled || historyMessage.media.audio.url"></i>\n\n <div class="im_message_audio_info">\n <div class="im_message_audio_name_wrap" ng-if="!historyMessage.media.audio.url">\n <span class="im_message_audio_name">\n Voice message\n </span>\n <span class="im_message_audio_duration" ng-if="!historyMessage.media.audio.progress.enabled" ng-bind="::historyMessage.media.audio.duration | duration"></span>\n <span class="im_message_audio_size" ng-if="historyMessage.media.audio.progress.enabled" ng-bind="historyMessage.media.audio.progress | formatSizeProgress"></span>\n </div>\n <div class="im_message_audio_actions" ng-if="!historyMessage.media.audio.progress.enabled &amp;&amp; !historyMessage.media.audio.url">\n <a href="" ng-click="openAudio(historyMessage.media.audio.id)">Play</a>\n </div>\n <div class="clearfix cancelable_progress_wrap" ng-if="historyMessage.media.audio.progress.enabled">\n <a class="im_message_media_progress_cancel pull-right" ng-click="historyMessage.media.audio.progress.cancel()">Cancel</a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" ng-style="{width: historyMessage.media.audio.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n <div class="im_message_audio_player_wrap" ng-if="historyMessage.media.audio.url">\n <audio my-audio-autoplay audio="historyMessage.media.audio" controls="controls">\n <source ng-src="{{::historyMessage.media.audio.url}}" type="audio/ogg" />\n <embed ng-src="{{::historyMessage.media.audio.url}}" hidden="true" autostart="true" loop="false" />\n </audio>\n </div>\n </div>\n</div>'),e.put("partials/message_attach_contact.html",'<div>\n <a class="im_message_contact_photo pull-left" my-user-photolink="historyMessage.media.user_id" img-class="im_message_contact_photo"></a>\n <div class="im_message_contact_name" ng-switch="historyMessage.media.user_id > 0">\n <a ng-switch-when="true" my-user-link="historyMessage.media.user_id"></a>\n <span ng-switch-default ng-bind-html="::historyMessage.media.rFullName"></span>\n </div>\n <div class="im_message_contact_phone" ng-bind="::historyMessage.media.phone_number | phoneNumber"></div>\n</div>'),e.put("partials/message_attach_document.html",'<div ng-switch="::historyMessage.media.document.isSpecial">\n\n <div ng-switch-when="gif" my-load-gif document="historyMessage.media.document"></div>\n\n <div ng-switch-default class="im_message_document" ng-class="{im_message_document_thumbed: !!historyMessage.media.document.thumb, im_message_document_progress: historyMessage.media.document.progress.enabled}">\n\n <a href="" ng-click="downloadDoc(historyMessage.media.document.id, historyMessage.media.document.withPreview)" ng-class="{im_message_document_link_disabled: historyMessage.media.document.progress.enabled}">\n <i class="icon icon-document" ng-if="::!historyMessage.media.document.thumb"></i>\n <div class="im_message_document_thumb_wrap" ng-if="::historyMessage.media.document.thumb">\n <img\n class="im_message_document_thumb"\n my-load-thumb\n thumb="historyMessage.media.document.thumb"\n />\n </div>\n </a>\n\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <span class="im_message_document_name" ng-bind="::historyMessage.media.document.file_name"></span>\n <span class="im_message_document_size" ng-if="!historyMessage.media.document.progress.enabled" ng-bind="::historyMessage.media.document.size | formatSize"></span>\n <span class="im_message_document_size" ng-if="historyMessage.media.document.progress.enabled" ng-bind="historyMessage.media.document.progress | formatSizeProgress"></span>\n </div>\n <div class="im_message_document_actions" ng-if="!historyMessage.media.document.progress.enabled">\n <a href="" ng-click="downloadDoc(historyMessage.media.document.id)">Download</a>\n <a href="" ng-click="downloadDoc(historyMessage.media.document.id, 1)" ng-if="::historyMessage.media.document.withPreview">Open</a>\n </div>\n <div class="clearfix cancelable_progress_wrap" ng-if="historyMessage.media.document.progress.enabled">\n <a class="im_message_media_progress_cancel pull-right" ng-click="historyMessage.media.document.progress.cancel()">Cancel</a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" ng-style="{width: historyMessage.media.document.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n</div>'),e.put("partials/message_attach_map.html",'<a my-map-point point="historyMessage.media.geo" class="im_message_geopoint">\n <i class="icon icon-geo-point"></i>\n</a>'),e.put("partials/message_attach_pending.html",'<div class="im_message_document im_message_upload_file" ng-class="::\'im_message_upload_\' + historyMessage.media.type">\n <i class="icon" ng-class="::\'icon-\' + historyMessage.media.type"></i>\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <span class="im_message_document_name" ng-bind="::historyMessage.media.file_name"></span>\n <span class="im_message_document_size" ng-if="historyMessage.media.progress" ng-bind="historyMessage.media.progress | formatSizeProgress"></span>\n </div>\n <div class="clearfix cancelable_progress_wrap">\n <a class="im_message_media_progress_cancel pull-right" ng-click="historyMessage.media.progress.cancel()">Cancel</a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" role="progressbar" ng-style="{width: historyMessage.media.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n</div>'),e.put("partials/message_attach_photo.html",'<a class="im_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.media.photo.id, historyMessage.id)" ng-style="::{width: historyMessage.media.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(historyMessage.media.photo.id)">\n <img\n class="im_message_photo_thumb"\n my-load-thumb\n thumb="historyMessage.media.photo.thumb"\n />\n</a>'),e.put("partials/message_attach_video.html",'<div class="im_message_video im_message_document_thumbed">\n <a class="im_message_video_thumb" href="" ng-click="openVideo(historyMessage.media.video.id, historyMessage.id)" ng-style="::{width: historyMessage.media.video.thumb.width + \'px\'}">\n <span class="im_message_video_duration" ng-bind="::historyMessage.media.video.duration | duration"></span>\n <i class="icon icon-videoplay"></i>\n <img\n class="im_message_video_thumb"\n my-load-thumb\n thumb="historyMessage.media.video.thumb"\n />\n </a>\n\n <div class="im_message_document_info">\n <div class="im_message_document_name_wrap">\n <span class="im_message_document_name">Video</span>\n <span class="im_message_document_size" ng-if="!historyMessage.media.video.progress.enabled" ng-bind="::historyMessage.media.video.size | formatSize"></span>\n <span class="im_message_document_size" ng-if="historyMessage.media.video.progress.enabled" ng-bind="historyMessage.media.video.progress | formatSizeProgress"></span>\n </div>\n <div class="im_message_document_actions" ng-if="!historyMessage.media.video.progress.enabled">\n <a href="" ng-click="downloadVideo(historyMessage.media.video.id)">Download</a>\n <a href="" ng-click="openVideo(historyMessage.media.video.id, historyMessage.id)">Play video</a>\n </div>\n <div class="clearfix cancelable_progress_wrap" ng-if="historyMessage.media.video.progress.enabled">\n <a class="im_message_media_progress_cancel pull-right" ng-click="historyMessage.media.video.progress.cancel()">Cancel</a>\n <div class="im_message_download_progress_wrap">\n <div class="progress tg_down_progress">\n <div class="progress-bar progress-bar-success" ng-style="{width: historyMessage.media.video.progress.percent + \'%\'}"></div>\n </div>\n </div>\n </div>\n </div>\n</div>'),e.put("partials/message_service.html",'<span ng-switch="::historyMessage.action._">\n <span ng-switch-when="messageActionChatCreate">\n created the group &laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;\n </span>\n <span ng-switch-when="messageActionChatEditTitle">\n changed group name to &laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;\n </span>\n <span ng-switch-when="messageActionChatEditPhoto">\n changed group photo\n </span>\n <span ng-switch-when="messageActionChatDeletePhoto">\n removed group photo\n </span>\n <span ng-switch-when="messageActionChatAddUser" ng-switch="::historyMessage.from_id != historyMessage.action.user_id">\n <span ng-switch-when="true">\n invited <a my-user-link="historyMessage.action.user_id" color="true"></a>\n </span>\n <span ng-switch-default>\n returned to group\n </span>\n </span>\n <span ng-switch-when="messageActionChatDeleteUser" ng-switch="::historyMessage.from_id != historyMessage.action.user_id">\n <span ng-switch-when="true">\n kicked <a my-user-link="historyMessage.action.user_id" color="true"></a>\n </span>\n <span ng-switch-default>\n left group\n </span>\n </span>\n\n <span ng-switch-default ng-bind="\'Unsupported action \' + historyMessage.action._"></span>\n</span>'),e.put("partials/peer_select.html",'<div class="peer_select_modal_wrap" my-modal-position>\n\n <a class="modal-close-button visible-xs" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <h4 class="modal_simple_header visible-xs">Contacts</h4>\n\n <div class="im_dialogs_modal_col_wrap" ng-controller="AppImDialogsController" my-dialogs>\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input my-focused class="form-control im_dialogs_search_field" type="search" placeholder="Search" ng-model="search.query"/>\n <a class="im_dialogs_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length"></a>\n </div>\n </div>\n <div my-dialogs-list modal="true" class="im_dialogs_modal_col">\n <div class="im_dialogs_wrap nano">\n <div class="im_dialogs_scrollable_wrap nano-content">\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID"></li>\n </ul>\n <div class="im_dialogs_contacts_wrap" ng-show="contacts.length > 0">\n <h5>Contacts</h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:\'user.sortName\' track by contact.userID" ng-class="{active: curDialog.peerID == contact.userID}">\n <a class="im_dialog" ng-click="dialogSelect(contact.peerString)">\n <div class="im_dialog_photo pull-left">\n <img\n class="im_dialog_photo"\n my-load-thumb\n thumb="contact.userPhoto"\n />\n </div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" ng-bind-html="contact.user.rFullName"></span>\n </div>\n <div class="im_dialog_message">\n <span class="im_dialog_message_text" my-user-status="::contact.userID"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n</div>'),e.put("partials/photo_modal.html",'<div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-modal-position animation="no" my-modal-nav next="nav.next()" prev="nav.prev()">\n\n <div class="modal-body">\n\n <div class="photo_modal_image_wrap" my-load-full-photo full-photo="photo.full" thumb-location="photo.thumb.location" ng-click="nav.next()"> </div>\n\n <div class="media_meta_wrap clearfix">\n <div class="media_modal_actions pull-right">\n <a href="" class="media_modal_action_link" ng-click="download()">Download</a>\n <a href="" class="media_modal_action_link" ng-if="canForward" ng-click="forward()">Forward</a>\n <a href="" class="media_modal_action_link" ng-if="canDelete" ng-click="delete()">Delete</a>\n </div>\n\n <p class="media_modal_info">\n <span class="media_modal_author" ng-bind-html="::photo.fromUser.rFullName"></span>, <span ng-bind="photo.date | dateOrTime"></span>\n </p>\n </div>\n\n\n </div>\n\n</div>'),e.put("partials/profile_edit_modal.html",'<div class="profile_edit_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$dismiss()"><i></i></a>\n\n <div class="modal-body">\n\n <form class="modal_simple_form" ng-submit="updateProfile()">\n\n <h4>Edit Profile</h4>\n\n <div class="form-group import_modal_field_wrap" ng-class="{\'has-error\': error.field == \'first_name\'}">\n <input class="form-control input-sm" my-focused type="text" placeholder="First name" ng-model="profile.first_name" name="first_name"/>\n </div>\n <div class="form-group import_modal_field_wrap" ng-class="{\'has-error\': error.field == \'last_name\'}">\n <input class="form-control input-sm" type="text" placeholder="Last name" ng-model="profile.last_name"/>\n </div>\n\n </form>\n\n </div>\n\n <div class="modal-footer">\n <a class="btn btn-link" ng-click="$dismiss()">Cancel</a>\n <button class="btn btn-primary" ng-class="{disabled: profile.updating}" ng-click="updateProfile()" ng-bind="profile.updating ? \'Saving...\' : \'Save\'" ng-disabled="profile.updating"></button>\n </div>\n\n</div>'),e.put("partials/settings_modal.html",'<div class="settings_modal_wrap modal_content_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$close()"><i></i></a>\n\n <div class="modal-body">\n\n <div class="user_modal_photo_profile_wrap">\n\n <a href="" ng-click="openPhoto(photo.id, -profile.id)" class="user_modal_image_wrap pull-left" ng-class="{disabled: !photo.id}">\n <img\n class="user_modal_image"\n my-load-thumb\n watch="true"\n thumb="photo"\n />\n </a>\n\n <div class="user_modal_info_wrap clearfix">\n <h4 class="user_modal_header" ng-bind-html="profile.rFullName"></h4>\n <p class="user_modal_status" my-user-status="::profile.id"></p>\n\n <div class="user_modal_actions_wrap clearfix">\n <span class="btn btn-primary user_modal_main_btn" ng-if="!photo.updating">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\n Set profile photo\n </span>\n <span class="btn btn-primary user_modal_main_btn disabled" disabled ng-if="photo.updating">\n Updating<span my-loading-dots></span>\n </span>\n\n <div class="dropdown user_modal_other_btn">\n <button class="btn btn-link dropdown-toggle">More<i class="icon icon-caret"></i></button>\n <ul class="dropdown-menu">\n <li ng-if="photo.location">\n <a ng-click="deletePhoto()">Delete profile photo</a>\n </li>\n <li>\n <a ng-click="editProfile()">Edit profile</a>\n </li>\n <li>\n <a ng-click="terminateSessions()">Terminate all sessions</a>\n </li>\n </ul>\n </div>\n\n </div>\n </div>\n\n </div>\n\n <div class="modal_section" ng-if="profile.phone">\n <h3 class="modal_section_header">Phone</h3>\n <div class="modal_section_body">\n <p><span ng-bind="profile.phone | phoneNumber"></span></p>\n </div>\n </div>\n\n <div class="modal_section">\n <h3 class="modal_section_header">Settings</h3>\n <div class="modal_section_body">\n\n <div class="tg_form_group">\n <a class="tg_checkbox" ng-click="toggleDesktop()" ng-class="notify.desktop ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Desktop notifications</span>\n </a>\n\n <a class="tg_checkbox" ng-click="toggleSound()" ng-class="notify.volume ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Sound</span>\n </a>\n\n <div class="tg_range_wrap" ng-show="notify.volume > 0">\n <span class="icon icon-volume-outer" ng-class="\'icon-volume-outer\' + notify.volumeOf4()">\n <i class="icon-volume-inner icon-volume-inner1"></i>\n <i class="icon-volume-inner icon-volume-inner2"></i>\n <i class="icon-volume-inner icon-volume-inner3"></i>\n <i class="icon-volume-inner icon-volume-inner4"></i>\n </span>\n <input type="range" class="tg_range" ng-model="notify.volume" min="1" max="10">\n </div>\n </div>\n\n <div class="tg_form_group">\n <a class="tg_radio" ng-click="toggleCtrlEnter(1)" ng-class="send.enter == 1 ? \'tg_radio_on\' : \'\'">\n <i class="icon icon-radio"></i>\n <span>\n <strong>Enter</strong> - send message, <strong>Shift + Enter</strong> - new line\n </span>\n </a>\n\n <a class="tg_radio" ng-click="toggleCtrlEnter(0)" ng-class="send.enter == 0 ? \'tg_radio_on\' : \'\'">\n <i class="icon icon-radio"></i>\n <span>\n <strong>Ctrl + Enter</strong> - send message, <strong>Enter</strong> - new line\n </span>\n </a>\n </div>\n\n </div>\n </div>\n\n <div class="modal_section">\n <h3 class="modal_section_header">About</h3>\n <div class="modal_section_body settings_about_section_body">\n <div class="settings_external_services pull-right">\n <a href="https://github.com/zhukov/webogram" target="_blank" title="Source code on GitHub" class="settings_external_service"><i class="icon icon-github"></i></a>\n <a href="https://twitter.com/telegram_web" target="_blank" title="Follow us on Twitter!" class="settings_external_service"><i class="icon icon-twitter"></i></a>\n </div>\n <p>\n <a ng-click="openChangelog()">Recent updates (ver. <span ng-bind="version"></span>)</a>\n </p>\n </div>\n </div>\n\n </div>\n</div>\n'),e.put("partials/user_modal.html",'<div class="user_modal_wrap" my-modal-position>\n\n <a class="modal-close-button" ng-click="$close()"><i></i></a>\n\n <div class="modal-body">\n\n <div class="user_modal_photo_profile_wrap">\n\n <a href="" ng-click="openPhoto(userPhoto.id, -user.id)" class="user_modal_image_wrap pull-left" ng-class="{disabled: !userPhoto.id}">\n <img\n class="user_modal_image"\n my-load-thumb\n thumb="userPhoto"\n />\n </a>\n\n <div class="user_modal_info_wrap clearfix">\n <h4 class="user_modal_header" ng-bind="user | userName"></h4>\n <p class="user_modal_status" ng-if="user.status" my-user-status="::user.id"></p>\n\n <div class="user_modal_actions_wrap clearfix">\n <button class="btn btn-primary user_modal_main_btn" ng-click="goToHistory()">Send message</button>\n\n <div class="dropdown user_modal_other_btn">\n <button class="btn btn-link dropdown-toggle">More<i class="icon icon-caret"></i></button>\n <ul class="dropdown-menu">\n <li ng-if="user._ == \'userContact\'">\n <a ng-click="importContact(true)">Edit contact</a>\n </li>\n <li ng-if="user._ == \'userContact\'">\n <a ng-click="deleteContact()">Delete contact</a>\n </li>\n <li ng-if="user.phone.length > 0 &amp;&amp; user._ != \'userContact\'">\n <a ng-click="importContact()">Add to contacts</a>\n </li>\n <li ng-if="user.phone.length > 0">\n <a ng-click="shareContact()">Share contact</a>\n </li>\n <li>\n <a ng-click="flushHistory()">Delete chat</a>\n </li>\n </ul>\n </div>\n\n </div>\n </div>\n\n </div>\n\n <div class="modal_section" ng-if="user.phone">\n <h3 class="modal_section_header">Phone</h3>\n <div class="modal_section_body">\n <p><span ng-bind="user.phone | phoneNumber"></span></p>\n </div>\n </div>\n\n <div class="modal_section">\n <h3 class="modal_section_header">Settings</h3>\n <div class="modal_section_body">\n\n <div class="tg_form_group">\n <a class="tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Notifications</span>\n </a>\n </div>\n </div>\n </div>\n\n </div>\n\n</div>'),e.put("partials/video_modal.html",'<div class="media_modal_wrap video_modal_wrap" my-modal-position>\n\n <div class="modal-body">\n\n <div class="video_modal_image_wrap" my-load-video video="video"></div>\n\n <div class="media_meta_wrap clearfix">\n <div class="media_modal_actions pull-right">\n <a href="" class="media_modal_action_link" ng-click="download()">Download</a>\n <a ng-if="messageID" href="" class="media_modal_action_link" ng-click="forward()">Forward</a>\n <a ng-if="messageID" href="" class="media_modal_action_link" ng-click="delete()">Delete</a>\n </div>\n\n <p class="media_modal_info">\n <span class="media_modal_author" ng-bind-html="video.fromUser.rFullName"></span>, <span ng-bind="video.date | dateOrTime"></span>\n </p>\n </div>\n\n </div>\n\n</div>'),e.put("partials/welcome.html",'<div my-head></div>\n\n<div ng-if="showWelcome">\n\n <div class="welcome_form">\n <div class="welcome_logo"></div>\n\n <h3 class="welcome_header"><strong>Telegram</strong> Web</h3>\n\n <div class="welcome_text">\n <p>This is an unofficial web-client for the <strong>Telegram Messenger</strong>.</p>\n <p>It\'s still an <strong>alpha-version</strong> and may not be 200% reliable</p>\n </div>\n <div class="welcome_btn_wrap">\n <a href="#/login" class="btn btn-primary btn-block">Start Messaging</a>\n </div>\n </div>\n\n <div class="welcome_footer" my-custom-background="#f8f8f8">\n <div class="welcome_cards_wrap clearfix">\n\n <div class="container-fluid">\n <div class="row">\n <div class="col-md-4 col-sm-4">\n <div class="welcome_footer_card_wrap row">\n <div class="welcome_footer_card welcome_footer_card_messaging"></div>\n <h4>Fast messaging</h4>\n <div class="welcome_footer_card_lead">Send messages with rich emoji support right from your desktop or laptop computer</div>\n </div>\n </div>\n\n <div class="col-md-4 col-sm-4">\n <div class="welcome_footer_card_wrap">\n <div class="welcome_footer_card welcome_footer_card_filesharing"></div>\n <h4>Easy file sharing</h4>\n <div class="welcome_footer_card_lead">Share files of any type using drag-and-drop or the attachment icon</div>\n </div>\n </div>\n\n <div class="col-md-4 col-sm-4">\n <div class="welcome_footer_card_wrap">\n <div class="welcome_footer_card welcome_footer_card_powerful"></div>\n <h4>Powerful tools</h4>\n <div class="welcome_footer_card_lead">Browse shared media and files by type <br/> and set custom notifications</div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n\n </div>\n\n\n\n</div>\n'),e.put("partials/mobile/chat_modal.html",'<div class="chat_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; !chatFull.chat.left">\n <a class="dropdown-toggle navbar-toggle">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="chatFull.thumb.location">\n <a ng-click="deletePhoto()">Delete photo</a>\n </li>\n <li>\n <a ng-click="editTitle()">Edit group</a>\n </li>\n <li>\n <a ng-click="leaveGroup()">Leave group</a>\n </li>\n <li>\n <a ng-click="flushHistory()">Delete chat</a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4>Group info</h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <img\n class="mobile_user_modal_image mobile_chat_modal_image"\n my-load-thumb\n watch="true"\n thumb="chatFull.thumb"\n />\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" ng-bind-html="chatFull.chat.rTitle"></h4>\n <p class="mobile_user_modal_status" ng-if="chatFull.chat.participants_count > 0">\n <ng-pluralize count="chatFull.chat.participants_count"\n when="{\'0\': \'No members\', \'one\': \'1 member\', \'other\': \'{} members\'}">\n </ng-pluralize>\n </p>\n </div>\n\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="!chatFull.chat.left &amp;&amp; chatFull.participants.participants.length">\n <a class="mobile_modal_action" ng-click="inviteToGroup()">Add member</a>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; chatFull.chat.left">\n <a class="mobile_modal_action" ng-click="returnToGroup()">Return to group</a>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ == \'chatForbidden\'">\n <a class="mobile_modal_action" ng-click="flushHistory()">Return to group</a>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; !chatFull.chat.left &amp;&amp; !photo.updating">\n <span class="mobile_modal_action mobile_modal_upload_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\n Update photo\n </span>\n </div>\n <div class="mobile_modal_action_wrap" ng-if="photo.updating">\n <span class="mobile_modal_action">\n Updating<span my-loading-dots></span>\n </span>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Notifications</span>\n </a>\n </div>\n\n <div class="mobile_modal_section">\n <h4 class="mobile_modal_section_header">Members</h4>\n <div class="mobile_modal_section_body">\n\n <div class="chat_modal_members_list">\n\n <div class="chat_modal_participant_wrap clearfix" ng-repeat="participant in chatFull.participants.participants | orderBy:\'-user.sortStatus\'">\n <a ng-if="participant.canKick" ng-click="kickFromGroup(participant.user_id)" class="chat_modal_participant_kick pull-right">Kick</a>\n\n <a class="chat_modal_participant_photo pull-left" my-user-photolink="participant.user_id" img-class="chat_modal_participant_photo" status="true"></a>\n\n <div class="chat_modal_participant_name">\n <a my-user-link="participant.user_id"></a>\n </div>\n <div class="chat_modal_participant_status" my-user-status="::participant.user_id"></div>\n </div>\n\n </div>\n\n <div class="chat_modal_members_forbidden" ng-if="chatFull.chat._ == \'chatForbidden\' || chatFull.chat.left">\n Group members list is unavailable.\n </div>\n\n </div>\n </div>\n\n </div>\n\n</div>\n'),e.put("partials/mobile/contacts_modal.html",'<div class="contacts_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right" ng-if="!action || action == \'edit\'" ng-switch="action">\n <a ng-switch-when="edit" ng-click="toggleEdit(false)">\n Cancel\n </a>\n <a ng-switch-default ng-click="toggleEdit(true)">\n Edit\n </a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4 ng-switch="action">\n <div ng-switch-when="new_group" ng-switch="selectedCount > 0">\n <span ng-switch-when="true">\n <ng-pluralize count="selectedCount" when="{\'one\': \'1 participant\', \'other\': \'{} participants\'}">\n </ng-pluralize>\n </span>\n <span ng-switch-default>New Group</span>\n </div>\n <span ng-switch-default>Contacts</span>\n </h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="contacts_modal_search">\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="Search" ng-model="search.query"/>\n <a class="contacts_modal_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length"></a>\n </div>\n\n\n <div my-contacts-list class="contacts_modal_col">\n\n <div class="contacts_wrap nano" my-infinite-scroller>\n <div class="contacts_scrollable_wrap nano-content">\n\n <ul class="contacts_modal_members_list nav nav-pills nav-stacked">\n\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | orderBy:\'user.sortName\' | limitTo: slice.limit track by contact.userID" ng-class="{active: selectedContacts[contact.userID], disabled: disabledContacts[contact.userID]}">\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)">\n\n <i ng-if="multiSelect" class="icon icon-contact-tick"></i>\n\n <div class="contacts_modal_contact_photo pull-left" my-user-photolink="contact.userID" status="true" img-class="contacts_modal_contact_photo"></div>\n <div class="contacts_modal_contact_name" ng-bind-html="contact.user.rFullName"></div>\n <div class="contacts_modal_contact_status" my-user-status="::contact.userID"></div>\n\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n <div class="modal-footer contacts_modal_panel" ng-switch="action">\n <button ng-switch-when="new_group" class="btn btn-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit">\n Next\n </button>\n <button ng-switch-when="select" class="btn btn-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit">\n Next\n </button>\n <button ng-switch-when="edit" class="btn btn-danger" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="deleteSelected()">\n Delete <strong ng-bind="selectedCount"></strong>\n </button>\n <button ng-switch-default class="btn btn-link" ng-click="importContact()">\n New contact\n </button>\n </div>\n\n</div>'),e.put("partials/mobile/country_select_modal.html",'<div class="countries_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4>Country</h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="countries_modal_search">\n <input class="form-control countries_modal_search_field" my-focused type="search" placeholder="Search" ng-model="search.query"/>\n <a class="countries_modal_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length"></a>\n </div>\n\n <div class="countries_modal_col" my-countries-list>\n\n <div class="countries_wrap nano" my-infinite-scroller>\n <div class="countries_scrollable_wrap nano-content">\n\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\n\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\n <a class="countries_modal_country" ng-click="$close(country)">\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>'),e.put("partials/mobile/peer_select.html",'<div class="peer_select_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <a class="navbar-search-wrap" ng-click="toggleSearch()">\n <i class="icon-search"></i>\n </a>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4>Select conversation</h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="im_dialogs_modal_col_wrap" ng-controller="AppImDialogsController" my-dialogs>\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input my-focused class="form-control im_dialogs_search_field" type="search" placeholder="Search" ng-model="search.query"/>\n <a class="im_dialogs_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length"></a>\n </div>\n </div>\n <div my-dialogs-list modal="true" class="im_dialogs_modal_col">\n <div class="im_dialogs_wrap nano">\n <div class="im_dialogs_scrollable_wrap nano-content">\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID"></li>\n </ul>\n <div class="im_dialogs_contacts_wrap" ng-show="contacts.length > 0">\n <h5>Contacts</h5>\n <ul class="nav nav-pills nav-stacked">\n <li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:\'user.sortName\' track by contact.userID" ng-class="{active: curDialog.peerID == contact.userID}">\n <a class="im_dialog" ng-click="dialogSelect(contact.peerString)">\n <div class="im_dialog_photo pull-left">\n <img\n class="im_dialog_photo"\n my-load-thumb\n thumb="contact.userPhoto"\n />\n </div>\n <div class="im_dialog_message_wrap">\n <div class="im_dialog_peer">\n <span class="im_dialog_user" ng-bind-html="contact.user.rFullName"></span>\n </div>\n <div class="im_dialog_message">\n <span class="im_dialog_message_text" my-user-status="::contact.userID"></span>\n </div>\n </div>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n</div>'),e.put("partials/mobile/phonebook_modal.html",'<div class="contacts_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li class="navbar-quick-right">\n <a ng-click="toggleSelection()" ng-switch="selectedCount > 0">\n <span ng-switch-when="true">Deselect all</span>\n <span ng-switch-default>Select all</span>\n </a>\n </li>\n <li>\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4>Phonebook</h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="contacts_modal_search">\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="Search" ng-model="search.query"/>\n <a class="contacts_modal_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length"></a>\n </div>\n\n\n <div my-contacts-list class="contacts_modal_col">\n\n <div class="contacts_wrap nano" my-infinite-scroller>\n <div class="contacts_scrollable_wrap nano-content" ng-switch="contactsEmpty">\n\n <div ng-switch-when="true" class="contacts_modal_contacts_empty" my-vertical-position="0.2" padding="true">\n Your phonebook is empty.\n </div>\n\n <ul ng-switch-default class="contacts_modal_members_list nav nav-pills nav-stacked">\n\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | limitTo: slice.limit track by contact.id" ng-class="{active: selectedContacts[contact.id]}">\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.id)">\n\n <i ng-if="multiSelect" class="icon icon-contact-tick"></i>\n\n <div class="contacts_modal_contact_photo pull-left">\n <img\n class="contacts_modal_contact_photo"\n ng-src="{{contact.photo}}"\n />\n </div>\n\n <div class="contacts_modal_contact_name">\n <span ng-bind="contact.first_name"></span>\n <span ng-bind="contact.last_name"></span>\n </div>\n <div class="contacts_modal_contact_status" ng-repeat="phone in contact.phones">\n <span ng-bind="phone | phoneNumber"></span>\n </div>\n\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n <div class="modal-footer contacts_modal_panel" ng-show="multiSelect">\n <button class="btn btn-primary" ng-class="{disabled: !selectedCount || progress.enabled}" ng-disabled="!selectedCount || progress.enabled" ng-click="submitSelected()" type="submit" ng-switch="progress.enabled">\n <span ng-switch-when="true">Importing<span my-loading-dots></span></span>\n <span ng-switch-default>Import contacts</span>\n </button>\n </div>\n\n</div>'),e.put("partials/mobile/settings_modal.html",'<div class="settings_modal_wrap modal_content_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown">\n <a class="dropdown-toggle navbar-toggle">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="photo.location">\n <a ng-click="deletePhoto()">Delete profile photo</a>\n </li>\n <li>\n <a ng-click="editProfile()">Edit profile</a>\n </li>\n <li>\n <a ng-click="terminateSessions()">Terminate all sessions</a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4>Settings</h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a href="" ng-click="openPhoto(photo.id, -profile.id)" class="mobile_user_modal_image_wrap pull-left" ng-class="{disabled: !photo.id}">\n <img\n class="mobile_user_modal_image"\n my-load-thumb\n watch="true"\n thumb="photo"\n />\n </a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" ng-bind-html="profile.rFullName"></h4>\n <p class="mobile_user_modal_status" my-user-status="::profile.id"></p>\n </div>\n\n </div>\n\n <div class="mobile_modal_action_wrap" ng-switch="photo.updating">\n <span ng-switch-when="true" class="mobile_modal_action">\n Updating<span my-loading-dots></span>\n </span>\n <span ng-switch-default class="mobile_modal_action mobile_modal_upload_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\n Set profile photo\n </span>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleDesktop()" ng-class="notify.desktop ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Notification alerts</span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap" ng-if="!notify.desktop &amp;&amp; notify.canVibrate">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleVibrate()" ng-class="notify.vibrate ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Vibrate</span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleSound()" ng-class="notify.volume ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Sounds</span>\n </a>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleCtrlEnter(send.enter == 1 ? 0 : 1)" ng-class="send.enter == 1 ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Send on Enter</span>\n </a>\n </div>\n\n <div class="mobile_modal_section" ng-if="profile.phone">\n <h4 class="mobile_modal_section_header">Phone</h4>\n <div class="mobile_modal_section_value" ng-bind="profile.phone | phoneNumber"></div>\n </div>\n\n <div class="mobile_modal_section">\n <h4 class="mobile_modal_section_header">About</h4>\n <div class="mobile_modal_section_body settings_about_section_body clearfix">\n <div class="settings_external_services pull-right">\n <a href="https://github.com/zhukov/webogram" target="_blank" title="Source code on GitHub" class="settings_external_service"><i class="icon icon-github"></i></a>\n <a href="https://twitter.com/telegram_web" target="_blank" title="Follow us on Twitter!" class="settings_external_service"><i class="icon icon-twitter"></i></a>\n </div>\n <p>\n <a ng-click="openChangelog()">Recent updates (ver. <span ng-bind="version"></span>)</a>\n </p>\n </div>\n </div>\n\n </div>\n</div>\n'),e.put("partials/mobile/user_modal.html",'<div class="mobile_user_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown">\n <a class="dropdown-toggle navbar-toggle">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="user._ == \'userContact\'">\n <a ng-click="importContact(true)">Edit contact</a>\n </li>\n <li ng-if="user._ == \'userContact\'">\n <a ng-click="deleteContact()">Delete contact</a>\n </li>\n <li ng-if="user.phone.length > 0 &amp;&amp; user._ != \'userContact\'">\n <a ng-click="importContact()">Add to contacts</a>\n </li>\n <li>\n <a ng-click="flushHistory()">Delete chat</a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title">\n <h4>Contact info</h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a href="" ng-click="openPhoto(userPhoto.id, -user.id)" class="mobile_user_modal_image_wrap pull-left" ng-class="{disabled: !userPhoto.id}">\n <img\n class="mobile_user_modal_image"\n my-load-thumb\n thumb="userPhoto"\n />\n </a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" ng-bind="user | userName"></h4>\n <p class="mobile_user_modal_status" ng-if="user.status" my-user-status="::user.id"></p>\n </div>\n\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action" ng-click="goToHistory()">Send message</a>\n </div>\n\n <div ng-if="user.phone.length > 0" class="mobile_modal_action_wrap">\n <a class="mobile_modal_action" ng-click="shareContact()">Share contact</a>\n </div>\n\n <div class="mobile_modal_action_wrap">\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\n <span class="tg_checkbox_label">Notifications</span>\n </a>\n </div>\n\n <div class="mobile_modal_section">\n <h4 class="mobile_modal_section_header">Phone</h4>\n <div class="mobile_modal_section_value" ng-bind="user.phone | phoneNumber"></div>\n </div>\n\n </div>\n\n</div>')
}]),angular.module("myApp.directives",["myApp.filters"]).directive("myHead",function(){return{restrict:"AE",templateUrl:"partials/head.html"}}).directive("myDialog",function(){return{restrict:"AE",templateUrl:"partials/dialog.html"}}).directive("myMessage",function(){return{templateUrl:"partials/message.html"}}).directive("myServiceMessage",function(){return{templateUrl:"partials/message_service.html"}}).directive("myMessagePhoto",function(){return{templateUrl:"partials/message_attach_photo.html"}}).directive("myMessageVideo",function(){return{templateUrl:"partials/message_attach_video.html"}}).directive("myMessageDocument",function(){return{templateUrl:"partials/message_attach_document.html"}}).directive("myMessageAudio",function(){return{templateUrl:"partials/message_attach_audio.html"}}).directive("myMessageMap",function(){return{templateUrl:"partials/message_attach_map.html"}}).directive("myMessageContact",function(){return{templateUrl:"partials/message_attach_contact.html"}}).directive("myMessagePending",function(){return{templateUrl:"partials/message_attach_pending.html"}}).directive("myDialogs",["$modalStack","$transition","$window","$timeout",function(e,t,n,i){function a(t,a,o){function r(t){if(!p&&e.getTop())return!0;if(36==t.keyCode&&!t.shiftKey&&!t.ctrlKey&&t.altKey){var n=$(c).find(".im_dialog_wrap a")[0];return n&&(n.click(),c.scrollTop=0,$(s).nanoScroller({flash:!0})),cancelEvent(t)}if(27==t.keyCode||9==t.keyCode&&t.shiftKey&&!t.ctrlKey&&!t.metaKey)return p||(l.focus(),l.value&&l.select()),cancelEvent(t);if(p&&13==t.keyCode){var n=$(c).find(".im_dialog_selected")[0]||$(c).find(".im_dialog_wrap a")[0];return n&&n.click(),cancelEvent(t)}if(38==t.keyCode||40==t.keyCode){var i=!t.shiftKey&&t.altKey;if(!i&&(!p||t.metaKey))return!0;var a,o=40==t.keyCode,n=!i&&$(c).find(".im_dialog_selected")[0]||$(c).find(".active a.im_dialog")[0],r=n&&n.parentNode;if(r){var a=n[o?"nextSibling":"previousSibling"];if(!a||!a.className||-1==a.className.indexOf("im_dialog_wrap")){var u=$(c).find(".im_dialog_wrap"),d=u.index(n.parentNode),h=d+(o?1:-1);a=u[h]}}else{var u=$(c).find(".im_dialog_wrap");a=o?u[0]:u[u.length-1]}if(i?a&&$(a).find("a")[0].click():(r&&a&&$(r).find("a").removeClass("im_dialog_selected"),a&&$(a).find("a").addClass("im_dialog_selected")),a){var f=a.offsetTop,g=a.offsetHeight,m=c.scrollTop,v=c.clientHeight;m>f?(c.scrollTop=f,$(s).nanoScroller({flash:!0})):f+g-v>m&&(c.scrollTop=f+g-v,$(s).nanoScroller({flash:!0}))}return cancelEvent(t)}}var s=$(".im_dialogs_wrap",a)[0],c=$(".im_dialogs_scrollable_wrap",a)[0],l=$(".im_dialogs_search_field",a)[0],u=$(".im_dialogs_panel",a)[0],d=$(".im_dialogs_tabs_wrap",a)[0],p=!1;$(l).on("focus blur",function(e){p="focus"==e.type,p||($(c).find(".im_dialog_selected").removeClass("im_dialog_selected"),l.value||t.$emit("ui_dialogs_search_clear"))}),t.$on("dialogs_search_toggle",function(){$(u).addClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search"),$(n).scrollTop(0),i(function(){l.focus()})}),t.$on("search_clear",function(){$(u).removeClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search")}),o.$observe("hasTabs",function(e){e="true"==e,$(d).toggle(e),t.$broadcast("ui_dialogs_tabs",e)}),$(document).on("keydown",r),t.$on("$destroy",function(){$(document).off("keydown",r)})}return{link:a}}]).directive("myDialogsList",["$window","$timeout",function(e,t){function n(n,i,a){function o(){return d&&d.offsetHeight||(d=$(u)[0]),a.modal?($(i).css({height:$(e).height()-(d?d.offsetHeight:58)-(Config.Navigator.mobile?46:200)}),void g()):(l&&l.offsetHeight||(l=$(".tg_page_head")[0]),p&&p.offsetHeight||(p=$(".im_page_footer")[0]),s&&s.offsetHeight||(s=$(".im_dialogs_col_wrap")[0]),$(i).css({height:$(e).height()-p.offsetHeight-(l?l.offsetHeight:44)-(d?d.offsetHeight:58)-parseInt($(s).css("paddingBottom")||0)}),void g())}var r=$(".im_dialogs_wrap",i)[0],s=$(".im_dialogs_col_wrap")[0],c=$(".im_dialogs_scrollable_wrap",i)[0],l=$(".tg_page_head")[0],u=Config.Navigator.mobile&&a.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",d=$(u)[0],p=$(".im_page_footer")[0],h=!1,f=!1;onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0})});var g=function(){onContentLoaded(function(){$(r).nanoScroller()})};n.$on("ui_dialogs_prepend",g),n.$on("ui_dialogs_tabs",function(e,t){h=t,o()}),n.$on("ui_dialogs_search",o),n.$on("ui_dialogs_update",o),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){g(),f=!1,t(function(){$(c).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){g(),f=!1,t(function(){$(c).trigger("scroll")})})}),$(c).on("scroll",function(){i.is(":visible")&&!f&&c.scrollTop>=c.scrollHeight-c.clientHeight-300&&(n.$emit("dialogs_need_more"),f=!0)}),$(e).on("resize",o),o(),setTimeout(o,1e3)}return{link:n}}]).directive("myContactsList",["$window","$timeout",function(e){function t(t,n){function i(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(a&&a.offsetHeight||0)-(Config.Navigator.mobile?64:200)}),$(r).nanoScroller()}var a=$(".contacts_modal_search")[0],o=$(".contacts_modal_panel")[0],r=$(".contacts_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:t}}]).directive("myCountriesList",["$window","$timeout",function(e){function t(t,n){function i(){$(n).css({height:$(e).height()-(o&&o.offsetHeight||0)-(a&&a.offsetHeight||0)-(Config.Navigator.mobile?64:200)}),$(r).nanoScroller()}var a=$(".countries_modal_search")[0],o=$(".countries_modal_panel")[0],r=$(".countries_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:t}}]).directive("myHistory",["$window","$timeout","$rootScope","$transition",function(e,t,n,i){function a(a,o){function r(){var e,n;(n=$(".im_message_focus",d)[0])?(d.scrollTop=Math.max(0,n.offsetTop-Math.floor(d.clientHeight/2)+26),T=!1):(e=$(".im_message_unread_split",d)[0])?(d.scrollTop=Math.max(0,e.offsetTop-52),T=!1):(d.scrollTop=d.scrollHeight,T=!0),C(),t(function(){$(d).trigger("scroll")})}function s(t){if(o.is(":visible")||$(o[0].parentNode.parentNode).is(":visible")){$(g).is(":visible")&&$(g).css({height:$(y).height()}),m&&m.offsetHeight||(m=$(".tg_page_head")[0]),v&&v.offsetHeight||(v=$(".im_page_footer")[0]);var n=$(e).height()-h.offsetHeight-f.offsetHeight-(m?m.offsetHeight:44)-v.offsetHeight;$(l).css({height:n}),c(),t!==!0&&(T&&onContentLoaded(function(){d.scrollTop=d.scrollHeight,C()}),C(100))}}function c(){$(u).css({marginTop:0});var e=d.offsetHeight-u.offsetHeight-20-(Config.Navigator.mobile?0:49);u.offsetHeight>0&&e>0&&$(u).css({marginTop:e}),$(l).nanoScroller()}var l=$(".im_history_wrap",o)[0],u=$(".im_history_messages",o)[0],d=($(".im_history",o)[0],$(".im_history_scrollable_wrap",o)[0]),p=$(".im_history_scrollable",o)[0],h=$(".im_history_panel_wrap",o)[0],f=$(".im_bottom_panel_wrap",o)[0],g=$(".im_send_form_wrap",o)[0],m=$(".tg_page_head")[0],v=$(".im_page_footer")[0],y=$(".im_send_form",o)[0],_=!1,b=!1;onContentLoaded(function(){d.scrollTop=d.scrollHeight}),$(l).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0});var w,C=function(e){t(function(){$(d).hasClass("im_history_to_bottom")||$(l).nanoScroller()},e||0)},k=!1,S=["transform","webkitTransform","MozTransform","msTransform","OTransform"];for(w=0;w<S.length;w++)if(S[w]in u.style){k=S[w];break}var x=k?!0:!1,M=!1;a.$on("ui_history_append_new",function(e,t){if(T||t.my){var a,o=x&&!n.idle.isIDLE&&u.clientHeight>0;o?a=d.scrollHeight:($(p).css({bottom:0}),$(d).addClass("im_history_to_bottom")),onContentLoaded(function(){if(o){M=!0,$(u).removeClass("im_history_appending"),d.scrollTop=d.scrollHeight,$(u).css(k,"translate(0px, "+(d.scrollHeight-a)+"px)"),$(l).nanoScroller();var e={};e[k]="translate(0px, 0px)",$(u).addClass("im_history_appending"),i($(u),e).then(function(){M=!1,$(u).removeClass("im_history_appending"),c()})}else $(d).removeClass("im_history_to_bottom"),$(p).css({bottom:""}),d.scrollTop=d.scrollHeight,c()})}}),a.$on("ui_history_change",function(){$(d).addClass("im_history_to_bottom"),$(p).css({bottom:0}),onContentLoaded(function(){$(d).removeClass("im_history_to_bottom"),$(p).css({bottom:""}),s(!0),_=!1,b=!1,r()})}),a.$on("ui_history_change_scroll",function(){onContentLoaded(r)}),a.$on("ui_history_focus",function(){T||(d.scrollTop=d.scrollHeight,C(),T=!0)}),a.$on("ui_history_prepend",function(){var e=d.scrollHeight,n=d.scrollTop,i=parseInt($(d).css("paddingRight")),o=d.clientHeight;$(d).addClass("im_history_to_bottom"),d.scrollHeight,$(p).css({bottom:-(e-n-o),marginLeft:-Math.ceil(i/2)});var r=function(){$(d).removeClass("im_history_to_bottom"),$(p).css({bottom:"",marginLeft:""}),d.scrollTop=n+d.scrollHeight-e,c(),_=!1,t(function(){d.scrollHeight!=e&&$(d).trigger("scroll")}),clearTimeout(s),l()},s=setTimeout(r,0),l=a.$on("$viewContentLoaded",r)}),a.$on("ui_history_append",function(){var e=d.scrollHeight;onContentLoaded(function(){T=!1,c(),b=!1,t(function(){d.scrollHeight!=e&&$(d).trigger("scroll")})})}),a.$on("ui_panel_update",function(){onContentLoaded(function(){s(),a.$broadcast("ui_message_send"),t(function(){$(d).trigger("scroll")})})}),a.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),a.$on("ui_editor_resize",s),a.$on("ui_height",function(){onContentLoaded(s)});var T=!0;$(d).on("scroll",function(){!o.is(":visible")||$(d).hasClass("im_history_to_bottom")||M||(T=d.scrollTop>=d.scrollHeight-d.clientHeight,!_&&d.scrollTop<=300?(_=!0,a.$emit("history_need_more")):!b&&d.scrollTop>=d.scrollHeight-d.clientHeight-300&&(b=!0,a.$emit("history_need_less")))}),$(e).on("resize",s),s(),onContentLoaded(s)}return{link:a}}]).directive("mySendForm",["$timeout","$modalStack","Storage","ErrorService",function(e,t,n,i){function a(a,o){function r(){E=0,T=0}function s(){if(k){e.cancel(S);var t=$("<div>").text(a.draftMessage.text||"").html();t=t.replace(/\n/g,"<br/>"),$(k).html(t),l()}}function c(){k&&($(k).trigger("change"),l())}function l(){var e=k.offsetHeight;A!=e&&(A=e,a.$emit("ui_editor_resize"))}function u(e){return 9!=e.keyCode||e.shiftKey||e.ctrlKey||e.metaKey||t.getTop()?void 0:(w.focus(),cancelEvent(e))}function d(){onContentLoaded(function(){w.focus()})}function p(e){var t,n=e&&e.target;if(n&&(t=n.src)&&0===t.indexOf("data")){n.parentNode.removeChild(n),t=t.substr(5).split(";");for(var o=t[0],r=atob(t[1].split(",")[1]),s=new Uint8Array(r.length),c=0;c<r.length;c++)s[c]=r.charCodeAt(c);var l=new Blob([s],{type:o});i.confirm({type:"FILE_CLIPBOARD_PASTE"}).then(function(){a.draftMessage.files=[l],a.draftMessage.isMedia=!0})}}function h(e){var t,n=(e.originalEvent||e).clipboardData,o=n&&n.items||[],r=[];for(t=0;t<o.length;t++)"file"==o[t].kind&&r.push(o[t].getAsFile());r.length>0&&i.confirm({type:"FILES_CLIPBOARD_PASTE",files:r}).then(function(){a.draftMessage.files=r,a.draftMessage.isMedia=!0})}function f(e){var t=!1;return g&&1!=g||(g=checkDragEvent(e)?2:1,t=!0),2==g&&(m&&setTimeout(function(){clearTimeout(m),m=!1},0),"dragenter"==e.type||"dragover"==e.type?t&&$(_).css({height:$(w).height()+12,width:$(w).width()+12}).show():("drop"==e.type&&a.$apply(function(){a.draftMessage.files=Array.prototype.slice.call(e.originalEvent.dataTransfer.files),a.draftMessage.isMedia=!0}),m=setTimeout(function(){$(_).hide(),g=!1,m=!1},300))),cancelEvent(e)}var g,m,v=$("textarea",o)[0],y=$("input",o),_=$(".im_send_dropbox_wrap",o)[0],b=$(".im_emoji_btn",o)[0],w=v,C=($(v).emojiarea({button:b,norealTime:!0}),$(".emoji-menu",o)[0],$(".im_submit",o)[0]),k=$(".emoji-wysiwyg-editor",o)[0];if(k){w=k,$(k).addClass("form-control"),$(k).attr("placeholder",$(v).attr("placeholder"));var S;$(k).on("DOMNodeInserted",p).on("keyup",function(){l(),a.$apply(function(){a.draftMessage.text=k.textContent}),e.cancel(S),S=e(c,1e3)})}e(function(){y.on("change",function(){var e=this;a.$apply(function(){a.draftMessage.files=Array.prototype.slice.call(e.files),a.draftMessage.isMedia=$(e).hasClass("im_media_attach_input")||Config.Navigator.mobile,setTimeout(function(){try{e.value=""}catch(t){}},1e3)})})},1e3);var x=!0,M=function(){n.get("send_ctrlenter").then(function(e){x=!e})};a.$on("settings_changed",M),M(),$(w).on("keydown",function(t){if(k&&l(),13==t.keyCode){var n=!1;if(x&&!t.shiftKey?n=!0:x||!t.ctrlKey&&!t.metaKey||(n=!0),n)return e.cancel(S),c(),$(o).trigger("submit"),$(o).trigger("message_send"),r(),cancelEvent(t)}}),$(C).on("mousedown touchstart",function(t){return e.cancel(S),c(),$(o).trigger("submit"),$(o).trigger("message_send"),r(),cancelEvent(t)});var T,E=0;$(w).on("keyup",function(){var e=tsNow(),t=w[k?"textContent":"value"].length;e-E>5e3&&t!=T&&(E=e,T=t,a.$emit("ui_typing"))});var A=k.offsetHeight;$(document).on("keydown",u),$("body").on("dragenter dragleave dragover drop",f),$(document).on("paste",h),Config.Navigator.touch||(a.$on("ui_peer_change",d),a.$on("ui_history_focus",d),a.$on("ui_history_change",d)),a.$on("ui_message_send",d),a.$on("ui_peer_draft",s),a.$on("ui_message_before_send",c),a.$on("$destroy",function(){$("body").off("dragenter dragleave dragover drop",f),$(document).off("paste",h),$(document).off("keydown",u),$(C).off("mousedown"),y.off("change"),k&&$(k).off("DOMNodeInserted keyup",p),$(w).off("keydown")}),Config.Navigator.touch||d()}return{link:a,scope:{draftMessage:"="}}}]).directive("myLoadThumb",["MtpApiFileManager",function(e){function t(t,n,i){var a=0,o=e.getCachedFile(t.thumb&&t.thumb.location&&!t.thumb.location.empty&&t.thumb.location);o&&n.attr("src",o),t.thumb&&t.thumb.width&&t.thumb.height&&(n.attr("width",t.thumb.width),n.attr("height",t.thumb.height));var r=t.$watchCollection("thumb.location",function(i){t.thumb&&t.thumb.width&&t.thumb.height&&(n.attr("width",t.thumb.width),n.attr("height",t.thumb.height),t.$emit("ui_height"));var o=++a;if(!i||i.empty)return n.attr("src",t.thumb&&t.thumb.placeholder||"img/blank.gif"),void s();var r=e.getCachedFile(i);return r?(n.attr("src",r),void s()):(n.attr("src")||n.attr("src",t.thumb.placeholder||"img/blank.gif"),void e.downloadSmallFile(t.thumb.location).then(function(e){o==a&&(n.attr("src",e),s())},function(e){console.log("Download image failed",e,t.thumb.location,n[0]),o==a&&(n.attr("src",t.thumb.placeholder||"img/blank.gif"),s())}))}),s=i.watch?angular.noop:function(){setTimeout(function(){t.$destroy(),r()},0)}}return{link:t,scope:{thumb:"="}}}]).directive("myLoadFullPhoto",["MtpApiFileManager",function(e){function t(t,n){var i=$("img",n)[0],a=$(".img_fullsize_with_progress_wrap",n).add(".img_fullsize_progress_wrap",n).add($(i)),o=function(){a.css({width:t.fullPhoto.width,height:t.fullPhoto.height}),t.$emit("ui_height")},r=0;t.$watchCollection("fullPhoto.location",function(){var n=e.getCachedFile(t.thumbLocation),a=++r;if(n?(i.src=n,o()):i.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",t.fullPhoto.location){var s;if(t.fullPhoto.size){var c={_:"inputFileLocation",volume_id:t.fullPhoto.location.volume_id,local_id:t.fullPhoto.location.local_id,secret:t.fullPhoto.location.secret};s=e.downloadFile(t.fullPhoto.location.dc_id,c,t.fullPhoto.size)}else s=e.downloadSmallFile(t.fullPhoto.location);t.progress={enabled:!0,percent:0},s.then(function(e){a==r&&(t.progress.enabled=!1,i.src=e,o())},function(e){console.log("Download image failed",e,t.fullPhoto.location),t.progress.enabled=!1,t.error=e&&"FS_BROWSER_UNSUPPORTED"==e.type?{html:'Your browser doesn\'t support <a href="https://developer.mozilla.org/en-US/docs/Web/API/LocalFileSystem" target="_blank">LocalFileSystem</a> feature which is needed to display this image.<br/>Please, install <a href="http://google.com/chrome" target="_blank">Google Chrome</a> or use <a href="https://telegram.org/" target="_blank">mobile app</a> instead.'}:{text:"Download failed",error:e}},function(e){t.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))})}}),o()}return{link:t,transclude:!0,templateUrl:"partials/full_photo.html",scope:{fullPhoto:"=",thumbLocation:"="}}}]).directive("myLoadVideo",["$sce","MtpApiFileManager",function(e,t){function n(n){n.progress={enabled:!0,percent:1},n.player={};var i,a={_:"inputVideoFileLocation",id:n.video.id,access_hash:n.video.access_hash},o=!1;if(navigator.plugins)for(i=0;i<navigator.plugins.length;i++)navigator.plugins[i].name.indexOf("QuickTime")>=0&&(o=!0);var r=t.downloadFile(n.video.dc_id,a,n.video.size,{mime:"video/mp4"});r.then(function(t){n.progress.enabled=!1,n.player.hasQuicktime=o,n.player.quicktime=!1,n.player.src=e.trustAsResourceUrl(t),n.$emit("ui_height")},function(e){console.log("Download video failed",e,n.video),n.progress.enabled=!1,n.player.src="",n.error=e&&"FS_BROWSER_UNSUPPORTED"==e.type?{html:'Your browser doesn\'t support <a href="https://developer.mozilla.org/en-US/docs/Web/API/LocalFileSystem" target="_blank">LocalFileSystem</a> feature which is needed to play this video.<br/>Please, install <a href="http://google.com/chrome" target="_blank">Google Chrome</a> or use <a href="https://telegram.org/" target="_blank">mobile app</a> instead.'}:{text:"Video download failed",error:e}},function(e){n.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))}),n.$emit("ui_height"),n.$on("$destroy",function(){r.cancel()})}return{link:n,transclude:!0,templateUrl:"partials/full_video.html",scope:{video:"="}}}]).directive("myLoadGif",["MtpApiFileManager",function(e){function t(t){var n=!1,i={_:"inputDocumentFileLocation",id:t.document.id,access_hash:t.document.access_hash};t.isActive=!1,t.document.url=e.getCachedFile(i),t.toggle=function(){return t.document.url?(t.isActive=!t.isActive,void t.$emit("ui_height")):n?(n.cancel(),void(n=!1)):(t.document.progress={enabled:!0,percent:1,total:t.document.size},n=e.downloadFile(t.document.dc_id,i,t.document.size,null,{mime:t.document.mime_type}),void n.then(function(e){t.document.url=e,t.isActive=!0,delete t.document.progress,console.log("file save done"),t.$emit("ui_height")},function(){t.document.progress.enabled=!1},function(e){console.log("dl progress",e),t.document.progress.done=e.done,t.document.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))}))}}return{link:t,templateUrl:"partials/full_gif.html",scope:{document:"="}}}]).directive("myMapPoint",["ExternalResourcesManager",function(e){function t(t,n){var i="AIzaSyC32ij28dCa0YzEV_HqbWfIwTZQql-RNS0",a="https://maps.googleapis.com/maps/api/staticmap?sensor=false&center="+t.point.lat+","+t.point["long"]+"&zoom=13&size=200x100&scale=2&key="+i;e.downloadImage(a).then(function(e){n.append('<img src="'+e+'" width="200" height="100"/>')}),n.attr("href","https://maps.google.com/?q="+t.point.lat+","+t.point["long"]),n.attr("target","_blank")}return{link:t,scope:{point:"="}}}]).directive("myLoadingDots",["$interval",function(){function e(e,n){n.html(t(n[0])?'<div class="loading_dots"><span></span><span></span><span></span></div>':"...")}function t(e){if(void 0===n&&(n=void 0!==e.style.animationName,n===!1)){var t,i="Webkit Moz O ms Khtml".split(" ");for(t=0;t<i.length;t++)if(void 0!==e.style[i[t]+"AnimationName"]){n=!0;break}}return n}return{link:e};var n}]).directive("myAudioAutoplay",function(){function e(e,t){e.$watch("audio.autoplay",function(e){e?(t.autoplay=!0,t[0].play()):t.autoplay=!1})}return{link:e,scope:{audio:"="}}}).directive("myFocused",function(){return{link:function(e,t){return Config.Navigator.touch?!1:void setTimeout(function(){t[0].focus()},100)}}}).directive("myFocusOn",function(){return{link:function(e,t,n){e.$on(n.myFocusOn,function(){return Config.Navigator.touch?!1:void onContentLoaded(function(){t[0].focus()})})}}}).directive("myFileUpload",function(){function e(e,t){t.on("change",function(){var t=this;e.$apply(function(){e.photo.file=t.files[0],setTimeout(function(){try{t.value=""}catch(e){}},1e3)})})}return{link:e}}).directive("myModalWidth",function(){function e(e,t,n){n.$observe("myModalWidth",function(e){$(t[0].parentNode.parentNode).css({width:parseInt(e)+(Config.Navigator.mobile?0:36)})})}return{link:e}}).directive("myModalNav",function(){function e(e,t,n){var i=function(t){var i=t.target;if(!i||"INPUT"!=i.tagName&&"TEXTAREA"!=i.tagName)switch(t.keyCode){case 39:case 32:case 34:case 40:e.$eval(n.next);break;case 37:case 33:case 38:e.$eval(n.prev)}};$(document).on("keydown",i),e.$on("$destroy",function(){$(document).off("keydown",i)})}return{link:e}}).directive("myCustomBackground",function(){function e(e,t,n){$("html").css({background:n.myCustomBackground}),e.$on("$destroy",function(){$("html").css({background:""})})}return{link:e}}).directive("myInfiniteScroller",function(){function e(e,t){var n=$(".nano-content",t)[0],i=!1;$(n).on("scroll",function(){t.is(":visible")&&!i&&n.scrollTop>=n.scrollHeight-n.clientHeight-300&&(i=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){i=!1,$(t).nanoScroller()}))})}return{link:e,scope:!0}}).directive("myModalPosition",["$window","$timeout",function(e,t){function n(n,i,a){var o=function(){if(!Config.Navigator.mobile||!$(i[0].parentNode.parentNode.parentNode).hasClass("page_modal")){var e=i[0].parentNode.offsetHeight,n=i[0].parentNode.parentNode.parentNode.offsetHeight;n>e?$(i[0].parentNode).css("marginTop",(n-e)/2):$(i[0].parentNode).css("marginTop",""),"no"!=a.animation&&t(function(){$(i[0].parentNode).addClass("modal-content-animated")},300)}};onContentLoaded(o),$(e).on("resize",o),n.$on("ui_height",function(){onContentLoaded(o)})}return{link:n}}]).directive("myVerticalPosition",["$window","$timeout",function(e){function t(t,n,i){var a="true"===i.padding,o=0,r=function(){var r=n[0].offsetHeight,s=r-(r&&a?2*o:0),c=$(e).height(),l=i.myVerticalPosition&&parseFloat(i.myVerticalPosition)||.5,u=c>s?parseInt((c-s)*l):"",d=a?{paddingTop:u,paddingBottom:u}:{marginTop:u,marginBottom:u};n.css(d),n.addClass("vertical-aligned"),o!==u&&t.$emit("ui_height"),o=u};onContentLoaded(r),$(e).on("resize",r),t.$on("ui_height",function(){onContentLoaded(r)})}return{link:t}}]).directive("myUserLink",["$timeout","$rootScope","AppUsersManager",function(e,t,n){function i(e,i,a){var o=e.$eval(a.myUserLink),r=n.getUser(o);i.html((r[a.short&&e.$eval(a.short)?"rFirstName":"rFullName"]||"").valueOf()),"A"==i[0].tagName&&i.on("click",function(){t.openUser(o)}),a.color&&e.$eval(a.color)&&i.addClass("user_color_"+r.num)}return{link:i}}]).directive("myUserStatus",["$filter","$rootScope","AppUsersManager",function(e,t,n){function i(){angular.forEach(s,function(e){e()})}function a(e,i,a){var c,l=r++,u=function(){var e=n.getUser(c);i.html(o(e)).toggleClass("status_online",e.status&&"userStatusOnline"==e.status._)};e.$watch(a.myUserStatus,function(e){c=e,u()}),t.$on("user_update",function(e,t){c==t&&u()}),s[l]=u,e.$on("$destroy",function(){delete s[l]})}var o=e("userStatus"),r=0,s={};return setInterval(i,9e4),{link:a}}]).directive("myUserPhotolink",["$rootScope","AppUsersManager",function(e,t){function n(n,i,a){n.photo=t.getUserPhoto(n.userID,"User"),(n.showStatus=a.status&&n.$eval(a.status))&&(n.user=t.getUser(n.userID)),"A"==i[0].tagName&&i.on("click",function(){e.openUser(n.userID)}),a.imgClass&&$(i[0].firstChild).addClass(a.imgClass)}return{link:n,scope:{userID:"=myUserPhotolink"},template:'<img my-load-thumb thumb="photo" /><i class="icon icon-online" ng-if="::showStatus || false" ng-show="user.status._ == \'userStatusOnline\'"></i>'}}]);
//# sourceMappingURL=js/app.js.map