{"version":3,"sources":["jsdelivr-header.js","/npm/upng@1.0.1/index.js"],"names":[],"mappings":"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","file":"/npm/upng@1.0.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/upng@1.0.1/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var pako = require('pako');\r\n\r\nvar UPNG = {};\r\n\r\nUPNG.toRGBA8 = function(out)\r\n{\r\n    //console.log(out.ctype, out.depth);\r\n    var w = out.width, h = out.height, area = w*h, bpp = UPNG.decode._getBPP(out);\r\n    var bpl = Math.ceil(w*bpp/8);\t// bytes per line\r\n\r\n    var bf = new Uint8Array(area*4), bf32 = new Uint32Array(bf.buffer);\r\n    var data = out.data, ctype = out.ctype, depth = out.depth;\r\n    var rs = UPNG._bin.readUshort;\r\n\r\n    if     (ctype==6) { // RGB + alpha\r\n        var qarea = area<<2;\r\n        if(depth== 8) for(var i=0; i<qarea;i++) {  bf[i] = data[i];  /*if((i&3)==3) bf[i]=255;*/  }\r\n        if(depth==16) for(var i=0; i<qarea;i++) {  bf[i] = data[i<<1];  }\r\n    }\r\n    else if(ctype==2) {\t// RGB\r\n        var ts=out.tabs[\"tRNS\"], tr=-1, tg=-1, tb=-1;\r\n        if(ts) {  tr=ts[0];  tg=ts[1];  tb=ts[2];  }\r\n        if(depth== 8) for(var i=0; i<area; i++) {  var qi=i<<2, ti=i*3;  bf[qi] = data[ti];  bf[qi+1] = data[ti+1];  bf[qi+2] = data[ti+2];  bf[qi+3] = 255;\r\n            if(tr!=-1 && data[ti]   ==tr && data[ti+1]   ==tg && data[ti+2]   ==tb) bf[qi+3] = 0;  }\r\n        if(depth==16) for(var i=0; i<area; i++) {  var qi=i<<2, ti=i*6;  bf[qi] = data[ti];  bf[qi+1] = data[ti+2];  bf[qi+2] = data[ti+4];  bf[qi+3] = 255;\r\n            if(tr!=-1 && rs(data,ti)==tr && rs(data,ti+2)==tg && rs(data,ti+4)==tb) bf[qi+3] = 0;  }\r\n    }\r\n    else if(ctype==3) {\t// palette\r\n        var p=out.tabs[\"PLTE\"], ap=out.tabs[\"tRNS\"], tl=ap?ap.length:0;\r\n        if(depth==1) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\r\n            for(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>3)]>>(7-((i&7)<<0)))& 1), 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;  }\r\n        }\r\n        if(depth==2) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\r\n            for(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>2)]>>(6-((i&3)<<1)))& 3), 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;  }\r\n        }\r\n        if(depth==4) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\r\n            for(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>1)]>>(4-((i&1)<<2)))&15), 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;  }\r\n        }\r\n        if(depth==8) for(var i=0; i<area; i++ ) {  var qi=i<<2, j=data[i]                      , 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;  }\r\n    }\r\n    else if(ctype==4) {\t// gray + alpha\r\n        if(depth== 8)  for(var i=0; i<area; i++) {  var qi=i<<2, di=i<<1, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+1];  }\r\n        if(depth==16)  for(var i=0; i<area; i++) {  var qi=i<<2, di=i<<2, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+2];  }\r\n    }\r\n    else if(ctype==0) {\t// gray\r\n        var tr = out.tabs[\"tRNS\"] ? out.tabs[\"tRNS\"] : -1;\r\n        if(depth== 1) for(var i=0; i<area; i++) {  var qi=i<<2, gr=255*((data[i>>3]>>(7 -((i&7)   )))& 1), al=(gr==tr*255)?0:255;  bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\r\n        if(depth== 2) for(var i=0; i<area; i++) {  var qi=i<<2, gr= 85*((data[i>>2]>>(6 -((i&3)<<1)))& 3), al=(gr==tr* 85)?0:255;  bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\r\n        if(depth== 4) for(var i=0; i<area; i++) {  var qi=i<<2, gr= 17*((data[i>>1]>>(4 -((i&1)<<2)))&15), al=(gr==tr* 17)?0:255;  bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\r\n        if(depth== 8) for(var i=0; i<area; i++) {  var qi=i<<2, gr=data[i  ] , al=(gr           ==tr)?0:255;  bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\r\n        if(depth==16) for(var i=0; i<area; i++) {  var qi=i<<2, gr=data[i<<1], al=(rs(data,i<<1)==tr)?0:255;  bf32[i]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\r\n    }\r\n    else console.log(\"unsupported color type\", ctype);\r\n    return bf;\r\n}\r\n\r\nUPNG.encode = function(buff, w, h, ps)\r\n{\r\n    if(ps==null) ps=0;\r\n    var img = new Uint8Array(buff);\r\n    var data = new Uint8Array(img.length+100);\r\n    var wr=[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\r\n    for(var i=0; i<8; i++) data[i]=wr[i];\r\n    var offset = 8,  bin = UPNG._bin, crc = UPNG.crc.crc;\r\n\r\n    var nimg = UPNG.encode.compress(img, w, h, ps);\r\n\r\n    bin.writeUint (data,offset, 13);     offset+=4;\r\n    bin.writeASCII(data,offset,\"IHDR\");  offset+=4;\r\n    bin.writeUint (data,offset,w);  offset+=4;\r\n    bin.writeUint (data,offset,h);  offset+=4;\r\n    data[offset] = nimg.depth;  offset++;  // depth\r\n    data[offset] = nimg.ctype;  offset++;  // ctype\r\n    data[offset] = 0;  offset++;  // compress\r\n    data[offset] = 0;  offset++;  // filter\r\n    data[offset] = 0;  offset++;  // interlace\r\n    bin.writeUint (data,offset,crc(data,offset-17,17));  offset+=4; // crc\r\n\r\n\r\n    if(nimg.ctype==3) {\r\n        var dl = nimg.plte.length;\r\n        bin.writeUint (data,offset, dl*3);  offset+=4;\r\n        bin.writeASCII(data,offset,\"PLTE\");  offset+=4;\r\n        for(var i=0; i<dl; i++){\r\n            var ti=i*3, c=nimg.plte[i], r=(c)&255, g=(c>>8)&255, b=(c>>16)&255;\r\n            data[offset+ti+0]=r;  data[offset+ti+1]=g;  data[offset+ti+2]=b;\r\n        }\r\n        offset+=dl*3;\r\n        bin.writeUint (data,offset,crc(data,offset-dl*3-4,dl*3+4));  offset+=4; // crc\r\n\r\n        if(nimg.gotAlpha) {\r\n            bin.writeUint (data,offset, dl);  offset+=4;\r\n            bin.writeASCII(data,offset,\"tRNS\");  offset+=4;\r\n            for(var i=0; i<dl; i++)  data[offset+i]=(nimg.plte[i]>>24)&255;\r\n            offset+=dl;\r\n            bin.writeUint (data,offset,crc(data,offset-dl-4,dl+4));  offset+=4; // crc\r\n        }\r\n    }\r\n\r\n    var dl = nimg.data.length;\r\n    bin.writeUint (data,offset, dl);     offset+=4;\r\n    bin.writeASCII(data,offset,\"IDAT\");  offset+=4;\r\n    for(var i=0; i<dl; i++) data[offset+i] = nimg.data[i];\r\n    offset += dl;\r\n    bin.writeUint (data,offset,crc(data,offset-dl-4,dl+4));  offset+=4; // crc\r\n\r\n    bin.writeUint (data,offset, 0);     offset+=4;\r\n    bin.writeASCII(data,offset,\"IEND\");  offset+=4;\r\n    bin.writeUint (data,offset,crc(data,offset-4,4));  offset+=4; // crc\r\n\r\n    return data.buffer.slice(0,offset);\r\n}\r\n\r\nUPNG.encode.compress = function(img, w, h, ps)\r\n{\r\n    if(ps!=0) img = UPNG.quantize(img, w, h, ps);\r\n\r\n    var ctype = 6, depth = 8, plte=[], bpp = 4, bpl = 4*w;\r\n    var img32 = new Uint32Array(img.buffer);\r\n    var gotAlpha=false, cmap=[];\r\n    for(var i=0; i<img.length; i+=4) {\r\n        var c = img32[i>>2];  if(plte.length<600 && cmap[c]==null) {  cmap[c]=plte.length;  plte.push(c);  }\r\n        if(img[i+3]!=255) gotAlpha = true;\r\n    }\r\n    var cc=plte.length;\r\n    if(cc<=256) {\r\n        if(cc<= 2) depth=1;  else if(cc<= 4) depth=2;  else if(cc<=16) depth=4;  else depth=8;\r\n        bpl = Math.ceil(depth*w/8), nimg = new Uint8Array(bpl*h);\r\n        for(var y=0; y<h; y++) {  var i=y*bpl, ii=y*w;\r\n            if(depth==1) for(var x=0; x<w; x++) nimg[i+(x>>3)]  |=  (cmap[img32[ii+x]]<<(7-(x&7)  ));\r\n            if(depth==2) for(var x=0; x<w; x++) nimg[i+(x>>2)]  |=  (cmap[img32[ii+x]]<<(6-(x&3)*2));\r\n            if(depth==4) for(var x=0; x<w; x++) nimg[i+(x>>1)]  |=  (cmap[img32[ii+x]]<<(4-(x&1)*4));\r\n            if(depth==8) for(var x=0; x<w; x++) nimg[i+ x    ]   =   cmap[img32[ii+x]];\r\n        }\r\n        img=nimg;  ctype=3;  bpp=1;\r\n    }\r\n    else if(gotAlpha==false) {\r\n        var nimg = new Uint8Array(w*h*3), area=w*h;\r\n        for(var i=0; i<area; i++) { var ti=i*3, qi=i*4;  nimg[ti]=img[qi];  nimg[ti+1]=img[qi+1];  nimg[ti+2]=img[qi+2];  }\r\n        img=nimg;  ctype=2;  bpp=3;  bpl=3*w;\r\n    }\r\n\r\n    var data = new Uint8Array(w*h*bpp+h);\r\n    return {ctype:ctype, depth:depth, plte:plte, gotAlpha:gotAlpha, data: UPNG.encode._filterZero(img,h,bpp,bpl,data)  };\r\n}\r\n\r\nUPNG.encode._filterZero = function(img,h,bpp,bpl,data)\r\n{\r\n    var fls = [];\r\n    for(var t=0; t<5; t++) {  if(h*bpl>500000 && (t==2 || t==3 || t==4)) continue;\r\n        for(var y=0; y<h; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, t);\r\n        fls.push(pako[\"deflate\"](data));  if(bpp==1) break;\r\n    }\r\n    var ti, tsize=1e9;\r\n    for(var i=0; i<fls.length; i++) if(fls[i].length<tsize) {  ti=i;  tsize=fls[i].length;  }\r\n    //console.log(\"top filter\", ti);\r\n    return fls[ti];\r\n}\r\nUPNG.encode._filterLine = function(data, img, y, bpl, bpp, type)\r\n{\r\n    var i = y*bpl, di = i+y, paeth = UPNG.decode._paeth\r\n    data[di]=type;  di++;\r\n\r\n    if(type==0) for(var x=0; x<bpl; x++) data[di+x] = img[i+x];\r\n    else if(type==1) {\r\n        for(var x=  0; x<bpp; x++) data[di+x] =  img[i+x];\r\n        for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]-img[i+x-bpp]+256)&255;\r\n    }\r\n    else if(y==0) {\r\n        for(var x=  0; x<bpp; x++) data[di+x] = img[i+x];\r\n\r\n        if(type==2) for(var x=bpp; x<bpl; x++) data[di+x] = img[i+x];\r\n        if(type==3) for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x] - (img[i+x-bpp]>>1) +256)&255;\r\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;\r\n    }\r\n    else {\r\n        if(type==2) { for(var x=  0; x<bpl; x++) data[di+x] = (img[i+x]+256 - img[i+x-bpl])&255;  }\r\n        if(type==3) { for(var x=  0; x<bpp; x++) data[di+x] = (img[i+x]+256 - (img[i+x-bpl]>>1))&255;\r\n            for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]+256 - ((img[i+x-bpl]+img[i+x-bpp])>>1))&255;  }\r\n        if(type==4) { for(var x=  0; x<bpp; x++) data[di+x] = (img[i+x]+256 - paeth(0, img[i+x-bpl], 0))&255;\r\n            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;  }\r\n    }\r\n}\r\n\r\nUPNG.crc = {\r\n    table : ( function() {\r\n        var tab = new Uint32Array(256);\r\n        for (var n=0; n<256; n++) {\r\n            var c = n;\r\n            for (var k=0; k<8; k++) {\r\n                if (c & 1)  c = 0xedb88320 ^ (c >>> 1);\r\n                else        c = c >>> 1;\r\n            }\r\n            tab[n] = c;  }\r\n        return tab;  })(),\r\n    update : function(c, buf, off, len) {\r\n        for (var i=0; i<len; i++)  c = UPNG.crc.table[(c ^ buf[off+i]) & 0xff] ^ (c >>> 8);\r\n        return c;\r\n    },\r\n    crc : function(b,o,l)  {  return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff;  }\r\n}\r\n\r\nUPNG.quantize = function(img, w, h, ps)\r\n{\r\n    var nimg = new Uint8Array(img.length), pind = new Uint16Array(w*h), area=w*h, edist=UPNG.quantize.dist;\r\n    for(var i=0; i<area; i++) {\r\n        var qi=i<<2, a=img[qi+3]/255;\r\n        nimg[qi+0] = img[qi+0]*a;  nimg[qi+1] = img[qi+1]*a;  nimg[qi+2] = img[qi+2]*a;  nimg[qi+3] = img[qi+3];\r\n    }\r\n    var plte=[], used=[], pr=0, plim = Math.max(100, 10*ps);\r\n    while(true) {\r\n        used=[];  plte=[];\r\n        var msk = 0xff - ((1<<pr)-1), add = ((1<<pr))>>1;\r\n        for(var i=0; i<area; i++) {  var qi=i<<2;  var r=nimg[qi],g=nimg[qi+1],b=nimg[qi+2],a=nimg[qi+3];\r\n            var nr=(r&msk)+add, ng=(g&msk)+add, nb=(b&msk)+add, na=(a&msk)+add, key=(na<<24)|(nb<<16)|(ng<<8)|nr;\r\n            if(used[key]) {  var pv=plte[used[key]];  pv.occ++;  }\r\n            else {  used[key]=plte.length;  plte.push(  {occ:1, r:nr,g:ng,b:nb,a:na}  );  }\r\n            if(plte.length>plim) break;\r\n        }\r\n        if(plte.length>plim) {  pr++;  continue;  }\r\n        break;\r\n    }\r\n    if(pr==0 && plte.length<=ps) return img;\r\n    plte.sort(function(a,b) {return b.occ-a.occ;});\r\n\r\n    ps = Math.min(ps, plte.length);\r\n    var nplte = new Uint8Array(ps*4);\r\n    for(var i=0; i<ps; i++) {  var qi=i<<2,c=plte[i];  nplte[qi]=c.r;  nplte[qi+1]=c.g;  nplte[qi+2]=c.b;  nplte[qi+3]=c.a;  }\r\n    plte = nplte;  //*/\r\n\r\n    var icnt = Math.max(1, Math.min(10, Math.floor(1024/ps)));\r\n    for(var it=0; it<icnt; it++)\r\n    {\r\n        var hist=new Uint32Array(ps), nplt=new Uint32Array(ps*4);\r\n        var ndst=new Uint32Array(ps), nind=new Uint32Array(ps  );\r\n        for(var i=0; i<ps; i++) { var qi=i<<2;\r\n            var r=plte[qi], g=plte[qi+1], b=plte[qi+2], a=plte[qi+3];\r\n            var ci=0; cd=1e9;\r\n            for(var j=0; j<ps; j++) {  if(j==i) continue;\r\n                var dst = edist(r,g,b,a,plte,j<<2);\r\n                if(dst<cd) {  ci=j;  cd=dst;  }\r\n            }\r\n            ndst[i]=cd;  nind[i]=ci;\r\n        }\r\n        for(var i=0; i<area; i++) {  var qi=i<<2;\r\n            var r=nimg[qi], g=nimg[qi+1], b=nimg[qi+2], a=nimg[qi+3];\r\n            var ci=0, cd=1e9;\r\n            ci=pind[i];  cd=edist(r,g,b,a,plte,ci<<2);  if(cd<=(ndst[ci]>>1)) {}  else\r\n                for(var j=0; j<ps; j++) {\r\n                    var dst = edist(r,g,b,a,plte,j<<2);\r\n                    if(dst<cd) {  ci=j;  cd=dst;\r\n                        if(dst<=(ndst[ci]>>1)) break;\r\n                        var dst = edist(r,g,b,a,plte,nind[j]<<2);\r\n                        if(dst<=(ndst[ci]>>1)) {  ci=nind[j];  break;  }\r\n                    }\r\n                }\r\n            pind[i]=ci;  hist[ci]++;  var qci=ci<<2;\r\n            nplt[qci]+=r;  nplt[qci+1]+=g;  nplt[qci+2]+=b;  nplt[qci+3]+=a;\r\n        }\r\n        for(var i=0; i<ps; i++) {  var qi=i<<2, den=1/hist[i];\r\n            plte[qi]=nplt[qi]*den;  plte[qi+1]=nplt[qi+1]*den;  plte[qi+2]=nplt[qi+2]*den;  plte[qi+3]=nplt[qi+3]*den;\r\n        }\r\n    }\r\n    //UPNG.quantize.dither(nimg, w,h, pind,plte, ps);  // I think that (current) dithering is not worth it\r\n    for(var i=0; i<area; i++) {\r\n        var qi=i<<2, ci=pind[i], qci=ci<<2, ia = plte[qci+3]==0 ? 0 : 255/plte[qci+3];\r\n        nimg[qi+0] = plte[qci+0]*ia;  nimg[qi+1] = plte[qci+1]*ia;  nimg[qi+2] = plte[qci+2]*ia;  nimg[qi+3] = plte[qci+3];\r\n    }\r\n    return nimg;\r\n}\r\nUPNG.quantize.dist = function(r,g,b,a,ba,bi)\r\n{\r\n    var pr=ba[bi], pg=ba[bi+1], pb=ba[bi+2], pa=ba[bi+3];\r\n    return (pr-r)*(pr-r)+(pg-g)*(pg-g)+(pb-b)*(pb-b)+(pa-a)*(pa-a);\r\n}\r\nUPNG.quantize.dither = function(nimg, w, h, pind, plte, ps)\r\n{\r\n    var err = new Float32Array(w*h*4), i16 = 1/16;\r\n    var edist = UPNG.quantize.dist, round=Math.round, qw=w<<2;\r\n    for(var y=0; y<h; y++)\r\n        for(var x=0; x<w; x++) {\r\n            var i = y*w+x, qi=i<<2;\r\n            for(var j=0; j<4; j++) err[qi+j] = Math.max(-8, Math.min(8, err[qi+j]));\r\n            var r=round(nimg[qi]+err[qi]), g=round(nimg[qi+1]+err[qi+1]), b=round(nimg[qi+2]+err[qi+2]), a=round(nimg[qi+3]+err[qi+3]);\r\n            var ci=0, cd=1e9;\r\n            for(var j=0; j<ps; j++) {\r\n                var dst = edist(r,g,b,a,plte,j<<2);\r\n                if(dst<cd) {  ci=j;  cd=dst;  }\r\n            }\r\n            pind[i]=ci;\r\n            var ciq = ci<<2;\r\n            var dr=r-plte[ciq], dg=g-plte[ciq+1], db=b-plte[ciq+2], da=a-plte[ciq+3];\r\n\r\n            err[qi   +4+0] += (7*dr*i16);  err[qi   +4+1] += (7*dg*i16);  err[qi   +4+2] += (7*db*i16);  err[qi   +4+3] += (7*da*i16);\r\n            err[qi+qw-4+0] += (3*dr*i16);  err[qi+qw-4+1] += (3*dg*i16);  err[qi+qw-4+2] += (3*db*i16);  err[qi+qw-4+3] += (3*da*i16);\r\n            err[qi+qw  +0] += (5*dr*i16);  err[qi+qw  +1] += (5*dg*i16);  err[qi+qw  +2] += (5*db*i16);  err[qi+qw  +3] += (5*da*i16);\r\n            err[qi+qw+4+0] += (1*dr*i16);  err[qi+qw+4+1] += (1*dg*i16);  err[qi+qw+4+2] += (1*db*i16);  err[qi+qw+4+3] += (1*da*i16);\r\n        }\r\n}\r\n\r\nUPNG.decode = function(buff)\r\n{\r\n    var data = new Uint8Array(buff), offset = 8, bin = UPNG._bin, rUs = bin.readUshort;\r\n    var out = {tabs:{}};\r\n    var dd = new Uint8Array(data.length), doff = 0;\t // put all IDAT data into it\r\n\r\n    while(true)\r\n    {\r\n        var len = bin.readUint(data, offset);  offset += 4;\r\n        var type = bin.readASCII(data, offset, 4);  offset += 4;\r\n        //console.log(offset, len, type);\r\n\r\n        if     (type==\"IHDR\")  {  UPNG.decode._IHDR(data, offset, out);  }\r\n        else if(type==\"IDAT\") {\r\n            for(var i=0; i<len; i++) dd[doff+i] = data[offset+i];\r\n            doff += len;\r\n        }\r\n        else if(type==\"pHYs\") {\r\n            out.tabs[type] = [bin.readUint(data, offset), bin.readUint(data, offset+4), data[offset+8]];\r\n        }\r\n        else if(type==\"cHRM\") {\r\n            out.tabs[type] = [];\r\n            for(var i=0; i<8; i++) out.tabs[type].push(bin.readUint(data, offset+i*4));\r\n        }\r\n        else if(type==\"tEXt\") {\r\n            if(out.tabs[type]==null) out.tabs[type] = {};\r\n            var nz = bin.nextZero(data, offset);\r\n            var keyw = bin.readASCII(data, offset, nz-offset);\r\n            var text = bin.readASCII(data, nz+1, offset+len-nz-1);\r\n            out.tabs[type][keyw] = text;\r\n        }\r\n        else if(type==\"iTXt\") {\r\n            if(out.tabs[type]==null) out.tabs[type] = {};\r\n            var nz = 0, off = offset;\r\n            nz = bin.nextZero(data, off);\r\n            var keyw = bin.readASCII(data, off, nz-off);  off = nz + 1;\r\n            var cflag = data[off], cmeth = data[off+1];  off+=2;\r\n            nz = bin.nextZero(data, off);\r\n            var ltag = bin.readASCII(data, off, nz-off);  off = nz + 1;\r\n            nz = bin.nextZero(data, off);\r\n            var tkeyw = bin.readUTF8(data, off, nz-off);  off = nz + 1;\r\n            var text = bin.readUTF8(data, off, len-(off-offset));\r\n            out.tabs[type][keyw] = text;\r\n        }\r\n        else if(type==\"PLTE\") {\r\n            out.tabs[type] = bin.readBytes(data, offset, len);\r\n        }\r\n        else if(type==\"hIST\") {\r\n            var pl = out.tabs[\"PLTE\"].length/3;\r\n            out.tabs[type] = [];  for(var i=0; i<pl; i++) out.tabs[type].push(rUs(data, offset+i*2));\r\n        }\r\n        else if(type==\"tRNS\") {\r\n            if     (out.ctype==3) out.tabs[type] = bin.readBytes(data, offset, len);\r\n            else if(out.ctype==0) out.tabs[type] = rUs(data, offset);\r\n            else if(out.ctype==2) out.tabs[type] = [ rUs(data,offset),rUs(data,offset+2),rUs(data,offset+4) ];\r\n            else console.log(\"tRNS for unsupported color type\",out.ctype, len);\r\n        }\r\n        else if(type==\"gAMA\") out.tabs[type] = bin.readUint(data, offset)/100000;\r\n        else if(type==\"sRGB\") out.tabs[type] = data[offset];\r\n        else if(type==\"bKGD\")\r\n        {\r\n            if     (out.ctype==0 || out.ctype==4) out.tabs[type] = [rUs(data, offset)];\r\n            else if(out.ctype==2 || out.ctype==6) out.tabs[type] = [rUs(data, offset), rUs(data, offset+2), rUs(data, offset+4)];\r\n            else if(out.ctype==3) out.tabs[type] = data[offset];\r\n        }\r\n        else if(type==\"IEND\") {\r\n            if(out.compress ==0) dd = UPNG.decode._inflate(dd);\r\n            else console.log(\"unsupported compression method:\", out.interlace);\r\n\r\n            if(out.filter!=0) console.log(\"unsupported filter method:\", out.filter);\r\n\r\n            if(out.interlace==0) out.data = UPNG.decode._filterZero(dd, out, 0, out.width, out.height);\r\n            else if(out.interlace==1) out.data = UPNG.decode._readInterlace(dd, out);\r\n            else console.log(\"unsupported interlace method:\", out.interlace);\r\n\r\n            break;\r\n        }\r\n        else {  console.log(\"unknown chunk type\", type, len);  }\r\n        offset += len;\r\n        var crc = bin.readUint(data, offset);  offset += 4;\r\n    }\r\n    delete out.compress;  delete out.interlace;  delete out.filter;\r\n    return out;\r\n}\r\n\r\nUPNG.decode._inflate = function(data) {  return pako[\"inflate\"](data);  }\r\n\r\nUPNG.decode._readInterlace = function(data, out)\r\n{\r\n    var w = out.width, h = out.height;\r\n    var bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8);\r\n    var img = new Uint8Array( h * bpl );\r\n    var di = 0;\r\n\r\n    var starting_row  = [ 0, 0, 4, 0, 2, 0, 1 ];\r\n    var starting_col  = [ 0, 4, 0, 2, 0, 1, 0 ];\r\n    var row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];\r\n    var col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];\r\n\r\n    var pass=0;\r\n    while(pass<7)\r\n    {\r\n        var ri = row_increment[pass], ci = col_increment[pass];\r\n        var sw = 0, sh = 0;\r\n        var cr = starting_row[pass];  while(cr<h) {  cr+=ri;  sh++;  }\r\n        var cc = starting_col[pass];  while(cc<w) {  cc+=ci;  sw++;  }\r\n        var bpll = Math.ceil(sw*bpp/8);\r\n        UPNG.decode._filterZero(data, out, di, sw, sh);\r\n\r\n        var y=0, row = starting_row[pass];\r\n        while(row<h)\r\n        {\r\n            var col = starting_col[pass];\r\n            var cdi = (di+y*bpll)<<3;\r\n\r\n            while(col<w)\r\n            {\r\n                if(bpp==1) {\r\n                    var val = data[cdi>>3];  val = (val>>(7-(cdi&7)))&1;\r\n                    img[row*bpl + (col>>3)] |= (val << (7-((col&3)<<0)));\r\n                }\r\n                if(bpp==2) {\r\n                    var val = data[cdi>>3];  val = (val>>(6-(cdi&7)))&3;\r\n                    img[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1)));\r\n                }\r\n                if(bpp==4) {\r\n                    var val = data[cdi>>3];  val = (val>>(4-(cdi&7)))&15;\r\n                    img[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2)));\r\n                }\r\n                if(bpp>=8) {\r\n                    var ii = row*bpl+col*cbpp;\r\n                    for(var j=0; j<cbpp; j++) img[ii+j] = data[(cdi>>3)+j];\r\n                }\r\n                cdi+=bpp;  col+=ci;\r\n            }\r\n            y++;  row += ri;\r\n        }\r\n        if(sw*sh!=0) di += sh * (1 + bpll);\r\n        pass = pass + 1;\r\n    }\r\n    return img;\r\n}\r\n\r\nUPNG.decode._getBPP = function(out) {\r\n    var noc = [1,null,3,1,2,null,4][out.ctype];\r\n    if(noc==null) console.log(\"unsupported color type\", ctype);\r\n    return noc * out.depth;\r\n}\r\n\r\nUPNG.decode._filterZero = function(data, out, off, w, h)\r\n{\r\n    var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth;\r\n    bpp = Math.ceil(bpp/8);\r\n\r\n    for(var y=0; y<h; y++)  {\r\n        var i = off+y*bpl, di = i+y+1;\r\n        var type = data[di-1];\r\n\r\n        if     (type==0) for(var x=  0; x<bpl; x++) data[i+x] = data[di+x];\r\n        else if(type==1) {\r\n            for(var x=  0; x<bpp; x++) data[i+x] = data[di+x];\r\n            for(var x=bpp; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpp])&255;\r\n        }\r\n        else if(y==0) {\r\n            for(var x=  0; x<bpp; x++) data[i+x] = data[di+x];\r\n            if(type==2) for(var x=bpp; x<bpl; x++) data[i+x] = (data[di+x])&255;\r\n            if(type==3) for(var x=bpp; x<bpl; x++) data[i+x] = (data[di+x] + (data[i+x-bpp]>>1) )&255;\r\n            if(type==4) for(var x=bpp; x<bpl; x++) data[i+x] = (data[di+x] + paeth(data[i+x-bpp], 0, 0) )&255;\r\n        }\r\n        else {\r\n            if(type==2) { for(var x=  0; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpl])&255;  }\r\n\r\n            if(type==3) { for(var x=  0; x<bpp; x++) data[i+x] = (data[di+x] + (data[i+x-bpl]>>1))&255;\r\n                for(var x=bpp; x<bpl; x++) data[i+x] = (data[di+x] + ((data[i+x-bpl]+data[i+x-bpp])>>1) )&255;  }\r\n\r\n            if(type==4) { for(var x=  0; x<bpp; x++) data[i+x] = (data[di+x] + paeth(0, data[i+x-bpl], 0))&255;\r\n                for(var x=bpp; x<bpl; x++) data[i+x] = (data[di+x] + paeth(data[i+x-bpp], data[i+x-bpl], data[i+x-bpp-bpl]) )&255;  }\r\n        }\r\n    }\r\n    return data;\r\n}\r\n\r\nUPNG.decode._paeth = function(a,b,c)\r\n{\r\n    var p = a+b-c, pa = Math.abs(p-a), pb = Math.abs(p-b), pc = Math.abs(p-c);\r\n    if (pa <= pb && pa <= pc)  return a;\r\n    else if (pb <= pc)  return b;\r\n    return c;\r\n}\r\n\r\nUPNG.decode._IHDR = function(data, offset, out)\r\n{\r\n    var bin = UPNG._bin;\r\n    out.width  = bin.readUint(data, offset);  offset += 4;\r\n    out.height = bin.readUint(data, offset);  offset += 4;\r\n    out.depth     = data[offset];  offset++;\r\n    out.ctype     = data[offset];  offset++;\r\n    out.compress  = data[offset];  offset++;\r\n    out.filter    = data[offset];  offset++;\r\n    out.interlace = data[offset];  offset++;\r\n}\r\n\r\nUPNG._bin = {\r\n    nextZero   : function(data,p)  {  while(data[p]!=0) p++;  return p;  },\r\n    readUshort : function(buff,p)  {  return (buff[p]<< 8) | buff[p+1];  },\r\n    writeUshort: function(buff,p,n){  buff[p] = (n>>8)&255;  buff[p+1] = n&255;  },\r\n    readUint   : function(buff,p)  {  return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]);  },\r\n    writeUint  : function(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;  },\r\n    readASCII  : function(buff,p,l){  var s = \"\";  for(var i=0; i<l; i++) s += String.fromCharCode(buff[p+i]);  return s;    },\r\n    writeASCII : function(data,p,s){  for(var i=0; i<s.length; i++) data[p+i] = s.charCodeAt(i);  },\r\n    readBytes  : function(buff,p,l){  var arr = [];   for(var i=0; i<l; i++) arr.push(buff[p+i]);   return arr;  },\r\n    pad : function(n) { return n.length < 2 ? \"0\" + n : n; },\r\n    readUTF8 : function(buff, p, l) {\r\n        var s = \"\", ns;\r\n        for(var i=0; i<l; i++) s += \"%\" + UPNG._bin.pad(buff[p+i].toString(16));\r\n        try {  ns = decodeURIComponent(s); }\r\n        catch(e) {  return UPNG._bin.readASCII(buff, p, l);  }\r\n        return  ns;\r\n    }\r\n};\r\n\r\nmodule.exports = UPNG;"]}