function Deflate(e,r){input=e,output=new(USE_TYPEDARRAY?Uint8Array:Array)(DefaultBufferSize),compressionType=CompressionType.DYNAMIC,!r&&(r={})||"number"==typeof r.compressionType&&(compressionType=r.compressionType);for(prop in r)rawDeflateOption[prop]=r[prop];return rawDeflateOption.outputBuffer=output,rawDeflate=new RawDeflate(input,rawDeflateOption),procompress()}function compress(e,r){return new Deflate(e,r).compress()}function procompress(){var e,r,t,a,n,o,i,f=0;switch(e=CompressionMethod.DEFLATE){case CompressionMethod.DEFLATE:r=Math.LOG2E*Math.log(RawDeflate_WindowSize)-8;break;default:throw new Error("invalid compression method")}switch(t=r<<4|e,output[f++]=t,0,e){case CompressionMethod.DEFLATE:switch(compressionType){case CompressionType.NONE:o=0;break;case CompressionType.FIXED:o=1;break;case CompressionType.DYNAMIC:o=2;break;default:throw new Error("unsupported compression type")}break;default:throw new Error("invalid compression method")}return a=o<<6|0,n=31-(256*t+a)%31,a|=n,output[f++]=a,i=Adler32(input),op=f,output=RawDeflate_procompress(),f=output.length,USE_TYPEDARRAY&&((output=new Uint8Array(output.buffer)).length<=f+4&&((Raw_output=new Uint8Array(output.length+4)).set(output),output=Raw_output),output=output.subarray(0,f+4)),output[f++]=i>>24&255,output[f++]=i>>16&255,output[f++]=i>>8&255,output[f++]=255&i,output}function Adler32(e){return"string"==typeof e&&(e=stringToByteArray(e)),update(1,e)}function update(e,r){for(var t,a=65535&e,n=e>>>16&65535,o=r.length,i=0;o>0;){o-=t=o>Adler32_OptimizationParameter?Adler32_OptimizationParameter:o;do{n+=a+=r[i++]}while(--t);a%=65521,n%=65521}return(n<<16|a)>>>0}function RawDeflate(e,r){compressionType=CompressionType.DYNAMIC,lazy=0,Raw_input=USE_TYPEDARRAY&&e instanceof Array?new Uint8Array(e):e,op=0,r&&(r.lazy&&(this.lazy=r.lazy),"number"==typeof r.compressionType&&(this.compressionType=r.compressionType),r.outputBuffer&&(output=USE_TYPEDARRAY&&r.outputBuffer instanceof Array?new Uint8Array(r.outputBuffer):r.outputBuffer),"number"==typeof r.outputIndex&&(this.op=r.outputIndex)),output||(output=new(USE_TYPEDARRAY?Uint8Array:Array)(32768)),Raw_output=output}function RawDeflate_FixedHuffmanTable(){var e,r=[];for(e=0;e<288;e++)switch(!0){case e<=143:r.push([e+48,8]);break;case e<=255:r.push([e-144+400,9]);break;case e<=279:r.push([e-256+0,7]);break;case e<=287:r.push([e-280+192,8]);break;default:throw"invalid literal: "+e}return r}function RawDeflate_procompress(){var e,r,t,a=Raw_input;switch(compressionType){case CompressionType.NONE:for(r=0,t=a.length;r<t;)r+=(e=USE_TYPEDARRAY?a.subarray(r,r+65535):a.slice(r,r+65535)).length,this.makeNocompressBlock(e,r===t);break;case CompressionType.FIXED:Raw_output=RawDeflate_promakeFixedHuffmanBlock(a,!0),op=Raw_output.length;break;case CompressionType.DYNAMIC:Raw_output=RawDeflate_promakeDynamicHuffmanBlock(a,!0),op=Raw_output.length;break;default:throw"invalid compression type"}return Raw_output}function RawDeflate_promakeNocompressBlock(e,r){var t,a,n,o,i,f,s=Raw_output,u=this.op;if(USE_TYPEDARRAY){for(s=new Uint8Array(Raw_output.buffer);s.length<=u+e.length+5;)s=new Uint8Array(s.length<<1);s.set(Raw_output)}if(t=r?1:0,a=CompressionType.NONE,s[u++]=t|a<<1,n=e.length,o=65536+~n&65535,s[u++]=255&n,s[u++]=n>>>8&255,s[u++]=255&o,s[u++]=o>>>8&255,USE_TYPEDARRAY)s.set(e,u),u+=e.length,s=s.subarray(0,u);else{for(i=0,f=e.length;i<f;++i)s[u++]=e[i];s.length=u}return this.op=u,Raw_output=s,s}function RawDeflate_promakeFixedHuffmanBlock(e,r){alert(Raw_output);var t,a,n,o=new BitStream(USE_TYPEDARRAY?new Uint8Array(Raw_output.buffer):Raw_output,this.op);return t=r?1:0,a=CompressionType.FIXED,BitStream_prowriteBits(t,1,!0),BitStream_prowriteBits(a,2,!0),n=this.lz77(e),RawDeflate_profixedHuffman(n,o),BitStream_profinish()}function RawDeflate_promakeDynamicHuffmanBlock(e,r){var t,a,n,o,i,f,s,u,p,l,c,_,h,w,R,A,D,y=new BitStream(USE_TYPEDARRAY?new Uint8Array(Raw_output.buffer):Raw_output,op),b=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],g=new Array(19);for(t=r?1:0,a=CompressionType.DYNAMIC,BitStream_prowriteBits(t,1,!0),BitStream_prowriteBits(a,2,!0),n=RawDeflate_prolz77(e),u=RawDeflate_progetCodesFromLengths_(s=RawDeflate_progetLengths_(freqsLitLen,15)),l=RawDeflate_progetCodesFromLengths_(p=RawDeflate_progetLengths_(freqsDist,7)),o=286;o>257&&0===s[o-1];o--);for(i=30;i>1&&0===p[i-1];i--);for(_=RawDeflate_progetLengths_((c=RawDeflate_progetTreeSymbols_(o,s,i,p)).freqs,7),A=0;A<19;A++)g[A]=_[b[A]];for(f=19;f>4&&0===g[f-1];f--);for(h=RawDeflate_progetCodesFromLengths_(_),BitStream_prowriteBits(o-257,5,!0),BitStream_prowriteBits(i-1,5,!0),BitStream_prowriteBits(f-4,4,!0),A=0;A<f;A++)BitStream_prowriteBits(g[A],3,!0);for(A=0,D=c.codes.length;A<D;A++)if(w=c.codes[A],BitStream_prowriteBits(h[w],_[w],!0),w>=16){switch(A++,w){case 16:R=2;break;case 17:R=3;break;case 18:R=7;break;default:throw"invalid code: "+w}BitStream_prowriteBits(c.codes[A],R,!0)}return RawDeflate_prodynamicHuffman(n,[u,s],[l,p],y),BitStream_profinish()}function RawDeflate_prodynamicHuffman(e,r,t,a){var n,o,i,f,s,u,p,l;for(s=r[0],u=r[1],p=t[0],l=t[1],n=0,o=e.length;n<o;++n)if(i=e[n],BitStream_prowriteBits(s[i],u[i],!0),i>256)BitStream_prowriteBits(e[++n],e[++n],!0),BitStream_prowriteBits(p[f=e[++n]],l[f],!0),BitStream_prowriteBits(e[++n],e[++n],!0);else if(256===i)break;return a}function RawDeflate_profixedHuffman(e,r){var t,a,n;for(t=0,a=e.length;t<a;t++)if(n=e[t],BitStream_prowriteBits.apply(r,RawDeflate_profixedHuffmanTable[n]),n>256)BitStream_prowriteBits(e[++t],e[++t],!0),BitStream_prowriteBits(e[++t],5),BitStream_prowriteBits(e[++t],e[++t],!0);else if(256===n)break;return r}function RawDeflate_Lz77Match(e,r){Lz77Match_length=e,Lz77Match_backwardDistance=r}function Lz77Match_LengthCodeTable(e){var r,t,e=[];for(r=3;r<=258;r++)t=function(e){switch(!0){case 3===e:return[257,e-3,0];case 4===e:return[258,e-4,0];case 5===e:return[259,e-5,0];case 6===e:return[260,e-6,0];case 7===e:return[261,e-7,0];case 8===e:return[262,e-8,0];case 9===e:return[263,e-9,0];case 10===e:return[264,e-10,0];case e<=12:return[265,e-11,1];case e<=14:return[266,e-13,1];case e<=16:return[267,e-15,1];case e<=18:return[268,e-17,1];case e<=22:return[269,e-19,2];case e<=26:return[270,e-23,2];case e<=30:return[271,e-27,2];case e<=34:return[272,e-31,2];case e<=42:return[273,e-35,3];case e<=50:return[274,e-43,3];case e<=58:return[275,e-51,3];case e<=66:return[276,e-59,3];case e<=82:return[277,e-67,4];case e<=98:return[278,e-83,4];case e<=114:return[279,e-99,4];case e<=130:return[280,e-115,4];case e<=162:return[281,e-131,5];case e<=194:return[282,e-163,5];case e<=226:return[283,e-195,5];case e<=257:return[284,e-227,5];case 258===e:return[285,e-258,0];default:throw"invalid length: "+e}}(r),e[r]=t[2]<<24|t[1]<<16|t[0];return e}function Lz77Match_progetDistanceCode_(e){var r;switch(!0){case 1===e:r=[0,e-1,0];break;case 2===e:r=[1,e-2,0];break;case 3===e:r=[2,e-3,0];break;case 4===e:r=[3,e-4,0];break;case e<=6:r=[4,e-5,1];break;case e<=8:r=[5,e-7,1];break;case e<=12:r=[6,e-9,2];break;case e<=16:r=[7,e-13,2];break;case e<=24:r=[8,e-17,3];break;case e<=32:r=[9,e-25,3];break;case e<=48:r=[10,e-33,4];break;case e<=64:r=[11,e-49,4];break;case e<=96:r=[12,e-65,5];break;case e<=128:r=[13,e-97,5];break;case e<=192:r=[14,e-129,6];break;case e<=256:r=[15,e-193,6];break;case e<=384:r=[16,e-257,7];break;case e<=512:r=[17,e-385,7];break;case e<=768:r=[18,e-513,8];break;case e<=1024:r=[19,e-769,8];break;case e<=1536:r=[20,e-1025,9];break;case e<=2048:r=[21,e-1537,9];break;case e<=3072:r=[22,e-2049,10];break;case e<=4096:r=[23,e-3073,10];break;case e<=6144:r=[24,e-4097,11];break;case e<=8192:r=[25,e-6145,11];break;case e<=12288:r=[26,e-8193,12];break;case e<=16384:r=[27,e-12289,12];break;case e<=24576:r=[28,e-16385,13];break;case e<=32768:r=[29,e-24577,13];break;default:throw"invalid distance"}return r}function Lz77Match_protoLz77Array(){var e,r=Lz77Match_backwardDistance,t=[],a=0;return e=Lz77Match_LengthCodeTable[Lz77Match_length],t[a++]=65535&e,t[a++