{"version":3,"sources":["jsdelivr-header.js","/npm/@pdf-lib/upng@1.0.1/cjs/UPNG.js"],"names":[],"mappings":"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","file":"/npm/@pdf-lib/upng@1.0.1/cjs/UPNG.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@pdf-lib/upng@1.0.1/cjs/UPNG.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _pako = _interopRequireDefault(require(\"pako\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar UPNG = {};\n\nUPNG.toRGBA8 = function (out) {\n  var w = out.width,\n      h = out.height;\n  if (out.tabs.acTL == null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer];\n  var frms = [];\n  if (out.frames[0].data == null) out.frames[0].data = out.data;\n  var len = w * h * 4,\n      img = new Uint8Array(len),\n      empty = new Uint8Array(len),\n      prev = new Uint8Array(len);\n\n  for (var i = 0; i < out.frames.length; i++) {\n    var frm = out.frames[i];\n    var fx = frm.rect.x,\n        fy = frm.rect.y,\n        fw = frm.rect.width,\n        fh = frm.rect.height;\n    var fdata = UPNG.toRGBA8.decodeImage(frm.data, fw, fh, out);\n    if (i != 0) for (var j = 0; j < len; j++) prev[j] = img[j];\n    if (frm.blend == 0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);else if (frm.blend == 1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);\n    frms.push(img.buffer.slice(0));\n\n    if (frm.dispose == 0) {} else if (frm.dispose == 1) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);else if (frm.dispose == 2) for (var j = 0; j < len; j++) img[j] = prev[j];\n  }\n\n  return frms;\n};\n\nUPNG.toRGBA8.decodeImage = function (data, w, h, out) {\n  var area = w * h,\n      bpp = UPNG.decode._getBPP(out);\n\n  var bpl = Math.ceil(w * bpp / 8); // bytes per line\n\n  var bf = new Uint8Array(area * 4),\n      bf32 = new Uint32Array(bf.buffer);\n  var ctype = out.ctype,\n      depth = out.depth;\n  var rs = UPNG._bin.readUshort; //console.log(ctype, depth);\n\n  var time = Date.now();\n\n  if (ctype == 6) {\n    // RGB + alpha\n    var qarea = area << 2;\n    if (depth == 8) for (var i = 0; i < qarea; i += 4) {\n      bf[i] = data[i];\n      bf[i + 1] = data[i + 1];\n      bf[i + 2] = data[i + 2];\n      bf[i + 3] = data[i + 3];\n    }\n    if (depth == 16) for (var i = 0; i < qarea; i++) {\n      bf[i] = data[i << 1];\n    }\n  } else if (ctype == 2) {\n    // RGB\n    var ts = out.tabs[\"tRNS\"];\n\n    if (ts == null) {\n      if (depth == 8) for (var i = 0; i < area; i++) {\n        var ti = i * 3;\n        bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];\n      }\n      if (depth == 16) for (var i = 0; i < area; i++) {\n        var ti = i * 6;\n        bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];\n      }\n    } else {\n      var tr = ts[0],\n          tg = ts[1],\n          tb = ts[2];\n      if (depth == 8) for (var i = 0; i < area; i++) {\n        var qi = i << 2,\n            ti = i * 3;\n        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      if (depth == 16) for (var i = 0; i < area; i++) {\n        var qi = i << 2,\n            ti = i * 6;\n        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  } else if (ctype == 3) {\n    // palette\n    var p = out.tabs[\"PLTE\"],\n        ap = out.tabs[\"tRNS\"],\n        tl = ap ? ap.length : 0; //console.log(p, ap);\n\n    if (depth == 1) for (var y = 0; y < h; y++) {\n      var s0 = y * bpl,\n          t0 = y * w;\n\n      for (var i = 0; i < w; i++) {\n        var qi = t0 + i << 2,\n            j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1,\n            cj = 3 * j;\n        bf[qi] = p[cj];\n        bf[qi + 1] = p[cj + 1];\n        bf[qi + 2] = p[cj + 2];\n        bf[qi + 3] = j < tl ? ap[j] : 255;\n      }\n    }\n    if (depth == 2) for (var y = 0; y < h; y++) {\n      var s0 = y * bpl,\n          t0 = y * w;\n\n      for (var i = 0; i < w; i++) {\n        var qi = t0 + i << 2,\n            j = data[s0 + (i >> 2)] >> 6 - ((i & 3) << 1) & 3,\n            cj = 3 * j;\n        bf[qi] = p[cj];\n        bf[qi + 1] = p[cj + 1];\n        bf[qi + 2] = p[cj + 2];\n        bf[qi + 3] = j < tl ? ap[j] : 255;\n      }\n    }\n    if (depth == 4) for (var y = 0; y < h; y++) {\n      var s0 = y * bpl,\n          t0 = y * w;\n\n      for (var i = 0; i < w; i++) {\n        var qi = t0 + i << 2,\n            j = data[s0 + (i >> 1)] >> 4 - ((i & 1) << 2) & 15,\n            cj = 3 * j;\n        bf[qi] = p[cj];\n        bf[qi + 1] = p[cj + 1];\n        bf[qi + 2] = p[cj + 2];\n        bf[qi + 3] = j < tl ? ap[j] : 255;\n      }\n    }\n    if (depth == 8) for (var i = 0; i < area; i++) {\n      var qi = i << 2,\n          j = data[i],\n          cj = 3 * j;\n      bf[qi] = p[cj];\n      bf[qi + 1] = p[cj + 1];\n      bf[qi + 2] = p[cj + 2];\n      bf[qi + 3] = j < tl ? ap[j] : 255;\n    }\n  } else if (ctype == 4) {\n    // gray + alpha\n    if (depth == 8) for (var i = 0; i < area; i++) {\n      var qi = i << 2,\n          di = i << 1,\n          gr = data[di];\n      bf[qi] = gr;\n      bf[qi + 1] = gr;\n      bf[qi + 2] = gr;\n      bf[qi + 3] = data[di + 1];\n    }\n    if (depth == 16) for (var i = 0; i < area; i++) {\n      var qi = i << 2,\n          di = i << 2,\n          gr = data[di];\n      bf[qi] = gr;\n      bf[qi + 1] = gr;\n      bf[qi + 2] = gr;\n      bf[qi + 3] = data[di + 2];\n    }\n  } else if (ctype == 0) {\n    // gray\n    var tr = out.tabs[\"tRNS\"] ? out.tabs[\"tRNS\"] : -1;\n\n    for (var y = 0; y < h; y++) {\n      var off = y * bpl,\n          to = y * w;\n      if (depth == 1) for (var x = 0; x < w; x++) {\n        var gr = 255 * (data[off + (x >>> 3)] >>> 7 - (x & 7) & 1),\n            al = gr == tr * 255 ? 0 : 255;\n        bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;\n      } else if (depth == 2) for (var x = 0; x < w; x++) {\n        var gr = 85 * (data[off + (x >>> 2)] >>> 6 - ((x & 3) << 1) & 3),\n            al = gr == tr * 85 ? 0 : 255;\n        bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;\n      } else if (depth == 4) for (var x = 0; x < w; x++) {\n        var gr = 17 * (data[off + (x >>> 1)] >>> 4 - ((x & 1) << 2) & 15),\n            al = gr == tr * 17 ? 0 : 255;\n        bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;\n      } else if (depth == 8) for (var x = 0; x < w; x++) {\n        var gr = data[off + x],\n            al = gr == tr ? 0 : 255;\n        bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;\n      } else if (depth == 16) for (var x = 0; x < w; x++) {\n        var gr = data[off + (x << 1)],\n            al = rs(data, off + (x << i)) == tr ? 0 : 255;\n        bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;\n      }\n    }\n  } //console.log(Date.now()-time);\n\n\n  return bf;\n};\n\nUPNG.decode = function (buff) {\n  var data = new Uint8Array(buff),\n      offset = 8,\n      bin = UPNG._bin,\n      rUs = bin.readUshort,\n      rUi = bin.readUint;\n  var out = {\n    tabs: {},\n    frames: []\n  };\n  var dd = new Uint8Array(data.length),\n      doff = 0; // put all IDAT data into it\n\n  var fd,\n      foff = 0; // frames\n\n  var mgck = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\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    var len = bin.readUint(data, offset);\n    offset += 4;\n    var type = bin.readASCII(data, offset, 4);\n    offset += 4; //console.log(type,len);\n\n    if (type == \"IHDR\") {\n      UPNG.decode._IHDR(data, offset, out);\n    } else if (type == \"IDAT\") {\n      for (var i = 0; i < len; i++) dd[doff + i] = data[offset + i];\n\n      doff += len;\n    } else if (type == \"acTL\") {\n      out.tabs[type] = {\n        num_frames: rUi(data, offset),\n        num_plays: rUi(data, offset + 4)\n      };\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 = UPNG.decode._decompress(out, fd.slice(0, foff), fr.rect.width, fr.rect.height);\n        foff = 0;\n      }\n\n      var rct = {\n        x: rUi(data, offset + 12),\n        y: rUi(data, offset + 16),\n        width: rUi(data, offset + 4),\n        height: rUi(data, offset + 8)\n      };\n      var del = rUs(data, offset + 22);\n      del = rUs(data, offset + 20) / (del == 0 ? 100 : del);\n      var frm = {\n        rect: rct,\n        delay: Math.round(del * 1000),\n        dispose: data[offset + 24],\n        blend: data[offset + 25]\n      }; //console.log(frm);\n\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\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\n      for (var i = 0; i < 8; i++) out.tabs[type].push(bin.readUint(data, offset + i * 4));\n    } else if (type == \"tEXt\") {\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 = bin.readASCII(data, nz + 1, offset + len - nz - 1);\n      out.tabs[type][keyw] = text;\n    } else if (type == \"iTXt\") {\n      if (out.tabs[type] == null) out.tabs[type] = {};\n      var nz = 0,\n          off = offset;\n      nz = bin.nextZero(data, off);\n      var keyw = bin.readASCII(data, off, nz - off);\n      off = nz + 1;\n      var cflag = data[off],\n          cmeth = data[off + 1];\n      off += 2;\n      nz = bin.nextZero(data, off);\n      var ltag = bin.readASCII(data, off, nz - off);\n      off = nz + 1;\n      nz = bin.nextZero(data, off);\n      var tkeyw = bin.readUTF8(data, off, nz - off);\n      off = nz + 1;\n      var text = bin.readUTF8(data, off, len - (off - offset));\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      var pl = out.tabs[\"PLTE\"].length / 3;\n      out.tabs[type] = [];\n\n      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);else if (out.ctype == 0) out.tabs[type] = rUs(data, offset);else if (out.ctype == 2) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)]; //else console.log(\"tRNS for unsupported color type\",out.ctype, len);\n    } else if (type == \"gAMA\") out.tabs[type] = bin.readUint(data, offset) / 100000;else if (type == \"sRGB\") out.tabs[type] = data[offset];else if (type == \"bKGD\") {\n      if (out.ctype == 0 || out.ctype == 4) out.tabs[type] = [rUs(data, offset)];else if (out.ctype == 2 || out.ctype == 6) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];else if (out.ctype == 3) out.tabs[type] = data[offset];\n    } else if (type == \"IEND\") {\n      break;\n    } //else {  log(\"unknown chunk type\", type, len);  }\n\n\n    offset += len;\n    var crc = bin.readUint(data, offset);\n    offset += 4;\n  }\n\n  if (foff != 0) {\n    var fr = out.frames[out.frames.length - 1];\n    fr.data = UPNG.decode._decompress(out, fd.slice(0, foff), fr.rect.width, fr.rect.height);\n    foff = 0;\n  }\n\n  out.data = UPNG.decode._decompress(out, dd, out.width, out.height);\n  delete out.compress;\n  delete out.interlace;\n  delete out.filter;\n  return out;\n};\n\nUPNG.decode._decompress = function (out, dd, w, h) {\n  var time = Date.now();\n\n  var bpp = UPNG.decode._getBPP(out),\n      bpl = Math.ceil(w * bpp / 8),\n      buff = new Uint8Array((bpl + 1 + out.interlace) * h);\n\n  dd = UPNG.decode._inflate(dd, buff); //console.log(dd.length, buff.length);\n  //console.log(Date.now()-time);\n\n  var time = Date.now();\n  if (out.interlace == 0) dd = UPNG.decode._filterZero(dd, out, 0, w, h);else if (out.interlace == 1) dd = UPNG.decode._readInterlace(dd, out); //console.log(Date.now()-time);\n\n  return dd;\n};\n\nUPNG.decode._inflate = function (data, buff) {\n  var out = UPNG[\"inflateRaw\"](new Uint8Array(data.buffer, 2, data.length - 6), buff);\n  return out;\n};\n\nUPNG.inflateRaw = function () {\n  var H = {};\n  H.H = {};\n\n  H.H.N = function (N, W) {\n    var R = Uint8Array,\n        i = 0,\n        m = 0,\n        J = 0,\n        h = 0,\n        Q = 0,\n        X = 0,\n        u = 0,\n        w = 0,\n        d = 0,\n        v,\n        C;\n    if (N[0] == 3 && N[1] == 0) return W ? W : new R(0);\n    var V = H.H,\n        n = V.b,\n        A = V.e,\n        l = V.R,\n        M = V.n,\n        I = V.A,\n        e = V.Z,\n        b = V.m,\n        Z = W == null;\n    if (Z) W = new R(N.length >>> 2 << 3);\n\n    while (i == 0) {\n      i = n(N, d, 1);\n      m = n(N, d + 1, 2);\n      d += 3;\n\n      if (m == 0) {\n        if ((d & 7) != 0) d += 8 - (d & 7);\n        var D = (d >>> 3) + 4,\n            q = N[D - 4] | N[D - 3] << 8;\n        if (Z) W = H.H.W(W, w + q);\n        W.set(new R(N.buffer, N.byteOffset + D, q), w);\n        d = D + q << 3;\n        w += q;\n        continue;\n      }\n\n      if (Z) W = H.H.W(W, w + (1 << 17));\n\n      if (m == 1) {\n        v = b.J;\n        C = b.h;\n        X = (1 << 9) - 1;\n        u = (1 << 5) - 1;\n      }\n\n      if (m == 2) {\n        J = A(N, d, 5) + 257;\n        h = A(N, d + 5, 5) + 1;\n        Q = A(N, d + 10, 4) + 4;\n        d += 14;\n        var E = d,\n            j = 1;\n\n        for (var c = 0; c < 38; c += 2) {\n          b.Q[c] = 0;\n          b.Q[c + 1] = 0;\n        }\n\n        for (var c = 0; c < Q; c++) {\n          var K = A(N, d + c * 3, 3);\n          b.Q[(b.X[c] << 1) + 1] = K;\n          if (K > j) j = K;\n        }\n\n        d += 3 * Q;\n        M(b.Q, j);\n        I(b.Q, j, b.u);\n        v = b.w;\n        C = b.d;\n        d = l(b.u, (1 << j) - 1, J + h, N, d, b.v);\n        var r = V.V(b.v, 0, J, b.C);\n        X = (1 << r) - 1;\n        var S = V.V(b.v, J, h, b.D);\n        u = (1 << S) - 1;\n        M(b.C, r);\n        I(b.C, r, v);\n        M(b.D, S);\n        I(b.D, S, C);\n      }\n\n      while (!0) {\n        var T = v[e(N, d) & X];\n        d += T & 15;\n        var p = T >>> 4;\n\n        if (p >>> 8 == 0) {\n          W[w++] = p;\n        } else if (p == 256) {\n          break;\n        } else {\n          var z = w + p - 254;\n\n          if (p > 264) {\n            var _ = b.q[p - 257];\n            z = w + (_ >>> 3) + A(N, d, _ & 7);\n            d += _ & 7;\n          }\n\n          var $ = C[e(N, d) & u];\n          d += $ & 15;\n          var s = $ >>> 4,\n              Y = b.c[s],\n              a = (Y >>> 4) + n(N, d, Y & 15);\n          d += Y & 15;\n\n          while (w < z) {\n            W[w] = W[w++ - a];\n            W[w] = W[w++ - a];\n            W[w] = W[w++ - a];\n            W[w] = W[w++ - a];\n          }\n\n          w = z;\n        }\n      }\n    }\n\n    return W.length == w ? W : W.slice(0, w);\n  };\n\n  H.H.W = function (N, W) {\n    var R = N.length;\n    if (W <= R) return N;\n    var V = new Uint8Array(R << 1);\n    V.set(N, 0);\n    return V;\n  };\n\n  H.H.R = function (N, W, R, V, n, A) {\n    var l = H.H.e,\n        M = H.H.Z,\n        I = 0;\n\n    while (I < R) {\n      var e = N[M(V, n) & W];\n      n += e & 15;\n      var b = e >>> 4;\n\n      if (b <= 15) {\n        A[I] = b;\n        I++;\n      } else {\n        var Z = 0,\n            m = 0;\n\n        if (b == 16) {\n          m = 3 + l(V, n, 2);\n          n += 2;\n          Z = A[I - 1];\n        } else if (b == 17) {\n          m = 3 + l(V, n, 3);\n          n += 3;\n        } else if (b == 18) {\n          m = 11 + l(V, n, 7);\n          n += 7;\n        }\n\n        var J = I + m;\n\n        while (I < J) {\n          A[I] = Z;\n          I++;\n        }\n      }\n    }\n\n    return n;\n  };\n\n  H.H.V = function (N, W, R, V) {\n    var n = 0,\n        A = 0,\n        l = V.length >>> 1;\n\n    while (A < R) {\n      var M = N[A + W];\n      V[A << 1] = 0;\n      V[(A << 1) + 1] = M;\n      if (M > n) n = M;\n      A++;\n    }\n\n    while (A < l) {\n      V[A << 1] = 0;\n      V[(A << 1) + 1] = 0;\n      A++;\n    }\n\n    return n;\n  };\n\n  H.H.n = function (N, W) {\n    var R = H.H.m,\n        V = N.length,\n        n,\n        A,\n        l,\n        M,\n        I,\n        e = R.j;\n\n    for (var M = 0; M <= W; M++) e[M] = 0;\n\n    for (M = 1; M < V; M += 2) e[N[M]]++;\n\n    var b = R.K;\n    n = 0;\n    e[0] = 0;\n\n    for (A = 1; A <= W; A++) {\n      n = n + e[A - 1] << 1;\n      b[A] = n;\n    }\n\n    for (l = 0; l < V; l += 2) {\n      I = N[l + 1];\n\n      if (I != 0) {\n        N[l] = b[I];\n        b[I]++;\n      }\n    }\n  };\n\n  H.H.A = function (N, W, R) {\n    var V = N.length,\n        n = H.H.m,\n        A = n.r;\n\n    for (var l = 0; l < V; l += 2) if (N[l + 1] != 0) {\n      var M = l >> 1,\n          I = N[l + 1],\n          e = M << 4 | I,\n          b = W - I,\n          Z = N[l] << b,\n          m = Z + (1 << b);\n\n      while (Z != m) {\n        var J = A[Z] >>> 15 - W;\n        R[J] = e;\n        Z++;\n      }\n    }\n  };\n\n  H.H.l = function (N, W) {\n    var R = H.H.m.r,\n        V = 15 - W;\n\n    for (var n = 0; n < N.length; n += 2) {\n      var A = N[n] << W - N[n + 1];\n      N[n] = R[A] >>> V;\n    }\n  };\n\n  H.H.M = function (N, W, R) {\n    R = R << (W & 7);\n    var V = W >>> 3;\n    N[V] |= R;\n    N[V + 1] |= R >>> 8;\n  };\n\n  H.H.I = function (N, W, R) {\n    R = R << (W & 7);\n    var V = W >>> 3;\n    N[V] |= R;\n    N[V + 1] |= R >>> 8;\n    N[V + 2] |= R >>> 16;\n  };\n\n  H.H.e = function (N, W, R) {\n    return (N[W >>> 3] | N[(W >>> 3) + 1] << 8) >>> (W & 7) & (1 << R) - 1;\n  };\n\n  H.H.b = function (N, W, R) {\n    return (N[W >>> 3] | N[(W >>> 3) + 1] << 8 | N[(W >>> 3) + 2] << 16) >>> (W & 7) & (1 << R) - 1;\n  };\n\n  H.H.Z = function (N, W) {\n    return (N[W >>> 3] | N[(W >>> 3) + 1] << 8 | N[(W >>> 3) + 2] << 16) >>> (W & 7);\n  };\n\n  H.H.i = function (N, W) {\n    return (N[W >>> 3] | N[(W >>> 3) + 1] << 8 | N[(W >>> 3) + 2] << 16 | N[(W >>> 3) + 3] << 24) >>> (W & 7);\n  };\n\n  H.H.m = function () {\n    var N = Uint16Array,\n        W = Uint32Array;\n    return {\n      K: new N(16),\n      j: new N(16),\n      X: [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],\n      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],\n      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],\n      q: new N(32),\n      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],\n      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],\n      c: new W(32),\n      J: new N(512),\n      _: [],\n      h: new N(32),\n      $: [],\n      w: new N(32768),\n      C: [],\n      v: [],\n      d: new N(32768),\n      D: [],\n      u: new N(512),\n      Q: [],\n      r: new N(1 << 15),\n      s: new W(286),\n      Y: new W(30),\n      a: new W(19),\n      t: new W(15e3),\n      k: new N(1 << 16),\n      g: new N(1 << 15)\n    };\n  }();\n\n  (function () {\n    var N = H.H.m,\n        W = 1 << 15;\n\n    for (var R = 0; R < W; R++) {\n      var V = R;\n      V = (V & 2863311530) >>> 1 | (V & 1431655765) << 1;\n      V = (V & 3435973836) >>> 2 | (V & 858993459) << 2;\n      V = (V & 4042322160) >>> 4 | (V & 252645135) << 4;\n      V = (V & 4278255360) >>> 8 | (V & 16711935) << 8;\n      N.r[R] = (V >>> 16 | V << 16) >>> 17;\n    }\n\n    function n(A, l, M) {\n      while (l-- != 0) A.push(0, M);\n    }\n\n    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    n(N._, 144, 8);\n    n(N._, 255 - 143, 9);\n    n(N._, 279 - 255, 7);\n    n(N._, 287 - 279, 8);\n    H.H.n(N._, 9);\n    H.H.A(N._, 9, N.J);\n    H.H.l(N._, 9);\n    n(N.$, 32, 5);\n    H.H.n(N.$, 5);\n    H.H.A(N.$, 5, N.h);\n    H.H.l(N.$, 5);\n    n(N.Q, 19, 0);\n    n(N.C, 286, 0);\n    n(N.D, 30, 0);\n    n(N.v, 320, 0);\n  })();\n\n  return H.H.N;\n}();\n\nUPNG.decode._readInterlace = function (data, out) {\n  var w = out.width,\n      h = out.height;\n\n  var bpp = UPNG.decode._getBPP(out),\n      cbpp = bpp >> 3,\n      bpl = Math.ceil(w * bpp / 8);\n\n  var img = new Uint8Array(h * bpl);\n  var di = 0;\n  var starting_row = [0, 0, 4, 0, 2, 0, 1];\n  var starting_col = [0, 4, 0, 2, 0, 1, 0];\n  var row_increment = [8, 8, 8, 4, 4, 2, 2];\n  var col_increment = [8, 8, 4, 4, 2, 2, 1];\n  var pass = 0;\n\n  while (pass < 7) {\n    var ri = row_increment[pass],\n        ci = col_increment[pass];\n    var sw = 0,\n        sh = 0;\n    var cr = starting_row[pass];\n\n    while (cr < h) {\n      cr += ri;\n      sh++;\n    }\n\n    var cc = starting_col[pass];\n\n    while (cc < w) {\n      cc += ci;\n      sw++;\n    }\n\n    var bpll = Math.ceil(sw * bpp / 8);\n\n    UPNG.decode._filterZero(data, out, di, sw, sh);\n\n    var y = 0,\n        row = starting_row[pass];\n\n    while (row < h) {\n      var col = starting_col[pass];\n      var cdi = di + y * bpll << 3;\n\n      while (col < w) {\n        if (bpp == 1) {\n          var val = data[cdi >> 3];\n          val = val >> 7 - (cdi & 7) & 1;\n          img[row * bpl + (col >> 3)] |= val << 7 - ((col & 7) << 0);\n        }\n\n        if (bpp == 2) {\n          var val = data[cdi >> 3];\n          val = val >> 6 - (cdi & 7) & 3;\n          img[row * bpl + (col >> 2)] |= val << 6 - ((col & 3) << 1);\n        }\n\n        if (bpp == 4) {\n          var val = data[cdi >> 3];\n          val = val >> 4 - (cdi & 7) & 15;\n          img[row * bpl + (col >> 1)] |= val << 4 - ((col & 1) << 2);\n        }\n\n        if (bpp >= 8) {\n          var ii = row * bpl + col * cbpp;\n\n          for (var j = 0; j < cbpp; j++) img[ii + j] = data[(cdi >> 3) + j];\n        }\n\n        cdi += bpp;\n        col += ci;\n      }\n\n      y++;\n      row += ri;\n    }\n\n    if (sw * sh != 0) di += sh * (1 + bpll);\n    pass = pass + 1;\n  }\n\n  return img;\n};\n\nUPNG.decode._getBPP = function (out) {\n  var noc = [1, null, 3, 1, 2, null, 4][out.ctype];\n  return noc * out.depth;\n};\n\nUPNG.decode._filterZero = function (data, out, off, w, h) {\n  var bpp = UPNG.decode._getBPP(out),\n      bpl = Math.ceil(w * bpp / 8),\n      paeth = UPNG.decode._paeth;\n\n  bpp = Math.ceil(bpp / 8);\n  var i = 0,\n      di = 1,\n      type = data[off],\n      x = 0;\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 (var y = 0; y < h; y++) {\n    i = off + y * bpl;\n    di = i + y + 1;\n    type = data[di - 1];\n    x = 0;\n    if (type == 0) for (; x < bpl; x++) data[i + x] = data[di + x];else if (type == 1) {\n      for (; x < bpp; x++) data[i + x] = data[di + x];\n\n      for (; x < bpl; x++) data[i + x] = data[di + x] + data[i + x - bpp];\n    } else if (type == 2) {\n      for (; x < bpl; x++) data[i + x] = data[di + x] + data[i + x - bpl];\n    } else if (type == 3) {\n      for (; x < bpp; x++) data[i + x] = data[di + x] + (data[i + x - bpl] >>> 1);\n\n      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\n      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\n  return data;\n};\n\nUPNG.decode._paeth = function (a, b, c) {\n  var p = a + b - c,\n      pa = p - a,\n      pb = p - b,\n      pc = p - c;\n  if (pa * pa <= pb * pb && pa * pa <= pc * pc) return a;else if (pb * pb <= pc * pc) return b;\n  return c;\n};\n\nUPNG.decode._IHDR = function (data, offset, out) {\n  var bin = UPNG._bin;\n  out.width = bin.readUint(data, offset);\n  offset += 4;\n  out.height = bin.readUint(data, offset);\n  offset += 4;\n  out.depth = data[offset];\n  offset++;\n  out.ctype = data[offset];\n  offset++;\n  out.compress = data[offset];\n  offset++;\n  out.filter = data[offset];\n  offset++;\n  out.interlace = data[offset];\n  offset++;\n};\n\nUPNG._bin = {\n  nextZero: function (data, p) {\n    while (data[p] != 0) p++;\n\n    return p;\n  },\n  readUshort: function (buff, p) {\n    return buff[p] << 8 | buff[p + 1];\n  },\n  writeUshort: function (buff, p, n) {\n    buff[p] = n >> 8 & 255;\n    buff[p + 1] = n & 255;\n  },\n  readUint: function (buff, p) {\n    return buff[p] * (256 * 256 * 256) + (buff[p + 1] << 16 | buff[p + 2] << 8 | buff[p + 3]);\n  },\n  writeUint: function (buff, p, n) {\n    buff[p] = n >> 24 & 255;\n    buff[p + 1] = n >> 16 & 255;\n    buff[p + 2] = n >> 8 & 255;\n    buff[p + 3] = n & 255;\n  },\n  readASCII: function (buff, p, l) {\n    var s = \"\";\n\n    for (var i = 0; i < l; i++) s += String.fromCharCode(buff[p + i]);\n\n    return s;\n  },\n  writeASCII: function (data, p, s) {\n    for (var i = 0; i < s.length; i++) data[p + i] = s.charCodeAt(i);\n  },\n  readBytes: function (buff, p, l) {\n    var arr = [];\n\n    for (var i = 0; i < l; i++) arr.push(buff[p + i]);\n\n    return arr;\n  },\n  pad: function (n) {\n    return n.length < 2 ? \"0\" + n : n;\n  },\n  readUTF8: function (buff, p, l) {\n    var s = \"\",\n        ns;\n\n    for (var i = 0; i < l; i++) s += \"%\" + UPNG._bin.pad(buff[p + i].toString(16));\n\n    try {\n      ns = decodeURIComponent(s);\n    } catch (e) {\n      return UPNG._bin.readASCII(buff, p, l);\n    }\n\n    return ns;\n  }\n};\n\nUPNG._copyTile = function (sb, sw, sh, tb, tw, th, xoff, yoff, mode) {\n  var w = Math.min(sw, tw),\n      h = Math.min(sh, th);\n  var si = 0,\n      ti = 0;\n\n  for (var y = 0; y < h; y++) for (var x = 0; x < w; x++) {\n    if (xoff >= 0 && yoff >= 0) {\n      si = y * sw + x << 2;\n      ti = (yoff + y) * tw + xoff + x << 2;\n    } else {\n      si = (-yoff + y) * sw - xoff + x << 2;\n      ti = y * tw + x << 2;\n    }\n\n    if (mode == 0) {\n      tb[ti] = sb[si];\n      tb[ti + 1] = sb[si + 1];\n      tb[ti + 2] = sb[si + 2];\n      tb[ti + 3] = sb[si + 3];\n    } else if (mode == 1) {\n      var fa = sb[si + 3] * (1 / 255),\n          fr = sb[si] * fa,\n          fg = sb[si + 1] * fa,\n          fb = sb[si + 2] * fa;\n      var ba = tb[ti + 3] * (1 / 255),\n          br = tb[ti] * ba,\n          bg = tb[ti + 1] * ba,\n          bb = tb[ti + 2] * ba;\n      var ifa = 1 - fa,\n          oa = fa + ba * ifa,\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) {\n      // copy only differences, otherwise zero\n      var fa = sb[si + 3],\n          fr = sb[si],\n          fg = sb[si + 1],\n          fb = sb[si + 2];\n      var ba = tb[ti + 3],\n          br = tb[ti],\n          bg = tb[ti + 1],\n          bb = tb[ti + 2];\n\n      if (fa == ba && fr == br && fg == bg && fb == bb) {\n        tb[ti] = 0;\n        tb[ti + 1] = 0;\n        tb[ti + 2] = 0;\n        tb[ti + 3] = 0;\n      } else {\n        tb[ti] = fr;\n        tb[ti + 1] = fg;\n        tb[ti + 2] = fb;\n        tb[ti + 3] = fa;\n      }\n    } else if (mode == 3) {\n      // check if can be blended\n      var fa = sb[si + 3],\n          fr = sb[si],\n          fg = sb[si + 1],\n          fb = sb[si + 2];\n      var ba = tb[ti + 3],\n          br = tb[ti],\n          bg = tb[ti + 1],\n          bb = tb[ti + 2];\n      if (fa == ba && fr == br && fg == bg && fb == bb) continue; //if(fa!=255 && ba!=0) return false;\n\n      if (fa < 220 && ba > 20) return false;\n    }\n  }\n\n  return true;\n};\n\nUPNG.encode = function (bufs, w, h, ps, dels, tabs, forbidPlte) {\n  if (ps == null) ps = 0;\n  if (forbidPlte == null) forbidPlte = false;\n  var nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]);\n  UPNG.encode.compressPNG(nimg, -1);\n  return UPNG.encode._main(nimg, w, h, dels, tabs);\n};\n\nUPNG.encodeLL = function (bufs, w, h, cc, ac, depth, dels, tabs) {\n  var nimg = {\n    ctype: 0 + (cc == 1 ? 0 : 2) + (ac == 0 ? 0 : 4),\n    depth: depth,\n    frames: []\n  };\n  var time = Date.now();\n  var bipp = (cc + ac) * depth,\n      bipl = bipp * w;\n\n  for (var i = 0; i < bufs.length; i++) nimg.frames.push({\n    rect: {\n      x: 0,\n      y: 0,\n      width: w,\n      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  UPNG.encode.compressPNG(nimg, 0, true);\n\n  var out = UPNG.encode._main(nimg, w, h, dels, tabs);\n\n  return out;\n};\n\nUPNG.encode._main = function (nimg, w, h, dels, tabs) {\n  if (tabs == null) tabs = {};\n  var crc = UPNG.crc.crc,\n      wUi = UPNG._bin.writeUint,\n      wUs = UPNG._bin.writeUshort,\n      wAs = UPNG._bin.writeASCII;\n  var offset = 8,\n      anim = nimg.frames.length > 1,\n      pltAlpha = false;\n  var leng = 8 + (16 + 5 + 4)\n  /*+ (9+4)*/\n  + (anim ? 20 : 0);\n  if (tabs[\"sRGB\"] != null) leng += 8 + 1 + 4;\n  if (tabs[\"pHYs\"] != null) leng += 8 + 9 + 4;\n\n  if (nimg.ctype == 3) {\n    var dl = nimg.plte.length;\n\n    for (var i = 0; i < dl; i++) if (nimg.plte[i] >>> 24 != 255) pltAlpha = true;\n\n    leng += 8 + dl * 3 + 4 + (pltAlpha ? 8 + dl * 1 + 4 : 0);\n  }\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\n  leng += 12;\n  var data = new Uint8Array(leng);\n  var wr = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\n  for (var i = 0; i < 8; i++) data[i] = wr[i];\n\n  wUi(data, offset, 13);\n  offset += 4;\n  wAs(data, offset, \"IHDR\");\n  offset += 4;\n  wUi(data, offset, w);\n  offset += 4;\n  wUi(data, offset, h);\n  offset += 4;\n  data[offset] = nimg.depth;\n  offset++; // depth\n\n  data[offset] = nimg.ctype;\n  offset++; // ctype\n\n  data[offset] = 0;\n  offset++; // compress\n\n  data[offset] = 0;\n  offset++; // filter\n\n  data[offset] = 0;\n  offset++; // interlace\n\n  wUi(data, offset, crc(data, offset - 17, 17));\n  offset += 4; // crc\n  // 13 bytes to say, that it is sRGB\n\n  if (tabs[\"sRGB\"] != null) {\n    wUi(data, offset, 1);\n    offset += 4;\n    wAs(data, offset, \"sRGB\");\n    offset += 4;\n    data[offset] = tabs[\"sRGB\"];\n    offset++;\n    wUi(data, offset, crc(data, offset - 5, 5));\n    offset += 4; // crc\n  }\n\n  if (tabs[\"pHYs\"] != null) {\n    wUi(data, offset, 9);\n    offset += 4;\n    wAs(data, offset, \"pHYs\");\n    offset += 4;\n    wUi(data, offset, tabs[\"pHYs\"][0]);\n    offset += 4;\n    wUi(data, offset, tabs[\"pHYs\"][1]);\n    offset += 4;\n    data[offset] = tabs[\"pHYs\"][2];\n    offset++;\n    wUi(data, offset, crc(data, offset - 13, 13));\n    offset += 4; // crc\n  }\n\n  if (anim) {\n    wUi(data, offset, 8);\n    offset += 4;\n    wAs(data, offset, \"acTL\");\n    offset += 4;\n    wUi(data, offset, nimg.frames.length);\n    offset += 4;\n    wUi(data, offset, tabs[\"loop\"] != null ? tabs[\"loop\"] : 0);\n    offset += 4;\n    wUi(data, offset, crc(data, offset - 12, 12));\n    offset += 4; // crc\n  }\n\n  if (nimg.ctype == 3) {\n    var dl = nimg.plte.length;\n    wUi(data, offset, dl * 3);\n    offset += 4;\n    wAs(data, offset, \"PLTE\");\n    offset += 4;\n\n    for (var i = 0; i < dl; i++) {\n      var ti = i * 3,\n          c = nimg.plte[i],\n          r = c & 255,\n          g = c >>> 8 & 255,\n          b = c >>> 16 & 255;\n      data[offset + ti + 0] = r;\n      data[offset + ti + 1] = g;\n      data[offset + ti + 2] = b;\n    }\n\n    offset += dl * 3;\n    wUi(data, offset, crc(data, offset - dl * 3 - 4, dl * 3 + 4));\n    offset += 4; // crc\n\n    if (pltAlpha) {\n      wUi(data, offset, dl);\n      offset += 4;\n      wAs(data, offset, \"tRNS\");\n      offset += 4;\n\n      for (var i = 0; i < dl; i++) data[offset + i] = nimg.plte[i] >>> 24 & 255;\n\n      offset += dl;\n      wUi(data, offset, crc(data, offset - dl - 4, dl + 4));\n      offset += 4; // crc\n    }\n  }\n\n  var fi = 0;\n\n  for (var j = 0; j < nimg.frames.length; j++) {\n    var fr = nimg.frames[j];\n\n    if (anim) {\n      wUi(data, offset, 26);\n      offset += 4;\n      wAs(data, offset, \"fcTL\");\n      offset += 4;\n      wUi(data, offset, fi++);\n      offset += 4;\n      wUi(data, offset, fr.rect.width);\n      offset += 4;\n      wUi(data, offset, fr.rect.height);\n      offset += 4;\n      wUi(data, offset, fr.rect.x);\n      offset += 4;\n      wUi(data, offset, fr.rect.y);\n      offset += 4;\n      wUs(data, offset, dels[j]);\n      offset += 2;\n      wUs(data, offset, 1000);\n      offset += 2;\n      data[offset] = fr.dispose;\n      offset++; // dispose\n\n      data[offset] = fr.blend;\n      offset++; // blend\n\n      wUi(data, offset, crc(data, offset - 30, 30));\n      offset += 4; // crc\n    }\n\n    var imgd = fr.cimg,\n        dl = imgd.length;\n    wUi(data, offset, dl + (j == 0 ? 0 : 4));\n    offset += 4;\n    var ioff = offset;\n    wAs(data, offset, j == 0 ? \"IDAT\" : \"fdAT\");\n    offset += 4;\n\n    if (j != 0) {\n      wUi(data, offset, fi++);\n      offset += 4;\n    }\n\n    data.set(imgd, offset);\n    offset += dl;\n    wUi(data, offset, crc(data, ioff, offset - ioff));\n    offset += 4; // crc\n  }\n\n  wUi(data, offset, 0);\n  offset += 4;\n  wAs(data, offset, \"IEND\");\n  offset += 4;\n  wUi(data, offset, crc(data, offset - 4, 4));\n  offset += 4; // crc\n\n  return data.buffer;\n};\n\nUPNG.encode.compressPNG = function (out, filter, levelZero) {\n  for (var i = 0; i < out.frames.length; i++) {\n    var frm = out.frames[i],\n        nw = frm.rect.width,\n        nh = frm.rect.height;\n    var fdata = new Uint8Array(nh * frm.bpl + nh);\n    frm.cimg = UPNG.encode._filterZero(frm.img, nh, frm.bpp, frm.bpl, fdata, filter, levelZero);\n  }\n};\n\nUPNG.encode.compress = function (bufs, w, h, ps, prms) // prms:  onlyBlend, minBits, forbidPlte\n{\n  //var time = Date.now();\n  var onlyBlend = prms[0],\n      evenCrd = prms[1],\n      forbidPrev = prms[2],\n      minBits = prms[3],\n      forbidPlte = prms[4];\n  var ctype = 6,\n      depth = 8,\n      alphaAnd = 255;\n\n  for (var j = 0; j < bufs.length; j++) {\n    // when not quantized, other frames can contain colors, that are not in an initial frame\n    var img = new Uint8Array(bufs[j]),\n        ilen = img.length;\n\n    for (var i = 0; i < ilen; i += 4) alphaAnd &= img[i + 3];\n  }\n\n  var gotAlpha = alphaAnd != 255; //console.log(\"alpha check\", Date.now()-time);  time = Date.now();\n  //var brute = gotAlpha && forGIF;\t\t// brute : frames can only be copied, not \"blended\"\n\n  var frms = UPNG.encode.framize(bufs, w, h, onlyBlend, evenCrd, forbidPrev); //console.log(\"framize\", Date.now()-time);  time = Date.now();\n\n  var cmap = {},\n      plte = [],\n      inds = [];\n\n  if (ps != 0) {\n    var nbufs = [];\n\n    for (var i = 0; i < frms.length; i++) nbufs.push(frms[i].img.buffer);\n\n    var abuf = UPNG.encode.concatRGBA(nbufs),\n        qres = UPNG.quantize(abuf, ps);\n    var cof = 0,\n        bb = new Uint8Array(qres.abuf);\n\n    for (var i = 0; i < frms.length; i++) {\n      var ti = frms[i].img,\n          bln = ti.length;\n      inds.push(new Uint8Array(qres.inds.buffer, cof >> 2, bln >> 2));\n\n      for (var j = 0; j < bln; j += 4) {\n        ti[j] = bb[cof + j];\n        ti[j + 1] = bb[cof + j + 1];\n        ti[j + 2] = bb[cof + j + 2];\n        ti[j + 3] = bb[cof + j + 3];\n      }\n\n      cof += bln;\n    }\n\n    for (var i = 0; i < qres.plte.length; i++) plte.push(qres.plte[i].est.rgba); //console.log(\"quantize\", Date.now()-time);  time = Date.now();\n\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++) {\n      // when not quantized, other frames can contain colors, that are not in an initial frame\n      var frm = frms[j],\n          img32 = new Uint32Array(frm.img.buffer),\n          nw = frm.rect.width,\n          ilen = img32.length;\n      var ind = new Uint8Array(ilen);\n      inds.push(ind);\n\n      for (var i = 0; i < ilen; i++) {\n        var c = img32[i];\n        if (i != 0 && c == img32[i - 1]) ind[i] = ind[i - 1];else if (i > nw && c == img32[i - nw]) ind[i] = ind[i - nw];else {\n          var cmc = cmap[c];\n\n          if (cmc == null) {\n            cmap[c] = cmc = plte.length;\n            plte.push(c);\n            if (plte.length >= 300) break;\n          }\n\n          ind[i] = cmc;\n        }\n      }\n    } //console.log(\"make palette\", Date.now()-time);  time = Date.now();\n\n  }\n\n  var cc = plte.length; //console.log(\"colors:\",cc);\n\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],\n        nx = frm.rect.x,\n        ny = frm.rect.y,\n        nw = frm.rect.width,\n        nh = frm.rect.height;\n    var cimg = frm.img,\n        cimg32 = new Uint32Array(cimg.buffer);\n    var bpl = 4 * nw,\n        bpp = 4;\n\n    if (cc <= 256 && forbidPlte == false) {\n      bpl = Math.ceil(depth * nw / 8);\n      var nimg = new Uint8Array(bpl * nh);\n      var inj = inds[j];\n\n      for (var y = 0; y < nh; y++) {\n        var i = y * bpl,\n            ii = y * nw;\n        if (depth == 8) for (var x = 0; x < nw; x++) nimg[i + x] = inj[ii + x];else if (depth == 4) for (var x = 0; x < nw; x++) nimg[i + (x >> 1)] |= inj[ii + x] << 4 - (x & 1) * 4;else if (depth == 2) for (var x = 0; x < nw; x++) nimg[i + (x >> 2)] |= inj[ii + x] << 6 - (x & 3) * 2;else if (depth == 1) for (var x = 0; x < nw; x++) nimg[i + (x >> 3)] |= inj[ii + x] << 7 - (x & 7) * 1;\n      }\n\n      cimg = nimg;\n      ctype = 3;\n      bpp = 1;\n    } else if (gotAlpha == false && frms.length == 1) {\n      // some next \"reduced\" frames may contain alpha for blending\n      var nimg = new Uint8Array(nw * nh * 3),\n          area = nw * nh;\n\n      for (var i = 0; i < area; i++) {\n        var ti = i * 3,\n            qi = i * 4;\n        nimg[ti] = cimg[qi];\n        nimg[ti + 1] = cimg[qi + 1];\n        nimg[ti + 2] = cimg[qi + 2];\n      }\n\n      cimg = nimg;\n      ctype = 2;\n      bpp = 3;\n      bpl = 3 * nw;\n    }\n\n    frm.img = cimg;\n    frm.bpl = bpl;\n    frm.bpp = bpp;\n  } //console.log(\"colors => palette indices\", Date.now()-time);  time = Date.now();\n\n\n  return {\n    ctype: ctype,\n    depth: depth,\n    plte: plte,\n    frames: frms\n  };\n};\n\nUPNG.encode.framize = function (bufs, w, h, alwaysBlend, evenCrd, forbidPrev) {\n  /*  DISPOSE\n      - 0 : no change\n  \t- 1 : clear to transparent\n  \t- 2 : retstore to content before rendering (previous frame disposed)\n  \tBLEND\n  \t- 0 : replace\n  \t- 1 : blend\n  */\n  var frms = [];\n\n  for (var j = 0; j < bufs.length; j++) {\n    var cimg = new Uint8Array(bufs[j]),\n        cimg32 = new Uint32Array(cimg.buffer);\n    var nimg;\n    var nx = 0,\n        ny = 0,\n        nw = w,\n        nh = h,\n        blend = alwaysBlend ? 1 : 0;\n\n    if (j != 0) {\n      var tlim = forbidPrev || alwaysBlend || j == 1 || frms[j - 2].dispose != 0 ? 1 : 2,\n          tstp = 0,\n          tarea = 1e9;\n\n      for (var it = 0; it < tlim; it++) {\n        var pimg = new Uint8Array(bufs[j - 1 - it]),\n            p32 = new Uint32Array(bufs[j - 1 - it]);\n        var mix = w,\n            miy = h,\n            max = -1,\n            may = -1;\n\n        for (var y = 0; y < h; y++) for (var x = 0; x < w; x++) {\n          var i = y * w + x;\n\n          if (cimg32[i] != p32[i]) {\n            if (x < mix) mix = x;\n            if (x > max) max = x;\n            if (y < miy) miy = y;\n            if (y > may) may = y;\n          }\n        }\n\n        if (max == -1) mix = miy = max = may = 0;\n\n        if (evenCrd) {\n          if ((mix & 1) == 1) mix--;\n          if ((miy & 1) == 1) miy--;\n        }\n\n        var sarea = (max - mix + 1) * (may - miy + 1);\n\n        if (sarea < tarea) {\n          tarea = sarea;\n          tstp = it;\n          nx = mix;\n          ny = miy;\n          nw = max - mix + 1;\n          nh = may - miy + 1;\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\n\n      var pimg = new Uint8Array(bufs[j - 1 - tstp]);\n      if (tstp == 1) frms[j - 1].dispose = 2;\n      nimg = new Uint8Array(nw * nh * 4);\n\n      UPNG._copyTile(pimg, w, h, nimg, nw, nh, -nx, -ny, 0);\n\n      blend = UPNG._copyTile(cimg, w, h, nimg, nw, nh, -nx, -ny, 3) ? 1 : 0;\n      if (blend == 1) UPNG.encode._prepareDiff(cimg, w, h, nimg, {\n        x: nx,\n        y: ny,\n        width: nw,\n        height: nh\n      });else UPNG._copyTile(cimg, w, h, nimg, nw, nh, -nx, -ny, 0); //UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, blend==1?2:0);\n    } else nimg = cimg.slice(0); // img may be rewritten further ... don't rewrite input\n\n\n    frms.push({\n      rect: {\n        x: nx,\n        y: ny,\n        width: nw,\n        height: nh\n      },\n      img: nimg,\n      blend: blend,\n      dispose: 0\n    });\n  }\n\n  if (alwaysBlend) for (var j = 0; j < frms.length; j++) {\n    var frm = frms[j];\n    if (frm.blend == 1) continue;\n    var r0 = frm.rect,\n        r1 = frms[j - 1].rect;\n    var miX = Math.min(r0.x, r1.x),\n        miY = Math.min(r0.y, r1.y);\n    var maX = Math.max(r0.x + r0.width, r1.x + r1.width),\n        maY = Math.max(r0.y + r0.height, r1.y + r1.height);\n    var r = {\n      x: miX,\n      y: miY,\n      width: maX - miX,\n      height: maY - miY\n    };\n    frms[j - 1].dispose = 1;\n    if (j - 1 != 0) UPNG.encode._updateFrame(bufs, w, h, frms, j - 1, r, evenCrd);\n\n    UPNG.encode._updateFrame(bufs, w, h, frms, j, r, evenCrd);\n  }\n  var area = 0;\n  if (bufs.length != 1) for (var i = 0; i < frms.length; i++) {\n    var frm = frms[i];\n    area += frm.rect.width * frm.rect.height; //if(i==0 || frm.blend!=1) continue;\n    //var ob = new Uint8Array(\n    //console.log(frm.blend, frm.dispose, frm.rect);\n  } //if(area!=0) console.log(area);\n\n  return frms;\n};\n\nUPNG.encode._updateFrame = function (bufs, w, h, frms, i, r, evenCrd) {\n  var U8 = Uint8Array,\n      U32 = Uint32Array;\n  var pimg = new U8(bufs[i - 1]),\n      pimg32 = new U32(bufs[i - 1]),\n      nimg = i + 1 < bufs.length ? new U8(bufs[i + 1]) : null;\n  var cimg = new U8(bufs[i]),\n      cimg32 = new U32(cimg.buffer);\n  var mix = w,\n      miy = h,\n      max = -1,\n      may = -1;\n\n  for (var y = 0; y < r.height; y++) for (var x = 0; x < r.width; x++) {\n    var cx = r.x + x,\n        cy = r.y + y;\n    var j = cy * w + cx,\n        cc = cimg32[j]; // no need to draw transparency, or to dispose it. Or, if writing the same color and the next one does not need transparency.\n\n    if (cc == 0 || frms[i - 1].dispose == 0 && pimg32[j] == cc && (nimg == null || nimg[j * 4 + 3] != 0)\n    /**/\n    ) {} else {\n      if (cx < mix) mix = cx;\n      if (cx > max) max = cx;\n      if (cy < miy) miy = cy;\n      if (cy > may) may = cy;\n    }\n  }\n\n  if (max == -1) mix = miy = max = may = 0;\n\n  if (evenCrd) {\n    if ((mix & 1) == 1) mix--;\n    if ((miy & 1) == 1) miy--;\n  }\n\n  r = {\n    x: mix,\n    y: miy,\n    width: max - mix + 1,\n    height: may - miy + 1\n  };\n  var fr = frms[i];\n  fr.rect = r;\n  fr.blend = 1;\n  fr.img = new Uint8Array(r.width * r.height * 4);\n\n  if (frms[i - 1].dispose == 0) {\n    UPNG._copyTile(pimg, w, h, fr.img, r.width, r.height, -r.x, -r.y, 0);\n\n    UPNG.encode._prepareDiff(cimg, w, h, fr.img, r); //UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2);\n\n  } else UPNG._copyTile(cimg, w, h, fr.img, r.width, r.height, -r.x, -r.y, 0);\n};\n\nUPNG.encode._prepareDiff = function (cimg, w, h, nimg, rec) {\n  UPNG._copyTile(cimg, w, h, nimg, rec.width, rec.height, -rec.x, -rec.y, 2);\n  /*\n  var n32 = new Uint32Array(nimg.buffer);\n  var og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer);\n  UPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0);\n  for(var i=4; i<nimg.length; i+=4) {\n  \tif(nimg[i-1]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)-1]) {\n  \t\tn32[i>>>2]=o32[i>>>2];\n  \t\t//var j = i, c=p32[(i>>>2)-1];\n  \t\t//while(p32[j>>>2]==c) {  n32[j>>>2]=c;  j+=4;  }\n  \t}\n  }\n  for(var i=nimg.length-8; i>0; i-=4) {\n  \tif(nimg[i+7]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)+1]) {\n  \t\tn32[i>>>2]=o32[i>>>2];\n  \t\t//var j = i, c=p32[(i>>>2)-1];\n  \t\t//while(p32[j>>>2]==c) {  n32[j>>>2]=c;  j+=4;  }\n  \t}\n  }*/\n\n};\n\nUPNG.encode._filterZero = function (img, h, bpp, bpl, data, filter, levelZero) {\n  var fls = [],\n      ftry = [0, 1, 2, 3, 4];\n  if (filter != -1) ftry = [filter];else if (h * bpl > 500000 || bpp == 1) ftry = [0];\n  var opts;\n  if (levelZero) opts = {\n    level: 0\n  };\n  var CMPR = levelZero && UZIP != null ? UZIP : _pako.default;\n\n  for (var i = 0; i < ftry.length; i++) {\n    for (var y = 0; y < h; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, ftry[i]); //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\n\n    fls.push(CMPR[\"deflate\"](data, opts));\n  }\n\n  var ti,\n      tsize = 1e9;\n\n  for (var i = 0; i < fls.length; i++) if (fls[i].length < tsize) {\n    ti = i;\n    tsize = fls[i].length;\n  }\n\n  return fls[ti];\n};\n\nUPNG.encode._filterLine = function (data, img, y, bpl, bpp, type) {\n  var i = y * bpl,\n      di = i + y,\n      paeth = UPNG.decode._paeth;\n  data[di] = type;\n  di++;\n\n  if (type == 0) {\n    if (bpl < 500) for (var x = 0; x < bpl; x++) data[di + x] = img[i + x];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\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) {\n      for (var x = 0; x < bpl; x++) data[di + x] = img[i + x] + 256 - img[i + x - bpl] & 255;\n    }\n\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\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;\n    }\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\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;\n    }\n  }\n};\n\nUPNG.crc = {\n  table: function () {\n    var tab = new Uint32Array(256);\n\n    for (var n = 0; n < 256; n++) {\n      var c = n;\n\n      for (var k = 0; k < 8; k++) {\n        if (c & 1) c = 0xedb88320 ^ c >>> 1;else c = c >>> 1;\n      }\n\n      tab[n] = c;\n    }\n\n    return tab;\n  }(),\n  update: function (c, buf, off, len) {\n    for (var i = 0; i < len; i++) c = UPNG.crc.table[(c ^ buf[off + i]) & 0xff] ^ c >>> 8;\n\n    return c;\n  },\n  crc: function (b, o, l) {\n    return UPNG.crc.update(0xffffffff, b, o, l) ^ 0xffffffff;\n  }\n};\n\nUPNG.quantize = function (abuf, ps) {\n  var oimg = new Uint8Array(abuf),\n      nimg = oimg.slice(0),\n      nimg32 = new Uint32Array(nimg.buffer);\n  var KD = UPNG.quantize.getKDtree(nimg, ps);\n  var root = KD[0],\n      leafs = KD[1];\n  var planeDst = UPNG.quantize.planeDst;\n  var sb = oimg,\n      tb = nimg32,\n      len = sb.length;\n  var inds = new Uint8Array(oimg.length >> 2);\n\n  for (var i = 0; i < len; i += 4) {\n    var r = sb[i] * (1 / 255),\n        g = sb[i + 1] * (1 / 255),\n        b = sb[i + 2] * (1 / 255),\n        a = sb[i + 3] * (1 / 255); //  exact, but too slow :(\n\n    var nd = UPNG.quantize.getNearest(root, r, g, b, a); //var nd = root;\n    //while(nd.left) nd = (planeDst(nd.est,r,g,b,a)<=0) ? nd.left : nd.right;\n\n    inds[i >> 2] = nd.ind;\n    tb[i >> 2] = nd.est.rgba;\n  }\n\n  return {\n    abuf: nimg.buffer,\n    inds: inds,\n    plte: leafs\n  };\n};\n\nUPNG.quantize.getKDtree = function (nimg, ps, err) {\n  if (err == null) err = 0.0001;\n  var nimg32 = new Uint32Array(nimg.buffer);\n  var root = {\n    i0: 0,\n    i1: nimg.length,\n    bst: null,\n    est: null,\n    tdst: 0,\n    left: null,\n    right: null\n  }; // basic statistic, extra statistic\n\n  root.bst = UPNG.quantize.stats(nimg, root.i0, root.i1);\n  root.est = UPNG.quantize.estats(root.bst);\n  var leafs = [root];\n\n  while (leafs.length < ps) {\n    var maxL = 0,\n        mi = 0;\n\n    for (var i = 0; i < leafs.length; i++) if (leafs[i].est.L > maxL) {\n      maxL = leafs[i].est.L;\n      mi = i;\n    }\n\n    if (maxL < err) break;\n    var node = leafs[mi];\n    var s0 = UPNG.quantize.splitPixels(nimg, nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);\n    var s0wrong = node.i0 >= s0 || node.i1 <= s0; //console.log(maxL, leafs.length, mi);\n\n    if (s0wrong) {\n      node.est.L = 0;\n      continue;\n    }\n\n    var ln = {\n      i0: node.i0,\n      i1: s0,\n      bst: null,\n      est: null,\n      tdst: 0,\n      left: null,\n      right: null\n    };\n    ln.bst = UPNG.quantize.stats(nimg, ln.i0, ln.i1);\n    ln.est = UPNG.quantize.estats(ln.bst);\n    var rn = {\n      i0: s0,\n      i1: node.i1,\n      bst: null,\n      est: null,\n      tdst: 0,\n      left: null,\n      right: null\n    };\n    rn.bst = {\n      R: [],\n      m: [],\n      N: node.bst.N - ln.bst.N\n    };\n\n    for (var i = 0; i < 16; i++) rn.bst.R[i] = node.bst.R[i] - ln.bst.R[i];\n\n    for (var i = 0; i < 4; i++) rn.bst.m[i] = node.bst.m[i] - ln.bst.m[i];\n\n    rn.est = UPNG.quantize.estats(rn.bst);\n    node.left = ln;\n    node.right = rn;\n    leafs[mi] = ln;\n    leafs.push(rn);\n  }\n\n  leafs.sort(function (a, b) {\n    return b.bst.N - a.bst.N;\n  });\n\n  for (var i = 0; i < leafs.length; i++) leafs[i].ind = i;\n\n  return [root, leafs];\n};\n\nUPNG.quantize.getNearest = function (nd, r, g, b, a) {\n  if (nd.left == null) {\n    nd.tdst = UPNG.quantize.dist(nd.est.q, r, g, b, a);\n    return nd;\n  }\n\n  var planeDst = UPNG.quantize.planeDst(nd.est, r, g, b, a);\n  var node0 = nd.left,\n      node1 = nd.right;\n\n  if (planeDst > 0) {\n    node0 = nd.right;\n    node1 = nd.left;\n  }\n\n  var ln = UPNG.quantize.getNearest(node0, r, g, b, a);\n  if (ln.tdst <= planeDst * planeDst) return ln;\n  var rn = UPNG.quantize.getNearest(node1, r, g, b, a);\n  return rn.tdst < ln.tdst ? rn : ln;\n};\n\nUPNG.quantize.planeDst = function (est, r, g, b, a) {\n  var e = est.e;\n  return e[0] * r + e[1] * g + e[2] * b + e[3] * a - est.eMq;\n};\n\nUPNG.quantize.dist = function (q, r, g, b, a) {\n  var d0 = r - q[0],\n      d1 = g - q[1],\n      d2 = b - q[2],\n      d3 = a - q[3];\n  return d0 * d0 + d1 * d1 + d2 * d2 + d3 * d3;\n};\n\nUPNG.quantize.splitPixels = function (nimg, nimg32, i0, i1, e, eMq) {\n  var vecDot = UPNG.quantize.vecDot;\n  i1 -= 4;\n  var shfs = 0;\n\n  while (i0 < i1) {\n    while (vecDot(nimg, i0, e) <= eMq) i0 += 4;\n\n    while (vecDot(nimg, i1, e) > eMq) i1 -= 4;\n\n    if (i0 >= i1) break;\n    var t = nimg32[i0 >> 2];\n    nimg32[i0 >> 2] = nimg32[i1 >> 2];\n    nimg32[i1 >> 2] = t;\n    i0 += 4;\n    i1 -= 4;\n  }\n\n  while (vecDot(nimg, i0, e) > eMq) i0 -= 4;\n\n  return i0 + 4;\n};\n\nUPNG.quantize.vecDot = function (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\nUPNG.quantize.stats = function (nimg, i0, i1) {\n  var R = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n  var m = [0, 0, 0, 0];\n  var N = i1 - i0 >> 2;\n\n  for (var i = i0; i < i1; i += 4) {\n    var r = nimg[i] * (1 / 255),\n        g = nimg[i + 1] * (1 / 255),\n        b = nimg[i + 2] * (1 / 255),\n        a = nimg[i + 3] * (1 / 255); //var r = nimg[i], g = nimg[i+1], b = nimg[i+2], a = nimg[i+3];\n\n    m[0] += r;\n    m[1] += g;\n    m[2] += b;\n    m[3] += a;\n    R[0] += r * r;\n    R[1] += r * g;\n    R[2] += r * b;\n    R[3] += r * a;\n    R[5] += g * g;\n    R[6] += g * b;\n    R[7] += g * a;\n    R[10] += b * b;\n    R[11] += b * a;\n    R[15] += a * a;\n  }\n\n  R[4] = R[1];\n  R[8] = R[2];\n  R[9] = R[6];\n  R[12] = R[3];\n  R[13] = R[7];\n  R[14] = R[11];\n  return {\n    R: R,\n    m: m,\n    N: N\n  };\n};\n\nUPNG.quantize.estats = function (stats) {\n  var R = stats.R,\n      m = stats.m,\n      N = stats.N; // when all samples are equal, but N is large (millions), the Rj can be non-zero ( 0.0003.... - precission error)\n\n  var m0 = m[0],\n      m1 = m[1],\n      m2 = m[2],\n      m3 = m[3],\n      iN = N == 0 ? 0 : 1 / N;\n  var Rj = [R[0] - m0 * m0 * iN, R[1] - m0 * m1 * iN, R[2] - m0 * m2 * iN, R[3] - m0 * m3 * iN, R[4] - m1 * m0 * iN, R[5] - m1 * m1 * iN, R[6] - m1 * m2 * iN, R[7] - m1 * m3 * iN, R[8] - m2 * m0 * iN, R[9] - m2 * m1 * iN, R[10] - m2 * m2 * iN, R[11] - m2 * m3 * iN, R[12] - m3 * m0 * iN, R[13] - m3 * m1 * iN, R[14] - m3 * m2 * iN, R[15] - m3 * m3 * iN];\n  var A = Rj,\n      M = UPNG.M4;\n  var b = [0.5, 0.5, 0.5, 0.5],\n      mi = 0,\n      tmi = 0;\n  if (N != 0) for (var i = 0; i < 10; i++) {\n    b = M.multVec(A, b);\n    tmi = Math.sqrt(M.dot(b, b));\n    b = M.sml(1 / tmi, b);\n    if (Math.abs(tmi - mi) < 1e-9) break;\n    mi = tmi;\n  } //b = [0,0,1,0];  mi=N;\n\n  var q = [m0 * iN, m1 * iN, m2 * iN, m3 * iN];\n  var eMq255 = M.dot(M.sml(255, q), b);\n  return {\n    Cov: Rj,\n    q: q,\n    e: b,\n    L: mi,\n    eMq255: 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\nUPNG.M4 = {\n  multVec: function (m, v) {\n    return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3] * v[3], m[4] * v[0] + m[5] * v[1] + m[6] * v[2] + m[7] * v[3], m[8] * v[0] + m[9] * v[1] + m[10] * v[2] + m[11] * v[3], m[12] * v[0] + m[13] * v[1] + m[14] * v[2] + m[15] * v[3]];\n  },\n  dot: function (x, y) {\n    return x[0] * y[0] + x[1] * y[1] + x[2] * y[2] + x[3] * y[3];\n  },\n  sml: function (a, y) {\n    return [a * y[0], a * y[1], a * y[2], a * y[3]];\n  }\n};\n\nUPNG.encode.concatRGBA = function (bufs) {\n  var tlen = 0;\n\n  for (var i = 0; i < bufs.length; i++) tlen += bufs[i].byteLength;\n\n  var nimg = new Uint8Array(tlen),\n      noff = 0;\n\n  for (var i = 0; i < bufs.length; i++) {\n    var img = new Uint8Array(bufs[i]),\n        il = img.length;\n\n    for (var j = 0; j < il; j += 4) {\n      var r = img[j],\n          g = img[j + 1],\n          b = img[j + 2],\n          a = img[j + 3];\n      if (a == 0) r = g = b = 0;\n      nimg[noff + j] = r;\n      nimg[noff + j + 1] = g;\n      nimg[noff + j + 2] = b;\n      nimg[noff + j + 3] = a;\n    }\n\n    noff += il;\n  }\n\n  return nimg.buffer;\n};\n\nvar _default = UPNG;\nexports.default = _default;"]}