dozy 1.0.102 → 1.0.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/axios.d.ts +6 -0
- package/dist/axios.js +4 -0
- package/dist/axios.js.map +1 -0
- package/dist/chunk-37OWOK4C.js +2610 -0
- package/dist/chunk-37OWOK4C.js.map +1 -0
- package/dist/chunk-GX5NJYGM.js +8433 -0
- package/dist/chunk-GX5NJYGM.js.map +1 -0
- package/dist/chunk-IXJVH7DN.js +1760 -0
- package/dist/chunk-IXJVH7DN.js.map +1 -0
- package/dist/chunk-UN725CXD.js +2 -10
- package/dist/chunk-UN725CXD.js.map +1 -1
- package/dist/crypto.d.ts +1 -0
- package/dist/crypto.js +6589 -0
- package/dist/crypto.js.map +1 -0
- package/dist/image.d.ts +2 -0
- package/dist/image.js +4 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +8 -9
- package/dist/index.js +7233 -26852
- package/dist/index.js.map +1 -1
- package/dist/lodash.d.ts +3 -0
- package/dist/lodash.js +4 -0
- package/dist/lodash.js.map +1 -0
- package/dist/zod.js +31 -274
- package/dist/zod.js.map +1 -1
- package/package.json +17 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node_modules/browser-image-compression/lib/copyExifWithoutOrientation.js","../node_modules/browser-image-compression/node_modules/uzip/UZIP.js","../node_modules/browser-image-compression/lib/UPNG.js","../node_modules/browser-image-compression/lib/canvastobmp.js","../node_modules/browser-image-compression/lib/config/browser-name.js","../node_modules/browser-image-compression/lib/config/max-canvas-size.js","../node_modules/browser-image-compression/lib/utils.js","../node_modules/browser-image-compression/lib/image-compression.js","../node_modules/browser-image-compression/lib/web-worker.js","../node_modules/browser-image-compression/lib/index.js"],"names":["copyExifWithoutOrientation","srcBlob","destBlob","Promise","$return","$error","slice","exif","type","e","i","getApp1Segment","blob","resolve","reject","reader","FileReader","addEventListener","target","result","buffer","view","DataView","offset","getUint16","marker","size","getUint32","tiffOffset","littleEndian","r","ifd0Offset","endOfTagsOffset","c","setUint16","f","Blob","readAsArrayBuffer","module","UZIP","u16","u32","exports","buf","onlyNames","rUs","rUi","o","out","data","Uint8Array","eocd","cnu","cnt","csize","coffs","sign","usize","nl","el","cl","s","roff","_readLocal","cmpr","time","crc32","nlen","elen","name","bin","readUTF8","file","t","l","inflateRaw","inflate","byteOffset","length","opts","Math","floor","off","F","crc","adler","level","deflateRaw","encode","obj","noCmpr","tot","wUi","wUs","cpr","p","zpd","fof","a","push","_writeHeader","ioff","fn","ext","pop","toLowerCase","indexOf","sizeUTF8","writeUTF8","tab","Uint32Array","n","k","update","len","table","b","end","buff","writeUshort","readUint","writeUint","String","fromCharCode","writeASCII","ns","toString","str","ci","strl","charCodeAt","code","opos","lvl","opt","U","goodIndex","_goodIndex","hash","putsE","pos","cvrd","dlen","strt","ii","prev","nc","lc","lits","li","ebits","bs","mch","_bestMatch","min","dst","of0","lhst","lgi","dgi","df0","dhst","nice","chain","pi","dif","_hash","tl","td","dlim","_howLong","maxd","j","ei","curd","saved","_writeBlock","BFINAL","T","ML","putsF","getTrees","MD","MH","numl","dset","cstSize","l0","fxdSize","contSize","fltree","fdtree","dynSize","numh","itree","ihst","BTYPE","_copyExact","ltree","dtree","makeCodes","revCodes","numd","_codeTiny","lset","o0","si","qb","_writeLit","qc","p8","set","_hufTree","_lenCodes","getSecond","nonZero","tree","hst","nxt","nnxt","prv","lz","zc","list","lit","l2","sort","i0","i1","i2","d","maxl","setDepth","MAXL","restrictDepth","bCost","dbt","dps","od","console","log","v","arr","ch","_putsF","u8","bitsF","_bitsF","bitsE","_bitsE","decodeTiny","codes2map","get17","noBuf","lmap","dmap","HDIST","HCLEN","_check","fdmap","HLIT","ordr","imap","mx0","_copyOut","ttree","mx1","ebs","ldef","dcode","dlit","bl","nbuf","max","_decodeTiny","LL","ll","src","mx","bits","max_code","bl_count","next_code","r15","rev15","val","rest","MAX_BITS","imb","_putsE","dt","_get17","_get25","Uint16Array","exb","dxb","ddef","flmap","x","tgt","sv","pushV","_mergeNamespaces","nextZero","readASCII","readBytes","_bin","pad","decodeURIComponent","w","h","area","bpl","ceil","bpp","bf","bf32","ctype","depth","rs","readUshort","qarea","ts","tabs","tRNS","ti","tr","tg","tb","qi","PLTE","ap","y","s0","t0","cj","gr","di","to","al","dd","_getBPP","interlace","CgBI","_filterZero","width","img","starting_col","col_increment","ri","row_increment","pass","sh","cr","cc","sw","starting_row","row","col","cdi","bpll","cbpp","H","N","W","R","C","m","J","Q","X","u","Z","A","K","M","I","V","S","D","z","_","q","$","Y","g","_paeth","pa","pb","pc","height","compress","filter","_copyTile","sb","tw","th","xoff","yoff","mode","fa","fr","fg","fb","ba","br","bg","bb","ifa","oa","ioa","decode","frames","fd","foff","mgck","_IHDR","fil","res","_inflate","doff","num_frames","num_plays","_decompress","rect","rct","del","frm","delay","round","dispose","blend","keyw","nz","text","bfr","cflag","pl","toRGBA8","acTL","decodeImage","frms","empty","fy","fw","fdata","fh","fx","UPNG","paeth","crcLib","er","dr","dg","db","da","dither","plte","MTD","nplt","ce","ne","ni","err","Int16Array","cd","nd","addErr","tb32","_main","nimg","wAs","anim","cicc","pltAlpha","leng","sRGB","pHYs","iCCP","pako","deflate","dl","cimg","wr","sl","loop","fi","dels","imgd","compressPNG","levelZero","nh","bufs","prms","onlyBlend","evenCrd","forbidPrev","minBits","forbidPlte","dith","alphaAnd","ilen","gotAlpha","framize","alwaysBlend","cimg32","nx","ny","nw","tstp","E","it","tlim","pimg","miy","may","p32","mix","sarea","tarea","_prepareDiff","r0","r1","miX","miY","_updateFrame","ps","nbufs","abuf","concatRGBA","tlen","byteLength","il","noff","qres","quantize","est","rgba","cof","bln","ind","inds","img32","cmc","cmap","inj","U8","pimg32","U32","cx","cy","rec","fls","ftry","CMPR","_filterLine","tsize","getKDtree","root","KD","getNearest","left","planeDst","right","leafs","nimg32","bst","tdst","maxL","mi","L","node","splitPixels","eMq255","ln","stats","estats","rn","dist","d0","d1","d2","d3","pd","node0","node1","eMq","vecDot","m1","m2","m3","Rj","m0","iN","M4","random","multVec","sqrt","dot","sml","tmi","abs","ac","bipp","bipl","CanvasToBMP","toArrayBuffer","canvas","callback","w4","idata","getContext","getImageData","data32","stride","pixelArraySize","fileLength","ArrayBuffer","blockSize","block","set16","set32","seek","setUint32","setTimeout","convert","_dly","BROWSER_NAME","CHROME","FIREFOX","DESKTOP_SAFARI","IE","IOS","MAX_CANVAS_SIZE","isBrowser","window","inWebWorker","WorkerGlobalScope","self","moduleMapper","cordova","require","CustomFile","getOriginalSymbol","File","CustomFileReader","dataUrl","split","mime","match","bstr","globalThis","atob","u8arr","lastModified","getDataUrlFromFile","onload","onerror","readAsDataURL","loadImage","getBrowserName","cachedResult","browserName","ETC","userAgent","navigator","test","document","documentMode","maximumCanvasSize","initWidth","ratio","halfSizeWidth","halfSizeHeight","drawImageInCanvas","fileType","approximateBelowMaximumCanvasSizeOfBrowser","ctx","fillRect","drawImage","isIOS","includes","platform","options","Error","createImageBitmap","$If_5","$If_6","convertToBlob","quality","then","$await_11","fileLastModified","fileName","$await_12","cleanupCanvasMemory","getExifOrientation","little","tags","handleMaxWidthOrHeight","maxWidthOrHeight","newCanvas","isFinite","getNewCanvasAndCtx","followExifOrientation","exifOrientation","previousProgress","incProgress","inc","signal","aborted","progress","maxSizeMB","drawFileInCanvas","origCanvas","$await_5","$await_6","isAutoOrientationInBrowser","orientationFixedCanvas","$await_8","maxWidthOrHeightFixedCanvas","initialQuality","outputFileType","tempFile","currentSize","sourceSize","newWidth","shouldReduceResolution","origExceedMaxSize","setProgress","maxSizeByte","alwaysKeepResolution","workerScript","workerScriptURL","createWorkerScriptURL","script","blobArgs","URL","worker","onProgress","Number","POSITIVE_INFINITY","useWebWorker","compressedFile","$await_7","preserveExif","imageCompression","getFilefromDataUrl","canvasToFile"],"mappings":"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","file":"chunk-IXJVH7DN.js","sourcesContent":["// https://gist.github.com/tonytonyjan/ffb7cd0e82cb293b843ece7e79364233\n// Copyright (c) 2022 Weihang Jian <tonytonyjan@gmail.com>\n\nexport default async function copyExifWithoutOrientation(srcBlob, destBlob) {\n const exif = await getApp1Segment(srcBlob);\n return new Blob([destBlob.slice(0, 2), exif, destBlob.slice(2)], {\n type: 'image/jpeg',\n });\n}\n\nconst SOI = 0xffd8;\nconst SOS = 0xffda;\nconst APP1 = 0xffe1;\nconst EXIF = 0x45786966;\nconst LITTLE_ENDIAN = 0x4949;\nconst BIG_ENDIAN = 0x4d4d;\nconst TAG_ID_ORIENTATION = 0x0112;\nconst TAG_TYPE_SHORT = 3;\nconst getApp1Segment = (blob) => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.addEventListener('load', ({ target: { result: buffer } }) => {\n const view = new DataView(buffer);\n let offset = 0;\n if (view.getUint16(offset) !== SOI) return reject('not a valid JPEG');\n offset += 2;\n\n while (true) {\n const marker = view.getUint16(offset);\n if (marker === SOS) break;\n\n const size = view.getUint16(offset + 2);\n if (marker === APP1 && view.getUint32(offset + 4) === EXIF) {\n const tiffOffset = offset + 10;\n let littleEndian;\n switch (view.getUint16(tiffOffset)) {\n case LITTLE_ENDIAN:\n littleEndian = true;\n break;\n case BIG_ENDIAN:\n littleEndian = false;\n break;\n default:\n return reject('TIFF header contains invalid endian');\n }\n if (view.getUint16(tiffOffset + 2, littleEndian) !== 0x2a) { return reject('TIFF header contains invalid version'); }\n\n const ifd0Offset = view.getUint32(tiffOffset + 4, littleEndian);\n const endOfTagsOffset = tiffOffset\n + ifd0Offset\n + 2\n + view.getUint16(tiffOffset + ifd0Offset, littleEndian) * 12;\n for (\n let i = tiffOffset + ifd0Offset + 2;\n i < endOfTagsOffset;\n i += 12\n ) {\n const tagId = view.getUint16(i, littleEndian);\n if (tagId == TAG_ID_ORIENTATION) {\n if (view.getUint16(i + 2, littleEndian) !== TAG_TYPE_SHORT) { return reject('Orientation data type is invalid'); }\n\n if (view.getUint32(i + 4, littleEndian) !== 1) { return reject('Orientation data count is invalid'); }\n\n view.setUint16(i + 8, 1, littleEndian);\n break;\n }\n }\n return resolve(buffer.slice(offset, offset + 2 + size));\n }\n offset += 2 + size;\n }\n return resolve(new Blob());\n });\n reader.readAsArrayBuffer(blob);\n});\n","\r\n\r\nvar UZIP = {};\r\nif(typeof module == \"object\") module.exports = UZIP;\r\n\r\n\r\nUZIP[\"parse\"] = function(buf, onlyNames)\t// ArrayBuffer\r\n{\r\n\tvar rUs = UZIP.bin.readUshort, rUi = UZIP.bin.readUint, o = 0, out = {};\r\n\tvar data = new Uint8Array(buf);\r\n\tvar eocd = data.length-4;\r\n\t\r\n\twhile(rUi(data, eocd)!=0x06054b50) eocd--;\r\n\t\r\n\tvar o = eocd;\r\n\to+=4;\t// sign = 0x06054b50\r\n\to+=4; // disks = 0;\r\n\tvar cnu = rUs(data, o); o+=2;\r\n\tvar cnt = rUs(data, o); o+=2;\r\n\t\t\t\r\n\tvar csize = rUi(data, o); o+=4;\r\n\tvar coffs = rUi(data, o); o+=4;\r\n\t\r\n\to = coffs;\r\n\tfor(var i=0; i<cnu; i++)\r\n\t{\r\n\t\tvar sign = rUi(data, o); o+=4;\r\n\t\to += 4; // versions;\r\n\t\to += 4; // flag + compr\r\n\t\to += 4; // time\r\n\t\t\r\n\t\tvar crc32 = rUi(data, o); o+=4;\r\n\t\tvar csize = rUi(data, o); o+=4;\r\n\t\tvar usize = rUi(data, o); o+=4;\r\n\t\t\r\n\t\tvar nl = rUs(data, o), el = rUs(data, o+2), cl = rUs(data, o+4); o += 6; // name, extra, comment\r\n\t\to += 8; // disk, attribs\r\n\t\t\r\n\t\tvar roff = rUi(data, o); o+=4;\r\n\t\to += nl + el + cl;\r\n\t\t\r\n\t\tUZIP._readLocal(data, roff, out, csize, usize, onlyNames);\r\n\t}\r\n\t//console.log(out);\r\n\treturn out;\r\n}\r\n\r\nUZIP._readLocal = function(data, o, out, csize, usize, onlyNames)\r\n{\r\n\tvar rUs = UZIP.bin.readUshort, rUi = UZIP.bin.readUint;\r\n\tvar sign = rUi(data, o); o+=4;\r\n\tvar ver = rUs(data, o); o+=2;\r\n\tvar gpflg = rUs(data, o); o+=2;\r\n\t//if((gpflg&8)!=0) throw \"unknown sizes\";\r\n\tvar cmpr = rUs(data, o); o+=2;\r\n\t\r\n\tvar time = rUi(data, o); o+=4;\r\n\t\r\n\tvar crc32 = rUi(data, o); o+=4;\r\n\t//var csize = rUi(data, o); o+=4;\r\n\t//var usize = rUi(data, o); o+=4;\r\n\to+=8;\r\n\t\t\r\n\tvar nlen = rUs(data, o); o+=2;\r\n\tvar elen = rUs(data, o); o+=2;\r\n\t\t\r\n\tvar name = UZIP.bin.readUTF8(data, o, nlen); o+=nlen; //console.log(name);\r\n\to += elen;\r\n\t\t\t\r\n\t//console.log(sign.toString(16), ver, gpflg, cmpr, crc32.toString(16), \"csize, usize\", csize, usize, nlen, elen, name, o);\r\n\tif(onlyNames) { out[name]={size:usize, csize:csize}; return; } \r\n\tvar file = new Uint8Array(data.buffer, o);\r\n\tif(false) {}\r\n\telse if(cmpr==0) out[name] = new Uint8Array(file.buffer.slice(o, o+csize));\r\n\telse if(cmpr==8) {\r\n\t\tvar buf = new Uint8Array(usize); UZIP.inflateRaw(file, buf);\r\n\t\t/*var nbuf = pako[\"inflateRaw\"](file);\r\n\t\tif(usize>8514000) {\r\n\t\t\t//console.log(PUtils.readASCII(buf , 8514500, 500));\r\n\t\t\t//console.log(PUtils.readASCII(nbuf, 8514500, 500));\r\n\t\t}\r\n\t\tfor(var i=0; i<buf.length; i++) if(buf[i]!=nbuf[i]) { console.log(buf.length, nbuf.length, usize, i); throw \"e\"; }\r\n\t\t*/\r\n\t\tout[name] = buf;\r\n\t}\r\n\telse throw \"unknown compression method: \"+cmpr;\r\n}\r\n\r\nUZIP.inflateRaw = function(file, buf) { return UZIP.F.inflate(file, buf); }\r\nUZIP.inflate = function(file, buf) { \r\n\tvar CMF = file[0], FLG = file[1];\r\n\tvar CM = (CMF&15), CINFO = (CMF>>>4);\r\n\t//console.log(CM, CINFO,CMF,FLG);\r\n\treturn UZIP.inflateRaw(new Uint8Array(file.buffer, file.byteOffset+2, file.length-6), buf); \r\n}\r\nUZIP.deflate = function(data, opts/*, buf, off*/) {\r\n\tif(opts==null) opts={level:6};\r\n\tvar off=0, buf=new Uint8Array(50+Math.floor(data.length*1.1));\r\n\tbuf[off]=120; buf[off+1]=156; off+=2;\r\n\toff = UZIP.F.deflateRaw(data, buf, off, opts.level);\r\n\tvar crc = UZIP.adler(data, 0, data.length);\r\n\tbuf[off+0]=((crc>>>24)&255); \r\n\tbuf[off+1]=((crc>>>16)&255); \r\n\tbuf[off+2]=((crc>>> 8)&255); \r\n\tbuf[off+3]=((crc>>> 0)&255); \t\r\n\treturn new Uint8Array(buf.buffer, 0, off+4);\r\n}\r\nUZIP.deflateRaw = function(data, opts) {\r\n\tif(opts==null) opts={level:6};\r\n\tvar buf=new Uint8Array(50+Math.floor(data.length*1.1));\r\n\tvar off = UZIP.F.deflateRaw(data, buf, off, opts.level);\r\n\treturn new Uint8Array(buf.buffer, 0, off);\r\n}\r\n\r\n\r\nUZIP.encode = function(obj, noCmpr) {\r\n\tif(noCmpr==null) noCmpr=false;\r\n\tvar tot = 0, wUi = UZIP.bin.writeUint, wUs = UZIP.bin.writeUshort;\r\n\tvar zpd = {};\r\n\tfor(var p in obj) { var cpr = !UZIP._noNeed(p) && !noCmpr, buf = obj[p], crc = UZIP.crc.crc(buf,0,buf.length); \r\n\t\tzpd[p] = { cpr:cpr, usize:buf.length, crc:crc, file: (cpr ? UZIP.deflateRaw(buf) : buf) }; }\r\n\t\r\n\tfor(var p in zpd) tot += zpd[p].file.length + 30 + 46 + 2*UZIP.bin.sizeUTF8(p);\r\n\ttot += 22;\r\n\t\r\n\tvar data = new Uint8Array(tot), o = 0;\r\n\tvar fof = []\r\n\t\r\n\tfor(var p in zpd) {\r\n\t\tvar file = zpd[p]; fof.push(o);\r\n\t\to = UZIP._writeHeader(data, o, p, file, 0);\r\n\t}\r\n\tvar i=0, ioff = o;\r\n\tfor(var p in zpd) {\r\n\t\tvar file = zpd[p]; fof.push(o);\r\n\t\to = UZIP._writeHeader(data, o, p, file, 1, fof[i++]);\t\t\r\n\t}\r\n\tvar csize = o-ioff;\r\n\t\r\n\twUi(data, o, 0x06054b50); o+=4;\r\n\to += 4; // disks\r\n\twUs(data, o, i); o += 2;\r\n\twUs(data, o, i); o += 2;\t// number of c d records\r\n\twUi(data, o, csize); o += 4;\r\n\twUi(data, o, ioff ); o += 4;\r\n\to += 2;\r\n\treturn data.buffer;\r\n}\r\n// no need to compress .PNG, .ZIP, .JPEG ....\r\nUZIP._noNeed = function(fn) { var ext = fn.split(\".\").pop().toLowerCase(); return \"png,jpg,jpeg,zip\".indexOf(ext)!=-1; }\r\n\r\nUZIP._writeHeader = function(data, o, p, obj, t, roff)\r\n{\r\n\tvar wUi = UZIP.bin.writeUint, wUs = UZIP.bin.writeUshort;\r\n\tvar file = obj.file;\r\n\t\r\n\twUi(data, o, t==0 ? 0x04034b50 : 0x02014b50); o+=4; // sign\r\n\tif(t==1) o+=2; // ver made by\r\n\twUs(data, o, 20); o+=2;\t// ver\r\n\twUs(data, o, 0); o+=2; // gflip\r\n\twUs(data, o, obj.cpr?8:0); o+=2;\t// cmpr\r\n\t\t\r\n\twUi(data, o, 0); o+=4;\t// time\t\t\r\n\twUi(data, o, obj.crc); o+=4;\t// crc32\r\n\twUi(data, o, file.length); o+=4;\t// csize\r\n\twUi(data, o, obj.usize); o+=4;\t// usize\r\n\t\t\r\n\twUs(data, o, UZIP.bin.sizeUTF8(p)); o+=2;\t// nlen\r\n\twUs(data, o, 0); o+=2;\t// elen\r\n\t\r\n\tif(t==1) {\r\n\t\to += 2; // comment length\r\n\t\to += 2; // disk number\r\n\t\to += 6; // attributes\r\n\t\twUi(data, o, roff); o+=4;\t// usize\r\n\t}\r\n\tvar nlen = UZIP.bin.writeUTF8(data, o, p); o+= nlen;\t\r\n\tif(t==0) { data.set(file, o); o += file.length; }\r\n\treturn o;\r\n}\r\n\r\n\r\n\r\n\r\n\r\nUZIP.crc = {\r\n\ttable : ( function() {\r\n\t var tab = new Uint32Array(256);\r\n\t for (var n=0; n<256; n++) {\r\n\t\t\tvar c = n;\r\n\t\t\tfor (var k=0; k<8; k++) {\r\n\t\t\t\tif (c & 1) c = 0xedb88320 ^ (c >>> 1);\r\n\t\t\t\telse c = c >>> 1;\r\n\t\t\t}\r\n\t\t\ttab[n] = c; } \r\n\t\treturn tab; })(),\r\n\tupdate : function(c, buf, off, len) {\r\n\t\tfor (var i=0; i<len; i++) c = UZIP.crc.table[(c ^ buf[off+i]) & 0xff] ^ (c >>> 8);\r\n\t\treturn c;\r\n\t},\r\n\tcrc : function(b,o,l) { return UZIP.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; }\r\n}\r\nUZIP.adler = function(data,o,len) {\r\n\tvar a = 1, b = 0;\r\n\tvar off = o, end=o+len;\r\n\twhile(off<end) {\r\n\t\tvar eend = Math.min(off+5552, end);\r\n\t\twhile(off<eend) {\r\n\t\t\ta += data[off++];\r\n\t\t\tb += a;\r\n\t\t}\r\n\t\ta=a%65521;\r\n\t\tb=b%65521;\r\n\t}\r\n return (b << 16) | a;\r\n}\r\n\r\nUZIP.bin = {\r\n\treadUshort : function(buff,p) { return (buff[p]) | (buff[p+1]<<8); },\r\n\twriteUshort: function(buff,p,n){ buff[p] = (n)&255; buff[p+1] = (n>>8)&255; },\r\n\treadUint : function(buff,p) { return (buff[p+3]*(256*256*256)) + ((buff[p+2]<<16) | (buff[p+1]<< 8) | buff[p]); },\r\n\twriteUint : function(buff,p,n){ buff[p]=n&255; buff[p+1]=(n>>8)&255; buff[p+2]=(n>>16)&255; buff[p+3]=(n>>24)&255; },\r\n\treadASCII : function(buff,p,l){ var s = \"\"; for(var i=0; i<l; i++) s += String.fromCharCode(buff[p+i]); return s; },\r\n\twriteASCII : function(data,p,s){ for(var i=0; i<s.length; i++) data[p+i] = s.charCodeAt(i); },\r\n\tpad : function(n) { return n.length < 2 ? \"0\" + n : n; },\r\n\treadUTF8 : function(buff, p, l) {\r\n\t\tvar s = \"\", ns;\r\n\t\tfor(var i=0; i<l; i++) s += \"%\" + UZIP.bin.pad(buff[p+i].toString(16));\r\n\t\ttry { ns = decodeURIComponent(s); }\r\n\t\tcatch(e) { return UZIP.bin.readASCII(buff, p, l); }\r\n\t\treturn ns;\r\n\t},\r\n\twriteUTF8 : function(buff, p, str) {\r\n\t\tvar strl = str.length, i=0;\r\n\t\tfor(var ci=0; ci<strl; ci++)\r\n\t\t{\r\n\t\t\tvar code = str.charCodeAt(ci);\r\n\t\t\tif ((code&(0xffffffff-(1<< 7)+1))==0) { buff[p+i] = ( code ); i++; }\r\n\t\t\telse if((code&(0xffffffff-(1<<11)+1))==0) { buff[p+i] = (192|(code>> 6)); buff[p+i+1] = (128|((code>> 0)&63)); i+=2; }\r\n\t\t\telse if((code&(0xffffffff-(1<<16)+1))==0) { buff[p+i] = (224|(code>>12)); buff[p+i+1] = (128|((code>> 6)&63)); buff[p+i+2] = (128|((code>>0)&63)); i+=3; }\r\n\t\t\telse if((code&(0xffffffff-(1<<21)+1))==0) { buff[p+i] = (240|(code>>18)); buff[p+i+1] = (128|((code>>12)&63)); buff[p+i+2] = (128|((code>>6)&63)); buff[p+i+3] = (128|((code>>0)&63)); i+=4; }\r\n\t\t\telse throw \"e\";\r\n\t\t}\r\n\t\treturn i;\r\n\t},\r\n\tsizeUTF8 : function(str) {\r\n\t\tvar strl = str.length, i=0;\r\n\t\tfor(var ci=0; ci<strl; ci++)\r\n\t\t{\r\n\t\t\tvar code = str.charCodeAt(ci);\r\n\t\t\tif ((code&(0xffffffff-(1<< 7)+1))==0) { i++ ; }\r\n\t\t\telse if((code&(0xffffffff-(1<<11)+1))==0) { i+=2; }\r\n\t\t\telse if((code&(0xffffffff-(1<<16)+1))==0) { i+=3; }\r\n\t\t\telse if((code&(0xffffffff-(1<<21)+1))==0) { i+=4; }\r\n\t\t\telse throw \"e\";\r\n\t\t}\r\n\t\treturn i;\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\nUZIP.F = {};\r\n\r\nUZIP.F.deflateRaw = function(data, out, opos, lvl) {\t\r\n\tvar opts = [\r\n\t/*\r\n\t\t ush good_length; /* reduce lazy search above this match length \r\n\t\t ush max_lazy; /* do not perform lazy search above this match length \r\n ush nice_length; /* quit search above this match length \r\n\t*/\r\n\t/* good lazy nice chain */\r\n\t/* 0 */ [ 0, 0, 0, 0,0], /* store only */\r\n\t/* 1 */ [ 4, 4, 8, 4,0], /* max speed, no lazy matches */\r\n\t/* 2 */ [ 4, 5, 16, 8,0],\r\n\t/* 3 */ [ 4, 6, 16, 16,0],\r\n\r\n\t/* 4 */ [ 4, 10, 16, 32,0], /* lazy matches */\r\n\t/* 5 */ [ 8, 16, 32, 32,0],\r\n\t/* 6 */ [ 8, 16, 128, 128,0],\r\n\t/* 7 */ [ 8, 32, 128, 256,0],\r\n\t/* 8 */ [32, 128, 258, 1024,1],\r\n\t/* 9 */ [32, 258, 258, 4096,1]]; /* max compression */\r\n\t\r\n\tvar opt = opts[lvl];\r\n\t\r\n\t\r\n\tvar U = UZIP.F.U, goodIndex = UZIP.F._goodIndex, hash = UZIP.F._hash, putsE = UZIP.F._putsE;\r\n\tvar i = 0, pos = opos<<3, cvrd = 0, dlen = data.length;\r\n\t\r\n\tif(lvl==0) {\r\n\t\twhile(i<dlen) { var len = Math.min(0xffff, dlen-i);\r\n\t\t\tputsE(out, pos, (i+len==dlen ? 1 : 0)); pos = UZIP.F._copyExact(data, i, len, out, pos+8); i += len; }\r\n\t\treturn pos>>>3;\r\n\t}\r\n\r\n\tvar lits = U.lits, strt=U.strt, prev=U.prev, li=0, lc=0, bs=0, ebits=0, c=0, nc=0; // last_item, literal_count, block_start\r\n\tif(dlen>2) { nc=UZIP.F._hash(data,0); strt[nc]=0; }\r\n\tvar nmch=0,nmci=0;\r\n\t\r\n\tfor(i=0; i<dlen; i++) {\r\n\t\tc = nc;\r\n\t\t//*\r\n\t\tif(i+1<dlen-2) {\r\n\t\t\tnc = UZIP.F._hash(data, i+1);\r\n\t\t\tvar ii = ((i+1)&0x7fff);\r\n\t\t\tprev[ii]=strt[nc];\r\n\t\t\tstrt[nc]=ii;\r\n\t\t} //*/\r\n\t\tif(cvrd<=i) {\r\n\t\t\tif((li>14000 || lc>26697) && (dlen-i)>100) {\r\n\t\t\t\tif(cvrd<i) { lits[li]=i-cvrd; li+=2; cvrd=i; }\r\n\t\t\t\tpos = UZIP.F._writeBlock(((i==dlen-1) || (cvrd==dlen))?1:0, lits, li, ebits, data,bs,i-bs, out, pos); li=lc=ebits=0; bs=i;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvar mch = 0;\r\n\t\t\t//if(nmci==i) mch= nmch; else \r\n\t\t\tif(i<dlen-2) mch = UZIP.F._bestMatch(data, i, prev, c, Math.min(opt[2],dlen-i), opt[3]);\r\n\t\t\t/*\r\n\t\t\tif(mch!=0 && opt[4]==1 && (mch>>>16)<opt[1] && i+1<dlen-2) {\r\n\t\t\t\tnmch = UZIP.F._bestMatch(data, i+1, prev, nc, opt[2], opt[3]); nmci=i+1;\r\n\t\t\t\t//var mch2 = UZIP.F._bestMatch(data, i+2, prev, nnc); //nmci=i+1;\r\n\t\t\t\tif((nmch>>>16)>(mch>>>16)) mch=0;\r\n\t\t\t}//*/\r\n\t\t\tvar len = mch>>>16, dst = mch&0xffff; //if(i-dst<0) throw \"e\";\r\n\t\t\tif(mch!=0) { \r\n\t\t\t\tvar len = mch>>>16, dst = mch&0xffff; //if(i-dst<0) throw \"e\";\r\n\t\t\t\tvar lgi = goodIndex(len, U.of0); U.lhst[257+lgi]++; \r\n\t\t\t\tvar dgi = goodIndex(dst, U.df0); U.dhst[ dgi]++; ebits += U.exb[lgi] + U.dxb[dgi]; \r\n\t\t\t\tlits[li] = (len<<23)|(i-cvrd); lits[li+1] = (dst<<16)|(lgi<<8)|dgi; li+=2;\r\n\t\t\t\tcvrd = i + len; \r\n\t\t\t}\r\n\t\t\telse {\tU.lhst[data[i]]++; }\r\n\t\t\tlc++;\r\n\t\t}\r\n\t}\r\n\tif(bs!=i || data.length==0) {\r\n\t\tif(cvrd<i) { lits[li]=i-cvrd; li+=2; cvrd=i; }\r\n\t\tpos = UZIP.F._writeBlock(1, lits, li, ebits, data,bs,i-bs, out, pos); li=0; lc=0; li=lc=ebits=0; bs=i;\r\n\t}\r\n\twhile((pos&7)!=0) pos++;\r\n\treturn pos>>>3;\r\n}\r\nUZIP.F._bestMatch = function(data, i, prev, c, nice, chain) {\r\n\tvar ci = (i&0x7fff), pi=prev[ci]; \r\n\t//console.log(\"----\", i);\r\n\tvar dif = ((ci-pi + (1<<15)) & 0x7fff); if(pi==ci || c!=UZIP.F._hash(data,i-dif)) return 0;\r\n\tvar tl=0, td=0; // top length, top distance\r\n\tvar dlim = Math.min(0x7fff, i);\r\n\twhile(dif<=dlim && --chain!=0 && pi!=ci /*&& c==UZIP.F._hash(data,i-dif)*/) {\r\n\t\tif(tl==0 || (data[i+tl]==data[i+tl-dif])) {\r\n\t\t\tvar cl = UZIP.F._howLong(data, i, dif);\r\n\t\t\tif(cl>tl) { \r\n\t\t\t\ttl=cl; td=dif; if(tl>=nice) break; //* \r\n\t\t\t\tif(dif+2<cl) cl = dif+2;\r\n\t\t\t\tvar maxd = 0; // pi does not point to the start of the word\r\n\t\t\t\tfor(var j=0; j<cl-2; j++) {\r\n\t\t\t\t\tvar ei = (i-dif+j+ (1<<15)) & 0x7fff;\r\n\t\t\t\t\tvar li = prev[ei];\r\n\t\t\t\t\tvar curd = (ei-li + (1<<15)) & 0x7fff;\r\n\t\t\t\t\tif(curd>maxd) { maxd=curd; pi = ei; }\r\n\t\t\t\t} //*/\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tci=pi; pi = prev[ci];\r\n\t\tdif += ((ci-pi + (1<<15)) & 0x7fff);\r\n\t}\r\n\treturn (tl<<16)|td;\r\n}\r\nUZIP.F._howLong = function(data, i, dif) {\r\n\tif(data[i]!=data[i-dif] || data[i+1]!=data[i+1-dif] || data[i+2]!=data[i+2-dif]) return 0;\r\n\tvar oi=i, l = Math.min(data.length, i+258); i+=3;\r\n\t//while(i+4<l && data[i]==data[i-dif] && data[i+1]==data[i+1-dif] && data[i+2]==data[i+2-dif] && data[i+3]==data[i+3-dif]) i+=4;\r\n\twhile(i<l && data[i]==data[i-dif]) i++;\r\n\treturn i-oi;\r\n}\r\nUZIP.F._hash = function(data, i) {\r\n\treturn (((data[i]<<8) | data[i+1])+(data[i+2]<<4))&0xffff;\r\n\t//var hash_shift = 0, hash_mask = 255;\r\n\t//var h = data[i+1] % 251;\r\n\t//h = (((h << 8) + data[i+2]) % 251);\r\n\t//h = (((h << 8) + data[i+2]) % 251);\r\n\t//h = ((h<<hash_shift) ^ (c) ) & hash_mask;\r\n\t//return h | (data[i]<<8);\r\n\t//return (data[i] | (data[i+1]<<8));\r\n}\r\n//UZIP.___toth = 0;\r\nUZIP.saved = 0;\r\nUZIP.F._writeBlock = function(BFINAL, lits, li, ebits, data,o0,l0, out, pos) {\r\n\tvar U = UZIP.F.U, putsF = UZIP.F._putsF, putsE = UZIP.F._putsE;\r\n\t\r\n\t//*\r\n\tvar T, ML, MD, MH, numl, numd, numh, lset, dset; U.lhst[256]++;\r\n\tT = UZIP.F.getTrees(); ML=T[0]; MD=T[1]; MH=T[2]; numl=T[3]; numd=T[4]; numh=T[5]; lset=T[6]; dset=T[7];\r\n\t\r\n\tvar cstSize = (((pos+3)&7)==0 ? 0 : 8-((pos+3)&7)) + 32 + (l0<<3);\r\n\tvar fxdSize = ebits + UZIP.F.contSize(U.fltree, U.lhst) + UZIP.F.contSize(U.fdtree, U.dhst);\r\n\tvar dynSize = ebits + UZIP.F.contSize(U.ltree , U.lhst) + UZIP.F.contSize(U.dtree , U.dhst);\r\n\tdynSize += 14 + 3*numh + UZIP.F.contSize(U.itree, U.ihst) + (U.ihst[16]*2 + U.ihst[17]*3 + U.ihst[18]*7);\r\n\t\r\n\tfor(var j=0; j<286; j++) U.lhst[j]=0; for(var j=0; j<30; j++) U.dhst[j]=0; for(var j=0; j<19; j++) U.ihst[j]=0;\r\n\t//*/\r\n\tvar BTYPE = (cstSize<fxdSize && cstSize<dynSize) ? 0 : ( fxdSize<dynSize ? 1 : 2 );\r\n\tputsF(out, pos, BFINAL); putsF(out, pos+1, BTYPE); pos+=3;\r\n\t\r\n\tvar opos = pos;\r\n\tif(BTYPE==0) {\r\n\t\twhile((pos&7)!=0) pos++;\r\n\t\tpos = UZIP.F._copyExact(data, o0, l0, out, pos);\r\n\t}\r\n\telse {\r\n\t\tvar ltree, dtree;\r\n\t\tif(BTYPE==1) { ltree=U.fltree; dtree=U.fdtree; }\r\n\t\tif(BTYPE==2) {\t\r\n\t\t\tUZIP.F.makeCodes(U.ltree, ML); UZIP.F.revCodes(U.ltree, ML);\r\n\t\t\tUZIP.F.makeCodes(U.dtree, MD); UZIP.F.revCodes(U.dtree, MD);\r\n\t\t\tUZIP.F.makeCodes(U.itree, MH); UZIP.F.revCodes(U.itree, MH);\r\n\t\t\t\r\n\t\t\tltree = U.ltree; dtree = U.dtree;\r\n\t\t\t\r\n\t\t\tputsE(out, pos,numl-257); pos+=5; // 286\r\n\t\t\tputsE(out, pos,numd- 1); pos+=5; // 30\r\n\t\t\tputsE(out, pos,numh- 4); pos+=4; // 19\r\n\t\t\t\r\n\t\t\tfor(var i=0; i<numh; i++) putsE(out, pos+i*3, U.itree[(U.ordr[i]<<1)+1]); pos+=3* numh;\r\n\t\t\tpos = UZIP.F._codeTiny(lset, U.itree, out, pos);\r\n\t\t\tpos = UZIP.F._codeTiny(dset, U.itree, out, pos);\r\n\t\t}\r\n\t\t\r\n\t\tvar off=o0;\r\n\t\tfor(var si=0; si<li; si+=2) {\r\n\t\t\tvar qb=lits[si], len=(qb>>>23), end = off+(qb&((1<<23)-1));\r\n\t\t\twhile(off<end) pos = UZIP.F._writeLit(data[off++], ltree, out, pos);\r\n\t\t\t\r\n\t\t\tif(len!=0) {\r\n\t\t\t\tvar qc = lits[si+1], dst=(qc>>16), lgi=(qc>>8)&255, dgi=(qc&255);\r\n\t\t\t\tpos = UZIP.F._writeLit(257+lgi, ltree, out, pos);\r\n\t\t\t\tputsE(out, pos, len-U.of0[lgi]); pos+=U.exb[lgi];\r\n\t\t\t\t\r\n\t\t\t\tpos = UZIP.F._writeLit(dgi, dtree, out, pos);\r\n\t\t\t\tputsF(out, pos, dst-U.df0[dgi]); pos+=U.dxb[dgi]; off+=len;\r\n\t\t\t}\r\n\t\t}\r\n\t\tpos = UZIP.F._writeLit(256, ltree, out, pos);\r\n\t}\r\n\t//console.log(pos-opos, fxdSize, dynSize, cstSize);\r\n\treturn pos;\r\n}\r\nUZIP.F._copyExact = function(data,off,len,out,pos) {\r\n\tvar p8 = (pos>>>3);\r\n\tout[p8]=(len); out[p8+1]=(len>>>8); out[p8+2]=255-out[p8]; out[p8+3]=255-out[p8+1]; p8+=4;\r\n\tout.set(new Uint8Array(data.buffer, off, len), p8);\r\n\t//for(var i=0; i<len; i++) out[p8+i]=data[off+i];\r\n\treturn pos + ((len+4)<<3);\r\n}\r\n/*\r\n\tInteresting facts:\r\n\t- decompressed block can have bytes, which do not occur in a Huffman tree (copied from the previous block by reference)\r\n*/\r\n\r\nUZIP.F.getTrees = function() {\r\n\tvar U = UZIP.F.U;\r\n\tvar ML = UZIP.F._hufTree(U.lhst, U.ltree, 15);\r\n\tvar MD = UZIP.F._hufTree(U.dhst, U.dtree, 15);\r\n\tvar lset = [], numl = UZIP.F._lenCodes(U.ltree, lset);\r\n\tvar dset = [], numd = UZIP.F._lenCodes(U.dtree, dset);\r\n\tfor(var i=0; i<lset.length; i+=2) U.ihst[lset[i]]++;\r\n\tfor(var i=0; i<dset.length; i+=2) U.ihst[dset[i]]++;\r\n\tvar MH = UZIP.F._hufTree(U.ihst, U.itree, 7);\r\n\tvar numh = 19; while(numh>4 && U.itree[(U.ordr[numh-1]<<1)+1]==0) numh--;\r\n\treturn [ML, MD, MH, numl, numd, numh, lset, dset];\r\n}\r\nUZIP.F.getSecond= function(a) { var b=[]; for(var i=0; i<a.length; i+=2) b.push (a[i+1]); return b; }\r\nUZIP.F.nonZero = function(a) { var b= \"\"; for(var i=0; i<a.length; i+=2) if(a[i+1]!=0)b+=(i>>1)+\",\"; return b; }\r\nUZIP.F.contSize = function(tree, hst) { var s=0; for(var i=0; i<hst.length; i++) s+= hst[i]*tree[(i<<1)+1]; return s; }\r\nUZIP.F._codeTiny = function(set, tree, out, pos) {\r\n\tfor(var i=0; i<set.length; i+=2) {\r\n\t\tvar l = set[i], rst = set[i+1]; //console.log(l, pos, tree[(l<<1)+1]);\r\n\t\tpos = UZIP.F._writeLit(l, tree, out, pos);\r\n\t\tvar rsl = l==16 ? 2 : (l==17 ? 3 : 7);\r\n\t\tif(l>15) { UZIP.F._putsE(out, pos, rst, rsl); pos+=rsl; }\r\n\t}\r\n\treturn pos;\r\n}\r\nUZIP.F._lenCodes = function(tree, set) {\r\n\tvar len=tree.length; while(len!=2 && tree[len-1]==0) len-=2; // when no distances, keep one code with length 0\r\n\tfor(var i=0; i<len; i+=2) {\r\n\t\tvar l = tree[i+1], nxt = (i+3<len ? tree[i+3]:-1), nnxt = (i+5<len ? tree[i+5]:-1), prv = (i==0 ? -1 : tree[i-1]);\r\n\t\tif(l==0 && nxt==l && nnxt==l) {\r\n\t\t\tvar lz = i+5;\r\n\t\t\twhile(lz+2<len && tree[lz+2]==l) lz+=2;\r\n\t\t\tvar zc = Math.min((lz+1-i)>>>1, 138);\r\n\t\t\tif(zc<11) set.push(17, zc-3);\r\n\t\t\telse set.push(18, zc-11);\r\n\t\t\ti += zc*2-2;\r\n\t\t}\r\n\t\telse if(l==prv && nxt==l && nnxt==l) {\r\n\t\t\tvar lz = i+5;\r\n\t\t\twhile(lz+2<len && tree[lz+2]==l) lz+=2;\r\n\t\t\tvar zc = Math.min((lz+1-i)>>>1, 6);\r\n\t\t\tset.push(16, zc-3);\r\n\t\t\ti += zc*2-2;\r\n\t\t}\r\n\t\telse set.push(l, 0);\r\n\t}\r\n\treturn len>>>1;\r\n}\r\nUZIP.F._hufTree = function(hst, tree, MAXL) {\r\n\tvar list=[], hl = hst.length, tl=tree.length, i=0;\r\n\tfor(i=0; i<tl; i+=2) { tree[i]=0; tree[i+1]=0; }\t\r\n\tfor(i=0; i<hl; i++) if(hst[i]!=0) list.push({lit:i, f:hst[i]});\r\n\tvar end = list.length, l2=list.slice(0);\r\n\tif(end==0) return 0; // empty histogram (usually for dist)\r\n\tif(end==1) { var lit=list[0].lit, l2=lit==0?1:0; tree[(lit<<1)+1]=1; tree[(l2<<1)+1]=1; return 1; }\r\n\tlist.sort(function(a,b){return a.f-b.f;});\r\n\tvar a=list[0], b=list[1], i0=0, i1=1, i2=2; list[0]={lit:-1,f:a.f+b.f,l:a,r:b,d:0};\r\n\twhile(i1!=end-1) {\r\n\t\tif(i0!=i1 && (i2==end || list[i0].f<list[i2].f)) { a=list[i0++]; } else { a=list[i2++]; }\r\n\t\tif(i0!=i1 && (i2==end || list[i0].f<list[i2].f)) { b=list[i0++]; } else { b=list[i2++]; }\r\n\t\tlist[i1++]={lit:-1,f:a.f+b.f, l:a,r:b};\r\n\t}\r\n\tvar maxl = UZIP.F.setDepth(list[i1-1], 0);\r\n\tif(maxl>MAXL) { UZIP.F.restrictDepth(l2, MAXL, maxl); maxl = MAXL; }\r\n\tfor(i=0; i<end; i++) tree[(l2[i].lit<<1)+1]=l2[i].d;\r\n\treturn maxl;\r\n}\r\n\r\nUZIP.F.setDepth = function(t, d) {\r\n\tif(t.lit!=-1) { t.d=d; return d; }\r\n\treturn Math.max( UZIP.F.setDepth(t.l, d+1), UZIP.F.setDepth(t.r, d+1) );\r\n}\r\n\r\nUZIP.F.restrictDepth = function(dps, MD, maxl) {\r\n\tvar i=0, bCost=1<<(maxl-MD), dbt=0;\r\n\tdps.sort(function(a,b){return b.d==a.d ? a.f-b.f : b.d-a.d;});\r\n\t\r\n\tfor(i=0; i<dps.length; i++) if(dps[i].d>MD) { var od=dps[i].d; dps[i].d=MD; dbt+=bCost-(1<<(maxl-od)); } else break;\r\n\tdbt = dbt>>>(maxl-MD);\r\n\twhile(dbt>0) { var od=dps[i].d; if(od<MD) { dps[i].d++; dbt-=(1<<(MD-od-1)); } else i++; }\r\n\tfor(; i>=0; i--) if(dps[i].d==MD && dbt<0) { dps[i].d--; dbt++; } if(dbt!=0) console.log(\"debt left\");\r\n}\r\n\r\nUZIP.F._goodIndex = function(v, arr) {\r\n\tvar i=0; if(arr[i|16]<=v) i|=16; if(arr[i|8]<=v) i|=8; if(arr[i|4]<=v) i|=4; if(arr[i|2]<=v) i|=2; if(arr[i|1]<=v) i|=1; return i;\r\n}\r\nUZIP.F._writeLit = function(ch, ltree, out, pos) {\r\n\tUZIP.F._putsF(out, pos, ltree[ch<<1]);\r\n\treturn pos+ltree[(ch<<1)+1];\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nUZIP.F.inflate = function(data, buf) {\r\n\tvar u8=Uint8Array;\r\n\tif(data[0]==3 && data[1]==0) return (buf ? buf : new u8(0));\r\n\tvar F=UZIP.F, bitsF = F._bitsF, bitsE = F._bitsE, decodeTiny = F._decodeTiny, makeCodes = F.makeCodes, codes2map=F.codes2map, get17 = F._get17;\r\n\tvar U = F.U;\r\n\t\r\n\tvar noBuf = (buf==null);\r\n\tif(noBuf) buf = new u8((data.length>>>2)<<3);\r\n\t\r\n\tvar BFINAL=0, BTYPE=0, HLIT=0, HDIST=0, HCLEN=0, ML=0, MD=0; \t\r\n\tvar off = 0, pos = 0;\r\n\tvar lmap, dmap;\r\n\t\r\n\twhile(BFINAL==0) {\t\t\r\n\t\tBFINAL = bitsF(data, pos , 1);\r\n\t\tBTYPE = bitsF(data, pos+1, 2); pos+=3;\r\n\t\t//console.log(BFINAL, BTYPE);\r\n\t\t\r\n\t\tif(BTYPE==0) {\r\n\t\t\tif((pos&7)!=0) pos+=8-(pos&7);\r\n\t\t\tvar p8 = (pos>>>3)+4, len = data[p8-4]|(data[p8-3]<<8); //console.log(len);//bitsF(data, pos, 16), \r\n\t\t\tif(noBuf) buf=UZIP.F._check(buf, off+len);\r\n\t\t\tbuf.set(new u8(data.buffer, data.byteOffset+p8, len), off);\r\n\t\t\t//for(var i=0; i<len; i++) buf[off+i] = data[p8+i];\r\n\t\t\t//for(var i=0; i<len; i++) if(buf[off+i] != data[p8+i]) throw \"e\";\r\n\t\t\tpos = ((p8+len)<<3); off+=len; continue;\r\n\t\t}\r\n\t\tif(noBuf) buf=UZIP.F._check(buf, off+(1<<17)); // really not enough in many cases (but PNG and ZIP provide buffer in advance)\r\n\t\tif(BTYPE==1) { lmap = U.flmap; dmap = U.fdmap; ML = (1<<9)-1; MD = (1<<5)-1; }\r\n\t\tif(BTYPE==2) {\r\n\t\t\tHLIT = bitsE(data, pos , 5)+257; \r\n\t\t\tHDIST = bitsE(data, pos+ 5, 5)+ 1; \r\n\t\t\tHCLEN = bitsE(data, pos+10, 4)+ 4; pos+=14;\r\n\t\t\t\r\n\t\t\tvar ppos = pos;\r\n\t\t\tfor(var i=0; i<38; i+=2) { U.itree[i]=0; U.itree[i+1]=0; }\r\n\t\t\tvar tl = 1;\r\n\t\t\tfor(var i=0; i<HCLEN; i++) { var l=bitsE(data, pos+i*3, 3); U.itree[(U.ordr[i]<<1)+1] = l; if(l>tl)tl=l; } pos+=3*HCLEN; //console.log(itree);\r\n\t\t\tmakeCodes(U.itree, tl);\r\n\t\t\tcodes2map(U.itree, tl, U.imap);\r\n\t\t\t\r\n\t\t\tlmap = U.lmap; dmap = U.dmap;\r\n\t\t\t\r\n\t\t\tpos = decodeTiny(U.imap, (1<<tl)-1, HLIT+HDIST, data, pos, U.ttree);\r\n\t\t\tvar mx0 = F._copyOut(U.ttree, 0, HLIT , U.ltree); ML = (1<<mx0)-1;\r\n\t\t\tvar mx1 = F._copyOut(U.ttree, HLIT, HDIST, U.dtree); MD = (1<<mx1)-1;\r\n\t\t\t\r\n\t\t\t//var ml = decodeTiny(U.imap, (1<<tl)-1, HLIT , data, pos, U.ltree); ML = (1<<(ml>>>24))-1; pos+=(ml&0xffffff);\r\n\t\t\tmakeCodes(U.ltree, mx0);\r\n\t\t\tcodes2map(U.ltree, mx0, lmap);\r\n\t\t\t\r\n\t\t\t//var md = decodeTiny(U.imap, (1<<tl)-1, HDIST, data, pos, U.dtree); MD = (1<<(md>>>24))-1; pos+=(md&0xffffff);\r\n\t\t\tmakeCodes(U.dtree, mx1);\r\n\t\t\tcodes2map(U.dtree, mx1, dmap);\r\n\t\t}\r\n\t\t//var ooff=off, opos=pos;\r\n\t\twhile(true) {\r\n\t\t\tvar code = lmap[get17(data, pos) & ML]; pos += code&15;\r\n\t\t\tvar lit = code>>>4; //U.lhst[lit]++; \r\n\t\t\tif((lit>>>8)==0) { buf[off++] = lit; }\r\n\t\t\telse if(lit==256) { break; }\r\n\t\t\telse {\r\n\t\t\t\tvar end = off+lit-254;\r\n\t\t\t\tif(lit>264) { var ebs = U.ldef[lit-257]; end = off + (ebs>>>3) + bitsE(data, pos, ebs&7); pos += ebs&7; }\r\n\t\t\t\t//UZIP.F.dst[end-off]++;\r\n\t\t\t\t\r\n\t\t\t\tvar dcode = dmap[get17(data, pos) & MD]; pos += dcode&15;\r\n\t\t\t\tvar dlit = dcode>>>4;\r\n\t\t\t\tvar dbs = U.ddef[dlit], dst = (dbs>>>4) + bitsF(data, pos, dbs&15); pos += dbs&15;\r\n\t\t\t\t\r\n\t\t\t\t//var o0 = off-dst, stp = Math.min(end-off, dst);\r\n\t\t\t\t//if(stp>20) while(off<end) { buf.copyWithin(off, o0, o0+stp); off+=stp; } else\r\n\t\t\t\t//if(end-dst<=off) buf.copyWithin(off, off-dst, end-dst); else\r\n\t\t\t\t//if(dst==1) buf.fill(buf[off-1], off, end); else\r\n\t\t\t\tif(noBuf) buf=UZIP.F._check(buf, off+(1<<17));\r\n\t\t\t\twhile(off<end) { buf[off]=buf[off++-dst]; buf[off]=buf[off++-dst]; buf[off]=buf[off++-dst]; buf[off]=buf[off++-dst]; } \r\n\t\t\t\toff=end;\r\n\t\t\t\t//while(off!=end) { buf[off]=buf[off++-dst]; }\r\n\t\t\t}\r\n\t\t}\r\n\t\t//console.log(off-ooff, (pos-opos)>>>3);\r\n\t}\r\n\t//console.log(UZIP.F.dst);\r\n\t//console.log(tlen, dlen, off-tlen+tcnt);\r\n\treturn buf.length==off ? buf : buf.slice(0,off);\r\n}\r\nUZIP.F._check=function(buf, len) {\r\n\tvar bl=buf.length; if(len<=bl) return buf;\r\n\tvar nbuf = new Uint8Array(Math.max(bl<<1,len)); nbuf.set(buf,0);\r\n\t//for(var i=0; i<bl; i+=4) { nbuf[i]=buf[i]; nbuf[i+1]=buf[i+1]; nbuf[i+2]=buf[i+2]; nbuf[i+3]=buf[i+3]; }\r\n\treturn nbuf;\r\n}\r\n\r\nUZIP.F._decodeTiny = function(lmap, LL, len, data, pos, tree) {\r\n\tvar bitsE = UZIP.F._bitsE, get17 = UZIP.F._get17;\r\n\tvar i = 0;\r\n\twhile(i<len) {\r\n\t\tvar code = lmap[get17(data, pos)&LL]; pos+=code&15;\r\n\t\tvar lit = code>>>4; \r\n\t\tif(lit<=15) { tree[i]=lit; i++; }\r\n\t\telse {\r\n\t\t\tvar ll = 0, n = 0;\r\n\t\t\tif(lit==16) {\r\n\t\t\t\tn = (3 + bitsE(data, pos, 2)); pos += 2; ll = tree[i-1];\r\n\t\t\t}\r\n\t\t\telse if(lit==17) {\r\n\t\t\t\tn = (3 + bitsE(data, pos, 3)); pos += 3;\r\n\t\t\t}\r\n\t\t\telse if(lit==18) {\r\n\t\t\t\tn = (11 + bitsE(data, pos, 7)); pos += 7;\r\n\t\t\t}\r\n\t\t\tvar ni = i+n;\r\n\t\t\twhile(i<ni) { tree[i]=ll; i++; }\r\n\t\t}\r\n\t}\r\n\treturn pos;\r\n}\r\nUZIP.F._copyOut = function(src, off, len, tree) {\r\n\tvar mx=0, i=0, tl=tree.length>>>1;\r\n\twhile(i<len) { var v=src[i+off]; tree[(i<<1)]=0; tree[(i<<1)+1]=v; if(v>mx)mx=v; i++; }\r\n\twhile(i<tl ) { tree[(i<<1)]=0; tree[(i<<1)+1]=0; i++; }\r\n\treturn mx;\r\n}\r\n\r\nUZIP.F.makeCodes = function(tree, MAX_BITS) { // code, length\r\n\tvar U = UZIP.F.U;\r\n\tvar max_code = tree.length;\r\n\tvar code, bits, n, i, len;\r\n\t\r\n\tvar bl_count = U.bl_count; for(var i=0; i<=MAX_BITS; i++) bl_count[i]=0;\r\n\tfor(i=1; i<max_code; i+=2) bl_count[tree[i]]++;\r\n\t\r\n\tvar next_code = U.next_code;\t// smallest code for each length\r\n\t\r\n\tcode = 0;\r\n\tbl_count[0] = 0;\r\n\tfor (bits = 1; bits <= MAX_BITS; bits++) {\r\n\t\tcode = (code + bl_count[bits-1]) << 1;\r\n\t\tnext_code[bits] = code;\r\n\t}\r\n\t\r\n\tfor (n = 0; n < max_code; n+=2) {\r\n\t\tlen = tree[n+1];\r\n\t\tif (len != 0) {\r\n\t\t\ttree[n] = next_code[len];\r\n\t\t\tnext_code[len]++;\r\n\t\t}\r\n\t}\r\n}\r\nUZIP.F.codes2map = function(tree, MAX_BITS, map) {\r\n\tvar max_code = tree.length;\r\n\tvar U=UZIP.F.U, r15 = U.rev15;\r\n\tfor(var i=0; i<max_code; i+=2) if(tree[i+1]!=0) {\r\n\t\tvar lit = i>>1;\r\n\t\tvar cl = tree[i+1], val = (lit<<4)|cl; // : (0x8000 | (U.of0[lit-257]<<7) | (U.exb[lit-257]<<4) | cl);\r\n\t\tvar rest = (MAX_BITS-cl), i0 = tree[i]<<rest, i1 = i0 + (1<<rest);\r\n\t\t//tree[i]=r15[i0]>>>(15-MAX_BITS);\r\n\t\twhile(i0!=i1) {\r\n\t\t\tvar p0 = r15[i0]>>>(15-MAX_BITS);\r\n\t\t\tmap[p0]=val; i0++;\r\n\t\t}\r\n\t}\r\n}\r\nUZIP.F.revCodes = function(tree, MAX_BITS) {\r\n\tvar r15 = UZIP.F.U.rev15, imb = 15-MAX_BITS;\r\n\tfor(var i=0; i<tree.length; i+=2) { var i0 = (tree[i]<<(MAX_BITS-tree[i+1])); tree[i] = r15[i0]>>>imb; }\r\n}\r\n\r\n// used only in deflate\r\nUZIP.F._putsE= function(dt, pos, val ) { val = val<<(pos&7); var o=(pos>>>3); dt[o]|=val; dt[o+1]|=(val>>>8); }\r\nUZIP.F._putsF= function(dt, pos, val ) { val = val<<(pos&7); var o=(pos>>>3); dt[o]|=val; dt[o+1]|=(val>>>8); dt[o+2]|=(val>>>16); }\r\n\r\nUZIP.F._bitsE= function(dt, pos, length) { return ((dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) )>>>(pos&7))&((1<<length)-1); }\r\nUZIP.F._bitsF= function(dt, pos, length) { return ((dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16))>>>(pos&7))&((1<<length)-1); }\r\n/*\r\nUZIP.F._get9 = function(dt, pos) {\r\n\treturn ((dt[pos>>>3] | (dt[(pos>>>3)+1]<<8))>>>(pos&7))&511;\r\n} */\r\nUZIP.F._get17= function(dt, pos) {\t// return at least 17 meaningful bytes\r\n\treturn (dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16) )>>>(pos&7);\r\n}\r\nUZIP.F._get25= function(dt, pos) {\t// return at least 17 meaningful bytes\r\n\treturn (dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16) | (dt[(pos>>>3)+3]<<24) )>>>(pos&7);\r\n}\r\nUZIP.F.U = function(){\r\n\tvar u16=Uint16Array, u32=Uint32Array;\r\n\treturn {\r\n\t\tnext_code : new u16(16),\r\n\t\tbl_count : new u16(16),\r\n\t\tordr : [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ],\r\n\t\tof0 : [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,999,999,999],\r\n\t\texb : [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, 0],\r\n\t\tldef : new u16(32),\r\n\t\tdf0 : [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, 65535, 65535],\r\n\t\tdxb : [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, 0, 0],\r\n\t\tddef : new u32(32),\r\n\t\tflmap: new u16( 512), fltree: [],\r\n\t\tfdmap: new u16( 32), fdtree: [],\r\n\t\tlmap : new u16(32768), ltree : [], ttree:[],\r\n\t\tdmap : new u16(32768), dtree : [],\r\n\t\timap : new u16( 512), itree : [],\r\n\t\t//rev9 : new u16( 512)\r\n\t\trev15: new u16(1<<15),\r\n\t\tlhst : new u32(286), dhst : new u32( 30), ihst : new u32(19),\r\n\t\tlits : new u32(15000),\r\n\t\tstrt : new u16(1<<16),\r\n\t\tprev : new u16(1<<15)\r\n\t}; \r\n} ();\r\n\r\n(function(){\t\r\n\tvar U = UZIP.F.U;\r\n\tvar len = 1<<15;\r\n\tfor(var i=0; i<len; i++) {\r\n\t\tvar x = i;\r\n\t\tx = (((x & 0xaaaaaaaa) >>> 1) | ((x & 0x55555555) << 1));\r\n\t\tx = (((x & 0xcccccccc) >>> 2) | ((x & 0x33333333) << 2));\r\n\t\tx = (((x & 0xf0f0f0f0) >>> 4) | ((x & 0x0f0f0f0f) << 4));\r\n\t\tx = (((x & 0xff00ff00) >>> 8) | ((x & 0x00ff00ff) << 8));\r\n\t\tU.rev15[i] = (((x >>> 16) | (x << 16)))>>>17;\r\n\t}\r\n\t\r\n\tfunction pushV(tgt, n, sv) { while(n--!=0) tgt.push(0,sv); }\r\n\t\r\n\tfor(var i=0; i<32; i++) { U.ldef[i]=(U.of0[i]<<3)|U.exb[i]; U.ddef[i]=(U.df0[i]<<4)|U.dxb[i]; }\r\n\t\r\n\tpushV(U.fltree, 144, 8); pushV(U.fltree, 255-143, 9); pushV(U.fltree, 279-255, 7); pushV(U.fltree,287-279,8);\r\n\t/*\r\n\tvar i = 0;\r\n\tfor(; i<=143; i++) U.fltree.push(0,8);\r\n\tfor(; i<=255; i++) U.fltree.push(0,9);\r\n\tfor(; i<=279; i++) U.fltree.push(0,7);\r\n\tfor(; i<=287; i++) U.fltree.push(0,8);\r\n\t*/\r\n\tUZIP.F.makeCodes(U.fltree, 9);\r\n\tUZIP.F.codes2map(U.fltree, 9, U.flmap);\r\n\tUZIP.F.revCodes (U.fltree, 9)\r\n\t\r\n\tpushV(U.fdtree,32,5);\r\n\t//for(i=0;i<32; i++) U.fdtree.push(0,5);\r\n\tUZIP.F.makeCodes(U.fdtree, 5);\r\n\tUZIP.F.codes2map(U.fdtree, 5, U.fdmap);\r\n\tUZIP.F.revCodes (U.fdtree, 5)\r\n\t\r\n\tpushV(U.itree,19,0); pushV(U.ltree,286,0); pushV(U.dtree,30,0); pushV(U.ttree,320,0);\r\n\t/*\r\n\tfor(var i=0; i< 19; i++) U.itree.push(0,0);\r\n\tfor(var i=0; i<286; i++) U.ltree.push(0,0);\r\n\tfor(var i=0; i< 30; i++) U.dtree.push(0,0);\r\n\tfor(var i=0; i<320; i++) U.ttree.push(0,0);\r\n\t*/\r\n})()\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","// https://github.com/photopea/UPNG.js/blob/f6e5f93da01094b1ffb3cef364abce4d9e758cbf/UPNG.js\n\n// import * as pako from 'pako'\nimport * as UZIP from 'uzip';\n\nconst UPNG = (function () {\n var _bin = {\n nextZero(data, p) { while (data[p] != 0) p++; return p; },\n readUshort(buff, p) { return (buff[p] << 8) | buff[p + 1]; },\n writeUshort(buff, p, n) { buff[p] = (n >> 8) & 255; buff[p + 1] = n & 255; },\n readUint(buff, p) { return (buff[p] * (256 * 256 * 256)) + ((buff[p + 1] << 16) | (buff[p + 2] << 8) | buff[p + 3]); },\n writeUint(buff, p, n) { buff[p] = (n >> 24) & 255; buff[p + 1] = (n >> 16) & 255; buff[p + 2] = (n >> 8) & 255; buff[p + 3] = n & 255; },\n readASCII(buff, p, l) { let s = ''; for (let i = 0; i < l; i++) s += String.fromCharCode(buff[p + i]); return s; },\n writeASCII(data, p, s) { for (let i = 0; i < s.length; i++) data[p + i] = s.charCodeAt(i); },\n readBytes(buff, p, l) { const arr = []; for (let i = 0; i < l; i++) arr.push(buff[p + i]); return arr; },\n pad(n) { return n.length < 2 ? `0${n}` : n; },\n readUTF8(buff, p, l) {\n let s = '';\n let ns;\n for (let i = 0; i < l; i++) s += `%${_bin.pad(buff[p + i].toString(16))}`;\n try { ns = decodeURIComponent(s); } catch (e) { return _bin.readASCII(buff, p, l); }\n return ns;\n },\n };\n\n function toRGBA8(out) {\n const w = out.width; const\n h = out.height;\n if (out.tabs.acTL == null) return [decodeImage(out.data, w, h, out).buffer];\n\n const frms = [];\n if (out.frames[0].data == null) out.frames[0].data = out.data;\n\n const len = w * h * 4; const img = new Uint8Array(len); const empty = new Uint8Array(len); const\n prev = new Uint8Array(len);\n for (let i = 0; i < out.frames.length; i++) {\n const frm = out.frames[i];\n const fx = frm.rect.x; const fy = frm.rect.y; const fw = frm.rect.width; const\n fh = frm.rect.height;\n const fdata = decodeImage(frm.data, fw, fh, out);\n\n if (i != 0) for (var j = 0; j < len; j++) prev[j] = img[j];\n\n if (frm.blend == 0) _copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);\n else if (frm.blend == 1) _copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);\n\n frms.push(img.buffer.slice(0));\n\n if (frm.dispose == 0) {} else if (frm.dispose == 1) _copyTile(empty, fw, fh, img, w, h, fx, fy, 0);\n else if (frm.dispose == 2) for (var j = 0; j < len; j++) img[j] = prev[j];\n }\n return frms;\n }\n function decodeImage(data, w, h, out) {\n const area = w * h; const\n bpp = _getBPP(out);\n const bpl = Math.ceil(w * bpp / 8);\t// bytes per line\n\n const bf = new Uint8Array(area * 4); const\n bf32 = new Uint32Array(bf.buffer);\n const { ctype } = out;\n const { depth } = out;\n const rs = _bin.readUshort;\n\n // console.log(ctype, depth);\n const time = Date.now();\n\n if (ctype == 6) { // RGB + alpha\n const qarea = area << 2;\n if (depth == 8) for (var i = 0; i < qarea; i += 4) { bf[i] = data[i]; bf[i + 1] = data[i + 1]; bf[i + 2] = data[i + 2]; bf[i + 3] = data[i + 3]; }\n if (depth == 16) for (var i = 0; i < qarea; i++) { bf[i] = data[i << 1]; }\n } else if (ctype == 2) {\t// RGB\n const ts = out.tabs.tRNS;\n if (ts == null) {\n if (depth == 8) for (var i = 0; i < area; i++) { var ti = i * 3; bf32[i] = (255 << 24) | (data[ti + 2] << 16) | (data[ti + 1] << 8) | data[ti]; }\n if (depth == 16) for (var i = 0; i < area; i++) { var ti = i * 6; bf32[i] = (255 << 24) | (data[ti + 4] << 16) | (data[ti + 2] << 8) | data[ti]; }\n } else {\n var tr = ts[0]; const tg = ts[1]; const\n tb = ts[2];\n if (depth == 8) {\n for (var i = 0; i < area; i++) {\n var qi = i << 2; var\n ti = i * 3; bf32[i] = (255 << 24) | (data[ti + 2] << 16) | (data[ti + 1] << 8) | data[ti];\n if (data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;\n }\n }\n if (depth == 16) {\n for (var i = 0; i < area; i++) {\n var qi = i << 2; var\n ti = i * 6; bf32[i] = (255 << 24) | (data[ti + 4] << 16) | (data[ti + 2] << 8) | data[ti];\n if (rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;\n }\n }\n }\n } else if (ctype == 3) {\t// palette\n const p = out.tabs.PLTE;\n const ap = out.tabs.tRNS;\n const tl = ap ? ap.length : 0;\n // console.log(p, ap);\n if (depth == 1) {\n for (var y = 0; y < h; y++) {\n var s0 = y * bpl; var\n t0 = y * w;\n for (var i = 0; i < w; i++) {\n var qi = (t0 + i) << 2; var j = ((data[s0 + (i >> 3)] >> (7 - ((i & 7) << 0))) & 1); var\n cj = 3 * j; bf[qi] = p[cj]; bf[qi + 1] = p[cj + 1]; bf[qi + 2] = p[cj + 2]; bf[qi + 3] = (j < tl) ? ap[j] : 255;\n }\n }\n }\n if (depth == 2) {\n for (var y = 0; y < h; y++) {\n var s0 = y * bpl; var\n t0 = y * w;\n for (var i = 0; i < w; i++) {\n var qi = (t0 + i) << 2; var j = ((data[s0 + (i >> 2)] >> (6 - ((i & 3) << 1))) & 3); var\n cj = 3 * j; bf[qi] = p[cj]; bf[qi + 1] = p[cj + 1]; bf[qi + 2] = p[cj + 2]; bf[qi + 3] = (j < tl) ? ap[j] : 255;\n }\n }\n }\n if (depth == 4) {\n for (var y = 0; y < h; y++) {\n var s0 = y * bpl; var\n t0 = y * w;\n for (var i = 0; i < w; i++) {\n var qi = (t0 + i) << 2; var j = ((data[s0 + (i >> 1)] >> (4 - ((i & 1) << 2))) & 15); var\n cj = 3 * j; bf[qi] = p[cj]; bf[qi + 1] = p[cj + 1]; bf[qi + 2] = p[cj + 2]; bf[qi + 3] = (j < tl) ? ap[j] : 255;\n }\n }\n }\n if (depth == 8) {\n for (var i = 0; i < area; i++) {\n var qi = i << 2; var j = data[i]; var\n cj = 3 * j; bf[qi] = p[cj]; bf[qi + 1] = p[cj + 1]; bf[qi + 2] = p[cj + 2]; bf[qi + 3] = (j < tl) ? ap[j] : 255;\n }\n }\n } else if (ctype == 4) {\t// gray + alpha\n if (depth == 8) {\n for (var i = 0; i < area; i++) {\n var qi = i << 2; var di = i << 1; var\n gr = data[di]; bf[qi] = gr; bf[qi + 1] = gr; bf[qi + 2] = gr; bf[qi + 3] = data[di + 1];\n }\n }\n if (depth == 16) {\n for (var i = 0; i < area; i++) {\n var qi = i << 2; var di = i << 2; var\n gr = data[di]; bf[qi] = gr; bf[qi + 1] = gr; bf[qi + 2] = gr; bf[qi + 3] = data[di + 2];\n }\n }\n } else if (ctype == 0) {\t// gray\n var tr = out.tabs.tRNS ? out.tabs.tRNS : -1;\n for (var y = 0; y < h; y++) {\n const off = y * bpl; const\n to = y * w;\n if (depth == 1) {\n for (var x = 0; x < w; x++) {\n var gr = 255 * ((data[off + (x >>> 3)] >>> (7 - ((x & 7)))) & 1); var\n al = (gr == tr * 255) ? 0 : 255; bf32[to + x] = (al << 24) | (gr << 16) | (gr << 8) | gr;\n }\n } else if (depth == 2) {\n for (var x = 0; x < w; x++) {\n var gr = 85 * ((data[off + (x >>> 2)] >>> (6 - ((x & 3) << 1))) & 3); var\n al = (gr == tr * 85) ? 0 : 255; bf32[to + x] = (al << 24) | (gr << 16) | (gr << 8) | gr;\n }\n } else if (depth == 4) {\n for (var x = 0; x < w; x++) {\n var gr = 17 * ((data[off + (x >>> 1)] >>> (4 - ((x & 1) << 2))) & 15); var\n al = (gr == tr * 17) ? 0 : 255; bf32[to + x] = (al << 24) | (gr << 16) | (gr << 8) | gr;\n }\n } else if (depth == 8) {\n for (var x = 0; x < w; x++) {\n var gr = data[off + x]; var\n al = (gr == tr) ? 0 : 255; bf32[to + x] = (al << 24) | (gr << 16) | (gr << 8) | gr;\n }\n } else if (depth == 16) {\n for (var x = 0; x < w; x++) {\n var gr = data[off + (x << 1)]; var\n al = (rs(data, off + (x << 1)) == tr) ? 0 : 255; bf32[to + x] = (al << 24) | (gr << 16) | (gr << 8) | gr;\n }\n }\n }\n }\n // console.log(Date.now()-time);\n return bf;\n }\n\n function decode(buff) {\n const data = new Uint8Array(buff); let offset = 8; const bin = _bin; const rUs = bin.readUshort; const\n rUi = bin.readUint;\n const out = { tabs: {}, frames: [] };\n const dd = new Uint8Array(data.length); let\n doff = 0;\t // put all IDAT data into it\n let fd; let\n foff = 0;\t// frames\n\n const mgck = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n for (var i = 0; i < 8; i++) if (data[i] != mgck[i]) throw 'The input is not a PNG file!';\n\n while (offset < data.length) {\n const len = bin.readUint(data, offset); offset += 4;\n const type = bin.readASCII(data, offset, 4); offset += 4;\n // console.log(type,len);\n\n if (type == 'IHDR') { _IHDR(data, offset, out); } else if (type == 'iCCP') {\n var off = offset; while (data[off] != 0) off++;\n const nam = bin.readASCII(data, offset, off - offset);\n const cpr = data[off + 1];\n const fil = data.slice(off + 2, offset + len);\n let res = null;\n try { res = _inflate(fil); } catch (e) { res = inflateRaw(fil); }\n out.tabs[type] = res;\n } else if (type == 'CgBI') { out.tabs[type] = data.slice(offset, offset + 4); } else if (type == 'IDAT') {\n for (var i = 0; i < len; i++) dd[doff + i] = data[offset + i];\n doff += len;\n } else if (type == 'acTL') {\n out.tabs[type] = { num_frames: rUi(data, offset), num_plays: rUi(data, offset + 4) };\n fd = new Uint8Array(data.length);\n } else if (type == 'fcTL') {\n if (foff != 0) {\n var fr = out.frames[out.frames.length - 1];\n fr.data = _decompress(out, fd.slice(0, foff), fr.rect.width, fr.rect.height); foff = 0;\n }\n const rct = {\n x: rUi(data, offset + 12), y: rUi(data, offset + 16), width: rUi(data, offset + 4), height: rUi(data, offset + 8),\n };\n let del = rUs(data, offset + 22); del = rUs(data, offset + 20) / (del == 0 ? 100 : del);\n const frm = {\n rect: rct, delay: Math.round(del * 1000), dispose: data[offset + 24], blend: data[offset + 25],\n };\n // console.log(frm);\n out.frames.push(frm);\n } else if (type == 'fdAT') {\n for (var i = 0; i < len - 4; i++) fd[foff + i] = data[offset + i + 4];\n foff += len - 4;\n } else if (type == 'pHYs') {\n out.tabs[type] = [bin.readUint(data, offset), bin.readUint(data, offset + 4), data[offset + 8]];\n } else if (type == 'cHRM') {\n out.tabs[type] = [];\n for (var i = 0; i < 8; i++) out.tabs[type].push(bin.readUint(data, offset + i * 4));\n } else if (type == 'tEXt' || type == 'zTXt') {\n if (out.tabs[type] == null) out.tabs[type] = {};\n var nz = bin.nextZero(data, offset);\n var keyw = bin.readASCII(data, offset, nz - offset);\n var text; var\n tl = offset + len - nz - 1;\n if (type == 'tEXt') text = bin.readASCII(data, nz + 1, tl);\n else {\n var bfr = _inflate(data.slice(nz + 2, nz + 2 + tl));\n text = bin.readUTF8(bfr, 0, bfr.length);\n }\n out.tabs[type][keyw] = text;\n } else if (type == 'iTXt') {\n if (out.tabs[type] == null) out.tabs[type] = {};\n var nz = 0; var\n off = offset;\n nz = bin.nextZero(data, off);\n var keyw = bin.readASCII(data, off, nz - off); off = nz + 1;\n const cflag = data[off]; const\n cmeth = data[off + 1]; off += 2;\n nz = bin.nextZero(data, off);\n const ltag = bin.readASCII(data, off, nz - off); off = nz + 1;\n nz = bin.nextZero(data, off);\n const tkeyw = bin.readUTF8(data, off, nz - off); off = nz + 1;\n var text; var\n tl = len - (off - offset);\n if (cflag == 0) text = bin.readUTF8(data, off, tl);\n else {\n var bfr = _inflate(data.slice(off, off + tl));\n text = bin.readUTF8(bfr, 0, bfr.length);\n }\n out.tabs[type][keyw] = text;\n } else if (type == 'PLTE') {\n out.tabs[type] = bin.readBytes(data, offset, len);\n } else if (type == 'hIST') {\n const pl = out.tabs.PLTE.length / 3;\n out.tabs[type] = []; for (var i = 0; i < pl; i++) out.tabs[type].push(rUs(data, offset + i * 2));\n } else if (type == 'tRNS') {\n if (out.ctype == 3) out.tabs[type] = bin.readBytes(data, offset, len);\n else if (out.ctype == 0) out.tabs[type] = rUs(data, offset);\n else if (out.ctype == 2) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];\n // else console.log(\"tRNS for unsupported color type\",out.ctype, len);\n } else if (type == 'gAMA') out.tabs[type] = bin.readUint(data, offset) / 100000;\n else if (type == 'sRGB') out.tabs[type] = data[offset];\n else if (type == 'bKGD') {\n if (out.ctype == 0 || out.ctype == 4) out.tabs[type] = [rUs(data, offset)];\n else if (out.ctype == 2 || out.ctype == 6) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];\n else if (out.ctype == 3) out.tabs[type] = data[offset];\n } else if (type == 'IEND') {\n break;\n }\n // else { console.log(\"unknown chunk type\", type, len); out.tabs[type]=data.slice(offset,offset+len); }\n offset += len;\n const crc = bin.readUint(data, offset); offset += 4;\n }\n if (foff != 0) {\n var fr = out.frames[out.frames.length - 1];\n fr.data = _decompress(out, fd.slice(0, foff), fr.rect.width, fr.rect.height);\n }\n out.data = _decompress(out, dd, out.width, out.height);\n\n delete out.compress; delete out.interlace; delete out.filter;\n return out;\n }\n\n function _decompress(out, dd, w, h) {\n var time = Date.now();\n const bpp = _getBPP(out); const bpl = Math.ceil(w * bpp / 8); const\n buff = new Uint8Array((bpl + 1 + out.interlace) * h);\n if (out.tabs.CgBI) dd = inflateRaw(dd, buff);\n else dd = _inflate(dd, buff);\n // console.log(dd.length, buff.length);\n // console.log(Date.now()-time);\n\n var time = Date.now();\n if (out.interlace == 0) dd = _filterZero(dd, out, 0, w, h);\n else if (out.interlace == 1) dd = _readInterlace(dd, out);\n // console.log(Date.now()-time);\n return dd;\n }\n\n function _inflate(data, buff) { const out = inflateRaw(new Uint8Array(data.buffer, 2, data.length - 6), buff); return out; }\n\n var inflateRaw = (function () {\n const H = {}; H.H = {}; H.H.N = function (N, W) {\n const R = Uint8Array; let i = 0; let m = 0; let J = 0; let h = 0; let Q = 0; let X = 0; let u = 0; let w = 0; let d = 0; let v; let C;\n if (N[0] == 3 && N[1] == 0) return W || new R(0); const V = H.H; const n = V.b; const A = V.e; const l = V.R; const M = V.n; const I = V.A; const e = V.Z; const b = V.m; const Z = W == null;\n if (Z)W = new R(N.length >>> 2 << 5); while (i == 0) {\n i = n(N, d, 1); m = n(N, d + 1, 2); d += 3; if (m == 0) {\n if ((d & 7) != 0)d += 8 - (d & 7);\n const D = (d >>> 3) + 4; const q = N[D - 4] | N[D - 3] << 8; if (Z)W = H.H.W(W, w + q); W.set(new R(N.buffer, N.byteOffset + D, q), w); d = D + q << 3;\n w += q; continue;\n } if (Z)W = H.H.W(W, w + (1 << 17)); if (m == 1) { v = b.J; C = b.h; X = (1 << 9) - 1; u = (1 << 5) - 1; } if (m == 2) {\n J = A(N, d, 5) + 257;\n h = A(N, d + 5, 5) + 1; Q = A(N, d + 10, 4) + 4; d += 14; const E = d; let j = 1; for (var c = 0; c < 38; c += 2) { b.Q[c] = 0; b.Q[c + 1] = 0; } for (var c = 0;\n c < Q; c++) { const K = A(N, d + c * 3, 3); b.Q[(b.X[c] << 1) + 1] = K; if (K > j)j = K; }d += 3 * Q; M(b.Q, j); I(b.Q, j, b.u); v = b.w; C = b.d;\n d = l(b.u, (1 << j) - 1, J + h, N, d, b.v); const r = V.V(b.v, 0, J, b.C); X = (1 << r) - 1; const S = V.V(b.v, J, h, b.D); u = (1 << S) - 1; M(b.C, r);\n I(b.C, r, v); M(b.D, S); I(b.D, S, C);\n } while (!0) {\n const T = v[e(N, d) & X]; d += T & 15; const p = T >>> 4; if (p >>> 8 == 0) { W[w++] = p; } else if (p == 256) { break; } else {\n let z = w + p - 254;\n if (p > 264) { const _ = b.q[p - 257]; z = w + (_ >>> 3) + A(N, d, _ & 7); d += _ & 7; } const $ = C[e(N, d) & u]; d += $ & 15; const s = $ >>> 4; const Y = b.c[s]; const a = (Y >>> 4) + n(N, d, Y & 15);\n d += Y & 15; while (w < z) { W[w] = W[w++ - a]; W[w] = W[w++ - a]; W[w] = W[w++ - a]; W[w] = W[w++ - a]; }w = z;\n }\n }\n } return W.length == w ? W : W.slice(0, w);\n };\n H.H.W = function (N, W) { const R = N.length; if (W <= R) return N; const V = new Uint8Array(R << 1); V.set(N, 0); return V; };\n H.H.R = function (N, W, R, V, n, A) {\n const l = H.H.e; const M = H.H.Z; let I = 0; while (I < R) {\n const e = N[M(V, n) & W]; n += e & 15; const b = e >>> 4;\n if (b <= 15) { A[I] = b; I++; } else {\n let Z = 0; let m = 0; if (b == 16) { m = 3 + l(V, n, 2); n += 2; Z = A[I - 1]; } else if (b == 17) {\n m = 3 + l(V, n, 3);\n n += 3;\n } else if (b == 18) { m = 11 + l(V, n, 7); n += 7; } const J = I + m; while (I < J) { A[I] = Z; I++; }\n }\n } return n;\n }; H.H.V = function (N, W, R, V) {\n let n = 0; let A = 0; const l = V.length >>> 1;\n while (A < R) { const M = N[A + W]; V[A << 1] = 0; V[(A << 1) + 1] = M; if (M > n)n = M; A++; } while (A < l) { V[A << 1] = 0; V[(A << 1) + 1] = 0; A++; } return n;\n };\n H.H.n = function (N, W) {\n const R = H.H.m; const V = N.length; let n; let A; let l; var M; let I; const e = R.j; for (var M = 0; M <= W; M++)e[M] = 0; for (M = 1; M < V; M += 2)e[N[M]]++;\n const b = R.K; n = 0; e[0] = 0; for (A = 1; A <= W; A++) { n = n + e[A - 1] << 1; b[A] = n; } for (l = 0; l < V; l += 2) {\n I = N[l + 1]; if (I != 0) {\n N[l] = b[I];\n b[I]++;\n }\n }\n }; H.H.A = function (N, W, R) {\n const V = N.length; const n = H.H.m; const A = n.r; for (let l = 0; l < V; l += 2) {\n if (N[l + 1] != 0) {\n const M = l >> 1; const I = N[l + 1]; const e = M << 4 | I; const b = W - I; let Z = N[l] << b; const m = Z + (1 << b);\n while (Z != m) { const J = A[Z] >>> 15 - W; R[J] = e; Z++; }\n }\n }\n }; H.H.l = function (N, W) {\n const R = H.H.m.r; const V = 15 - W; for (let n = 0; n < N.length;\n n += 2) { const A = N[n] << W - N[n + 1]; N[n] = R[A] >>> V; }\n }; H.H.M = function (N, W, R) { R <<= (W & 7); const V = W >>> 3; N[V] |= R; N[V + 1] |= R >>> 8; };\n H.H.I = function (N, W, R) { R <<= (W & 7); const V = W >>> 3; N[V] |= R; N[V + 1] |= R >>> 8; N[V + 2] |= R >>> 16; }; H.H.e = function (N, W, R) { return (N[W >>> 3] | N[(W >>> 3) + 1] << 8) >>> (W & 7) & (1 << R) - 1; };\n H.H.b = function (N, W, R) { return (N[W >>> 3] | N[(W >>> 3) + 1] << 8 | N[(W >>> 3) + 2] << 16) >>> (W & 7) & (1 << R) - 1; }; H.H.Z = function (N, W) { return (N[W >>> 3] | N[(W >>> 3) + 1] << 8 | N[(W >>> 3) + 2] << 16) >>> (W & 7); };\n H.H.i = function (N, W) { return (N[W >>> 3] | N[(W >>> 3) + 1] << 8 | N[(W >>> 3) + 2] << 16 | N[(W >>> 3) + 3] << 24) >>> (W & 7); }; H.H.m = (function () {\n const N = Uint16Array; const W = Uint32Array;\n return {\n K: new N(16), j: new N(16), X: [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], S: [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, 999, 999, 999], T: [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, 0], q: new N(32), p: [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, 65535, 65535], z: [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, 0, 0], c: new W(32), J: new N(512), _: [], h: new N(32), $: [], w: new N(32768), C: [], v: [], d: new N(32768), D: [], u: new N(512), Q: [], r: new N(1 << 15), s: new W(286), Y: new W(30), a: new W(19), t: new W(15e3), k: new N(1 << 16), g: new N(1 << 15),\n };\n }());\n (function () {\n const N = H.H.m; const W = 1 << 15; for (var R = 0; R < W; R++) {\n let V = R; V = (V & 2863311530) >>> 1 | (V & 1431655765) << 1;\n V = (V & 3435973836) >>> 2 | (V & 858993459) << 2; V = (V & 4042322160) >>> 4 | (V & 252645135) << 4; V = (V & 4278255360) >>> 8 | (V & 16711935) << 8;\n N.r[R] = (V >>> 16 | V << 16) >>> 17;\n } function n(A, l, M) { while (l-- != 0)A.push(0, M); } for (var R = 0; R < 32; R++) {\n N.q[R] = N.S[R] << 3 | N.T[R];\n N.c[R] = N.p[R] << 4 | N.z[R];\n }n(N._, 144, 8); n(N._, 255 - 143, 9); n(N._, 279 - 255, 7); n(N._, 287 - 279, 8); H.H.n(N._, 9);\n H.H.A(N._, 9, N.J); H.H.l(N._, 9); n(N.$, 32, 5); H.H.n(N.$, 5); H.H.A(N.$, 5, N.h); H.H.l(N.$, 5); n(N.Q, 19, 0); n(N.C, 286, 0);\n n(N.D, 30, 0); n(N.v, 320, 0);\n }()); return H.H.N;\n }());\n\n function _readInterlace(data, out) {\n const w = out.width; const\n h = out.height;\n const bpp = _getBPP(out); const cbpp = bpp >> 3; const\n bpl = Math.ceil(w * bpp / 8);\n const img = new Uint8Array(h * bpl);\n let di = 0;\n\n const starting_row = [0, 0, 4, 0, 2, 0, 1];\n const starting_col = [0, 4, 0, 2, 0, 1, 0];\n const row_increment = [8, 8, 8, 4, 4, 2, 2];\n const col_increment = [8, 8, 4, 4, 2, 2, 1];\n\n let pass = 0;\n while (pass < 7) {\n const ri = row_increment[pass]; const\n ci = col_increment[pass];\n let sw = 0; let\n sh = 0;\n let cr = starting_row[pass]; while (cr < h) { cr += ri; sh++; }\n let cc = starting_col[pass]; while (cc < w) { cc += ci; sw++; }\n const bpll = Math.ceil(sw * bpp / 8);\n _filterZero(data, out, di, sw, sh);\n\n let y = 0; let\n row = starting_row[pass];\n while (row < h) {\n let col = starting_col[pass];\n let cdi = (di + y * bpll) << 3;\n\n while (col < w) {\n if (bpp == 1) {\n var val = data[cdi >> 3]; val = (val >> (7 - (cdi & 7))) & 1;\n img[row * bpl + (col >> 3)] |= (val << (7 - ((col & 7) << 0)));\n }\n if (bpp == 2) {\n var val = data[cdi >> 3]; val = (val >> (6 - (cdi & 7))) & 3;\n img[row * bpl + (col >> 2)] |= (val << (6 - ((col & 3) << 1)));\n }\n if (bpp == 4) {\n var val = data[cdi >> 3]; val = (val >> (4 - (cdi & 7))) & 15;\n img[row * bpl + (col >> 1)] |= (val << (4 - ((col & 1) << 2)));\n }\n if (bpp >= 8) {\n const ii = row * bpl + col * cbpp;\n for (let j = 0; j < cbpp; j++) img[ii + j] = data[(cdi >> 3) + j];\n }\n cdi += bpp; col += ci;\n }\n y++; row += ri;\n }\n if (sw * sh != 0) di += sh * (1 + bpll);\n pass += 1;\n }\n return img;\n }\n\n function _getBPP(out) {\n const noc = [1, null, 3, 1, 2, null, 4][out.ctype];\n return noc * out.depth;\n }\n\n function _filterZero(data, out, off, w, h) {\n let bpp = _getBPP(out); const\n bpl = Math.ceil(w * bpp / 8);\n bpp = Math.ceil(bpp / 8);\n\n let i; let di; let type = data[off]; let\n x = 0;\n\n if (type > 1) data[off] = [0, 0, 1][type - 2];\n if (type == 3) for (x = bpp; x < bpl; x++) data[x + 1] = (data[x + 1] + (data[x + 1 - bpp] >>> 1)) & 255;\n\n for (let y = 0; y < h; y++) {\n i = off + y * bpl; di = i + y + 1;\n type = data[di - 1]; x = 0;\n\n if (type == 0) for (; x < bpl; x++) data[i + x] = data[di + x];\n else if (type == 1) {\n for (; x < bpp; x++) data[i + x] = data[di + x];\n\t\t\t\t\t\t\t for (; x < bpl; x++) data[i + x] = (data[di + x] + data[i + x - bpp]);\n } else if (type == 2) { for (; x < bpl; x++) data[i + x] = (data[di + x] + data[i + x - bpl]); } else if (type == 3) {\n for (; x < bpp; x++) data[i + x] = (data[di + x] + (data[i + x - bpl] >>> 1));\n\t\t\t\t\t\t\t for (; x < bpl; x++) data[i + x] = (data[di + x] + ((data[i + x - bpl] + data[i + x - bpp]) >>> 1));\n } else {\n for (; x < bpp; x++) data[i + x] = (data[di + x] + _paeth(0, data[i + x - bpl], 0));\n\t\t\t\t\t\t\t for (; x < bpl; x++) data[i + x] = (data[di + x] + _paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]));\n }\n }\n return data;\n }\n\n function _paeth(a, b, c) {\n const p = a + b - c; const pa = (p - a); const pb = (p - b); const\n pc = (p - c);\n if (pa * pa <= pb * pb && pa * pa <= pc * pc) return a;\n if (pb * pb <= pc * pc) return b;\n return c;\n }\n\n function _IHDR(data, offset, out) {\n out.width = _bin.readUint(data, offset); offset += 4;\n out.height = _bin.readUint(data, offset); offset += 4;\n out.depth = data[offset]; offset++;\n out.ctype = data[offset]; offset++;\n out.compress = data[offset]; offset++;\n out.filter = data[offset]; offset++;\n out.interlace = data[offset]; offset++;\n }\n\n function _copyTile(sb, sw, sh, tb, tw, th, xoff, yoff, mode) {\n const w = Math.min(sw, tw); const\n h = Math.min(sh, th);\n let si = 0; let\n ti = 0;\n for (let y = 0; y < h; y++) {\n for (let x = 0; x < w; x++) {\n if (xoff >= 0 && yoff >= 0) { si = (y * sw + x) << 2; ti = ((yoff + y) * tw + xoff + x) << 2; } else { si = ((-yoff + y) * sw - xoff + x) << 2; ti = (y * tw + x) << 2; }\n\n if (mode == 0) { tb[ti] = sb[si]; tb[ti + 1] = sb[si + 1]; tb[ti + 2] = sb[si + 2]; tb[ti + 3] = sb[si + 3]; } else if (mode == 1) {\n var fa = sb[si + 3] * (1 / 255); var fr = sb[si] * fa; var fg = sb[si + 1] * fa; var\n fb = sb[si + 2] * fa;\n var ba = tb[ti + 3] * (1 / 255); var br = tb[ti] * ba; var bg = tb[ti + 1] * ba; var\n bb = tb[ti + 2] * ba;\n\n const ifa = 1 - fa; const oa = fa + ba * ifa; const\n ioa = (oa == 0 ? 0 : 1 / oa);\n tb[ti + 3] = 255 * oa;\n tb[ti + 0] = (fr + br * ifa) * ioa;\n tb[ti + 1] = (fg + bg * ifa) * ioa;\n tb[ti + 2] = (fb + bb * ifa) * ioa;\n } else if (mode == 2) {\t// copy only differences, otherwise zero\n var fa = sb[si + 3]; var fr = sb[si]; var fg = sb[si + 1]; var\n fb = sb[si + 2];\n var ba = tb[ti + 3]; var br = tb[ti]; var bg = tb[ti + 1]; var\n bb = tb[ti + 2];\n if (fa == ba && fr == br && fg == bg && fb == bb) { tb[ti] = 0; tb[ti + 1] = 0; tb[ti + 2] = 0; tb[ti + 3] = 0; } else { tb[ti] = fr; tb[ti + 1] = fg; tb[ti + 2] = fb; tb[ti + 3] = fa; }\n } else if (mode == 3) {\t// check if can be blended\n var fa = sb[si + 3]; var fr = sb[si]; var fg = sb[si + 1]; var\n fb = sb[si + 2];\n var ba = tb[ti + 3]; var br = tb[ti]; var bg = tb[ti + 1]; var\n bb = tb[ti + 2];\n if (fa == ba && fr == br && fg == bg && fb == bb) continue;\n // if(fa!=255 && ba!=0) return false;\n if (fa < 220 && ba > 20) return false;\n }\n }\n }\n return true;\n }\n\n return {\n decode,\n toRGBA8,\n _paeth,\n _copyTile,\n _bin,\n };\n}());\n\n(function () {\n const { _copyTile } = UPNG;\n const { _bin } = UPNG;\n const paeth = UPNG._paeth;\n var crcLib = {\n table: (function () {\n\t\t const tab = new Uint32Array(256);\n\t\t for (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n if (c & 1) c = 0xedb88320 ^ (c >>> 1);\n else c >>>= 1;\n }\n tab[n] = c;\n }\n return tab;\n }()),\n update(c, buf, off, len) {\n for (let i = 0; i < len; i++) c = crcLib.table[(c ^ buf[off + i]) & 0xff] ^ (c >>> 8);\n return c;\n },\n crc(b, o, l) { return crcLib.update(0xffffffff, b, o, l) ^ 0xffffffff; },\n };\n\n function addErr(er, tg, ti, f) {\n tg[ti] += (er[0] * f) >> 4; tg[ti + 1] += (er[1] * f) >> 4; tg[ti + 2] += (er[2] * f) >> 4; tg[ti + 3] += (er[3] * f) >> 4;\n }\n function N(x) { return Math.max(0, Math.min(255, x)); }\n function D(a, b) {\n const dr = a[0] - b[0]; const dg = a[1] - b[1]; const db = a[2] - b[2]; const\n da = a[3] - b[3]; return (dr * dr + dg * dg + db * db + da * da);\n }\n\n // MTD: 0: None, 1: floyd-steinberg, 2: Bayer\n function dither(sb, w, h, plte, tb, oind, MTD) {\n if (MTD == null) MTD = 1;\n\n const pc = plte.length; const nplt = []; const\n rads = [];\n for (var i = 0; i < pc; i++) {\n const c = plte[i];\n nplt.push([((c >>> 0) & 255), ((c >>> 8) & 255), ((c >>> 16) & 255), ((c >>> 24) & 255)]);\n }\n for (var i = 0; i < pc; i++) {\n let ne = 0xffffffff; var\n ni = 0;\n for (var j = 0; j < pc; j++) { var ce = D(nplt[i], nplt[j]); if (j != i && ce < ne) { ne = ce; ni = j; } }\n const hd = Math.sqrt(ne) / 2;\n rads[i] = ~~(hd * hd);\n }\n\n const tb32 = new Uint32Array(tb.buffer);\n const err = new Int16Array(w * h * 4);\n\n /*\n\t\tvar S=2, M = [\n\t\t\t0,2,\n\t\t 3,1]; // */\n //*\n const S = 4; const\n M = [\n\t\t\t 0, 8, 2, 10,\n\t\t 12, 4, 14, 6,\n\t\t\t 3, 11, 1, 9,\n 15, 7, 13, 5]; //* /\n for (var i = 0; i < M.length; i++) M[i] = 255 * (-0.5 + (M[i] + 0.5) / (S * S));\n\n for (let y = 0; y < h; y++) {\n for (let x = 0; x < w; x++) {\n var i = (y * w + x) * 4;\n\n var cc;\n if (MTD != 2) cc = [N(sb[i] + err[i]), N(sb[i + 1] + err[i + 1]), N(sb[i + 2] + err[i + 2]), N(sb[i + 3] + err[i + 3])];\n else {\n var ce = M[(y & (S - 1)) * S + (x & (S - 1))];\n cc = [N(sb[i] + ce), N(sb[i + 1] + ce), N(sb[i + 2] + ce), N(sb[i + 3] + ce)];\n }\n\n var ni = 0; let\n nd = 0xffffff;\n for (var j = 0; j < pc; j++) {\n const cd = D(cc, nplt[j]);\n if (cd < nd) { nd = cd; ni = j; }\n }\n\n const nc = nplt[ni];\n const er = [cc[0] - nc[0], cc[1] - nc[1], cc[2] - nc[2], cc[3] - nc[3]];\n\n if (MTD == 1) {\n // addErr(er, err, i+4, 16);\n if (x != w - 1) addErr(er, err, i + 4, 7);\n if (y != h - 1) {\n if (x != 0) addErr(er, err, i + 4 * w - 4, 3);\n\t\t\t\t\t\t\t\t addErr(er, err, i + 4 * w, 5);\n if (x != w - 1) addErr(er, err, i + 4 * w + 4, 1);\n }//* /\n }\n oind[i >> 2] = ni; tb32[i >> 2] = plte[ni];\n }\n }\n }\n\n function encode(bufs, w, h, ps, dels, tabs, forbidPlte) {\n if (ps == null) ps = 0;\n if (forbidPlte == null) forbidPlte = false;\n\n const nimg = compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte, false]);\n compressPNG(nimg, -1);\n\n return _main(nimg, w, h, dels, tabs);\n }\n\n function encodeLL(bufs, w, h, cc, ac, depth, dels, tabs) {\n const nimg = { ctype: 0 + (cc == 1 ? 0 : 2) + (ac == 0 ? 0 : 4), depth, frames: [] };\n\n const time = Date.now();\n const bipp = (cc + ac) * depth; const\n bipl = bipp * w;\n for (let i = 0; i < bufs.length; i++) {\n nimg.frames.push({\n rect: {\n x: 0, y: 0, width: w, height: h,\n },\n img: new Uint8Array(bufs[i]),\n blend: 0,\n dispose: 1,\n bpp: Math.ceil(bipp / 8),\n bpl: Math.ceil(bipl / 8),\n });\n }\n\n compressPNG(nimg, 0, true);\n\n const out = _main(nimg, w, h, dels, tabs);\n return out;\n }\n\n function _main(nimg, w, h, dels, tabs) {\n if (tabs == null) tabs = {};\n const { crc } = crcLib;\n const wUi = _bin.writeUint;\n const wUs = _bin.writeUshort;\n const wAs = _bin.writeASCII;\n let offset = 8; const anim = nimg.frames.length > 1; let\n pltAlpha = false;\n\n let cicc;\n\n let leng = 8 + (16 + 5 + 4) /* + (9+4) */ + (anim ? 20 : 0);\n if (tabs.sRGB != null) leng += 8 + 1 + 4;\n if (tabs.pHYs != null) leng += 8 + 9 + 4;\n if (tabs.iCCP != null) { cicc = pako.deflate(tabs.iCCP); leng += 8 + 11 + 2 + cicc.length + 4; }\n if (nimg.ctype == 3) {\n var dl = nimg.plte.length;\n for (var i = 0; i < dl; i++) if ((nimg.plte[i] >>> 24) != 255) pltAlpha = true;\n leng += (8 + dl * 3 + 4) + (pltAlpha ? (8 + dl * 1 + 4) : 0);\n }\n for (var j = 0; j < nimg.frames.length; j++) {\n var fr = nimg.frames[j];\n if (anim) leng += 38;\n leng += fr.cimg.length + 12;\n if (j != 0) leng += 4;\n }\n leng += 12;\n\n const data = new Uint8Array(leng);\n const wr = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n for (var i = 0; i < 8; i++) data[i] = wr[i];\n\n wUi(data, offset, 13); offset += 4;\n wAs(data, offset, 'IHDR'); offset += 4;\n wUi(data, offset, w); offset += 4;\n wUi(data, offset, h); offset += 4;\n data[offset] = nimg.depth; offset++; // depth\n data[offset] = nimg.ctype; offset++; // ctype\n data[offset] = 0; offset++; // compress\n data[offset] = 0; offset++; // filter\n data[offset] = 0; offset++; // interlace\n wUi(data, offset, crc(data, offset - 17, 17)); offset += 4; // crc\n\n // 13 bytes to say, that it is sRGB\n if (tabs.sRGB != null) {\n wUi(data, offset, 1); offset += 4;\n wAs(data, offset, 'sRGB'); offset += 4;\n data[offset] = tabs.sRGB; offset++;\n wUi(data, offset, crc(data, offset - 5, 5)); offset += 4; // crc\n }\n if (tabs.iCCP != null) {\n const sl = 11 + 2 + cicc.length;\n wUi(data, offset, sl); offset += 4;\n wAs(data, offset, 'iCCP'); offset += 4;\n wAs(data, offset, 'ICC profile'); offset += 11; offset += 2;\n data.set(cicc, offset); offset += cicc.length;\n wUi(data, offset, crc(data, offset - (sl + 4), sl + 4)); offset += 4; // crc\n }\n if (tabs.pHYs != null) {\n wUi(data, offset, 9); offset += 4;\n wAs(data, offset, 'pHYs'); offset += 4;\n wUi(data, offset, tabs.pHYs[0]); offset += 4;\n wUi(data, offset, tabs.pHYs[1]); offset += 4;\n data[offset] = tabs.pHYs[2];\t\t\toffset++;\n wUi(data, offset, crc(data, offset - 13, 13)); offset += 4; // crc\n }\n\n if (anim) {\n wUi(data, offset, 8); offset += 4;\n wAs(data, offset, 'acTL'); offset += 4;\n wUi(data, offset, nimg.frames.length); offset += 4;\n wUi(data, offset, tabs.loop != null ? tabs.loop : 0); offset += 4;\n wUi(data, offset, crc(data, offset - 12, 12)); offset += 4; // crc\n }\n\n if (nimg.ctype == 3) {\n var dl = nimg.plte.length;\n wUi(data, offset, dl * 3); offset += 4;\n wAs(data, offset, 'PLTE'); offset += 4;\n for (var i = 0; i < dl; i++) {\n const ti = i * 3; const c = nimg.plte[i]; const r = (c) & 255; const g = (c >>> 8) & 255; const\n b = (c >>> 16) & 255;\n data[offset + ti + 0] = r; data[offset + ti + 1] = g; data[offset + ti + 2] = b;\n }\n offset += dl * 3;\n wUi(data, offset, crc(data, offset - dl * 3 - 4, dl * 3 + 4)); offset += 4; // crc\n\n if (pltAlpha) {\n wUi(data, offset, dl); offset += 4;\n wAs(data, offset, 'tRNS'); offset += 4;\n for (var i = 0; i < dl; i++) data[offset + i] = (nimg.plte[i] >>> 24) & 255;\n offset += dl;\n wUi(data, offset, crc(data, offset - dl - 4, dl + 4)); offset += 4; // crc\n }\n }\n\n let fi = 0;\n for (var j = 0; j < nimg.frames.length; j++) {\n var fr = nimg.frames[j];\n if (anim) {\n wUi(data, offset, 26); offset += 4;\n wAs(data, offset, 'fcTL'); offset += 4;\n wUi(data, offset, fi++); offset += 4;\n wUi(data, offset, fr.rect.width); offset += 4;\n wUi(data, offset, fr.rect.height); offset += 4;\n wUi(data, offset, fr.rect.x); offset += 4;\n wUi(data, offset, fr.rect.y); offset += 4;\n wUs(data, offset, dels[j]); offset += 2;\n wUs(data, offset, 1000); offset += 2;\n data[offset] = fr.dispose; offset++;\t// dispose\n data[offset] = fr.blend; offset++;\t// blend\n wUi(data, offset, crc(data, offset - 30, 30)); offset += 4; // crc\n }\n\n const imgd = fr.cimg; var\n dl = imgd.length;\n wUi(data, offset, dl + (j == 0 ? 0 : 4)); offset += 4;\n const ioff = offset;\n wAs(data, offset, (j == 0) ? 'IDAT' : 'fdAT'); offset += 4;\n if (j != 0) { wUi(data, offset, fi++); offset += 4; }\n data.set(imgd, offset);\n offset += dl;\n wUi(data, offset, crc(data, ioff, offset - ioff)); offset += 4; // crc\n }\n\n wUi(data, offset, 0); offset += 4;\n wAs(data, offset, 'IEND'); offset += 4;\n wUi(data, offset, crc(data, offset - 4, 4)); offset += 4; // crc\n\n return data.buffer;\n }\n\n function compressPNG(out, filter, levelZero) {\n for (let i = 0; i < out.frames.length; i++) {\n const frm = out.frames[i]; const nw = frm.rect.width; const\n nh = frm.rect.height;\n const fdata = new Uint8Array(nh * frm.bpl + nh);\n frm.cimg = _filterZero(frm.img, nh, frm.bpp, frm.bpl, fdata, filter, levelZero);\n }\n }\n\n function compress(bufs, w, h, ps, prms) // prms: onlyBlend, minBits, forbidPlte\n {\n // var time = Date.now();\n const onlyBlend = prms[0]; const evenCrd = prms[1]; const forbidPrev = prms[2]; const minBits = prms[3]; const forbidPlte = prms[4]; const\n dith = prms[5];\n\n let ctype = 6; let depth = 8; let\n alphaAnd = 255;\n\n for (var j = 0; j < bufs.length; j++) { // when not quantized, other frames can contain colors, that are not in an initial frame\n const img = new Uint8Array(bufs[j]); var\n ilen = img.length;\n for (var i = 0; i < ilen; i += 4) alphaAnd &= img[i + 3];\n }\n const gotAlpha = (alphaAnd != 255);\n\n // console.log(\"alpha check\", Date.now()-time); time = Date.now();\n\n // var brute = gotAlpha && forGIF;\t\t// brute : frames can only be copied, not \"blended\"\n const frms = framize(bufs, w, h, onlyBlend, evenCrd, forbidPrev);\n // console.log(\"framize\", Date.now()-time); time = Date.now();\n\n const cmap = {}; const plte = []; const\n inds = [];\n\n if (ps != 0) {\n const nbufs = []; for (var i = 0; i < frms.length; i++) nbufs.push(frms[i].img.buffer);\n\n const abuf = concatRGBA(nbufs); const\n qres = quantize(abuf, ps);\n\n for (var i = 0; i < qres.plte.length; i++) plte.push(qres.plte[i].est.rgba);\n\n let cof = 0;\n for (var i = 0; i < frms.length; i++) {\n var frm = frms[i]; const bln = frm.img.length; var\n ind = new Uint8Array(qres.inds.buffer, cof >> 2, bln >> 2); inds.push(ind);\n const bb = new Uint8Array(qres.abuf, cof, bln);\n\n // console.log(frm.img, frm.width, frm.height);\n // var time = Date.now();\n if (dith) dither(frm.img, frm.rect.width, frm.rect.height, plte, bb, ind);\n // console.log(Date.now()-time);\n frm.img.set(bb); cof += bln;\n }\n\n // console.log(\"quantize\", Date.now()-time); time = Date.now();\n } else {\n // what if ps==0, but there are <=256 colors? we still need to detect, if the palette could be used\n for (var j = 0; j < frms.length; j++) { // when not quantized, other frames can contain colors, that are not in an initial frame\n var frm = frms[j]; const img32 = new Uint32Array(frm.img.buffer); var nw = frm.rect.width; var\n ilen = img32.length;\n var ind = new Uint8Array(ilen); inds.push(ind);\n for (var i = 0; i < ilen; i++) {\n const c = img32[i];\n if (i != 0 && c == img32[i - 1]) ind[i] = ind[i - 1];\n else if (i > nw && c == img32[i - nw]) ind[i] = ind[i - nw];\n else {\n let cmc = cmap[c];\n if (cmc == null) { cmap[c] = cmc = plte.length; plte.push(c); if (plte.length >= 300) break; }\n ind[i] = cmc;\n }\n }\n }\n // console.log(\"make palette\", Date.now()-time); time = Date.now();\n }\n\n const cc = plte.length; // console.log(\"colors:\",cc);\n if (cc <= 256 && forbidPlte == false) {\n if (cc <= 2) depth = 1; else if (cc <= 4) depth = 2; else if (cc <= 16) depth = 4; else depth = 8;\n depth = Math.max(depth, minBits);\n }\n\n for (var j = 0; j < frms.length; j++) {\n var frm = frms[j]; const nx = frm.rect.x; const ny = frm.rect.y; var nw = frm.rect.width; const\n nh = frm.rect.height;\n let cimg = frm.img; const\n cimg32 = new Uint32Array(cimg.buffer);\n let bpl = 4 * nw; let\n bpp = 4;\n if (cc <= 256 && forbidPlte == false) {\n bpl = Math.ceil(depth * nw / 8);\n var nimg = new Uint8Array(bpl * nh);\n const inj = inds[j];\n for (let y = 0; y < nh; y++) {\n var i = y * bpl; const\n ii = y * nw;\n if (depth == 8) for (var x = 0; x < nw; x++) nimg[i + (x)] = (inj[ii + x]);\n else if (depth == 4) for (var x = 0; x < nw; x++) nimg[i + (x >> 1)] |= (inj[ii + x] << (4 - (x & 1) * 4));\n else if (depth == 2) for (var x = 0; x < nw; x++) nimg[i + (x >> 2)] |= (inj[ii + x] << (6 - (x & 3) * 2));\n else if (depth == 1) for (var x = 0; x < nw; x++) nimg[i + (x >> 3)] |= (inj[ii + x] << (7 - (x & 7) * 1));\n }\n cimg = nimg; ctype = 3; bpp = 1;\n } else if (gotAlpha == false && frms.length == 1) {\t// some next \"reduced\" frames may contain alpha for blending\n var nimg = new Uint8Array(nw * nh * 3); const\n area = nw * nh;\n for (var i = 0; i < area; i++) {\n const ti = i * 3; const\n qi = i * 4; nimg[ti] = cimg[qi]; nimg[ti + 1] = cimg[qi + 1]; nimg[ti + 2] = cimg[qi + 2];\n }\n cimg = nimg; ctype = 2; bpp = 3; bpl = 3 * nw;\n }\n frm.img = cimg; frm.bpl = bpl; frm.bpp = bpp;\n }\n // console.log(\"colors => palette indices\", Date.now()-time); time = Date.now();\n\n return {\n ctype, depth, plte, frames: frms,\n };\n }\n function framize(bufs, w, h, alwaysBlend, evenCrd, forbidPrev) {\n /* DISPOSE\n\t\t\t- 0 : no change\n\t\t\t- 1 : clear to transparent\n\t\t\t- 2 : retstore to content before rendering (previous frame disposed)\n\t\t\tBLEND\n\t\t\t- 0 : replace\n\t\t\t- 1 : blend\n\t\t*/\n const frms = [];\n for (var j = 0; j < bufs.length; j++) {\n const cimg = new Uint8Array(bufs[j]); const\n cimg32 = new Uint32Array(cimg.buffer);\n var nimg;\n\n let nx = 0; let ny = 0; let nw = w; let nh = h; let\n blend = alwaysBlend ? 1 : 0;\n if (j != 0) {\n const tlim = (forbidPrev || alwaysBlend || j == 1 || frms[j - 2].dispose != 0) ? 1 : 2; let tstp = 0; let\n tarea = 1e9;\n for (let it = 0; it < tlim; it++) {\n var pimg = new Uint8Array(bufs[j - 1 - it]); const\n p32 = new Uint32Array(bufs[j - 1 - it]);\n let mix = w; let miy = h; let max = -1; let may = -1;\n for (let y = 0; y < h; y++) {\n for (let x = 0; x < w; x++) {\n var i = y * w + x;\n if (cimg32[i] != p32[i]) {\n if (x < mix) mix = x; if (x > max) max = x;\n if (y < miy) miy = y; if (y > may) may = y;\n }\n }\n }\n if (max == -1) mix = miy = max = may = 0;\n if (evenCrd) { if ((mix & 1) == 1)mix--; if ((miy & 1) == 1)miy--; }\n const sarea = (max - mix + 1) * (may - miy + 1);\n if (sarea < tarea) {\n tarea = sarea; tstp = it;\n nx = mix; ny = miy; nw = max - mix + 1; nh = may - miy + 1;\n }\n }\n\n // alwaysBlend: pokud zjistím, že blendit nelze, nastavím předchozímu snímku dispose=1. Zajistím, aby obsahoval můj obdélník.\n var pimg = new Uint8Array(bufs[j - 1 - tstp]);\n if (tstp == 1) frms[j - 1].dispose = 2;\n\n nimg = new Uint8Array(nw * nh * 4);\n _copyTile(pimg, w, h, nimg, nw, nh, -nx, -ny, 0);\n\n blend = _copyTile(cimg, w, h, nimg, nw, nh, -nx, -ny, 3) ? 1 : 0;\n if (blend == 1) {\n _prepareDiff(cimg, w, h, nimg, {\n x: nx, y: ny, width: nw, height: nh,\n });\n } else _copyTile(cimg, w, h, nimg, nw, nh, -nx, -ny, 0);\n } else nimg = cimg.slice(0);\t// img may be rewritten further ... don't rewrite input\n\n frms.push({\n rect: {\n x: nx, y: ny, width: nw, height: nh,\n },\n img: nimg,\n blend,\n dispose: 0,\n });\n }\n\n if (alwaysBlend) {\n for (var j = 0; j < frms.length; j++) {\n var frm = frms[j]; if (frm.blend == 1) continue;\n const r0 = frm.rect; const\n r1 = frms[j - 1].rect;\n const miX = Math.min(r0.x, r1.x); const\n miY = Math.min(r0.y, r1.y);\n const maX = Math.max(r0.x + r0.width, r1.x + r1.width); const\n maY = Math.max(r0.y + r0.height, r1.y + r1.height);\n const r = {\n x: miX, y: miY, width: maX - miX, height: maY - miY,\n };\n\n frms[j - 1].dispose = 1;\n if (j - 1 != 0) _updateFrame(bufs, w, h, frms, j - 1, r, evenCrd);\n _updateFrame(bufs, w, h, frms, j, r, evenCrd);\n }\n }\n let area = 0;\n if (bufs.length != 1) {\n for (var i = 0; i < frms.length; i++) {\n var frm = frms[i];\n area += frm.rect.width * frm.rect.height;\n // if(i==0 || frm.blend!=1) continue;\n // var ob = new Uint8Array(\n // console.log(frm.blend, frm.dispose, frm.rect);\n }\n }\n // if(area!=0) console.log(area);\n return frms;\n }\n function _updateFrame(bufs, w, h, frms, i, r, evenCrd) {\n const U8 = Uint8Array; const\n U32 = Uint32Array;\n const pimg = new U8(bufs[i - 1]); const pimg32 = new U32(bufs[i - 1]); const\n nimg = i + 1 < bufs.length ? new U8(bufs[i + 1]) : null;\n const cimg = new U8(bufs[i]); const\n cimg32 = new U32(cimg.buffer);\n\n let mix = w; let miy = h; let max = -1; let may = -1;\n for (let y = 0; y < r.height; y++) {\n for (let x = 0; x < r.width; x++) {\n const cx = r.x + x; const\n cy = r.y + y;\n const j = cy * w + cx; const\n cc = cimg32[j];\n // no need to draw transparency, or to dispose it. Or, if writing the same color and the next one does not need transparency.\n if (cc == 0 || (frms[i - 1].dispose == 0 && pimg32[j] == cc && (nimg == null || nimg[j * 4 + 3] != 0))/**/) {} else {\n if (cx < mix) mix = cx; if (cx > max) max = cx;\n if (cy < miy) miy = cy; if (cy > may) may = cy;\n }\n }\n }\n if (max == -1) mix = miy = max = may = 0;\n if (evenCrd) { if ((mix & 1) == 1)mix--; if ((miy & 1) == 1)miy--; }\n r = {\n x: mix, y: miy, width: max - mix + 1, height: may - miy + 1,\n };\n\n const fr = frms[i]; fr.rect = r; fr.blend = 1; fr.img = new Uint8Array(r.width * r.height * 4);\n if (frms[i - 1].dispose == 0) {\n _copyTile(pimg, w, h, fr.img, r.width, r.height, -r.x, -r.y, 0);\n _prepareDiff(cimg, w, h, fr.img, r);\n } else _copyTile(cimg, w, h, fr.img, r.width, r.height, -r.x, -r.y, 0);\n }\n function _prepareDiff(cimg, w, h, nimg, rec) {\n _copyTile(cimg, w, h, nimg, rec.width, rec.height, -rec.x, -rec.y, 2);\n }\n\n function _filterZero(img, h, bpp, bpl, data, filter, levelZero) {\n const fls = []; let\n ftry = [0, 1, 2, 3, 4];\n if (filter != -1) ftry = [filter];\n else if (h * bpl > 500000 || bpp == 1) ftry = [0];\n let opts; if (levelZero) opts = { level: 0 };\n\n const CMPR = UZIP;\n\n const time = Date.now();\n for (var i = 0; i < ftry.length; i++) {\n for (let y = 0; y < h; y++) _filterLine(data, img, y, bpl, bpp, ftry[i]);\n // var nimg = new Uint8Array(data.length);\n // var sz = UZIP.F.deflate(data, nimg); fls.push(nimg.slice(0,sz));\n // var dfl = pako[\"deflate\"](data), dl=dfl.length-4;\n // var crc = (dfl[dl+3]<<24)|(dfl[dl+2]<<16)|(dfl[dl+1]<<8)|(dfl[dl+0]<<0);\n // console.log(crc, UZIP.adler(data,2,data.length-6));\n fls.push(CMPR.deflate(data, opts));\n }\n\n let ti; let\n tsize = 1e9;\n for (var i = 0; i < fls.length; i++) if (fls[i].length < tsize) { ti = i; tsize = fls[i].length; }\n return fls[ti];\n }\n function _filterLine(data, img, y, bpl, bpp, type) {\n const i = y * bpl; let\n di = i + y;\n data[di] = type; di++;\n\n if (type == 0) {\n if (bpl < 500) for (var x = 0; x < bpl; x++) data[di + x] = img[i + x];\n else data.set(new Uint8Array(img.buffer, i, bpl), di);\n } else if (type == 1) {\n for (var x = 0; x < bpp; x++) data[di + x] = img[i + x];\n for (var x = bpp; x < bpl; x++) data[di + x] = (img[i + x] - img[i + x - bpp] + 256) & 255;\n } else if (y == 0) {\n for (var x = 0; x < bpp; x++) data[di + x] = img[i + x];\n\n if (type == 2) for (var x = bpp; x < bpl; x++) data[di + x] = img[i + x];\n if (type == 3) for (var x = bpp; x < bpl; x++) data[di + x] = (img[i + x] - (img[i + x - bpp] >> 1) + 256) & 255;\n if (type == 4) for (var x = bpp; x < bpl; x++) data[di + x] = (img[i + x] - paeth(img[i + x - bpp], 0, 0) + 256) & 255;\n } else {\n if (type == 2) { for (var x = 0; x < bpl; x++) data[di + x] = (img[i + x] + 256 - img[i + x - bpl]) & 255; }\n if (type == 3) {\n for (var x = 0; x < bpp; x++) data[di + x] = (img[i + x] + 256 - (img[i + x - bpl] >> 1)) & 255;\n\t\t\t\t\t\t for (var x = bpp; x < bpl; x++) data[di + x] = (img[i + x] + 256 - ((img[i + x - bpl] + img[i + x - bpp]) >> 1)) & 255;\n }\n if (type == 4) {\n for (var x = 0; x < bpp; x++) data[di + x] = (img[i + x] + 256 - paeth(0, img[i + x - bpl], 0)) & 255;\n\t\t\t\t\t\t for (var x = bpp; x < bpl; x++) data[di + x] = (img[i + x] + 256 - paeth(img[i + x - bpp], img[i + x - bpl], img[i + x - bpp - bpl])) & 255;\n }\n }\n }\n\n function quantize(abuf, ps) {\n const sb = new Uint8Array(abuf); const tb = sb.slice(0); const\n tb32 = new Uint32Array(tb.buffer);\n\n const KD = getKDtree(tb, ps);\n const root = KD[0]; const\n leafs = KD[1];\n\n const len = sb.length;\n\n const inds = new Uint8Array(len >> 2); let\n nd;\n if (sb.length < 20e6) // precise, but slow :(\n {\n for (var i = 0; i < len; i += 4) {\n var r = sb[i] * (1 / 255); var g = sb[i + 1] * (1 / 255); var b = sb[i + 2] * (1 / 255); var\n a = sb[i + 3] * (1 / 255);\n\n nd = getNearest(root, r, g, b, a);\n inds[i >> 2] = nd.ind; tb32[i >> 2] = nd.est.rgba;\n }\n } else {\n for (var i = 0; i < len; i += 4) {\n var r = sb[i] * (1 / 255); var g = sb[i + 1] * (1 / 255); var b = sb[i + 2] * (1 / 255); var\n a = sb[i + 3] * (1 / 255);\n\n nd = root; while (nd.left) nd = (planeDst(nd.est, r, g, b, a) <= 0) ? nd.left : nd.right;\n inds[i >> 2] = nd.ind; tb32[i >> 2] = nd.est.rgba;\n }\n }\n return { abuf: tb.buffer, inds, plte: leafs };\n }\n\n function getKDtree(nimg, ps, err) {\n if (err == null) err = 0.0001;\n const nimg32 = new Uint32Array(nimg.buffer);\n\n const root = {\n i0: 0, i1: nimg.length, bst: null, est: null, tdst: 0, left: null, right: null,\n }; // basic statistic, extra statistic\n root.bst = stats(nimg, root.i0, root.i1); root.est = estats(root.bst);\n const leafs = [root];\n\n while (leafs.length < ps) {\n let maxL = 0; let\n mi = 0;\n for (var i = 0; i < leafs.length; i++) if (leafs[i].est.L > maxL) { maxL = leafs[i].est.L; mi = i; }\n if (maxL < err) break;\n const node = leafs[mi];\n\n const s0 = splitPixels(nimg, nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);\n const s0wrong = (node.i0 >= s0 || node.i1 <= s0);\n // console.log(maxL, leafs.length, mi);\n if (s0wrong) { node.est.L = 0; continue; }\n\n const ln = {\n i0: node.i0, i1: s0, bst: null, est: null, tdst: 0, left: null, right: null,\n }; ln.bst = stats(nimg, ln.i0, ln.i1);\n ln.est = estats(ln.bst);\n const rn = {\n i0: s0, i1: node.i1, bst: null, est: null, tdst: 0, left: null, right: null,\n }; rn.bst = { R: [], m: [], N: node.bst.N - ln.bst.N };\n for (var i = 0; i < 16; i++) rn.bst.R[i] = node.bst.R[i] - ln.bst.R[i];\n for (var i = 0; i < 4; i++) rn.bst.m[i] = node.bst.m[i] - ln.bst.m[i];\n rn.est = estats(rn.bst);\n\n node.left = ln; node.right = rn;\n leafs[mi] = ln; leafs.push(rn);\n }\n leafs.sort((a, b) => b.bst.N - a.bst.N);\n for (var i = 0; i < leafs.length; i++) leafs[i].ind = i;\n return [root, leafs];\n }\n\n function getNearest(nd, r, g, b, a) {\n if (nd.left == null) { nd.tdst = dist(nd.est.q, r, g, b, a); return nd; }\n const pd = planeDst(nd.est, r, g, b, a);\n\n let node0 = nd.left; let\n node1 = nd.right;\n if (pd > 0) { node0 = nd.right; node1 = nd.left; }\n\n const ln = getNearest(node0, r, g, b, a);\n if (ln.tdst <= pd * pd) return ln;\n const rn = getNearest(node1, r, g, b, a);\n return rn.tdst < ln.tdst ? rn : ln;\n }\n function planeDst(est, r, g, b, a) { const { e } = est; return e[0] * r + e[1] * g + e[2] * b + e[3] * a - est.eMq; }\n function dist(q, r, g, b, a) {\n const d0 = r - q[0]; const d1 = g - q[1]; const d2 = b - q[2]; const\n d3 = a - q[3]; return d0 * d0 + d1 * d1 + d2 * d2 + d3 * d3;\n }\n\n function splitPixels(nimg, nimg32, i0, i1, e, eMq) {\n i1 -= 4;\n const shfs = 0;\n while (i0 < i1) {\n while (vecDot(nimg, i0, e) <= eMq) i0 += 4;\n while (vecDot(nimg, i1, e) > eMq) i1 -= 4;\n if (i0 >= i1) break;\n\n const t = nimg32[i0 >> 2]; nimg32[i0 >> 2] = nimg32[i1 >> 2]; nimg32[i1 >> 2] = t;\n\n i0 += 4; i1 -= 4;\n }\n while (vecDot(nimg, i0, e) > eMq) i0 -= 4;\n return i0 + 4;\n }\n function vecDot(nimg, i, e) {\n return nimg[i] * e[0] + nimg[i + 1] * e[1] + nimg[i + 2] * e[2] + nimg[i + 3] * e[3];\n }\n function stats(nimg, i0, i1) {\n const R = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n const m = [0, 0, 0, 0];\n const N = (i1 - i0) >> 2;\n for (let i = i0; i < i1; i += 4) {\n const r = nimg[i] * (1 / 255); const g = nimg[i + 1] * (1 / 255); const b = nimg[i + 2] * (1 / 255); const\n a = nimg[i + 3] * (1 / 255);\n // var r = nimg[i], g = nimg[i+1], b = nimg[i+2], a = nimg[i+3];\n m[0] += r; m[1] += g; m[2] += b; m[3] += a;\n\n R[0] += r * r; R[1] += r * g; R[2] += r * b; R[3] += r * a;\n\t\t\t\t\t\t R[5] += g * g; R[6] += g * b; R[7] += g * a;\n\t\t\t\t\t\t\t\t\t\t R[10] += b * b; R[11] += b * a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t R[15] += a * a;\n }\n R[4] = R[1]; R[8] = R[2]; R[9] = R[6]; R[12] = R[3]; R[13] = R[7]; R[14] = R[11];\n\n return { R, m, N };\n }\n function estats(stats) {\n const { R } = stats;\n const { m } = stats;\n const { N } = stats;\n\n // when all samples are equal, but N is large (millions), the Rj can be non-zero ( 0.0003.... - precission error)\n const m0 = m[0]; const m1 = m[1]; const m2 = m[2]; const m3 = m[3]; const\n iN = (N == 0 ? 0 : 1 / N);\n const Rj = [\n R[0] - m0 * m0 * iN, R[1] - m0 * m1 * iN, R[2] - m0 * m2 * iN, R[3] - m0 * m3 * iN,\n R[4] - m1 * m0 * iN, R[5] - m1 * m1 * iN, R[6] - m1 * m2 * iN, R[7] - m1 * m3 * iN,\n R[8] - m2 * m0 * iN, R[9] - m2 * m1 * iN, R[10] - m2 * m2 * iN, R[11] - m2 * m3 * iN,\n R[12] - m3 * m0 * iN, R[13] - m3 * m1 * iN, R[14] - m3 * m2 * iN, R[15] - m3 * m3 * iN,\n ];\n\n const A = Rj; const\n M = M4;\n let b = [Math.random(), Math.random(), Math.random(), Math.random()]; let mi = 0; let\n tmi = 0;\n\n if (N != 0) {\n for (let i = 0; i < 16; i++) {\n b = M.multVec(A, b); tmi = Math.sqrt(M.dot(b, b)); b = M.sml(1 / tmi, b);\n if (i != 0 && Math.abs(tmi - mi) < 1e-9) break; mi = tmi;\n }\n }\n // b = [0,0,1,0]; mi=N;\n const q = [m0 * iN, m1 * iN, m2 * iN, m3 * iN];\n const eMq255 = M.dot(M.sml(255, q), b);\n\n return {\n Cov: Rj,\n q,\n e: b,\n L: mi,\n eMq255,\n eMq: M.dot(b, q),\n rgba: (((Math.round(255 * q[3]) << 24) | (Math.round(255 * q[2]) << 16) | (Math.round(255 * q[1]) << 8) | (Math.round(255 * q[0]) << 0)) >>> 0),\n };\n }\n var M4 = {\n multVec(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3] * v[3],\n m[4] * v[0] + m[5] * v[1] + m[6] * v[2] + m[7] * v[3],\n m[8] * v[0] + m[9] * v[1] + m[10] * v[2] + m[11] * v[3],\n m[12] * v[0] + m[13] * v[1] + m[14] * v[2] + m[15] * v[3],\n ];\n },\n dot(x, y) { return x[0] * y[0] + x[1] * y[1] + x[2] * y[2] + x[3] * y[3]; },\n sml(a, y) { return [a * y[0], a * y[1], a * y[2], a * y[3]]; },\n };\n\n function concatRGBA(bufs) {\n let tlen = 0;\n for (var i = 0; i < bufs.length; i++) tlen += bufs[i].byteLength;\n const nimg = new Uint8Array(tlen); let\n noff = 0;\n for (var i = 0; i < bufs.length; i++) {\n const img = new Uint8Array(bufs[i]); const\n il = img.length;\n for (let j = 0; j < il; j += 4) {\n let r = img[j]; let g = img[j + 1]; let b = img[j + 2]; const\n a = img[j + 3];\n if (a == 0) r = g = b = 0;\n nimg[noff + j] = r; nimg[noff + j + 1] = g; nimg[noff + j + 2] = b; nimg[noff + j + 3] = a;\n }\n noff += il;\n }\n return nimg.buffer;\n }\n\n UPNG.encode = encode;\n UPNG.encodeLL = encodeLL;\n UPNG.encode.compress = compress;\n UPNG.encode.dither = dither;\n\n UPNG.quantize = quantize;\n UPNG.quantize.getKDtree = getKDtree;\n UPNG.quantize.getNearest = getNearest;\n}());\n\nexport default UPNG;\n","// https://github.com/marcosvega91/canvas-to-bmp/blob/77aaf2221647a6533b1926cb637c7cd2bc432d9b/src/canvastobmp.js\n\n/**\n * Static helper object that can convert a CORS-compliant canvas element\n * to a 32-bits BMP file (buffer, Blob and data-URI).\n *\n * @type {{toArrayBuffer: Function, toBlob: Function, toDataURL: Function}}\n * @namespace\n */\nconst CanvasToBMP = {\n\n /**\n\t * Convert a canvas element to ArrayBuffer containing a BMP file\n\t * with support for 32-bit format (alpha). The call is asynchronous\n\t * so a callback must be provided.\n\t *\n\t * Note that CORS requirement must be fulfilled.\n\t *\n\t * @param {HTMLCanvasElement} canvas - the canvas element to convert\n\t * @param {function} callback - called when conversion is done. Argument is ArrayBuffer\n\t * @static\n\t */\n toArrayBuffer(canvas, callback) {\n const w = canvas.width;\n const h = canvas.height;\n const w4 = w << 2;\n const idata = canvas.getContext('2d').getImageData(0, 0, w, h);\n const data32 = new Uint32Array(idata.data.buffer);\n\n const stride = ((32 * w + 31) / 32) << 2;\n const pixelArraySize = stride * h;\n const fileLength = 122 + pixelArraySize;\n\n const file = new ArrayBuffer(fileLength);\n const view = new DataView(file);\n const blockSize = 1 << 20;\n let block = blockSize;\n let y = 0; let x; let v; let a; let pos = 0; let p; let\n s = 0;\n\n // Header\n set16(0x4d42);\t\t\t\t\t\t\t\t\t\t// BM\n set32(fileLength);\t\t\t\t\t\t\t\t\t// total length\n seek(4);\t\t\t\t\t\t\t\t\t\t\t// skip unused fields\n set32(0x7a);\t\t\t\t\t\t\t\t\t\t// offset to pixels\n\n // DIB header\n set32(0x6c);\t\t\t\t\t\t\t\t\t\t// header size (108)\n set32(w);\n set32(-h >>> 0);\t\t\t\t\t\t\t\t\t// negative = top-to-bottom\n set16(1);\t\t\t\t\t\t\t\t\t\t\t// 1 plane\n set16(32);\t\t\t\t\t\t\t\t\t\t\t// 32-bits (RGBA)\n set32(3);\t\t\t\t\t\t\t\t\t\t\t// no compression (BI_BITFIELDS, 3)\n set32(pixelArraySize);\t\t\t\t\t\t\t\t// bitmap size incl. padding (stride x height)\n set32(2835);\t\t\t\t\t\t\t\t\t\t// pixels/meter h (~72 DPI x 39.3701 inch/m)\n set32(2835);\t\t\t\t\t\t\t\t\t\t// pixels/meter v\n seek(8);\t\t\t\t\t\t\t\t\t\t\t// skip color/important colors\n set32(0xff0000);\t\t\t\t\t\t\t\t\t// red channel mask\n set32(0xff00);\t\t\t\t\t\t\t\t\t\t// green channel mask\n set32(0xff);\t\t\t\t\t\t\t\t\t\t// blue channel mask\n set32(0xff000000);\t\t\t\t\t\t\t\t\t// alpha channel mask\n set32(0x57696e20);\t\t\t\t\t\t\t\t\t// \" win\" color space\n\n (function convert() {\n // bitmap data, change order of ABGR to BGRA (msb-order)\n while (y < h && block > 0) {\n p = 0x7a + y * stride;\t\t\t\t\t\t// offset + stride x height\n x = 0;\n\n while (x < w4) {\n block--;\n v = data32[s++];\t\t\t\t\t\t// get ABGR\n a = v >>> 24;\t\t\t\t\t\t\t// alpha\n view.setUint32(p + x, (v << 8) | a); // set BGRA (msb order)\n x += 4;\n }\n y++;\n }\n\n if (s < data32.length) {\n block = blockSize;\n setTimeout(convert, CanvasToBMP._dly);\n } else callback(file);\n }());\n\n // helper method to move current buffer position\n function set16(data) {\n view.setUint16(pos, data, true);\n pos += 2;\n }\n\n function set32(data) {\n view.setUint32(pos, data, true);\n pos += 4;\n }\n\n function seek(delta) { pos += delta; }\n },\n\n /**\n\t * Converts a canvas to BMP file, returns a Blob representing the\n\t * file. This can be used with URL.createObjectURL(). The call is\n\t * asynchronous so a callback must be provided.\n\t *\n\t * Note that CORS requirement must be fulfilled.\n\t *\n\t * @param {HTMLCanvasElement} canvas - the canvas element to convert\n\t * @param {function} callback - called when conversion is done. Argument is a Blob\n\t * @static\n\t */\n toBlob(canvas, callback) {\n this.toArrayBuffer(canvas, (file) => {\n callback(new Blob([file], { type: 'image/bmp' }));\n });\n },\n\n // /**\n\t// * Converts a canvas to BMP file, returns an ObjectURL (for Blob)\n\t// * representing the file. The call is asynchronous so a callback\n\t// * must be provided.\n\t// *\n\t// * **Important**: To avoid memory-leakage you must revoke the returned\n\t// * ObjectURL when no longer needed:\n\t// *\n\t// * var _URL = self.URL || self.webkitURL || self;\n\t// * _URL.revokeObjectURL(url);\n\t// *\n\t// * Note that CORS requirement must be fulfilled.\n\t// *\n\t// * @param {HTMLCanvasElement} canvas - the canvas element to convert\n\t// * @param {function} callback - called when conversion is done. Argument is a Blob\n\t// * @static\n\t// */\n // toObjectURL(canvas, callback) {\n // this.toBlob(canvas, (blob) => {\n // const url = self.URL || self.webkitURL || self;\n // callback(url.createObjectURL(blob));\n // });\n // },\n\n // /**\n\t// * Converts the canvas to a data-URI representing a BMP file. The\n\t// * call is asynchronous so a callback must be provided.\n\t// *\n\t// * Note that CORS requirement must be fulfilled.\n\t// *\n\t// * @param {HTMLCanvasElement} canvas - the canvas element to convert\n\t// * @param {function} callback - called when conversion is done. Argument is an data-URI (string)\n\t// * @static\n\t// */\n // toDataURL(canvas, callback) {\n // this.toArrayBuffer(canvas, (file) => {\n // const buffer = new Uint8Array(file);\n // const blockSize = 1 << 20;\n // let block = blockSize;\n // let bs = ''; let base64 = ''; let i = 0; let\n // l = buffer.length;\n\n // // This is a necessary step before we can use btoa. We can\n // // replace this later with a direct byte-buffer to Base-64 routine.\n // // Will do for now, impacts only with very large bitmaps (in which\n // // case toBlob should be used).\n // (function prepBase64() {\n // while (i < l && block-- > 0) bs += String.fromCharCode(buffer[i++]);\n\n // if (i < l) {\n // block = blockSize;\n // setTimeout(prepBase64, CanvasToBMP._dly);\n // } else {\n // // convert string to Base-64\n // i = 0;\n // l = bs.length;\n // block = 180000;\t\t// must be divisible by 3\n\n // (function toBase64() {\n // base64 += btoa(bs.substr(i, block));\n // i += block;\n // (i < l)\n // ? setTimeout(toBase64, CanvasToBMP._dly)\n // : callback(`data:image/bmp;base64,${base64}`);\n // }());\n // }\n // }());\n // });\n // },\n _dly: 9,\t// delay for async operations\n};\nexport default CanvasToBMP;\n","export default {\n CHROME: 'CHROME',\n FIREFOX: 'FIREFOX',\n DESKTOP_SAFARI: 'DESKTOP_SAFARI',\n IE: 'IE',\n IOS: 'IOS',\n ETC: 'ETC',\n};\n","import BROWSER_NAME from './browser-name';\n\n// see: https://github.com/jhildenbiddle/canvas-size#test-results\n// see: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nexport default {\n [BROWSER_NAME.CHROME]: 16384,\n [BROWSER_NAME.FIREFOX]: 11180,\n [BROWSER_NAME.DESKTOP_SAFARI]: 16384,\n [BROWSER_NAME.IE]: 8192,\n [BROWSER_NAME.IOS]: 4096,\n [BROWSER_NAME.ETC]: 8192,\n};\n","import UPNG from './UPNG';\nimport CanvasToBMP from './canvastobmp';\nimport MAX_CANVAS_SIZE from './config/max-canvas-size';\nimport BROWSER_NAME from './config/browser-name';\n\nconst isBrowser = typeof window !== 'undefined'; // change browser environment to support SSR\nconst inWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n\n// add support for cordova-plugin-file\nconst moduleMapper = isBrowser && window.cordova && window.cordova.require && window.cordova.require('cordova/modulemapper');\nexport const CustomFile = (isBrowser || inWebWorker) && ((moduleMapper && moduleMapper.getOriginalSymbol(window, 'File')) || (typeof File !== 'undefined' && File));\nexport const CustomFileReader = (isBrowser || inWebWorker) && ((moduleMapper && moduleMapper.getOriginalSymbol(window, 'FileReader')) || (typeof FileReader !== 'undefined' && FileReader));\n\n/**\n * getFilefromDataUrl\n *\n * @param {string} dataUrl\n * @param {string} filename\n * @param {number} [lastModified=Date.now()]\n * @returns {Promise<File | Blob>}\n */\nexport function getFilefromDataUrl(dataUrl, filename, lastModified = Date.now()) {\n return new Promise((resolve) => {\n const arr = dataUrl.split(',');\n const mime = arr[0].match(/:(.*?);/)[1];\n const bstr = globalThis.atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n const file = new Blob([u8arr], { type: mime });\n file.name = filename;\n file.lastModified = lastModified;\n resolve(file);\n\n // Safari has issue with File constructor not being able to POST in FormData\n // https://github.com/Donaldcwl/browser-image-compression/issues/8\n // https://bugs.webkit.org/show_bug.cgi?id=165081\n // let file\n // try {\n // file = new File([u8arr], filename, { type: mime }) // Edge do not support File constructor\n // } catch (e) {\n // file = new Blob([u8arr], { type: mime })\n // file.name = filename\n // file.lastModified = lastModified\n // }\n // resolve(file)\n });\n}\n\n/**\n * getDataUrlFromFile\n *\n * @param {File | Blob} file\n * @returns {Promise<string>}\n */\nexport function getDataUrlFromFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new CustomFileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = (e) => reject(e);\n reader.readAsDataURL(file);\n });\n}\n\n/**\n * loadImage\n *\n * @param {string} src\n * @returns {Promise<HTMLImageElement>}\n */\nexport function loadImage(src) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = (e) => reject(e);\n img.src = src;\n });\n}\n\n/**\n * getBrowserName\n *\n * Extracts the browser name from the useragent.\n *\n * ref: https://stackoverflow.com/a/26358856\n *\n * @returns {string}\n */\nexport function getBrowserName() {\n if (getBrowserName.cachedResult !== undefined) {\n return getBrowserName.cachedResult;\n }\n let browserName = BROWSER_NAME.ETC;\n const { userAgent } = navigator;\n if (/Chrom(e|ium)/i.test(userAgent)) {\n browserName = BROWSER_NAME.CHROME;\n } else if (/iP(ad|od|hone)/i.test(userAgent) && /WebKit/i.test(userAgent)) {\n browserName = BROWSER_NAME.IOS;\n } else if (/Safari/i.test(userAgent)) {\n browserName = BROWSER_NAME.DESKTOP_SAFARI;\n } else if (/Firefox/i.test(userAgent)) {\n browserName = BROWSER_NAME.FIREFOX;\n } else if (/MSIE/i.test(userAgent) || (!!document.documentMode) === true) { // IF IE > 10\n browserName = BROWSER_NAME.IE;\n }\n getBrowserName.cachedResult = browserName;\n return getBrowserName.cachedResult;\n}\n\n/**\n * approximateBelowCanvasMaximumSizeOfBrowser\n *\n * it uses binary search to converge below the browser's maximum Canvas size.\n *\n * @param {number} initWidth\n * @param {number} initHeight\n * @returns {object}\n */\nexport function approximateBelowMaximumCanvasSizeOfBrowser(initWidth, initHeight) {\n const browserName = getBrowserName();\n const maximumCanvasSize = MAX_CANVAS_SIZE[browserName];\n\n let width = initWidth;\n let height = initHeight;\n let size = width * height;\n const ratio = width > height ? height / width : width / height;\n\n while (size > maximumCanvasSize * maximumCanvasSize) {\n const halfSizeWidth = (maximumCanvasSize + width) / 2;\n const halfSizeHeight = (maximumCanvasSize + height) / 2;\n if (halfSizeWidth < halfSizeHeight) {\n height = halfSizeHeight;\n width = halfSizeHeight * ratio;\n } else {\n height = halfSizeWidth * ratio;\n width = halfSizeWidth;\n }\n\n size = width * height;\n }\n\n return {\n width, height,\n };\n}\n\n/**\n * get new Canvas and it's context\n * @param width\n * @param height\n * @returns {[HTMLCanvasElement | OffscreenCanvas, CanvasRenderingContext2D]}\n */\nexport function getNewCanvasAndCtx(width, height) {\n let canvas;\n let ctx;\n try {\n canvas = new OffscreenCanvas(width, height);\n ctx = canvas.getContext('2d');\n if (ctx === null) {\n throw new Error('getContext of OffscreenCanvas returns null');\n }\n } catch (e) {\n canvas = document.createElement('canvas');\n ctx = canvas.getContext('2d');\n }\n canvas.width = width;\n canvas.height = height;\n // ctx.fillStyle = '#fff'\n // ctx.fillRect(0, 0, width, height)\n return [canvas, ctx];\n}\n\n/**\n * drawImageInCanvas\n *\n * @param {HTMLImageElement} img\n * @param {string} [fileType=undefined]\n * @returns {HTMLCanvasElement | OffscreenCanvas}\n */\nexport function drawImageInCanvas(img, fileType = undefined) {\n const { width, height } = approximateBelowMaximumCanvasSizeOfBrowser(img.width, img.height);\n const [canvas, ctx] = getNewCanvasAndCtx(width, height);\n if (fileType && /jpe?g/.test(fileType)) {\n ctx.fillStyle = 'white'; // to fill the transparent background with white color for png file in jpeg extension\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\n\n/**\n * Detect IOS device\n * see: https://stackoverflow.com/a/9039885\n * @returns {boolean} isIOS device\n */\nexport function isIOS() {\n if (isIOS.cachedResult !== undefined) {\n return isIOS.cachedResult;\n }\n isIOS.cachedResult = [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && typeof document !== 'undefined' && 'ontouchend' in document);\n return isIOS.cachedResult;\n}\n\n/**\n * drawFileInCanvas\n *\n * @param {File | Blob} file\n * @returns {Promise<[ImageBitmap | HTMLImageElement, HTMLCanvasElement | OffscreenCanvas]>}\n */\nexport async function drawFileInCanvas(file, options = {}) {\n let img;\n try {\n if (isIOS() || [BROWSER_NAME.DESKTOP_SAFARI, BROWSER_NAME.MOBILE_SAFARI].includes(getBrowserName())) {\n throw new Error('Skip createImageBitmap on IOS and Safari'); // see https://github.com/Donaldcwl/browser-image-compression/issues/118\n }\n img = await createImageBitmap(file);\n } catch (e) {\n if (process.env.BUILD === 'development') {\n console.error(e);\n }\n try {\n const dataUrl = await getDataUrlFromFile(file);\n img = await loadImage(dataUrl);\n } catch (e2) {\n if (process.env.BUILD === 'development') {\n console.error(e2);\n }\n throw e2;\n }\n }\n const canvas = drawImageInCanvas(img, options.fileType || file.type);\n return [img, canvas];\n}\n\n/**\n * canvasToFile\n *\n * @param {HTMLCanvasElement | OffscreenCanvas} canvas\n * @param {string} fileType\n * @param {string} fileName\n * @param {number} fileLastModified\n * @param {number} [quality]\n * @returns {Promise<File | Blob>}\n */\nexport async function canvasToFile(canvas, fileType, fileName, fileLastModified, quality = 1) {\n let file;\n if (fileType === 'image/png') {\n const ctx = canvas.getContext('2d');\n const { data } = ctx.getImageData(0, 0, canvas.width, canvas.height);\n if (process.env.BUILD === 'development') {\n console.log('png no. of colors', 4096 * quality);\n }\n const png = UPNG.encode([data.buffer], canvas.width, canvas.height, 4096 * quality);\n file = new Blob([png], { type: fileType });\n file.name = fileName;\n file.lastModified = fileLastModified;\n } else if (fileType === 'image/bmp') {\n file = await new Promise((resolve) => CanvasToBMP.toBlob(canvas, resolve));\n file.name = fileName;\n file.lastModified = fileLastModified;\n } else if (typeof OffscreenCanvas === 'function' && canvas instanceof OffscreenCanvas) { // checked on Win Chrome 83, MacOS Chrome 83\n file = await canvas.convertToBlob({ type: fileType, quality });\n file.name = fileName;\n file.lastModified = fileLastModified;\n // some browser do not support quality parameter, see: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob\n // } else if (typeof canvas.toBlob === 'function') {\n // file = await new Promise(resolve => canvas.toBlob(resolve, fileType, quality))\n } else { // checked on Win Edge 44, Win IE 11, Win Firefox 76, MacOS Firefox 77, MacOS Safari 13.1\n const dataUrl = canvas.toDataURL(fileType, quality);\n file = await getFilefromDataUrl(dataUrl, fileName, fileLastModified);\n }\n return file;\n}\n\n/**\n * clear Canvas memory\n * @param canvas\n * @returns null\n */\nexport function cleanupCanvasMemory(canvas) {\n // garbage clean canvas for safari\n // ref: https://bugs.webkit.org/show_bug.cgi?id=195325\n // eslint-disable-next-line no-param-reassign\n canvas.width = 0;\n // eslint-disable-next-line no-param-reassign\n canvas.height = 0;\n}\n\n// Check if browser supports automatic image orientation\n// see https://github.com/blueimp/JavaScript-Load-Image/blob/1e4df707821a0afcc11ea0720ee403b8759f3881/js/load-image-orientation.js#L37-L53\nexport async function isAutoOrientationInBrowser() {\n if (isAutoOrientationInBrowser.cachedResult !== undefined) return isAutoOrientationInBrowser.cachedResult;\n\n // black 2x1 JPEG, with the following meta information set:\n // EXIF Orientation: 6 (Rotated 90° CCW)\n const testImageURL = 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA'\n + 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA'\n + 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE'\n + 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x'\n + 'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA'\n + 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==';\n const testImageFile = await getFilefromDataUrl(testImageURL, 'test.jpg', Date.now());\n\n const testImageCanvas = (await drawFileInCanvas(testImageFile))[1];\n const testImageFile2 = await canvasToFile(testImageCanvas, testImageFile.type, testImageFile.name, testImageFile.lastModified);\n cleanupCanvasMemory(testImageCanvas);\n const img = (await drawFileInCanvas(testImageFile2))[0];\n // console.log('img', img.width, img.height)\n\n isAutoOrientationInBrowser.cachedResult = img.width === 1 && img.height === 2;\n return isAutoOrientationInBrowser.cachedResult;\n}\n\n/**\n * getExifOrientation\n * get image exif orientation info\n * source: https://stackoverflow.com/a/32490603/10395024\n *\n * @param {File | Blob} file\n * @returns {Promise<number>} - orientation id, see https://i.stack.imgur.com/VGsAj.gif\n */\nexport function getExifOrientation(file) {\n return new Promise((resolve, reject) => {\n const reader = new CustomFileReader();\n reader.onload = (e) => {\n const view = new DataView(e.target.result);\n if (view.getUint16(0, false) != 0xFFD8) {\n return resolve(-2); // not jpeg\n }\n const length = view.byteLength;\n let offset = 2;\n while (offset < length) {\n if (view.getUint16(offset + 2, false) <= 8) return resolve(-1);\n const marker = view.getUint16(offset, false);\n offset += 2;\n if (marker == 0xFFE1) {\n if (view.getUint32(offset += 2, false) != 0x45786966) {\n return resolve(-1);\n }\n\n const little = view.getUint16(offset += 6, false) == 0x4949;\n offset += view.getUint32(offset + 4, little);\n const tags = view.getUint16(offset, little);\n offset += 2;\n for (let i = 0; i < tags; i++) {\n if (view.getUint16(offset + (i * 12), little) == 0x0112) {\n return resolve(view.getUint16(offset + (i * 12) + 8, little));\n }\n }\n } else if ((marker & 0xFF00) != 0xFF00) {\n break;\n } else {\n offset += view.getUint16(offset, false);\n }\n }\n return resolve(-1); // not defined\n };\n reader.onerror = (e) => reject(e);\n reader.readAsArrayBuffer(file);\n });\n}\n\n/**\n *\n * @param {HTMLCanvasElement | OffscreenCanvas} canvas\n * @param options\n * @returns {HTMLCanvasElement | OffscreenCanvas}\n */\nexport function handleMaxWidthOrHeight(canvas, options) {\n const { width } = canvas;\n const { height } = canvas;\n const { maxWidthOrHeight } = options;\n\n const needToHandle = isFinite(maxWidthOrHeight) && (width > maxWidthOrHeight || height > maxWidthOrHeight);\n\n let newCanvas = canvas;\n let ctx;\n\n if (needToHandle) {\n [newCanvas, ctx] = getNewCanvasAndCtx(width, height);\n if (width > height) {\n newCanvas.width = maxWidthOrHeight;\n newCanvas.height = (height / width) * maxWidthOrHeight;\n } else {\n newCanvas.width = (width / height) * maxWidthOrHeight;\n newCanvas.height = maxWidthOrHeight;\n }\n ctx.drawImage(canvas, 0, 0, newCanvas.width, newCanvas.height);\n\n cleanupCanvasMemory(canvas);\n }\n\n return newCanvas;\n}\n\n/**\n * followExifOrientation\n * source: https://stackoverflow.com/a/40867559/10395024\n *\n * @param {HTMLCanvasElement | OffscreenCanvas} canvas\n * @param {number} exifOrientation\n * @returns {HTMLCanvasElement | OffscreenCanvas} canvas\n */\nexport function followExifOrientation(canvas, exifOrientation) {\n const { width } = canvas;\n const { height } = canvas;\n\n const [newCanvas, ctx] = getNewCanvasAndCtx(width, height);\n\n // set proper canvas dimensions before transform & export\n if (exifOrientation > 4 && exifOrientation < 9) {\n newCanvas.width = height;\n newCanvas.height = width;\n } else {\n newCanvas.width = width;\n newCanvas.height = height;\n }\n\n // transform context before drawing image\n switch (exifOrientation) {\n case 2:\n ctx.transform(-1, 0, 0, 1, width, 0);\n break;\n case 3:\n ctx.transform(-1, 0, 0, -1, width, height);\n break;\n case 4:\n ctx.transform(1, 0, 0, -1, 0, height);\n break;\n case 5:\n ctx.transform(0, 1, 1, 0, 0, 0);\n break;\n case 6:\n ctx.transform(0, 1, -1, 0, height, 0);\n break;\n case 7:\n ctx.transform(0, -1, -1, 0, height, width);\n break;\n case 8:\n ctx.transform(0, -1, 1, 0, 0, width);\n break;\n default:\n break;\n }\n\n ctx.drawImage(canvas, 0, 0, width, height);\n\n cleanupCanvasMemory(canvas);\n\n return newCanvas;\n}\n","import {\n canvasToFile,\n cleanupCanvasMemory,\n drawFileInCanvas,\n followExifOrientation,\n getExifOrientation,\n getNewCanvasAndCtx,\n handleMaxWidthOrHeight,\n isAutoOrientationInBrowser,\n} from './utils';\n\n/**\n * Compress an image file.\n *\n * @param {File} file\n * @param {Object} options\n * @param {number} [options.maxSizeMB=Number.POSITIVE_INFINITY]\n * @param {number} [options.maxWidthOrHeight=undefined]\n * @param {boolean} [options.useWebWorker=true]\n * @param {number} [options.maxIteration=10]\n * @param {number} [options.exifOrientation] - default to be the exif orientation from the image file\n * @param {Function} [options.onProgress] - a function takes one progress argument (progress from 0 to 100)\n * @param {string} [options.fileType] - default to be the original mime type from the image file\n * @param {number} [options.initialQuality=1.0]\n * @param {boolean} [options.alwaysKeepResolution=false]\n * @param {AbortSignal} [options.signal]\n * @param {number} previousProgress - for internal try catch rerunning start from previous progress\n * @returns {Promise<File | Blob>}\n */\nexport default async function compress(file, options, previousProgress = 0) {\n let progress = previousProgress;\n\n function incProgress(inc = 5) {\n if (options.signal && options.signal.aborted) {\n throw options.signal.reason;\n }\n progress += inc;\n options.onProgress(Math.min(progress, 100));\n }\n\n function setProgress(p) {\n if (options.signal && options.signal.aborted) {\n throw options.signal.reason;\n }\n progress = Math.min(Math.max(p, progress), 100);\n options.onProgress(progress);\n }\n\n let remainingTrials = options.maxIteration || 10;\n\n const maxSizeByte = options.maxSizeMB * 1024 * 1024;\n\n incProgress();\n\n // drawFileInCanvas\n const [, origCanvas] = await drawFileInCanvas(file, options);\n\n incProgress();\n\n // handleMaxWidthOrHeight\n const maxWidthOrHeightFixedCanvas = handleMaxWidthOrHeight(origCanvas, options);\n\n incProgress();\n\n // exifOrientation\n const exifOrientation = options.exifOrientation || await getExifOrientation(file);\n incProgress();\n const orientationFixedCanvas = (await isAutoOrientationInBrowser()) ? maxWidthOrHeightFixedCanvas : followExifOrientation(maxWidthOrHeightFixedCanvas, exifOrientation);\n incProgress();\n\n let quality = options.initialQuality || 1.0;\n\n const outputFileType = options.fileType || file.type;\n\n const tempFile = await canvasToFile(orientationFixedCanvas, outputFileType, file.name, file.lastModified, quality);\n incProgress();\n\n const origExceedMaxSize = tempFile.size > maxSizeByte;\n const sizeBecomeLarger = tempFile.size > file.size;\n if (process.env.BUILD === 'development') {\n console.log('outputFileType', outputFileType);\n console.log('original file size', file.size);\n console.log('current file size', tempFile.size);\n }\n\n // check if we need to compress or resize\n if (!origExceedMaxSize && !sizeBecomeLarger) {\n // no need to compress\n if (process.env.BUILD === 'development') {\n console.log('no need to compress');\n }\n setProgress(100);\n return tempFile;\n }\n\n const sourceSize = file.size;\n const renderedSize = tempFile.size;\n let currentSize = renderedSize;\n let compressedFile;\n let newCanvas;\n let ctx;\n let canvas = orientationFixedCanvas;\n const shouldReduceResolution = !options.alwaysKeepResolution && origExceedMaxSize;\n while (remainingTrials-- && (currentSize > maxSizeByte || currentSize > sourceSize)) {\n const newWidth = shouldReduceResolution ? canvas.width * 0.95 : canvas.width;\n const newHeight = shouldReduceResolution ? canvas.height * 0.95 : canvas.height;\n if (process.env.BUILD === 'development') {\n console.log('current width', newWidth);\n console.log('current height', newHeight);\n console.log('current quality', quality);\n }\n [newCanvas, ctx] = getNewCanvasAndCtx(newWidth, newHeight);\n\n ctx.drawImage(canvas, 0, 0, newWidth, newHeight);\n\n if (outputFileType === 'image/png') {\n quality *= 0.85;\n } else {\n quality *= 0.95;\n }\n // eslint-disable-next-line no-await-in-loop\n compressedFile = await canvasToFile(newCanvas, outputFileType, file.name, file.lastModified, quality);\n\n cleanupCanvasMemory(canvas);\n\n canvas = newCanvas;\n\n currentSize = compressedFile.size;\n // console.log('currentSize', currentSize)\n setProgress(Math.min(99, Math.floor(((renderedSize - currentSize) / (renderedSize - maxSizeByte)) * 100)));\n }\n\n cleanupCanvasMemory(canvas);\n cleanupCanvasMemory(newCanvas);\n cleanupCanvasMemory(maxWidthOrHeightFixedCanvas);\n cleanupCanvasMemory(orientationFixedCanvas);\n cleanupCanvasMemory(origCanvas);\n\n setProgress(100);\n return compressedFile;\n}\n","function createWorkerScriptURL(script) {\n const blobArgs = [];\n if (typeof script === 'function') {\n blobArgs.push(`(${script})()`);\n } else {\n blobArgs.push(script);\n }\n return URL.createObjectURL(new Blob(blobArgs));\n}\n\nconst workerScript = `\nlet scriptImported = false\nself.addEventListener('message', async (e) => {\n const { file, id, imageCompressionLibUrl, options } = e.data\n options.onProgress = (progress) => self.postMessage({ progress, id })\n try {\n if (!scriptImported) {\n // console.log('[worker] importScripts', imageCompressionLibUrl)\n self.importScripts(imageCompressionLibUrl)\n scriptImported = true\n }\n // console.log('[worker] self', self)\n const compressedFile = await imageCompression(file, options)\n self.postMessage({ file: compressedFile, id })\n } catch (e) {\n // console.error('[worker] error', e)\n self.postMessage({ error: e.message + '\\\\n' + e.stack, id })\n }\n})\n`;\nlet workerScriptURL;\n\nexport default function compressOnWebWorker(file, options) {\n return new Promise((resolve, reject) => {\n if (!workerScriptURL) {\n workerScriptURL = createWorkerScriptURL(workerScript);\n }\n const worker = new Worker(workerScriptURL);\n\n function handler(e) {\n if (options.signal && options.signal.aborted) {\n worker.terminate();\n return;\n }\n if (e.data.progress !== undefined) {\n options.onProgress(e.data.progress);\n return;\n }\n if (e.data.error) {\n reject(new Error(e.data.error));\n worker.terminate();\n return;\n }\n resolve(e.data.file);\n worker.terminate();\n }\n\n worker.addEventListener('message', handler);\n worker.addEventListener('error', reject);\n if (options.signal) {\n options.signal.addEventListener('abort', () => {\n reject(options.signal.reason);\n worker.terminate();\n });\n }\n\n worker.postMessage({\n file,\n imageCompressionLibUrl: options.libURL,\n options: { ...options, onProgress: undefined, signal: undefined },\n });\n });\n}\n","import copyExifWithoutOrientation from './copyExifWithoutOrientation';\nimport compress from './image-compression';\nimport {\n canvasToFile,\n drawFileInCanvas,\n drawImageInCanvas,\n getDataUrlFromFile,\n getFilefromDataUrl,\n loadImage,\n getExifOrientation,\n handleMaxWidthOrHeight,\n followExifOrientation,\n CustomFile,\n cleanupCanvasMemory,\n isAutoOrientationInBrowser,\n approximateBelowMaximumCanvasSizeOfBrowser,\n getBrowserName,\n} from './utils';\nimport compressOnWebWorker from './web-worker';\n\n/**\n * Compress an image file.\n *\n * @param {File} file\n * @param {Object} options\n * @param {number} [options.maxSizeMB=Number.POSITIVE_INFINITY]\n * @param {number} [options.maxWidthOrHeight=undefined]\n * @param {boolean} [options.useWebWorker=true]\n * @param {number} [options.maxIteration=10]\n * @param {number} [options.exifOrientation] - default to be the exif orientation from the image file\n * @param {Function} [options.onProgress] - a function takes one progress argument (progress from 0 to 100)\n * @param {string} [options.fileType] - default to be the original mime type from the image file\n * @param {number} [options.initialQuality=1.0]\n * @param {boolean} [options.alwaysKeepResolution=false]\n * @param {AbortSignal} [options.signal]\n * @param {boolean} [options.preserveExif] - preserve Exif metadata\n * @param {string} [options.libURL] - URL to this library\n * @returns {Promise<File | Blob>}\n */\nasync function imageCompression(file, options) {\n const opts = { ...options };\n\n let compressedFile;\n let progress = 0;\n const { onProgress } = opts;\n\n opts.maxSizeMB = opts.maxSizeMB || Number.POSITIVE_INFINITY;\n const useWebWorker = typeof opts.useWebWorker === 'boolean' ? opts.useWebWorker : true;\n delete opts.useWebWorker;\n opts.onProgress = (aProgress) => {\n progress = aProgress;\n if (typeof onProgress === 'function') {\n onProgress(progress);\n }\n };\n\n if (!(file instanceof Blob || file instanceof CustomFile)) {\n throw new Error('The file given is not an instance of Blob or File');\n } else if (!/^image/.test(file.type)) {\n throw new Error('The file given is not an image');\n }\n\n // try run in web worker, fall back to run in main thread\n // eslint-disable-next-line no-undef, no-restricted-globals\n const inWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n\n if (process.env.BUILD === 'development') {\n if ((useWebWorker && typeof Worker === 'function') || inWebWorker) {\n console.log('run compression in web worker');\n } else {\n console.log('run compression in main thread');\n }\n }\n\n if (useWebWorker && typeof Worker === 'function' && !inWebWorker) {\n try {\n // \"compressOnWebWorker\" is kind of like a recursion to call \"imageCompression\" again inside web worker\n opts.libURL = opts.libURL || `https://cdn.jsdelivr.net/npm/browser-image-compression@${__buildVersion__}/dist/browser-image-compression.js`;\n compressedFile = await compressOnWebWorker(file, opts);\n } catch (e) {\n if (process.env.BUILD === 'development') {\n console.warn('Run compression in web worker failed:', e, ', fall back to main thread');\n }\n compressedFile = await compress(file, opts);\n }\n } else {\n compressedFile = await compress(file, opts);\n }\n\n try {\n compressedFile.name = file.name;\n compressedFile.lastModified = file.lastModified;\n } catch (e) {\n if (process.env.BUILD === 'development') {\n console.error(e);\n }\n }\n\n try {\n if (opts.preserveExif && file.type === 'image/jpeg' && (!opts.fileType || (opts.fileType && opts.fileType === file.type))) {\n if (process.env.BUILD === 'development') {\n console.log('copyExifWithoutOrientation');\n }\n compressedFile = copyExifWithoutOrientation(file, compressedFile);\n }\n } catch (e) {\n if (process.env.BUILD === 'development') {\n console.error(e);\n }\n }\n\n return compressedFile;\n}\n\nimageCompression.getDataUrlFromFile = getDataUrlFromFile;\nimageCompression.getFilefromDataUrl = getFilefromDataUrl;\nimageCompression.loadImage = loadImage;\nimageCompression.drawImageInCanvas = drawImageInCanvas;\nimageCompression.drawFileInCanvas = drawFileInCanvas;\nimageCompression.canvasToFile = canvasToFile;\nimageCompression.getExifOrientation = getExifOrientation;\n\nimageCompression.handleMaxWidthOrHeight = handleMaxWidthOrHeight;\nimageCompression.followExifOrientation = followExifOrientation;\nimageCompression.cleanupCanvasMemory = cleanupCanvasMemory;\nimageCompression.isAutoOrientationInBrowser = isAutoOrientationInBrowser;\nimageCompression.approximateBelowMaximumCanvasSizeOfBrowser = approximateBelowMaximumCanvasSizeOfBrowser;\nimageCompression.copyExifWithoutOrientation = copyExifWithoutOrientation;\nimageCompression.getBrowserName = getBrowserName;\nimageCompression.version = __buildVersion__;\n\nexport default imageCompression;\n"]}
|