{"version":3,"file":"jspdf.umd.js","sources":["../src/libs/globalObject.js","../src/libs/console.js","../src/libs/FileSaver.js","../src/libs/rgbcolor.js","../src/libs/AtobBtoa.js","../src/libs/md5.js","../src/libs/rc4.js","../src/libs/pdfsecurity.js","../src/jspdf.js","../src/modules/acroform.js","../src/modules/addimage.js","../src/modules/annotations.js","../src/modules/arabic.js","../src/modules/autoprint.js","../src/modules/canvas.js","../src/modules/cell.js","../src/libs/fontFace.js","../src/modules/context2d.js","../node_modules/fflate/esm/index.mjs","../src/modules/filters.js","../src/modules/fileloading.js","../src/modules/html.js","../src/modules/javascript.js","../src/modules/outline.js","../src/modules/jpeg_support.js","../src/libs/png.js","../src/modules/png_support.js","../src/libs/omggif.js","../src/libs/JPEGEncoder.js","../src/modules/gif_support.js","../src/libs/BMPDecoder.js","../src/modules/bmp_support.js","../src/libs/WebPDecoder.js","../src/modules/webp_support.js","../src/modules/setlanguage.js","../src/modules/split_text_to_size.js","../src/modules/standard_fonts_metrics.js","../src/modules/ttfsupport.js","../src/modules/svg.js","../src/modules/total_pages.js","../src/modules/viewerpreferences.js","../src/modules/xmp_metadata.js","../src/modules/utf8.js","../src/modules/vfs.js","../src/libs/bidiEngine.js","../src/libs/ttffont.js"],"sourcesContent":["export var globalObject = (function() {\n  return \"undefined\" !== typeof window\n    ? window\n    : \"undefined\" !== typeof global\n    ? global\n    : \"undefined\" !== typeof self\n    ? self\n    : this;\n})();\n","import { globalObject } from \"./globalObject.js\";\n\nfunction consoleLog() {\n  if (globalObject.console && typeof globalObject.console.log === \"function\") {\n    globalObject.console.log.apply(globalObject.console, arguments);\n  }\n}\n\nfunction consoleWarn(str) {\n  if (globalObject.console) {\n    if (typeof globalObject.console.warn === \"function\") {\n      globalObject.console.warn.apply(globalObject.console, arguments);\n    } else {\n      consoleLog.call(null, arguments);\n    }\n  }\n}\n\nfunction consoleError(str) {\n  if (globalObject.console) {\n    if (typeof globalObject.console.error === \"function\") {\n      globalObject.console.error.apply(globalObject.console, arguments);\n    } else {\n      consoleLog(str);\n    }\n  }\n}\nexport var console = {\n  log: consoleLog,\n  warn: consoleWarn,\n  error: consoleError\n};\n","/**\n * @license\n * FileSaver.js\n * A saveAs() FileSaver implementation.\n *\n * By Eli Grey, http://eligrey.com\n *\n * License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n * source  : http://purl.eligrey.com/github/FileSaver.js\n */\n\nimport { globalObject as _global } from \"./globalObject.js\";\nimport { console } from \"./console.js\";\n\nfunction bom(blob, opts) {\n  if (typeof opts === \"undefined\") opts = { autoBom: false };\n  else if (typeof opts !== \"object\") {\n    console.warn(\"Deprecated: Expected third argument to be a object\");\n    opts = { autoBom: !opts };\n  }\n\n  // prepend BOM for UTF-8 XML and text/* types (including HTML)\n  // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n  if (\n    opts.autoBom &&\n    /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(\n      blob.type\n    )\n  ) {\n    return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n  }\n  return blob;\n}\n\nfunction download(url, name, opts) {\n  var xhr = new XMLHttpRequest();\n  xhr.open(\"GET\", url);\n  xhr.responseType = \"blob\";\n  xhr.onload = function() {\n    saveAs(xhr.response, name, opts);\n  };\n  xhr.onerror = function() {\n    console.error(\"could not download file\");\n  };\n  xhr.send();\n}\n\nfunction corsEnabled(url) {\n  var xhr = new XMLHttpRequest();\n  // use sync to avoid popup blocker\n  xhr.open(\"HEAD\", url, false);\n  try {\n    xhr.send();\n  } catch (e) {}\n  return xhr.status >= 200 && xhr.status <= 299;\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n  try {\n    node.dispatchEvent(new MouseEvent(\"click\"));\n  } catch (e) {\n    var evt = document.createEvent(\"MouseEvents\");\n    evt.initMouseEvent(\n      \"click\",\n      true,\n      true,\n      window,\n      0,\n      0,\n      0,\n      80,\n      20,\n      false,\n      false,\n      false,\n      false,\n      0,\n      null\n    );\n    node.dispatchEvent(evt);\n  }\n}\n\nvar saveAs =\n  _global.saveAs ||\n  // probably in some web worker\n  (typeof window !== \"object\" || window !== _global\n    ? function saveAs() {\n        /* noop */\n      }\n    : // Use download attribute first if possible (#193 Lumia mobile)\n    \"download\" in HTMLAnchorElement.prototype\n    ? function saveAs(blob, name, opts) {\n        var URL = _global.URL || _global.webkitURL;\n        var a = document.createElement(\"a\");\n        name = name || blob.name || \"download\";\n\n        a.download = name;\n        a.rel = \"noopener\"; // tabnabbing\n\n        // TODO: detect chrome extensions & packaged apps\n        // a.target = '_blank'\n\n        if (typeof blob === \"string\") {\n          // Support regular links\n          a.href = blob;\n          if (a.origin !== location.origin) {\n            corsEnabled(a.href)\n              ? download(blob, name, opts)\n              : click(a, (a.target = \"_blank\"));\n          } else {\n            click(a);\n          }\n        } else {\n          // Support blobs\n          a.href = URL.createObjectURL(blob);\n          setTimeout(function() {\n            URL.revokeObjectURL(a.href);\n          }, 4e4); // 40s\n          setTimeout(function() {\n            click(a);\n          }, 0);\n        }\n      }\n    : // Use msSaveOrOpenBlob as a second approach\n    \"msSaveOrOpenBlob\" in navigator\n    ? function saveAs(blob, name, opts) {\n        name = name || blob.name || \"download\";\n\n        if (typeof blob === \"string\") {\n          if (corsEnabled(blob)) {\n            download(blob, name, opts);\n          } else {\n            var a = document.createElement(\"a\");\n            a.href = blob;\n            a.target = \"_blank\";\n            setTimeout(function() {\n              click(a);\n            });\n          }\n        } else {\n          navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n        }\n      }\n    : // Fallback to using FileReader and a popup\n      function saveAs(blob, name, opts, popup) {\n        // Open a popup immediately do go around popup blocker\n        // Mostly only available on user interaction and the fileReader is async so...\n        popup = popup || open(\"\", \"_blank\");\n        if (popup) {\n          popup.document.title = popup.document.body.innerText =\n            \"downloading...\";\n        }\n\n        if (typeof blob === \"string\") return download(blob, name, opts);\n\n        var force = blob.type === \"application/octet-stream\";\n        var isSafari =\n          /constructor/i.test(_global.HTMLElement) || _global.safari;\n        var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n\n        if (\n          (isChromeIOS || (force && isSafari)) &&\n          typeof FileReader === \"object\"\n        ) {\n          // Safari doesn't allow downloading of blob URLs\n          var reader = new FileReader();\n          reader.onloadend = function() {\n            var url = reader.result;\n            url = isChromeIOS\n              ? url\n              : url.replace(/^data:[^;]*;/, \"data:attachment/file;\");\n            if (popup) popup.location.href = url;\n            else location = url;\n            popup = null; // reverse-tabnabbing #460\n          };\n          reader.readAsDataURL(blob);\n        } else {\n          var URL = _global.URL || _global.webkitURL;\n          var url = URL.createObjectURL(blob);\n          if (popup) popup.location = url;\n          else location.href = url;\n          popup = null; // reverse-tabnabbing #460\n          setTimeout(function() {\n            URL.revokeObjectURL(url);\n          }, 4e4); // 40s\n        }\n      });\n\nexport { saveAs };\n","/**\n * A class to parse color values\n * @author Stoyan Stefanov <sstoo@gmail.com>\n * {@link   http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */\n\nfunction RGBColor(color_string) {\n  color_string = color_string || \"\";\n  this.ok = false;\n\n  // strip any leading #\n  if (color_string.charAt(0) == \"#\") {\n    // remove # if any\n    color_string = color_string.substr(1, 6);\n  }\n\n  color_string = color_string.replace(/ /g, \"\");\n  color_string = color_string.toLowerCase();\n\n  var channels;\n\n  // before getting into regexps, try simple matches\n  // and overwrite the input\n  var simple_colors = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"00ffff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"0000ff\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"00ffff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dodgerblue: \"1e90ff\",\n    feldspar: \"d19275\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"ff00ff\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgrey: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslateblue: \"8470ff\",\n    lightslategray: \"778899\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"00ff00\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"ff00ff\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370d8\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"d87093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    red: \"ff0000\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    violetred: \"d02090\",\n    wheat: \"f5deb3\",\n    white: \"ffffff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ffff00\",\n    yellowgreen: \"9acd32\"\n  };\n  color_string = simple_colors[color_string] || color_string;\n\n  // array of color definition objects\n  var color_defs = [\n    {\n      re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n      example: [\"rgb(123, 234, 45)\", \"rgb(255,234,245)\"],\n      process: function(bits) {\n        return [parseInt(bits[1]), parseInt(bits[2]), parseInt(bits[3])];\n      }\n    },\n    {\n      re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n      example: [\"#00ff00\", \"336699\"],\n      process: function(bits) {\n        return [\n          parseInt(bits[1], 16),\n          parseInt(bits[2], 16),\n          parseInt(bits[3], 16)\n        ];\n      }\n    },\n    {\n      re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n      example: [\"#fb0\", \"f0f\"],\n      process: function(bits) {\n        return [\n          parseInt(bits[1] + bits[1], 16),\n          parseInt(bits[2] + bits[2], 16),\n          parseInt(bits[3] + bits[3], 16)\n        ];\n      }\n    }\n  ];\n\n  // search through the definitions to find a match\n  for (var i = 0; i < color_defs.length; i++) {\n    var re = color_defs[i].re;\n    var processor = color_defs[i].process;\n    var bits = re.exec(color_string);\n    if (bits) {\n      channels = processor(bits);\n      this.r = channels[0];\n      this.g = channels[1];\n      this.b = channels[2];\n      this.ok = true;\n    }\n  }\n\n  // validate/cleanup values\n  this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r;\n  this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g;\n  this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b;\n\n  // some getters\n  this.toRGB = function() {\n    return \"rgb(\" + this.r + \", \" + this.g + \", \" + this.b + \")\";\n  };\n  this.toHex = function() {\n    var r = this.r.toString(16);\n    var g = this.g.toString(16);\n    var b = this.b.toString(16);\n    if (r.length == 1) r = \"0\" + r;\n    if (g.length == 1) g = \"0\" + g;\n    if (b.length == 1) b = \"0\" + b;\n    return \"#\" + r + g + b;\n  };\n}\n\nexport { RGBColor };\n","import { globalObject } from \"./globalObject.js\";\n\nvar atob, btoa;\n\n(function() {\n  atob = globalObject.atob.bind(globalObject);\n  btoa = globalObject.btoa.bind(globalObject);\n  return;\n\n})();\n\nexport { atob, btoa };\n","/**\r\n * @license\r\n * Joseph Myers does not specify a particular license for his work.\r\n *\r\n * Author: Joseph Myers\r\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\r\n *\r\n * Modified by: Owen Leong\r\n */\r\n\r\nfunction md5cycle(x, k) {\r\n  var a = x[0],\r\n    b = x[1],\r\n    c = x[2],\r\n    d = x[3];\r\n\r\n  a = ff(a, b, c, d, k[0], 7, -680876936);\r\n  d = ff(d, a, b, c, k[1], 12, -389564586);\r\n  c = ff(c, d, a, b, k[2], 17, 606105819);\r\n  b = ff(b, c, d, a, k[3], 22, -1044525330);\r\n  a = ff(a, b, c, d, k[4], 7, -176418897);\r\n  d = ff(d, a, b, c, k[5], 12, 1200080426);\r\n  c = ff(c, d, a, b, k[6], 17, -1473231341);\r\n  b = ff(b, c, d, a, k[7], 22, -45705983);\r\n  a = ff(a, b, c, d, k[8], 7, 1770035416);\r\n  d = ff(d, a, b, c, k[9], 12, -1958414417);\r\n  c = ff(c, d, a, b, k[10], 17, -42063);\r\n  b = ff(b, c, d, a, k[11], 22, -1990404162);\r\n  a = ff(a, b, c, d, k[12], 7, 1804603682);\r\n  d = ff(d, a, b, c, k[13], 12, -40341101);\r\n  c = ff(c, d, a, b, k[14], 17, -1502002290);\r\n  b = ff(b, c, d, a, k[15], 22, 1236535329);\r\n\r\n  a = gg(a, b, c, d, k[1], 5, -165796510);\r\n  d = gg(d, a, b, c, k[6], 9, -1069501632);\r\n  c = gg(c, d, a, b, k[11], 14, 643717713);\r\n  b = gg(b, c, d, a, k[0], 20, -373897302);\r\n  a = gg(a, b, c, d, k[5], 5, -701558691);\r\n  d = gg(d, a, b, c, k[10], 9, 38016083);\r\n  c = gg(c, d, a, b, k[15], 14, -660478335);\r\n  b = gg(b, c, d, a, k[4], 20, -405537848);\r\n  a = gg(a, b, c, d, k[9], 5, 568446438);\r\n  d = gg(d, a, b, c, k[14], 9, -1019803690);\r\n  c = gg(c, d, a, b, k[3], 14, -187363961);\r\n  b = gg(b, c, d, a, k[8], 20, 1163531501);\r\n  a = gg(a, b, c, d, k[13], 5, -1444681467);\r\n  d = gg(d, a, b, c, k[2], 9, -51403784);\r\n  c = gg(c, d, a, b, k[7], 14, 1735328473);\r\n  b = gg(b, c, d, a, k[12], 20, -1926607734);\r\n\r\n  a = hh(a, b, c, d, k[5], 4, -378558);\r\n  d = hh(d, a, b, c, k[8], 11, -2022574463);\r\n  c = hh(c, d, a, b, k[11], 16, 1839030562);\r\n  b = hh(b, c, d, a, k[14], 23, -35309556);\r\n  a = hh(a, b, c, d, k[1], 4, -1530992060);\r\n  d = hh(d, a, b, c, k[4], 11, 1272893353);\r\n  c = hh(c, d, a, b, k[7], 16, -155497632);\r\n  b = hh(b, c, d, a, k[10], 23, -1094730640);\r\n  a = hh(a, b, c, d, k[13], 4, 681279174);\r\n  d = hh(d, a, b, c, k[0], 11, -358537222);\r\n  c = hh(c, d, a, b, k[3], 16, -722521979);\r\n  b = hh(b, c, d, a, k[6], 23, 76029189);\r\n  a = hh(a, b, c, d, k[9], 4, -640364487);\r\n  d = hh(d, a, b, c, k[12], 11, -421815835);\r\n  c = hh(c, d, a, b, k[15], 16, 530742520);\r\n  b = hh(b, c, d, a, k[2], 23, -995338651);\r\n\r\n  a = ii(a, b, c, d, k[0], 6, -198630844);\r\n  d = ii(d, a, b, c, k[7], 10, 1126891415);\r\n  c = ii(c, d, a, b, k[14], 15, -1416354905);\r\n  b = ii(b, c, d, a, k[5], 21, -57434055);\r\n  a = ii(a, b, c, d, k[12], 6, 1700485571);\r\n  d = ii(d, a, b, c, k[3], 10, -1894986606);\r\n  c = ii(c, d, a, b, k[10], 15, -1051523);\r\n  b = ii(b, c, d, a, k[1], 21, -2054922799);\r\n  a = ii(a, b, c, d, k[8], 6, 1873313359);\r\n  d = ii(d, a, b, c, k[15], 10, -30611744);\r\n  c = ii(c, d, a, b, k[6], 15, -1560198380);\r\n  b = ii(b, c, d, a, k[13], 21, 1309151649);\r\n  a = ii(a, b, c, d, k[4], 6, -145523070);\r\n  d = ii(d, a, b, c, k[11], 10, -1120210379);\r\n  c = ii(c, d, a, b, k[2], 15, 718787259);\r\n  b = ii(b, c, d, a, k[9], 21, -343485551);\r\n\r\n  x[0] = add32(a, x[0]);\r\n  x[1] = add32(b, x[1]);\r\n  x[2] = add32(c, x[2]);\r\n  x[3] = add32(d, x[3]);\r\n}\r\n\r\nfunction cmn(q, a, b, x, s, t) {\r\n  a = add32(add32(a, q), add32(x, t));\r\n  return add32((a << s) | (a >>> (32 - s)), b);\r\n}\r\n\r\nfunction ff(a, b, c, d, x, s, t) {\r\n  return cmn((b & c) | (~b & d), a, b, x, s, t);\r\n}\r\n\r\nfunction gg(a, b, c, d, x, s, t) {\r\n  return cmn((b & d) | (c & ~d), a, b, x, s, t);\r\n}\r\n\r\nfunction hh(a, b, c, d, x, s, t) {\r\n  return cmn(b ^ c ^ d, a, b, x, s, t);\r\n}\r\n\r\nfunction ii(a, b, c, d, x, s, t) {\r\n  return cmn(c ^ (b | ~d), a, b, x, s, t);\r\n}\r\n\r\nfunction md51(s) {\r\n  // txt = '';\r\n  var n = s.length,\r\n    state = [1732584193, -271733879, -1732584194, 271733878],\r\n    i;\r\n  for (i = 64; i <= s.length; i += 64) {\r\n    md5cycle(state, md5blk(s.substring(i - 64, i)));\r\n  }\r\n  s = s.substring(i - 64);\r\n  var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n  for (i = 0; i < s.length; i++)\r\n    tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\r\n  tail[i >> 2] |= 0x80 << (i % 4 << 3);\r\n  if (i > 55) {\r\n    md5cycle(state, tail);\r\n    for (i = 0; i < 16; i++) tail[i] = 0;\r\n  }\r\n  tail[14] = n * 8;\r\n  md5cycle(state, tail);\r\n  return state;\r\n}\r\n\r\n/* there needs to be support for Unicode here,\r\n * unless we pretend that we can redefine the MD-5\r\n * algorithm for multi-byte characters (perhaps\r\n * by adding every four 16-bit characters and\r\n * shortening the sum to 32 bits). Otherwise\r\n * I suggest performing MD-5 as if every character\r\n * was two bytes--e.g., 0040 0025 = @%--but then\r\n * how will an ordinary MD-5 sum be matched?\r\n * There is no way to standardize text to something\r\n * like UTF-8 before transformation; speed cost is\r\n * utterly prohibitive. The JavaScript standard\r\n * itself needs to look at this: it should start\r\n * providing access to strings as preformed UTF-8\r\n * 8-bit unsigned value arrays.\r\n */\r\nfunction md5blk(s) {\r\n  /* I figured global was faster.   */\r\n  var md5blks = [],\r\n    i; /* Andy King said do it this way. */\r\n  for (i = 0; i < 64; i += 4) {\r\n    md5blks[i >> 2] =\r\n      s.charCodeAt(i) +\r\n      (s.charCodeAt(i + 1) << 8) +\r\n      (s.charCodeAt(i + 2) << 16) +\r\n      (s.charCodeAt(i + 3) << 24);\r\n  }\r\n  return md5blks;\r\n}\r\n\r\nvar hex_chr = \"0123456789abcdef\".split(\"\");\r\n\r\nfunction rhex(n) {\r\n  var s = \"\",\r\n    j = 0;\r\n  for (; j < 4; j++)\r\n    s += hex_chr[(n >> (j * 8 + 4)) & 0x0f] + hex_chr[(n >> (j * 8)) & 0x0f];\r\n  return s;\r\n}\r\n\r\nfunction hex(x) {\r\n  for (var i = 0; i < x.length; i++) x[i] = rhex(x[i]);\r\n  return x.join(\"\");\r\n}\r\n\r\n// Converts a 4-byte number to byte string\r\nfunction singleToByteString(n) {\r\n  return String.fromCharCode(\r\n    (n & 0xff) >> 0,\r\n    (n & 0xff00) >> 8,\r\n    (n & 0xff0000) >> 16,\r\n    (n & 0xff000000) >> 24\r\n  );\r\n}\r\n\r\n// Converts an array of numbers to a byte string\r\nfunction toByteString(x) {\r\n  return x.map(singleToByteString).join(\"\");\r\n}\r\n\r\n// Returns the MD5 hash as a byte string\r\nfunction md5Bin(s) {\r\n  return toByteString(md51(s));\r\n}\r\n\r\n// Returns MD5 hash as a hex string\r\nfunction md5(s) {\r\n  return hex(md51(s));\r\n}\r\n\r\n/* this function is much faster,\r\nso if possible we use it. Some IEs\r\nare the only ones I know of that\r\nneed the idiotic second function,\r\ngenerated by an if clause.  */\r\n\r\nfunction add32(a, b) {\r\n  return (a + b) & 0xffffffff;\r\n}\r\n\r\nif (md5(\"hello\") != \"5d41402abc4b2a76b9719d911017c592\") {\r\n  function add32(x, y) {\r\n    var lsw = (x & 0xffff) + (y & 0xffff),\r\n      msw = (x >> 16) + (y >> 16) + (lsw >> 16);\r\n    return (msw << 16) | (lsw & 0xffff);\r\n  }\r\n}\r\n\r\nexport { md5, md5Bin };\r\n","/**\r\n * @license\r\n * FPDF is released under a permissive license: there is no usage restriction.\r\n * You may embed it freely in your application (commercial or not), with or\r\n * without modifications.\r\n *\r\n * Reference: http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nfunction repeat(str, num) {\r\n  return new Array(num + 1).join(str);\r\n}\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name rc4\r\n * @function\r\n * @param {string} key Byte string of encryption key\r\n * @param {string} data Byte string of data to be encrypted\r\n * @returns {string} Encrypted string\r\n */\r\nfunction rc4(key, data) {\r\n  var lastKey, lastState;\r\n  if (key !== lastKey) {\r\n    var k = repeat(key, ((256 / key.length) >> 0) + 1);\r\n    var state = [];\r\n    for (var i = 0; i < 256; i++) {\r\n      state[i] = i;\r\n    }\r\n    var j = 0;\r\n    for (var i = 0; i < 256; i++) {\r\n      var t = state[i];\r\n      j = (j + t + k.charCodeAt(i)) % 256;\r\n      state[i] = state[j];\r\n      state[j] = t;\r\n    }\r\n    lastKey = key;\r\n    lastState = state;\r\n  } else {\r\n    state = lastState;\r\n  }\r\n  var length = data.length;\r\n  var a = 0;\r\n  var b = 0;\r\n  var out = \"\";\r\n  for (var i = 0; i < length; i++) {\r\n    a = (a + 1) % 256;\r\n    t = state[a];\r\n    b = (b + t) % 256;\r\n    state[a] = state[b];\r\n    state[b] = t;\r\n    k = state[(state[a] + state[b]) % 256];\r\n    out += String.fromCharCode(data.charCodeAt(i) ^ k);\r\n  }\r\n  return out;\r\n}\r\n\r\nexport { rc4 };\r\n","/**\r\n * @license\r\n * Licensed under the MIT License.\r\n * http://opensource.org/licenses/mit-license\r\n * Author: Owen Leong (@owenl131)\r\n * Date: 15 Oct 2020\r\n * References:\r\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\r\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\r\n * http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nimport { md5Bin } from \"./md5.js\";\r\nimport { rc4 } from \"./rc4.js\";\r\n\r\nvar permissionOptions = {\r\n  print: 4,\r\n  modify: 8,\r\n  copy: 16,\r\n  \"annot-forms\": 32\r\n};\r\n\r\n/**\r\n * Initializes encryption settings\r\n *\r\n * @name constructor\r\n * @function\r\n * @param {Array} permissions Permissions allowed for user, \"print\", \"modify\", \"copy\" and \"annot-forms\".\r\n * @param {String} userPassword Permissions apply to this user. Leaving this empty means the document\r\n *                              is not password protected but viewer has the above permissions.\r\n * @param {String} ownerPassword Owner has full functionalities to the file.\r\n * @param {String} fileId As hex string, should be same as the file ID in the trailer.\r\n * @example\r\n * var security = new PDFSecurity([\"print\"])\r\n */\r\nfunction PDFSecurity(permissions, userPassword, ownerPassword, fileId) {\r\n  this.v = 1; // algorithm 1, future work can add in more recent encryption schemes\r\n  this.r = 2; // revision 2\r\n\r\n  // set flags for what functionalities the user can access\r\n  let protection = 192;\r\n  permissions.forEach(function(perm) {\r\n    if (typeof permissionOptions.perm !== \"undefined\") {\r\n      throw new Error(\"Invalid permission: \" + perm);\r\n    }\r\n    protection += permissionOptions[perm];\r\n  });\r\n\r\n  // padding is used to pad the passwords to 32 bytes, also is hashed and stored in the final PDF\r\n  this.padding =\r\n    \"\\x28\\xBF\\x4E\\x5E\\x4E\\x75\\x8A\\x41\\x64\\x00\\x4E\\x56\\xFF\\xFA\\x01\\x08\" +\r\n    \"\\x2E\\x2E\\x00\\xB6\\xD0\\x68\\x3E\\x80\\x2F\\x0C\\xA9\\xFE\\x64\\x53\\x69\\x7A\";\r\n  let paddedUserPassword = (userPassword + this.padding).substr(0, 32);\r\n  let paddedOwnerPassword = (ownerPassword + this.padding).substr(0, 32);\r\n\r\n  this.O = this.processOwnerPassword(paddedUserPassword, paddedOwnerPassword);\r\n  this.P = -((protection ^ 255) + 1);\r\n  this.encryptionKey = md5Bin(\r\n    paddedUserPassword +\r\n      this.O +\r\n      this.lsbFirstWord(this.P) +\r\n      this.hexToBytes(fileId)\r\n  ).substr(0, 5);\r\n  this.U = rc4(this.encryptionKey, this.padding);\r\n}\r\n\r\n/**\r\n * Breaks down a 4-byte number into its individual bytes, with the least significant bit first\r\n *\r\n * @name lsbFirstWord\r\n * @function\r\n * @param {number} data 32-bit number\r\n * @returns {Array}\r\n */\r\nPDFSecurity.prototype.lsbFirstWord = function(data) {\r\n  return String.fromCharCode(\r\n    (data >> 0) & 0xff,\r\n    (data >> 8) & 0xff,\r\n    (data >> 16) & 0xff,\r\n    (data >> 24) & 0xff\r\n  );\r\n};\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name toHexString\r\n * @function\r\n * @param {String} byteString Byte string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.toHexString = function(byteString) {\r\n  return byteString\r\n    .split(\"\")\r\n    .map(function(byte) {\r\n      return (\"0\" + (byte.charCodeAt(0) & 0xff).toString(16)).slice(-2);\r\n    })\r\n    .join(\"\");\r\n};\r\n\r\n/**\r\n * Converts a hex string to a byte string\r\n *\r\n * @name hexToBytes\r\n * @function\r\n * @param {String} hex Hex string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.hexToBytes = function(hex) {\r\n  for (var bytes = [], c = 0; c < hex.length; c += 2)\r\n    bytes.push(String.fromCharCode(parseInt(hex.substr(c, 2), 16)));\r\n  return bytes.join(\"\");\r\n};\r\n\r\n/**\r\n * Computes the 'O' field in the encryption dictionary\r\n *\r\n * @name processOwnerPassword\r\n * @function\r\n * @param {String} paddedUserPassword Byte string of padded user password\r\n * @param {String} paddedOwnerPassword Byte string of padded owner password\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.processOwnerPassword = function(\r\n  paddedUserPassword,\r\n  paddedOwnerPassword\r\n) {\r\n  let key = md5Bin(paddedOwnerPassword).substr(0, 5);\r\n  return rc4(key, paddedUserPassword);\r\n};\r\n\r\n/**\r\n * Returns an encryptor function which can take in a byte string and returns the encrypted version\r\n *\r\n * @name encryptor\r\n * @function\r\n * @param {number} objectId\r\n * @param {number} generation Not sure what this is for, you can set it to 0\r\n * @returns {Function}\r\n * @example\r\n * out(\"stream\");\r\n * encryptor = security.encryptor(object.id, 0);\r\n * out(encryptor(data));\r\n * out(\"endstream\");\r\n */\r\nPDFSecurity.prototype.encryptor = function(objectId, generation) {\r\n  let key = md5Bin(\r\n    this.encryptionKey +\r\n      String.fromCharCode(\r\n        objectId & 0xff,\r\n        (objectId >> 8) & 0xff,\r\n        (objectId >> 16) & 0xff,\r\n        generation & 0xff,\r\n        (generation >> 8) & 0xff\r\n      )\r\n  ).substr(0, 10);\r\n  return function(data) {\r\n    return rc4(key, data);\r\n  };\r\n};\r\n\r\nexport { PDFSecurity };\r\n","/* eslint-disable no-console */\n\nimport { saveAs } from \"./libs/FileSaver.js\";\nimport { globalObject } from \"./libs/globalObject.js\";\nimport { RGBColor } from \"./libs/rgbcolor.js\";\nimport { btoa } from \"./libs/AtobBtoa.js\";\nimport { console } from \"./libs/console.js\";\nimport { PDFSecurity } from \"./libs/pdfsecurity.js\";\n\n/**\n * jsPDF's Internal PubSub Implementation.\n * Backward compatible rewritten on 2014 by\n * Diego Casorran, https://github.com/diegocr\n *\n * @class\n * @name PubSub\n * @ignore\n */\nfunction PubSub(context) {\n  if (typeof context !== \"object\") {\n    throw new Error(\n      \"Invalid Context passed to initialize PubSub (jsPDF-module)\"\n    );\n  }\n  var topics = {};\n\n  this.subscribe = function(topic, callback, once) {\n    once = once || false;\n    if (\n      typeof topic !== \"string\" ||\n      typeof callback !== \"function\" ||\n      typeof once !== \"boolean\"\n    ) {\n      throw new Error(\n        \"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\"\n      );\n    }\n\n    if (!topics.hasOwnProperty(topic)) {\n      topics[topic] = {};\n    }\n\n    var token = Math.random().toString(35);\n    topics[topic][token] = [callback, !!once];\n\n    return token;\n  };\n\n  this.unsubscribe = function(token) {\n    for (var topic in topics) {\n      if (topics[topic][token]) {\n        delete topics[topic][token];\n        if (Object.keys(topics[topic]).length === 0) {\n          delete topics[topic];\n        }\n        return true;\n      }\n    }\n    return false;\n  };\n\n  this.publish = function(topic) {\n    if (topics.hasOwnProperty(topic)) {\n      var args = Array.prototype.slice.call(arguments, 1),\n        tokens = [];\n\n      for (var token in topics[topic]) {\n        var sub = topics[topic][token];\n        try {\n          sub[0].apply(context, args);\n        } catch (ex) {\n          if (globalObject.console) {\n            console.error(\"jsPDF PubSub Error\", ex.message, ex);\n          }\n        }\n        if (sub[1]) tokens.push(token);\n      }\n      if (tokens.length) tokens.forEach(this.unsubscribe);\n    }\n  };\n\n  this.getTopics = function() {\n    return topics;\n  };\n}\n\nfunction GState(parameters) {\n  if (!(this instanceof GState)) {\n    return new GState(parameters);\n  }\n\n  /**\n   * @name GState#opacity\n   * @type {any}\n   */\n  /**\n   * @name GState#stroke-opacity\n   * @type {any}\n   */\n  var supported = \"opacity,stroke-opacity\".split(\",\");\n  for (var p in parameters) {\n    if (parameters.hasOwnProperty(p) && supported.indexOf(p) >= 0) {\n      this[p] = parameters[p];\n    }\n  }\n  /**\n   * @name GState#id\n   * @type {string}\n   */\n  this.id = \"\"; // set by addGState()\n  /**\n   * @name GState#objectNumber\n   * @type {number}\n   */\n  this.objectNumber = -1; // will be set by putGState()\n}\n\nGState.prototype.equals = function equals(other) {\n  var ignore = \"id,objectNumber,equals\";\n  var p;\n  if (!other || typeof other !== typeof this) return false;\n  var count = 0;\n  for (p in this) {\n    if (ignore.indexOf(p) >= 0) continue;\n    if (this.hasOwnProperty(p) && !other.hasOwnProperty(p)) return false;\n    if (this[p] !== other[p]) return false;\n    count++;\n  }\n  for (p in other) {\n    if (other.hasOwnProperty(p) && ignore.indexOf(p) < 0) count--;\n  }\n  return count === 0;\n};\n\nfunction Pattern(gState, matrix) {\n  this.gState = gState;\n  this.matrix = matrix;\n\n  this.id = \"\"; // set by addPattern()\n  this.objectNumber = -1; // will be set by putPattern()\n}\n\nfunction ShadingPattern(type, coords, colors, gState, matrix) {\n  if (!(this instanceof ShadingPattern)) {\n    return new ShadingPattern(type, coords, colors, gState, matrix);\n  }\n\n  // see putPattern() for information how they are realized\n  this.type = type === \"axial\" ? 2 : 3;\n  this.coords = coords;\n  this.colors = colors;\n\n  Pattern.call(this, gState, matrix);\n}\n\nfunction TilingPattern(boundingBox, xStep, yStep, gState, matrix) {\n  if (!(this instanceof TilingPattern)) {\n    return new TilingPattern(boundingBox, xStep, yStep, gState, matrix);\n  }\n\n  this.boundingBox = boundingBox;\n  this.xStep = xStep;\n  this.yStep = yStep;\n\n  this.stream = \"\"; // set by endTilingPattern();\n\n  this.cloneIndex = 0;\n\n  Pattern.call(this, gState, matrix);\n}\n\n/**\n * Creates new jsPDF document object instance.\n * @name jsPDF\n * @class\n * @param {Object} [options] - Collection of settings initializing the jsPDF-instance\n * @param {string} [options.orientation=portrait] - Orientation of the first page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" or \"l\").<br />\n * @param {string} [options.unit=mm] Measurement unit (base unit) to be used when coordinates are specified.<br />\n * Possible values are \"pt\" (points), \"mm\", \"cm\", \"m\", \"in\" or \"px\". Note that in order to get the correct scaling for \"px\"\n * units, you need to enable the hotfix \"px_scaling\" by setting options.hotfixes = [\"px_scaling\"].\n * @param {string/Array} [options.format=a4] The format of the first page. Can be:<ul><li>a0 - a10</li><li>b0 - b10</li><li>c0 - c10</li><li>dl</li><li>letter</li><li>government-letter</li><li>legal</li><li>junior-legal</li><li>ledger</li><li>tabloid</li><li>credit-card</li></ul><br />\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\n * @param {boolean} [options.putOnlyUsedFonts=false] Only put fonts into the PDF, which were used.\n * @param {boolean} [options.compress=false] Compress the generated PDF.\n * @param {number} [options.precision=16] Precision of the element-positions.\n * @param {number} [options.userUnit=1.0] Not to be confused with the base unit. Please inform yourself before you use it.\n * @param {string[]} [options.hotfixes] An array of strings to enable hotfixes such as correct pixel scaling.\n * @param {Object} [options.encryption]\n * @param {string} [options.encryption.userPassword] Password for the user bound by the given permissions list.\n * @param {string} [options.encryption.ownerPassword] Both userPassword and ownerPassword should be set for proper authentication.\n * @param {string[]} [options.encryption.userPermissions] Array of permissions \"print\", \"modify\", \"copy\", \"annot-forms\", accessible by the user.\n * @param {number|\"smart\"} [options.floatPrecision=16]\n * @returns {jsPDF} jsPDF-instance\n * @description\n * ```\n * {\n *  orientation: 'p',\n *  unit: 'mm',\n *  format: 'a4',\n *  putOnlyUsedFonts:true,\n *  floatPrecision: 16 // or \"smart\", default is 16\n * }\n * ```\n *\n * @constructor\n */\nfunction jsPDF(options) {\n  var orientation = typeof arguments[0] === \"string\" ? arguments[0] : \"p\";\n  var unit = arguments[1];\n  var format = arguments[2];\n  var compressPdf = arguments[3];\n  var filters = [];\n  var userUnit = 1.0;\n  var precision;\n  var floatPrecision = 16;\n  var defaultPathOperation = \"S\";\n  var encryptionOptions = null;\n\n  options = options || {};\n\n  if (typeof options === \"object\") {\n    orientation = options.orientation;\n    unit = options.unit || unit;\n    format = options.format || format;\n    compressPdf = options.compress || options.compressPdf || compressPdf;\n    encryptionOptions = options.encryption || null;\n    if (encryptionOptions !== null) {\n      encryptionOptions.userPassword = encryptionOptions.userPassword || \"\";\n      encryptionOptions.ownerPassword = encryptionOptions.ownerPassword || \"\";\n      encryptionOptions.userPermissions =\n        encryptionOptions.userPermissions || [];\n    }\n    userUnit =\n      typeof options.userUnit === \"number\" ? Math.abs(options.userUnit) : 1.0;\n    if (typeof options.precision !== \"undefined\") {\n      precision = options.precision;\n    }\n    if (typeof options.floatPrecision !== \"undefined\") {\n      floatPrecision = options.floatPrecision;\n    }\n    defaultPathOperation = options.defaultPathOperation || \"S\";\n  }\n\n  filters =\n    options.filters || (compressPdf === true ? [\"FlateEncode\"] : filters);\n\n  unit = unit || \"mm\";\n  orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n  var putOnlyUsedFonts = options.putOnlyUsedFonts || false;\n  var usedFonts = {};\n\n  var API = {\n    internal: {},\n    __private__: {}\n  };\n\n  API.__private__.PubSub = PubSub;\n\n  var pdfVersion = \"1.3\";\n  var getPdfVersion = (API.__private__.getPdfVersion = function() {\n    return pdfVersion;\n  });\n\n  API.__private__.setPdfVersion = function(value) {\n    pdfVersion = value;\n  };\n\n  // Size in pt of various paper formats\n  var pageFormats = {\n    a0: [2383.94, 3370.39],\n    a1: [1683.78, 2383.94],\n    a2: [1190.55, 1683.78],\n    a3: [841.89, 1190.55],\n    a4: [595.28, 841.89],\n    a5: [419.53, 595.28],\n    a6: [297.64, 419.53],\n    a7: [209.76, 297.64],\n    a8: [147.4, 209.76],\n    a9: [104.88, 147.4],\n    a10: [73.7, 104.88],\n    b0: [2834.65, 4008.19],\n    b1: [2004.09, 2834.65],\n    b2: [1417.32, 2004.09],\n    b3: [1000.63, 1417.32],\n    b4: [708.66, 1000.63],\n    b5: [498.9, 708.66],\n    b6: [354.33, 498.9],\n    b7: [249.45, 354.33],\n    b8: [175.75, 249.45],\n    b9: [124.72, 175.75],\n    b10: [87.87, 124.72],\n    c0: [2599.37, 3676.54],\n    c1: [1836.85, 2599.37],\n    c2: [1298.27, 1836.85],\n    c3: [918.43, 1298.27],\n    c4: [649.13, 918.43],\n    c5: [459.21, 649.13],\n    c6: [323.15, 459.21],\n    c7: [229.61, 323.15],\n    c8: [161.57, 229.61],\n    c9: [113.39, 161.57],\n    c10: [79.37, 113.39],\n    dl: [311.81, 623.62],\n    letter: [612, 792],\n    \"government-letter\": [576, 756],\n    legal: [612, 1008],\n    \"junior-legal\": [576, 360],\n    ledger: [1224, 792],\n    tabloid: [792, 1224],\n    \"credit-card\": [153, 243]\n  };\n\n  API.__private__.getPageFormats = function() {\n    return pageFormats;\n  };\n\n  var getPageFormat = (API.__private__.getPageFormat = function(value) {\n    return pageFormats[value];\n  });\n\n  format = format || \"a4\";\n\n  var ApiMode = {\n    COMPAT: \"compat\",\n    ADVANCED: \"advanced\"\n  };\n  var apiMode = ApiMode.COMPAT;\n\n  function advancedAPI() {\n    // prepend global change of basis matrix\n    // (Now, instead of converting every coordinate to the pdf coordinate system, we apply a matrix\n    // that does this job for us (however, texts, images and similar objects must be drawn bottom up))\n    this.saveGraphicsState();\n    out(\n      new Matrix(\n        scaleFactor,\n        0,\n        0,\n        -scaleFactor,\n        0,\n        getPageHeight() * scaleFactor\n      ).toString() + \" cm\"\n    );\n    this.setFontSize(this.getFontSize() / scaleFactor);\n\n    // The default in MrRio's implementation is \"S\" (stroke), whereas the default in the yWorks implementation\n    // was \"n\" (none). Although this has nothing to do with transforms, we should use the API switch here.\n    defaultPathOperation = \"n\";\n\n    apiMode = ApiMode.ADVANCED;\n  }\n\n  function compatAPI() {\n    this.restoreGraphicsState();\n    defaultPathOperation = \"S\";\n    apiMode = ApiMode.COMPAT;\n  }\n\n  /**\n   * @function combineFontStyleAndFontWeight\n   * @param {string} fontStyle Fontstyle or variant. Example: \"italic\".\n   * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\n   * @returns {string}\n   * @private\n   */\n  var combineFontStyleAndFontWeight = function(fontStyle, fontWeight) {\n    if (\n      (fontStyle == \"bold\" && fontWeight == \"normal\") ||\n      (fontStyle == \"bold\" && fontWeight == 400) ||\n      (fontStyle == \"normal\" && fontWeight == \"italic\") ||\n      (fontStyle == \"bold\" && fontWeight == \"italic\")\n    ) {\n      throw new Error(\"Invalid Combination of fontweight and fontstyle\");\n    }\n    if (fontWeight && fontStyle !== fontWeight) {\n      //if fontstyle is normal and fontweight is normal too no need to append the font-weight\n      fontStyle =\n        fontWeight == 400\n          ? fontStyle == \"italic\"\n            ? \"italic\"\n            : \"normal\"\n          : fontWeight == 700 && fontStyle !== \"italic\"\n          ? \"bold\"\n          : fontStyle + \"\" + fontWeight;\n    }\n    return fontStyle;\n  };\n\n  /**\n   * @callback ApiSwitchBody\n   * @param {jsPDF} pdf\n   */\n\n  /**\n   * For compatibility reasons jsPDF offers two API modes which differ in the way they convert between the the usual\n   * screen coordinates and the PDF coordinate system.\n   *   - \"compat\": Offers full compatibility across all plugins but does not allow arbitrary transforms\n   *   - \"advanced\": Allows arbitrary transforms and more advanced features like pattern fills. Some plugins might\n   *     not support this mode, though.\n   * Initial mode is \"compat\".\n   *\n   * You can either provide a callback to the body argument, which means that jsPDF will automatically switch back to\n   * the original API mode afterwards; or you can omit the callback and switch back manually using {@link compatAPI}.\n   *\n   * Note, that the calls to {@link saveGraphicsState} and {@link restoreGraphicsState} need to be balanced within the\n   * callback or between calls of this method and its counterpart {@link compatAPI}. Calls to {@link beginFormObject}\n   * or {@link beginTilingPattern} need to be closed by their counterparts before switching back to \"compat\" API mode.\n   *\n   * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\n   * The API mode will be switched back automatically afterwards.\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name advancedAPI\n   */\n  API.advancedAPI = function(body) {\n    var doSwitch = apiMode === ApiMode.COMPAT;\n\n    if (doSwitch) {\n      advancedAPI.call(this);\n    }\n\n    if (typeof body !== \"function\") {\n      return this;\n    }\n\n    body(this);\n\n    if (doSwitch) {\n      compatAPI.call(this);\n    }\n\n    return this;\n  };\n\n  /**\n   * Switches to \"compat\" API mode. See {@link advancedAPI} for more details.\n   *\n   * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\n   * The API mode will be switched back automatically afterwards.\n   * @return {jsPDF}\n   * @memberof jsPDF#\n   * @name compatApi\n   */\n  API.compatAPI = function(body) {\n    var doSwitch = apiMode === ApiMode.ADVANCED;\n\n    if (doSwitch) {\n      compatAPI.call(this);\n    }\n\n    if (typeof body !== \"function\") {\n      return this;\n    }\n\n    body(this);\n\n    if (doSwitch) {\n      advancedAPI.call(this);\n    }\n\n    return this;\n  };\n\n  /**\n   * @return {boolean} True iff the current API mode is \"advanced\". See {@link advancedAPI}.\n   * @memberof jsPDF#\n   * @name isAdvancedAPI\n   */\n  API.isAdvancedAPI = function() {\n    return apiMode === ApiMode.ADVANCED;\n  };\n\n  var advancedApiModeTrap = function(methodName) {\n    if (apiMode !== ApiMode.ADVANCED) {\n      throw new Error(\n        methodName +\n          \" is only available in 'advanced' API mode. \" +\n          \"You need to call advancedAPI() first.\"\n      );\n    }\n  };\n\n  var roundToPrecision = (API.roundToPrecision = API.__private__.roundToPrecision = function(\n    number,\n    parmPrecision\n  ) {\n    var tmpPrecision = precision || parmPrecision;\n    if (isNaN(number) || isNaN(tmpPrecision)) {\n      throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");\n    }\n    return number.toFixed(tmpPrecision).replace(/0+$/, \"\");\n  });\n\n  // high precision float\n  var hpf;\n  if (typeof floatPrecision === \"number\") {\n    hpf = API.hpf = API.__private__.hpf = function(number) {\n      if (isNaN(number)) {\n        throw new Error(\"Invalid argument passed to jsPDF.hpf\");\n      }\n      return roundToPrecision(number, floatPrecision);\n    };\n  } else if (floatPrecision === \"smart\") {\n    hpf = API.hpf = API.__private__.hpf = function(number) {\n      if (isNaN(number)) {\n        throw new Error(\"Invalid argument passed to jsPDF.hpf\");\n      }\n      if (number > -1 && number < 1) {\n        return roundToPrecision(number, 16);\n      } else {\n        return roundToPrecision(number, 5);\n      }\n    };\n  } else {\n    hpf = API.hpf = API.__private__.hpf = function(number) {\n      if (isNaN(number)) {\n        throw new Error(\"Invalid argument passed to jsPDF.hpf\");\n      }\n      return roundToPrecision(number, 16);\n    };\n  }\n  var f2 = (API.f2 = API.__private__.f2 = function(number) {\n    if (isNaN(number)) {\n      throw new Error(\"Invalid argument passed to jsPDF.f2\");\n    }\n    return roundToPrecision(number, 2);\n  });\n\n  var f3 = (API.__private__.f3 = function(number) {\n    if (isNaN(number)) {\n      throw new Error(\"Invalid argument passed to jsPDF.f3\");\n    }\n    return roundToPrecision(number, 3);\n  });\n\n  var scale = (API.scale = API.__private__.scale = function(number) {\n    if (isNaN(number)) {\n      throw new Error(\"Invalid argument passed to jsPDF.scale\");\n    }\n    if (apiMode === ApiMode.COMPAT) {\n      return number * scaleFactor;\n    } else if (apiMode === ApiMode.ADVANCED) {\n      return number;\n    }\n  });\n\n  var transformY = function(y) {\n    if (apiMode === ApiMode.COMPAT) {\n      return getPageHeight() - y;\n    } else if (apiMode === ApiMode.ADVANCED) {\n      return y;\n    }\n  };\n\n  var transformScaleY = function(y) {\n    return scale(transformY(y));\n  };\n\n  /**\n   * @name setPrecision\n   * @memberof jsPDF#\n   * @function\n   * @instance\n   * @param {string} precision\n   * @returns {jsPDF}\n   */\n  API.__private__.setPrecision = API.setPrecision = function(value) {\n    if (typeof parseInt(value, 10) === \"number\") {\n      precision = parseInt(value, 10);\n    }\n  };\n\n  var fileId = \"00000000000000000000000000000000\";\n\n  var getFileId = (API.__private__.getFileId = function() {\n    return fileId;\n  });\n\n  var setFileId = (API.__private__.setFileId = function(value) {\n    if (typeof value !== \"undefined\" && /^[a-fA-F0-9]{32}$/.test(value)) {\n      fileId = value.toUpperCase();\n    } else {\n      fileId = fileId\n        .split(\"\")\n        .map(function() {\n          return \"ABCDEF0123456789\".charAt(Math.floor(Math.random() * 16));\n        })\n        .join(\"\");\n    }\n\n    if (encryptionOptions !== null) {\n      encryption = new PDFSecurity(\n        encryptionOptions.userPermissions,\n        encryptionOptions.userPassword,\n        encryptionOptions.ownerPassword,\n        fileId\n      );\n    }\n    return fileId;\n  });\n\n  /**\n   * @name setFileId\n   * @memberof jsPDF#\n   * @function\n   * @instance\n   * @param {string} value GUID.\n   * @returns {jsPDF}\n   */\n  API.setFileId = function(value) {\n    setFileId(value);\n    return this;\n  };\n\n  /**\n   * @name getFileId\n   * @memberof jsPDF#\n   * @function\n   * @instance\n   *\n   * @returns {string} GUID.\n   */\n  API.getFileId = function() {\n    return getFileId();\n  };\n\n  var creationDate;\n\n  var convertDateToPDFDate = (API.__private__.convertDateToPDFDate = function(\n    parmDate\n  ) {\n    var result = \"\";\n    var tzoffset = parmDate.getTimezoneOffset(),\n      tzsign = tzoffset < 0 ? \"+\" : \"-\",\n      tzhour = Math.floor(Math.abs(tzoffset / 60)),\n      tzmin = Math.abs(tzoffset % 60),\n      timeZoneString = [tzsign, padd2(tzhour), \"'\", padd2(tzmin), \"'\"].join(\"\");\n\n    result = [\n      \"D:\",\n      parmDate.getFullYear(),\n      padd2(parmDate.getMonth() + 1),\n      padd2(parmDate.getDate()),\n      padd2(parmDate.getHours()),\n      padd2(parmDate.getMinutes()),\n      padd2(parmDate.getSeconds()),\n      timeZoneString\n    ].join(\"\");\n    return result;\n  });\n\n  var convertPDFDateToDate = (API.__private__.convertPDFDateToDate = function(\n    parmPDFDate\n  ) {\n    var year = parseInt(parmPDFDate.substr(2, 4), 10);\n    var month = parseInt(parmPDFDate.substr(6, 2), 10) - 1;\n    var date = parseInt(parmPDFDate.substr(8, 2), 10);\n    var hour = parseInt(parmPDFDate.substr(10, 2), 10);\n    var minutes = parseInt(parmPDFDate.substr(12, 2), 10);\n    var seconds = parseInt(parmPDFDate.substr(14, 2), 10);\n    // var timeZoneHour = parseInt(parmPDFDate.substr(16, 2), 10);\n    // var timeZoneMinutes = parseInt(parmPDFDate.substr(20, 2), 10);\n\n    var resultingDate = new Date(year, month, date, hour, minutes, seconds, 0);\n    return resultingDate;\n  });\n\n  var setCreationDate = (API.__private__.setCreationDate = function(date) {\n    var tmpCreationDateString;\n    var regexPDFCreationDate = /^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/;\n    if (typeof date === \"undefined\") {\n      date = new Date();\n    }\n\n    if (date instanceof Date) {\n      tmpCreationDateString = convertDateToPDFDate(date);\n    } else if (regexPDFCreationDate.test(date)) {\n      tmpCreationDateString = date;\n    } else {\n      throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\n    }\n    creationDate = tmpCreationDateString;\n    return creationDate;\n  });\n\n  var getCreationDate = (API.__private__.getCreationDate = function(type) {\n    var result = creationDate;\n    if (type === \"jsDate\") {\n      result = convertPDFDateToDate(creationDate);\n    }\n    return result;\n  });\n\n  /**\n   * @name setCreationDate\n   * @memberof jsPDF#\n   * @function\n   * @instance\n   * @param {Object} date\n   * @returns {jsPDF}\n   */\n  API.setCreationDate = function(date) {\n    setCreationDate(date);\n    return this;\n  };\n\n  /**\n   * @name getCreationDate\n   * @memberof jsPDF#\n   * @function\n   * @instance\n   * @param {Object} type\n   * @returns {Object}\n   */\n  API.getCreationDate = function(type) {\n    return getCreationDate(type);\n  };\n\n  var padd2 = (API.__private__.padd2 = function(number) {\n    return (\"0\" + parseInt(number)).slice(-2);\n  });\n\n  var padd2Hex = (API.__private__.padd2Hex = function(hexString) {\n    hexString = hexString.toString();\n    return (\"00\" + hexString).substr(hexString.length);\n  });\n\n  var objectNumber = 0; // 'n' Current object number\n  var offsets = []; // List of offsets. Activated and reset by buildDocument(). Pupulated by various calls buildDocument makes.\n  var content = [];\n  var contentLength = 0;\n  var additionalObjects = [];\n\n  var pages = [];\n  var currentPage;\n  var hasCustomDestination = false;\n  var outputDestination = content;\n\n  var resetDocument = function() {\n    //reset fields relevant for objectNumber generation and xref.\n    objectNumber = 0;\n    contentLength = 0;\n    content = [];\n    offsets = [];\n    additionalObjects = [];\n\n    rootDictionaryObjId = newObjectDeferred();\n    resourceDictionaryObjId = newObjectDeferred();\n  };\n\n  API.__private__.setCustomOutputDestination = function(destination) {\n    hasCustomDestination = true;\n    outputDestination = destination;\n  };\n  var setOutputDestination = function(destination) {\n    if (!hasCustomDestination) {\n      outputDestination = destination;\n    }\n  };\n\n  API.__private__.resetCustomOutputDestination = function() {\n    hasCustomDestination = false;\n    outputDestination = content;\n  };\n\n  var out = (API.__private__.out = function(string) {\n    string = string.toString();\n    contentLength += string.length + 1;\n    outputDestination.push(string);\n\n    return outputDestination;\n  });\n\n  var write = (API.__private__.write = function(value) {\n    return out(\n      arguments.length === 1\n        ? value.toString()\n        : Array.prototype.join.call(arguments, \" \")\n    );\n  });\n\n  var getArrayBuffer = (API.__private__.getArrayBuffer = function(data) {\n    var len = data.length,\n      ab = new ArrayBuffer(len),\n      u8 = new Uint8Array(ab);\n\n    while (len--) u8[len] = data.charCodeAt(len);\n    return ab;\n  });\n\n  var standardFonts = [\n    [\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"],\n    [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"],\n    [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"],\n    [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"],\n    [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"],\n    [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"],\n    [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"],\n    [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"],\n    [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"],\n    [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"],\n    [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"],\n    [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"],\n    [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null],\n    [\"Symbol\", \"symbol\", \"normal\", null]\n  ];\n\n  API.__private__.getStandardFonts = function() {\n    return standardFonts;\n  };\n\n  var activeFontSize = options.fontSize || 16;\n\n  /**\n   * Sets font size for upcoming text elements.\n   *\n   * @param {number} size Font size in points.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setFontSize\n   */\n  API.__private__.setFontSize = API.setFontSize = function(size) {\n    if (apiMode === ApiMode.ADVANCED) {\n      activeFontSize = size / scaleFactor;\n    } else {\n      activeFontSize = size;\n    }\n    return this;\n  };\n\n  /**\n   * Gets the fontsize for upcoming text elements.\n   *\n   * @function\n   * @instance\n   * @returns {number}\n   * @memberof jsPDF#\n   * @name getFontSize\n   */\n  var getFontSize = (API.__private__.getFontSize = API.getFontSize = function() {\n    if (apiMode === ApiMode.COMPAT) {\n      return activeFontSize;\n    } else {\n      return activeFontSize * scaleFactor;\n    }\n  });\n\n  var R2L = options.R2L || false;\n\n  /**\n   * Set value of R2L functionality.\n   *\n   * @param {boolean} value\n   * @function\n   * @instance\n   * @returns {jsPDF} jsPDF-instance\n   * @memberof jsPDF#\n   * @name setR2L\n   */\n  API.__private__.setR2L = API.setR2L = function(value) {\n    R2L = value;\n    return this;\n  };\n\n  /**\n   * Get value of R2L functionality.\n   *\n   * @function\n   * @instance\n   * @returns {boolean} jsPDF-instance\n   * @memberof jsPDF#\n   * @name getR2L\n   */\n  API.__private__.getR2L = API.getR2L = function() {\n    return R2L;\n  };\n\n  var zoomMode; // default: 1;\n\n  var setZoomMode = (API.__private__.setZoomMode = function(zoom) {\n    var validZoomModes = [\n      undefined,\n      null,\n      \"fullwidth\",\n      \"fullheight\",\n      \"fullpage\",\n      \"original\"\n    ];\n\n    if (/^\\d*\\.?\\d*%$/.test(zoom)) {\n      zoomMode = zoom;\n    } else if (!isNaN(zoom)) {\n      zoomMode = parseInt(zoom, 10);\n    } else if (validZoomModes.indexOf(zoom) !== -1) {\n      zoomMode = zoom;\n    } else {\n      throw new Error(\n        'zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' +\n          zoom +\n          '\" is not recognized.'\n      );\n    }\n  });\n\n  API.__private__.getZoomMode = function() {\n    return zoomMode;\n  };\n\n  var pageMode; // default: 'UseOutlines';\n  var setPageMode = (API.__private__.setPageMode = function(pmode) {\n    var validPageModes = [\n      undefined,\n      null,\n      \"UseNone\",\n      \"UseOutlines\",\n      \"UseThumbs\",\n      \"FullScreen\"\n    ];\n\n    if (validPageModes.indexOf(pmode) == -1) {\n      throw new Error(\n        'Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' +\n          pmode +\n          '\" is not recognized.'\n      );\n    }\n    pageMode = pmode;\n  });\n\n  API.__private__.getPageMode = function() {\n    return pageMode;\n  };\n\n  var layoutMode; // default: 'continuous';\n  var setLayoutMode = (API.__private__.setLayoutMode = function(layout) {\n    var validLayoutModes = [\n      undefined,\n      null,\n      \"continuous\",\n      \"single\",\n      \"twoleft\",\n      \"tworight\",\n      \"two\"\n    ];\n\n    if (validLayoutModes.indexOf(layout) == -1) {\n      throw new Error(\n        'Layout mode must be one of continuous, single, twoleft, tworight. \"' +\n          layout +\n          '\" is not recognized.'\n      );\n    }\n    layoutMode = layout;\n  });\n\n  API.__private__.getLayoutMode = function() {\n    return layoutMode;\n  };\n\n  /**\n   * Set the display mode options of the page like zoom and layout.\n   *\n   * @name setDisplayMode\n   * @memberof jsPDF#\n   * @function\n   * @instance\n   * @param {integer|String} zoom   You can pass an integer or percentage as\n   * a string. 2 will scale the document up 2x, '200%' will scale up by the\n   * same amount. You can also set it to 'fullwidth', 'fullheight',\n   * 'fullpage', or 'original'.\n   *\n   * Only certain PDF readers support this, such as Adobe Acrobat.\n   *\n   * @param {string} layout Layout mode can be: 'continuous' - this is the\n   * default continuous scroll. 'single' - the single page mode only shows one\n   * page at a time. 'twoleft' - two column left mode, first page starts on\n   * the left, and 'tworight' - pages are laid out in two columns, with the\n   * first page on the right. This would be used for books.\n   * @param {string} pmode 'UseOutlines' - it shows the\n   * outline of the document on the left. 'UseThumbs' - shows thumbnails along\n   * the left. 'FullScreen' - prompts the user to enter fullscreen mode.\n   *\n   * @returns {jsPDF}\n   */\n  API.__private__.setDisplayMode = API.setDisplayMode = function(\n    zoom,\n    layout,\n    pmode\n  ) {\n    setZoomMode(zoom);\n    setLayoutMode(layout);\n    setPageMode(pmode);\n    return this;\n  };\n\n  var documentProperties = {\n    title: \"\",\n    subject: \"\",\n    author: \"\",\n    keywords: \"\",\n    creator: \"\"\n  };\n\n  API.__private__.getDocumentProperty = function(key) {\n    if (Object.keys(documentProperties).indexOf(key) === -1) {\n      throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\n    }\n    return documentProperties[key];\n  };\n\n  API.__private__.getDocumentProperties = function() {\n    return documentProperties;\n  };\n\n  /**\n   * Adds a properties to the PDF document.\n   *\n   * @param {Object} A property_name-to-property_value object structure.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setDocumentProperties\n   */\n  API.__private__.setDocumentProperties = API.setProperties = API.setDocumentProperties = function(\n    properties\n  ) {\n    // copying only those properties we can render.\n    for (var property in documentProperties) {\n      if (documentProperties.hasOwnProperty(property) && properties[property]) {\n        documentProperties[property] = properties[property];\n      }\n    }\n    return this;\n  };\n\n  API.__private__.setDocumentProperty = function(key, value) {\n    if (Object.keys(documentProperties).indexOf(key) === -1) {\n      throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\n    }\n    return (documentProperties[key] = value);\n  };\n\n  var fonts = {}; // collection of font objects, where key is fontKey - a dynamically created label for a given font.\n  var fontmap = {}; // mapping structure fontName > fontStyle > font key - performance layer. See addFont()\n  var activeFontKey; // will be string representing the KEY of the font as combination of fontName + fontStyle\n  var fontStateStack = []; //\n  var patterns = {}; // collection of pattern objects\n  var patternMap = {}; // see fonts\n  var gStates = {}; // collection of graphic state objects\n  var gStatesMap = {}; // see fonts\n  var activeGState = null;\n  var scaleFactor; // Scale factor\n  var page = 0;\n  var pagesContext = [];\n  var events = new PubSub(API);\n  var hotfixes = options.hotfixes || [];\n\n  var renderTargets = {};\n  var renderTargetMap = {};\n  var renderTargetStack = [];\n  var pageX;\n  var pageY;\n  var pageMatrix; // only used for FormObjects\n\n  /**\n   * A matrix object for 2D homogenous transformations: <br>\n   * | a b 0 | <br>\n   * | c d 0 | <br>\n   * | e f 1 | <br>\n   * pdf multiplies matrices righthand: v' = v x m1 x m2 x ...\n   *\n   * @class\n   * @name Matrix\n   * @param {number} sx\n   * @param {number} shy\n   * @param {number} shx\n   * @param {number} sy\n   * @param {number} tx\n   * @param {number} ty\n   * @constructor\n   */\n  var Matrix = function(sx, shy, shx, sy, tx, ty) {\n    if (!(this instanceof Matrix)) {\n      return new Matrix(sx, shy, shx, sy, tx, ty);\n    }\n\n    if (isNaN(sx)) sx = 1;\n    if (isNaN(shy)) shy = 0;\n    if (isNaN(shx)) shx = 0;\n    if (isNaN(sy)) sy = 1;\n    if (isNaN(tx)) tx = 0;\n    if (isNaN(ty)) ty = 0;\n\n    this._matrix = [sx, shy, shx, sy, tx, ty];\n  };\n\n  /**\n   * @name sx\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"sx\", {\n    get: function() {\n      return this._matrix[0];\n    },\n    set: function(value) {\n      this._matrix[0] = value;\n    }\n  });\n\n  /**\n   * @name shy\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"shy\", {\n    get: function() {\n      return this._matrix[1];\n    },\n    set: function(value) {\n      this._matrix[1] = value;\n    }\n  });\n\n  /**\n   * @name shx\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"shx\", {\n    get: function() {\n      return this._matrix[2];\n    },\n    set: function(value) {\n      this._matrix[2] = value;\n    }\n  });\n\n  /**\n   * @name sy\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"sy\", {\n    get: function() {\n      return this._matrix[3];\n    },\n    set: function(value) {\n      this._matrix[3] = value;\n    }\n  });\n\n  /**\n   * @name tx\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"tx\", {\n    get: function() {\n      return this._matrix[4];\n    },\n    set: function(value) {\n      this._matrix[4] = value;\n    }\n  });\n\n  /**\n   * @name ty\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"ty\", {\n    get: function() {\n      return this._matrix[5];\n    },\n    set: function(value) {\n      this._matrix[5] = value;\n    }\n  });\n\n  Object.defineProperty(Matrix.prototype, \"a\", {\n    get: function() {\n      return this._matrix[0];\n    },\n    set: function(value) {\n      this._matrix[0] = value;\n    }\n  });\n\n  Object.defineProperty(Matrix.prototype, \"b\", {\n    get: function() {\n      return this._matrix[1];\n    },\n    set: function(value) {\n      this._matrix[1] = value;\n    }\n  });\n\n  Object.defineProperty(Matrix.prototype, \"c\", {\n    get: function() {\n      return this._matrix[2];\n    },\n    set: function(value) {\n      this._matrix[2] = value;\n    }\n  });\n\n  Object.defineProperty(Matrix.prototype, \"d\", {\n    get: function() {\n      return this._matrix[3];\n    },\n    set: function(value) {\n      this._matrix[3] = value;\n    }\n  });\n\n  Object.defineProperty(Matrix.prototype, \"e\", {\n    get: function() {\n      return this._matrix[4];\n    },\n    set: function(value) {\n      this._matrix[4] = value;\n    }\n  });\n\n  Object.defineProperty(Matrix.prototype, \"f\", {\n    get: function() {\n      return this._matrix[5];\n    },\n    set: function(value) {\n      this._matrix[5] = value;\n    }\n  });\n\n  /**\n   * @name rotation\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"rotation\", {\n    get: function() {\n      return Math.atan2(this.shx, this.sx);\n    }\n  });\n\n  /**\n   * @name scaleX\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"scaleX\", {\n    get: function() {\n      return this.decompose().scale.sx;\n    }\n  });\n\n  /**\n   * @name scaleY\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"scaleY\", {\n    get: function() {\n      return this.decompose().scale.sy;\n    }\n  });\n\n  /**\n   * @name isIdentity\n   * @memberof Matrix#\n   */\n  Object.defineProperty(Matrix.prototype, \"isIdentity\", {\n    get: function() {\n      if (this.sx !== 1) {\n        return false;\n      }\n      if (this.shy !== 0) {\n        return false;\n      }\n      if (this.shx !== 0) {\n        return false;\n      }\n      if (this.sy !== 1) {\n        return false;\n      }\n      if (this.tx !== 0) {\n        return false;\n      }\n      if (this.ty !== 0) {\n        return false;\n      }\n      return true;\n    }\n  });\n\n  /**\n   * Join the Matrix Values to a String\n   *\n   * @function join\n   * @param {string} separator Specifies a string to separate each pair of adjacent elements of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma (\",\"). If separator is an empty string, all elements are joined without any characters in between them.\n   * @returns {string} A string with all array elements joined.\n   * @memberof Matrix#\n   */\n  Matrix.prototype.join = function(separator) {\n    return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty]\n      .map(hpf)\n      .join(separator);\n  };\n\n  /**\n   * Multiply the matrix with given Matrix\n   *\n   * @function multiply\n   * @param matrix\n   * @returns {Matrix}\n   * @memberof Matrix#\n   */\n  Matrix.prototype.multiply = function(matrix) {\n    var sx = matrix.sx * this.sx + matrix.shy * this.shx;\n    var shy = matrix.sx * this.shy + matrix.shy * this.sy;\n    var shx = matrix.shx * this.sx + matrix.sy * this.shx;\n    var sy = matrix.shx * this.shy + matrix.sy * this.sy;\n    var tx = matrix.tx * this.sx + matrix.ty * this.shx + this.tx;\n    var ty = matrix.tx * this.shy + matrix.ty * this.sy + this.ty;\n\n    return new Matrix(sx, shy, shx, sy, tx, ty);\n  };\n\n  /**\n   * @function decompose\n   * @memberof Matrix#\n   */\n  Matrix.prototype.decompose = function() {\n    var a = this.sx;\n    var b = this.shy;\n    var c = this.shx;\n    var d = this.sy;\n    var e = this.tx;\n    var f = this.ty;\n\n    var scaleX = Math.sqrt(a * a + b * b);\n    a /= scaleX;\n    b /= scaleX;\n\n    var shear = a * c + b * d;\n    c -= a * shear;\n    d -= b * shear;\n\n    var scaleY = Math.sqrt(c * c + d * d);\n    c /= scaleY;\n    d /= scaleY;\n    shear /= scaleY;\n\n    if (a * d < b * c) {\n      a = -a;\n      b = -b;\n      shear = -shear;\n      scaleX = -scaleX;\n    }\n\n    return {\n      scale: new Matrix(scaleX, 0, 0, scaleY, 0, 0),\n      translate: new Matrix(1, 0, 0, 1, e, f),\n      rotate: new Matrix(a, b, -b, a, 0, 0),\n      skew: new Matrix(1, 0, shear, 1, 0, 0)\n    };\n  };\n\n  /**\n   * @function toString\n   * @memberof Matrix#\n   */\n  Matrix.prototype.toString = function(parmPrecision) {\n    return this.join(\" \");\n  };\n\n  /**\n   * @function inversed\n   * @memberof Matrix#\n   */\n  Matrix.prototype.inversed = function() {\n    var a = this.sx,\n      b = this.shy,\n      c = this.shx,\n      d = this.sy,\n      e = this.tx,\n      f = this.ty;\n\n    var quot = 1 / (a * d - b * c);\n\n    var aInv = d * quot;\n    var bInv = -b * quot;\n    var cInv = -c * quot;\n    var dInv = a * quot;\n    var eInv = -aInv * e - cInv * f;\n    var fInv = -bInv * e - dInv * f;\n\n    return new Matrix(aInv, bInv, cInv, dInv, eInv, fInv);\n  };\n\n  /**\n   * @function applyToPoint\n   * @memberof Matrix#\n   */\n  Matrix.prototype.applyToPoint = function(pt) {\n    var x = pt.x * this.sx + pt.y * this.shx + this.tx;\n    var y = pt.x * this.shy + pt.y * this.sy + this.ty;\n    return new Point(x, y);\n  };\n\n  /**\n   * @function applyToRectangle\n   * @memberof Matrix#\n   */\n  Matrix.prototype.applyToRectangle = function(rect) {\n    var pt1 = this.applyToPoint(rect);\n    var pt2 = this.applyToPoint(new Point(rect.x + rect.w, rect.y + rect.h));\n    return new Rectangle(pt1.x, pt1.y, pt2.x - pt1.x, pt2.y - pt1.y);\n  };\n\n  /**\n   * Clone the Matrix\n   *\n   * @function clone\n   * @memberof Matrix#\n   * @name clone\n   * @instance\n   */\n  Matrix.prototype.clone = function() {\n    var sx = this.sx;\n    var shy = this.shy;\n    var shx = this.shx;\n    var sy = this.sy;\n    var tx = this.tx;\n    var ty = this.ty;\n\n    return new Matrix(sx, shy, shx, sy, tx, ty);\n  };\n\n  API.Matrix = Matrix;\n\n  /**\n   * Multiplies two matrices. (see {@link Matrix})\n   * @param {Matrix} m1\n   * @param {Matrix} m2\n   * @memberof jsPDF#\n   * @name matrixMult\n   */\n  var matrixMult = (API.matrixMult = function(m1, m2) {\n    return m2.multiply(m1);\n  });\n\n  /**\n   * The identity matrix (equivalent to new Matrix(1, 0, 0, 1, 0, 0)).\n   * @type {Matrix}\n   * @memberof! jsPDF#\n   * @name identityMatrix\n   */\n  var identityMatrix = new Matrix(1, 0, 0, 1, 0, 0);\n  API.unitMatrix = API.identityMatrix = identityMatrix;\n\n  /**\n   * Adds a new pattern for later use.\n   * @param {String} key The key by it can be referenced later. The keys must be unique!\n   * @param {API.Pattern} pattern The pattern\n   */\n  var addPattern = function(key, pattern) {\n    // only add it if it is not already present (the keys provided by the user must be unique!)\n    if (patternMap[key]) return;\n\n    var prefix = pattern instanceof ShadingPattern ? \"Sh\" : \"P\";\n    var patternKey = prefix + (Object.keys(patterns).length + 1).toString(10);\n    pattern.id = patternKey;\n\n    patternMap[key] = patternKey;\n    patterns[patternKey] = pattern;\n\n    events.publish(\"addPattern\", pattern);\n  };\n\n  /**\n   * A pattern describing a shading pattern.\n   *\n   * Only available in \"advanced\" API mode.\n   *\n   * @param {String} type One of \"axial\" or \"radial\"\n   * @param {Array<Number>} coords Either [x1, y1, x2, y2] for \"axial\" type describing the two interpolation points\n   * or [x1, y1, r, x2, y2, r2] for \"radial\" describing inner and the outer circle.\n   * @param {Array<Object>} colors An array of objects with the fields \"offset\" and \"color\". \"offset\" describes\n   * the offset in parameter space [0, 1]. \"color\" is an array of length 3 describing RGB values in [0, 255].\n   * @param {GState=} gState An additional graphics state that gets applied to the pattern (optional).\n   * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\n   * and the use coordinate system (optional).\n   * @constructor\n   * @extends API.Pattern\n   */\n  API.ShadingPattern = ShadingPattern;\n\n  /**\n   * A PDF Tiling pattern.\n   *\n   * Only available in \"advanced\" API mode.\n   *\n   * @param {Array.<Number>} boundingBox The bounding box at which one pattern cell gets clipped.\n   * @param {Number} xStep Horizontal spacing between pattern cells.\n   * @param {Number} yStep Vertical spacing between pattern cells.\n   * @param {API.GState=} gState An additional graphics state that gets applied to the pattern (optional).\n   * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\n   * and the use coordinate system (optional).\n   * @constructor\n   * @extends API.Pattern\n   */\n  API.TilingPattern = TilingPattern;\n\n  /**\n   * Adds a new {@link API.ShadingPattern} for later use. Only available in \"advanced\" API mode.\n   * @param {String} key\n   * @param {Pattern} pattern\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name addPattern\n   */\n  API.addShadingPattern = function(key, pattern) {\n    advancedApiModeTrap(\"addShadingPattern()\");\n\n    addPattern(key, pattern);\n    return this;\n  };\n\n  /**\n   * Begins a new tiling pattern. All subsequent render calls are drawn to this pattern until {@link API.endTilingPattern}\n   * gets called. Only available in \"advanced\" API mode.\n   * @param {API.Pattern} pattern\n   * @memberof jsPDF#\n   * @name beginTilingPattern\n   */\n  API.beginTilingPattern = function(pattern) {\n    advancedApiModeTrap(\"beginTilingPattern()\");\n\n    beginNewRenderTarget(\n      pattern.boundingBox[0],\n      pattern.boundingBox[1],\n      pattern.boundingBox[2] - pattern.boundingBox[0],\n      pattern.boundingBox[3] - pattern.boundingBox[1],\n      pattern.matrix\n    );\n  };\n\n  /**\n   * Ends a tiling pattern and sets the render target to the one active before {@link API.beginTilingPattern} has been called.\n   *\n   * Only available in \"advanced\" API mode.\n   *\n   * @param {string} key A unique key that is used to reference this pattern at later use.\n   * @param {API.Pattern} pattern The pattern to end.\n   * @memberof jsPDF#\n   * @name endTilingPattern\n   */\n  API.endTilingPattern = function(key, pattern) {\n    advancedApiModeTrap(\"endTilingPattern()\");\n\n    // retrieve the stream\n    pattern.stream = pages[currentPage].join(\"\\n\");\n\n    addPattern(key, pattern);\n\n    events.publish(\"endTilingPattern\", pattern);\n\n    // restore state from stack\n    renderTargetStack.pop().restore();\n  };\n\n  var newObject = (API.__private__.newObject = function() {\n    var oid = newObjectDeferred();\n    newObjectDeferredBegin(oid, true);\n    return oid;\n  });\n\n  // Does not output the object.  The caller must call newObjectDeferredBegin(oid) before outputing any data\n  var newObjectDeferred = (API.__private__.newObjectDeferred = function() {\n    objectNumber++;\n    offsets[objectNumber] = function() {\n      return contentLength;\n    };\n    return objectNumber;\n  });\n\n  var newObjectDeferredBegin = function(oid, doOutput) {\n    doOutput = typeof doOutput === \"boolean\" ? doOutput : false;\n    offsets[oid] = contentLength;\n    if (doOutput) {\n      out(oid + \" 0 obj\");\n    }\n    return oid;\n  };\n  // Does not output the object until after the pages have been output.\n  // Returns an object containing the objectId and content.\n  // All pages have been added so the object ID can be estimated to start right after.\n  // This does not modify the current objectNumber;  It must be updated after the newObjects are output.\n  var newAdditionalObject = (API.__private__.newAdditionalObject = function() {\n    var objId = newObjectDeferred();\n    var obj = {\n      objId: objId,\n      content: \"\"\n    };\n    additionalObjects.push(obj);\n    return obj;\n  });\n\n  var rootDictionaryObjId = newObjectDeferred();\n  var resourceDictionaryObjId = newObjectDeferred();\n\n  /////////////////////\n  // Private functions\n  /////////////////////\n\n  var decodeColorString = (API.__private__.decodeColorString = function(color) {\n    var colorEncoded = color.split(\" \");\n    if (\n      colorEncoded.length === 2 &&\n      (colorEncoded[1] === \"g\" || colorEncoded[1] === \"G\")\n    ) {\n      // convert grayscale value to rgb so that it can be converted to hex for consistency\n      var floatVal = parseFloat(colorEncoded[0]);\n      colorEncoded = [floatVal, floatVal, floatVal, \"r\"];\n    } else if (\n      colorEncoded.length === 5 &&\n      (colorEncoded[4] === \"k\" || colorEncoded[4] === \"K\")\n    ) {\n      // convert CMYK values to rbg so that it can be converted to hex for consistency\n      var red = (1.0 - colorEncoded[0]) * (1.0 - colorEncoded[3]);\n      var green = (1.0 - colorEncoded[1]) * (1.0 - colorEncoded[3]);\n      var blue = (1.0 - colorEncoded[2]) * (1.0 - colorEncoded[3]);\n\n      colorEncoded = [red, green, blue, \"r\"];\n    }\n    var colorAsRGB = \"#\";\n    for (var i = 0; i < 3; i++) {\n      colorAsRGB += (\n        \"0\" + Math.floor(parseFloat(colorEncoded[i]) * 255).toString(16)\n      ).slice(-2);\n    }\n    return colorAsRGB;\n  });\n\n  var encodeColorString = (API.__private__.encodeColorString = function(\n    options\n  ) {\n    var color;\n\n    if (typeof options === \"string\") {\n      options = {\n        ch1: options\n      };\n    }\n    var ch1 = options.ch1;\n    var ch2 = options.ch2;\n    var ch3 = options.ch3;\n    var ch4 = options.ch4;\n    var letterArray =\n      options.pdfColorType === \"draw\" ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"];\n\n    if (typeof ch1 === \"string\" && ch1.charAt(0) !== \"#\") {\n      var rgbColor = new RGBColor(ch1);\n      if (rgbColor.ok) {\n        ch1 = rgbColor.toHex();\n      } else if (!/^\\d*\\.?\\d*$/.test(ch1)) {\n        throw new Error(\n          'Invalid color \"' + ch1 + '\" passed to jsPDF.encodeColorString.'\n        );\n      }\n    }\n    //convert short rgb to long form\n    if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{3}$/.test(ch1)) {\n      ch1 = \"#\" + ch1[1] + ch1[1] + ch1[2] + ch1[2] + ch1[3] + ch1[3];\n    }\n\n    if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(ch1)) {\n      var hex = parseInt(ch1.substr(1), 16);\n      ch1 = (hex >> 16) & 255;\n      ch2 = (hex >> 8) & 255;\n      ch3 = hex & 255;\n    }\n\n    if (\n      typeof ch2 === \"undefined\" ||\n      (typeof ch4 === \"undefined\" && ch1 === ch2 && ch2 === ch3)\n    ) {\n      // Gray color space.\n      if (typeof ch1 === \"string\") {\n        color = ch1 + \" \" + letterArray[0];\n      } else {\n        switch (options.precision) {\n          case 2:\n            color = f2(ch1 / 255) + \" \" + letterArray[0];\n            break;\n          case 3:\n          default:\n            color = f3(ch1 / 255) + \" \" + letterArray[0];\n        }\n      }\n    } else if (typeof ch4 === \"undefined\" || typeof ch4 === \"object\") {\n      // assume RGBA\n      if (ch4 && !isNaN(ch4.a)) {\n        //TODO Implement transparency.\n        //WORKAROUND use white for now, if transparent, otherwise handle as rgb\n        if (ch4.a === 0) {\n          color = [\"1.\", \"1.\", \"1.\", letterArray[1]].join(\" \");\n          return color;\n        }\n      }\n      // assume RGB\n      if (typeof ch1 === \"string\") {\n        color = [ch1, ch2, ch3, letterArray[1]].join(\" \");\n      } else {\n        switch (options.precision) {\n          case 2:\n            color = [\n              f2(ch1 / 255),\n              f2(ch2 / 255),\n              f2(ch3 / 255),\n              letterArray[1]\n            ].join(\" \");\n            break;\n          default:\n          case 3:\n            color = [\n              f3(ch1 / 255),\n              f3(ch2 / 255),\n              f3(ch3 / 255),\n              letterArray[1]\n            ].join(\" \");\n        }\n      }\n    } else {\n      // assume CMYK\n      if (typeof ch1 === \"string\") {\n        color = [ch1, ch2, ch3, ch4, letterArray[2]].join(\" \");\n      } else {\n        switch (options.precision) {\n          case 2:\n            color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), letterArray[2]].join(\n              \" \"\n            );\n            break;\n          case 3:\n          default:\n            color = [f3(ch1), f3(ch2), f3(ch3), f3(ch4), letterArray[2]].join(\n              \" \"\n            );\n        }\n      }\n    }\n    return color;\n  });\n\n  var getFilters = (API.__private__.getFilters = function() {\n    return filters;\n  });\n\n  var putStream = (API.__private__.putStream = function(options) {\n    options = options || {};\n    var data = options.data || \"\";\n    var filters = options.filters || getFilters();\n    var alreadyAppliedFilters = options.alreadyAppliedFilters || [];\n    var addLength1 = options.addLength1 || false;\n    var valueOfLength1 = data.length;\n    var objectId = options.objectId;\n    var encryptor = function(data) {\n      return data;\n    };\n    if (encryptionOptions !== null && typeof objectId == \"undefined\") {\n      throw new Error(\n        \"ObjectId must be passed to putStream for file encryption\"\n      );\n    }\n    if (encryptionOptions !== null) {\n      encryptor = encryption.encryptor(objectId, 0);\n    }\n\n    var processedData = {};\n    if (filters === true) {\n      filters = [\"FlateEncode\"];\n    }\n    var keyValues = options.additionalKeyValues || [];\n    if (typeof jsPDF.API.processDataByFilters !== \"undefined\") {\n      processedData = jsPDF.API.processDataByFilters(data, filters);\n    } else {\n      processedData = { data: data, reverseChain: [] };\n    }\n    var filterAsString =\n      processedData.reverseChain +\n      (Array.isArray(alreadyAppliedFilters)\n        ? alreadyAppliedFilters.join(\" \")\n        : alreadyAppliedFilters.toString());\n\n    if (processedData.data.length !== 0) {\n      keyValues.push({\n        key: \"Length\",\n        value: processedData.data.length\n      });\n      if (addLength1 === true) {\n        keyValues.push({\n          key: \"Length1\",\n          value: valueOfLength1\n        });\n      }\n    }\n\n    if (filterAsString.length != 0) {\n      if (filterAsString.split(\"/\").length - 1 === 1) {\n        keyValues.push({\n          key: \"Filter\",\n          value: filterAsString\n        });\n      } else {\n        keyValues.push({\n          key: \"Filter\",\n          value: \"[\" + filterAsString + \"]\"\n        });\n\n        for (var j = 0; j < keyValues.length; j += 1) {\n          if (keyValues[j].key === \"DecodeParms\") {\n            var decodeParmsArray = [];\n\n            for (\n              var i = 0;\n              i < processedData.reverseChain.split(\"/\").length - 1;\n              i += 1\n            ) {\n              decodeParmsArray.push(\"null\");\n            }\n\n            decodeParmsArray.push(keyValues[j].value);\n            keyValues[j].value = \"[\" + decodeParmsArray.join(\" \") + \"]\";\n          }\n        }\n      }\n    }\n\n    out(\"<<\");\n    for (var k = 0; k < keyValues.length; k++) {\n      out(\"/\" + keyValues[k].key + \" \" + keyValues[k].value);\n    }\n    out(\">>\");\n    if (processedData.data.length !== 0) {\n      out(\"stream\");\n      out(encryptor(processedData.data));\n      out(\"endstream\");\n    }\n  });\n\n  var putPage = (API.__private__.putPage = function(page) {\n    var pageNumber = page.number;\n    var data = page.data;\n    var pageObjectNumber = page.objId;\n    var pageContentsObjId = page.contentsObjId;\n\n    newObjectDeferredBegin(pageObjectNumber, true);\n    out(\"<</Type /Page\");\n    out(\"/Parent \" + page.rootDictionaryObjId + \" 0 R\");\n    out(\"/Resources \" + page.resourceDictionaryObjId + \" 0 R\");\n    out(\n      \"/MediaBox [\" +\n        parseFloat(hpf(page.mediaBox.bottomLeftX)) +\n        \" \" +\n        parseFloat(hpf(page.mediaBox.bottomLeftY)) +\n        \" \" +\n        hpf(page.mediaBox.topRightX) +\n        \" \" +\n        hpf(page.mediaBox.topRightY) +\n        \"]\"\n    );\n    if (page.cropBox !== null) {\n      out(\n        \"/CropBox [\" +\n          hpf(page.cropBox.bottomLeftX) +\n          \" \" +\n          hpf(page.cropBox.bottomLeftY) +\n          \" \" +\n          hpf(page.cropBox.topRightX) +\n          \" \" +\n          hpf(page.cropBox.topRightY) +\n          \"]\"\n      );\n    }\n\n    if (page.bleedBox !== null) {\n      out(\n        \"/BleedBox [\" +\n          hpf(page.bleedBox.bottomLeftX) +\n          \" \" +\n          hpf(page.bleedBox.bottomLeftY) +\n          \" \" +\n          hpf(page.bleedBox.topRightX) +\n          \" \" +\n          hpf(page.bleedBox.topRightY) +\n          \"]\"\n      );\n    }\n\n    if (page.trimBox !== null) {\n      out(\n        \"/TrimBox [\" +\n          hpf(page.trimBox.bottomLeftX) +\n          \" \" +\n          hpf(page.trimBox.bottomLeftY) +\n          \" \" +\n          hpf(page.trimBox.topRightX) +\n          \" \" +\n          hpf(page.trimBox.topRightY) +\n          \"]\"\n      );\n    }\n\n    if (page.artBox !== null) {\n      out(\n        \"/ArtBox [\" +\n          hpf(page.artBox.bottomLeftX) +\n          \" \" +\n          hpf(page.artBox.bottomLeftY) +\n          \" \" +\n          hpf(page.artBox.topRightX) +\n          \" \" +\n          hpf(page.artBox.topRightY) +\n          \"]\"\n      );\n    }\n\n    if (typeof page.userUnit === \"number\" && page.userUnit !== 1.0) {\n      out(\"/UserUnit \" + page.userUnit);\n    }\n\n    events.publish(\"putPage\", {\n      objId: pageObjectNumber,\n      pageContext: pagesContext[pageNumber],\n      pageNumber: pageNumber,\n      page: data\n    });\n    out(\"/Contents \" + pageContentsObjId + \" 0 R\");\n    out(\">>\");\n    out(\"endobj\");\n    // Page content\n    var pageContent = data.join(\"\\n\");\n\n    if (apiMode === ApiMode.ADVANCED) {\n      // if the user forgot to switch back to COMPAT mode, we must balance the graphics stack again\n      pageContent += \"\\nQ\";\n    }\n\n    newObjectDeferredBegin(pageContentsObjId, true);\n    putStream({\n      data: pageContent,\n      filters: getFilters(),\n      objectId: pageContentsObjId\n    });\n    out(\"endobj\");\n    return pageObjectNumber;\n  });\n\n  var putPages = (API.__private__.putPages = function() {\n    var n,\n      i,\n      pageObjectNumbers = [];\n\n    for (n = 1; n <= page; n++) {\n      pagesContext[n].objId = newObjectDeferred();\n      pagesContext[n].contentsObjId = newObjectDeferred();\n    }\n\n    for (n = 1; n <= page; n++) {\n      pageObjectNumbers.push(\n        putPage({\n          number: n,\n          data: pages[n],\n          objId: pagesContext[n].objId,\n          contentsObjId: pagesContext[n].contentsObjId,\n          mediaBox: pagesContext[n].mediaBox,\n          cropBox: pagesContext[n].cropBox,\n          bleedBox: pagesContext[n].bleedBox,\n          trimBox: pagesContext[n].trimBox,\n          artBox: pagesContext[n].artBox,\n          userUnit: pagesContext[n].userUnit,\n          rootDictionaryObjId: rootDictionaryObjId,\n          resourceDictionaryObjId: resourceDictionaryObjId\n        })\n      );\n    }\n    newObjectDeferredBegin(rootDictionaryObjId, true);\n    out(\"<</Type /Pages\");\n    var kids = \"/Kids [\";\n    for (i = 0; i < page; i++) {\n      kids += pageObjectNumbers[i] + \" 0 R \";\n    }\n    out(kids + \"]\");\n    out(\"/Count \" + page);\n    out(\">>\");\n    out(\"endobj\");\n    events.publish(\"postPutPages\");\n  });\n\n  var putFont = function(font) {\n    var pdfEscapeWithNeededParanthesis = function(text, flags) {\n      var addParanthesis = text.indexOf(\" \") !== -1; // no space in string\n      return addParanthesis\n        ? \"(\" + pdfEscape(text, flags) + \")\"\n        : pdfEscape(text, flags);\n    };\n\n    events.publish(\"putFont\", {\n      font: font,\n      out: out,\n      newObject: newObject,\n      putStream: putStream,\n      pdfEscapeWithNeededParanthesis: pdfEscapeWithNeededParanthesis\n    });\n\n    if (font.isAlreadyPutted !== true) {\n      font.objectNumber = newObject();\n      out(\"<<\");\n      out(\"/Type /Font\");\n      out(\"/BaseFont /\" + pdfEscapeWithNeededParanthesis(font.postScriptName));\n      out(\"/Subtype /Type1\");\n      if (typeof font.encoding === \"string\") {\n        out(\"/Encoding /\" + font.encoding);\n      }\n      out(\"/FirstChar 32\");\n      out(\"/LastChar 255\");\n      out(\">>\");\n      out(\"endobj\");\n    }\n  };\n\n  var putFonts = function() {\n    for (var fontKey in fonts) {\n      if (fonts.hasOwnProperty(fontKey)) {\n        if (\n          putOnlyUsedFonts === false ||\n          (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\n        ) {\n          putFont(fonts[fontKey]);\n        }\n      }\n    }\n  };\n\n  var putXObject = function(xObject) {\n    xObject.objectNumber = newObject();\n\n    var options = [];\n    options.push({ key: \"Type\", value: \"/XObject\" });\n    options.push({ key: \"Subtype\", value: \"/Form\" });\n    options.push({\n      key: \"BBox\",\n      value:\n        \"[\" +\n        [\n          hpf(xObject.x),\n          hpf(xObject.y),\n          hpf(xObject.x + xObject.width),\n          hpf(xObject.y + xObject.height)\n        ].join(\" \") +\n        \"]\"\n    });\n    options.push({\n      key: \"Matrix\",\n      value: \"[\" + xObject.matrix.toString() + \"]\"\n    });\n    // TODO: /Resources\n\n    var stream = xObject.pages[1].join(\"\\n\");\n    putStream({\n      data: stream,\n      additionalKeyValues: options,\n      objectId: xObject.objectNumber\n    });\n    out(\"endobj\");\n  };\n\n  var putXObjects = function() {\n    for (var xObjectKey in renderTargets) {\n      if (renderTargets.hasOwnProperty(xObjectKey)) {\n        putXObject(renderTargets[xObjectKey]);\n      }\n    }\n  };\n\n  var interpolateAndEncodeRGBStream = function(colors, numberSamples) {\n    var tValues = [];\n    var t;\n    var dT = 1.0 / (numberSamples - 1);\n    for (t = 0.0; t < 1.0; t += dT) {\n      tValues.push(t);\n    }\n    tValues.push(1.0);\n    // add first and last control point if not present\n    if (colors[0].offset != 0.0) {\n      var c0 = {\n        offset: 0.0,\n        color: colors[0].color\n      };\n      colors.unshift(c0);\n    }\n    if (colors[colors.length - 1].offset != 1.0) {\n      var c1 = {\n        offset: 1.0,\n        color: colors[colors.length - 1].color\n      };\n      colors.push(c1);\n    }\n    var out = \"\";\n    var index = 0;\n\n    for (var i = 0; i < tValues.length; i++) {\n      t = tValues[i];\n      while (t > colors[index + 1].offset) index++;\n      var a = colors[index].offset;\n      var b = colors[index + 1].offset;\n      var d = (t - a) / (b - a);\n\n      var aColor = colors[index].color;\n      var bColor = colors[index + 1].color;\n\n      out +=\n        padd2Hex(Math.round((1 - d) * aColor[0] + d * bColor[0]).toString(16)) +\n        padd2Hex(Math.round((1 - d) * aColor[1] + d * bColor[1]).toString(16)) +\n        padd2Hex(Math.round((1 - d) * aColor[2] + d * bColor[2]).toString(16));\n    }\n    return out.trim();\n  };\n\n  var putShadingPattern = function(pattern, numberSamples) {\n    /*\n       Axial patterns shade between the two points specified in coords, radial patterns between the inner\n       and outer circle.\n       The user can specify an array (colors) that maps t-Values in [0, 1] to RGB colors. These are now\n       interpolated to equidistant samples and written to pdf as a sample (type 0) function.\n       */\n    // The number of color samples that should be used to describe the shading.\n    // The higher, the more accurate the gradient will be.\n    numberSamples || (numberSamples = 21);\n    var funcObjectNumber = newObject();\n    var stream = interpolateAndEncodeRGBStream(pattern.colors, numberSamples);\n\n    var options = [];\n    options.push({ key: \"FunctionType\", value: \"0\" });\n    options.push({ key: \"Domain\", value: \"[0.0 1.0]\" });\n    options.push({ key: \"Size\", value: \"[\" + numberSamples + \"]\" });\n    options.push({ key: \"BitsPerSample\", value: \"8\" });\n    options.push({ key: \"Range\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\n    options.push({ key: \"Decode\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\n\n    putStream({\n      data: stream,\n      additionalKeyValues: options,\n      alreadyAppliedFilters: [\"/ASCIIHexDecode\"],\n      objectId: funcObjectNumber\n    });\n    out(\"endobj\");\n\n    pattern.objectNumber = newObject();\n    out(\"<< /ShadingType \" + pattern.type);\n    out(\"/ColorSpace /DeviceRGB\");\n    var coords =\n      \"/Coords [\" +\n      hpf(parseFloat(pattern.coords[0])) +\n      \" \" + // x1\n      hpf(parseFloat(pattern.coords[1])) +\n      \" \"; // y1\n    if (pattern.type === 2) {\n      // axial\n      coords +=\n        hpf(parseFloat(pattern.coords[2])) +\n        \" \" + // x2\n        hpf(parseFloat(pattern.coords[3])); // y2\n    } else {\n      // radial\n      coords +=\n        hpf(parseFloat(pattern.coords[2])) +\n        \" \" + // r1\n        hpf(parseFloat(pattern.coords[3])) +\n        \" \" + // x2\n        hpf(parseFloat(pattern.coords[4])) +\n        \" \" + // y2\n        hpf(parseFloat(pattern.coords[5])); // r2\n    }\n    coords += \"]\";\n    out(coords);\n\n    if (pattern.matrix) {\n      out(\"/Matrix [\" + pattern.matrix.toString() + \"]\");\n    }\n    out(\"/Function \" + funcObjectNumber + \" 0 R\");\n    out(\"/Extend [true true]\");\n    out(\">>\");\n    out(\"endobj\");\n  };\n\n  var putTilingPattern = function(pattern, deferredResourceDictionaryIds) {\n    var resourcesObjectId = newObjectDeferred();\n    var patternObjectId = newObject();\n\n    deferredResourceDictionaryIds.push({\n      resourcesOid: resourcesObjectId,\n      objectOid: patternObjectId\n    });\n\n    pattern.objectNumber = patternObjectId;\n    var options = [];\n    options.push({ key: \"Type\", value: \"/Pattern\" });\n    options.push({ key: \"PatternType\", value: \"1\" }); // tiling pattern\n    options.push({ key: \"PaintType\", value: \"1\" }); // colored tiling pattern\n    options.push({ key: \"TilingType\", value: \"1\" }); // constant spacing\n    options.push({\n      key: \"BBox\",\n      value: \"[\" + pattern.boundingBox.map(hpf).join(\" \") + \"]\"\n    });\n    options.push({ key: \"XStep\", value: hpf(pattern.xStep) });\n    options.push({ key: \"YStep\", value: hpf(pattern.yStep) });\n    options.push({ key: \"Resources\", value: resourcesObjectId + \" 0 R\" });\n    if (pattern.matrix) {\n      options.push({\n        key: \"Matrix\",\n        value: \"[\" + pattern.matrix.toString() + \"]\"\n      });\n    }\n\n    putStream({\n      data: pattern.stream,\n      additionalKeyValues: options,\n      objectId: pattern.objectNumber\n    });\n    out(\"endobj\");\n  };\n\n  var putPatterns = function(deferredResourceDictionaryIds) {\n    var patternKey;\n    for (patternKey in patterns) {\n      if (patterns.hasOwnProperty(patternKey)) {\n        if (patterns[patternKey] instanceof ShadingPattern) {\n          putShadingPattern(patterns[patternKey]);\n        } else if (patterns[patternKey] instanceof TilingPattern) {\n          putTilingPattern(patterns[patternKey], deferredResourceDictionaryIds);\n        }\n      }\n    }\n  };\n\n  var putGState = function(gState) {\n    gState.objectNumber = newObject();\n    out(\"<<\");\n    for (var p in gState) {\n      switch (p) {\n        case \"opacity\":\n          out(\"/ca \" + f2(gState[p]));\n          break;\n        case \"stroke-opacity\":\n          out(\"/CA \" + f2(gState[p]));\n          break;\n      }\n    }\n    out(\">>\");\n    out(\"endobj\");\n  };\n\n  var putGStates = function() {\n    var gStateKey;\n    for (gStateKey in gStates) {\n      if (gStates.hasOwnProperty(gStateKey)) {\n        putGState(gStates[gStateKey]);\n      }\n    }\n  };\n\n  var putXobjectDict = function() {\n    out(\"/XObject <<\");\n    for (var xObjectKey in renderTargets) {\n      if (\n        renderTargets.hasOwnProperty(xObjectKey) &&\n        renderTargets[xObjectKey].objectNumber >= 0\n      ) {\n        out(\n          \"/\" +\n            xObjectKey +\n            \" \" +\n            renderTargets[xObjectKey].objectNumber +\n            \" 0 R\"\n        );\n      }\n    }\n\n    // Loop through images, or other data objects\n    events.publish(\"putXobjectDict\");\n    out(\">>\");\n  };\n\n  var putEncryptionDict = function() {\n    encryption.oid = newObject();\n    out(\"<<\");\n    out(\"/Filter /Standard\");\n    out(\"/V \" + encryption.v);\n    out(\"/R \" + encryption.r);\n    out(\"/U <\" + encryption.toHexString(encryption.U) + \">\");\n    out(\"/O <\" + encryption.toHexString(encryption.O) + \">\");\n    out(\"/P \" + encryption.P);\n    out(\">>\");\n    out(\"endobj\");\n  };\n\n  var putFontDict = function() {\n    out(\"/Font <<\");\n\n    for (var fontKey in fonts) {\n      if (fonts.hasOwnProperty(fontKey)) {\n        if (\n          putOnlyUsedFonts === false ||\n          (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\n        ) {\n          out(\"/\" + fontKey + \" \" + fonts[fontKey].objectNumber + \" 0 R\");\n        }\n      }\n    }\n    out(\">>\");\n  };\n\n  var putShadingPatternDict = function() {\n    if (Object.keys(patterns).length > 0) {\n      out(\"/Shading <<\");\n      for (var patternKey in patterns) {\n        if (\n          patterns.hasOwnProperty(patternKey) &&\n          patterns[patternKey] instanceof ShadingPattern &&\n          patterns[patternKey].objectNumber >= 0\n        ) {\n          out(\n            \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\n          );\n        }\n      }\n\n      events.publish(\"putShadingPatternDict\");\n      out(\">>\");\n    }\n  };\n\n  var putTilingPatternDict = function(objectOid) {\n    if (Object.keys(patterns).length > 0) {\n      out(\"/Pattern <<\");\n      for (var patternKey in patterns) {\n        if (\n          patterns.hasOwnProperty(patternKey) &&\n          patterns[patternKey] instanceof API.TilingPattern &&\n          patterns[patternKey].objectNumber >= 0 &&\n          patterns[patternKey].objectNumber < objectOid // prevent cyclic dependencies\n        ) {\n          out(\n            \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\n          );\n        }\n      }\n      events.publish(\"putTilingPatternDict\");\n      out(\">>\");\n    }\n  };\n\n  var putGStatesDict = function() {\n    if (Object.keys(gStates).length > 0) {\n      var gStateKey;\n      out(\"/ExtGState <<\");\n      for (gStateKey in gStates) {\n        if (\n          gStates.hasOwnProperty(gStateKey) &&\n          gStates[gStateKey].objectNumber >= 0\n        ) {\n          out(\"/\" + gStateKey + \" \" + gStates[gStateKey].objectNumber + \" 0 R\");\n        }\n      }\n\n      events.publish(\"putGStateDict\");\n      out(\">>\");\n    }\n  };\n\n  var putResourceDictionary = function(objectIds) {\n    newObjectDeferredBegin(objectIds.resourcesOid, true);\n    out(\"<<\");\n    out(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\");\n    putFontDict();\n    putShadingPatternDict();\n    putTilingPatternDict(objectIds.objectOid);\n    putGStatesDict();\n    putXobjectDict();\n    out(\">>\");\n    out(\"endobj\");\n  };\n\n  var putResources = function() {\n    // FormObjects, Patterns etc. might use other FormObjects/Patterns/Images\n    // which means their resource dictionaries must contain the already resolved\n    // object ids. For this reason we defer the serialization of the resource\n    // dicts until all objects have been serialized and have object ids.\n    //\n    // In order to prevent cyclic dependencies (which Adobe Reader doesn't like),\n    // we only put all oids that are smaller than the oid of the object the\n    // resource dict belongs to. This is correct behavior, since the streams\n    // may only use other objects that have already been defined and thus appear\n    // earlier in their respective collection.\n    // Currently, this only affects tiling patterns, but a (more) correct\n    // implementation of FormObjects would also define their own resource dicts.\n    var deferredResourceDictionaryIds = [];\n\n    putFonts();\n    putGStates();\n    putXObjects();\n    putPatterns(deferredResourceDictionaryIds);\n\n    events.publish(\"putResources\");\n    deferredResourceDictionaryIds.forEach(putResourceDictionary);\n    putResourceDictionary({\n      resourcesOid: resourceDictionaryObjId,\n      objectOid: Number.MAX_SAFE_INTEGER // output all objects\n    });\n    events.publish(\"postPutResources\");\n  };\n\n  var putAdditionalObjects = function() {\n    events.publish(\"putAdditionalObjects\");\n    for (var i = 0; i < additionalObjects.length; i++) {\n      var obj = additionalObjects[i];\n      newObjectDeferredBegin(obj.objId, true);\n      out(obj.content);\n      out(\"endobj\");\n    }\n    events.publish(\"postPutAdditionalObjects\");\n  };\n\n  var addFontToFontDictionary = function(font) {\n    fontmap[font.fontName] = fontmap[font.fontName] || {};\n    fontmap[font.fontName][font.fontStyle] = font.id;\n  };\n\n  var addFont = function(\n    postScriptName,\n    fontName,\n    fontStyle,\n    encoding,\n    isStandardFont\n  ) {\n    var font = {\n      id: \"F\" + (Object.keys(fonts).length + 1).toString(10),\n      postScriptName: postScriptName,\n      fontName: fontName,\n      fontStyle: fontStyle,\n      encoding: encoding,\n      isStandardFont: isStandardFont || false,\n      metadata: {}\n    };\n\n    events.publish(\"addFont\", {\n      font: font,\n      instance: this\n    });\n\n    fonts[font.id] = font;\n    addFontToFontDictionary(font);\n    return font.id;\n  };\n\n  var addFonts = function(arrayOfFonts) {\n    for (var i = 0, l = standardFonts.length; i < l; i++) {\n      var fontKey = addFont.call(\n        this,\n        arrayOfFonts[i][0],\n        arrayOfFonts[i][1],\n        arrayOfFonts[i][2],\n        standardFonts[i][3],\n        true\n      );\n\n      if (putOnlyUsedFonts === false) {\n        usedFonts[fontKey] = true;\n      }\n      // adding aliases for standard fonts, this time matching the capitalization\n      var parts = arrayOfFonts[i][0].split(\"-\");\n      addFontToFontDictionary({\n        id: fontKey,\n        fontName: parts[0],\n        fontStyle: parts[1] || \"\"\n      });\n    }\n    events.publish(\"addFonts\", {\n      fonts: fonts,\n      dictionary: fontmap\n    });\n  };\n\n  var SAFE = function __safeCall(fn) {\n    fn.foo = function __safeCallWrapper() {\n      try {\n        return fn.apply(this, arguments);\n      } catch (e) {\n        var stack = e.stack || \"\";\n        if (~stack.indexOf(\" at \")) stack = stack.split(\" at \")[1];\n        var m =\n          \"Error in function \" +\n          stack.split(\"\\n\")[0].split(\"<\")[0] +\n          \": \" +\n          e.message;\n        if (globalObject.console) {\n          globalObject.console.error(m, e);\n          if (globalObject.alert) alert(m);\n        } else {\n          throw new Error(m);\n        }\n      }\n    };\n    fn.foo.bar = fn;\n    return fn.foo;\n  };\n\n  var to8bitStream = function(text, flags) {\n    /**\n     * PDF 1.3 spec:\n     * \"For text strings encoded in Unicode, the first two bytes must be 254 followed by\n     * 255, representing the Unicode byte order marker, U+FEFF. (This sequence conflicts\n     * with the PDFDocEncoding character sequence thorn ydieresis, which is unlikely\n     * to be a meaningful beginning of a word or phrase.) The remainder of the\n     * string consists of Unicode character codes, according to the UTF-16 encoding\n     * specified in the Unicode standard, version 2.0. Commonly used Unicode values\n     * are represented as 2 bytes per character, with the high-order byte appearing first\n     * in the string.\"\n     *\n     * In other words, if there are chars in a string with char code above 255, we\n     * recode the string to UCS2 BE - string doubles in length and BOM is prepended.\n     *\n     * HOWEVER!\n     * Actual *content* (body) text (as opposed to strings used in document properties etc)\n     * does NOT expect BOM. There, it is treated as a literal GID (Glyph ID)\n     *\n     * Because of Adobe's focus on \"you subset your fonts!\" you are not supposed to have\n     * a font that maps directly Unicode (UCS2 / UTF16BE) code to font GID, but you could\n     * fudge it with \"Identity-H\" encoding and custom CIDtoGID map that mimics Unicode\n     * code page. There, however, all characters in the stream are treated as GIDs,\n     * including BOM, which is the reason we need to skip BOM in content text (i.e. that\n     * that is tied to a font).\n     *\n     * To signal this \"special\" PDFEscape / to8bitStream handling mode,\n     * API.text() function sets (unless you overwrite it with manual values\n     * given to API.text(.., flags) )\n     * flags.autoencode = true\n     * flags.noBOM = true\n     *\n     * ===================================================================================\n     * `flags` properties relied upon:\n     *   .sourceEncoding = string with encoding label.\n     *                     \"Unicode\" by default. = encoding of the incoming text.\n     *                     pass some non-existing encoding name\n     *                     (ex: 'Do not touch my strings! I know what I am doing.')\n     *                     to make encoding code skip the encoding step.\n     *   .outputEncoding = Either valid PDF encoding name\n     *                     (must be supported by jsPDF font metrics, otherwise no encoding)\n     *                     or a JS object, where key = sourceCharCode, value = outputCharCode\n     *                     missing keys will be treated as: sourceCharCode === outputCharCode\n     *   .noBOM\n     *       See comment higher above for explanation for why this is important\n     *   .autoencode\n     *       See comment higher above for explanation for why this is important\n     */\n\n    var i,\n      l,\n      sourceEncoding,\n      encodingBlock,\n      outputEncoding,\n      newtext,\n      isUnicode,\n      ch,\n      bch;\n\n    flags = flags || {};\n    sourceEncoding = flags.sourceEncoding || \"Unicode\";\n    outputEncoding = flags.outputEncoding;\n\n    // This 'encoding' section relies on font metrics format\n    // attached to font objects by, among others,\n    // \"Willow Systems' standard_font_metrics plugin\"\n    // see jspdf.plugin.standard_font_metrics.js for format\n    // of the font.metadata.encoding Object.\n    // It should be something like\n    //   .encoding = {'codePages':['WinANSI....'], 'WinANSI...':{code:code, ...}}\n    //   .widths = {0:width, code:width, ..., 'fof':divisor}\n    //   .kerning = {code:{previous_char_code:shift, ..., 'fof':-divisor},...}\n    if (\n      (flags.autoencode || outputEncoding) &&\n      fonts[activeFontKey].metadata &&\n      fonts[activeFontKey].metadata[sourceEncoding] &&\n      fonts[activeFontKey].metadata[sourceEncoding].encoding\n    ) {\n      encodingBlock = fonts[activeFontKey].metadata[sourceEncoding].encoding;\n\n      // each font has default encoding. Some have it clearly defined.\n      if (!outputEncoding && fonts[activeFontKey].encoding) {\n        outputEncoding = fonts[activeFontKey].encoding;\n      }\n\n      // Hmmm, the above did not work? Let's try again, in different place.\n      if (!outputEncoding && encodingBlock.codePages) {\n        outputEncoding = encodingBlock.codePages[0]; // let's say, first one is the default\n      }\n\n      if (typeof outputEncoding === \"string\") {\n        outputEncoding = encodingBlock[outputEncoding];\n      }\n      // we want output encoding to be a JS Object, where\n      // key = sourceEncoding's character code and\n      // value = outputEncoding's character code.\n      if (outputEncoding) {\n        isUnicode = false;\n        newtext = [];\n        for (i = 0, l = text.length; i < l; i++) {\n          ch = outputEncoding[text.charCodeAt(i)];\n          if (ch) {\n            newtext.push(String.fromCharCode(ch));\n          } else {\n            newtext.push(text[i]);\n          }\n\n          // since we are looping over chars anyway, might as well\n          // check for residual unicodeness\n          if (newtext[i].charCodeAt(0) >> 8) {\n            /* more than 255 */\n            isUnicode = true;\n          }\n        }\n        text = newtext.join(\"\");\n      }\n    }\n\n    i = text.length;\n    // isUnicode may be set to false above. Hence the triple-equal to undefined\n    while (isUnicode === undefined && i !== 0) {\n      if (text.charCodeAt(i - 1) >> 8) {\n        /* more than 255 */\n        isUnicode = true;\n      }\n      i--;\n    }\n    if (!isUnicode) {\n      return text;\n    }\n\n    newtext = flags.noBOM ? [] : [254, 255];\n    for (i = 0, l = text.length; i < l; i++) {\n      ch = text.charCodeAt(i);\n      bch = ch >> 8; // divide by 256\n      if (bch >> 8) {\n        /* something left after dividing by 256 second time */\n        throw new Error(\n          \"Character at position \" +\n            i +\n            \" of string '\" +\n            text +\n            \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\"\n        );\n      }\n      newtext.push(bch);\n      newtext.push(ch - (bch << 8));\n    }\n    return String.fromCharCode.apply(undefined, newtext);\n  };\n\n  var pdfEscape = (API.__private__.pdfEscape = API.pdfEscape = function(\n    text,\n    flags\n  ) {\n    /**\n     * Replace '/', '(', and ')' with pdf-safe versions\n     *\n     * Doing to8bitStream does NOT make this PDF display unicode text. For that\n     * we also need to reference a unicode font and embed it - royal pain in the rear.\n     *\n     * There is still a benefit to to8bitStream - PDF simply cannot handle 16bit chars,\n     * which JavaScript Strings are happy to provide. So, while we still cannot display\n     * 2-byte characters property, at least CONDITIONALLY converting (entire string containing)\n     * 16bit chars to (USC-2-BE) 2-bytes per char + BOM streams we ensure that entire PDF\n     * is still parseable.\n     * This will allow immediate support for unicode in document properties strings.\n     */\n    return to8bitStream(text, flags)\n      .replace(/\\\\/g, \"\\\\\\\\\")\n      .replace(/\\(/g, \"\\\\(\")\n      .replace(/\\)/g, \"\\\\)\");\n  });\n\n  var beginPage = (API.__private__.beginPage = function(format) {\n    pages[++page] = [];\n    pagesContext[page] = {\n      objId: 0,\n      contentsObjId: 0,\n      userUnit: Number(userUnit),\n      artBox: null,\n      bleedBox: null,\n      cropBox: null,\n      trimBox: null,\n      mediaBox: {\n        bottomLeftX: 0,\n        bottomLeftY: 0,\n        topRightX: Number(format[0]),\n        topRightY: Number(format[1])\n      }\n    };\n    _setPage(page);\n    setOutputDestination(pages[currentPage]);\n  });\n\n  var _addPage = function(parmFormat, parmOrientation) {\n    var dimensions, width, height;\n\n    orientation = parmOrientation || orientation;\n\n    if (typeof parmFormat === \"string\") {\n      dimensions = getPageFormat(parmFormat.toLowerCase());\n      if (Array.isArray(dimensions)) {\n        width = dimensions[0];\n        height = dimensions[1];\n      }\n    }\n\n    if (Array.isArray(parmFormat)) {\n      width = parmFormat[0] * scaleFactor;\n      height = parmFormat[1] * scaleFactor;\n    }\n\n    if (isNaN(width)) {\n      width = format[0];\n      height = format[1];\n    }\n\n    if (width > 14400 || height > 14400) {\n      console.warn(\n        \"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"\n      );\n      width = Math.min(14400, width);\n      height = Math.min(14400, height);\n    }\n\n    format = [width, height];\n\n    switch (orientation.substr(0, 1)) {\n      case \"l\":\n        if (height > width) {\n          format = [height, width];\n        }\n        break;\n      case \"p\":\n        if (width > height) {\n          format = [height, width];\n        }\n        break;\n    }\n\n    beginPage(format);\n\n    // Set line width\n    setLineWidth(lineWidth);\n    // Set draw color\n    out(strokeColor);\n    // resurrecting non-default line caps, joins\n    if (lineCapID !== 0) {\n      out(lineCapID + \" J\");\n    }\n    if (lineJoinID !== 0) {\n      out(lineJoinID + \" j\");\n    }\n    events.publish(\"addPage\", {\n      pageNumber: page\n    });\n  };\n\n  var _deletePage = function(n) {\n    if (n > 0 && n <= page) {\n      pages.splice(n, 1);\n      pagesContext.splice(n, 1);\n      page--;\n      if (currentPage > page) {\n        currentPage = page;\n      }\n      this.setPage(currentPage);\n    }\n  };\n\n  var _setPage = function(n) {\n    if (n > 0 && n <= page) {\n      currentPage = n;\n    }\n  };\n\n  var getNumberOfPages = (API.__private__.getNumberOfPages = API.getNumberOfPages = function() {\n    return pages.length - 1;\n  });\n\n  /**\n   * Returns a document-specific font key - a label assigned to a\n   * font name + font type combination at the time the font was added\n   * to the font inventory.\n   *\n   * Font key is used as label for the desired font for a block of text\n   * to be added to the PDF document stream.\n   * @private\n   * @function\n   * @param fontName {string} can be undefined on \"falthy\" to indicate \"use current\"\n   * @param fontStyle {string} can be undefined on \"falthy\" to indicate \"use current\"\n   * @returns {string} Font key.\n   * @ignore\n   */\n  var getFont = function(fontName, fontStyle, options) {\n    var key = undefined,\n      fontNameLowerCase;\n    options = options || {};\n\n    fontName =\n      fontName !== undefined ? fontName : fonts[activeFontKey].fontName;\n    fontStyle =\n      fontStyle !== undefined ? fontStyle : fonts[activeFontKey].fontStyle;\n    fontNameLowerCase = fontName.toLowerCase();\n\n    if (\n      fontmap[fontNameLowerCase] !== undefined &&\n      fontmap[fontNameLowerCase][fontStyle] !== undefined\n    ) {\n      key = fontmap[fontNameLowerCase][fontStyle];\n    } else if (\n      fontmap[fontName] !== undefined &&\n      fontmap[fontName][fontStyle] !== undefined\n    ) {\n      key = fontmap[fontName][fontStyle];\n    } else {\n      if (options.disableWarning === false) {\n        console.warn(\n          \"Unable to look up font label for font '\" +\n            fontName +\n            \"', '\" +\n            fontStyle +\n            \"'. Refer to getFontList() for available fonts.\"\n        );\n      }\n    }\n\n    if (!key && !options.noFallback) {\n      key = fontmap[\"times\"][fontStyle];\n      if (key == null) {\n        key = fontmap[\"times\"][\"normal\"];\n      }\n    }\n    return key;\n  };\n\n  var putInfo = (API.__private__.putInfo = function() {\n    var objectId = newObject();\n    var encryptor = function(data) {\n      return data;\n    };\n    if (encryptionOptions !== null) {\n      encryptor = encryption.encryptor(objectId, 0);\n    }\n    out(\"<<\");\n    out(\"/Producer (\" + pdfEscape(encryptor(\"jsPDF \" + jsPDF.version)) + \")\");\n    for (var key in documentProperties) {\n      if (documentProperties.hasOwnProperty(key) && documentProperties[key]) {\n        out(\n          \"/\" +\n            key.substr(0, 1).toUpperCase() +\n            key.substr(1) +\n            \" (\" +\n            pdfEscape(encryptor(documentProperties[key])) +\n            \")\"\n        );\n      }\n    }\n    out(\"/CreationDate (\" + pdfEscape(encryptor(creationDate)) + \")\");\n    out(\">>\");\n    out(\"endobj\");\n  });\n\n  var putCatalog = (API.__private__.putCatalog = function(options) {\n    options = options || {};\n    var tmpRootDictionaryObjId =\n      options.rootDictionaryObjId || rootDictionaryObjId;\n    newObject();\n    out(\"<<\");\n    out(\"/Type /Catalog\");\n    out(\"/Pages \" + tmpRootDictionaryObjId + \" 0 R\");\n    // PDF13ref Section 7.2.1\n    if (!zoomMode) zoomMode = \"fullwidth\";\n    switch (zoomMode) {\n      case \"fullwidth\":\n        out(\"/OpenAction [3 0 R /FitH null]\");\n        break;\n      case \"fullheight\":\n        out(\"/OpenAction [3 0 R /FitV null]\");\n        break;\n      case \"fullpage\":\n        out(\"/OpenAction [3 0 R /Fit]\");\n        break;\n      case \"original\":\n        out(\"/OpenAction [3 0 R /XYZ null null 1]\");\n        break;\n      default:\n        var pcn = \"\" + zoomMode;\n        if (pcn.substr(pcn.length - 1) === \"%\")\n          zoomMode = parseInt(zoomMode) / 100;\n        if (typeof zoomMode === \"number\") {\n          out(\"/OpenAction [3 0 R /XYZ null null \" + f2(zoomMode) + \"]\");\n        }\n    }\n    if (!layoutMode) layoutMode = \"continuous\";\n    switch (layoutMode) {\n      case \"continuous\":\n        out(\"/PageLayout /OneColumn\");\n        break;\n      case \"single\":\n        out(\"/PageLayout /SinglePage\");\n        break;\n      case \"two\":\n      case \"twoleft\":\n        out(\"/PageLayout /TwoColumnLeft\");\n        break;\n      case \"tworight\":\n        out(\"/PageLayout /TwoColumnRight\");\n        break;\n    }\n    if (pageMode) {\n      /**\n       * A name object specifying how the document should be displayed when opened:\n       * UseNone      : Neither document outline nor thumbnail images visible -- DEFAULT\n       * UseOutlines  : Document outline visible\n       * UseThumbs    : Thumbnail images visible\n       * FullScreen   : Full-screen mode, with no menu bar, window controls, or any other window visible\n       */\n      out(\"/PageMode /\" + pageMode);\n    }\n    events.publish(\"putCatalog\");\n    out(\">>\");\n    out(\"endobj\");\n  });\n\n  var putTrailer = (API.__private__.putTrailer = function() {\n    out(\"trailer\");\n    out(\"<<\");\n    out(\"/Size \" + (objectNumber + 1));\n    // Root and Info must be the last and second last objects written respectively\n    out(\"/Root \" + objectNumber + \" 0 R\");\n    out(\"/Info \" + (objectNumber - 1) + \" 0 R\");\n    if (encryptionOptions !== null) {\n      out(\"/Encrypt \" + encryption.oid + \" 0 R\");\n    }\n    out(\"/ID [ <\" + fileId + \"> <\" + fileId + \"> ]\");\n    out(\">>\");\n  });\n\n  var putHeader = (API.__private__.putHeader = function() {\n    out(\"%PDF-\" + pdfVersion);\n    out(\"%\\xBA\\xDF\\xAC\\xE0\");\n  });\n\n  var putXRef = (API.__private__.putXRef = function() {\n    var p = \"0000000000\";\n\n    out(\"xref\");\n    out(\"0 \" + (objectNumber + 1));\n    out(\"0000000000 65535 f \");\n    for (var i = 1; i <= objectNumber; i++) {\n      var offset = offsets[i];\n      if (typeof offset === \"function\") {\n        out((p + offsets[i]()).slice(-10) + \" 00000 n \");\n      } else {\n        if (typeof offsets[i] !== \"undefined\") {\n          out((p + offsets[i]).slice(-10) + \" 00000 n \");\n        } else {\n          out(\"0000000000 00000 n \");\n        }\n      }\n    }\n  });\n\n  var buildDocument = (API.__private__.buildDocument = function() {\n    resetDocument();\n    setOutputDestination(content);\n\n    events.publish(\"buildDocument\");\n\n    putHeader();\n    putPages();\n    putAdditionalObjects();\n    putResources();\n    if (encryptionOptions !== null) putEncryptionDict();\n    putInfo();\n    putCatalog();\n\n    var offsetOfXRef = contentLength;\n    putXRef();\n    putTrailer();\n    out(\"startxref\");\n    out(\"\" + offsetOfXRef);\n    out(\"%%EOF\");\n\n    setOutputDestination(pages[currentPage]);\n\n    return content.join(\"\\n\");\n  });\n\n  var getBlob = (API.__private__.getBlob = function(data) {\n    return new Blob([getArrayBuffer(data)], {\n      type: \"application/pdf\"\n    });\n  });\n\n  /**\n   * Generates the PDF document.\n   *\n   * If `type` argument is undefined, output is raw body of resulting PDF returned as a string.\n   *\n   * @param {string} type A string identifying one of the possible output types. Possible values are 'arraybuffer', 'blob', 'bloburi'/'bloburl', 'datauristring'/'dataurlstring', 'datauri'/'dataurl', 'dataurlnewwindow', 'pdfobjectnewwindow', 'pdfjsnewwindow'.\n   * @param {Object} options An object providing some additional signalling to PDF generator. Possible options are 'filename'.\n   *\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name output\n   */\n  var output = (API.output = API.__private__.output = SAFE(function output(\n    type,\n    options\n  ) {\n    options = options || {};\n\n    if (typeof options === \"string\") {\n      options = {\n        filename: options\n      };\n    } else {\n      options.filename = options.filename || \"generated.pdf\";\n    }\n\n    switch (type) {\n      case undefined:\n        return buildDocument();\n      case \"save\":\n        API.save(options.filename);\n        break;\n      case \"arraybuffer\":\n        return getArrayBuffer(buildDocument());\n      case \"blob\":\n        return getBlob(buildDocument());\n      case \"bloburi\":\n      case \"bloburl\":\n        // Developer is responsible of calling revokeObjectURL\n        if (\n          typeof globalObject.URL !== \"undefined\" &&\n          typeof globalObject.URL.createObjectURL === \"function\"\n        ) {\n          return (\n            (globalObject.URL &&\n              globalObject.URL.createObjectURL(getBlob(buildDocument()))) ||\n            void 0\n          );\n        } else {\n          console.warn(\n            \"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\"\n          );\n        }\n        break;\n      case \"datauristring\":\n      case \"dataurlstring\":\n        var dataURI = \"\";\n        var pdfDocument = buildDocument();\n        try {\n          dataURI = btoa(pdfDocument);\n        } catch (e) {\n          dataURI = btoa(unescape(encodeURIComponent(pdfDocument)));\n        }\n        return (\n          \"data:application/pdf;filename=\" +\n          options.filename +\n          \";base64,\" +\n          dataURI\n        );\n      case \"pdfobjectnewwindow\":\n        if (\n          Object.prototype.toString.call(globalObject) === \"[object Window]\"\n        ) {\n          var pdfObjectUrl =\n            options.pdfObjectUrl ||\n            \"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\";\n          var htmlForNewWindow =\n            \"<html>\" +\n            '<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style><body><script src=\"' +\n            pdfObjectUrl +\n            '\"></script><script >PDFObject.embed(\"' +\n            this.output(\"dataurlstring\") +\n            '\", ' +\n            JSON.stringify(options) +\n            \");</script></body></html>\";\n          var nW = globalObject.open();\n\n          if (nW !== null) {\n            nW.document.write(htmlForNewWindow);\n          }\n          return nW;\n        } else {\n          throw new Error(\n            \"The option pdfobjectnewwindow just works in a browser-environment.\"\n          );\n        }\n      case \"pdfjsnewwindow\":\n        if (\n          Object.prototype.toString.call(globalObject) === \"[object Window]\"\n        ) {\n          var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\n          var htmlForPDFjsNewWindow =\n            \"<html>\" +\n            \"<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style>\" +\n            '<body><iframe id=\"pdfViewer\" src=\"' +\n            pdfJsUrl +\n            \"?file=&downloadName=\" +\n            options.filename +\n            '\" width=\"500px\" height=\"400px\" />' +\n            \"</body></html>\";\n          var PDFjsNewWindow = globalObject.open();\n\n          if (PDFjsNewWindow !== null) {\n            PDFjsNewWindow.document.write(htmlForPDFjsNewWindow);\n            var scope = this;\n            PDFjsNewWindow.document.documentElement.querySelector(\n              \"#pdfViewer\"\n            ).onload = function() {\n              PDFjsNewWindow.document.title = options.filename;\n              PDFjsNewWindow.document.documentElement\n                .querySelector(\"#pdfViewer\")\n                .contentWindow.PDFViewerApplication.open(\n                  scope.output(\"bloburl\")\n                );\n            };\n          }\n          return PDFjsNewWindow;\n        } else {\n          throw new Error(\n            \"The option pdfjsnewwindow just works in a browser-environment.\"\n          );\n        }\n      case \"dataurlnewwindow\":\n        if (\n          Object.prototype.toString.call(globalObject) === \"[object Window]\"\n        ) {\n          var htmlForDataURLNewWindow =\n            \"<html>\" +\n            \"<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;}  </style>\" +\n            \"<body>\" +\n            '<iframe src=\"' +\n            this.output(\"datauristring\", options) +\n            '\"></iframe>' +\n            \"</body></html>\";\n          var dataURLNewWindow = globalObject.open();\n          if (dataURLNewWindow !== null) {\n            dataURLNewWindow.document.write(htmlForDataURLNewWindow);\n            dataURLNewWindow.document.title = options.filename;\n          }\n          if (dataURLNewWindow || typeof safari === \"undefined\")\n            return dataURLNewWindow;\n        } else {\n          throw new Error(\n            \"The option dataurlnewwindow just works in a browser-environment.\"\n          );\n        }\n        break;\n      case \"datauri\":\n      case \"dataurl\":\n        return (globalObject.document.location.href = this.output(\n          \"datauristring\",\n          options\n        ));\n      default:\n        return null;\n    }\n  }));\n\n  /**\n   * Used to see if a supplied hotfix was requested when the pdf instance was created.\n   * @param {string} hotfixName - The name of the hotfix to check.\n   * @returns {boolean}\n   */\n  var hasHotfix = function(hotfixName) {\n    return (\n      Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\n    );\n  };\n\n  switch (unit) {\n    case \"pt\":\n      scaleFactor = 1;\n      break;\n    case \"mm\":\n      scaleFactor = 72 / 25.4;\n      break;\n    case \"cm\":\n      scaleFactor = 72 / 2.54;\n      break;\n    case \"in\":\n      scaleFactor = 72;\n      break;\n    case \"px\":\n      if (hasHotfix(\"px_scaling\") == true) {\n        scaleFactor = 72 / 96;\n      } else {\n        scaleFactor = 96 / 72;\n      }\n      break;\n    case \"pc\":\n      scaleFactor = 12;\n      break;\n    case \"em\":\n      scaleFactor = 12;\n      break;\n    case \"ex\":\n      scaleFactor = 6;\n      break;\n    default:\n      throw new Error(\"Invalid unit: \" + unit);\n  }\n\n  var encryption = null;\n  setCreationDate();\n  setFileId();\n\n  var getEncryptor = function(objectId) {\n    if (encryptionOptions !== null) {\n      return encryption.encryptor(objectId, 0);\n    }\n    return function(data) {\n      return data;\n    };\n  };\n\n  //---------------------------------------\n  // Public API\n\n  var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\n    pageNumberOneBased\n  ) {\n    if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\n    }\n    var objId = pagesContext[pageNumberOneBased].objId;\n    return {\n      objId: objId,\n      pageNumber: pageNumberOneBased,\n      pageContext: pagesContext[pageNumberOneBased]\n    };\n  });\n\n  var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\n    objId\n  ) {\n    if (isNaN(objId) || objId % 1 !== 0) {\n      throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\n    }\n    for (var pageNumber in pagesContext) {\n      if (pagesContext[pageNumber].objId === objId) {\n        break;\n      }\n    }\n    return getPageInfo(pageNumber);\n  });\n\n  var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\n    return {\n      objId: pagesContext[currentPage].objId,\n      pageNumber: currentPage,\n      pageContext: pagesContext[currentPage]\n    };\n  });\n\n  /**\n   * Adds (and transfers the focus to) new page to the PDF document.\n   * @param format {String/Array} The format of the new page. Can be: <ul><li>a0 - a10</li><li>b0 - b10</li><li>c0 - c10</li><li>dl</li><li>letter</li><li>government-letter</li><li>legal</li><li>junior-legal</li><li>ledger</li><li>tabloid</li><li>credit-card</li></ul><br />\n   * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\n   * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   *\n   * @memberof jsPDF#\n   * @name addPage\n   */\n  API.addPage = function() {\n    _addPage.apply(this, arguments);\n    return this;\n  };\n  /**\n   * Adds (and transfers the focus to) new page to the PDF document.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   *\n   * @memberof jsPDF#\n   * @name setPage\n   * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\n   * @example\n   * doc = jsPDF()\n   * doc.addPage()\n   * doc.addPage()\n   * doc.text('I am on page 3', 10, 10)\n   * doc.setPage(1)\n   * doc.text('I am on page 1', 10, 10)\n   */\n  API.setPage = function() {\n    _setPage.apply(this, arguments);\n    setOutputDestination.call(this, pages[currentPage]);\n    return this;\n  };\n\n  /**\n   * @name insertPage\n   * @memberof jsPDF#\n   *\n   * @function\n   * @instance\n   * @param {Object} beforePage\n   * @returns {jsPDF}\n   */\n  API.insertPage = function(beforePage) {\n    this.addPage();\n    this.movePage(currentPage, beforePage);\n    return this;\n  };\n\n  /**\n   * @name movePage\n   * @memberof jsPDF#\n   * @function\n   * @instance\n   * @param {number} targetPage\n   * @param {number} beforePage\n   * @returns {jsPDF}\n   */\n  API.movePage = function(targetPage, beforePage) {\n    var tmpPages, tmpPagesContext;\n    if (targetPage > beforePage) {\n      tmpPages = pages[targetPage];\n      tmpPagesContext = pagesContext[targetPage];\n      for (var i = targetPage; i > beforePage; i--) {\n        pages[i] = pages[i - 1];\n        pagesContext[i] = pagesContext[i - 1];\n      }\n      pages[beforePage] = tmpPages;\n      pagesContext[beforePage] = tmpPagesContext;\n      this.setPage(beforePage);\n    } else if (targetPage < beforePage) {\n      tmpPages = pages[targetPage];\n      tmpPagesContext = pagesContext[targetPage];\n      for (var j = targetPage; j < beforePage; j++) {\n        pages[j] = pages[j + 1];\n        pagesContext[j] = pagesContext[j + 1];\n      }\n      pages[beforePage] = tmpPages;\n      pagesContext[beforePage] = tmpPagesContext;\n      this.setPage(beforePage);\n    }\n    return this;\n  };\n\n  /**\n   * Deletes a page from the PDF.\n   * @name deletePage\n   * @memberof jsPDF#\n   * @function\n   * @param {number} targetPage\n   * @instance\n   * @returns {jsPDF}\n   */\n  API.deletePage = function() {\n    _deletePage.apply(this, arguments);\n    return this;\n  };\n\n  /**\n   * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\n   *\n   * @function\n   * @instance\n   * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\n   * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\n   * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\n   * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\n   * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\n   * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\n   * @param {number} [options.charSpace=0] - The space between each letter.\n   * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\n   * @param {Object} [options.flags] - Flags for to8bitStream.\n   * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\n   * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\n   * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\n   * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\n   * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\n   * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\n   * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\n   * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\n   * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\n   * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\n   *\n   * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\n   * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\n   * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\n   * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name text\n   */\n  API.__private__.text = API.text = function(text, x, y, options, transform) {\n    /*\n     * Inserts something like this into PDF\n     *   BT\n     *    /F1 16 Tf  % Font name + size\n     *    16 TL % How many units down for next line in multiline text\n     *    0 g % color\n     *    28.35 813.54 Td % position\n     *    (line one) Tj\n     *    T* (line two) Tj\n     *    T* (line three) Tj\n     *   ET\n     */\n    options = options || {};\n    var scope = options.scope || this;\n    var payload, da, angle, align, charSpace, maxWidth, flags;\n\n    // Pre-August-2012 the order of arguments was function(x, y, text, flags)\n    // in effort to make all calls have similar signature like\n    //   function(data, coordinates... , miscellaneous)\n    // this method had its args flipped.\n    // code below allows backward compatibility with old arg order.\n    if (\n      typeof text === \"number\" &&\n      typeof x === \"number\" &&\n      (typeof y === \"string\" || Array.isArray(y))\n    ) {\n      var tmp = y;\n      y = x;\n      x = text;\n      text = tmp;\n    }\n\n    var transformationMatrix;\n\n    if (arguments[3] instanceof Matrix === false) {\n      flags = arguments[3];\n      angle = arguments[4];\n      align = arguments[5];\n\n      if (typeof flags !== \"object\" || flags === null) {\n        if (typeof angle === \"string\") {\n          align = angle;\n          angle = null;\n        }\n        if (typeof flags === \"string\") {\n          align = flags;\n          flags = null;\n        }\n        if (typeof flags === \"number\") {\n          angle = flags;\n          flags = null;\n        }\n        options = {\n          flags: flags,\n          angle: angle,\n          align: align\n        };\n      }\n    } else {\n      advancedApiModeTrap(\n        \"The transform parameter of text() with a Matrix value\"\n      );\n      transformationMatrix = transform;\n    }\n\n    if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\n      throw new Error(\"Invalid arguments passed to jsPDF.text\");\n    }\n\n    if (text.length === 0) {\n      return scope;\n    }\n\n    var xtra = \"\";\n    var isHex = false;\n    var lineHeight =\n      typeof options.lineHeightFactor === \"number\"\n        ? options.lineHeightFactor\n        : lineHeightFactor;\n    var scaleFactor = scope.internal.scaleFactor;\n\n    function ESC(s) {\n      s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\n      return pdfEscape(s, flags);\n    }\n\n    function transformTextToSpecialArray(text) {\n      //we don't want to destroy original text array, so cloning it\n      var sa = text.concat();\n      var da = [];\n      var len = sa.length;\n      var curDa;\n      //we do array.join('text that must not be PDFescaped\")\n      //thus, pdfEscape each component separately\n      while (len--) {\n        curDa = sa.shift();\n        if (typeof curDa === \"string\") {\n          da.push(curDa);\n        } else {\n          if (\n            Array.isArray(text) &&\n            (curDa.length === 1 ||\n              (curDa[1] === undefined && curDa[2] === undefined))\n          ) {\n            da.push(curDa[0]);\n          } else {\n            da.push([curDa[0], curDa[1], curDa[2]]);\n          }\n        }\n      }\n      return da;\n    }\n\n    function processTextByFunction(text, processingFunction) {\n      var result;\n      if (typeof text === \"string\") {\n        result = processingFunction(text)[0];\n      } else if (Array.isArray(text)) {\n        //we don't want to destroy original text array, so cloning it\n        var sa = text.concat();\n        var da = [];\n        var len = sa.length;\n        var curDa;\n        var tmpResult;\n        //we do array.join('text that must not be PDFescaped\")\n        //thus, pdfEscape each component separately\n        while (len--) {\n          curDa = sa.shift();\n          if (typeof curDa === \"string\") {\n            da.push(processingFunction(curDa)[0]);\n          } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\n            tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\n            da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\n          }\n        }\n        result = da;\n      }\n      return result;\n    }\n\n    //Check if text is of type String\n    var textIsOfTypeString = false;\n    var tmpTextIsOfTypeString = true;\n\n    if (typeof text === \"string\") {\n      textIsOfTypeString = true;\n    } else if (Array.isArray(text)) {\n      //we don't want to destroy original text array, so cloning it\n      var sa = text.concat();\n      da = [];\n      var len = sa.length;\n      var curDa;\n      //we do array.join('text that must not be PDFescaped\")\n      //thus, pdfEscape each component separately\n      while (len--) {\n        curDa = sa.shift();\n        if (\n          typeof curDa !== \"string\" ||\n          (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\n        ) {\n          tmpTextIsOfTypeString = false;\n        }\n      }\n      textIsOfTypeString = tmpTextIsOfTypeString;\n    }\n    if (textIsOfTypeString === false) {\n      throw new Error(\n        'Type of text must be string or Array. \"' +\n          text +\n          '\" is not recognized.'\n      );\n    }\n\n    //If there are any newlines in text, we assume\n    //the user wanted to print multiple lines, so break the\n    //text up into an array. If the text is already an array,\n    //we assume the user knows what they are doing.\n    //Convert text into an array anyway to simplify\n    //later code.\n\n    if (typeof text === \"string\") {\n      if (text.match(/[\\r?\\n]/)) {\n        text = text.split(/\\r\\n|\\r|\\n/g);\n      } else {\n        text = [text];\n      }\n    }\n\n    //baseline\n    var height = activeFontSize / scope.internal.scaleFactor;\n    var descent = height * (lineHeightFactor - 1);\n    switch (options.baseline) {\n      case \"bottom\":\n        y -= descent;\n        break;\n      case \"top\":\n        y += height - descent;\n        break;\n      case \"hanging\":\n        y += height - 2 * descent;\n        break;\n      case \"middle\":\n        y += height / 2 - descent;\n        break;\n      case \"ideographic\":\n      case \"alphabetic\":\n      default:\n        // do nothing, everything is fine\n        break;\n    }\n\n    //multiline\n    maxWidth = options.maxWidth || 0;\n\n    if (maxWidth > 0) {\n      if (typeof text === \"string\") {\n        text = scope.splitTextToSize(text, maxWidth);\n      } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n        text = text.reduce(function(acc, textLine) {\n          return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n        }, []);\n      }\n    }\n\n    //creating Payload-Object to make text byRef\n    payload = {\n      text: text,\n      x: x,\n      y: y,\n      options: options,\n      mutex: {\n        pdfEscape: pdfEscape,\n        activeFontKey: activeFontKey,\n        fonts: fonts,\n        activeFontSize: activeFontSize\n      }\n    };\n    events.publish(\"preProcessText\", payload);\n\n    text = payload.text;\n    options = payload.options;\n\n    //angle\n    angle = options.angle;\n\n    if (\n      transformationMatrix instanceof Matrix === false &&\n      angle &&\n      typeof angle === \"number\"\n    ) {\n      angle *= Math.PI / 180;\n\n      if (options.rotationDirection === 0) {\n        angle = -angle;\n      }\n\n      if (apiMode === ApiMode.ADVANCED) {\n        angle = -angle;\n      }\n\n      var c = Math.cos(angle);\n      var s = Math.sin(angle);\n      transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\n    } else if (angle && angle instanceof Matrix) {\n      transformationMatrix = angle;\n    }\n\n    if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\n      transformationMatrix = identityMatrix;\n    }\n\n    //charSpace\n\n    charSpace = options.charSpace || activeCharSpace;\n\n    if (typeof charSpace !== \"undefined\") {\n      xtra += hpf(scale(charSpace)) + \" Tc\\n\";\n      this.setCharSpace(this.getCharSpace() || 0);\n    }\n\n    //lang\n\n    var lang = options.lang;\n\n    if (lang) {\n      //    xtra += \"/Lang (\" + lang +\")\\n\";\n    }\n\n    //renderingMode\n    var renderingMode = -1;\n    var parmRenderingMode =\n      typeof options.renderingMode !== \"undefined\"\n        ? options.renderingMode\n        : options.stroke;\n    var pageContext = scope.internal.getCurrentPageInfo().pageContext;\n\n    switch (parmRenderingMode) {\n      case 0:\n      case false:\n      case \"fill\":\n        renderingMode = 0;\n        break;\n      case 1:\n      case true:\n      case \"stroke\":\n        renderingMode = 1;\n        break;\n      case 2:\n      case \"fillThenStroke\":\n        renderingMode = 2;\n        break;\n      case 3:\n      case \"invisible\":\n        renderingMode = 3;\n        break;\n      case 4:\n      case \"fillAndAddForClipping\":\n        renderingMode = 4;\n        break;\n      case 5:\n      case \"strokeAndAddPathForClipping\":\n        renderingMode = 5;\n        break;\n      case 6:\n      case \"fillThenStrokeAndAddToPathForClipping\":\n        renderingMode = 6;\n        break;\n      case 7:\n      case \"addToPathForClipping\":\n        renderingMode = 7;\n        break;\n    }\n\n    var usedRenderingMode =\n      typeof pageContext.usedRenderingMode !== \"undefined\"\n        ? pageContext.usedRenderingMode\n        : -1;\n\n    //if the coder wrote it explicitly to use a specific\n    //renderingMode, then use it\n    if (renderingMode !== -1) {\n      xtra += renderingMode + \" Tr\\n\";\n      //otherwise check if we used the rendering Mode already\n      //if so then set the rendering Mode...\n    } else if (usedRenderingMode !== -1) {\n      xtra += \"0 Tr\\n\";\n    }\n\n    if (renderingMode !== -1) {\n      pageContext.usedRenderingMode = renderingMode;\n    }\n\n    //align\n    align = options.align || \"left\";\n    var leading = activeFontSize * lineHeight;\n    var pageWidth = scope.internal.pageSize.getWidth();\n    var activeFont = fonts[activeFontKey];\n    charSpace = options.charSpace || activeCharSpace;\n    maxWidth = options.maxWidth || 0;\n\n    var lineWidths;\n    flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\n\n    var wordSpacingPerLine = [];\n\n    if (Object.prototype.toString.call(text) === \"[object Array]\") {\n      da = transformTextToSpecialArray(text);\n      var newY;\n      if (align !== \"left\") {\n        lineWidths = da.map(function(v) {\n          return (\n            (scope.getStringUnitWidth(v, {\n              font: activeFont,\n              charSpace: charSpace,\n              fontSize: activeFontSize,\n              doKerning: false\n            }) *\n              activeFontSize) /\n            scaleFactor\n          );\n        });\n      }\n      //The first line uses the \"main\" Td setting,\n      //and the subsequent lines are offset by the\n      //previous line's x coordinate.\n      var prevWidth = 0;\n      var newX;\n      if (align === \"right\") {\n        //The passed in x coordinate defines the\n        //rightmost point of the text.\n        x -= lineWidths[0];\n        text = [];\n        len = da.length;\n        for (var i = 0; i < len; i++) {\n          if (i === 0) {\n            newX = getHorizontalCoordinate(x);\n            newY = getVerticalCoordinate(y);\n          } else {\n            newX = scale(prevWidth - lineWidths[i]);\n            newY = -leading;\n          }\n          text.push([da[i], newX, newY]);\n          prevWidth = lineWidths[i];\n        }\n      } else if (align === \"center\") {\n        //The passed in x coordinate defines\n        //the center point.\n        x -= lineWidths[0] / 2;\n        text = [];\n        len = da.length;\n        for (var j = 0; j < len; j++) {\n          if (j === 0) {\n            newX = getHorizontalCoordinate(x);\n            newY = getVerticalCoordinate(y);\n          } else {\n            newX = scale((prevWidth - lineWidths[j]) / 2);\n            newY = -leading;\n          }\n          text.push([da[j], newX, newY]);\n          prevWidth = lineWidths[j];\n        }\n      } else if (align === \"left\") {\n        text = [];\n        len = da.length;\n        for (var h = 0; h < len; h++) {\n          text.push(da[h]);\n        }\n      } else if (align === \"justify\") {\n        text = [];\n        len = da.length;\n        maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\n\n        for (var l = 0; l < len; l++) {\n          newY = l === 0 ? getVerticalCoordinate(y) : -leading;\n          newX = l === 0 ? getHorizontalCoordinate(x) : 0;\n          if (l < len - 1) {\n            wordSpacingPerLine.push(\n              hpf(\n                scale(\n                  (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\n                )\n              )\n            );\n          }\n          text.push([da[l], newX, newY]);\n        }\n      } else {\n        throw new Error(\n          'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\n        );\n      }\n    }\n\n    //R2L\n    var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\n    if (doReversing === true) {\n      text = processTextByFunction(text, function(text, posX, posY) {\n        return [\n          text\n            .split(\"\")\n            .reverse()\n            .join(\"\"),\n          posX,\n          posY\n        ];\n      });\n    }\n\n    //creating Payload-Object to make text byRef\n    payload = {\n      text: text,\n      x: x,\n      y: y,\n      options: options,\n      mutex: {\n        pdfEscape: pdfEscape,\n        activeFontKey: activeFontKey,\n        fonts: fonts,\n        activeFontSize: activeFontSize\n      }\n    };\n    events.publish(\"postProcessText\", payload);\n\n    text = payload.text;\n    isHex = payload.mutex.isHex || false;\n\n    //Escaping\n    var activeFontEncoding = fonts[activeFontKey].encoding;\n\n    if (\n      activeFontEncoding === \"WinAnsiEncoding\" ||\n      activeFontEncoding === \"StandardEncoding\"\n    ) {\n      text = processTextByFunction(text, function(text, posX, posY) {\n        return [ESC(text), posX, posY];\n      });\n    }\n\n    da = transformTextToSpecialArray(text);\n\n    text = [];\n    var STRING = 0;\n    var ARRAY = 1;\n    var variant = Array.isArray(da[0]) ? ARRAY : STRING;\n    var posX;\n    var posY;\n    var content;\n    var wordSpacing = \"\";\n\n    var generatePosition = function(\n      parmPosX,\n      parmPosY,\n      parmTransformationMatrix\n    ) {\n      var position = \"\";\n      if (parmTransformationMatrix instanceof Matrix) {\n        // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\n        // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\n        // in the coordinate system established by this matrix\n        if (typeof options.angle === \"number\") {\n          parmTransformationMatrix = matrixMult(\n            parmTransformationMatrix,\n            new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\n          );\n        } else {\n          parmTransformationMatrix = matrixMult(\n            new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\n            parmTransformationMatrix\n          );\n        }\n\n        if (apiMode === ApiMode.ADVANCED) {\n          parmTransformationMatrix = matrixMult(\n            new Matrix(1, 0, 0, -1, 0, 0),\n            parmTransformationMatrix\n          );\n        }\n\n        position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\n      } else {\n        position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\n      }\n      return position;\n    };\n\n    for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\n      wordSpacing = \"\";\n\n      switch (variant) {\n        case ARRAY:\n          content =\n            (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\n          posX = parseFloat(da[lineIndex][1]);\n          posY = parseFloat(da[lineIndex][2]);\n          break;\n        case STRING:\n          content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\n          posX = getHorizontalCoordinate(x);\n          posY = getVerticalCoordinate(y);\n          break;\n      }\n\n      if (\n        typeof wordSpacingPerLine !== \"undefined\" &&\n        typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\n      ) {\n        wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\n      }\n\n      if (lineIndex === 0) {\n        text.push(\n          wordSpacing +\n            generatePosition(posX, posY, transformationMatrix) +\n            content\n        );\n      } else if (variant === STRING) {\n        text.push(wordSpacing + content);\n      } else if (variant === ARRAY) {\n        text.push(\n          wordSpacing +\n            generatePosition(posX, posY, transformationMatrix) +\n            content\n        );\n      }\n    }\n\n    text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\n    text += \" Tj\\n\";\n\n    var result = \"BT\\n/\";\n    result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\n    result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\n    result += textColor + \"\\n\";\n    result += xtra;\n    result += text;\n    result += \"ET\";\n\n    out(result);\n    usedFonts[activeFontKey] = true;\n    return scope;\n  };\n\n  // PDF supports these path painting and clip path operators:\n  //\n  // S - stroke\n  // s - close/stroke\n  // f (F) - fill non-zero\n  // f* - fill evenodd\n  // B - fill stroke nonzero\n  // B* - fill stroke evenodd\n  // b - close fill stroke nonzero\n  // b* - close fill stroke evenodd\n  // n - nothing (consume path)\n  // W - clip nonzero\n  // W* - clip evenodd\n  //\n  // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\n  // method.\n  /**\n   *\n   * @name clip\n   * @function\n   * @instance\n   * @param {string} rule Only possible value is 'evenodd'\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @description All .clip() after calling drawing ops with a style argument of null.\n   */\n  var clip = (API.__private__.clip = API.clip = function(rule) {\n    // Call .clip() after calling drawing ops with a style argument of null\n    // W is the PDF clipping op\n    if (\"evenodd\" === rule) {\n      out(\"W*\");\n    } else {\n      out(\"W\");\n    }\n    return this;\n  });\n\n  /**\n   * @name clipEvenOdd\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\n   * that this will NOT consume the current path. In order to only use this path for clipping call\n   * {@link API.discardPath} afterwards.\n   */\n  API.clipEvenOdd = function() {\n    return clip(\"evenodd\");\n  };\n\n  /**\n   * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\n   * {@link clipEvenOdd}. The PDF \"n\" operator.\n   * @name discardPath\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  API.__private__.discardPath = API.discardPath = function() {\n    out(\"n\");\n    return this;\n  };\n\n  var isValidStyle = (API.__private__.isValidStyle = function(style) {\n    var validStyleVariants = [\n      undefined,\n      null,\n      \"S\",\n      \"D\",\n      \"F\",\n      \"DF\",\n      \"FD\",\n      \"f\",\n      \"f*\",\n      \"B\",\n      \"B*\",\n      \"n\"\n    ];\n    var result = false;\n    if (validStyleVariants.indexOf(style) !== -1) {\n      result = true;\n    }\n    return result;\n  });\n\n  API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\n    operator\n  ) {\n    if (isValidStyle(operator)) {\n      defaultPathOperation = operator;\n    }\n    return this;\n  };\n\n  var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\n    // see path-painting operators in PDF spec\n    var op = defaultPathOperation; // stroke\n\n    switch (style) {\n      case \"D\":\n      case \"S\":\n        op = \"S\"; // stroke\n        break;\n      case \"F\":\n        op = \"f\"; // fill\n        break;\n      case \"FD\":\n      case \"DF\":\n        op = \"B\";\n        break;\n      case \"f\":\n      case \"f*\":\n      case \"B\":\n      case \"B*\":\n        /*\n               Allow direct use of these PDF path-painting operators:\n               - f    fill using nonzero winding number rule\n               - f*    fill using even-odd rule\n               - B    fill then stroke with fill using non-zero winding number rule\n               - B*    fill then stroke with fill using even-odd rule\n               */\n        op = style;\n        break;\n    }\n    return op;\n  });\n\n  /**\n   * Close the current path. The PDF \"h\" operator.\n   * @name close\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  var close = (API.close = function() {\n    out(\"h\");\n    return this;\n  });\n\n  /**\n   * Stroke the path. The PDF \"S\" operator.\n   * @name stroke\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  API.stroke = function() {\n    out(\"S\");\n    return this;\n  };\n\n  /**\n   * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\n   * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\n   * @name fill\n   * @function\n   * @instance\n   * @param {PatternData=} pattern If provided the path will be filled with this pattern\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  API.fill = function(pattern) {\n    fillWithOptionalPattern(\"f\", pattern);\n    return this;\n  };\n\n  /**\n   * Fill the current path using the even-odd rule. The PDF f* operator.\n   * @see API.fill\n   * @name fillEvenOdd\n   * @function\n   * @instance\n   * @param {PatternData=} pattern If provided the path will be filled with this pattern\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  API.fillEvenOdd = function(pattern) {\n    fillWithOptionalPattern(\"f*\", pattern);\n    return this;\n  };\n\n  /**\n   * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\n   * @see API.fill\n   * @name fillStroke\n   * @function\n   * @instance\n   * @param {PatternData=} pattern If provided the path will be stroked with this pattern\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  API.fillStroke = function(pattern) {\n    fillWithOptionalPattern(\"B\", pattern);\n    return this;\n  };\n\n  /**\n   * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\n   * @see API.fill\n   * @name fillStrokeEvenOdd\n   * @function\n   * @instance\n   * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  API.fillStrokeEvenOdd = function(pattern) {\n    fillWithOptionalPattern(\"B*\", pattern);\n    return this;\n  };\n\n  var fillWithOptionalPattern = function(style, pattern) {\n    if (typeof pattern === \"object\") {\n      fillWithPattern(pattern, style);\n    } else {\n      out(style);\n    }\n  };\n\n  var putStyle = function(style) {\n    if (\n      style === null ||\n      (apiMode === ApiMode.ADVANCED && style === undefined)\n    ) {\n      return;\n    }\n\n    style = getStyle(style);\n\n    // stroking / filling / both the path\n    out(style);\n  };\n\n  function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\n    var clone = new TilingPattern(\n      boundingBox || this.boundingBox,\n      xStep || this.xStep,\n      yStep || this.yStep,\n      this.gState,\n      matrix || this.matrix\n    );\n    clone.stream = this.stream;\n    var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\n    addPattern(key, clone);\n    return clone;\n  }\n\n  var fillWithPattern = function(patternData, style) {\n    var patternId = patternMap[patternData.key];\n    var pattern = patterns[patternId];\n\n    if (pattern instanceof ShadingPattern) {\n      out(\"q\");\n\n      out(clipRuleFromStyle(style));\n\n      if (pattern.gState) {\n        API.setGState(pattern.gState);\n      }\n      out(patternData.matrix.toString() + \" cm\");\n      out(\"/\" + patternId + \" sh\");\n      out(\"Q\");\n    } else if (pattern instanceof TilingPattern) {\n      // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\n      // so we must flip them\n      var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\n\n      if (patternData.matrix) {\n        matrix = matrix.multiply(patternData.matrix || identityMatrix);\n        // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\n        // for each use\n        patternId = cloneTilingPattern.call(\n          pattern,\n          patternData.key,\n          patternData.boundingBox,\n          patternData.xStep,\n          patternData.yStep,\n          matrix\n        ).id;\n      }\n\n      out(\"q\");\n      out(\"/Pattern cs\");\n      out(\"/\" + patternId + \" scn\");\n\n      if (pattern.gState) {\n        API.setGState(pattern.gState);\n      }\n\n      out(style);\n      out(\"Q\");\n    }\n  };\n\n  var clipRuleFromStyle = function(style) {\n    switch (style) {\n      case \"f\":\n      case \"F\":\n        return \"W n\";\n      case \"f*\":\n        return \"W* n\";\n      case \"B\":\n        return \"W S\";\n      case \"B*\":\n        return \"W* S\";\n\n      // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\n      // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\n      case \"S\":\n        return \"W S\";\n      case \"n\":\n        return \"W n\";\n    }\n  };\n\n  /**\n   * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\n   * @param {number} x\n   * @param {number} y\n   * @name moveTo\n   * @function\n   * @instance\n   * @memberof jsPDF#\n   * @returns {jsPDF}\n   */\n  var moveTo = (API.moveTo = function(x, y) {\n    out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\n    return this;\n  });\n\n  /**\n   * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\n   * @param {number} x\n   * @param {number} y\n   * @memberof jsPDF#\n   * @name lineTo\n   * @function\n   * @instance\n   * @memberof jsPDF#\n   * @returns {jsPDF}\n   */\n  var lineTo = (API.lineTo = function(x, y) {\n    out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\n    return this;\n  });\n\n  /**\n   * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\n   * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\n   * @param {number} x1\n   * @param {number} y1\n   * @param {number} x2\n   * @param {number} y2\n   * @param {number} x3\n   * @param {number} y3\n   * @memberof jsPDF#\n   * @name curveTo\n   * @function\n   * @instance\n   * @memberof jsPDF#\n   * @returns {jsPDF}\n   */\n  var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\n    out(\n      [\n        hpf(scale(x1)),\n        hpf(transformScaleY(y1)),\n        hpf(scale(x2)),\n        hpf(transformScaleY(y2)),\n        hpf(scale(x3)),\n        hpf(transformScaleY(y3)),\n        \"c\"\n      ].join(\" \")\n    );\n    return this;\n  });\n\n  /**\n   * Draw a line on the current page.\n   *\n   * @name line\n   * @function\n   * @instance\n   * @param {number} x1\n   * @param {number} y1\n   * @param {number} x2\n   * @param {number} y2\n   * @param {string} style A string specifying the painting style or null.  Valid styles include: 'S' [default] - stroke, 'F' - fill,  and 'DF' (or 'FD') -  fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   */\n  API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\n    if (\n      isNaN(x1) ||\n      isNaN(y1) ||\n      isNaN(x2) ||\n      isNaN(y2) ||\n      !isValidStyle(style)\n    ) {\n      throw new Error(\"Invalid arguments passed to jsPDF.line\");\n    }\n    if (apiMode === ApiMode.COMPAT) {\n      return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\n    } else {\n      return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\n    }\n  };\n\n  /**\n   * @typedef {Object} PatternData\n   * {Matrix|undefined} matrix\n   * {Number|undefined} xStep\n   * {Number|undefined} yStep\n   * {Array.<Number>|undefined} boundingBox\n   */\n\n  /**\n   * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\n   * All data points in `lines` are relative to last line origin.\n   * `x`, `y` become x1,y1 for first line / curve in the set.\n   * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\n   * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\n   *\n   * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\n   * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\n   * 'S' [default] - stroke,\n   * 'F' - fill,\n   * and 'DF' (or 'FD') -  fill then stroke.\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\n   *\n   * In \"advanced\" API mode this parameter is deprecated.\n   * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name lines\n   */\n  API.__private__.lines = API.lines = function(\n    lines,\n    x,\n    y,\n    scale,\n    style,\n    closed\n  ) {\n    var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\n\n    // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\n    // in effort to make all calls have similar signature like\n    //   function(content, coordinateX, coordinateY , miscellaneous)\n    // this method had its args flipped.\n    // code below allows backward compatibility with old arg order.\n    if (typeof lines === \"number\") {\n      tmp = y;\n      y = x;\n      x = lines;\n      lines = tmp;\n    }\n\n    scale = scale || [1, 1];\n    closed = closed || false;\n\n    if (\n      isNaN(x) ||\n      isNaN(y) ||\n      !Array.isArray(lines) ||\n      !Array.isArray(scale) ||\n      !isValidStyle(style) ||\n      typeof closed !== \"boolean\"\n    ) {\n      throw new Error(\"Invalid arguments passed to jsPDF.lines\");\n    }\n\n    // starting point\n    moveTo(x, y);\n\n    scalex = scale[0];\n    scaley = scale[1];\n    l = lines.length;\n    //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\n    //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\n    // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\n    x4 = x; // last / ending point = starting point for first item.\n    y4 = y; // last / ending point = starting point for first item.\n\n    for (i = 0; i < l; i++) {\n      leg = lines[i];\n      if (leg.length === 2) {\n        // simple line\n        x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\n        y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\n        lineTo(x4, y4);\n      } else {\n        // bezier curve\n        x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\n        y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\n        x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\n        y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\n        x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\n        y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\n        curveTo(x2, y2, x3, y3, x4, y4);\n      }\n    }\n\n    if (closed) {\n      close();\n    }\n\n    putStyle(style);\n    return this;\n  };\n\n  /**\n   * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\n   * @param {Array<Object>} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\n   * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\n   * six and \"h\" an empty array (or undefined).\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name path\n   */\n  API.path = function(lines) {\n    for (var i = 0; i < lines.length; i++) {\n      var leg = lines[i];\n      var coords = leg.c;\n      switch (leg.op) {\n        case \"m\":\n          moveTo(coords[0], coords[1]);\n          break;\n        case \"l\":\n          lineTo(coords[0], coords[1]);\n          break;\n        case \"c\":\n          curveTo.apply(this, coords);\n          break;\n        case \"h\":\n          close();\n          break;\n      }\n    }\n\n    return this;\n  };\n\n  /**\n   * Adds a rectangle to PDF.\n   *\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} w Width (in units declared at inception of PDF document)\n   * @param {number} h Height (in units declared at inception of PDF document)\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\n   * 'S' [default] - stroke,\n   * 'F' - fill,\n   * and 'DF' (or 'FD') -  fill then stroke.\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\n   *\n   * In \"advanced\" API mode this parameter is deprecated.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name rect\n   */\n  API.__private__.rect = API.rect = function(x, y, w, h, style) {\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\n      throw new Error(\"Invalid arguments passed to jsPDF.rect\");\n    }\n    if (apiMode === ApiMode.COMPAT) {\n      h = -h;\n    }\n\n    out(\n      [\n        hpf(scale(x)),\n        hpf(transformScaleY(y)),\n        hpf(scale(w)),\n        hpf(scale(h)),\n        \"re\"\n      ].join(\" \")\n    );\n\n    putStyle(style);\n    return this;\n  };\n\n  /**\n   * Adds a triangle to PDF.\n   *\n   * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\n   * 'S' [default] - stroke,\n   * 'F' - fill,\n   * and 'DF' (or 'FD') -  fill then stroke.\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\n   *\n   * In \"advanced\" API mode this parameter is deprecated.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name triangle\n   */\n  API.__private__.triangle = API.triangle = function(\n    x1,\n    y1,\n    x2,\n    y2,\n    x3,\n    y3,\n    style\n  ) {\n    if (\n      isNaN(x1) ||\n      isNaN(y1) ||\n      isNaN(x2) ||\n      isNaN(y2) ||\n      isNaN(x3) ||\n      isNaN(y3) ||\n      !isValidStyle(style)\n    ) {\n      throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\n    }\n    this.lines(\n      [\n        [x2 - x1, y2 - y1], // vector to point 2\n        [x3 - x2, y3 - y2], // vector to point 3\n        [x1 - x3, y1 - y3] // closing vector back to point 1\n      ],\n      x1,\n      y1, // start of path\n      [1, 1],\n      style,\n      true\n    );\n    return this;\n  };\n\n  /**\n   * Adds a rectangle with rounded corners to PDF.\n   *\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} w Width (in units declared at inception of PDF document)\n   * @param {number} h Height (in units declared at inception of PDF document)\n   * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\n   * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\n   * 'S' [default] - stroke,\n   * 'F' - fill,\n   * and 'DF' (or 'FD') -  fill then stroke.\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\n   *\n   * In \"advanced\" API mode this parameter is deprecated.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name roundedRect\n   */\n  API.__private__.roundedRect = API.roundedRect = function(\n    x,\n    y,\n    w,\n    h,\n    rx,\n    ry,\n    style\n  ) {\n    if (\n      isNaN(x) ||\n      isNaN(y) ||\n      isNaN(w) ||\n      isNaN(h) ||\n      isNaN(rx) ||\n      isNaN(ry) ||\n      !isValidStyle(style)\n    ) {\n      throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\n    }\n    var MyArc = (4 / 3) * (Math.SQRT2 - 1);\n\n    rx = Math.min(rx, w * 0.5);\n    ry = Math.min(ry, h * 0.5);\n\n    this.lines(\n      [\n        [w - 2 * rx, 0],\n        [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\n        [0, h - 2 * ry],\n        [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\n        [-w + 2 * rx, 0],\n        [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\n        [0, -h + 2 * ry],\n        [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\n      ],\n      x + rx,\n      y, // start of path\n      [1, 1],\n      style,\n      true\n    );\n    return this;\n  };\n\n  /**\n   * Adds an ellipse to PDF.\n   *\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\n   * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\n   * 'S' [default] - stroke,\n   * 'F' - fill,\n   * and 'DF' (or 'FD') -  fill then stroke.\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\n   *\n   * In \"advanced\" API mode this parameter is deprecated.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name ellipse\n   */\n  API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\n    if (\n      isNaN(x) ||\n      isNaN(y) ||\n      isNaN(rx) ||\n      isNaN(ry) ||\n      !isValidStyle(style)\n    ) {\n      throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\n    }\n    var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\n      ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\n\n    moveTo(x + rx, y);\n    curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\n    curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\n    curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\n    curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\n\n    putStyle(style);\n    return this;\n  };\n\n  /**\n   * Adds an circle to PDF.\n   *\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} r Radius (in units declared at inception of PDF document)\n   * @param {string=} style A string specifying the painting style or null. Valid styles include:\n   * 'S' [default] - stroke,\n   * 'F' - fill,\n   * and 'DF' (or 'FD') -  fill then stroke.\n   * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\n   * method calls. The last drawing method call used to define the shape should not have a null style argument.\n   *\n   * In \"advanced\" API mode this parameter is deprecated.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name circle\n   */\n  API.__private__.circle = API.circle = function(x, y, r, style) {\n    if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\n      throw new Error(\"Invalid arguments passed to jsPDF.circle\");\n    }\n    return this.ellipse(x, y, r, r, style);\n  };\n\n  /**\n   * Sets text font face, variant for upcoming text elements.\n   * See output of jsPDF.getFontList() for possible font names, styles.\n   *\n   * @param {string} fontName Font name or family. Example: \"times\".\n   * @param {string} fontStyle Font style or variant. Example: \"italic\".\n   * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setFont\n   */\n  API.setFont = function(fontName, fontStyle, fontWeight) {\n    if (fontWeight) {\n      fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\n    }\n    activeFontKey = getFont(fontName, fontStyle, {\n      disableWarning: false\n    });\n    return this;\n  };\n\n  /**\n   * Gets text font face, variant for upcoming text elements.\n   *\n   * @function\n   * @instance\n   * @returns {Object}\n   * @memberof jsPDF#\n   * @name getFont\n   */\n  var getFontEntry = (API.__private__.getFont = API.getFont = function() {\n    return fonts[getFont.apply(API, arguments)];\n  });\n\n  /**\n   * Returns an object - a tree of fontName to fontStyle relationships available to\n   * active PDF document.\n   *\n   * @public\n   * @function\n   * @instance\n   * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\n   * @memberof jsPDF#\n   * @name getFontList\n   */\n  API.__private__.getFontList = API.getFontList = function() {\n    var list = {},\n      fontName,\n      fontStyle;\n\n    for (fontName in fontmap) {\n      if (fontmap.hasOwnProperty(fontName)) {\n        list[fontName] = [];\n        for (fontStyle in fontmap[fontName]) {\n          if (fontmap[fontName].hasOwnProperty(fontStyle)) {\n            list[fontName].push(fontStyle);\n          }\n        }\n      }\n    }\n    return list;\n  };\n\n  /**\n   * Add a custom font to the current instance.\n   *\n   * @param {string} postScriptName PDF specification full name for the font.\n   * @param {string} id PDF-document-instance-specific label assinged to the font.\n   * @param {string} fontStyle Style of the Font.\n   * @param {number | string} fontWeight Weight of the Font.\n   * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\n   * @function\n   * @instance\n   * @memberof jsPDF#\n   * @name addFont\n   * @returns {string} fontId\n   */\n  API.addFont = function(\n    postScriptName,\n    fontName,\n    fontStyle,\n    fontWeight,\n    encoding\n  ) {\n    var encodingOptions = [\n      \"StandardEncoding\",\n      \"MacRomanEncoding\",\n      \"Identity-H\",\n      \"WinAnsiEncoding\"\n    ];\n    if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\n      //IE 11 fix\n      encoding = arguments[3];\n    } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\n      fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\n    }\n    encoding = encoding || \"Identity-H\";\n    return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\n  };\n\n  var lineWidth = options.lineWidth || 0.200025; // 2mm\n  /**\n   * Sets line width for upcoming lines.\n   *\n   * @param {number} width Line width (in units declared at inception of PDF document).\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setLineWidth\n   */\n  var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\n    width\n  ) {\n    out(hpf(scale(width)) + \" w\");\n    return this;\n  });\n\n  /**\n   * Sets the dash pattern for upcoming lines.\n   *\n   * To reset the settings simply call the method without any parameters.\n   * @param {Array<number>} dashArray An array containing 0-2 numbers. The first number sets the length of the\n   * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\n   * to be as long as the dashes. An empty array means solid, unbroken lines.\n   * @param {number} dashPhase The phase lines start with.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setLineDashPattern\n   */\n  API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\n    dashArray,\n    dashPhase\n  ) {\n    dashArray = dashArray || [];\n    dashPhase = dashPhase || 0;\n\n    if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\n      throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\n    }\n\n    dashArray = dashArray\n      .map(function(x) {\n        return hpf(scale(x));\n      })\n      .join(\" \");\n    dashPhase = hpf(scale(dashPhase));\n\n    out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\n    return this;\n  };\n\n  var lineHeightFactor;\n\n  var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\n    return activeFontSize * lineHeightFactor;\n  });\n\n  API.__private__.getLineHeight = API.getLineHeight = function() {\n    return activeFontSize * lineHeightFactor;\n  };\n\n  /**\n   * Sets the LineHeightFactor of proportion.\n   *\n   * @param {number} value LineHeightFactor value. Default: 1.15.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setLineHeightFactor\n   */\n  var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\n    value\n  ) {\n    value = value || 1.15;\n    if (typeof value === \"number\") {\n      lineHeightFactor = value;\n    }\n    return this;\n  });\n\n  /**\n   * Gets the LineHeightFactor, default: 1.15.\n   *\n   * @function\n   * @instance\n   * @returns {number} lineHeightFactor\n   * @memberof jsPDF#\n   * @name getLineHeightFactor\n   */\n  var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\n    return lineHeightFactor;\n  });\n\n  setLineHeightFactor(options.lineHeight);\n\n  var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\n    value\n  ) {\n    return scale(value);\n  });\n\n  var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\n    value\n  ) {\n    if (apiMode === ApiMode.ADVANCED) {\n      return value;\n    } else {\n      var pageHeight =\n        pagesContext[currentPage].mediaBox.topRightY -\n        pagesContext[currentPage].mediaBox.bottomLeftY;\n      return pageHeight - scale(value);\n    }\n  });\n\n  var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\n    value\n  ) {\n    return hpf(getHorizontalCoordinate(value));\n  });\n\n  var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\n    value\n  ) {\n    return hpf(getVerticalCoordinate(value));\n  });\n\n  var strokeColor = options.strokeColor || \"0 G\";\n\n  /**\n   *  Gets the stroke color for upcoming elements.\n   *\n   * @function\n   * @instance\n   * @returns {string} colorAsHex\n   * @memberof jsPDF#\n   * @name getDrawColor\n   */\n  API.__private__.getStrokeColor = API.getDrawColor = function() {\n    return decodeColorString(strokeColor);\n  };\n\n  /**\n   * Sets the stroke color for upcoming elements.\n   *\n   * Depending on the number of arguments given, Gray, RGB, or CMYK\n   * color space is implied.\n   *\n   * When only ch1 is given, \"Gray\" color space is implied and it\n   * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\n   * if values are communicated as String types, or in range from 0 (black)\n   * to 255 (white) if communicated as Number type.\n   * The RGB-like 0-255 range is provided for backward compatibility.\n   *\n   * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\n   * value must be in the range from 0.00 (minimum intensity) to to 1.00\n   * (max intensity) if values are communicated as String types, or\n   * from 0 (min intensity) to to 255 (max intensity) if values are communicated\n   * as Number types.\n   * The RGB-like 0-255 range is provided for backward compatibility.\n   *\n   * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\n   * value must be a in the range from 0.00 (0% concentration) to to\n   * 1.00 (100% concentration)\n   *\n   * Because JavaScript treats fixed point numbers badly (rounds to\n   * floating point nearest to binary representation) it is highly advised to\n   * communicate the fractional numbers as String types, not JavaScript Number type.\n   *\n   * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\n   * @param {Number} ch2 Color channel value.\n   * @param {Number} ch3 Color channel value.\n   * @param {Number} ch4 Color channel value.\n   *\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setDrawColor\n   */\n  API.__private__.setStrokeColor = API.setDrawColor = function(\n    ch1,\n    ch2,\n    ch3,\n    ch4\n  ) {\n    var options = {\n      ch1: ch1,\n      ch2: ch2,\n      ch3: ch3,\n      ch4: ch4,\n      pdfColorType: \"draw\",\n      precision: 2\n    };\n\n    strokeColor = encodeColorString(options);\n    out(strokeColor);\n    return this;\n  };\n\n  var fillColor = options.fillColor || \"0 g\";\n\n  /**\n   * Gets the fill color for upcoming elements.\n   *\n   * @function\n   * @instance\n   * @returns {string} colorAsHex\n   * @memberof jsPDF#\n   * @name getFillColor\n   */\n  API.__private__.getFillColor = API.getFillColor = function() {\n    return decodeColorString(fillColor);\n  };\n\n  /**\n   * Sets the fill color for upcoming elements.\n   *\n   * Depending on the number of arguments given, Gray, RGB, or CMYK\n   * color space is implied.\n   *\n   * When only ch1 is given, \"Gray\" color space is implied and it\n   * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\n   * if values are communicated as String types, or in range from 0 (black)\n   * to 255 (white) if communicated as Number type.\n   * The RGB-like 0-255 range is provided for backward compatibility.\n   *\n   * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\n   * value must be in the range from 0.00 (minimum intensity) to to 1.00\n   * (max intensity) if values are communicated as String types, or\n   * from 0 (min intensity) to to 255 (max intensity) if values are communicated\n   * as Number types.\n   * The RGB-like 0-255 range is provided for backward compatibility.\n   *\n   * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\n   * value must be a in the range from 0.00 (0% concentration) to to\n   * 1.00 (100% concentration)\n   *\n   * Because JavaScript treats fixed point numbers badly (rounds to\n   * floating point nearest to binary representation) it is highly advised to\n   * communicate the fractional numbers as String types, not JavaScript Number type.\n   *\n   * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\n   * @param {Number} ch2 Color channel value.\n   * @param {Number} ch3 Color channel value.\n   * @param {Number} ch4 Color channel value.\n   *\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setFillColor\n   */\n  API.__private__.setFillColor = API.setFillColor = function(\n    ch1,\n    ch2,\n    ch3,\n    ch4\n  ) {\n    var options = {\n      ch1: ch1,\n      ch2: ch2,\n      ch3: ch3,\n      ch4: ch4,\n      pdfColorType: \"fill\",\n      precision: 2\n    };\n\n    fillColor = encodeColorString(options);\n    out(fillColor);\n    return this;\n  };\n\n  var textColor = options.textColor || \"0 g\";\n  /**\n   * Gets the text color for upcoming elements.\n   *\n   * @function\n   * @instance\n   * @returns {string} colorAsHex\n   * @memberof jsPDF#\n   * @name getTextColor\n   */\n  var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\n    return decodeColorString(textColor);\n  });\n  /**\n   * Sets the text color for upcoming elements.\n   *\n   * Depending on the number of arguments given, Gray, RGB, or CMYK\n   * color space is implied.\n   *\n   * When only ch1 is given, \"Gray\" color space is implied and it\n   * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\n   * if values are communicated as String types, or in range from 0 (black)\n   * to 255 (white) if communicated as Number type.\n   * The RGB-like 0-255 range is provided for backward compatibility.\n   *\n   * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\n   * value must be in the range from 0.00 (minimum intensity) to to 1.00\n   * (max intensity) if values are communicated as String types, or\n   * from 0 (min intensity) to to 255 (max intensity) if values are communicated\n   * as Number types.\n   * The RGB-like 0-255 range is provided for backward compatibility.\n   *\n   * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\n   * value must be a in the range from 0.00 (0% concentration) to to\n   * 1.00 (100% concentration)\n   *\n   * Because JavaScript treats fixed point numbers badly (rounds to\n   * floating point nearest to binary representation) it is highly advised to\n   * communicate the fractional numbers as String types, not JavaScript Number type.\n   *\n   * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\n   * @param {Number} ch2 Color channel value.\n   * @param {Number} ch3 Color channel value.\n   * @param {Number} ch4 Color channel value.\n   *\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setTextColor\n   */\n  API.__private__.setTextColor = API.setTextColor = function(\n    ch1,\n    ch2,\n    ch3,\n    ch4\n  ) {\n    var options = {\n      ch1: ch1,\n      ch2: ch2,\n      ch3: ch3,\n      ch4: ch4,\n      pdfColorType: \"text\",\n      precision: 3\n    };\n    textColor = encodeColorString(options);\n\n    return this;\n  };\n\n  var activeCharSpace = options.charSpace;\n\n  /**\n   * Get global value of CharSpace.\n   *\n   * @function\n   * @instance\n   * @returns {number} charSpace\n   * @memberof jsPDF#\n   * @name getCharSpace\n   */\n  var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\n    return parseFloat(activeCharSpace || 0);\n  });\n\n  /**\n   * Set global value of CharSpace.\n   *\n   * @param {number} charSpace\n   * @function\n   * @instance\n   * @returns {jsPDF} jsPDF-instance\n   * @memberof jsPDF#\n   * @name setCharSpace\n   */\n  API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\n    if (isNaN(charSpace)) {\n      throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\n    }\n    activeCharSpace = charSpace;\n    return this;\n  };\n\n  var lineCapID = 0;\n  /**\n   * Is an Object providing a mapping from human-readable to\n   * integer flag values designating the varieties of line cap\n   * and join styles.\n   *\n   * @memberof jsPDF#\n   * @name CapJoinStyles\n   */\n  API.CapJoinStyles = {\n    0: 0,\n    butt: 0,\n    but: 0,\n    miter: 0,\n    1: 1,\n    round: 1,\n    rounded: 1,\n    circle: 1,\n    2: 2,\n    projecting: 2,\n    project: 2,\n    square: 2,\n    bevel: 2\n  };\n\n  /**\n   * Sets the line cap styles.\n   * See {jsPDF.CapJoinStyles} for variants.\n   *\n   * @param {String|Number} style A string or number identifying the type of line cap.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setLineCap\n   */\n  API.__private__.setLineCap = API.setLineCap = function(style) {\n    var id = API.CapJoinStyles[style];\n    if (id === undefined) {\n      throw new Error(\n        \"Line cap style of '\" +\n          style +\n          \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\n      );\n    }\n    lineCapID = id;\n    out(id + \" J\");\n\n    return this;\n  };\n\n  var lineJoinID = 0;\n  /**\n   * Sets the line join styles.\n   * See {jsPDF.CapJoinStyles} for variants.\n   *\n   * @param {String|Number} style A string or number identifying the type of line join.\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setLineJoin\n   */\n  API.__private__.setLineJoin = API.setLineJoin = function(style) {\n    var id = API.CapJoinStyles[style];\n    if (id === undefined) {\n      throw new Error(\n        \"Line join style of '\" +\n          style +\n          \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\n      );\n    }\n    lineJoinID = id;\n    out(id + \" j\");\n\n    return this;\n  };\n\n  var miterLimit;\n  /**\n   * Sets the miterLimit property, which effects the maximum miter length.\n   *\n   * @param {number} length The length of the miter\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setLineMiterLimit\n   */\n  API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\n    length\n  ) {\n    length = length || 0;\n    if (isNaN(length)) {\n      throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\n    }\n    out(hpf(scale(length)) + \" M\");\n\n    return this;\n  };\n\n  /**\n   * An object representing a pdf graphics state.\n   * @class GState\n   */\n\n  /**\n   *\n   * @param parameters A parameter object that contains all properties this graphics state wants to set.\n   * Supported are: opacity, stroke-opacity\n   * @constructor\n   */\n  API.GState = GState;\n\n  /**\n   * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\n   * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\n   * it will be added before use.\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setGState\n   */\n  API.setGState = function(gState) {\n    if (typeof gState === \"string\") {\n      gState = gStates[gStatesMap[gState]];\n    } else {\n      gState = addGState(null, gState);\n    }\n\n    if (!gState.equals(activeGState)) {\n      out(\"/\" + gState.id + \" gs\");\n      activeGState = gState;\n    }\n  };\n\n  /**\n   * Adds a new Graphics State. Duplicates are automatically eliminated.\n   * @param {String} key Might also be null, if no later reference to this gState is needed\n   * @param {Object} gState The gState object\n   */\n  var addGState = function(key, gState) {\n    // only add it if it is not already present (the keys provided by the user must be unique!)\n    if (key && gStatesMap[key]) return;\n    var duplicate = false;\n    for (var s in gStates) {\n      if (gStates.hasOwnProperty(s)) {\n        if (gStates[s].equals(gState)) {\n          duplicate = true;\n          break;\n        }\n      }\n    }\n\n    if (duplicate) {\n      gState = gStates[s];\n    } else {\n      var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\n      gStates[gStateKey] = gState;\n      gState.id = gStateKey;\n    }\n\n    // several user keys may point to the same GState object\n    key && (gStatesMap[key] = gState.id);\n\n    events.publish(\"addGState\", gState);\n\n    return gState;\n  };\n\n  /**\n   * Adds a new {@link GState} for later use. See {@link setGState}.\n   * @param {String} key\n   * @param {GState} gState\n   * @function\n   * @instance\n   * @returns {jsPDF}\n   *\n   * @memberof jsPDF#\n   * @name addGState\n   */\n  API.addGState = function(key, gState) {\n    addGState(key, gState);\n    return this;\n  };\n\n  /**\n   * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\n   * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\n   * fill and stroke colors etc.\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name saveGraphicsState\n   */\n  API.saveGraphicsState = function() {\n    out(\"q\");\n    // as we cannot set font key and size independently we must keep track of both\n    fontStateStack.push({\n      key: activeFontKey,\n      size: activeFontSize,\n      color: textColor\n    });\n    return this;\n  };\n\n  /**\n   * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name restoreGraphicsState\n   */\n  API.restoreGraphicsState = function() {\n    out(\"Q\");\n\n    // restore previous font state\n    var fontState = fontStateStack.pop();\n    activeFontKey = fontState.key;\n    activeFontSize = fontState.size;\n    textColor = fontState.color;\n\n    activeGState = null;\n\n    return this;\n  };\n\n  /**\n   * Appends this matrix to the left of all previously applied matrices.\n   *\n   * @param {Matrix} matrix\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name setCurrentTransformationMatrix\n   */\n  API.setCurrentTransformationMatrix = function(matrix) {\n    out(matrix.toString() + \" cm\");\n    return this;\n  };\n\n  /**\n   * Inserts a debug comment into the generated pdf.\n   * @function\n   * @instance\n   * @param {String} text\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name comment\n   */\n  API.comment = function(text) {\n    out(\"#\" + text);\n    return this;\n  };\n\n  /**\n   * Point\n   */\n  var Point = function(x, y) {\n    var _x = x || 0;\n    Object.defineProperty(this, \"x\", {\n      enumerable: true,\n      get: function() {\n        return _x;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          _x = parseFloat(value);\n        }\n      }\n    });\n\n    var _y = y || 0;\n    Object.defineProperty(this, \"y\", {\n      enumerable: true,\n      get: function() {\n        return _y;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          _y = parseFloat(value);\n        }\n      }\n    });\n\n    var _type = \"pt\";\n    Object.defineProperty(this, \"type\", {\n      enumerable: true,\n      get: function() {\n        return _type;\n      },\n      set: function(value) {\n        _type = value.toString();\n      }\n    });\n    return this;\n  };\n\n  /**\n   * Rectangle\n   */\n  var Rectangle = function(x, y, w, h) {\n    Point.call(this, x, y);\n    this.type = \"rect\";\n\n    var _w = w || 0;\n    Object.defineProperty(this, \"w\", {\n      enumerable: true,\n      get: function() {\n        return _w;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          _w = parseFloat(value);\n        }\n      }\n    });\n\n    var _h = h || 0;\n    Object.defineProperty(this, \"h\", {\n      enumerable: true,\n      get: function() {\n        return _h;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          _h = parseFloat(value);\n        }\n      }\n    });\n\n    return this;\n  };\n\n  /**\n   * FormObject/RenderTarget\n   */\n\n  var RenderTarget = function() {\n    this.page = page;\n    this.currentPage = currentPage;\n    this.pages = pages.slice(0);\n    this.pagesContext = pagesContext.slice(0);\n    this.x = pageX;\n    this.y = pageY;\n    this.matrix = pageMatrix;\n    this.width = getPageWidth(currentPage);\n    this.height = getPageHeight(currentPage);\n    this.outputDestination = outputDestination;\n\n    this.id = \"\"; // set by endFormObject()\n    this.objectNumber = -1; // will be set by putXObject()\n  };\n\n  RenderTarget.prototype.restore = function() {\n    page = this.page;\n    currentPage = this.currentPage;\n    pagesContext = this.pagesContext;\n    pages = this.pages;\n    pageX = this.x;\n    pageY = this.y;\n    pageMatrix = this.matrix;\n    setPageWidth(currentPage, this.width);\n    setPageHeight(currentPage, this.height);\n    outputDestination = this.outputDestination;\n  };\n\n  var beginNewRenderTarget = function(x, y, width, height, matrix) {\n    // save current state\n    renderTargetStack.push(new RenderTarget());\n\n    // clear pages\n    page = currentPage = 0;\n    pages = [];\n    pageX = x;\n    pageY = y;\n\n    pageMatrix = matrix;\n\n    beginPage([width, height]);\n  };\n\n  var endFormObject = function(key) {\n    // only add it if it is not already present (the keys provided by the user must be unique!)\n    if (renderTargetMap[key]) return;\n\n    // save the created xObject\n    var newXObject = new RenderTarget();\n\n    var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\n    newXObject.id = xObjectId;\n\n    renderTargetMap[key] = xObjectId;\n    renderTargets[xObjectId] = newXObject;\n\n    events.publish(\"addFormObject\", newXObject);\n\n    // restore state from stack\n    renderTargetStack.pop().restore();\n  };\n\n  /**\n   * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\n   * until {@link endFormObject} is called. The created object can be referenced and drawn later using\n   * {@link doFormObject}. Nested form objects are possible.\n   * x, y, width, height set the bounding box that is used to clip the content.\n   *\n   * @param {number} x\n   * @param {number} y\n   * @param {number} width\n   * @param {number} height\n   * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\n   * the parent's.\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name beginFormObject\n   */\n  API.beginFormObject = function(x, y, width, height, matrix) {\n    // The user can set the output target to a new form object. Nested form objects are possible.\n    // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\n    // the PDF-Spec states:\n    // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\n    // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\n    // form XObjects may be independent of the content streams in which they appear, and this is strongly\n    // recommended although not required\"\n    beginNewRenderTarget(x, y, width, height, matrix);\n    return this;\n  };\n\n  /**\n   * Completes and saves the form object.\n   * @param {String} key The key by which this form object can be referenced.\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name endFormObject\n   */\n  API.endFormObject = function(key) {\n    endFormObject(key);\n    return this;\n  };\n\n  /**\n   * Draws the specified form object by referencing to the respective pdf XObject created with\n   * {@link API.beginFormObject} and {@link endFormObject}.\n   * The location is determined by matrix.\n   *\n   * @param {String} key The key to the form object.\n   * @param {Matrix} matrix The matrix applied before drawing the form object.\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name doFormObject\n   */\n  API.doFormObject = function(key, matrix) {\n    var xObject = renderTargets[renderTargetMap[key]];\n    out(\"q\");\n    out(matrix.toString() + \" cm\");\n    out(\"/\" + xObject.id + \" Do\");\n    out(\"Q\");\n    return this;\n  };\n\n  /**\n   * Returns the form object specified by key.\n   * @param key {String}\n   * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\n   * @function\n   * @returns {jsPDF}\n   * @memberof jsPDF#\n   * @name getFormObject\n   */\n  API.getFormObject = function(key) {\n    var xObject = renderTargets[renderTargetMap[key]];\n    return {\n      x: xObject.x,\n      y: xObject.y,\n      width: xObject.width,\n      height: xObject.height,\n      matrix: xObject.matrix\n    };\n  };\n\n  /**\n   * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\n   * Uses FileSaver.js-method saveAs.\n   *\n   * @memberof jsPDF#\n   * @name save\n   * @function\n   * @instance\n   * @param  {string} filename The filename including extension.\n   * @param  {Object} options An Object with additional options, possible options: 'returnPromise'.\n   * @returns {jsPDF|Promise} jsPDF-instance     */\n  API.save = function(filename, options) {\n    filename = filename || \"generated.pdf\";\n\n    options = options || {};\n    options.returnPromise = options.returnPromise || false;\n\n    if (options.returnPromise === false) {\n      saveAs(getBlob(buildDocument()), filename);\n      if (typeof saveAs.unload === \"function\") {\n        if (globalObject.setTimeout) {\n          setTimeout(saveAs.unload, 911);\n        }\n      }\n      return this;\n    } else {\n      return new Promise(function(resolve, reject) {\n        try {\n          var result = saveAs(getBlob(buildDocument()), filename);\n          if (typeof saveAs.unload === \"function\") {\n            if (globalObject.setTimeout) {\n              setTimeout(saveAs.unload, 911);\n            }\n          }\n          resolve(result);\n        } catch (e) {\n          reject(e.message);\n        }\n      });\n    }\n\n  };\n\n  // applying plugins (more methods) ON TOP of built-in API.\n  // this is intentional as we allow plugins to override\n  // built-ins\n  for (var plugin in jsPDF.API) {\n    if (jsPDF.API.hasOwnProperty(plugin)) {\n      if (plugin === \"events\" && jsPDF.API.events.length) {\n        (function(events, newEvents) {\n          // jsPDF.API.events is a JS Array of Arrays\n          // where each Array is a pair of event name, handler\n          // Events were added by plugins to the jsPDF instantiator.\n          // These are always added to the new instance and some ran\n          // during instantiation.\n          var eventname, handler_and_args, i;\n\n          for (i = newEvents.length - 1; i !== -1; i--) {\n            // subscribe takes 3 args: 'topic', function, runonce_flag\n            // if undefined, runonce is false.\n            // users can attach callback directly,\n            // or they can attach an array with [callback, runonce_flag]\n            // that's what the \"apply\" magic is for below.\n            eventname = newEvents[i][0];\n            handler_and_args = newEvents[i][1];\n            events.subscribe.apply(\n              events,\n              [eventname].concat(\n                typeof handler_and_args === \"function\"\n                  ? [handler_and_args]\n                  : handler_and_args\n              )\n            );\n          }\n        })(events, jsPDF.API.events);\n      } else {\n        API[plugin] = jsPDF.API[plugin];\n      }\n    }\n  }\n\n  var getPageWidth = (API.getPageWidth = function(pageNumber) {\n    pageNumber = pageNumber || currentPage;\n    return (\n      (pagesContext[pageNumber].mediaBox.topRightX -\n        pagesContext[pageNumber].mediaBox.bottomLeftX) /\n      scaleFactor\n    );\n  });\n\n  var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\n    pagesContext[pageNumber].mediaBox.topRightX =\n      value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\n  });\n\n  var getPageHeight = (API.getPageHeight = function(pageNumber) {\n    pageNumber = pageNumber || currentPage;\n    return (\n      (pagesContext[pageNumber].mediaBox.topRightY -\n        pagesContext[pageNumber].mediaBox.bottomLeftY) /\n      scaleFactor\n    );\n  });\n\n  var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\n    pagesContext[pageNumber].mediaBox.topRightY =\n      value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\n  });\n\n  /**\n   * Object exposing internal API to plugins\n   * @public\n   * @ignore\n   */\n  API.internal = {\n    pdfEscape: pdfEscape,\n    getStyle: getStyle,\n    getFont: getFontEntry,\n    getFontSize: getFontSize,\n    getCharSpace: getCharSpace,\n    getTextColor: getTextColor,\n    getLineHeight: getLineHeight,\n    getLineHeightFactor: getLineHeightFactor,\n    write: write,\n    getHorizontalCoordinate: getHorizontalCoordinate,\n    getVerticalCoordinate: getVerticalCoordinate,\n    getCoordinateString: getHorizontalCoordinateString,\n    getVerticalCoordinateString: getVerticalCoordinateString,\n    collections: {},\n    newObject: newObject,\n    newAdditionalObject: newAdditionalObject,\n    newObjectDeferred: newObjectDeferred,\n    newObjectDeferredBegin: newObjectDeferredBegin,\n    getFilters: getFilters,\n    putStream: putStream,\n    events: events,\n    scaleFactor: scaleFactor,\n    pageSize: {\n      getWidth: function() {\n        return getPageWidth(currentPage);\n      },\n      setWidth: function(value) {\n        setPageWidth(currentPage, value);\n      },\n      getHeight: function() {\n        return getPageHeight(currentPage);\n      },\n      setHeight: function(value) {\n        setPageHeight(currentPage, value);\n      }\n    },\n    encryptionOptions: encryptionOptions,\n    encryption: encryption,\n    getEncryptor: getEncryptor,\n    output: output,\n    getNumberOfPages: getNumberOfPages,\n    pages: pages,\n    out: out,\n    f2: f2,\n    f3: f3,\n    getPageInfo: getPageInfo,\n    getPageInfoByObjId: getPageInfoByObjId,\n    getCurrentPageInfo: getCurrentPageInfo,\n    getPDFVersion: getPdfVersion,\n    Point: Point,\n    Rectangle: Rectangle,\n    Matrix: Matrix,\n    hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\n  };\n\n  Object.defineProperty(API.internal.pageSize, \"width\", {\n    get: function() {\n      return getPageWidth(currentPage);\n    },\n    set: function(value) {\n      setPageWidth(currentPage, value);\n    },\n    enumerable: true,\n    configurable: true\n  });\n  Object.defineProperty(API.internal.pageSize, \"height\", {\n    get: function() {\n      return getPageHeight(currentPage);\n    },\n    set: function(value) {\n      setPageHeight(currentPage, value);\n    },\n    enumerable: true,\n    configurable: true\n  });\n\n  //////////////////////////////////////////////////////\n  // continuing initialization of jsPDF Document object\n  //////////////////////////////////////////////////////\n  // Add the first page automatically\n  addFonts.call(API, standardFonts);\n  activeFontKey = \"F1\";\n  _addPage(format, orientation);\n\n  events.publish(\"initialized\");\n  return API;\n}\n\n/**\n * jsPDF.API is a STATIC property of jsPDF class.\n * jsPDF.API is an object you can add methods and properties to.\n * The methods / properties you add will show up in new jsPDF objects.\n *\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\n *\n * @static\n * @public\n * @memberof jsPDF#\n * @name API\n *\n * @example\n * jsPDF.API.mymethod = function(){\n *   // 'this' will be ref to internal API object. see jsPDF source\n *   // , so you can refer to built-in methods like so:\n *   //     this.line(....)\n *   //     this.text(....)\n * }\n * var pdfdoc = new jsPDF()\n * pdfdoc.mymethod() // <- !!!!!!\n */\njsPDF.API = {\n  events: []\n};\n/**\n * The version of jsPDF.\n * @name version\n * @type {string}\n * @memberof jsPDF#\n */\njsPDF.version = \"0.0.0\";\n\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\nexport default jsPDF;\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n  return value\n    .replace(/\\\\/g, \"\\\\\\\\\")\n    .replace(/\\(/g, \"\\\\(\")\n    .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n  return value\n    .replace(/\\\\\\\\/g, \"\\\\\")\n    .replace(/\\\\\\(/g, \"(\")\n    .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n  return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n  return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n  child.prototype = Object.create(parent.prototype);\n  child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n  return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n  var xobj = new AcroFormXObject();\n  var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n  var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n  xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n  return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n  number = number || 0;\n  bitPosition = bitPosition || 0;\n\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n    );\n  }\n  var bitMask = 1 << bitPosition;\n\n  number |= bitMask;\n\n  return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n  number = number || 0;\n  bitPosition = bitPosition || 0;\n\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n    );\n  }\n  var bitMask = 1 << bitPosition;\n\n  number &= ~bitMask;\n\n  return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n    );\n  }\n  return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n  number,\n  bitPosition\n) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n    );\n  }\n  return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n  number,\n  bitPosition\n) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n    );\n  }\n  return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n  number,\n  bitPosition\n) {\n  if (isNaN(number) || isNaN(bitPosition)) {\n    throw new Error(\n      \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n    );\n  }\n  return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n  args,\n  scope\n) {\n  var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n  var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n  var x = args[0];\n  var y = args[1];\n  var w = args[2];\n  var h = args[3];\n\n  var coordinates = {};\n\n  coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n  coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n  coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n  coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n  return [\n    Number(f2(coordinates.lowerLeft_X)),\n    Number(f2(coordinates.lowerLeft_Y)),\n    Number(f2(coordinates.upperRight_X)),\n    Number(f2(coordinates.upperRight_Y))\n  ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n  if (formObject.appearanceStreamContent) {\n    return formObject.appearanceStreamContent;\n  }\n\n  if (!formObject.V && !formObject.DV) {\n    return;\n  }\n\n  // else calculate it\n\n  var stream = [];\n  var text = formObject._V || formObject.DV;\n  var calcRes = calculateX(formObject, text);\n  var fontKey = formObject.scope.internal.getFont(\n    formObject.fontName,\n    formObject.fontStyle\n  ).id;\n\n  //PDF 32000-1:2008, page 444\n  stream.push(\"/Tx BMC\");\n  stream.push(\"q\");\n  stream.push(\"BT\"); // Begin Text\n  stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n  stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n  stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n  stream.push(calcRes.text);\n  stream.push(\"ET\"); // End Text\n  stream.push(\"Q\");\n  stream.push(\"EMC\");\n\n  var appearanceStreamContent = createFormXObject(formObject);\n  appearanceStreamContent.scope = formObject.scope;\n  appearanceStreamContent.stream = stream.join(\"\\n\");\n  return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n  var maxFontSize =\n    formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n  var returnValue = {\n    text: \"\",\n    fontSize: \"\"\n  };\n  // Remove Brackets\n  text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n  text =\n    text.substr(text.length - 1) == \")\"\n      ? text.substr(0, text.length - 1)\n      : text;\n  // split into array of words\n  var textSplit = text.split(\" \");\n\n  var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n  var lineSpacing = 2;\n  var borderPadding = 2;\n\n  var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n  height = height < 0 ? -height : height;\n  var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n  width = width < 0 ? -width : width;\n\n  var isSmallerThanWidth = function(i, lastLine, fontSize) {\n    if (i + 1 < textSplit.length) {\n      var tmp = lastLine + \" \" + textSplit[i + 1];\n      var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n      var FieldWidth = width - 2 * borderPadding;\n      return TextWidth <= FieldWidth;\n    } else {\n      return false;\n    }\n  };\n\n  fontSize++;\n  FontSize: while (fontSize > 0) {\n    text = \"\";\n    fontSize--;\n    var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n    var startY = formObject.multiline\n      ? height - fontSize\n      : (height - textHeight) / 2;\n    startY += lineSpacing;\n    var startX;\n\n    var lastY = startY;\n    var firstWordInLine = 0,\n      lastWordInLine = 0;\n    var lastLength;\n\n    if (fontSize <= 0) {\n      // In case, the Text doesn't fit at all\n      fontSize = 12;\n      text = \"(...) Tj\\n\";\n      text +=\n        \"% Width of Text: \" +\n        calculateFontSpace(text, formObject, fontSize).width +\n        \", FieldWidth:\" +\n        width +\n        \"\\n\";\n      break;\n    }\n\n    var lastLine = \"\";\n    var lineCount = 0;\n    Line: for (var i in textSplit) {\n      if (textSplit.hasOwnProperty(i)) {\n        lastLine += textSplit[i] + \" \";\n        // Remove last blank\n        lastLine =\n          lastLine.substr(lastLine.length - 1) == \" \"\n            ? lastLine.substr(0, lastLine.length - 1)\n            : lastLine;\n        var key = parseInt(i);\n        var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n        var isLastWord = i >= textSplit.length - 1;\n        if (nextLineIsSmaller && !isLastWord) {\n          lastLine += \" \";\n          continue; // Line\n        } else if (!nextLineIsSmaller && !isLastWord) {\n          if (!formObject.multiline) {\n            continue FontSize;\n          } else {\n            if (\n              (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n              height\n            ) {\n              // If the Text is higher than the\n              // FieldObject\n              continue FontSize;\n            }\n            lastWordInLine = key;\n            // go on\n          }\n        } else if (isLastWord) {\n          lastWordInLine = key;\n        } else {\n          if (\n            formObject.multiline &&\n            (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing > height\n          ) {\n            // If the Text is higher than the FieldObject\n            continue FontSize;\n          }\n        }\n\n        var line = \"\";\n\n        for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n          line += textSplit[x] + \" \";\n        }\n\n        // Remove last blank\n        line =\n          line.substr(line.length - 1) == \" \"\n            ? line.substr(0, line.length - 1)\n            : line;\n        // lastLength -= blankSpace.width;\n        lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n        // Calculate startX\n        switch (formObject.textAlign) {\n          case \"right\":\n            startX = width - lastLength - borderPadding;\n            break;\n          case \"center\":\n            startX = (width - lastLength) / 2;\n            break;\n          case \"left\":\n          default:\n            startX = borderPadding;\n            break;\n        }\n        text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n        text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n        // reset X in PDF\n        text += -f2(startX) + \" 0 Td\\n\";\n\n        // After a Line, adjust y position\n        lastY = -(fontSize + lineSpacing);\n\n        // Reset for next iteration step\n        lastLength = 0;\n        firstWordInLine = lastWordInLine + 1;\n        lineCount++;\n\n        lastLine = \"\";\n        continue Line;\n      }\n    }\n    break;\n  }\n\n  returnValue.text = text;\n  returnValue.fontSize = fontSize;\n\n  return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n  var font = formObject.scope.internal.getFont(\n    formObject.fontName,\n    formObject.fontStyle\n  );\n  var width =\n    formObject.scope.getStringUnitWidth(text, {\n      font: font,\n      fontSize: parseFloat(fontSize),\n      charSpace: 0\n    }) * parseFloat(fontSize);\n  var height =\n    formObject.scope.getStringUnitWidth(\"3\", {\n      font: font,\n      fontSize: parseFloat(fontSize),\n      charSpace: 0\n    }) *\n    parseFloat(fontSize) *\n    1.5;\n  return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n  fields: [],\n  xForms: [],\n  /**\n   * acroFormDictionaryRoot contains information about the AcroForm\n   * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n   * 1: The Object ID of the Root\n   */\n  acroFormDictionaryRoot: null,\n  /**\n   * After the PDF gets evaluated, the reference to the root has to be\n   * reset, this indicates, whether the root has already been printed\n   * out\n   */\n  printedOut: false,\n  internal: null,\n  isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n  //set objId to undefined and force it to get a new objId on buildDocument\n  scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n  var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n  for (var i in fields) {\n    if (fields.hasOwnProperty(i)) {\n      var formObject = fields[i];\n      //set objId to undefined and force it to get a new objId on buildDocument\n      formObject.objId = undefined;\n      // add Annot Reference!\n      if (formObject.hasAnnotation) {\n        // If theres an Annotation Widget in the Form Object, put the\n        // Reference in the /Annot array\n        createAnnotationReference(formObject, scope);\n      }\n    }\n  }\n};\n\nvar putForm = function(formObject) {\n  if (formObject.scope.internal.acroformPlugin.printedOut) {\n    formObject.scope.internal.acroformPlugin.printedOut = false;\n    formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n  }\n  formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n    formObject\n  );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n  var options = {\n    type: \"reference\",\n    object: object\n  };\n  var findEntry = function(entry) {\n    return entry.type === options.type && entry.object === options.object;\n  };\n  if (\n    scope.internal\n      .getPageInfo(object.page)\n      .pageContext.annotations.find(findEntry) === undefined\n  ) {\n    scope.internal\n      .getPageInfo(object.page)\n      .pageContext.annotations.push(options);\n  }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n  // Put reference to AcroForm to DocumentCatalog\n  if (\n    typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n  ) {\n    // for safety, shouldn't normally be the case\n    scope.internal.write(\n      \"/AcroForm \" +\n        scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n        \" \" +\n        0 +\n        \" R\"\n    );\n  } else {\n    throw new Error(\"putCatalogCallback: Root missing.\");\n  }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n  // Remove event\n  scope.internal.events.unsubscribe(\n    scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n  );\n  delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n  scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n  var standardFields = !fieldArray;\n\n  if (!fieldArray) {\n    // in case there is no fieldArray specified, we want to print out\n    // the Fields of the AcroForm\n    // Print out Root\n    scope.internal.newObjectDeferredBegin(\n      scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n      true\n    );\n    scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n  }\n\n  fieldArray =\n    fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n  for (var i in fieldArray) {\n    if (fieldArray.hasOwnProperty(i)) {\n      var fieldObject = fieldArray[i];\n      var keyValueList = [];\n      var oldRect = fieldObject.Rect;\n\n      if (fieldObject.Rect) {\n        fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n      }\n\n      // Start Writing the Object\n      scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n      fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n        fieldObject\n      );\n\n      if (\n        typeof fieldObject === \"object\" &&\n        typeof fieldObject.getKeyValueListForStream === \"function\"\n      ) {\n        keyValueList = fieldObject.getKeyValueListForStream();\n      }\n\n      fieldObject.Rect = oldRect;\n\n      if (\n        fieldObject.hasAppearanceStream &&\n        !fieldObject.appearanceStreamContent\n      ) {\n        // Calculate Appearance\n        var appearance = calculateAppearanceStream(fieldObject);\n        keyValueList.push({ key: \"AP\", value: \"<</N \" + appearance + \">>\" });\n\n        scope.internal.acroformPlugin.xForms.push(appearance);\n      }\n\n      // Assume AppearanceStreamContent is a Array with N,R,D (at least\n      // one of them!)\n      if (fieldObject.appearanceStreamContent) {\n        var appearanceStreamString = \"\";\n        // Iterate over N,R and D\n        for (var k in fieldObject.appearanceStreamContent) {\n          if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n            var value = fieldObject.appearanceStreamContent[k];\n            appearanceStreamString += \"/\" + k + \" \";\n            appearanceStreamString += \"<<\";\n            if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n              // appearanceStream is an Array or Object!\n              for (var i in value) {\n                if (value.hasOwnProperty(i)) {\n                  var obj = value[i];\n                  if (typeof obj === \"function\") {\n                    // if Function is referenced, call it in order\n                    // to get the FormXObject\n                    obj = obj.call(scope, fieldObject);\n                  }\n                  appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n                  // In case the XForm is already used, e.g. OffState\n                  // of CheckBoxes, don't add it\n                  if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n                    scope.internal.acroformPlugin.xForms.push(obj);\n                }\n              }\n            } else {\n              obj = value;\n              if (typeof obj === \"function\") {\n                // if Function is referenced, call it in order to\n                // get the FormXObject\n                obj = obj.call(scope, fieldObject);\n              }\n              appearanceStreamString += \"/\" + i + \" \" + obj;\n              if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n                scope.internal.acroformPlugin.xForms.push(obj);\n            }\n            appearanceStreamString += \">>\";\n          }\n        }\n\n        // appearance stream is a normal Object..\n        keyValueList.push({\n          key: \"AP\",\n          value: \"<<\\n\" + appearanceStreamString + \">>\"\n        });\n      }\n\n      scope.internal.putStream({\n        additionalKeyValues: keyValueList,\n        objectId: fieldObject.objId\n      });\n\n      scope.internal.out(\"endobj\");\n    }\n  }\n  if (standardFields) {\n    createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n  }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n  for (var i in fieldArray) {\n    if (fieldArray.hasOwnProperty(i)) {\n      var key = i;\n      var fieldObject = fieldArray[i];\n      // Start Writing the Object\n      scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n      if (\n        typeof fieldObject === \"object\" &&\n        typeof fieldObject.putStream === \"function\"\n      ) {\n        fieldObject.putStream();\n      }\n      delete fieldArray[key];\n    }\n  }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n  formObject.scope = scope;\n  if (\n    scope.internal !== undefined &&\n    (scope.internal.acroformPlugin === undefined ||\n      scope.internal.acroformPlugin.isInitialized === false)\n  ) {\n    AcroFormField.FieldNum = 0;\n    scope.internal.acroformPlugin = JSON.parse(\n      JSON.stringify(acroformPluginTemplate)\n    );\n    if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n      throw new Error(\"Exception while creating AcroformDictionary\");\n    }\n    scaleFactor = scope.internal.scaleFactor;\n    // The Object Number of the AcroForm Dictionary\n    scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n    scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n    // add Callback for creating the AcroForm Dictionary\n    scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n      \"postPutResources\",\n      function() {\n        AcroFormDictionaryCallback(scope);\n      }\n    );\n\n    scope.internal.events.subscribe(\"buildDocument\", function() {\n      annotReferenceCallback(scope);\n    }); // buildDocument\n\n    // Register event, that is triggered when the DocumentCatalog is\n    // written, in order to add /AcroForm\n\n    scope.internal.events.subscribe(\"putCatalog\", function() {\n      putCatalogCallback(scope);\n    });\n\n    // Register event, that creates all Fields\n    scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n      createFieldCallback(fieldArray, scope);\n    });\n\n    scope.internal.acroformPlugin.isInitialized = true;\n  }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n  array,\n  objId,\n  scope\n) {\n  var encryptor = function(data) {\n    return data;\n  };\n  if (Array.isArray(array)) {\n    var content = \"[\";\n    for (var i = 0; i < array.length; i++) {\n      if (i !== 0) {\n        content += \" \";\n      }\n      switch (typeof array[i]) {\n        case \"boolean\":\n        case \"number\":\n        case \"object\":\n          content += array[i].toString();\n          break;\n        case \"string\":\n          if (array[i].substr(0, 1) !== \"/\") {\n            if (typeof objId !== \"undefined\" && scope)\n              encryptor = scope.internal.getEncryptor(objId);\n            content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n          } else {\n            content += array[i].toString();\n          }\n          break;\n      }\n    }\n    content += \"]\";\n    return content;\n  }\n  throw new Error(\n    \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n  );\n});\nfunction getMatches(string, regex, index) {\n  index || (index = 1); // default to the first capturing group\n  var matches = [];\n  var match;\n  while ((match = regex.exec(string))) {\n    matches.push(match[index]);\n  }\n  return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n  var result = [];\n  if (typeof array === \"string\") {\n    result = getMatches(array, /\\((.*?)\\)/g);\n  }\n  return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n  var encryptor = function(data) {\n    return data;\n  };\n  if (typeof objId !== \"undefined\" && scope)\n    encryptor = scope.internal.getEncryptor(objId);\n  string = string || \"\";\n  string.toString();\n  string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n  return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n  this._objId = undefined;\n  this._scope = undefined;\n\n  /**\n   * @name AcroFormPDFObject#objId\n   * @type {any}\n   */\n  Object.defineProperty(this, \"objId\", {\n    get: function() {\n      if (typeof this._objId === \"undefined\") {\n        if (typeof this.scope === \"undefined\") {\n          return undefined;\n        }\n        this._objId = this.scope.internal.newObjectDeferred();\n      }\n      return this._objId;\n    },\n    set: function(value) {\n      this._objId = value;\n    }\n  });\n  Object.defineProperty(this, \"scope\", {\n    value: this._scope,\n    writable: true\n  });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n  return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n  var keyValueList = this.getKeyValueListForStream();\n  this.scope.internal.putStream({\n    data: this.stream,\n    additionalKeyValues: keyValueList,\n    objectId: this.objId\n  });\n  this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n  var keyValueList = [];\n  var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n    return (\n      key != \"content\" &&\n      key != \"appearanceStreamContent\" &&\n      key != \"scope\" &&\n      key != \"objId\" &&\n      key.substring(0, 1) != \"_\"\n    );\n  });\n\n  for (var i in keys) {\n    if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n      var key = keys[i];\n      var value = this[key];\n\n      if (value) {\n        if (Array.isArray(value)) {\n          keyValueList.push({\n            key: key,\n            value: arrayToPdfArray(value, this.objId, this.scope)\n          });\n        } else if (value instanceof AcroFormPDFObject) {\n          // In case it is a reference to another PDFObject,\n          // take the reference number\n          value.scope = this.scope;\n          keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n        } else if (typeof value !== \"function\") {\n          keyValueList.push({ key: key, value: value });\n        }\n      }\n    }\n  }\n  return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n  AcroFormPDFObject.call(this);\n\n  Object.defineProperty(this, \"Type\", {\n    value: \"/XObject\",\n    configurable: false,\n    writable: true\n  });\n\n  Object.defineProperty(this, \"Subtype\", {\n    value: \"/Form\",\n    configurable: false,\n    writable: true\n  });\n\n  Object.defineProperty(this, \"FormType\", {\n    value: 1,\n    configurable: false,\n    writable: true\n  });\n\n  var _BBox = [];\n  Object.defineProperty(this, \"BBox\", {\n    configurable: false,\n    get: function() {\n      return _BBox;\n    },\n    set: function(value) {\n      _BBox = value;\n    }\n  });\n\n  Object.defineProperty(this, \"Resources\", {\n    value: \"2 0 R\",\n    configurable: false,\n    writable: true\n  });\n\n  var _stream;\n  Object.defineProperty(this, \"stream\", {\n    enumerable: false,\n    configurable: true,\n    set: function(value) {\n      _stream = value.trim();\n    },\n    get: function() {\n      if (_stream) {\n        return _stream;\n      } else {\n        return null;\n      }\n    }\n  });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n  AcroFormPDFObject.call(this);\n\n  var _Kids = [];\n\n  Object.defineProperty(this, \"Kids\", {\n    enumerable: false,\n    configurable: true,\n    get: function() {\n      if (_Kids.length > 0) {\n        return _Kids;\n      } else {\n        return undefined;\n      }\n    }\n  });\n  Object.defineProperty(this, \"Fields\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _Kids;\n    }\n  });\n\n  // Default Appearance\n  var _DA;\n  Object.defineProperty(this, \"DA\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_DA) {\n        return undefined;\n      }\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n    },\n    set: function(value) {\n      _DA = value;\n    }\n  });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n  AcroFormPDFObject.call(this);\n\n  //Annotation-Flag See Table 165\n  var _F = 4;\n  Object.defineProperty(this, \"F\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _F;\n    },\n    set: function(value) {\n      if (!isNaN(value)) {\n        _F = value;\n      } else {\n        throw new Error(\n          'Invalid value \"' + value + '\" for attribute F supplied.'\n        );\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n   * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n   *\n   * @name AcroFormField#showWhenPrinted\n   * @default true\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"showWhenPrinted\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(_F, 3));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.F = setBitForPdf(_F, 3);\n      } else {\n        this.F = clearBitForPdf(_F, 3);\n      }\n    }\n  });\n\n  var _Ff = 0;\n  Object.defineProperty(this, \"Ff\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _Ff;\n    },\n    set: function(value) {\n      if (!isNaN(value)) {\n        _Ff = value;\n      } else {\n        throw new Error(\n          'Invalid value \"' + value + '\" for attribute Ff supplied.'\n        );\n      }\n    }\n  });\n\n  var _Rect = [];\n  Object.defineProperty(this, \"Rect\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (_Rect.length === 0) {\n        return undefined;\n      }\n      return _Rect;\n    },\n    set: function(value) {\n      if (typeof value !== \"undefined\") {\n        _Rect = value;\n      } else {\n        _Rect = [];\n      }\n    }\n  });\n\n  /**\n   * The x-position of the field.\n   *\n   * @name AcroFormField#x\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"x\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[0])) {\n        return 0;\n      }\n      return _Rect[0];\n    },\n    set: function(value) {\n      _Rect[0] = value;\n    }\n  });\n\n  /**\n   * The y-position of the field.\n   *\n   * @name AcroFormField#y\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"y\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[1])) {\n        return 0;\n      }\n      return _Rect[1];\n    },\n    set: function(value) {\n      _Rect[1] = value;\n    }\n  });\n\n  /**\n   * The width of the field.\n   *\n   * @name AcroFormField#width\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"width\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[2])) {\n        return 0;\n      }\n      return _Rect[2];\n    },\n    set: function(value) {\n      _Rect[2] = value;\n    }\n  });\n\n  /**\n   * The height of the field.\n   *\n   * @name AcroFormField#height\n   * @default null\n   * @type {number}\n   */\n  Object.defineProperty(this, \"height\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_Rect || isNaN(_Rect[3])) {\n        return 0;\n      }\n      return _Rect[3];\n    },\n    set: function(value) {\n      _Rect[3] = value;\n    }\n  });\n\n  var _FT = \"\";\n  Object.defineProperty(this, \"FT\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _FT;\n    },\n    set: function(value) {\n      switch (value) {\n        case \"/Btn\":\n        case \"/Tx\":\n        case \"/Ch\":\n        case \"/Sig\":\n          _FT = value;\n          break;\n        default:\n          throw new Error(\n            'Invalid value \"' + value + '\" for attribute FT supplied.'\n          );\n      }\n    }\n  });\n\n  var _T = null;\n\n  Object.defineProperty(this, \"T\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      if (!_T || _T.length < 1) {\n        // In case of a Child from a Radio´Group, you don't need a FieldName\n        if (this instanceof AcroFormChildClass) {\n          return undefined;\n        }\n        _T = \"FieldObject\" + AcroFormField.FieldNum++;\n      }\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n    },\n    set: function(value) {\n      _T = value.toString();\n    }\n  });\n\n  /**\n   * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n   *\n   * @name AcroFormField#fieldName\n   * @default null\n   * @type {string}\n   */\n  Object.defineProperty(this, \"fieldName\", {\n    configurable: true,\n    enumerable: true,\n    get: function() {\n      return _T;\n    },\n    set: function(value) {\n      _T = value;\n    }\n  });\n\n  var _fontName = \"helvetica\";\n  /**\n   * The fontName of the font to be used.\n   *\n   * @name AcroFormField#fontName\n   * @default 'helvetica'\n   * @type {string}\n   */\n  Object.defineProperty(this, \"fontName\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _fontName;\n    },\n    set: function(value) {\n      _fontName = value;\n    }\n  });\n\n  var _fontStyle = \"normal\";\n  /**\n   * The fontStyle of the font to be used.\n   *\n   * @name AcroFormField#fontStyle\n   * @default 'normal'\n   * @type {string}\n   */\n  Object.defineProperty(this, \"fontStyle\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _fontStyle;\n    },\n    set: function(value) {\n      _fontStyle = value;\n    }\n  });\n\n  var _fontSize = 0;\n  /**\n   * The fontSize of the font to be used.\n   *\n   * @name AcroFormField#fontSize\n   * @default 0 (for auto)\n   * @type {number}\n   */\n  Object.defineProperty(this, \"fontSize\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _fontSize;\n    },\n    set: function(value) {\n      _fontSize = value;\n    }\n  });\n\n  var _maxFontSize = undefined;\n  /**\n   * The maximum fontSize of the font to be used.\n   *\n   * @name AcroFormField#maxFontSize\n   * @default 0 (for auto)\n   * @type {number}\n   */\n  Object.defineProperty(this, \"maxFontSize\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (_maxFontSize === undefined) {\n        // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n        // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n        return 50 / scaleFactor;\n      } else {\n        return _maxFontSize;\n      }\n    },\n    set: function(value) {\n      _maxFontSize = value;\n    }\n  });\n\n  var _color = \"black\";\n  /**\n   * The color of the text\n   *\n   * @name AcroFormField#color\n   * @default 'black'\n   * @type {string|rgba}\n   */\n  Object.defineProperty(this, \"color\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _color;\n    },\n    set: function(value) {\n      _color = value;\n    }\n  });\n\n  var _DA = \"/F1 0 Tf 0 g\";\n  // Defines the default appearance (Needed for variable Text)\n  Object.defineProperty(this, \"DA\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      if (\n        !_DA ||\n        this instanceof AcroFormChildClass ||\n        this instanceof AcroFormTextField\n      ) {\n        return undefined;\n      }\n      return toPdfString(_DA, this.objId, this.scope);\n    },\n    set: function(value) {\n      value = value.toString();\n      _DA = value;\n    }\n  });\n\n  var _DV = null;\n  Object.defineProperty(this, \"DV\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_DV) {\n        return undefined;\n      }\n      if (this instanceof AcroFormButton === false) {\n        return toPdfString(_DV, this.objId, this.scope);\n      }\n      return _DV;\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === false) {\n        if (value.substr(0, 1) === \"(\") {\n          _DV = pdfUnescape(value.substr(1, value.length - 2));\n        } else {\n          _DV = pdfUnescape(value);\n        }\n      } else {\n        _DV = value;\n      }\n    }\n  });\n\n  /**\n   * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n   *\n   * @name AcroFormField#defaultValue\n   * @default null\n   * @type {any}\n   */\n  Object.defineProperty(this, \"defaultValue\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (this instanceof AcroFormButton === true) {\n        return pdfUnescape(_DV.substr(1, _DV.length - 1));\n      } else {\n        return _DV;\n      }\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === true) {\n        _DV = \"/\" + value;\n      } else {\n        _DV = value;\n      }\n    }\n  });\n\n  var _V = null;\n  Object.defineProperty(this, \"_V\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_V) {\n        return undefined;\n      }\n      return _V;\n    },\n    set: function(value) {\n      this.V = value;\n    }\n  });\n  Object.defineProperty(this, \"V\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      if (!_V) {\n        return undefined;\n      }\n      if (this instanceof AcroFormButton === false) {\n        return toPdfString(_V, this.objId, this.scope);\n      }\n      return _V;\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === false) {\n        if (value.substr(0, 1) === \"(\") {\n          _V = pdfUnescape(value.substr(1, value.length - 2));\n        } else {\n          _V = pdfUnescape(value);\n        }\n      } else {\n        _V = value;\n      }\n    }\n  });\n\n  /**\n   * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n   *\n   * @name AcroFormField#value\n   * @default null\n   * @type {any}\n   */\n  Object.defineProperty(this, \"value\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (this instanceof AcroFormButton === true) {\n        return pdfUnescape(_V.substr(1, _V.length - 1));\n      } else {\n        return _V;\n      }\n    },\n    set: function(value) {\n      value = value.toString();\n      if (this instanceof AcroFormButton === true) {\n        _V = \"/\" + value;\n      } else {\n        _V = value;\n      }\n    }\n  });\n\n  /**\n   * Check if field has annotations\n   *\n   * @name AcroFormField#hasAnnotation\n   * @readonly\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"hasAnnotation\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return this.Rect;\n    }\n  });\n\n  Object.defineProperty(this, \"Type\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return this.hasAnnotation ? \"/Annot\" : null;\n    }\n  });\n\n  Object.defineProperty(this, \"Subtype\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return this.hasAnnotation ? \"/Widget\" : null;\n    }\n  });\n\n  var _hasAppearanceStream = false;\n  /**\n   * true if field has an appearanceStream\n   *\n   * @name AcroFormField#hasAppearanceStream\n   * @readonly\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"hasAppearanceStream\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _hasAppearanceStream;\n    },\n    set: function(value) {\n      value = Boolean(value);\n      _hasAppearanceStream = value;\n    }\n  });\n\n  /**\n   * The page on which the AcroFormField is placed\n   *\n   * @name AcroFormField#page\n   * @type {number}\n   */\n  var _page;\n  Object.defineProperty(this, \"page\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      if (!_page) {\n        return undefined;\n      }\n      return _page;\n    },\n    set: function(value) {\n      _page = value;\n    }\n  });\n\n  /**\n   * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n   *\n   * @name AcroFormField#readOnly\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"readOnly\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 1));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 1);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 1);\n      }\n    }\n  });\n\n  /**\n   * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n   *\n   * @name AcroFormField#required\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"required\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 2));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 2);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 2);\n      }\n    }\n  });\n\n  /**\n   * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n   *\n   * @name AcroFormField#noExport\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"noExport\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 3));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 3);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 3);\n      }\n    }\n  });\n\n  var _Q = null;\n  Object.defineProperty(this, \"Q\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      if (_Q === null) {\n        return undefined;\n      }\n      return _Q;\n    },\n    set: function(value) {\n      if ([0, 1, 2].indexOf(value) !== -1) {\n        _Q = value;\n      } else {\n        throw new Error(\n          'Invalid value \"' + value + '\" for attribute Q supplied.'\n        );\n      }\n    }\n  });\n\n  /**\n   * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n   * 'left', 'center', 'right'\n   *\n   * @name AcroFormField#textAlign\n   * @default 'left'\n   * @type {string}\n   */\n  Object.defineProperty(this, \"textAlign\", {\n    get: function() {\n      var result;\n      switch (_Q) {\n        case 0:\n        default:\n          result = \"left\";\n          break;\n        case 1:\n          result = \"center\";\n          break;\n        case 2:\n          result = \"right\";\n          break;\n      }\n      return result;\n    },\n    configurable: true,\n    enumerable: true,\n    set: function(value) {\n      switch (value) {\n        case \"right\":\n        case 2:\n          _Q = 2;\n          break;\n        case \"center\":\n        case 1:\n          _Q = 1;\n          break;\n        case \"left\":\n        case 0:\n        default:\n          _Q = 0;\n      }\n    }\n  });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n  AcroFormField.call(this);\n  // Field Type = Choice Field\n  this.FT = \"/Ch\";\n  // options\n  this.V = \"()\";\n\n  this.fontName = \"zapfdingbats\";\n  // Top Index\n  var _TI = 0;\n\n  Object.defineProperty(this, \"TI\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _TI;\n    },\n    set: function(value) {\n      _TI = value;\n    }\n  });\n\n  /**\n   * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n   *\n   * @name AcroFormChoiceField#topIndex\n   * @default 0\n   * @type {number}\n   */\n  Object.defineProperty(this, \"topIndex\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _TI;\n    },\n    set: function(value) {\n      _TI = value;\n    }\n  });\n\n  var _Opt = [];\n  Object.defineProperty(this, \"Opt\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return arrayToPdfArray(_Opt, this.objId, this.scope);\n    },\n    set: function(value) {\n      _Opt = pdfArrayToStringArray(value);\n    }\n  });\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name getOptions\n   * @function\n   * @instance\n   * @returns {array} array of Options\n   */\n  this.getOptions = function() {\n    return _Opt;\n  };\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name setOptions\n   * @function\n   * @instance\n   * @param {array} value\n   */\n  this.setOptions = function(value) {\n    _Opt = value;\n    if (this.sort) {\n      _Opt.sort();\n    }\n  };\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name addOption\n   * @function\n   * @instance\n   * @param {string} value\n   */\n  this.addOption = function(value) {\n    value = value || \"\";\n    value = value.toString();\n    _Opt.push(value);\n    if (this.sort) {\n      _Opt.sort();\n    }\n  };\n\n  /**\n   * @memberof AcroFormChoiceField\n   * @name removeOption\n   * @function\n   * @instance\n   * @param {string} value\n   * @param {boolean} allEntries (default: false)\n   */\n  this.removeOption = function(value, allEntries) {\n    allEntries = allEntries || false;\n    value = value || \"\";\n    value = value.toString();\n\n    while (_Opt.indexOf(value) !== -1) {\n      _Opt.splice(_Opt.indexOf(value), 1);\n      if (allEntries === false) {\n        break;\n      }\n    }\n  };\n\n  /**\n   * If set, the field is a combo box; if clear, the field is a list box.\n   *\n   * @name AcroFormChoiceField#combo\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"combo\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 18));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 18);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 18);\n      }\n    }\n  });\n\n  /**\n   * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n   *\n   * @name AcroFormChoiceField#edit\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"edit\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 19));\n    },\n    set: function(value) {\n      //PDF 32000-1:2008, page 444\n      if (this.combo === true) {\n        if (Boolean(value) === true) {\n          this.Ff = setBitForPdf(this.Ff, 19);\n        } else {\n          this.Ff = clearBitForPdf(this.Ff, 19);\n        }\n      }\n    }\n  });\n\n  /**\n   * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n   *\n   * @name AcroFormChoiceField#sort\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"sort\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 20));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 20);\n        _Opt.sort();\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 20);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n   *\n   * @name AcroFormChoiceField#multiSelect\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"multiSelect\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 22));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 22);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 22);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n   *\n   * @name AcroFormChoiceField#doNotSpellCheck\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"doNotSpellCheck\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 23));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 23);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 23);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n   * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n   *\n   * @name AcroFormChoiceField#commitOnSelChange\n   * @default false\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"commitOnSelChange\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 27));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 27);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 27);\n      }\n    }\n  });\n\n  this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n  AcroFormChoiceField.call(this);\n  this.fontName = \"helvetica\";\n\n  //PDF 32000-1:2008, page 444\n  this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n  AcroFormListBox.call(this);\n  this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n  AcroFormComboBox.call(this);\n  this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n  AcroFormField.call(this);\n  this.FT = \"/Btn\";\n\n  /**\n   * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n   *\n   * @name AcroFormButton#noToggleToOff\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"noToggleToOff\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 15));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 15);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 15);\n      }\n    }\n  });\n\n  /**\n   * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n   *\n   * @name AcroFormButton#radio\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"radio\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 16));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 16);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 16);\n      }\n    }\n  });\n\n  /**\n   * If set, the field is a pushbutton that does not retain a permanent value.\n   *\n   * @name AcroFormButton#pushButton\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"pushButton\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 17));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 17);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 17);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n   *\n   * @name AcroFormButton#radioIsUnison\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"radioIsUnison\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 26));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 26);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 26);\n      }\n    }\n  });\n\n  var _MK = {};\n  Object.defineProperty(this, \"MK\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      if (Object.keys(_MK).length !== 0) {\n        var result = [];\n        result.push(\"<<\");\n        var key;\n        for (key in _MK) {\n          result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n        }\n        result.push(\">>\");\n        return result.join(\"\\n\");\n      }\n      return undefined;\n    },\n    set: function(value) {\n      if (typeof value === \"object\") {\n        _MK = value;\n      }\n    }\n  });\n\n  /**\n   * From the PDF reference:\n   * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n   * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n   *\n   * - '8' = Cross,\n   * - 'l' =  Circle,\n   * - '' = nothing\n   * @name AcroFormButton#caption\n   * @type {string}\n   */\n  Object.defineProperty(this, \"caption\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _MK.CA || \"\";\n    },\n    set: function(value) {\n      if (typeof value === \"string\") {\n        _MK.CA = value;\n      }\n    }\n  });\n\n  var _AS;\n  Object.defineProperty(this, \"AS\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _AS;\n    },\n    set: function(value) {\n      _AS = value;\n    }\n  });\n\n  /**\n   * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n   *\n   * @name AcroFormButton#appearanceState\n   * @type {any}\n   */\n  Object.defineProperty(this, \"appearanceState\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _AS.substr(1, _AS.length - 1);\n    },\n    set: function(value) {\n      _AS = \"/\" + value;\n    }\n  });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n  AcroFormButton.call(this);\n  this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n  AcroFormButton.call(this);\n  this.radio = true;\n  this.pushButton = false;\n\n  var _Kids = [];\n  Object.defineProperty(this, \"Kids\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _Kids;\n    },\n    set: function(value) {\n      if (typeof value !== \"undefined\") {\n        _Kids = value;\n      } else {\n        _Kids = [];\n      }\n    }\n  });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n  AcroFormField.call(this);\n\n  var _parent;\n  Object.defineProperty(this, \"Parent\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _parent;\n    },\n    set: function(value) {\n      _parent = value;\n    }\n  });\n\n  var _optionName;\n  Object.defineProperty(this, \"optionName\", {\n    enumerable: false,\n    configurable: true,\n    get: function() {\n      return _optionName;\n    },\n    set: function(value) {\n      _optionName = value;\n    }\n  });\n\n  var _MK = {};\n  Object.defineProperty(this, \"MK\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      var encryptor = function(data) {\n        return data;\n      };\n      if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n      var result = [];\n      result.push(\"<<\");\n      var key;\n      for (key in _MK) {\n        result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n      }\n      result.push(\">>\");\n      return result.join(\"\\n\");\n    },\n    set: function(value) {\n      if (typeof value === \"object\") {\n        _MK = value;\n      }\n    }\n  });\n\n  /**\n   * From the PDF reference:\n   * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n   * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n   *\n   * - '8' = Cross,\n   * - 'l' =  Circle,\n   * - '' = nothing\n   * @name AcroFormButton#caption\n   * @type {string}\n   */\n  Object.defineProperty(this, \"caption\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _MK.CA || \"\";\n    },\n    set: function(value) {\n      if (typeof value === \"string\") {\n        _MK.CA = value;\n      }\n    }\n  });\n\n  var _AS;\n  Object.defineProperty(this, \"AS\", {\n    enumerable: false,\n    configurable: false,\n    get: function() {\n      return _AS;\n    },\n    set: function(value) {\n      _AS = value;\n    }\n  });\n\n  /**\n   * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n   *\n   * @name AcroFormButton#appearanceState\n   * @type {any}\n   */\n  Object.defineProperty(this, \"appearanceState\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _AS.substr(1, _AS.length - 1);\n    },\n    set: function(value) {\n      _AS = \"/\" + value;\n    }\n  });\n  this.caption = \"l\";\n  this.appearanceState = \"Off\";\n  // todo: set AppearanceType as variable that can be set from the\n  // outside...\n  this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n  // The Default appearanceType is the Circle\n  this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n    this.optionName\n  );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n  if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n    throw new Error(\n      \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n    );\n  }\n  for (var objId in this.Kids) {\n    if (this.Kids.hasOwnProperty(objId)) {\n      var child = this.Kids[objId];\n      child.appearanceStreamContent = appearance.createAppearanceStream(\n        child.optionName\n      );\n      child.caption = appearance.getCA();\n    }\n  }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n  // Create new Child for RadioGroup\n  var child = new AcroFormChildClass();\n  child.Parent = this;\n  child.optionName = name;\n  // Add to Parent\n  this.Kids.push(child);\n\n  addField.call(this.scope, child);\n\n  return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n  AcroFormButton.call(this);\n\n  this.fontName = \"zapfdingbats\";\n  this.caption = \"3\";\n  this.appearanceState = \"On\";\n  this.value = \"On\";\n  this.textAlign = \"center\";\n  this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n  AcroFormField.call(this);\n  this.FT = \"/Tx\";\n\n  /**\n   * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n   *\n   * @name AcroFormTextField#multiline\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"multiline\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 13));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 13);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 13);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n   *\n   * @name AcroFormTextField#fileSelect\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"fileSelect\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 21));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 21);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 21);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n   *\n   * @name AcroFormTextField#doNotSpellCheck\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"doNotSpellCheck\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 23));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 23);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 23);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n   *\n   * @name AcroFormTextField#doNotScroll\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"doNotScroll\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 24));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 24);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 24);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n   *\n   * @name AcroFormTextField#comb\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"comb\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 25));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 25);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 25);\n      }\n    }\n  });\n\n  /**\n   * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n   *\n   * @name AcroFormTextField#richText\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"richText\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 26));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 26);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 26);\n      }\n    }\n  });\n\n  var _MaxLen = null;\n  Object.defineProperty(this, \"MaxLen\", {\n    enumerable: true,\n    configurable: false,\n    get: function() {\n      return _MaxLen;\n    },\n    set: function(value) {\n      _MaxLen = value;\n    }\n  });\n\n  /**\n   * (Optional; inheritable) The maximum length of the field’s text, in characters.\n   *\n   * @name AcroFormTextField#maxLength\n   * @type {number}\n   */\n  Object.defineProperty(this, \"maxLength\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return _MaxLen;\n    },\n    set: function(value) {\n      if (Number.isInteger(value)) {\n        _MaxLen = value;\n      }\n    }\n  });\n\n  Object.defineProperty(this, \"hasAppearanceStream\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return this.V || this.DV;\n    }\n  });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n  AcroFormTextField.call(this);\n\n  /**\n   * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n   * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n   *\n   * @name AcroFormTextField#password\n   * @type {boolean}\n   */\n  Object.defineProperty(this, \"password\", {\n    enumerable: true,\n    configurable: true,\n    get: function() {\n      return Boolean(getBitForPdf(this.Ff, 14));\n    },\n    set: function(value) {\n      if (Boolean(value) === true) {\n        this.Ff = setBitForPdf(this.Ff, 14);\n      } else {\n        this.Ff = clearBitForPdf(this.Ff, 14);\n      }\n    }\n  });\n  this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n  CheckBox: {\n    createAppearanceStream: function() {\n      var appearance = {\n        N: {\n          On: AcroFormAppearance.CheckBox.YesNormal\n        },\n        D: {\n          On: AcroFormAppearance.CheckBox.YesPushDown,\n          Off: AcroFormAppearance.CheckBox.OffPushDown\n        }\n      };\n\n      return appearance;\n    },\n    /**\n     * Returns the standard On Appearance for a CheckBox\n     *\n     * @returns {AcroFormXObject}\n     */\n    YesPushDown: function(formObject) {\n      var xobj = createFormXObject(formObject);\n      xobj.scope = formObject.scope;\n      var stream = [];\n      var fontKey = formObject.scope.internal.getFont(\n        formObject.fontName,\n        formObject.fontStyle\n      ).id;\n      var encodedColor = formObject.scope.__private__.encodeColorString(\n        formObject.color\n      );\n      var calcRes = calculateX(formObject, formObject.caption);\n      stream.push(\"0.749023 g\");\n      stream.push(\n        \"0 0 \" +\n          f2(AcroFormAppearance.internal.getWidth(formObject)) +\n          \" \" +\n          f2(AcroFormAppearance.internal.getHeight(formObject)) +\n          \" re\"\n      );\n      stream.push(\"f\");\n      stream.push(\"BMC\");\n      stream.push(\"q\");\n      stream.push(\"0 0 1 rg\");\n      stream.push(\n        \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n      );\n      stream.push(\"BT\");\n      stream.push(calcRes.text);\n      stream.push(\"ET\");\n      stream.push(\"Q\");\n      stream.push(\"EMC\");\n      xobj.stream = stream.join(\"\\n\");\n      return xobj;\n    },\n\n    YesNormal: function(formObject) {\n      var xobj = createFormXObject(formObject);\n      xobj.scope = formObject.scope;\n      var fontKey = formObject.scope.internal.getFont(\n        formObject.fontName,\n        formObject.fontStyle\n      ).id;\n      var encodedColor = formObject.scope.__private__.encodeColorString(\n        formObject.color\n      );\n      var stream = [];\n      var height = AcroFormAppearance.internal.getHeight(formObject);\n      var width = AcroFormAppearance.internal.getWidth(formObject);\n      var calcRes = calculateX(formObject, formObject.caption);\n      stream.push(\"1 g\");\n      stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n      stream.push(\"f\");\n      stream.push(\"q\");\n      stream.push(\"0 0 1 rg\");\n      stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n      stream.push(\"W\");\n      stream.push(\"n\");\n      stream.push(\"0 g\");\n      stream.push(\"BT\");\n      stream.push(\n        \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n      );\n      stream.push(calcRes.text);\n      stream.push(\"ET\");\n      stream.push(\"Q\");\n      xobj.stream = stream.join(\"\\n\");\n      return xobj;\n    },\n\n    /**\n     * Returns the standard Off Appearance for a CheckBox\n     *\n     * @returns {AcroFormXObject}\n     */\n    OffPushDown: function(formObject) {\n      var xobj = createFormXObject(formObject);\n      xobj.scope = formObject.scope;\n      var stream = [];\n      stream.push(\"0.749023 g\");\n      stream.push(\n        \"0 0 \" +\n          f2(AcroFormAppearance.internal.getWidth(formObject)) +\n          \" \" +\n          f2(AcroFormAppearance.internal.getHeight(formObject)) +\n          \" re\"\n      );\n      stream.push(\"f\");\n      xobj.stream = stream.join(\"\\n\");\n      return xobj;\n    }\n  },\n\n  RadioButton: {\n    Circle: {\n      createAppearanceStream: function(name) {\n        var appearanceStreamContent = {\n          D: {\n            Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n          },\n          N: {}\n        };\n        appearanceStreamContent.N[name] =\n          AcroFormAppearance.RadioButton.Circle.YesNormal;\n        appearanceStreamContent.D[name] =\n          AcroFormAppearance.RadioButton.Circle.YesPushDown;\n        return appearanceStreamContent;\n      },\n      getCA: function() {\n        return \"l\";\n      },\n\n      YesNormal: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        // Make the Radius of the Circle relative to min(height, width) of formObject\n        var DotRadius =\n          AcroFormAppearance.internal.getWidth(formObject) <=\n          AcroFormAppearance.internal.getHeight(formObject)\n            ? AcroFormAppearance.internal.getWidth(formObject) / 4\n            : AcroFormAppearance.internal.getHeight(formObject) / 4;\n        // The Borderpadding...\n        DotRadius = Number((DotRadius * 0.9).toFixed(5));\n        var c = AcroFormAppearance.internal.Bezier_C;\n        var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n        /*\n         * The Following is a Circle created with Bezier-Curves.\n         */\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(DotRadius + \" 0 m\");\n        stream.push(\n          DotRadius +\n            \" \" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadius +\n            \" 0 \" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          \"-\" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            DotRadiusBezier +\n            \" -\" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\n          \"-\" +\n            DotRadius +\n            \" -\" +\n            DotRadiusBezier +\n            \" -\" +\n            DotRadiusBezier +\n            \" -\" +\n            DotRadius +\n            \" 0 -\" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          DotRadiusBezier +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            DotRadiusBezier +\n            \" \" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      YesPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        var DotRadius =\n          AcroFormAppearance.internal.getWidth(formObject) <=\n          AcroFormAppearance.internal.getHeight(formObject)\n            ? AcroFormAppearance.internal.getWidth(formObject) / 4\n            : AcroFormAppearance.internal.getHeight(formObject) / 4;\n        // The Borderpadding...\n        DotRadius = Number((DotRadius * 0.9).toFixed(5));\n        // Save results for later use; no need to waste\n        // processor ticks on doing math\n        var k = Number((DotRadius * 2).toFixed(5));\n        var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n        var dc = Number(\n          (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n        );\n\n        stream.push(\"0.749023 g\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(k + \" 0 m\");\n        stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n        stream.push(\n          \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n        );\n        stream.push(\n          \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n        );\n        stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        stream.push(\"0 g\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(DotRadius + \" 0 m\");\n        stream.push(\n          \"\" +\n            DotRadius +\n            \" \" +\n            dc +\n            \" \" +\n            dc +\n            \" \" +\n            DotRadius +\n            \" 0 \" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          \"-\" +\n            dc +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            dc +\n            \" -\" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\n          \"-\" +\n            DotRadius +\n            \" -\" +\n            dc +\n            \" -\" +\n            dc +\n            \" -\" +\n            DotRadius +\n            \" 0 -\" +\n            DotRadius +\n            \" c\"\n        );\n        stream.push(\n          dc +\n            \" -\" +\n            DotRadius +\n            \" \" +\n            DotRadius +\n            \" -\" +\n            dc +\n            \" \" +\n            DotRadius +\n            \" 0 c\"\n        );\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      OffPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        var DotRadius =\n          AcroFormAppearance.internal.getWidth(formObject) <=\n          AcroFormAppearance.internal.getHeight(formObject)\n            ? AcroFormAppearance.internal.getWidth(formObject) / 4\n            : AcroFormAppearance.internal.getHeight(formObject) / 4;\n        // The Borderpadding...\n        DotRadius = Number((DotRadius * 0.9).toFixed(5));\n        // Save results for later use; no need to waste\n        // processor ticks on doing math\n        var k = Number((DotRadius * 2).toFixed(5));\n        var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n        stream.push(\"0.749023 g\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 0 0 1 \" +\n            f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n            \" \" +\n            f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n            \" cm\"\n        );\n        stream.push(k + \" 0 m\");\n        stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n        stream.push(\n          \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n        );\n        stream.push(\n          \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n        );\n        stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n        stream.push(\"f\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      }\n    },\n\n    Cross: {\n      /**\n       * Creates the Actual AppearanceDictionary-References\n       *\n       * @param {string} name\n       * @returns {Object}\n       * @ignore\n       */\n      createAppearanceStream: function(name) {\n        var appearanceStreamContent = {\n          D: {\n            Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n          },\n          N: {}\n        };\n        appearanceStreamContent.N[name] =\n          AcroFormAppearance.RadioButton.Cross.YesNormal;\n        appearanceStreamContent.D[name] =\n          AcroFormAppearance.RadioButton.Cross.YesPushDown;\n        return appearanceStreamContent;\n      },\n      getCA: function() {\n        return \"8\";\n      },\n\n      YesNormal: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        var cross = AcroFormAppearance.internal.calculateCross(formObject);\n        stream.push(\"q\");\n        stream.push(\n          \"1 1 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n            \" re\"\n        );\n        stream.push(\"W\");\n        stream.push(\"n\");\n        stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n        stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n        stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n        stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n        stream.push(\"s\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      YesPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var cross = AcroFormAppearance.internal.calculateCross(formObject);\n        var stream = [];\n        stream.push(\"0.749023 g\");\n        stream.push(\n          \"0 0 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject)) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject)) +\n            \" re\"\n        );\n        stream.push(\"f\");\n        stream.push(\"q\");\n        stream.push(\n          \"1 1 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n            \" re\"\n        );\n        stream.push(\"W\");\n        stream.push(\"n\");\n        stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n        stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n        stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n        stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n        stream.push(\"s\");\n        stream.push(\"Q\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      },\n      OffPushDown: function(formObject) {\n        var xobj = createFormXObject(formObject);\n        xobj.scope = formObject.scope;\n        var stream = [];\n        stream.push(\"0.749023 g\");\n        stream.push(\n          \"0 0 \" +\n            f2(AcroFormAppearance.internal.getWidth(formObject)) +\n            \" \" +\n            f2(AcroFormAppearance.internal.getHeight(formObject)) +\n            \" re\"\n        );\n        stream.push(\"f\");\n        xobj.stream = stream.join(\"\\n\");\n        return xobj;\n      }\n    }\n  },\n\n  /**\n   * Returns the standard Appearance\n   *\n   * @returns {AcroFormXObject}\n   */\n  createDefaultAppearanceStream: function(formObject) {\n    // Set Helvetica to Standard Font (size: auto)\n    // Color: Black\n    var fontKey = formObject.scope.internal.getFont(\n      formObject.fontName,\n      formObject.fontStyle\n    ).id;\n    var encodedColor = formObject.scope.__private__.encodeColorString(\n      formObject.color\n    );\n    var fontSize = formObject.fontSize;\n    var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n    return result;\n  }\n};\n\nAcroFormAppearance.internal = {\n  Bezier_C: 0.551915024494,\n\n  calculateCross: function(formObject) {\n    var width = AcroFormAppearance.internal.getWidth(formObject);\n    var height = AcroFormAppearance.internal.getHeight(formObject);\n    var a = Math.min(width, height);\n\n    var cross = {\n      x1: {\n        // upperLeft\n        x: (width - a) / 2,\n        y: (height - a) / 2 + a // height - borderPadding\n      },\n      x2: {\n        // lowerRight\n        x: (width - a) / 2 + a,\n        y: (height - a) / 2 // borderPadding\n      },\n      x3: {\n        // lowerLeft\n        x: (width - a) / 2,\n        y: (height - a) / 2 // borderPadding\n      },\n      x4: {\n        // upperRight\n        x: (width - a) / 2 + a,\n        y: (height - a) / 2 + a // height - borderPadding\n      }\n    };\n\n    return cross;\n  }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n  var result = 0;\n  if (typeof formObject === \"object\") {\n    result = scale(formObject.Rect[2]);\n  }\n  return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n  var result = 0;\n  if (typeof formObject === \"object\") {\n    result = scale(formObject.Rect[3]);\n  }\n  return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n  initializeAcroForm(this, fieldObject);\n\n  if (fieldObject instanceof AcroFormField) {\n    putForm(fieldObject);\n  } else {\n    throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n  }\n  fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n  return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n  ChoiceField: AcroFormChoiceField,\n  ListBox: AcroFormListBox,\n  ComboBox: AcroFormComboBox,\n  EditBox: AcroFormEditBox,\n  Button: AcroFormButton,\n  PushButton: AcroFormPushButton,\n  RadioButton: AcroFormRadioButton,\n  CheckBox: AcroFormCheckBox,\n  TextField: AcroFormTextField,\n  PasswordField: AcroFormPasswordField,\n  Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n  ChoiceField: AcroFormChoiceField,\n  ListBox: AcroFormListBox,\n  ComboBox: AcroFormComboBox,\n  EditBox: AcroFormEditBox,\n  Button: AcroFormButton,\n  PushButton: AcroFormPushButton,\n  RadioButton: AcroFormRadioButton,\n  CheckBox: AcroFormCheckBox,\n  TextField: AcroFormTextField,\n  PasswordField: AcroFormPasswordField,\n  Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n  AcroForm,\n  AcroFormChoiceField,\n  AcroFormListBox,\n  AcroFormComboBox,\n  AcroFormEditBox,\n  AcroFormButton,\n  AcroFormPushButton,\n  AcroFormRadioButton,\n  AcroFormCheckBox,\n  AcroFormTextField,\n  AcroFormPasswordField,\n  AcroFormAppearance\n};\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n *               2013 Chris Dowling, https://github.com/gingerchris\n *               2013 Trinh Ho, https://github.com/ineedfat\n *               2013 Edwin Alejandro Perez, https://github.com/eaparango\n *               2013 Norah Smith, https://github.com/burnburnrocket\n *               2014 Diego Casorran, https://github.com/diegocr\n *               2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var namespace = \"addImage_\";\n  jsPDFAPI.__addimage__ = {};\n\n  var UNKNOWN = \"UNKNOWN\";\n\n  var imageFileTypeHeaders = {\n    PNG: [[0x89, 0x50, 0x4e, 0x47]],\n    TIFF: [\n      [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n      [0x49, 0x49, 0x2a, 0x00] //Intel\n    ],\n    JPEG: [\n      [\n        0xff,\n        0xd8,\n        0xff,\n        0xe0,\n        undefined,\n        undefined,\n        0x4a,\n        0x46,\n        0x49,\n        0x46,\n        0x00\n      ], //JFIF\n      [\n        0xff,\n        0xd8,\n        0xff,\n        0xe1,\n        undefined,\n        undefined,\n        0x45,\n        0x78,\n        0x69,\n        0x66,\n        0x00,\n        0x00\n      ], //Exif\n      [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n      [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n    ],\n    JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n    GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n    GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n    WEBP: [\n      [\n        0x52,\n        0x49,\n        0x46,\n        0x46,\n        undefined,\n        undefined,\n        undefined,\n        undefined,\n        0x57,\n        0x45,\n        0x42,\n        0x50\n      ]\n    ],\n    BMP: [\n      [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n      [0x42, 0x41], //BA - OS/2 struct bitmap array\n      [0x43, 0x49], //CI - OS/2 struct color icon\n      [0x43, 0x50], //CP - OS/2 const color pointer\n      [0x49, 0x43], //IC - OS/2 struct icon\n      [0x50, 0x54] //PT - OS/2 pointer\n    ]\n  };\n\n  /**\n   * Recognize filetype of Image by magic-bytes\n   *\n   * https://en.wikipedia.org/wiki/List_of_file_signatures\n   *\n   * @name getImageFileTypeByImageData\n   * @public\n   * @function\n   * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n   * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n   *\n   * @returns {string} filetype of Image\n   */\n  var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n    imageData,\n    fallbackFormat\n  ) {\n    fallbackFormat = fallbackFormat || UNKNOWN;\n    var i;\n    var j;\n    var result = UNKNOWN;\n    var headerSchemata;\n    var compareResult;\n    var fileType;\n\n    if (isArrayBufferView(imageData)) {\n      for (fileType in imageFileTypeHeaders) {\n        headerSchemata = imageFileTypeHeaders[fileType];\n        for (i = 0; i < headerSchemata.length; i += 1) {\n          compareResult = true;\n          for (j = 0; j < headerSchemata[i].length; j += 1) {\n            if (headerSchemata[i][j] === undefined) {\n              continue;\n            }\n            if (headerSchemata[i][j] !== imageData[j]) {\n              compareResult = false;\n              break;\n            }\n          }\n          if (compareResult === true) {\n            result = fileType;\n            break;\n          }\n        }\n      }\n    } else {\n      for (fileType in imageFileTypeHeaders) {\n        headerSchemata = imageFileTypeHeaders[fileType];\n        for (i = 0; i < headerSchemata.length; i += 1) {\n          compareResult = true;\n          for (j = 0; j < headerSchemata[i].length; j += 1) {\n            if (headerSchemata[i][j] === undefined) {\n              continue;\n            }\n            if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n              compareResult = false;\n              break;\n            }\n          }\n          if (compareResult === true) {\n            result = fileType;\n            break;\n          }\n        }\n      }\n    }\n\n    if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n      result = fallbackFormat;\n    }\n    return result;\n  });\n\n  // Image functionality ported from pdf.js\n  var putImage = function(image) {\n    var out = this.internal.write;\n    var putStream = this.internal.putStream;\n    var getFilters = this.internal.getFilters;\n\n    var filter = getFilters();\n    while (filter.indexOf(\"FlateEncode\") !== -1) {\n      filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n    }\n\n    image.objectId = this.internal.newObject();\n\n    var additionalKeyValues = [];\n    additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n    additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n    additionalKeyValues.push({ key: \"Width\", value: image.width });\n    additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n    if (image.colorSpace === color_spaces.INDEXED) {\n      additionalKeyValues.push({\n        key: \"ColorSpace\",\n        value:\n          \"[/Indexed /DeviceRGB \" +\n          // if an indexed png defines more than one colour with transparency, we've created a sMask\n          (image.palette.length / 3 - 1) +\n          \" \" +\n          (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n            ? image.objectId + 2\n            : image.objectId + 1) +\n          \" 0 R]\"\n      });\n    } else {\n      additionalKeyValues.push({\n        key: \"ColorSpace\",\n        value: \"/\" + image.colorSpace\n      });\n      if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n        additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n      }\n    }\n    additionalKeyValues.push({\n      key: \"BitsPerComponent\",\n      value: image.bitsPerComponent\n    });\n    if (\n      \"decodeParameters\" in image &&\n      typeof image.decodeParameters !== \"undefined\"\n    ) {\n      additionalKeyValues.push({\n        key: \"DecodeParms\",\n        value: \"<<\" + image.decodeParameters + \">>\"\n      });\n    }\n    if (\"transparency\" in image && Array.isArray(image.transparency)) {\n      var transparency = \"\",\n        i = 0,\n        len = image.transparency.length;\n      for (; i < len; i++)\n        transparency +=\n          image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n      additionalKeyValues.push({\n        key: \"Mask\",\n        value: \"[\" + transparency + \"]\"\n      });\n    }\n    if (typeof image.sMask !== \"undefined\") {\n      additionalKeyValues.push({\n        key: \"SMask\",\n        value: image.objectId + 1 + \" 0 R\"\n      });\n    }\n\n    var alreadyAppliedFilters =\n      typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n    putStream({\n      data: image.data,\n      additionalKeyValues: additionalKeyValues,\n      alreadyAppliedFilters: alreadyAppliedFilters,\n      objectId: image.objectId\n    });\n\n    out(\"endobj\");\n\n    // Soft mask\n    if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n      var decodeParameters =\n        \"/Predictor \" +\n        image.predictor +\n        \" /Colors 1 /BitsPerComponent \" +\n        image.bitsPerComponent +\n        \" /Columns \" +\n        image.width;\n      var sMask = {\n        width: image.width,\n        height: image.height,\n        colorSpace: \"DeviceGray\",\n        bitsPerComponent: image.bitsPerComponent,\n        decodeParameters: decodeParameters,\n        data: image.sMask\n      };\n      if (\"filter\" in image) {\n        sMask.filter = image.filter;\n      }\n      putImage.call(this, sMask);\n    }\n\n    //Palette\n    if (image.colorSpace === color_spaces.INDEXED) {\n      var objId = this.internal.newObject();\n      //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n      //putStream(zlib.compress(img['pal']));\n      putStream({\n        data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n        objectId: objId\n      });\n      out(\"endobj\");\n    }\n  };\n  var putResourcesCallback = function() {\n    var images = this.internal.collections[namespace + \"images\"];\n    for (var i in images) {\n      putImage.call(this, images[i]);\n    }\n  };\n  var putXObjectsDictCallback = function() {\n    var images = this.internal.collections[namespace + \"images\"],\n      out = this.internal.write,\n      image;\n    for (var i in images) {\n      image = images[i];\n      out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n    }\n  };\n\n  var checkCompressValue = function(value) {\n    if (value && typeof value === \"string\") value = value.toUpperCase();\n    return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n  };\n\n  var initialize = function() {\n    if (!this.internal.collections[namespace + \"images\"]) {\n      this.internal.collections[namespace + \"images\"] = {};\n      this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n      this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n    }\n  };\n\n  var getImages = function() {\n    var images = this.internal.collections[namespace + \"images\"];\n    initialize.call(this);\n    return images;\n  };\n  var getImageIndex = function() {\n    return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n  };\n  var notDefined = function(value) {\n    return typeof value === \"undefined\" || value === null || value.length === 0;\n  };\n  var generateAliasFromImageData = function(imageData) {\n    if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n      return sHashCode(imageData);\n    }\n\n    return null;\n  };\n\n  var isImageTypeSupported = function(type) {\n    return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n  };\n\n  var isDOMElement = function(object) {\n    return typeof object === \"object\" && object.nodeType === 1;\n  };\n\n  var getImageDataFromElement = function(element, format) {\n    //if element is an image which uses data url definition, just return the dataurl\n    if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n      var src = \"\" + element.getAttribute(\"src\");\n\n      //is base64 encoded dataUrl, directly process it\n      if (src.indexOf(\"data:image/\") === 0) {\n        return atob(\n          unescape(src)\n            .split(\"base64,\")\n            .pop()\n        );\n      }\n\n      //it is probably an url, try to load it\n      var tmpImageData = jsPDFAPI.loadFile(src, true);\n      if (tmpImageData !== undefined) {\n        return tmpImageData;\n      }\n    }\n\n    if (element.nodeName === \"CANVAS\") {\n      var mimeType;\n      switch (format) {\n        case \"PNG\":\n          mimeType = \"image/png\";\n          break;\n        case \"WEBP\":\n          mimeType = \"image/webp\";\n          break;\n        case \"JPEG\":\n        case \"JPG\":\n        default:\n          mimeType = \"image/jpeg\";\n          break;\n      }\n      return atob(\n        element\n          .toDataURL(mimeType, 1.0)\n          .split(\"base64,\")\n          .pop()\n      );\n    }\n  };\n\n  var checkImagesForAlias = function(alias) {\n    var images = this.internal.collections[namespace + \"images\"];\n    if (images) {\n      for (var e in images) {\n        if (alias === images[e].alias) {\n          return images[e];\n        }\n      }\n    }\n  };\n\n  var determineWidthAndHeight = function(width, height, image) {\n    if (!width && !height) {\n      width = -96;\n      height = -96;\n    }\n    if (width < 0) {\n      width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n    }\n    if (height < 0) {\n      height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n    }\n    if (width === 0) {\n      width = (height * image.width) / image.height;\n    }\n    if (height === 0) {\n      height = (width * image.height) / image.width;\n    }\n\n    return [width, height];\n  };\n\n  var writeImageToPDF = function(x, y, width, height, image, rotation) {\n    var dims = determineWidthAndHeight.call(this, width, height, image),\n      coord = this.internal.getCoordinateString,\n      vcoord = this.internal.getVerticalCoordinateString;\n\n    var images = getImages.call(this);\n\n    width = dims[0];\n    height = dims[1];\n    images[image.index] = image;\n\n    if (rotation) {\n      rotation *= Math.PI / 180;\n      var c = Math.cos(rotation);\n      var s = Math.sin(rotation);\n      //like in pdf Reference do it 4 digits instead of 2\n      var f4 = function(number) {\n        return number.toFixed(4);\n      };\n      var rotationTransformationMatrix = [\n        f4(c),\n        f4(s),\n        f4(s * -1),\n        f4(c),\n        0,\n        0,\n        \"cm\"\n      ];\n    }\n    this.internal.write(\"q\"); //Save graphics state\n    if (rotation) {\n      this.internal.write(\n        [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n      ); //Translate\n      this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n      this.internal.write(\n        [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n      ); //Scale\n    } else {\n      this.internal.write(\n        [\n          coord(width),\n          \"0\",\n          \"0\",\n          coord(height),\n          coord(x),\n          vcoord(y + height),\n          \"cm\"\n        ].join(\" \")\n      ); //Translate and Scale\n    }\n\n    if (this.isAdvancedAPI()) {\n      // draw image bottom up when in \"advanced\" API mode\n      this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n    }\n\n    this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n    this.internal.write(\"Q\"); //Restore graphics state\n  };\n\n  /**\n   * COLOR SPACES\n   */\n  var color_spaces = (jsPDFAPI.color_spaces = {\n    DEVICE_RGB: \"DeviceRGB\",\n    DEVICE_GRAY: \"DeviceGray\",\n    DEVICE_CMYK: \"DeviceCMYK\",\n    CAL_GREY: \"CalGray\",\n    CAL_RGB: \"CalRGB\",\n    LAB: \"Lab\",\n    ICC_BASED: \"ICCBased\",\n    INDEXED: \"Indexed\",\n    PATTERN: \"Pattern\",\n    SEPARATION: \"Separation\",\n    DEVICE_N: \"DeviceN\"\n  });\n\n  /**\n   * DECODE METHODS\n   */\n  jsPDFAPI.decode = {\n    DCT_DECODE: \"DCTDecode\",\n    FLATE_DECODE: \"FlateDecode\",\n    LZW_DECODE: \"LZWDecode\",\n    JPX_DECODE: \"JPXDecode\",\n    JBIG2_DECODE: \"JBIG2Decode\",\n    ASCII85_DECODE: \"ASCII85Decode\",\n    ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n    RUN_LENGTH_DECODE: \"RunLengthDecode\",\n    CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n  };\n\n  /**\n   * IMAGE COMPRESSION TYPES\n   */\n  var image_compression = (jsPDFAPI.image_compression = {\n    NONE: \"NONE\",\n    FAST: \"FAST\",\n    MEDIUM: \"MEDIUM\",\n    SLOW: \"SLOW\"\n  });\n\n  /**\n   * @name sHashCode\n   * @function\n   * @param {string} data\n   * @returns {string}\n   */\n  var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n    var hash = 0,\n      i,\n      len;\n\n    if (typeof data === \"string\") {\n      len = data.length;\n      for (i = 0; i < len; i++) {\n        hash = (hash << 5) - hash + data.charCodeAt(i);\n        hash |= 0; // Convert to 32bit integer\n      }\n    } else if (isArrayBufferView(data)) {\n      len = data.byteLength / 2;\n      for (i = 0; i < len; i++) {\n        hash = (hash << 5) - hash + data[i];\n        hash |= 0; // Convert to 32bit integer\n      }\n    }\n    return hash;\n  });\n\n  /**\n   * Validates if given String is a valid Base64-String\n   *\n   * @name validateStringAsBase64\n   * @public\n   * @function\n   * @param {String} possible Base64-String\n   *\n   * @returns {boolean}\n   */\n  var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n    possibleBase64String\n  ) {\n    possibleBase64String = possibleBase64String || \"\";\n    possibleBase64String.toString().trim();\n\n    var result = true;\n\n    if (possibleBase64String.length === 0) {\n      result = false;\n    }\n\n    if (possibleBase64String.length % 4 !== 0) {\n      result = false;\n    }\n\n    if (\n      /^[A-Za-z0-9+/]+$/.test(\n        possibleBase64String.substr(0, possibleBase64String.length - 2)\n      ) === false\n    ) {\n      result = false;\n    }\n\n    if (\n      /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n        possibleBase64String.substr(-2)\n      ) === false\n    ) {\n      result = false;\n    }\n    return result;\n  });\n\n  /**\n   * Strips out and returns info from a valid base64 data URI\n   *\n   * @name extractImageFromDataUrl\n   * @function\n   * @param {string} dataUrl a valid data URI of format 'data:[<MIME-type>][;base64],<data>'\n   * @returns {Array}an Array containing the following\n   * [0] the complete data URI\n   * [1] <MIME-type>\n   * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n   * [4] <data>\n   */\n  var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n    dataUrl\n  ) {\n    dataUrl = dataUrl || \"\";\n    var dataUrlParts = dataUrl.split(\"base64,\");\n    var result = null;\n\n    if (dataUrlParts.length === 2) {\n      var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=[\\w=-]*)*;*$/.exec(\n        dataUrlParts[0]\n      );\n      if (Array.isArray(extractedInfo)) {\n        result = {\n          mimeType: extractedInfo[1],\n          charset: extractedInfo[2],\n          data: dataUrlParts[1]\n        };\n      }\n    }\n    return result;\n  });\n\n  /**\n   * Check to see if ArrayBuffer is supported\n   *\n   * @name supportsArrayBuffer\n   * @function\n   * @returns {boolean}\n   */\n  var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n    return (\n      typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n    );\n  });\n\n  /**\n   * Tests supplied object to determine if ArrayBuffer\n   *\n   * @name isArrayBuffer\n   * @function\n   * @param {Object} object an Object\n   *\n   * @returns {boolean}\n   */\n  jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n    return supportsArrayBuffer() && object instanceof ArrayBuffer;\n  };\n\n  /**\n   * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n   *\n   * @name isArrayBufferView\n   * @function\n   * @param {Object} object an Object\n   * @returns {boolean}\n   */\n  var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n    object\n  ) {\n    return (\n      supportsArrayBuffer() &&\n      typeof Uint32Array !== \"undefined\" &&\n      (object instanceof Int8Array ||\n        object instanceof Uint8Array ||\n        (typeof Uint8ClampedArray !== \"undefined\" &&\n          object instanceof Uint8ClampedArray) ||\n        object instanceof Int16Array ||\n        object instanceof Uint16Array ||\n        object instanceof Int32Array ||\n        object instanceof Uint32Array ||\n        object instanceof Float32Array ||\n        object instanceof Float64Array)\n    );\n  });\n\n  /**\n   * Convert Binary String to ArrayBuffer\n   *\n   * @name binaryStringToUint8Array\n   * @public\n   * @function\n   * @param {string} BinaryString with ImageData\n   * @returns {Uint8Array}\n   */\n  var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n    binary_string\n  ) {\n    var len = binary_string.length;\n    var bytes = new Uint8Array(len);\n    for (var i = 0; i < len; i++) {\n      bytes[i] = binary_string.charCodeAt(i);\n    }\n    return bytes;\n  });\n\n  /**\n   * Convert the Buffer to a Binary String\n   *\n   * @name arrayBufferToBinaryString\n   * @public\n   * @function\n   * @param {ArrayBuffer} ArrayBuffer with ImageData\n   *\n   * @returns {String}\n   */\n  var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n    buffer\n  ) {\n    try {\n      return atob(btoa(String.fromCharCode.apply(null, buffer)));\n    } catch (e) {\n      if (\n        typeof Uint8Array !== \"undefined\" &&\n        typeof Uint8Array.prototype.reduce !== \"undefined\"\n      ) {\n        return new Uint8Array(buffer)\n          .reduce(function(data, byte) {\n            return data.push(String.fromCharCode(byte)), data;\n          }, [])\n          .join(\"\");\n      }\n    }\n  });\n\n  /**\n   * Adds an Image to the PDF.\n   *\n   * @name addImage\n   * @public\n   * @function\n   * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement\n   * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n   * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} width width of the image (in units declared at inception of PDF document)\n   * @param {number} height height of the Image (in units declared at inception of PDF document)\n   * @param {string} alias alias of the image (if used multiple times)\n   * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n   * @param {number} rotation rotation of the image in degrees (0-359)\n   *\n   * @returns jsPDF\n   */\n  jsPDFAPI.addImage = function() {\n    var imageData, format, x, y, w, h, alias, compression, rotation;\n\n    imageData = arguments[0];\n    if (typeof arguments[1] === \"number\") {\n      format = UNKNOWN;\n      x = arguments[1];\n      y = arguments[2];\n      w = arguments[3];\n      h = arguments[4];\n      alias = arguments[5];\n      compression = arguments[6];\n      rotation = arguments[7];\n    } else {\n      format = arguments[1];\n      x = arguments[2];\n      y = arguments[3];\n      w = arguments[4];\n      h = arguments[5];\n      alias = arguments[6];\n      compression = arguments[7];\n      rotation = arguments[8];\n    }\n\n    if (\n      typeof imageData === \"object\" &&\n      !isDOMElement(imageData) &&\n      \"imageData\" in imageData\n    ) {\n      var options = imageData;\n\n      imageData = options.imageData;\n      format = options.format || format || UNKNOWN;\n      x = options.x || x || 0;\n      y = options.y || y || 0;\n      w = options.w || options.width || w;\n      h = options.h || options.height || h;\n      alias = options.alias || alias;\n      compression = options.compression || compression;\n      rotation = options.rotation || options.angle || rotation;\n    }\n\n    //If compression is not explicitly set, determine if we should use compression\n    var filter = this.internal.getFilters();\n    if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n      compression = \"SLOW\";\n    }\n\n    if (isNaN(x) || isNaN(y)) {\n      throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n    }\n\n    initialize.call(this);\n\n    var image = processImageData.call(\n      this,\n      imageData,\n      format,\n      alias,\n      compression\n    );\n\n    writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n    return this;\n  };\n\n  var processImageData = function(imageData, format, alias, compression) {\n    var result, dataAsBinaryString;\n\n    if (\n      typeof imageData === \"string\" &&\n      getImageFileTypeByImageData(imageData) === UNKNOWN\n    ) {\n      imageData = unescape(imageData);\n      var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n      if (tmpImageData !== \"\") {\n        imageData = tmpImageData;\n      } else {\n        tmpImageData = jsPDFAPI.loadFile(imageData, true);\n        if (tmpImageData !== undefined) {\n          imageData = tmpImageData;\n        }\n      }\n    }\n\n    if (isDOMElement(imageData)) {\n      imageData = getImageDataFromElement(imageData, format);\n    }\n\n    format = getImageFileTypeByImageData(imageData, format);\n    if (!isImageTypeSupported(format)) {\n      throw new Error(\n        \"addImage does not support files of type '\" +\n          format +\n          \"', please ensure that a plugin for '\" +\n          format +\n          \"' support is added.\"\n      );\n    }\n\n    // now do the heavy lifting\n\n    if (notDefined(alias)) {\n      alias = generateAliasFromImageData(imageData);\n    }\n    result = checkImagesForAlias.call(this, alias);\n\n    if (!result) {\n      if (supportsArrayBuffer()) {\n        // no need to convert if imageData is already uint8array\n        if (!(imageData instanceof Uint8Array)) {\n          dataAsBinaryString = imageData;\n          imageData = binaryStringToUint8Array(imageData);\n        }\n      }\n\n      result = this[\"process\" + format.toUpperCase()](\n        imageData,\n        getImageIndex.call(this),\n        alias,\n        checkCompressValue(compression),\n        dataAsBinaryString\n      );\n    }\n\n    if (!result) {\n      throw new Error(\"An unknown error occurred whilst processing the image.\");\n    }\n    return result;\n  };\n\n  /**\n   * @name convertBase64ToBinaryString\n   * @function\n   * @param {string} stringData\n   * @returns {string} binary string\n   */\n  var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n    stringData,\n    throwError\n  ) {\n    throwError = typeof throwError === \"boolean\" ? throwError : true;\n    var base64Info;\n    var imageData = \"\";\n    var rawData;\n\n    if (typeof stringData === \"string\") {\n      base64Info = extractImageFromDataUrl(stringData);\n      rawData = base64Info !== null ? base64Info.data : stringData;\n\n      try {\n        imageData = atob(rawData);\n      } catch (e) {\n        if (throwError) {\n          if (!validateStringAsBase64(rawData)) {\n            throw new Error(\n              \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n            );\n          } else {\n            throw new Error(\n              \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n            );\n          }\n        }\n      }\n    }\n    return imageData;\n  });\n\n  /**\n   * @name getImageProperties\n   * @function\n   * @param {Object} imageData\n   * @returns {Object}\n   */\n  jsPDFAPI.getImageProperties = function(imageData) {\n    var image;\n    var tmpImageData = \"\";\n    var format;\n\n    if (isDOMElement(imageData)) {\n      imageData = getImageDataFromElement(imageData);\n    }\n\n    if (\n      typeof imageData === \"string\" &&\n      getImageFileTypeByImageData(imageData) === UNKNOWN\n    ) {\n      tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n      if (tmpImageData === \"\") {\n        tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n      }\n      imageData = tmpImageData;\n    }\n\n    format = getImageFileTypeByImageData(imageData);\n    if (!isImageTypeSupported(format)) {\n      throw new Error(\n        \"addImage does not support files of type '\" +\n          format +\n          \"', please ensure that a plugin for '\" +\n          format +\n          \"' support is added.\"\n      );\n    }\n\n    if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n      imageData = binaryStringToUint8Array(imageData);\n    }\n\n    image = this[\"process\" + format.toUpperCase()](imageData);\n\n    if (!image) {\n      throw new Error(\"An unknown error occurred whilst processing the image\");\n    }\n\n    image.fileType = format;\n\n    return image;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n * <br />\n * This plugin current supports <br />\n * <li> Goto Page (set pageNumber and top in options)\n * <li> Goto Name (set name and top in options)\n * <li> Goto URL (set url in options)\n * <p>\n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n *  (set magFactor in options).  XYZ is the default.\n * </p>\n * <p>\n *  Links, Text, Popup, and FreeText are supported.\n * </p>\n * <p>\n * Options In PDF spec Not Implemented Yet\n * <li> link border\n * <li> named target\n * <li> page coordinates\n * <li> destination page scaling and layout\n * <li> actions other than URL and GotoPage\n * <li> background / hover actions\n * </p>\n * @name annotations\n * @module\n */\n\n/*\n    Destination Magnification Factors\n    See PDF 1.3 Page 386 for meanings and options\n\n    [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var notEmpty = function(obj) {\n    if (typeof obj != \"undefined\") {\n      if (obj != \"\") {\n        return true;\n      }\n    }\n  };\n\n  jsPDF.API.events.push([\n    \"addPage\",\n    function(addPageData) {\n      var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n      pageInfo.pageContext.annotations = [];\n    }\n  ]);\n\n  jsPDFAPI.events.push([\n    \"putPage\",\n    function(putPageData) {\n      var getHorizontalCoordinateString = this.internal.getCoordinateString;\n      var getVerticalCoordinateString = this.internal\n        .getVerticalCoordinateString;\n      var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n      var pageAnnos = putPageData.pageContext.annotations;\n\n      var anno, rect, line;\n      var found = false;\n      for (var a = 0; a < pageAnnos.length && !found; a++) {\n        anno = pageAnnos[a];\n        switch (anno.type) {\n          case \"link\":\n            if (\n              notEmpty(anno.options.url) ||\n              notEmpty(anno.options.pageNumber)\n            ) {\n              found = true;\n            }\n            break;\n          case \"reference\":\n          case \"text\":\n          case \"freetext\":\n            found = true;\n            break;\n        }\n      }\n      if (found == false) {\n        return;\n      }\n\n      this.internal.write(\"/Annots [\");\n      for (var i = 0; i < pageAnnos.length; i++) {\n        anno = pageAnnos[i];\n        var escape = this.internal.pdfEscape;\n        var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n        switch (anno.type) {\n          case \"reference\":\n            // References to Widget Annotations (for AcroForm Fields)\n            this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n            break;\n          case \"text\":\n            // Create a an object for both the text and the popup\n            var objText = this.internal.newAdditionalObject();\n            var objPopup = this.internal.newAdditionalObject();\n            var encryptorText = this.internal.getEncryptor(objText.objId);\n\n            var title = anno.title || \"Note\";\n            rect =\n              \"/Rect [\" +\n              getHorizontalCoordinateString(anno.bounds.x) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n              \" \" +\n              getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y) +\n              \"] \";\n\n            line =\n              \"<</Type /Annot /Subtype /\" +\n              \"Text\" +\n              \" \" +\n              rect +\n              \"/Contents (\" +\n              escape(encryptorText(anno.contents)) +\n              \")\";\n            line += \" /Popup \" + objPopup.objId + \" 0 R\";\n            line += \" /P \" + pageInfo.objId + \" 0 R\";\n            line += \" /T (\" + escape(encryptorText(title)) + \") >>\";\n            objText.content = line;\n\n            var parent = objText.objId + \" 0 R\";\n            var popoff = 30;\n            rect =\n              \"/Rect [\" +\n              getHorizontalCoordinateString(anno.bounds.x + popoff) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n              \" \" +\n              getHorizontalCoordinateString(\n                anno.bounds.x + anno.bounds.w + popoff\n              ) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y) +\n              \"] \";\n            line =\n              \"<</Type /Annot /Subtype /\" +\n              \"Popup\" +\n              \" \" +\n              rect +\n              \" /Parent \" +\n              parent;\n            if (anno.open) {\n              line += \" /Open true\";\n            }\n            line += \" >>\";\n            objPopup.content = line;\n\n            this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n            break;\n          case \"freetext\":\n            rect =\n              \"/Rect [\" +\n              getHorizontalCoordinateString(anno.bounds.x) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y) +\n              \" \" +\n              getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n              \" \" +\n              getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n              \"] \";\n            var color = anno.color || \"#000000\";\n            line =\n              \"<</Type /Annot /Subtype /\" +\n              \"FreeText\" +\n              \" \" +\n              rect +\n              \"/Contents (\" +\n              escape(encryptor(anno.contents)) +\n              \")\";\n            line +=\n              \" /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\" +\n              color +\n              \")\";\n            line += \" /Border [0 0 0]\";\n            line += \" >>\";\n            this.internal.write(line);\n            break;\n          case \"link\":\n            if (anno.options.name) {\n              var loc = this.annotations._nameMap[anno.options.name];\n              anno.options.pageNumber = loc.page;\n              anno.options.top = loc.y;\n            } else {\n              if (!anno.options.top) {\n                anno.options.top = 0;\n              }\n            }\n\n            rect =\n              \"/Rect [\" +\n              anno.finalBounds.x +\n              \" \" +\n              anno.finalBounds.y +\n              \" \" +\n              anno.finalBounds.w +\n              \" \" +\n              anno.finalBounds.h +\n              \"] \";\n\n            line = \"\";\n            if (anno.options.url) {\n              line =\n                \"<</Type /Annot /Subtype /Link \" +\n                rect +\n                \"/Border [0 0 0] /A <</S /URI /URI (\" +\n                escape(encryptor(anno.options.url)) +\n                \") >>\";\n            } else if (anno.options.pageNumber) {\n              // first page is 0\n              var info = this.internal.getPageInfo(anno.options.pageNumber);\n              line =\n                \"<</Type /Annot /Subtype /Link \" +\n                rect +\n                \"/Border [0 0 0] /Dest [\" +\n                info.objId +\n                \" 0 R\";\n              anno.options.magFactor = anno.options.magFactor || \"XYZ\";\n              switch (anno.options.magFactor) {\n                case \"Fit\":\n                  line += \" /Fit]\";\n                  break;\n                case \"FitH\":\n                  line += \" /FitH \" + anno.options.top + \"]\";\n                  break;\n                case \"FitV\":\n                  anno.options.left = anno.options.left || 0;\n                  line += \" /FitV \" + anno.options.left + \"]\";\n                  break;\n                case \"XYZ\":\n                default:\n                  var top = getVerticalCoordinateString(anno.options.top);\n                  anno.options.left = anno.options.left || 0;\n                  // 0 or null zoom will not change zoom factor\n                  if (typeof anno.options.zoom === \"undefined\") {\n                    anno.options.zoom = 0;\n                  }\n                  line +=\n                    \" /XYZ \" +\n                    anno.options.left +\n                    \" \" +\n                    top +\n                    \" \" +\n                    anno.options.zoom +\n                    \"]\";\n                  break;\n              }\n            }\n\n            if (line != \"\") {\n              line += \" >>\";\n              this.internal.write(line);\n            }\n            break;\n        }\n      }\n      this.internal.write(\"]\");\n    }\n  ]);\n\n  /**\n   * @name createAnnotation\n   * @function\n   * @param {Object} options\n   */\n  jsPDFAPI.createAnnotation = function(options) {\n    var pageInfo = this.internal.getCurrentPageInfo();\n    switch (options.type) {\n      case \"link\":\n        this.link(\n          options.bounds.x,\n          options.bounds.y,\n          options.bounds.w,\n          options.bounds.h,\n          options\n        );\n        break;\n      case \"text\":\n      case \"freetext\":\n        pageInfo.pageContext.annotations.push(options);\n        break;\n    }\n  };\n\n  /**\n   * Create a link\n   *\n   * valid options\n   * <li> pageNumber or url [required]\n   * <p>If pageNumber is specified, top and zoom may also be specified</p>\n   * @name link\n   * @function\n   * @param {number} x\n   * @param {number} y\n   * @param {number} w\n   * @param {number} h\n   * @param {Object} options\n   */\n  jsPDFAPI.link = function(x, y, w, h, options) {\n    var pageInfo = this.internal.getCurrentPageInfo();\n    var getHorizontalCoordinateString = this.internal.getCoordinateString;\n    var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n    pageInfo.pageContext.annotations.push({\n      finalBounds: {\n        x: getHorizontalCoordinateString(x),\n        y: getVerticalCoordinateString(y),\n        w: getHorizontalCoordinateString(x + w),\n        h: getVerticalCoordinateString(y + h)\n      },\n      options: options,\n      type: \"link\"\n    });\n  };\n\n  /**\n   * Currently only supports single line text.\n   * Returns the width of the text/link\n   *\n   * @name textWithLink\n   * @function\n   * @param {string} text\n   * @param {number} x\n   * @param {number} y\n   * @param {Object} options\n   * @returns {number} width the width of the text/link\n   */\n  jsPDFAPI.textWithLink = function(text, x, y, options) {\n    var width = this.getTextWidth(text);\n    var height = this.internal.getLineHeight() / this.internal.scaleFactor;\n    this.text(text, x, y, options);\n    //TODO We really need the text baseline height to do this correctly.\n    // Or ability to draw text on top, bottom, center, or baseline.\n    y += height * 0.2;\n    //handle x position based on the align option\n    if (options.align === \"center\") {\n      x = x - width / 2; //since starting from center move the x position by half of text width\n    }\n    if (options.align === \"right\") {\n      x = x - width;\n    }\n    this.link(x, y - height, width, height, options);\n    return width;\n  };\n\n  //TODO move into external library\n  /**\n   * @name getTextWidth\n   * @function\n   * @param {string} text\n   * @returns {number} txtWidth\n   */\n  jsPDFAPI.getTextWidth = function(text) {\n    var fontSize = this.internal.getFontSize();\n    var txtWidth =\n      (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n    return txtWidth;\n  };\n\n  return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n   * Arabic Substition A\n   */\n  var arabicSubstitionA = {\n    0x0621: [0xfe80], // ARABIC LETTER HAMZA\n    0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n    0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n    0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n    0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n    0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n    0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n    0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n    0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n    0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n    0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n    0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n    0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n    0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n    0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n    0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n    0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n    0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n    0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n    0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n    0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n    0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n    0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n    0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n    0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n    0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n    0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n    0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n    0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n    0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n    0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n    0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n    0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n    0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n    0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n    0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n    0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n    0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n    0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n    0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n    0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n    0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n    0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n    0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n    0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n    0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n    0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n    0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n    0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n    0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n    0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n    0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n    0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n    0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n    0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n    0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n    0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n    0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n    0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n    0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n    0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n    0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n    0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n    0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n    0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n    0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n    0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n    0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n    0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n    0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n    0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n    0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n    0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n    0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n    0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n    0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n  };\n\n  /*\n    var ligaturesSubstitutionA = {\n        0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n    };\n    */\n\n  var ligatures = {\n    0xfedf: {\n      0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n      0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n      0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n      0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n    },\n    0xfee0: {\n      0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n      0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n      0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n      0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n    },\n    0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n    0x0651: {\n      0x064c: 0xfc5e, // Shadda + Dammatan\n      0x064d: 0xfc5f, // Shadda + Kasratan\n      0x064e: 0xfc60, // Shadda + Fatha\n      0x064f: 0xfc61, // Shadda + Damma\n      0x0650: 0xfc62 // Shadda + Kasra\n    }\n  };\n\n  var arabic_diacritics = {\n    1612: 64606, // Shadda + Dammatan\n    1613: 64607, // Shadda + Kasratan\n    1614: 64608, // Shadda + Fatha\n    1615: 64609, // Shadda + Damma\n    1616: 64610 // Shadda + Kasra\n  };\n\n  var alfletter = [1570, 1571, 1573, 1575];\n\n  var noChangeInForm = -1;\n  var isolatedForm = 0;\n  var finalForm = 1;\n  var initialForm = 2;\n  var medialForm = 3;\n\n  jsPDFAPI.__arabicParser__ = {};\n\n  //private\n  var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n    letter\n  ) {\n    return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n  });\n\n  var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n    letter\n  ) {\n    return (\n      typeof letter === \"string\" &&\n      /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n        letter\n      )\n    );\n  });\n\n  var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n    );\n  });\n\n  var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n    );\n  });\n\n  jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n    );\n  };\n\n  var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n    );\n  });\n\n  jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n    );\n  };\n\n  var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n    letter\n  ) {\n    return (\n      isArabicLetter(letter) &&\n      isInArabicSubstitutionA(letter) &&\n      arabicSubstitionA[letter.charCodeAt(0)].length == 4\n    );\n  });\n\n  var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n    letters\n  ) {\n    var i = 0;\n    var tmpLigatures = ligatures;\n    var result = \"\";\n    var effectedLetters = 0;\n\n    for (i = 0; i < letters.length; i += 1) {\n      if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n        effectedLetters++;\n        tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n        if (typeof tmpLigatures === \"number\") {\n          result += String.fromCharCode(tmpLigatures);\n          tmpLigatures = ligatures;\n          effectedLetters = 0;\n        }\n        if (i === letters.length - 1) {\n          tmpLigatures = ligatures;\n          result += letters.charAt(i - (effectedLetters - 1));\n          i = i - (effectedLetters - 1);\n          effectedLetters = 0;\n        }\n      } else {\n        tmpLigatures = ligatures;\n        result += letters.charAt(i - effectedLetters);\n        i = i - effectedLetters;\n        effectedLetters = 0;\n      }\n    }\n\n    return result;\n  });\n\n  jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n    return (\n      letter !== undefined &&\n      arabic_diacritics[letter.charCodeAt(0)] !== undefined\n    );\n  };\n\n  var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n    currentChar,\n    beforeChar,\n    nextChar\n  ) {\n    if (!isArabicLetter(currentChar)) {\n      return -1;\n    }\n\n    if (isInArabicSubstitutionA(currentChar) === false) {\n      return noChangeInForm;\n    }\n    if (\n      !arabicLetterHasFinalForm(currentChar) ||\n      (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n      (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n      (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n      (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n      (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n    ) {\n      return isolatedForm;\n    }\n\n    if (\n      arabicLetterHasMedialForm(currentChar) &&\n      isArabicLetter(beforeChar) &&\n      !isArabicEndLetter(beforeChar) &&\n      isArabicLetter(nextChar) &&\n      arabicLetterHasFinalForm(nextChar)\n    ) {\n      return medialForm;\n    }\n\n    if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n      return finalForm;\n    }\n    return initialForm;\n  });\n\n  /**\n   * @name processArabic\n   * @function\n   * @param {string} text\n   * @returns {string}\n   */\n  var parseArabic = function(text) {\n    text = text || \"\";\n\n    var result = \"\";\n    var i = 0;\n    var j = 0;\n    var position = 0;\n    var currentLetter = \"\";\n    var prevLetter = \"\";\n    var nextLetter = \"\";\n\n    var words = text.split(\"\\\\s+\");\n    var newWords = [];\n    for (i = 0; i < words.length; i += 1) {\n      newWords.push(\"\");\n      for (j = 0; j < words[i].length; j += 1) {\n        currentLetter = words[i][j];\n        prevLetter = words[i][j - 1];\n        nextLetter = words[i][j + 1];\n        if (isArabicLetter(currentLetter)) {\n          position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n          if (position !== -1) {\n            newWords[i] += String.fromCharCode(\n              arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n            );\n          } else {\n            newWords[i] += currentLetter;\n          }\n        } else {\n          newWords[i] += currentLetter;\n        }\n      }\n\n      newWords[i] = resolveLigatures(newWords[i]);\n    }\n    result = newWords.join(\" \");\n\n    return result;\n  };\n\n  var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n    var text =\n      typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n    var tmpText = [];\n    var result;\n\n    if (Array.isArray(text)) {\n      var i = 0;\n      tmpText = [];\n      for (i = 0; i < text.length; i += 1) {\n        if (Array.isArray(text[i])) {\n          tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n        } else {\n          tmpText.push([parseArabic(text[i])]);\n        }\n      }\n      result = tmpText;\n    } else {\n      result = parseArabic(text);\n    }\n    if (typeof arguments[0] === \"string\") {\n      return result;\n    } else {\n      arguments[0].text = result;\n      return arguments[0];\n    }\n  });\n\n  jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n   *\n   * @name autoPrint\n   * @function\n   * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n   * @returns {jsPDF}\n   * @example\n   * var doc = new jsPDF();\n   * doc.text(10, 10, 'This is a test');\n   * doc.autoPrint({variant: 'non-conform'});\n   * doc.save('autoprint.pdf');\n   */\n  jsPDFAPI.autoPrint = function(options) {\n    \"use strict\";\n    var refAutoPrintTag;\n    options = options || {};\n    options.variant = options.variant || \"non-conform\";\n\n    switch (options.variant) {\n      case \"javascript\":\n        //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n        this.addJS(\"print({});\");\n        break;\n      case \"non-conform\":\n      default:\n        this.internal.events.subscribe(\"postPutResources\", function() {\n          refAutoPrintTag = this.internal.newObject();\n          this.internal.out(\"<<\");\n          this.internal.out(\"/S /Named\");\n          this.internal.out(\"/Type /Action\");\n          this.internal.out(\"/N /Print\");\n          this.internal.out(\">>\");\n          this.internal.out(\"endobj\");\n        });\n\n        this.internal.events.subscribe(\"putCatalog\", function() {\n          this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n        });\n        break;\n    }\n    return this;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * @class Canvas\n   * @classdesc A Canvas Wrapper for jsPDF\n   */\n  var Canvas = function() {\n    var jsPdfInstance = undefined;\n    Object.defineProperty(this, \"pdf\", {\n      get: function() {\n        return jsPdfInstance;\n      },\n      set: function(value) {\n        jsPdfInstance = value;\n      }\n    });\n\n    var _width = 150;\n    /**\n     * The height property is a positive integer reflecting the height HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n     * This is one of the two properties, the other being width, that controls the size of the canvas.\n     *\n     * @name width\n     */\n    Object.defineProperty(this, \"width\", {\n      get: function() {\n        return _width;\n      },\n      set: function(value) {\n        if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n          _width = 150;\n        } else {\n          _width = value;\n        }\n        if (this.getContext(\"2d\").pageWrapXEnabled) {\n          this.getContext(\"2d\").pageWrapX = _width + 1;\n        }\n      }\n    });\n\n    var _height = 300;\n    /**\n     * The width property is a positive integer reflecting the width HTML attribute of the <canvas> element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n     * This is one of the two properties, the other being height, that controls the size of the canvas.\n     *\n     * @name height\n     */\n    Object.defineProperty(this, \"height\", {\n      get: function() {\n        return _height;\n      },\n      set: function(value) {\n        if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n          _height = 300;\n        } else {\n          _height = value;\n        }\n        if (this.getContext(\"2d\").pageWrapYEnabled) {\n          this.getContext(\"2d\").pageWrapY = _height + 1;\n        }\n      }\n    });\n\n    var _childNodes = [];\n    Object.defineProperty(this, \"childNodes\", {\n      get: function() {\n        return _childNodes;\n      },\n      set: function(value) {\n        _childNodes = value;\n      }\n    });\n\n    var _style = {};\n    Object.defineProperty(this, \"style\", {\n      get: function() {\n        return _style;\n      },\n      set: function(value) {\n        _style = value;\n      }\n    });\n\n    Object.defineProperty(this, \"parentNode\", {});\n  };\n\n  /**\n   * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n   *\n   * @name getContext\n   * @function\n   * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n   * @param {object} contextAttributes\n   */\n  Canvas.prototype.getContext = function(contextType, contextAttributes) {\n    contextType = contextType || \"2d\";\n    var key;\n\n    if (contextType !== \"2d\") {\n      return null;\n    }\n    for (key in contextAttributes) {\n      if (this.pdf.context2d.hasOwnProperty(key)) {\n        this.pdf.context2d[key] = contextAttributes[key];\n      }\n    }\n    this.pdf.context2d._canvas = this;\n    return this.pdf.context2d;\n  };\n\n  /**\n   * The toDataURL() method is just a stub to throw an error if accidently called.\n   *\n   * @name toDataURL\n   * @function\n   */\n  Canvas.prototype.toDataURL = function() {\n    throw new Error(\"toDataURL is not implemented.\");\n  };\n\n  jsPDFAPI.events.push([\n    \"initialized\",\n    function() {\n      this.canvas = new Canvas();\n      this.canvas.pdf = this;\n    }\n  ]);\n\n  return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *               2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *               2013 Lee Driscoll, https://github.com/lsdriscoll\n *               2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n *               2014 James Hall, james@parall.ax\n *               2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n  var px2pt = (0.264583 * 72) / 25.4;\n  var printingHeaderRow = false;\n\n  var _initialize = function() {\n    if (typeof this.internal.__cell__ === \"undefined\") {\n      this.internal.__cell__ = {};\n      this.internal.__cell__.padding = 3;\n      this.internal.__cell__.headerFunction = undefined;\n      this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n      this.internal.__cell__.margins.width = this.getPageWidth();\n      _reset.call(this);\n    }\n  };\n\n  var _reset = function() {\n    this.internal.__cell__.lastCell = new Cell();\n    this.internal.__cell__.pages = 1;\n  };\n\n  var Cell = function() {\n    var _x = arguments[0];\n    Object.defineProperty(this, \"x\", {\n      enumerable: true,\n      get: function() {\n        return _x;\n      },\n      set: function(value) {\n        _x = value;\n      }\n    });\n    var _y = arguments[1];\n    Object.defineProperty(this, \"y\", {\n      enumerable: true,\n      get: function() {\n        return _y;\n      },\n      set: function(value) {\n        _y = value;\n      }\n    });\n    var _width = arguments[2];\n    Object.defineProperty(this, \"width\", {\n      enumerable: true,\n      get: function() {\n        return _width;\n      },\n      set: function(value) {\n        _width = value;\n      }\n    });\n    var _height = arguments[3];\n    Object.defineProperty(this, \"height\", {\n      enumerable: true,\n      get: function() {\n        return _height;\n      },\n      set: function(value) {\n        _height = value;\n      }\n    });\n    var _text = arguments[4];\n    Object.defineProperty(this, \"text\", {\n      enumerable: true,\n      get: function() {\n        return _text;\n      },\n      set: function(value) {\n        _text = value;\n      }\n    });\n    var _lineNumber = arguments[5];\n    Object.defineProperty(this, \"lineNumber\", {\n      enumerable: true,\n      get: function() {\n        return _lineNumber;\n      },\n      set: function(value) {\n        _lineNumber = value;\n      }\n    });\n    var _align = arguments[6];\n    Object.defineProperty(this, \"align\", {\n      enumerable: true,\n      get: function() {\n        return _align;\n      },\n      set: function(value) {\n        _align = value;\n      }\n    });\n\n    return this;\n  };\n\n  Cell.prototype.clone = function() {\n    return new Cell(\n      this.x,\n      this.y,\n      this.width,\n      this.height,\n      this.text,\n      this.lineNumber,\n      this.align\n    );\n  };\n\n  Cell.prototype.toArray = function() {\n    return [\n      this.x,\n      this.y,\n      this.width,\n      this.height,\n      this.text,\n      this.lineNumber,\n      this.align\n    ];\n  };\n\n  /**\n   * @name setHeaderFunction\n   * @function\n   * @param {function} func\n   */\n  jsPDFAPI.setHeaderFunction = function(func) {\n    _initialize.call(this);\n    this.internal.__cell__.headerFunction =\n      typeof func === \"function\" ? func : undefined;\n    return this;\n  };\n\n  /**\n   * @name getTextDimensions\n   * @function\n   * @param {string} txt\n   * @returns {Object} dimensions\n   */\n  jsPDFAPI.getTextDimensions = function(text, options) {\n    _initialize.call(this);\n    options = options || {};\n    var fontSize = options.fontSize || this.getFontSize();\n    var font = options.font || this.getFont();\n    var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n    var width = 0;\n    var amountOfLines = 0;\n    var height = 0;\n    var tempWidth = 0;\n\n    if (!Array.isArray(text) && typeof text !== \"string\") {\n      if (typeof text === \"number\") {\n        text = String(text);\n      } else {\n        throw new Error(\n          \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n        );\n      }\n    }\n\n    const maxWidth = options.maxWidth;\n    if (maxWidth > 0) {\n      if (typeof text === \"string\") {\n        text = this.splitTextToSize(text, maxWidth);\n      } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n        text = text.reduce(function(acc, textLine) {\n          return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n        }, []);\n      }\n    } else {\n      // Without the else clause, it will not work if you do not pass along maxWidth\n      text = Array.isArray(text) ? text : [text];\n    }\n\n    for (var i = 0; i < text.length; i++) {\n      tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n      if (width < tempWidth) {\n        width = tempWidth;\n      }\n    }\n\n    if (width !== 0) {\n      amountOfLines = text.length;\n    }\n\n    width = width / scaleFactor;\n    height = Math.max(\n      (amountOfLines * fontSize * this.getLineHeightFactor() -\n        fontSize * (this.getLineHeightFactor() - 1)) /\n        scaleFactor,\n      0\n    );\n    return { w: width, h: height };\n  };\n\n  /**\n   * @name cellAddPage\n   * @function\n   */\n  jsPDFAPI.cellAddPage = function() {\n    _initialize.call(this);\n\n    this.addPage();\n\n    var margins = this.internal.__cell__.margins || NO_MARGINS;\n    this.internal.__cell__.lastCell = new Cell(\n      margins.left,\n      margins.top,\n      undefined,\n      undefined\n    );\n    this.internal.__cell__.pages += 1;\n\n    return this;\n  };\n\n  /**\n   * @name cell\n   * @function\n   * @param {number} x\n   * @param {number} y\n   * @param {number} width\n   * @param {number} height\n   * @param {string} text\n   * @param {number} lineNumber lineNumber\n   * @param {string} align\n   * @return {jsPDF} jsPDF-instance\n   */\n  var cell = (jsPDFAPI.cell = function() {\n    var currentCell;\n\n    if (arguments[0] instanceof Cell) {\n      currentCell = arguments[0];\n    } else {\n      currentCell = new Cell(\n        arguments[0],\n        arguments[1],\n        arguments[2],\n        arguments[3],\n        arguments[4],\n        arguments[5]\n      );\n    }\n    _initialize.call(this);\n    var lastCell = this.internal.__cell__.lastCell;\n    var padding = this.internal.__cell__.padding;\n    var margins = this.internal.__cell__.margins || NO_MARGINS;\n    var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n    var printHeaders = this.internal.__cell__.printHeaders;\n    // If this is not the first cell, we must change its position\n    if (typeof lastCell.lineNumber !== \"undefined\") {\n      if (lastCell.lineNumber === currentCell.lineNumber) {\n        //Same line\n        currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n        currentCell.y = lastCell.y || 0;\n      } else {\n        //New line\n        if (\n          lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n          this.getPageHeight()\n        ) {\n          this.cellAddPage();\n          currentCell.y = margins.top;\n          if (printHeaders && tableHeaderRow) {\n            this.printHeaderRow(currentCell.lineNumber, true);\n            currentCell.y += tableHeaderRow[0].height;\n          }\n        } else {\n          currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n        }\n      }\n    }\n\n    if (typeof currentCell.text[0] !== \"undefined\") {\n      this.rect(\n        currentCell.x,\n        currentCell.y,\n        currentCell.width,\n        currentCell.height,\n        printingHeaderRow === true ? \"FD\" : undefined\n      );\n      if (currentCell.align === \"right\") {\n        this.text(\n          currentCell.text,\n          currentCell.x + currentCell.width - padding,\n          currentCell.y + padding,\n          { align: \"right\", baseline: \"top\" }\n        );\n      } else if (currentCell.align === \"center\") {\n        this.text(\n          currentCell.text,\n          currentCell.x + currentCell.width / 2,\n          currentCell.y + padding,\n          {\n            align: \"center\",\n            baseline: \"top\",\n            maxWidth: currentCell.width - padding - padding\n          }\n        );\n      } else {\n        this.text(\n          currentCell.text,\n          currentCell.x + padding,\n          currentCell.y + padding,\n          {\n            align: \"left\",\n            baseline: \"top\",\n            maxWidth: currentCell.width - padding - padding\n          }\n        );\n      }\n    }\n    this.internal.__cell__.lastCell = currentCell;\n    return this;\n  });\n\n  /**\n     * Create a table from a set of data.\n     * @name table\n     * @function\n     * @param {Integer} [x] : left-position for top-left corner of table\n     * @param {Integer} [y] top-position for top-left corner of table\n     * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n     * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n     * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n     * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n     * @param {Object} [config.margins] margin values for left, top, bottom, and width\n     * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n     * @param {Object} [config.padding] cell-padding in pt to use (optional)\n     * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n     * @returns {jsPDF} jsPDF-instance\n     */\n\n  jsPDFAPI.table = function(x, y, data, headers, config) {\n    _initialize.call(this);\n    if (!data) {\n      throw new Error(\"No data for PDF table.\");\n    }\n\n    config = config || {};\n\n    var headerNames = [],\n      headerLabels = [],\n      headerAligns = [],\n      i,\n      columnMatrix = {},\n      columnWidths = {},\n      column,\n      columnMinWidths = [],\n      j,\n      tableHeaderConfigs = [],\n      //set up defaults. If a value is provided in config, defaults will be overwritten:\n      autoSize = config.autoSize || false,\n      printHeaders = config.printHeaders === false ? false : true,\n      fontSize =\n        config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n          ? config.css[\"font-size\"] * 16\n          : config.fontSize || 12,\n      margins =\n        config.margins ||\n        Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n      padding = typeof config.padding === \"number\" ? config.padding : 3,\n      headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\";\n\n    _reset.call(this);\n\n    this.internal.__cell__.printHeaders = printHeaders;\n    this.internal.__cell__.margins = margins;\n    this.internal.__cell__.table_font_size = fontSize;\n    this.internal.__cell__.padding = padding;\n    this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n    this.setFontSize(fontSize);\n\n    // Set header values\n    if (headers === undefined || headers === null) {\n      // No headers defined so we derive from data\n      headerNames = Object.keys(data[0]);\n      headerLabels = headerNames;\n      headerAligns = headerNames.map(function() {\n        return \"left\";\n      });\n    } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n      headerNames = headers.map(function(header) {\n        return header.name;\n      });\n      headerLabels = headers.map(function(header) {\n        return header.prompt || header.name || \"\";\n      });\n      headerAligns = headers.map(function(header) {\n        return header.align || \"left\";\n      });\n      // Split header configs into names and prompts\n      for (i = 0; i < headers.length; i += 1) {\n        columnWidths[headers[i].name] = headers[i].width * px2pt;\n      }\n    } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n      headerNames = headers;\n      headerLabels = headerNames;\n      headerAligns = headerNames.map(function() {\n        return \"left\";\n      });\n    }\n\n    if (autoSize) {\n      var headerName;\n      for (i = 0; i < headerNames.length; i += 1) {\n        headerName = headerNames[i];\n\n        // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n        columnMatrix[headerName] = data.map(function(rec) {\n          return rec[headerName];\n        });\n\n        // get header width\n        this.setFont(undefined, \"bold\");\n        columnMinWidths.push(\n          this.getTextDimensions(headerLabels[i], {\n            fontSize: this.internal.__cell__.table_font_size,\n            scaleFactor: this.internal.scaleFactor\n          }).w\n        );\n        column = columnMatrix[headerName];\n\n        // get cell widths\n        this.setFont(undefined, \"normal\");\n        for (j = 0; j < column.length; j += 1) {\n          columnMinWidths.push(\n            this.getTextDimensions(column[j], {\n              fontSize: this.internal.__cell__.table_font_size,\n              scaleFactor: this.internal.scaleFactor\n            }).w\n          );\n        }\n\n        // get final column width\n        columnWidths[headerName] =\n          Math.max.apply(null, columnMinWidths) + padding + padding;\n\n        //have to reset\n        columnMinWidths = [];\n      }\n    }\n\n    // -- Construct the table\n\n    if (printHeaders) {\n      var row = {};\n      for (i = 0; i < headerNames.length; i += 1) {\n        row[headerNames[i]] = {};\n        row[headerNames[i]].text = headerLabels[i];\n        row[headerNames[i]].align = headerAligns[i];\n      }\n\n      var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n      // Construct the header row\n      tableHeaderConfigs = headerNames.map(function(value) {\n        return new Cell(\n          x,\n          y,\n          columnWidths[value],\n          rowHeight,\n          row[value].text,\n          undefined,\n          row[value].align\n        );\n      });\n\n      // Store the table header config\n      this.setTableHeaderRow(tableHeaderConfigs);\n\n      // Print the header for the start of the table\n      this.printHeaderRow(1, false);\n    }\n\n    // Construct the data rows\n\n    var align = headers.reduce(function(pv, cv) {\n      pv[cv.name] = cv.align;\n      return pv;\n    }, {});\n    for (i = 0; i < data.length; i += 1) {\n      var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n      for (j = 0; j < headerNames.length; j += 1) {\n        cell.call(\n          this,\n          new Cell(\n            x,\n            y,\n            columnWidths[headerNames[j]],\n            lineHeight,\n            data[i][headerNames[j]],\n            i + 2,\n            align[headerNames[j]]\n          )\n        );\n      }\n    }\n    this.internal.__cell__.table_x = x;\n    this.internal.__cell__.table_y = y;\n    return this;\n  };\n\n  /**\n   * Calculate the height for containing the highest column\n   *\n   * @name calculateLineHeight\n   * @function\n   * @param {Object[]} model is the line of data we want to calculate the height of\n   * @param {Integer[]} columnWidths is size of each column\n   * @returns {number} lineHeight\n   * @private\n   */\n  var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n    var padding = this.internal.__cell__.padding;\n    var fontSize = this.internal.__cell__.table_font_size;\n    var scaleFactor = this.internal.scaleFactor;\n\n    return Object.keys(model)\n      .map(function(key) {\n        var value = model[key];\n        return this.splitTextToSize(\n          value.hasOwnProperty(\"text\") ? value.text : value,\n          columnWidths[key] - padding - padding\n        );\n      }, this)\n      .map(function(value) {\n        return (\n          (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n          padding +\n          padding\n        );\n      }, this)\n      .reduce(function(pv, cv) {\n        return Math.max(pv, cv);\n      }, 0);\n  };\n\n  /**\n   * Store the config for outputting a table header\n   *\n   * @name setTableHeaderRow\n   * @function\n   * @param {Object[]} config\n   * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n   * except the lineNumber parameter is excluded\n   */\n  jsPDFAPI.setTableHeaderRow = function(config) {\n    _initialize.call(this);\n    this.internal.__cell__.tableHeaderRow = config;\n  };\n\n  /**\n   * Output the store header row\n   *\n   * @name printHeaderRow\n   * @function\n   * @param {number} lineNumber The line number to output the header at\n   * @param {boolean} new_page\n   */\n  jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n    _initialize.call(this);\n    if (!this.internal.__cell__.tableHeaderRow) {\n      throw new Error(\"Property tableHeaderRow does not exist.\");\n    }\n\n    var tableHeaderCell;\n\n    printingHeaderRow = true;\n    if (typeof this.internal.__cell__.headerFunction === \"function\") {\n      var position = this.internal.__cell__.headerFunction(\n        this,\n        this.internal.__cell__.pages\n      );\n      this.internal.__cell__.lastCell = new Cell(\n        position[0],\n        position[1],\n        position[2],\n        position[3],\n        undefined,\n        -1\n      );\n    }\n    this.setFont(undefined, \"bold\");\n\n    var tempHeaderConf = [];\n    for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n      tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n      if (new_page) {\n        tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n        tempHeaderConf.push(tableHeaderCell);\n      }\n      tableHeaderCell.lineNumber = lineNumber;\n      this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n      cell.call(this, tableHeaderCell);\n    }\n    if (tempHeaderConf.length > 0) {\n      this.setTableHeaderRow(tempHeaderConf);\n    }\n    this.setFont(undefined, \"normal\");\n    printingHeaderRow = false;\n  };\n})(jsPDF.API);\n","function toLookup(arr) {\n  return arr.reduce(function(lookup, name, index) {\n    lookup[name] = index;\n\n    return lookup;\n  }, {});\n}\n\nvar fontStyleOrder = {\n  italic: [\"italic\", \"oblique\", \"normal\"],\n  oblique: [\"oblique\", \"italic\", \"normal\"],\n  normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n  \"ultra-condensed\",\n  \"extra-condensed\",\n  \"condensed\",\n  \"semi-condensed\",\n  \"normal\",\n  \"semi-expanded\",\n  \"expanded\",\n  \"extra-expanded\",\n  \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n  stretch = stretch || \"normal\";\n\n  return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n  style = style || \"normal\";\n\n  return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n  if (!weight) {\n    return 400;\n  }\n\n  if (typeof weight === \"number\") {\n    // Ignore values which aren't valid font-weights.\n    return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n  }\n\n  if (/^\\d00$/.test(weight)) {\n    return parseInt(weight);\n  }\n\n  switch (weight) {\n    case \"bold\":\n      return 700;\n\n    case \"normal\":\n    default:\n      return 400;\n  }\n}\n\nexport function normalizeFontFace(fontFace) {\n  var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n  var style = normalizeFontStyle(fontFace.style);\n  var weight = normalizeFontWeight(fontFace.weight);\n  var stretch = normalizeFontStretch(fontFace.stretch);\n\n  return {\n    family: family,\n    style: style,\n    weight: weight,\n    stretch: stretch,\n    src: fontFace.src || [],\n\n    // The ref property maps this font-face to the font\n    // added by the .addFont() method.\n    ref: fontFace.ref || {\n      name: family,\n      style: [stretch, style, weight].join(\" \")\n    }\n  };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n  var map = {};\n\n  for (var i = 0; i < fontFaces.length; ++i) {\n    var normalized = normalizeFontFace(fontFaces[i]);\n\n    var name = normalized.family;\n    var stretch = normalized.stretch;\n    var style = normalized.style;\n    var weight = normalized.weight;\n\n    map[name] = map[name] || {};\n\n    map[name][stretch] = map[name][stretch] || {};\n    map[name][stretch][style] = map[name][stretch][style] || {};\n    map[name][stretch][style][weight] = normalized;\n  }\n\n  return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.<string, any>} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n  var i;\n\n  for (i = pivot; i >= 0 && i < order.length; i += dir) {\n    if (matchingSet[order[i]]) {\n      return matchingSet[order[i]];\n    }\n  }\n\n  for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n    if (matchingSet[order[i]]) {\n      return matchingSet[order[i]];\n    }\n  }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n  if (matchingSet[stretch]) {\n    return matchingSet[stretch];\n  }\n\n  var pivot = fontStretchLookup[stretch];\n\n  // If the font-stretch value is normal or more condensed, we want to\n  // start with a descending search, otherwise we should do ascending.\n  var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n  var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n  if (!match) {\n    // Since a font-family cannot exist without having at least one stretch value\n    // we should never reach this point.\n    throw new Error(\n      \"Could not find a matching font-stretch value for \" + stretch\n    );\n  }\n\n  return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n  if (matchingSet[fontStyle]) {\n    return matchingSet[fontStyle];\n  }\n\n  var ordering = fontStyleOrder[fontStyle];\n\n  for (var i = 0; i < ordering.length; ++i) {\n    if (matchingSet[ordering[i]]) {\n      return matchingSet[ordering[i]];\n    }\n  }\n\n  // Since a font-family cannot exist without having at least one style value\n  // we should never reach this point.\n  throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n  if (matchingSet[weight]) {\n    return matchingSet[weight];\n  }\n\n  if (weight === 400 && matchingSet[500]) {\n    return matchingSet[500];\n  }\n\n  if (weight === 500 && matchingSet[400]) {\n    return matchingSet[400];\n  }\n\n  var pivot = fontWeightsLookup[weight];\n\n  // If the font-stretch value is normal or more condensed, we want to\n  // start with a descending search, otherwise we should do ascending.\n  var dir = weight < 400 ? -1 : 1;\n  var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n  if (!match) {\n    // Since a font-family cannot exist without having at least one stretch value\n    // we should never reach this point.\n    throw new Error(\n      \"Could not find a matching font-weight for value \" + weight\n    );\n  }\n\n  return match;\n}\n\nvar defaultGenericFontFamilies = {\n  \"sans-serif\": \"helvetica\",\n  fixed: \"courier\",\n  monospace: \"courier\",\n  terminal: \"courier\",\n  cursive: \"times\",\n  fantasy: \"times\",\n  serif: \"times\"\n};\n\nvar systemFonts = {\n  caption: \"times\",\n  icon: \"times\",\n  menu: \"times\",\n  \"message-box\": \"times\",\n  \"small-caption\": \"times\",\n  \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n  return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n  opts = opts || {};\n\n  var defaultFontFamily = opts.defaultFontFamily || \"times\";\n  var genericFontFamilies = Object.assign(\n    {},\n    defaultGenericFontFamilies,\n    opts.genericFontFamilies || {}\n  );\n\n  var rule = null;\n  var matches = null;\n\n  for (var i = 0; i < rules.length; ++i) {\n    rule = normalizeFontFace(rules[i]);\n\n    if (genericFontFamilies[rule.family]) {\n      rule.family = genericFontFamilies[rule.family];\n    }\n\n    if (fontFaceMap.hasOwnProperty(rule.family)) {\n      matches = fontFaceMap[rule.family];\n\n      break;\n    }\n  }\n\n  // Always fallback to a known font family.\n  matches = matches || fontFaceMap[defaultFontFamily];\n\n  if (!matches) {\n    // At this point we should definitiely have a font family, but if we\n    // don't there is something wrong with our configuration\n    throw new Error(\n      \"Could not find a font-family for the rule '\" +\n        ruleToString(rule) +\n        \"' and default family '\" +\n        defaultFontFamily +\n        \"'.\"\n    );\n  }\n\n  matches = resolveFontStretch(rule.stretch, matches);\n  matches = resolveFontStyle(rule.style, matches);\n  matches = resolveFontWeight(rule.weight, matches);\n\n  if (!matches) {\n    // We should've fount\n    throw new Error(\n      \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n    );\n  }\n\n  return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n  return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n  return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n  var index = 0;\n\n  while (index < input.length) {\n    var current = input.charAt(index);\n\n    if (current === quote) {\n      return [input.substring(0, index), input.substring(index + 1)];\n    }\n\n    index += 1;\n  }\n\n  // Unexpected end of input\n  return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n  // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n  //\n  // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n  //\n  // Breakdown of regexp:\n  // -[a-z_]     - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n  // [a-z_]      - allow a-z and underscore at beginning of input\n  // [a-z0-9_-]* - after that, anything goes\n  var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n  // non quoted value contains illegal characters\n  if (match === null) {\n    return null;\n  }\n\n  return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n  var result = [];\n  var ch, parsed;\n  var remaining = input.trim();\n\n  if (remaining === \"\") {\n    return defaultFont;\n  }\n\n  if (remaining in systemFonts) {\n    return [systemFonts[remaining]];\n  }\n\n  while (remaining !== \"\") {\n    parsed = null;\n    remaining = eatWhiteSpace(remaining);\n    ch = remaining.charAt(0);\n\n    switch (ch) {\n      case '\"':\n      case \"'\":\n        parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n        break;\n\n      default:\n        parsed = parseNonQuotedFontFamily(remaining);\n        break;\n    }\n\n    if (parsed === null) {\n      return defaultFont;\n    }\n\n    result.push(parsed[0]);\n\n    remaining = eatWhiteSpace(parsed[1]);\n\n    // We expect end of input or a comma separator here\n    if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n      return defaultFont;\n    }\n\n    remaining = remaining.replace(/^,/, \"\");\n  }\n\n  return result;\n}\n","/* eslint-disable no-fallthrough */\n/* eslint-disable no-console */\n/**\n * @license\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { RGBColor } from \"../libs/rgbcolor.js\";\nimport { console } from \"../libs/console.js\";\nimport {\n  buildFontFaceMap,\n  parseFontFamily,\n  resolveFontFace\n} from \"../libs/fontFace.js\";\n\n/**\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\n *\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\n *\n * @name context2d\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n  var ContextLayer = function(ctx) {\n    ctx = ctx || {};\n    this.isStrokeTransparent = ctx.isStrokeTransparent || false;\n    this.strokeOpacity = ctx.strokeOpacity || 1;\n    this.strokeStyle = ctx.strokeStyle || \"#000000\";\n    this.fillStyle = ctx.fillStyle || \"#000000\";\n    this.isFillTransparent = ctx.isFillTransparent || false;\n    this.fillOpacity = ctx.fillOpacity || 1;\n    this.font = ctx.font || \"10px sans-serif\";\n    this.textBaseline = ctx.textBaseline || \"alphabetic\";\n    this.textAlign = ctx.textAlign || \"left\";\n    this.lineWidth = ctx.lineWidth || 1;\n    this.lineJoin = ctx.lineJoin || \"miter\";\n    this.lineCap = ctx.lineCap || \"butt\";\n    this.path = ctx.path || [];\n    this.transform =\n      typeof ctx.transform !== \"undefined\"\n        ? ctx.transform.clone()\n        : new Matrix();\n    this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\n    this.globalAlpha = ctx.globalAlpha || 1.0;\n    this.clip_path = ctx.clip_path || [];\n    this.currentPoint = ctx.currentPoint || new Point();\n    this.miterLimit = ctx.miterLimit || 10.0;\n    this.lastPoint = ctx.lastPoint || new Point();\n\n    this.ignoreClearRect =\n      typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\n    return this;\n  };\n\n  //stub\n  var f2,\n    getHorizontalCoordinateString,\n    getVerticalCoordinateString,\n    getHorizontalCoordinate,\n    getVerticalCoordinate,\n    Point,\n    Rectangle,\n    Matrix,\n    _ctx;\n  jsPDFAPI.events.push([\n    \"initialized\",\n    function() {\n      this.context2d = new Context2D(this);\n\n      f2 = this.internal.f2;\n      getHorizontalCoordinateString = this.internal.getCoordinateString;\n      getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n      getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\n      getVerticalCoordinate = this.internal.getVerticalCoordinate;\n      Point = this.internal.Point;\n      Rectangle = this.internal.Rectangle;\n      Matrix = this.internal.Matrix;\n      _ctx = new ContextLayer();\n    }\n  ]);\n\n  var Context2D = function(pdf) {\n    Object.defineProperty(this, \"canvas\", {\n      get: function() {\n        return { parentNode: false, style: false };\n      }\n    });\n\n    var _pdf = pdf;\n    Object.defineProperty(this, \"pdf\", {\n      get: function() {\n        return _pdf;\n      }\n    });\n\n    var _pageWrapXEnabled = false;\n    /**\n     * @name pageWrapXEnabled\n     * @type {boolean}\n     * @default false\n     */\n    Object.defineProperty(this, \"pageWrapXEnabled\", {\n      get: function() {\n        return _pageWrapXEnabled;\n      },\n      set: function(value) {\n        _pageWrapXEnabled = Boolean(value);\n      }\n    });\n\n    var _pageWrapYEnabled = false;\n    /**\n     * @name pageWrapYEnabled\n     * @type {boolean}\n     * @default true\n     */\n    Object.defineProperty(this, \"pageWrapYEnabled\", {\n      get: function() {\n        return _pageWrapYEnabled;\n      },\n      set: function(value) {\n        _pageWrapYEnabled = Boolean(value);\n      }\n    });\n\n    var _posX = 0;\n    /**\n     * @name posX\n     * @type {number}\n     * @default 0\n     */\n    Object.defineProperty(this, \"posX\", {\n      get: function() {\n        return _posX;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          _posX = value;\n        }\n      }\n    });\n\n    var _posY = 0;\n    /**\n     * @name posY\n     * @type {number}\n     * @default 0\n     */\n    Object.defineProperty(this, \"posY\", {\n      get: function() {\n        return _posY;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          _posY = value;\n        }\n      }\n    });\n\n    var _autoPaging = false;\n    /**\n     * @name autoPaging\n     * @type {boolean}\n     * @default true\n     */\n    Object.defineProperty(this, \"autoPaging\", {\n      get: function() {\n        return _autoPaging;\n      },\n      set: function(value) {\n        _autoPaging = Boolean(value);\n      }\n    });\n\n    var lastBreak = 0;\n    /**\n     * @name lastBreak\n     * @type {number}\n     * @default 0\n     */\n    Object.defineProperty(this, \"lastBreak\", {\n      get: function() {\n        return lastBreak;\n      },\n      set: function(value) {\n        lastBreak = value;\n      }\n    });\n\n    var pageBreaks = [];\n    /**\n     * Y Position of page breaks.\n     * @name pageBreaks\n     * @type {number}\n     * @default 0\n     */\n    Object.defineProperty(this, \"pageBreaks\", {\n      get: function() {\n        return pageBreaks;\n      },\n      set: function(value) {\n        pageBreaks = value;\n      }\n    });\n\n    /**\n     * @name ctx\n     * @type {object}\n     * @default {}\n     */\n    Object.defineProperty(this, \"ctx\", {\n      get: function() {\n        return _ctx;\n      },\n      set: function(value) {\n        if (value instanceof ContextLayer) {\n          _ctx = value;\n        }\n      }\n    });\n\n    /**\n     * @name path\n     * @type {array}\n     * @default []\n     */\n    Object.defineProperty(this, \"path\", {\n      get: function() {\n        return _ctx.path;\n      },\n      set: function(value) {\n        _ctx.path = value;\n      }\n    });\n\n    /**\n     * @name ctxStack\n     * @type {array}\n     * @default []\n     */\n    var _ctxStack = [];\n    Object.defineProperty(this, \"ctxStack\", {\n      get: function() {\n        return _ctxStack;\n      },\n      set: function(value) {\n        _ctxStack = value;\n      }\n    });\n\n    /**\n     * Sets or returns the color, gradient, or pattern used to fill the drawing\n     *\n     * @name fillStyle\n     * @default #000000\n     * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000<br />\n     * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)<br />\n     * A pattern object to use to fill the drawing (not supported by context2d)\n     */\n    Object.defineProperty(this, \"fillStyle\", {\n      get: function() {\n        return this.ctx.fillStyle;\n      },\n      set: function(value) {\n        var rgba;\n        rgba = getRGBA(value);\n\n        this.ctx.fillStyle = rgba.style;\n        this.ctx.isFillTransparent = rgba.a === 0;\n        this.ctx.fillOpacity = rgba.a;\n\n        this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\n        this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\n      }\n    });\n\n    /**\n     * Sets or returns the color, gradient, or pattern used for strokes\n     *\n     * @name strokeStyle\n     * @default #000000\n     * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\n     * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\n     * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\n     */\n    Object.defineProperty(this, \"strokeStyle\", {\n      get: function() {\n        return this.ctx.strokeStyle;\n      },\n      set: function(value) {\n        var rgba = getRGBA(value);\n\n        this.ctx.strokeStyle = rgba.style;\n        this.ctx.isStrokeTransparent = rgba.a === 0;\n        this.ctx.strokeOpacity = rgba.a;\n\n        if (rgba.a === 0) {\n          this.pdf.setDrawColor(255, 255, 255);\n        } else if (rgba.a === 1) {\n          this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\n        } else {\n          this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\n        }\n      }\n    });\n\n    /**\n     * Sets or returns the style of the end caps for a line\n     *\n     * @name lineCap\n     * @default butt\n     * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line <br/>\n     * round A rounded end cap is added to each end of the line<br/>\n     * square A square end cap is added to each end of the line<br/>\n     */\n    Object.defineProperty(this, \"lineCap\", {\n      get: function() {\n        return this.ctx.lineCap;\n      },\n      set: function(value) {\n        if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\n          this.ctx.lineCap = value;\n          this.pdf.setLineCap(value);\n        }\n      }\n    });\n\n    /**\n     * Sets or returns the current line width\n     *\n     * @name lineWidth\n     * @default 1\n     * @property {number} lineWidth The current line width, in pixels\n     */\n    Object.defineProperty(this, \"lineWidth\", {\n      get: function() {\n        return this.ctx.lineWidth;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          this.ctx.lineWidth = value;\n          this.pdf.setLineWidth(value);\n        }\n      }\n    });\n\n    /**\n     * Sets or returns the type of corner created, when two lines meet\n     */\n    Object.defineProperty(this, \"lineJoin\", {\n      get: function() {\n        return this.ctx.lineJoin;\n      },\n      set: function(value) {\n        if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\n          this.ctx.lineJoin = value;\n          this.pdf.setLineJoin(value);\n        }\n      }\n    });\n\n    /**\n     * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\n     *\n     * @name miterLimit\n     * @default 10\n     */\n    Object.defineProperty(this, \"miterLimit\", {\n      get: function() {\n        return this.ctx.miterLimit;\n      },\n      set: function(value) {\n        if (!isNaN(value)) {\n          this.ctx.miterLimit = value;\n          this.pdf.setMiterLimit(value);\n        }\n      }\n    });\n\n    Object.defineProperty(this, \"textBaseline\", {\n      get: function() {\n        return this.ctx.textBaseline;\n      },\n      set: function(value) {\n        this.ctx.textBaseline = value;\n      }\n    });\n\n    Object.defineProperty(this, \"textAlign\", {\n      get: function() {\n        return this.ctx.textAlign;\n      },\n      set: function(value) {\n        if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\n          this.ctx.textAlign = value;\n        }\n      }\n    });\n\n    var _fontFaceMap = null;\n\n    function getFontFaceMap(pdf, fontFaces) {\n      if (_fontFaceMap === null) {\n        var fontMap = pdf.getFontList();\n\n        var convertedFontFaces = convertToFontFaces(fontMap);\n\n        _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\n      }\n\n      return _fontFaceMap;\n    }\n\n    function convertToFontFaces(fontMap) {\n      var fontFaces = [];\n\n      Object.keys(fontMap).forEach(function(family) {\n        var styles = fontMap[family];\n\n        styles.forEach(function(style) {\n          var fontFace = null;\n\n          switch (style) {\n            case \"bold\":\n              fontFace = {\n                family: family,\n                weight: \"bold\"\n              };\n              break;\n\n            case \"italic\":\n              fontFace = {\n                family: family,\n                style: \"italic\"\n              };\n              break;\n\n            case \"bolditalic\":\n              fontFace = {\n                family: family,\n                weight: \"bold\",\n                style: \"italic\"\n              };\n              break;\n\n            case \"\":\n            case \"normal\":\n              fontFace = {\n                family: family\n              };\n              break;\n          }\n\n          // If font-face is still null here, it is a font with some styling we don't recognize and\n          // cannot map or it is a font added via the fontFaces option of .html().\n          if (fontFace !== null) {\n            fontFace.ref = {\n              name: family,\n              style: style\n            };\n\n            fontFaces.push(fontFace);\n          }\n        });\n      });\n\n      return fontFaces;\n    }\n\n    var _fontFaces = null;\n    /**\n     * A map of available font-faces, as passed in the options of\n     * .html(). If set a limited implementation of the font style matching\n     * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\n     * will be used. If not set it will fallback to previous behavior.\n     */\n\n    Object.defineProperty(this, \"fontFaces\", {\n      get: function() {\n        return _fontFaces;\n      },\n      set: function(value) {\n        _fontFaceMap = null;\n        _fontFaces = value;\n      }\n    });\n\n    Object.defineProperty(this, \"font\", {\n      get: function() {\n        return this.ctx.font;\n      },\n      set: function(value) {\n        this.ctx.font = value;\n        var rx, matches;\n\n        //source: https://stackoverflow.com/a/10136041\n        // eslint-disable-next-line no-useless-escape\n        rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\n        matches = rx.exec(value);\n        if (matches !== null) {\n          var fontStyle = matches[1];\n          var fontVariant = matches[2];\n          var fontWeight = matches[3];\n          var fontSize = matches[4];\n          var lineHeight = matches[5];\n          var fontFamily = matches[6];\n        } else {\n          return;\n        }\n        var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\n        var fontSizeUnit = rxFontSize.exec(fontSize)[2];\n\n        if (\"px\" === fontSizeUnit) {\n          fontSize = Math.floor(\n            parseFloat(fontSize) * this.pdf.internal.scaleFactor\n          );\n        } else if (\"em\" === fontSizeUnit) {\n          fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\n        } else {\n          fontSize = Math.floor(\n            parseFloat(fontSize) * this.pdf.internal.scaleFactor\n          );\n        }\n\n        this.pdf.setFontSize(fontSize);\n        var parts = parseFontFamily(fontFamily);\n\n        if (this.fontFaces) {\n          var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\n\n          var rules = parts.map(function(ff) {\n            return {\n              family: ff,\n              stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\n              weight: fontWeight,\n              style: fontStyle\n            };\n          });\n\n          var font = resolveFontFace(fontFaceMap, rules);\n          this.pdf.setFont(font.ref.name, font.ref.style);\n          return;\n        }\n\n        var style = \"\";\n        if (\n          fontWeight === \"bold\" ||\n          parseInt(fontWeight, 10) >= 700 ||\n          fontStyle === \"bold\"\n        ) {\n          style = \"bold\";\n        }\n\n        if (fontStyle === \"italic\") {\n          style += \"italic\";\n        }\n\n        if (style.length === 0) {\n          style = \"normal\";\n        }\n        var jsPdfFontName = \"\";\n\n        var fallbackFonts = {\n          arial: \"Helvetica\",\n          Arial: \"Helvetica\",\n          verdana: \"Helvetica\",\n          Verdana: \"Helvetica\",\n          helvetica: \"Helvetica\",\n          Helvetica: \"Helvetica\",\n          \"sans-serif\": \"Helvetica\",\n          fixed: \"Courier\",\n          monospace: \"Courier\",\n          terminal: \"Courier\",\n          cursive: \"Times\",\n          fantasy: \"Times\",\n          serif: \"Times\"\n        };\n\n        for (var i = 0; i < parts.length; i++) {\n          if (\n            this.pdf.internal.getFont(parts[i], style, {\n              noFallback: true,\n              disableWarning: true\n            }) !== undefined\n          ) {\n            jsPdfFontName = parts[i];\n            break;\n          } else if (\n            style === \"bolditalic\" &&\n            this.pdf.internal.getFont(parts[i], \"bold\", {\n              noFallback: true,\n              disableWarning: true\n            }) !== undefined\n          ) {\n            jsPdfFontName = parts[i];\n            style = \"bold\";\n          } else if (\n            this.pdf.internal.getFont(parts[i], \"normal\", {\n              noFallback: true,\n              disableWarning: true\n            }) !== undefined\n          ) {\n            jsPdfFontName = parts[i];\n            style = \"normal\";\n            break;\n          }\n        }\n        if (jsPdfFontName === \"\") {\n          for (var j = 0; j < parts.length; j++) {\n            if (fallbackFonts[parts[j]]) {\n              jsPdfFontName = fallbackFonts[parts[j]];\n              break;\n            }\n          }\n        }\n        jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\n        this.pdf.setFont(jsPdfFontName, style);\n      }\n    });\n\n    Object.defineProperty(this, \"globalCompositeOperation\", {\n      get: function() {\n        return this.ctx.globalCompositeOperation;\n      },\n      set: function(value) {\n        this.ctx.globalCompositeOperation = value;\n      }\n    });\n\n    Object.defineProperty(this, \"globalAlpha\", {\n      get: function() {\n        return this.ctx.globalAlpha;\n      },\n      set: function(value) {\n        this.ctx.globalAlpha = value;\n      }\n    });\n\n    // Not HTML API\n    Object.defineProperty(this, \"ignoreClearRect\", {\n      get: function() {\n        return this.ctx.ignoreClearRect;\n      },\n      set: function(value) {\n        this.ctx.ignoreClearRect = Boolean(value);\n      }\n    });\n  };\n\n  Context2D.prototype.fill = function() {\n    pathPreProcess.call(this, \"fill\", false);\n  };\n\n  /**\n   * Actually draws the path you have defined\n   *\n   * @name stroke\n   * @function\n   * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\n   */\n  Context2D.prototype.stroke = function() {\n    pathPreProcess.call(this, \"stroke\", false);\n  };\n\n  /**\n   * Begins a path, or resets the current\n   *\n   * @name beginPath\n   * @function\n   * @description The beginPath() method begins a path, or resets the current path.\n   */\n  Context2D.prototype.beginPath = function() {\n    this.path = [\n      {\n        type: \"begin\"\n      }\n    ];\n  };\n\n  /**\n   * Moves the path to the specified point in the canvas, without creating a line\n   *\n   * @name moveTo\n   * @function\n   * @param x {Number} The x-coordinate of where to move the path to\n   * @param y {Number} The y-coordinate of where to move the path to\n   */\n  Context2D.prototype.moveTo = function(x, y) {\n    if (isNaN(x) || isNaN(y)) {\n      console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\n    }\n\n    var pt = this.ctx.transform.applyToPoint(new Point(x, y));\n\n    this.path.push({\n      type: \"mt\",\n      x: pt.x,\n      y: pt.y\n    });\n    this.ctx.lastPoint = new Point(x, y);\n  };\n\n  /**\n   * Creates a path from the current point back to the starting point\n   *\n   * @name closePath\n   * @function\n   * @description The closePath() method creates a path from the current point back to the starting point.\n   */\n  Context2D.prototype.closePath = function() {\n    var pathBegin = new Point(0, 0);\n    var i = 0;\n    for (i = this.path.length - 1; i !== -1; i--) {\n      if (this.path[i].type === \"begin\") {\n        if (\n          typeof this.path[i + 1] === \"object\" &&\n          typeof this.path[i + 1].x === \"number\"\n        ) {\n          pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\n          this.path.push({\n            type: \"lt\",\n            x: pathBegin.x,\n            y: pathBegin.y\n          });\n          break;\n        }\n      }\n    }\n    if (\n      typeof this.path[i + 2] === \"object\" &&\n      typeof this.path[i + 2].x === \"number\"\n    ) {\n      this.path.push(JSON.parse(JSON.stringify(this.path[i + 2])));\n    }\n    this.path.push({\n      type: \"close\"\n    });\n    this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\n  };\n\n  /**\n   * Adds a new point and creates a line to that point from the last specified point in the canvas\n   *\n   * @name lineTo\n   * @function\n   * @param x The x-coordinate of where to create the line to\n   * @param y The y-coordinate of where to create the line to\n   * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\n   */\n  Context2D.prototype.lineTo = function(x, y) {\n    if (isNaN(x) || isNaN(y)) {\n      console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\n    }\n\n    var pt = this.ctx.transform.applyToPoint(new Point(x, y));\n\n    this.path.push({\n      type: \"lt\",\n      x: pt.x,\n      y: pt.y\n    });\n    this.ctx.lastPoint = new Point(pt.x, pt.y);\n  };\n\n  /**\n   * Clips a region of any shape and size from the original canvas\n   *\n   * @name clip\n   * @function\n   * @description The clip() method clips a region of any shape and size from the original canvas.\n   */\n  Context2D.prototype.clip = function() {\n    this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\n    pathPreProcess.call(this, null, true);\n  };\n\n  /**\n   * Creates a cubic Bézier curve\n   *\n   * @name quadraticCurveTo\n   * @function\n   * @param cpx {Number} The x-coordinate of the Bézier control point\n   * @param cpy {Number} The y-coordinate of the Bézier control point\n   * @param x {Number} The x-coordinate of the ending point\n   * @param y {Number} The y-coordinate of the ending point\n   * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.<br /><br /> A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\n   */\n  Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\n    if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\n      console.error(\n        \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\n        arguments\n      );\n      throw new Error(\n        \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\n      );\n    }\n\n    var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\n    var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\n\n    this.path.push({\n      type: \"qct\",\n      x1: pt1.x,\n      y1: pt1.y,\n      x: pt0.x,\n      y: pt0.y\n    });\n    this.ctx.lastPoint = new Point(pt0.x, pt0.y);\n  };\n\n  /**\n   * Creates a cubic Bézier curve\n   *\n   * @name bezierCurveTo\n   * @function\n   * @param cp1x {Number} The x-coordinate of the first Bézier control point\n   * @param cp1y {Number} The y-coordinate of the first Bézier control point\n   * @param cp2x {Number} The x-coordinate of the second Bézier control point\n   * @param cp2y {Number} The y-coordinate of the second Bézier control point\n   * @param x {Number} The x-coordinate of the ending point\n   * @param y {Number} The y-coordinate of the ending point\n   * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve. <br /><br />A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve.  The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\n   */\n  Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\n    if (\n      isNaN(x) ||\n      isNaN(y) ||\n      isNaN(cp1x) ||\n      isNaN(cp1y) ||\n      isNaN(cp2x) ||\n      isNaN(cp2y)\n    ) {\n      console.error(\n        \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\n        arguments\n      );\n      throw new Error(\n        \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\n      );\n    }\n    var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\n    var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\n    var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\n\n    this.path.push({\n      type: \"bct\",\n      x1: pt1.x,\n      y1: pt1.y,\n      x2: pt2.x,\n      y2: pt2.y,\n      x: pt0.x,\n      y: pt0.y\n    });\n    this.ctx.lastPoint = new Point(pt0.x, pt0.y);\n  };\n\n  /**\n   * Creates an arc/curve (used to create circles, or parts of circles)\n   *\n   * @name arc\n   * @function\n   * @param x {Number} The x-coordinate of the center of the circle\n   * @param y {Number} The y-coordinate of the center of the circle\n   * @param radius {Number} The radius of the circle\n   * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\n   * @param endAngle {Number} The ending angle, in radians\n   * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\n   * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\n   */\n  Context2D.prototype.arc = function(\n    x,\n    y,\n    radius,\n    startAngle,\n    endAngle,\n    counterclockwise\n  ) {\n    if (\n      isNaN(x) ||\n      isNaN(y) ||\n      isNaN(radius) ||\n      isNaN(startAngle) ||\n      isNaN(endAngle)\n    ) {\n      console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\n    }\n    counterclockwise = Boolean(counterclockwise);\n\n    if (!this.ctx.transform.isIdentity) {\n      var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\n      x = xpt.x;\n      y = xpt.y;\n\n      var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\n      var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\n      radius = Math.sqrt(\n        Math.pow(x_radPt.x - x_radPt0.x, 2) +\n          Math.pow(x_radPt.y - x_radPt0.y, 2)\n      );\n    }\n    if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\n      startAngle = 0;\n      endAngle = 2 * Math.PI;\n    }\n\n    this.path.push({\n      type: \"arc\",\n      x: x,\n      y: y,\n      radius: radius,\n      startAngle: startAngle,\n      endAngle: endAngle,\n      counterclockwise: counterclockwise\n    });\n    // this.ctx.lastPoint(new Point(pt.x,pt.y));\n  };\n\n  /**\n   * Creates an arc/curve between two tangents\n   *\n   * @name arcTo\n   * @function\n   * @param x1 {Number} The x-coordinate of the first tangent\n   * @param y1 {Number} The y-coordinate of the first tangent\n   * @param x2 {Number} The x-coordinate of the second tangent\n   * @param y2 {Number} The y-coordinate of the second tangent\n   * @param radius The radius of the arc\n   * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\n   */\n  // eslint-disable-next-line no-unused-vars\n  Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\n    throw new Error(\"arcTo not implemented.\");\n  };\n\n  /**\n   * Creates a rectangle\n   *\n   * @name rect\n   * @function\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\n   * @param w {Number} The width of the rectangle, in pixels\n   * @param h {Number} The height of the rectangle, in pixels\n   * @description The rect() method creates a rectangle.\n   */\n  Context2D.prototype.rect = function(x, y, w, h) {\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\n      console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\n    }\n    this.moveTo(x, y);\n    this.lineTo(x + w, y);\n    this.lineTo(x + w, y + h);\n    this.lineTo(x, y + h);\n    this.lineTo(x, y);\n    this.lineTo(x + w, y);\n    this.lineTo(x, y);\n  };\n\n  /**\n   * Draws a \"filled\" rectangle\n   *\n   * @name fillRect\n   * @function\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\n   * @param w {Number} The width of the rectangle, in pixels\n   * @param h {Number} The height of the rectangle, in pixels\n   * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\n   */\n  Context2D.prototype.fillRect = function(x, y, w, h) {\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\n      console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\n    }\n    if (isFillTransparent.call(this)) {\n      return;\n    }\n    var tmp = {};\n    if (this.lineCap !== \"butt\") {\n      tmp.lineCap = this.lineCap;\n      this.lineCap = \"butt\";\n    }\n    if (this.lineJoin !== \"miter\") {\n      tmp.lineJoin = this.lineJoin;\n      this.lineJoin = \"miter\";\n    }\n\n    this.beginPath();\n    this.rect(x, y, w, h);\n    this.fill();\n\n    if (tmp.hasOwnProperty(\"lineCap\")) {\n      this.lineCap = tmp.lineCap;\n    }\n    if (tmp.hasOwnProperty(\"lineJoin\")) {\n      this.lineJoin = tmp.lineJoin;\n    }\n  };\n\n  /**\n   *     Draws a rectangle (no fill)\n   *\n   * @name strokeRect\n   * @function\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\n   * @param w {Number} The width of the rectangle, in pixels\n   * @param h {Number} The height of the rectangle, in pixels\n   * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\n   */\n  Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\n      console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\n    }\n    if (isStrokeTransparent.call(this)) {\n      return;\n    }\n    this.beginPath();\n    this.rect(x, y, w, h);\n    this.stroke();\n  };\n\n  /**\n   * Clears the specified pixels within a given rectangle\n   *\n   * @name clearRect\n   * @function\n   * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\n   * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\n   * @param w {Number} The width of the rectangle to clear, in pixels\n   * @param h {Number} The height of the rectangle to clear, in pixels\n   * @description We cannot clear PDF commands that were already written to PDF, so we use white instead. <br />\n   * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\n   * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\n   * This flag is stored in the save/restore context and is managed the same way as other drawing states.\n   *\n   */\n  Context2D.prototype.clearRect = function(x, y, w, h) {\n    if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\n      console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\n    }\n    if (this.ignoreClearRect) {\n      return;\n    }\n\n    this.fillStyle = \"#ffffff\";\n    this.fillRect(x, y, w, h);\n  };\n\n  /**\n   * Saves the state of the current context\n   *\n   * @name save\n   * @function\n   */\n  Context2D.prototype.save = function(doStackPush) {\n    doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\n    var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\n    for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\n      this.pdf.setPage(i + 1);\n      this.pdf.internal.out(\"q\");\n    }\n    this.pdf.setPage(tmpPageNumber);\n\n    if (doStackPush) {\n      this.ctx.fontSize = this.pdf.internal.getFontSize();\n      var ctx = new ContextLayer(this.ctx);\n      this.ctxStack.push(this.ctx);\n      this.ctx = ctx;\n    }\n  };\n\n  /**\n   * Returns previously saved path state and attributes\n   *\n   * @name restore\n   * @function\n   */\n  Context2D.prototype.restore = function(doStackPop) {\n    doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\n    var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\n    for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\n      this.pdf.setPage(i + 1);\n      this.pdf.internal.out(\"Q\");\n    }\n    this.pdf.setPage(tmpPageNumber);\n\n    if (doStackPop && this.ctxStack.length !== 0) {\n      this.ctx = this.ctxStack.pop();\n      this.fillStyle = this.ctx.fillStyle;\n      this.strokeStyle = this.ctx.strokeStyle;\n      this.font = this.ctx.font;\n      this.lineCap = this.ctx.lineCap;\n      this.lineWidth = this.ctx.lineWidth;\n      this.lineJoin = this.ctx.lineJoin;\n    }\n  };\n\n  /**\n   * @name toDataURL\n   * @function\n   */\n  Context2D.prototype.toDataURL = function() {\n    throw new Error(\"toDataUrl not implemented.\");\n  };\n\n  //helper functions\n\n  /**\n   * Get the decimal values of r, g, b and a\n   *\n   * @name getRGBA\n   * @function\n   * @private\n   * @ignore\n   */\n  var getRGBA = function(style) {\n    var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\n    var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\n    var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\n\n    var r, g, b, a;\n\n    if (style.isCanvasGradient === true) {\n      style = style.getColor();\n    }\n\n    if (!style) {\n      return { r: 0, g: 0, b: 0, a: 0, style: style };\n    }\n\n    if (rxTransparent.test(style)) {\n      r = 0;\n      g = 0;\n      b = 0;\n      a = 0;\n    } else {\n      var matches = rxRgb.exec(style);\n      if (matches !== null) {\n        r = parseInt(matches[1]);\n        g = parseInt(matches[2]);\n        b = parseInt(matches[3]);\n        a = 1;\n      } else {\n        matches = rxRgba.exec(style);\n        if (matches !== null) {\n          r = parseInt(matches[1]);\n          g = parseInt(matches[2]);\n          b = parseInt(matches[3]);\n          a = parseFloat(matches[4]);\n        } else {\n          a = 1;\n\n          if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\n            var rgbColor = new RGBColor(style);\n            if (rgbColor.ok) {\n              style = rgbColor.toHex();\n            } else {\n              style = \"#000000\";\n            }\n          }\n\n          if (style.length === 4) {\n            r = style.substring(1, 2);\n            r += r;\n            g = style.substring(2, 3);\n            g += g;\n            b = style.substring(3, 4);\n            b += b;\n          } else {\n            r = style.substring(1, 3);\n            g = style.substring(3, 5);\n            b = style.substring(5, 7);\n          }\n          r = parseInt(r, 16);\n          g = parseInt(g, 16);\n          b = parseInt(b, 16);\n        }\n      }\n    }\n    return { r: r, g: g, b: b, a: a, style: style };\n  };\n\n  /**\n   * @name isFillTransparent\n   * @function\n   * @private\n   * @ignore\n   * @returns {Boolean}\n   */\n  var isFillTransparent = function() {\n    return this.ctx.isFillTransparent || this.globalAlpha == 0;\n  };\n\n  /**\n   * @name isStrokeTransparent\n   * @function\n   * @private\n   * @ignore\n   * @returns {Boolean}\n   */\n  var isStrokeTransparent = function() {\n    return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\n  };\n\n  /**\n   * Draws \"filled\" text on the canvas\n   *\n   * @name fillText\n   * @function\n   * @param text {String} Specifies the text that will be written on the canvas\n   * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\n   * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\n   * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\n   * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\n   */\n  Context2D.prototype.fillText = function(text, x, y, maxWidth) {\n    if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\n      console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\n    }\n    maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\n    if (isFillTransparent.call(this)) {\n      return;\n    }\n\n    y = getBaseline.call(this, y);\n    var degs = rad2deg(this.ctx.transform.rotation);\n\n    // We only use X axis as scale hint\n    var scale = this.ctx.transform.scaleX;\n\n    putText.call(this, {\n      text: text,\n      x: x,\n      y: y,\n      scale: scale,\n      angle: degs,\n      align: this.textAlign,\n      maxWidth: maxWidth\n    });\n  };\n\n  /**\n   * Draws text on the canvas (no fill)\n   *\n   * @name strokeText\n   * @function\n   * @param text {String} Specifies the text that will be written on the canvas\n   * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\n   * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\n   * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\n   * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\n   */\n  Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\n    if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\n      console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\n    }\n    if (isStrokeTransparent.call(this)) {\n      return;\n    }\n\n    maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\n    y = getBaseline.call(this, y);\n\n    var degs = rad2deg(this.ctx.transform.rotation);\n    var scale = this.ctx.transform.scaleX;\n\n    putText.call(this, {\n      text: text,\n      x: x,\n      y: y,\n      scale: scale,\n      renderingMode: \"stroke\",\n      angle: degs,\n      align: this.textAlign,\n      maxWidth: maxWidth\n    });\n  };\n\n  /**\n   * Returns an object that contains the width of the specified text\n   *\n   * @name measureText\n   * @function\n   * @param text {String} The text to be measured\n   * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\n   * @returns {Number}\n   */\n  Context2D.prototype.measureText = function(text) {\n    if (typeof text !== \"string\") {\n      console.error(\n        \"jsPDF.context2d.measureText: Invalid arguments\",\n        arguments\n      );\n      throw new Error(\n        \"Invalid arguments passed to jsPDF.context2d.measureText\"\n      );\n    }\n    var pdf = this.pdf;\n    var k = this.pdf.internal.scaleFactor;\n\n    var fontSize = pdf.internal.getFontSize();\n    var txtWidth =\n      (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\n    txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\n\n    var TextMetrics = function(options) {\n      options = options || {};\n      var _width = options.width || 0;\n      Object.defineProperty(this, \"width\", {\n        get: function() {\n          return _width;\n        }\n      });\n      return this;\n    };\n    return new TextMetrics({ width: txtWidth });\n  };\n\n  //Transformations\n\n  /**\n   * Scales the current drawing bigger or smaller\n   *\n   * @name scale\n   * @function\n   * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\n   * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\n   * @description The scale() method scales the current drawing, bigger or smaller.\n   */\n  Context2D.prototype.scale = function(scalewidth, scaleheight) {\n    if (isNaN(scalewidth) || isNaN(scaleheight)) {\n      console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\n    }\n    var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\n  };\n\n  /**\n   * Rotates the current drawing\n   *\n   * @name rotate\n   * @function\n   * @param angle {Number} The rotation angle, in radians.\n   * @description To calculate from degrees to radians: degrees*Math.PI/180. <br />\n   * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\n   */\n  Context2D.prototype.rotate = function(angle) {\n    if (isNaN(angle)) {\n      console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\n    }\n    var matrix = new Matrix(\n      Math.cos(angle),\n      Math.sin(angle),\n      -Math.sin(angle),\n      Math.cos(angle),\n      0.0,\n      0.0\n    );\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\n  };\n\n  /**\n   * Remaps the (0,0) position on the canvas\n   *\n   * @name translate\n   * @function\n   * @param x {Number} The value to add to horizontal (x) coordinates\n   * @param y {Number} The value to add to vertical (y) coordinates\n   * @description The translate() method remaps the (0,0) position on the canvas.\n   */\n  Context2D.prototype.translate = function(x, y) {\n    if (isNaN(x) || isNaN(y)) {\n      console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\n    }\n    var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\n  };\n\n  /**\n   * Replaces the current transformation matrix for the drawing\n   *\n   * @name transform\n   * @function\n   * @param a {Number} Horizontal scaling\n   * @param b {Number} Horizontal skewing\n   * @param c {Number} Vertical skewing\n   * @param d {Number} Vertical scaling\n   * @param e {Number} Horizontal moving\n   * @param f {Number} Vertical moving\n   * @description Each object on the canvas has a current transformation matrix.<br /><br />The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:<br /><br /><br /><br />a    c    e<br /><br />b    d    f<br /><br />0    0    1<br /><br />In other words, the transform() method lets you scale, rotate, move, and skew the current context.\n   */\n  Context2D.prototype.transform = function(a, b, c, d, e, f) {\n    if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\n      console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\n      throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\n    }\n    var matrix = new Matrix(a, b, c, d, e, f);\n    this.ctx.transform = this.ctx.transform.multiply(matrix);\n  };\n\n  /**\n   * Resets the current transform to the identity matrix. Then runs transform()\n   *\n   * @name setTransform\n   * @function\n   * @param a {Number} Horizontal scaling\n   * @param b {Number} Horizontal skewing\n   * @param c {Number} Vertical skewing\n   * @param d {Number} Vertical scaling\n   * @param e {Number} Horizontal moving\n   * @param f {Number} Vertical moving\n   * @description Each object on the canvas has a current transformation matrix. <br /><br />The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.<br /><br />In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\n   */\n  Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\n    a = isNaN(a) ? 1 : a;\n    b = isNaN(b) ? 0 : b;\n    c = isNaN(c) ? 0 : c;\n    d = isNaN(d) ? 1 : d;\n    e = isNaN(e) ? 0 : e;\n    f = isNaN(f) ? 0 : f;\n    this.ctx.transform = new Matrix(a, b, c, d, e, f);\n  };\n\n  /**\n   * Should only be used if pageWrapYEnabled is true\n   *\n   * @name setPageByYPosition\n   * @function\n   * @private\n   * @ignore\n   * @returns One-based Page Number\n   */\n  var setPageByYPosition = function(y) {\n    if (this.pageWrapYEnabled) {\n      this.lastBreak = 0;\n      var manualBreaks = 0;\n      var autoBreaks = 0;\n      for (var i = 0; i < this.pageBreaks.length; i++) {\n        if (y >= this.pageBreaks[i]) {\n          manualBreaks++;\n          if (this.lastBreak === 0) {\n            autoBreaks++;\n          }\n          var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\n          this.lastBreak = this.pageBreaks[i];\n          var pagesSinceLastBreak = Math.floor(\n            spaceBetweenLastBreak / this.pageWrapY\n          );\n          autoBreaks += pagesSinceLastBreak;\n        }\n      }\n      if (this.lastBreak === 0) {\n        var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\n        autoBreaks += pagesSinceLastBreak;\n      }\n      return autoBreaks + manualBreaks;\n    } else {\n      return this.pdf.internal.getCurrentPageInfo().pageNumber;\n    }\n  };\n\n  /**\n   * Draws an image, canvas, or video onto the canvas\n   *\n   * @function\n   * @param img {} Specifies the image, canvas, or video element to use\n   * @param sx {Number} Optional. The x coordinate where to start clipping\n   * @param sy {Number} Optional. The y coordinate where to start clipping\n   * @param swidth {Number} Optional. The width of the clipped image\n   * @param sheight {Number} Optional. The height of the clipped image\n   * @param x {Number} The x coordinate where to place the image on the canvas\n   * @param y {Number} The y coordinate where to place the image on the canvas\n   * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\n   * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\n   */\n  Context2D.prototype.drawImage = function(\n    img,\n    sx,\n    sy,\n    swidth,\n    sheight,\n    x,\n    y,\n    width,\n    height\n  ) {\n    var imageProperties = this.pdf.getImageProperties(img);\n    var factorX = 1;\n    var factorY = 1;\n    var isClip;\n\n    var clipFactorX = 1;\n    var clipFactorY = 1;\n\n    if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\n      isClip = true;\n      clipFactorX = width / swidth;\n      clipFactorY = height / sheight;\n      factorX = ((imageProperties.width / swidth) * width) / swidth;\n      factorY = ((imageProperties.height / sheight) * height) / sheight;\n    }\n\n    //is sx and sy are set and x and y not, set x and y with values of sx and sy\n    if (typeof x === \"undefined\") {\n      x = sx;\n      y = sy;\n      sx = 0;\n      sy = 0;\n    }\n\n    if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\n      width = swidth;\n      height = sheight;\n    }\n    if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\n      width = imageProperties.width;\n      height = imageProperties.height;\n    }\n\n    var decomposedTransformationMatrix = this.ctx.transform.decompose();\n    var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\n    var matrix = new Matrix();\n    matrix = matrix.multiply(decomposedTransformationMatrix.translate);\n    matrix = matrix.multiply(decomposedTransformationMatrix.skew);\n    matrix = matrix.multiply(decomposedTransformationMatrix.scale);\n    var xRect = matrix.applyToRectangle(\n      new Rectangle(\n        x - sx * clipFactorX,\n        y - sy * clipFactorY,\n        swidth * factorX,\n        sheight * factorY\n      )\n    );\n    var pageArray = getPagesByPath.call(this, xRect);\n    var pages = [];\n    for (var ii = 0; ii < pageArray.length; ii += 1) {\n      if (pages.indexOf(pageArray[ii]) === -1) {\n        pages.push(pageArray[ii]);\n      }\n    }\n\n    sortPages(pages);\n\n    var clipPath;\n    if (this.autoPaging) {\n      var min = pages[0];\n      var max = pages[pages.length - 1];\n      for (var i = min; i < max + 1; i++) {\n        this.pdf.setPage(i);\n\n        if (this.ctx.clip_path.length !== 0) {\n          var tmpPaths = this.path;\n          clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\n          this.path = pathPositionRedo(\n            clipPath,\n            this.posX,\n            -1 * this.pdf.internal.pageSize.height * (i - 1) + this.posY\n          );\n          drawPaths.call(this, \"fill\", true);\n          this.path = tmpPaths;\n        }\n        var tmpRect = JSON.parse(JSON.stringify(xRect));\n        tmpRect = pathPositionRedo(\n          [tmpRect],\n          this.posX,\n          -1 * this.pdf.internal.pageSize.height * (i - 1) + this.posY\n        )[0];\n        this.pdf.addImage(\n          img,\n          \"JPEG\",\n          tmpRect.x,\n          tmpRect.y,\n          tmpRect.w,\n          tmpRect.h,\n          null,\n          null,\n          angle\n        );\n      }\n    } else {\n      this.pdf.addImage(\n        img,\n        \"JPEG\",\n        xRect.x,\n        xRect.y,\n        xRect.w,\n        xRect.h,\n        null,\n        null,\n        angle\n      );\n    }\n  };\n\n  var getPagesByPath = function(path, pageWrapX, pageWrapY) {\n    var result = [];\n    pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\n    pageWrapY = pageWrapY || this.pdf.internal.pageSize.height;\n\n    switch (path.type) {\n      default:\n      case \"mt\":\n      case \"lt\":\n        result.push(Math.floor((path.y + this.posY) / pageWrapY) + 1);\n        break;\n      case \"arc\":\n        result.push(\n          Math.floor((path.y + this.posY - path.radius) / pageWrapY) + 1\n        );\n        result.push(\n          Math.floor((path.y + this.posY + path.radius) / pageWrapY) + 1\n        );\n        break;\n      case \"qct\":\n        var rectOfQuadraticCurve = getQuadraticCurveBoundary(\n          this.ctx.lastPoint.x,\n          this.ctx.lastPoint.y,\n          path.x1,\n          path.y1,\n          path.x,\n          path.y\n        );\n        result.push(Math.floor(rectOfQuadraticCurve.y / pageWrapY) + 1);\n        result.push(\n          Math.floor(\n            (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h) / pageWrapY\n          ) + 1\n        );\n        break;\n      case \"bct\":\n        var rectOfBezierCurve = getBezierCurveBoundary(\n          this.ctx.lastPoint.x,\n          this.ctx.lastPoint.y,\n          path.x1,\n          path.y1,\n          path.x2,\n          path.y2,\n          path.x,\n          path.y\n        );\n        result.push(Math.floor(rectOfBezierCurve.y / pageWrapY) + 1);\n        result.push(\n          Math.floor((rectOfBezierCurve.y + rectOfBezierCurve.h) / pageWrapY) +\n            1\n        );\n        break;\n      case \"rect\":\n        result.push(Math.floor((path.y + this.posY) / pageWrapY) + 1);\n        result.push(Math.floor((path.y + path.h + this.posY) / pageWrapY) + 1);\n    }\n\n    for (var i = 0; i < result.length; i += 1) {\n      while (this.pdf.internal.getNumberOfPages() < result[i]) {\n        addPage.call(this);\n      }\n    }\n    return result;\n  };\n\n  var addPage = function() {\n    var fillStyle = this.fillStyle;\n    var strokeStyle = this.strokeStyle;\n    var font = this.font;\n    var lineCap = this.lineCap;\n    var lineWidth = this.lineWidth;\n    var lineJoin = this.lineJoin;\n    this.pdf.addPage();\n    this.fillStyle = fillStyle;\n    this.strokeStyle = strokeStyle;\n    this.font = font;\n    this.lineCap = lineCap;\n    this.lineWidth = lineWidth;\n    this.lineJoin = lineJoin;\n  };\n\n  var pathPositionRedo = function(paths, x, y) {\n    for (var i = 0; i < paths.length; i++) {\n      switch (paths[i].type) {\n        case \"bct\":\n          paths[i].x2 += x;\n          paths[i].y2 += y;\n        case \"qct\":\n          paths[i].x1 += x;\n          paths[i].y1 += y;\n        case \"mt\":\n        case \"lt\":\n        case \"arc\":\n        default:\n          paths[i].x += x;\n          paths[i].y += y;\n      }\n    }\n    return paths;\n  };\n\n  var sortPages = function(pages) {\n    return pages.sort(function(a, b) {\n      return a - b;\n    });\n  };\n\n  var pathPreProcess = function(rule, isClip) {\n    var fillStyle = this.fillStyle;\n    var strokeStyle = this.strokeStyle;\n    var lineCap = this.lineCap;\n    var oldLineWidth = this.lineWidth;\n    var lineWidth = oldLineWidth * this.ctx.transform.scaleX;\n    var lineJoin = this.lineJoin;\n\n    var origPath = JSON.parse(JSON.stringify(this.path));\n    var xPath = JSON.parse(JSON.stringify(this.path));\n    var clipPath;\n    var tmpPath;\n    var pages = [];\n\n    for (var i = 0; i < xPath.length; i++) {\n      if (typeof xPath[i].x !== \"undefined\") {\n        var page = getPagesByPath.call(this, xPath[i]);\n\n        for (var ii = 0; ii < page.length; ii += 1) {\n          if (pages.indexOf(page[ii]) === -1) {\n            pages.push(page[ii]);\n          }\n        }\n      }\n    }\n\n    for (var j = 0; j < pages.length; j++) {\n      while (this.pdf.internal.getNumberOfPages() < pages[j]) {\n        addPage.call(this);\n      }\n    }\n    sortPages(pages);\n\n    if (this.autoPaging) {\n      var min = pages[0];\n      var max = pages[pages.length - 1];\n      for (var k = min; k < max + 1; k++) {\n        this.pdf.setPage(k);\n\n        this.fillStyle = fillStyle;\n        this.strokeStyle = strokeStyle;\n        this.lineCap = lineCap;\n        this.lineWidth = lineWidth;\n        this.lineJoin = lineJoin;\n\n        if (this.ctx.clip_path.length !== 0) {\n          var tmpPaths = this.path;\n          clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\n          this.path = pathPositionRedo(\n            clipPath,\n            this.posX,\n            -1 * this.pdf.internal.pageSize.height * (k - 1) + this.posY\n          );\n          drawPaths.call(this, rule, true);\n          this.path = tmpPaths;\n        }\n        tmpPath = JSON.parse(JSON.stringify(origPath));\n        this.path = pathPositionRedo(\n          tmpPath,\n          this.posX,\n          -1 * this.pdf.internal.pageSize.height * (k - 1) + this.posY\n        );\n        if (isClip === false || k === 0) {\n          drawPaths.call(this, rule, isClip);\n        }\n        this.lineWidth = oldLineWidth;\n      }\n    } else {\n      this.lineWidth = lineWidth;\n      drawPaths.call(this, rule, isClip);\n      this.lineWidth = oldLineWidth;\n    }\n    this.path = origPath;\n  };\n\n  /**\n   * Processes the paths\n   *\n   * @function\n   * @param rule {String}\n   * @param isClip {Boolean}\n   * @private\n   * @ignore\n   */\n  var drawPaths = function(rule, isClip) {\n    if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\n      return;\n    }\n\n    if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\n      return;\n    }\n\n    var moves = [];\n\n    //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\n    var delta;\n    var xPath = this.path;\n    for (var i = 0; i < xPath.length; i++) {\n      var pt = xPath[i];\n\n      switch (pt.type) {\n        case \"begin\":\n          moves.push({\n            begin: true\n          });\n          break;\n\n        case \"close\":\n          moves.push({\n            close: true\n          });\n          break;\n\n        case \"mt\":\n          moves.push({\n            start: pt,\n            deltas: [],\n            abs: []\n          });\n          break;\n\n        case \"lt\":\n          var iii = moves.length;\n          if (!isNaN(xPath[i - 1].x)) {\n            delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\n            if (iii > 0) {\n              for (iii; iii >= 0; iii--) {\n                if (\n                  moves[iii - 1].close !== true &&\n                  moves[iii - 1].begin !== true\n                ) {\n                  moves[iii - 1].deltas.push(delta);\n                  moves[iii - 1].abs.push(pt);\n                  break;\n                }\n              }\n            }\n          }\n          break;\n\n        case \"bct\":\n          delta = [\n            pt.x1 - xPath[i - 1].x,\n            pt.y1 - xPath[i - 1].y,\n            pt.x2 - xPath[i - 1].x,\n            pt.y2 - xPath[i - 1].y,\n            pt.x - xPath[i - 1].x,\n            pt.y - xPath[i - 1].y\n          ];\n          moves[moves.length - 1].deltas.push(delta);\n          break;\n\n        case \"qct\":\n          var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\n          var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\n          var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\n          var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\n          var x3 = pt.x;\n          var y3 = pt.y;\n          delta = [\n            x1 - xPath[i - 1].x,\n            y1 - xPath[i - 1].y,\n            x2 - xPath[i - 1].x,\n            y2 - xPath[i - 1].y,\n            x3 - xPath[i - 1].x,\n            y3 - xPath[i - 1].y\n          ];\n          moves[moves.length - 1].deltas.push(delta);\n          break;\n\n        case \"arc\":\n          moves.push({\n            deltas: [],\n            abs: [],\n            arc: true\n          });\n\n          if (Array.isArray(moves[moves.length - 1].abs)) {\n            moves[moves.length - 1].abs.push(pt);\n          }\n          break;\n      }\n    }\n    var style;\n    if (!isClip) {\n      if (rule === \"stroke\") {\n        style = \"stroke\";\n      } else {\n        style = \"fill\";\n      }\n    } else {\n      style = null;\n    }\n\n    for (var k = 0; k < moves.length; k++) {\n      if (moves[k].arc) {\n        var arcs = moves[k].abs;\n\n        for (var ii = 0; ii < arcs.length; ii++) {\n          var arc = arcs[ii];\n\n          if (arc.type === \"arc\") {\n            drawArc.call(\n              this,\n              arc.x,\n              arc.y,\n              arc.radius,\n              arc.startAngle,\n              arc.endAngle,\n              arc.counterclockwise,\n              undefined,\n              isClip\n            );\n          } else {\n            drawLine.call(this, arc.x, arc.y);\n          }\n        }\n        putStyle.call(this, style);\n        this.pdf.internal.out(\"h\");\n      }\n      if (!moves[k].arc) {\n        if (moves[k].close !== true && moves[k].begin !== true) {\n          var x = moves[k].start.x;\n          var y = moves[k].start.y;\n          drawLines.call(this, moves[k].deltas, x, y);\n        }\n      }\n    }\n\n    if (style) {\n      putStyle.call(this, style);\n    }\n    if (isClip) {\n      doClip.call(this);\n    }\n  };\n\n  var getBaseline = function(y) {\n    var height =\n      this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\n    var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\n    switch (this.ctx.textBaseline) {\n      case \"bottom\":\n        return y - descent;\n      case \"top\":\n        return y + height - descent;\n      case \"hanging\":\n        return y + height - 2 * descent;\n      case \"middle\":\n        return y + height / 2 - descent;\n      case \"ideographic\":\n        // TODO not implemented\n        return y;\n      case \"alphabetic\":\n      default:\n        return y;\n    }\n  };\n\n  Context2D.prototype.createLinearGradient = function createLinearGradient() {\n    var canvasGradient = function canvasGradient() {};\n\n    canvasGradient.colorStops = [];\n    canvasGradient.addColorStop = function(offset, color) {\n      this.colorStops.push([offset, color]);\n    };\n\n    canvasGradient.getColor = function() {\n      if (this.colorStops.length === 0) {\n        return \"#000000\";\n      }\n\n      return this.colorStops[0][1];\n    };\n\n    canvasGradient.isCanvasGradient = true;\n    return canvasGradient;\n  };\n  Context2D.prototype.createPattern = function createPattern() {\n    return this.createLinearGradient();\n  };\n  Context2D.prototype.createRadialGradient = function createRadialGradient() {\n    return this.createLinearGradient();\n  };\n\n  /**\n   *\n   * @param x Edge point X\n   * @param y Edge point Y\n   * @param r Radius\n   * @param a1 start angle\n   * @param a2 end angle\n   * @param counterclockwise\n   * @param style\n   * @param isClip\n   */\n  var drawArc = function(x, y, r, a1, a2, counterclockwise, style, isClip) {\n    // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\n    var includeMove = true;\n    var curves = createArc.call(this, r, a1, a2, counterclockwise);\n\n    for (var i = 0; i < curves.length; i++) {\n      var curve = curves[i];\n      if (includeMove && i === 0) {\n        doMove.call(this, curve.x1 + x, curve.y1 + y);\n      }\n      drawCurve.call(\n        this,\n        x,\n        y,\n        curve.x2,\n        curve.y2,\n        curve.x3,\n        curve.y3,\n        curve.x4,\n        curve.y4\n      );\n    }\n\n    if (!isClip) {\n      putStyle.call(this, style);\n    } else {\n      doClip.call(this);\n    }\n  };\n\n  var putStyle = function(style) {\n    switch (style) {\n      case \"stroke\":\n        this.pdf.internal.out(\"S\");\n        break;\n      case \"fill\":\n        this.pdf.internal.out(\"f\");\n        break;\n    }\n  };\n\n  var doClip = function() {\n    this.pdf.clip();\n    this.pdf.discardPath();\n  };\n\n  var doMove = function(x, y) {\n    this.pdf.internal.out(\n      getHorizontalCoordinateString(x) +\n        \" \" +\n        getVerticalCoordinateString(y) +\n        \" m\"\n    );\n  };\n\n  var putText = function(options) {\n    var textAlign;\n    switch (options.align) {\n      case \"right\":\n      case \"end\":\n        textAlign = \"right\";\n        break;\n      case \"center\":\n        textAlign = \"center\";\n        break;\n      case \"left\":\n      case \"start\":\n      default:\n        textAlign = \"left\";\n        break;\n    }\n\n    var pt = this.ctx.transform.applyToPoint(new Point(options.x, options.y));\n    var decomposedTransformationMatrix = this.ctx.transform.decompose();\n    var matrix = new Matrix();\n    matrix = matrix.multiply(decomposedTransformationMatrix.translate);\n    matrix = matrix.multiply(decomposedTransformationMatrix.skew);\n    matrix = matrix.multiply(decomposedTransformationMatrix.scale);\n\n    var textDimensions = this.pdf.getTextDimensions(options.text);\n    var textRect = this.ctx.transform.applyToRectangle(\n      new Rectangle(options.x, options.y, textDimensions.w, textDimensions.h)\n    );\n    var textXRect = matrix.applyToRectangle(\n      new Rectangle(\n        options.x,\n        options.y - textDimensions.h,\n        textDimensions.w,\n        textDimensions.h\n      )\n    );\n    var pageArray = getPagesByPath.call(this, textXRect);\n    var pages = [];\n    for (var ii = 0; ii < pageArray.length; ii += 1) {\n      if (pages.indexOf(pageArray[ii]) === -1) {\n        pages.push(pageArray[ii]);\n      }\n    }\n\n    sortPages(pages);\n\n    var clipPath, oldSize, oldLineWidth;\n    if (this.autoPaging === true) {\n      var min = pages[0];\n      var max = pages[pages.length - 1];\n      for (var i = min; i < max + 1; i++) {\n        this.pdf.setPage(i);\n\n        if (this.ctx.clip_path.length !== 0) {\n          var tmpPaths = this.path;\n          clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\n          this.path = pathPositionRedo(\n            clipPath,\n            this.posX,\n            -1 * this.pdf.internal.pageSize.height * (i - 1) + this.posY\n          );\n          drawPaths.call(this, \"fill\", true);\n          this.path = tmpPaths;\n        }\n        var tmpRect = JSON.parse(JSON.stringify(textRect));\n        tmpRect = pathPositionRedo(\n          [tmpRect],\n          this.posX,\n          -1 * this.pdf.internal.pageSize.height * (i - 1) + this.posY\n        )[0];\n\n        if (options.scale >= 0.01) {\n          oldSize = this.pdf.internal.getFontSize();\n          this.pdf.setFontSize(oldSize * options.scale);\n          oldLineWidth = this.lineWidth;\n          this.lineWidth = oldLineWidth * options.scale;\n        }\n        this.pdf.text(options.text, tmpRect.x, tmpRect.y, {\n          angle: options.angle,\n          align: textAlign,\n          renderingMode: options.renderingMode,\n          maxWidth: options.maxWidth\n        });\n\n        if (options.scale >= 0.01) {\n          this.pdf.setFontSize(oldSize);\n          this.lineWidth = oldLineWidth;\n        }\n      }\n    } else {\n      if (options.scale >= 0.01) {\n        oldSize = this.pdf.internal.getFontSize();\n        this.pdf.setFontSize(oldSize * options.scale);\n        oldLineWidth = this.lineWidth;\n        this.lineWidth = oldLineWidth * options.scale;\n      }\n      this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\n        angle: options.angle,\n        align: textAlign,\n        renderingMode: options.renderingMode,\n        maxWidth: options.maxWidth\n      });\n\n      if (options.scale >= 0.01) {\n        this.pdf.setFontSize(oldSize);\n        this.lineWidth = oldLineWidth;\n      }\n    }\n  };\n\n  var drawLine = function(x, y, prevX, prevY) {\n    prevX = prevX || 0;\n    prevY = prevY || 0;\n\n    this.pdf.internal.out(\n      getHorizontalCoordinateString(x + prevX) +\n        \" \" +\n        getVerticalCoordinateString(y + prevY) +\n        \" l\"\n    );\n  };\n\n  var drawLines = function(lines, x, y) {\n    return this.pdf.lines(lines, x, y, null, null);\n  };\n\n  var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\n    this.pdf.internal.out(\n      [\n        f2(getHorizontalCoordinate(x1 + x)),\n        f2(getVerticalCoordinate(y1 + y)),\n        f2(getHorizontalCoordinate(x2 + x)),\n        f2(getVerticalCoordinate(y2 + y)),\n        f2(getHorizontalCoordinate(x3 + x)),\n        f2(getVerticalCoordinate(y3 + y)),\n        \"c\"\n      ].join(\" \")\n    );\n  };\n\n  /**\n   * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\n   *\n   * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\n   * @function createArc\n   */\n  var createArc = function(radius, startAngle, endAngle, anticlockwise) {\n    var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\n    var twoPi = Math.PI * 2;\n    var halfPi = Math.PI / 2.0;\n\n    while (startAngle > endAngle) {\n      startAngle = startAngle - twoPi;\n    }\n    var totalAngle = Math.abs(endAngle - startAngle);\n    if (totalAngle < twoPi) {\n      if (anticlockwise) {\n        totalAngle = twoPi - totalAngle;\n      }\n    }\n\n    // Compute the sequence of arc curves, up to PI/2 at a time.\n    var curves = [];\n\n    // clockwise or counterclockwise\n    var sgn = anticlockwise ? -1 : +1;\n\n    var a1 = startAngle;\n    for (; totalAngle > EPSILON; ) {\n      var remain = sgn * Math.min(totalAngle, halfPi);\n      var a2 = a1 + remain;\n      curves.push(createSmallArc.call(this, radius, a1, a2));\n      totalAngle -= Math.abs(a2 - a1);\n      a1 = a2;\n    }\n\n    return curves;\n  };\n\n  /**\n   * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\n   *\n   * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\n   *\n   * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\n   */\n  var createSmallArc = function(r, a1, a2) {\n    var a = (a2 - a1) / 2.0;\n\n    var x4 = r * Math.cos(a);\n    var y4 = r * Math.sin(a);\n    var x1 = x4;\n    var y1 = -y4;\n\n    var q1 = x1 * x1 + y1 * y1;\n    var q2 = q1 + x1 * x4 + y1 * y4;\n    var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\n\n    var x2 = x1 - k2 * y1;\n    var y2 = y1 + k2 * x1;\n    var x3 = x2;\n    var y3 = -y2;\n\n    var ar = a + a1;\n    var cos_ar = Math.cos(ar);\n    var sin_ar = Math.sin(ar);\n\n    return {\n      x1: r * Math.cos(a1),\n      y1: r * Math.sin(a1),\n      x2: x2 * cos_ar - y2 * sin_ar,\n      y2: x2 * sin_ar + y2 * cos_ar,\n      x3: x3 * cos_ar - y3 * sin_ar,\n      y3: x3 * sin_ar + y3 * cos_ar,\n      x4: r * Math.cos(a2),\n      y4: r * Math.sin(a2)\n    };\n  };\n\n  var rad2deg = function(value) {\n    return (value * 180) / Math.PI;\n  };\n\n  var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\n    var midX1 = sx + (cpx - sx) * 0.5;\n    var midY1 = sy + (cpy - sy) * 0.5;\n    var midX2 = ex + (cpx - ex) * 0.5;\n    var midY2 = ey + (cpy - ey) * 0.5;\n    var resultX1 = Math.min(sx, ex, midX1, midX2);\n    var resultX2 = Math.max(sx, ex, midX1, midX2);\n    var resultY1 = Math.min(sy, ey, midY1, midY2);\n    var resultY2 = Math.max(sy, ey, midY1, midY2);\n    return new Rectangle(\n      resultX1,\n      resultY1,\n      resultX2 - resultX1,\n      resultY2 - resultY1\n    );\n  };\n\n  //De Casteljau algorithm\n  var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\n    var tobx = bx - ax;\n    var toby = by - ay;\n    var tocx = cx - bx;\n    var tocy = cy - by;\n    var todx = dx - cx;\n    var tody = dy - cy;\n    var precision = 40;\n    var d,\n      i,\n      px,\n      py,\n      qx,\n      qy,\n      rx,\n      ry,\n      tx,\n      ty,\n      sx,\n      sy,\n      x,\n      y,\n      minx,\n      miny,\n      maxx,\n      maxy,\n      toqx,\n      toqy,\n      torx,\n      tory,\n      totx,\n      toty;\n    for (i = 0; i < precision + 1; i++) {\n      d = i / precision;\n      px = ax + d * tobx;\n      py = ay + d * toby;\n      qx = bx + d * tocx;\n      qy = by + d * tocy;\n      rx = cx + d * todx;\n      ry = cy + d * tody;\n      toqx = qx - px;\n      toqy = qy - py;\n      torx = rx - qx;\n      tory = ry - qy;\n\n      sx = px + d * toqx;\n      sy = py + d * toqy;\n      tx = qx + d * torx;\n      ty = qy + d * tory;\n      totx = tx - sx;\n      toty = ty - sy;\n\n      x = sx + d * totx;\n      y = sy + d * toty;\n      if (i == 0) {\n        minx = x;\n        miny = y;\n        maxx = x;\n        maxy = y;\n      } else {\n        minx = Math.min(minx, x);\n        miny = Math.min(miny, y);\n        maxx = Math.max(maxx, x);\n        maxy = Math.max(maxy, y);\n      }\n    }\n    return new Rectangle(\n      Math.round(minx),\n      Math.round(miny),\n      Math.round(maxx - minx),\n      Math.round(maxy - miny)\n    );\n  };\n})(jsPDF.API);\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\n// Mediocre shim\nvar Worker;\nvar workerAdd = \";var __w=require('worker_threads');__w.parentPort.on('message',function(m){onmessage({data:m})}),postMessage=function(m,t){__w.parentPort.postMessage(m,t)},close=process.exit;self=global\";\ntry {\n    Worker = require('worker_threads').Worker;\n}\ncatch (e) {\n}\nvar wk = Worker ? function (c, _, msg, transfer, cb) {\n    var done = false;\n    var w = new Worker(c + workerAdd, { eval: true })\n        .on('error', function (e) { return cb(e, null); })\n        .on('message', function (m) { return cb(null, m); })\n        .on('exit', function (c) {\n        if (c && !done)\n            cb(new Error('exited with code ' + c), null);\n    });\n    w.postMessage(msg, transfer);\n    w.terminate = function () {\n        done = true;\n        return Worker.prototype.terminate.call(w);\n    };\n    return w;\n} : function (_, __, ___, ____, cb) {\n    setImmediate(function () { return cb(new Error('async operations unsupported - update to Node 12+ (or Node 10-11 with the --experimental-worker CLI flag)'), null); });\n    var NOP = function () { };\n    return {\n        terminate: NOP,\n        postMessage: NOP\n    };\n};\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([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, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([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, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n    var b = new u16(31);\n    for (var i = 0; i < 31; ++i) {\n        b[i] = start += 1 << eb[i - 1];\n    }\n    // numbers here are at max 18 bits\n    var r = new u32(b[30]);\n    for (var i = 1; i < 30; ++i) {\n        for (var j = b[i]; j < b[i + 1]; ++j) {\n            r[j] = ((j - b[i]) << 5) | i;\n        }\n    }\n    return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n    // reverse table algorithm from SO\n    var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n    x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n    x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n    rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n    var s = cd.length;\n    // index\n    var i = 0;\n    // u16 \"map\": index -> # of codes with bit length = index\n    var l = new u16(mb);\n    // length of cd must be 288 (total # of codes)\n    for (; i < s; ++i)\n        ++l[cd[i] - 1];\n    // u16 \"map\": index -> minimum code for bit length = index\n    var le = new u16(mb);\n    for (i = 0; i < mb; ++i) {\n        le[i] = (le[i - 1] + l[i - 1]) << 1;\n    }\n    var co;\n    if (r) {\n        // u16 \"map\": index -> number of actual bits, symbol for code\n        co = new u16(1 << mb);\n        // bits to remove for reverser\n        var rvb = 15 - mb;\n        for (i = 0; i < s; ++i) {\n            // ignore 0 lengths\n            if (cd[i]) {\n                // num encoding both symbol and bits read\n                var sv = (i << 4) | cd[i];\n                // free bits\n                var r_1 = mb - cd[i];\n                // start value\n                var v = le[cd[i] - 1]++ << r_1;\n                // m is end value\n                for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n                    // every 16 bit value starting with the code yields the same result\n                    co[rev[v] >>> rvb] = sv;\n                }\n            }\n        }\n    }\n    else {\n        co = new u16(s);\n        for (i = 0; i < s; ++i)\n            co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n    }\n    return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n    flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n    flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n    flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n    flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n    fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n    var m = a[0];\n    for (var i = 1; i < a.length; ++i) {\n        if (a[i] > m)\n            m = a[i];\n    }\n    return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n    var o = (p / 8) >> 0;\n    return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n    var o = (p / 8) >> 0;\n    return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n    if (s == null || s < 0)\n        s = 0;\n    if (e == null || e > v.length)\n        e = v.length;\n    // can't use .constructor in case user-supplied\n    var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n    n.set(v.subarray(s, e));\n    return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n    // source length\n    var sl = dat.length;\n    // have to estimate size\n    var noBuf = !buf || st;\n    // no state\n    var noSt = !st || st.i;\n    if (!st)\n        st = {};\n    // Assumes roughly 33% compression ratio average\n    if (!buf)\n        buf = new u8(sl * 3);\n    // ensure buffer can fit at least l elements\n    var cbuf = function (l) {\n        var bl = buf.length;\n        // need to increase size to fit\n        if (l > bl) {\n            // Double or set to necessary, whichever is greater\n            var nbuf = new u8(Math.max(bl * 2, l));\n            nbuf.set(buf);\n            buf = nbuf;\n        }\n    };\n    //  last chunk         bitpos           bytes\n    var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n    // total bits\n    var tbts = sl * 8;\n    do {\n        if (!lm) {\n            // BFINAL - this is only 1 when last chunk is next\n            st.f = final = bits(dat, pos, 1);\n            // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n            var type = bits(dat, pos + 1, 3);\n            pos += 3;\n            if (!type) {\n                // go to end of byte boundary\n                var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n                if (t > sl) {\n                    if (noSt)\n                        throw 'unexpected EOF';\n                    break;\n                }\n                // ensure size\n                if (noBuf)\n                    cbuf(bt + l);\n                // Copy over uncompressed data\n                buf.set(dat.subarray(s, t), bt);\n                // Get new bitpos, update byte count\n                st.b = bt += l, st.p = pos = t * 8;\n                continue;\n            }\n            else if (type == 1)\n                lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n            else if (type == 2) {\n                //  literal                            lengths\n                var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n                var tl = hLit + bits(dat, pos + 5, 31) + 1;\n                pos += 14;\n                // length+distance tree\n                var ldt = new u8(tl);\n                // code length tree\n                var clt = new u8(19);\n                for (var i = 0; i < hcLen; ++i) {\n                    // use index map to get real code\n                    clt[clim[i]] = bits(dat, pos + i * 3, 7);\n                }\n                pos += hcLen * 3;\n                // code lengths bits\n                var clb = max(clt), clbmsk = (1 << clb) - 1;\n                if (!noSt && pos + tl * (clb + 7) > tbts)\n                    break;\n                // code lengths map\n                var clm = hMap(clt, clb, 1);\n                for (var i = 0; i < tl;) {\n                    var r = clm[bits(dat, pos, clbmsk)];\n                    // bits read\n                    pos += r & 15;\n                    // symbol\n                    var s = r >>> 4;\n                    // code length to copy\n                    if (s < 16) {\n                        ldt[i++] = s;\n                    }\n                    else {\n                        //  copy   count\n                        var c = 0, n = 0;\n                        if (s == 16)\n                            n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n                        else if (s == 17)\n                            n = 3 + bits(dat, pos, 7), pos += 3;\n                        else if (s == 18)\n                            n = 11 + bits(dat, pos, 127), pos += 7;\n                        while (n--)\n                            ldt[i++] = c;\n                    }\n                }\n                //    length tree                 distance tree\n                var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n                // max length bits\n                lbt = max(lt);\n                // max dist bits\n                dbt = max(dt);\n                lm = hMap(lt, lbt, 1);\n                dm = hMap(dt, dbt, 1);\n            }\n            else\n                throw 'invalid block type';\n            if (pos > tbts)\n                throw 'unexpected EOF';\n        }\n        // Make sure the buffer can hold this + the largest possible addition\n        // Maximum chunk size (practically, theoretically infinite) is 2^17;\n        if (noBuf)\n            cbuf(bt + 131072);\n        var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n        var mxa = lbt + dbt + 18;\n        while (noSt || pos + mxa < tbts) {\n            // bits read, code\n            var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n            pos += c & 15;\n            if (pos > tbts)\n                throw 'unexpected EOF';\n            if (!c)\n                throw 'invalid length/literal';\n            if (sym < 256)\n                buf[bt++] = sym;\n            else if (sym == 256) {\n                lm = null;\n                break;\n            }\n            else {\n                var add = sym - 254;\n                // no extra bits needed if less\n                if (sym > 264) {\n                    // index\n                    var i = sym - 257, b = fleb[i];\n                    add = bits(dat, pos, (1 << b) - 1) + fl[i];\n                    pos += b;\n                }\n                // dist\n                var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n                if (!d)\n                    throw 'invalid distance';\n                pos += d & 15;\n                var dt = fd[dsym];\n                if (dsym > 3) {\n                    var b = fdeb[dsym];\n                    dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n                }\n                if (pos > tbts)\n                    throw 'unexpected EOF';\n                if (noBuf)\n                    cbuf(bt + 131072);\n                var end = bt + add;\n                for (; bt < end; bt += 4) {\n                    buf[bt] = buf[bt - dt];\n                    buf[bt + 1] = buf[bt + 1 - dt];\n                    buf[bt + 2] = buf[bt + 2 - dt];\n                    buf[bt + 3] = buf[bt + 3 - dt];\n                }\n                bt = end;\n            }\n        }\n        st.l = lm, st.p = pos, st.b = bt;\n        if (lm)\n            final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n    } while (!final);\n    return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n    v <<= p & 7;\n    var o = (p / 8) >> 0;\n    d[o] |= v;\n    d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n    v <<= p & 7;\n    var o = (p / 8) >> 0;\n    d[o] |= v;\n    d[o + 1] |= v >>> 8;\n    d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n    // Need extra info to make a tree\n    var t = [];\n    for (var i = 0; i < d.length; ++i) {\n        if (d[i])\n            t.push({ s: i, f: d[i] });\n    }\n    var s = t.length;\n    var t2 = t.slice();\n    if (!s)\n        return [new u8(0), 0];\n    if (s == 1) {\n        var v = new u8(t[0].s + 1);\n        v[t[0].s] = 1;\n        return [v, 1];\n    }\n    t.sort(function (a, b) { return a.f - b.f; });\n    // after i2 reaches last ind, will be stopped\n    // freq must be greater than largest possible number of symbols\n    t.push({ s: -1, f: 25001 });\n    var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n    t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n    // efficient algorithm from UZIP.js\n    // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n    // symbols that combined have high freq, will start processing i2 (high-freq,\n    // non-composite) symbols instead\n    // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n    while (i1 != s - 1) {\n        l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n        r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n        t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n    }\n    var maxSym = t2[0].s;\n    for (var i = 1; i < s; ++i) {\n        if (t2[i].s > maxSym)\n            maxSym = t2[i].s;\n    }\n    // code lengths\n    var tr = new u16(maxSym + 1);\n    // max bits in tree\n    var mbt = ln(t[i1 - 1], tr, 0);\n    if (mbt > mb) {\n        // more algorithms from UZIP.js\n        // TODO: find out how this code works (debt)\n        //  ind    debt\n        var i = 0, dt = 0;\n        //    left            cost\n        var lft = mbt - mb, cst = 1 << lft;\n        t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n        for (; i < s; ++i) {\n            var i2_1 = t2[i].s;\n            if (tr[i2_1] > mb) {\n                dt += cst - (1 << (mbt - tr[i2_1]));\n                tr[i2_1] = mb;\n            }\n            else\n                break;\n        }\n        dt >>>= lft;\n        while (dt > 0) {\n            var i2_2 = t2[i].s;\n            if (tr[i2_2] < mb)\n                dt -= 1 << (mb - tr[i2_2]++ - 1);\n            else\n                ++i;\n        }\n        for (; i >= 0 && dt; --i) {\n            var i2_3 = t2[i].s;\n            if (tr[i2_3] == mb) {\n                --tr[i2_3];\n                ++dt;\n            }\n        }\n        mbt = mb;\n    }\n    return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n    return n.s == -1\n        ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n        : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n    var s = c.length;\n    // Note that the semicolon was intentional\n    while (s && !c[--s])\n        ;\n    var cl = new u16(++s);\n    //  ind      num         streak\n    var cli = 0, cln = c[0], cls = 1;\n    var w = function (v) { cl[cli++] = v; };\n    for (var i = 1; i <= s; ++i) {\n        if (c[i] == cln && i != s)\n            ++cls;\n        else {\n            if (!cln && cls > 2) {\n                for (; cls > 138; cls -= 138)\n                    w(32754);\n                if (cls > 2) {\n                    w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n                    cls = 0;\n                }\n            }\n            else if (cls > 3) {\n                w(cln), --cls;\n                for (; cls > 6; cls -= 6)\n                    w(8304);\n                if (cls > 2)\n                    w(((cls - 3) << 5) | 8208), cls = 0;\n            }\n            while (cls--)\n                w(cln);\n            cls = 1;\n            cln = c[i];\n        }\n    }\n    return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n    var l = 0;\n    for (var i = 0; i < cl.length; ++i)\n        l += cf[i] * cl[i];\n    return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n    // no need to write 00 as type: TypedArray defaults to 0\n    var s = dat.length;\n    var o = shft(pos + 2);\n    out[o] = s & 255;\n    out[o + 1] = s >>> 8;\n    out[o + 2] = out[o] ^ 255;\n    out[o + 3] = out[o + 1] ^ 255;\n    for (var i = 0; i < s; ++i)\n        out[o + i + 4] = dat[i];\n    return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n    wbits(out, p++, final);\n    ++lf[256];\n    var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n    var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n    var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n    var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n    var lcfreq = new u16(19);\n    for (var i = 0; i < lclt.length; ++i)\n        lcfreq[lclt[i] & 31]++;\n    for (var i = 0; i < lcdt.length; ++i)\n        lcfreq[lcdt[i] & 31]++;\n    var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n    var nlcc = 19;\n    for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n        ;\n    var flen = (bl + 5) << 3;\n    var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n    var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n    if (flen <= ftlen && flen <= dtlen)\n        return wfblk(out, p, dat.subarray(bs, bs + bl));\n    var lm, ll, dm, dl;\n    wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n    if (dtlen < ftlen) {\n        lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n        var llm = hMap(lct, mlcb, 0);\n        wbits(out, p, nlc - 257);\n        wbits(out, p + 5, ndc - 1);\n        wbits(out, p + 10, nlcc - 4);\n        p += 14;\n        for (var i = 0; i < nlcc; ++i)\n            wbits(out, p + 3 * i, lct[clim[i]]);\n        p += 3 * nlcc;\n        var lcts = [lclt, lcdt];\n        for (var it = 0; it < 2; ++it) {\n            var clct = lcts[it];\n            for (var i = 0; i < clct.length; ++i) {\n                var len = clct[i] & 31;\n                wbits(out, p, llm[len]), p += lct[len];\n                if (len > 15)\n                    wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n            }\n        }\n    }\n    else {\n        lm = flm, ll = flt, dm = fdm, dl = fdt;\n    }\n    for (var i = 0; i < li; ++i) {\n        if (syms[i] > 255) {\n            var len = (syms[i] >>> 18) & 31;\n            wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n            if (len > 7)\n                wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n            var dst = syms[i] & 31;\n            wbits16(out, p, dm[dst]), p += dl[dst];\n            if (dst > 3)\n                wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n        }\n        else {\n            wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n        }\n    }\n    wbits16(out, p, lm[256]);\n    return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n    var s = dat.length;\n    var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n    // writing to this writes to the output buffer\n    var w = o.subarray(pre, o.length - post);\n    var pos = 0;\n    if (!lvl || s < 8) {\n        for (var i = 0; i <= s; i += 65535) {\n            // end\n            var e = i + 65535;\n            if (e < s) {\n                // write full block\n                pos = wfblk(w, pos, dat.subarray(i, e));\n            }\n            else {\n                // write final block\n                w[i] = lst;\n                pos = wfblk(w, pos, dat.subarray(i, s));\n            }\n        }\n    }\n    else {\n        var opt = deo[lvl - 1];\n        var n = opt >>> 13, c = opt & 8191;\n        var msk_1 = (1 << plvl) - 1;\n        //    prev 2-byte val map    curr 2-byte val map\n        var prev = new u16(32768), head = new u16(msk_1 + 1);\n        var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n        var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n        // 24576 is an arbitrary number of maximum symbols per block\n        // 424 buffer for last block\n        var syms = new u32(25000);\n        // length/literal freq   distance freq\n        var lf = new u16(288), df = new u16(32);\n        //  l/lcnt  exbits  index  l/lind  waitdx  bitpos\n        var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n        for (; i < s; ++i) {\n            // hash value\n            var hv = hsh(i);\n            // index mod 32768\n            var imod = i & 32767;\n            // previous index with this value\n            var pimod = head[hv];\n            prev[imod] = pimod;\n            head[hv] = imod;\n            // We always should modify head and prev, but only add symbols if\n            // this data is not yet processed (\"wait\" for wait index)\n            if (wi <= i) {\n                // bytes remaining\n                var rem = s - i;\n                if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n                    pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n                    li = lc_1 = eb = 0, bs = i;\n                    for (var j = 0; j < 286; ++j)\n                        lf[j] = 0;\n                    for (var j = 0; j < 30; ++j)\n                        df[j] = 0;\n                }\n                //  len    dist   chain\n                var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n                if (rem > 2 && hv == hsh(i - dif)) {\n                    var maxn = Math.min(n, rem) - 1;\n                    var maxd = Math.min(32767, i);\n                    // max possible length\n                    // not capped at dif because decompressors implement \"rolling\" index population\n                    var ml = Math.min(258, rem);\n                    while (dif <= maxd && --ch_1 && imod != pimod) {\n                        if (dat[i + l] == dat[i + l - dif]) {\n                            var nl = 0;\n                            for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n                                ;\n                            if (nl > l) {\n                                l = nl, d = dif;\n                                // break out early when we reach \"nice\" (we are satisfied enough)\n                                if (nl > maxn)\n                                    break;\n                                // now, find the rarest 2-byte sequence within this\n                                // length of literals and search for that instead.\n                                // Much faster than just using the start\n                                var mmd = Math.min(dif, nl - 2);\n                                var md = 0;\n                                for (var j = 0; j < mmd; ++j) {\n                                    var ti = (i - dif + j + 32768) & 32767;\n                                    var pti = prev[ti];\n                                    var cd = (ti - pti + 32768) & 32767;\n                                    if (cd > md)\n                                        md = cd, pimod = ti;\n                                }\n                            }\n                        }\n                        // check the previous match\n                        imod = pimod, pimod = prev[imod];\n                        dif += (imod - pimod + 32768) & 32767;\n                    }\n                }\n                // d will be nonzero only when a match was found\n                if (d) {\n                    // store both dist and len data in one Uint32\n                    // Make sure this is recognized as a len/dist with 28th bit (2^28)\n                    syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n                    var lin = revfl[l] & 31, din = revfd[d] & 31;\n                    eb += fleb[lin] + fdeb[din];\n                    ++lf[257 + lin];\n                    ++df[din];\n                    wi = i + l;\n                    ++lc_1;\n                }\n                else {\n                    syms[li++] = dat[i];\n                    ++lf[dat[i]];\n                }\n            }\n        }\n        pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n        // this is the easiest way to avoid needing to maintain state\n        if (!lst)\n            pos = wfblk(w, pos, et);\n    }\n    return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n    var t = new u32(256);\n    for (var i = 0; i < 256; ++i) {\n        var c = i, k = 9;\n        while (--k)\n            c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n        t[i] = c;\n    }\n    return t;\n})();\n// CRC32\nvar crc = function () {\n    var c = 0xFFFFFFFF;\n    return {\n        p: function (d) {\n            // closures have awful performance\n            var cr = c;\n            for (var i = 0; i < d.length; ++i)\n                cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n            c = cr;\n        },\n        d: function () { return c ^ 0xFFFFFFFF; }\n    };\n};\n// Alder32\nvar adler = function () {\n    var a = 1, b = 0;\n    return {\n        p: function (d) {\n            // closures have awful performance\n            var n = a, m = b;\n            var l = d.length;\n            for (var i = 0; i != l;) {\n                var e = Math.min(i + 5552, l);\n                for (; i < e; ++i)\n                    n += d[i], m += n;\n                n %= 65521, m %= 65521;\n            }\n            a = n, b = m;\n        },\n        d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n    };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n    return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n    var o = {};\n    for (var k in a)\n        o[k] = a[k];\n    for (var k in b)\n        o[k] = b[k];\n    return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n    var dt = fn();\n    var st = fn.toString();\n    var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n    for (var i = 0; i < dt.length; ++i) {\n        var v = dt[i], k = ks[i];\n        if (typeof v == 'function') {\n            fnStr += ';' + k + '=';\n            var st_1 = v.toString();\n            if (v.prototype) {\n                // for global objects\n                if (st_1.indexOf('[native code]') != -1) {\n                    var spInd = st_1.indexOf(' ', 8) + 1;\n                    fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n                }\n                else {\n                    fnStr += st_1;\n                    for (var t in v.prototype)\n                        fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n                }\n            }\n            else\n                fnStr += st_1;\n        }\n        else\n            td[k] = v;\n    }\n    return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n    var tl = [];\n    for (var k in v) {\n        if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n            tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n    }\n    return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n    var _a;\n    if (!ch[id]) {\n        var fnStr = '', td_1 = {}, m = fns.length - 1;\n        for (var i = 0; i < m; ++i)\n            _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n        ch[id] = wcln(fns[m], fnStr, td_1);\n    }\n    var td = mrg({}, ch[id][1]);\n    return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n    var w = wrkr(fns, init, id, function (err, dat) {\n        w.terminate();\n        cb(err, dat);\n    });\n    if (!opts.consume)\n        dat = new u8(dat);\n    w.postMessage([dat, opts], [dat.buffer]);\n    return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n    strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n    return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n    var t;\n    var w = wrkr(fns, init, id, function (err, dat) {\n        if (err)\n            w.terminate(), strm.ondata.call(strm, err);\n        else {\n            if (dat[1])\n                w.terminate();\n            strm.ondata.call(strm, err, dat[0], dat[1]);\n        }\n    });\n    w.postMessage(opts);\n    strm.push = function (d, f) {\n        if (t)\n            throw 'stream finished';\n        if (!strm.ondata)\n            throw 'no stream handler';\n        w.postMessage([d, t = f], [d.buffer]);\n    };\n    strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n    for (; v; ++b)\n        d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n    var fn = o.filename;\n    c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n    if (o.mtime != 0)\n        wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n    if (fn) {\n        c[3] = 8;\n        for (var i = 0; i <= fn.length; ++i)\n            c[i + 10] = fn.charCodeAt(i);\n    }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n    if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n        throw 'invalid gzip data';\n    var flg = d[3];\n    var st = 10;\n    if (flg & 4)\n        st += d[10] | (d[11] << 8) + 2;\n    for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n        ;\n    return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n    var l = d.length;\n    return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n    var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n    c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n    if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n        throw 'invalid zlib data';\n    if (d[1] & 32)\n        throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n    if (!cb && typeof opts == 'function')\n        cb = opts, opts = {};\n    this.ondata = cb;\n    return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n    function Deflate(opts, cb) {\n        if (!cb && typeof opts == 'function')\n            cb = opts, opts = {};\n        this.ondata = cb;\n        this.o = opts || {};\n    }\n    Deflate.prototype.p = function (c, f) {\n        this.ondata(dopt(c, this.o, 0, 0, !f), f);\n    };\n    /**\n     * Pushes a chunk to be deflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Deflate.prototype.push = function (chunk, final) {\n        if (this.d)\n            throw 'stream finished';\n        if (!this.ondata)\n            throw 'no stream handler';\n        this.d = final;\n        this.p(chunk, final || false);\n    };\n    return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n    function AsyncDeflate(opts, cb) {\n        astrmify([\n            bDflt,\n            function () { return [astrm, Deflate]; }\n        ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n            var strm = new Deflate(ev.data);\n            onmessage = astrm(strm);\n        }, 6);\n    }\n    return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    return cbify(data, opts, [\n        bDflt,\n    ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n    if (opts === void 0) { opts = {}; }\n    return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n    /**\n     * Creates an inflation stream\n     * @param cb The callback to call whenever data is inflated\n     */\n    function Inflate(cb) {\n        this.s = {};\n        this.p = new u8(0);\n        this.ondata = cb;\n    }\n    Inflate.prototype.e = function (c) {\n        if (this.d)\n            throw 'stream finished';\n        if (!this.ondata)\n            throw 'no stream handler';\n        var l = this.p.length;\n        var n = new u8(l + c.length);\n        n.set(this.p), n.set(c, l), this.p = n;\n    };\n    Inflate.prototype.c = function (final) {\n        this.d = this.s.i = final || false;\n        var bts = this.s.b;\n        var dt = inflt(this.p, this.o, this.s);\n        this.ondata(slc(dt, bts, this.s.b), this.d);\n        this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n        this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n    };\n    /**\n     * Pushes a chunk to be inflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the final chunk\n     */\n    Inflate.prototype.push = function (chunk, final) {\n        this.e(chunk), this.c(final);\n    };\n    return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n    /**\n     * Creates an asynchronous inflation stream\n     * @param cb The callback to call whenever data is deflated\n     */\n    function AsyncInflate(cb) {\n        this.ondata = cb;\n        astrmify([\n            bInflt,\n            function () { return [astrm, Inflate]; }\n        ], this, 0, function () {\n            var strm = new Inflate();\n            onmessage = astrm(strm);\n        }, 7);\n    }\n    return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    return cbify(data, opts, [\n        bInflt\n    ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n    return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n    function Gzip(opts, cb) {\n        this.c = crc();\n        this.l = 0;\n        this.v = 1;\n        Deflate.call(this, opts, cb);\n    }\n    /**\n     * Pushes a chunk to be GZIPped\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Gzip.prototype.push = function (chunk, final) {\n        Deflate.prototype.push.call(this, chunk, final);\n    };\n    Gzip.prototype.p = function (c, f) {\n        this.c.p(c);\n        this.l += c.length;\n        var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n        if (this.v)\n            gzh(raw, this.o), this.v = 0;\n        if (f)\n            wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n        this.ondata(raw, f);\n    };\n    return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n    function AsyncGzip(opts, cb) {\n        astrmify([\n            bDflt,\n            gze,\n            function () { return [astrm, Deflate, Gzip]; }\n        ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n            var strm = new Gzip(ev.data);\n            onmessage = astrm(strm);\n        }, 8);\n    }\n    return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    return cbify(data, opts, [\n        bDflt,\n        gze,\n        function () { return [gzipSync]; }\n    ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n    if (opts === void 0) { opts = {}; }\n    var c = crc(), l = data.length;\n    c.p(data);\n    var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n    return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n    /**\n     * Creates a GUNZIP stream\n     * @param cb The callback to call whenever data is inflated\n     */\n    function Gunzip(cb) {\n        this.v = 1;\n        Inflate.call(this, cb);\n    }\n    /**\n     * Pushes a chunk to be GUNZIPped\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Gunzip.prototype.push = function (chunk, final) {\n        Inflate.prototype.e.call(this, chunk);\n        if (this.v) {\n            var s = gzs(this.p);\n            if (s >= this.p.length && !final)\n                return;\n            this.p = this.p.subarray(s), this.v = 0;\n        }\n        if (final) {\n            if (this.p.length < 8)\n                throw 'invalid gzip stream';\n            this.p = this.p.subarray(0, -8);\n        }\n        // necessary to prevent TS from using the closure value\n        // This allows for workerization to function correctly\n        Inflate.prototype.c.call(this, final);\n    };\n    return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n    /**\n     * Creates an asynchronous GUNZIP stream\n     * @param cb The callback to call whenever data is deflated\n     */\n    function AsyncGunzip(cb) {\n        this.ondata = cb;\n        astrmify([\n            bInflt,\n            guze,\n            function () { return [astrm, Inflate, Gunzip]; }\n        ], this, 0, function () {\n            var strm = new Gunzip();\n            onmessage = astrm(strm);\n        }, 9);\n    }\n    return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    return cbify(data, opts, [\n        bInflt,\n        guze,\n        function () { return [gunzipSync]; }\n    ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n    return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n    function Zlib(opts, cb) {\n        this.c = adler();\n        this.v = 1;\n        Deflate.call(this, opts, cb);\n    }\n    /**\n     * Pushes a chunk to be zlibbed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Zlib.prototype.push = function (chunk, final) {\n        Deflate.prototype.push.call(this, chunk, final);\n    };\n    Zlib.prototype.p = function (c, f) {\n        this.c.p(c);\n        var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n        if (this.v)\n            zlh(raw, this.o), this.v = 0;\n        if (f)\n            wbytes(raw, raw.length - 4, this.c.d());\n        this.ondata(raw, f);\n    };\n    return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n    function AsyncZlib(opts, cb) {\n        astrmify([\n            bDflt,\n            zle,\n            function () { return [astrm, Deflate, Zlib]; }\n        ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n            var strm = new Zlib(ev.data);\n            onmessage = astrm(strm);\n        }, 10);\n    }\n    return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    return cbify(data, opts, [\n        bDflt,\n        zle,\n        function () { return [zlibSync]; }\n    ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n    if (opts === void 0) { opts = {}; }\n    var a = adler();\n    a.p(data);\n    var d = dopt(data, opts, 2, 4);\n    return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n    /**\n     * Creates a Zlib decompression stream\n     * @param cb The callback to call whenever data is inflated\n     */\n    function Unzlib(cb) {\n        this.v = 1;\n        Inflate.call(this, cb);\n    }\n    /**\n     * Pushes a chunk to be unzlibbed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Unzlib.prototype.push = function (chunk, final) {\n        Inflate.prototype.e.call(this, chunk);\n        if (this.v) {\n            if (this.p.length < 2 && !final)\n                return;\n            this.p = this.p.subarray(2), this.v = 0;\n        }\n        if (final) {\n            if (this.p.length < 4)\n                throw 'invalid zlib stream';\n            this.p = this.p.subarray(0, -4);\n        }\n        // necessary to prevent TS from using the closure value\n        // This allows for workerization to function correctly\n        Inflate.prototype.c.call(this, final);\n    };\n    return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n    /**\n     * Creates an asynchronous Zlib decompression stream\n     * @param cb The callback to call whenever data is deflated\n     */\n    function AsyncUnzlib(cb) {\n        this.ondata = cb;\n        astrmify([\n            bInflt,\n            zule,\n            function () { return [astrm, Inflate, Unzlib]; }\n        ], this, 0, function () {\n            var strm = new Unzlib();\n            onmessage = astrm(strm);\n        }, 11);\n    }\n    return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    return cbify(data, opts, [\n        bInflt,\n        zule,\n        function () { return [unzlibSync]; }\n    ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n    return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n    /**\n     * Creates a decompression stream\n     * @param cb The callback to call whenever data is decompressed\n     */\n    function Decompress(cb) {\n        this.G = Gunzip;\n        this.I = Inflate;\n        this.Z = Unzlib;\n        this.ondata = cb;\n    }\n    /**\n     * Pushes a chunk to be decompressed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Decompress.prototype.push = function (chunk, final) {\n        if (!this.ondata)\n            throw 'no stream handler';\n        if (!this.s) {\n            if (this.p && this.p.length) {\n                var n = new u8(this.p.length + chunk.length);\n                n.set(this.p), n.set(chunk, this.p.length);\n            }\n            else\n                this.p = chunk;\n            if (this.p.length > 2) {\n                var _this_1 = this;\n                var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n                this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n                    ? new this.G(cb)\n                    : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n                        ? new this.I(cb)\n                        : new this.Z(cb);\n                this.s.push(this.p, final);\n                this.p = null;\n            }\n        }\n        else\n            this.s.push(chunk, final);\n    };\n    return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n    /**\n   * Creates an asynchronous decompression stream\n   * @param cb The callback to call whenever data is decompressed\n   */\n    function AsyncDecompress(cb) {\n        this.G = AsyncGunzip;\n        this.I = AsyncInflate;\n        this.Z = AsyncUnzlib;\n        this.ondata = cb;\n    }\n    /**\n     * Pushes a chunk to be decompressed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    AsyncDecompress.prototype.push = function (chunk, final) {\n        Decompress.prototype.push.call(this, chunk, final);\n    };\n    return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n        ? gunzip(data, opts, cb)\n        : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n            ? inflate(data, opts, cb)\n            : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n    return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n        ? gunzipSync(data, out)\n        : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n            ? inflateSync(data, out)\n            : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n    for (var k in d) {\n        var val = d[k], n = p + k;\n        if (val instanceof u8)\n            t[n] = [val, o];\n        else if (Array.isArray(val))\n            t[n] = [val[0], mrg(o, val[1])];\n        else\n            fltn(val, n + '/', t, o);\n    }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n *               not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n    var l = str.length;\n    if (!latin1 && typeof TextEncoder != 'undefined')\n        return new TextEncoder().encode(str);\n    var ar = new u8(str.length + (str.length >>> 1));\n    var ai = 0;\n    var w = function (v) { ar[ai++] = v; };\n    for (var i = 0; i < l; ++i) {\n        if (ai + 5 > ar.length) {\n            var n = new u8(ai + 8 + ((l - i) << 1));\n            n.set(ar);\n            ar = n;\n        }\n        var c = str.charCodeAt(i);\n        if (c < 128 || latin1)\n            w(c);\n        else if (c < 2048)\n            w(192 | (c >>> 6)), w(128 | (c & 63));\n        else if (c > 55295 && c < 57344)\n            c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n                w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n        else\n            w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n    }\n    return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n *               not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n    var r = '';\n    if (!latin1 && typeof TextDecoder != 'undefined')\n        return new TextDecoder().decode(dat);\n    for (var i = 0; i < dat.length;) {\n        var c = dat[i++];\n        if (c < 128 || latin1)\n            r += String.fromCharCode(c);\n        else if (c < 224)\n            r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n        else if (c < 240)\n            r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n        else\n            c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n                r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n    }\n    return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n    var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n    var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n    return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n    for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n        ;\n    return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n    var fl = fn.length, l = cmp.length;\n    wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n    if (ce != null)\n        d[b] = 20, b += 2;\n    d[b] = 20, b += 2; // spec compliance? what's that?\n    d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n    d[b] = t, b += 2;\n    var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n    if (y < 0 || y > 119)\n        throw 'date not in range 1980-2099';\n    wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n    b += 4;\n    wbytes(d, b, c);\n    wbytes(d, b + 4, l);\n    wbytes(d, b + 8, su);\n    wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n    if (ce != null)\n        wbytes(d, b += 10, ce), b += 4;\n    d.set(fn, b);\n    b += fl;\n    if (ce == null)\n        d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n    wbytes(o, b, 0x6054B50); // skip disk\n    wbytes(o, b + 8, c);\n    wbytes(o, b + 10, c);\n    wbytes(o, b + 12, d);\n    wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n    if (!cb)\n        cb = opts, opts = {};\n    if (typeof cb != 'function')\n        throw 'no callback';\n    var r = {};\n    fltn(data, '', r, opts);\n    var k = Object.keys(r);\n    var lft = k.length, o = 0, tot = 0;\n    var slft = lft, files = new Array(lft);\n    var term = [];\n    var tAll = function () {\n        for (var i = 0; i < term.length; ++i)\n            term[i]();\n    };\n    var cbf = function () {\n        var out = new u8(tot + 22), oe = o, cdl = tot - o;\n        tot = 0;\n        for (var i = 0; i < slft; ++i) {\n            var f = files[i];\n            try {\n                wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n                wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n            }\n            catch (e) {\n                return cb(e, null);\n            }\n        }\n        wzf(out, o, files.length, cdl, oe);\n        cb(null, out);\n    };\n    if (!lft)\n        cbf();\n    var _loop_1 = function (i) {\n        var fn = k[i];\n        var _a = r[fn], file = _a[0], p = _a[1];\n        var c = crc(), m = file.length;\n        c.p(file);\n        var n = strToU8(fn), s = n.length;\n        var t = p.level == 0 ? 0 : 8;\n        var cbl = function (e, d) {\n            if (e) {\n                tAll();\n                cb(e, null);\n            }\n            else {\n                var l = d.length;\n                files[i] = {\n                    t: t,\n                    d: d,\n                    m: m,\n                    c: c.d(),\n                    u: fn.length != l,\n                    n: n,\n                    p: p\n                };\n                o += 30 + s + l;\n                tot += 76 + 2 * s + l;\n                if (!--lft)\n                    cbf();\n            }\n        };\n        if (n.length > 65535)\n            cbl('filename too long', null);\n        if (!t)\n            cbl(null, file);\n        else if (m < 160000) {\n            try {\n                cbl(null, deflateSync(file, p));\n            }\n            catch (e) {\n                cbl(e, null);\n            }\n        }\n        else\n            term.push(deflate(file, p, cbl));\n    };\n    // Cannot use lft because it can decrease\n    for (var i = 0; i < slft; ++i) {\n        _loop_1(i);\n    }\n    return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n    if (opts === void 0) { opts = {}; }\n    var r = {};\n    var files = [];\n    fltn(data, '', r, opts);\n    var o = 0;\n    var tot = 0;\n    for (var fn in r) {\n        var _a = r[fn], file = _a[0], p = _a[1];\n        var t = p.level == 0 ? 0 : 8;\n        var n = strToU8(fn), s = n.length;\n        if (n.length > 65535)\n            throw 'filename too long';\n        var d = t ? deflateSync(file, p) : file, l = d.length;\n        var c = crc();\n        c.p(file);\n        files.push({\n            t: t,\n            d: d,\n            m: file.length,\n            c: c.d(),\n            u: fn.length != s,\n            n: n,\n            o: o,\n            p: p\n        });\n        o += 30 + s + l;\n        tot += 76 + 2 * s + l;\n    }\n    var out = new u8(tot + 22), oe = o, cdl = tot - o;\n    for (var i = 0; i < files.length; ++i) {\n        var f = files[i];\n        wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n        wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n    }\n    wzf(out, o, files.length, cdl, oe);\n    return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n    if (typeof cb != 'function')\n        throw 'no callback';\n    var term = [];\n    var tAll = function () {\n        for (var i = 0; i < term.length; ++i)\n            term[i]();\n    };\n    var files = {};\n    var e = data.length - 22;\n    for (; b4(data, e) != 0x6054B50; --e) {\n        if (!e || data.length - e > 65558) {\n            cb('invalid zip file', null);\n            return;\n        }\n    }\n    ;\n    var lft = b2(data, e + 8);\n    if (!lft)\n        cb(null, {});\n    var c = lft;\n    var o = b4(data, e + 16);\n    var z = o == 4294967295;\n    if (z) {\n        e = b4(data, e - 12);\n        if (b4(data, e) != 0x6064B50)\n            throw 'invalid zip file';\n        c = lft = b4(data, e + 32);\n        o = b4(data, e + 48);\n    }\n    var _loop_2 = function (i) {\n        var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n        o = no;\n        var cbl = function (e, d) {\n            if (e) {\n                tAll();\n                cb(e, null);\n            }\n            else {\n                files[fn] = d;\n                if (!--lft)\n                    cb(null, files);\n            }\n        };\n        if (!c_1)\n            cbl(null, slc(data, b, b + sc));\n        else if (c_1 == 8) {\n            var infl = data.subarray(b, b + sc);\n            if (sc < 320000) {\n                try {\n                    cbl(null, inflateSync(infl, new u8(su)));\n                }\n                catch (e) {\n                    cbl(e, null);\n                }\n            }\n            else\n                term.push(inflate(infl, { size: su }, cbl));\n        }\n        else\n            cbl('unknown compression type ' + c_1, null);\n    };\n    for (var i = 0; i < c; ++i) {\n        _loop_2(i);\n    }\n    return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n    var files = {};\n    var e = data.length - 22;\n    for (; b4(data, e) != 0x6054B50; --e) {\n        if (!e || data.length - e > 65558)\n            throw 'invalid zip file';\n    }\n    ;\n    var c = b2(data, e + 8);\n    if (!c)\n        return {};\n    var o = b4(data, e + 16);\n    var z = o == 4294967295;\n    if (z) {\n        e = b4(data, e - 12);\n        if (b4(data, e) != 0x6064B50)\n            throw 'invalid zip file';\n        c = b4(data, e + 32);\n        o = b4(data, e + 48);\n    }\n    for (var i = 0; i < c; ++i) {\n        var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n        o = no;\n        if (!c_2)\n            files[fn] = slc(data, b, b + sc);\n        else if (c_2 == 8)\n            files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n        else\n            throw 'unknown compression type ' + c_2;\n    }\n    return files;\n}\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var ASCII85Encode = function(a) {\n    var b, c, d, e, f, g, h, i, j, k;\n    // eslint-disable-next-line no-control-regex\n    for (\n      !/[^\\x00-\\xFF]/.test(a),\n        b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n        a += b,\n        c = [],\n        d = 0,\n        e = a.length;\n      e > d;\n      d += 4\n    )\n      (f =\n        (a.charCodeAt(d) << 24) +\n        (a.charCodeAt(d + 1) << 16) +\n        (a.charCodeAt(d + 2) << 8) +\n        a.charCodeAt(d + 3)),\n        0 !== f\n          ? ((k = f % 85),\n            (f = (f - k) / 85),\n            (j = f % 85),\n            (f = (f - j) / 85),\n            (i = f % 85),\n            (f = (f - i) / 85),\n            (h = f % 85),\n            (f = (f - h) / 85),\n            (g = f % 85),\n            c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n          : c.push(122);\n    return (\n      (function(a, b) {\n        for (var c = b; c > 0; c--) a.pop();\n      })(c, b.length),\n      String.fromCharCode.apply(String, c) + \"~>\"\n    );\n  };\n\n  var ASCII85Decode = function(a) {\n    var c,\n      d,\n      e,\n      f,\n      g,\n      h = String,\n      l = \"length\",\n      w = 255,\n      x = \"charCodeAt\",\n      y = \"slice\",\n      z = \"replace\";\n    for (\n      \"~>\" === a[y](-2),\n        a = a[y](0, -2)\n          [z](/\\s/g, \"\")\n          [z](\"z\", \"!!!!!\"),\n        c = \"uuuuu\"[y](a[l] % 5 || 5),\n        a += c,\n        e = [],\n        f = 0,\n        g = a[l];\n      g > f;\n      f += 5\n    )\n      (d =\n        52200625 * (a[x](f) - 33) +\n        614125 * (a[x](f + 1) - 33) +\n        7225 * (a[x](f + 2) - 33) +\n        85 * (a[x](f + 3) - 33) +\n        (a[x](f + 4) - 33)),\n        e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n    return (\n      (function(a, b) {\n        for (var c = b; c > 0; c--) a.pop();\n      })(e, c[l]),\n      h.fromCharCode.apply(h, e)\n    );\n  };\n\n  var ASCIIHexEncode = function(value) {\n    return (\n      value\n        .split(\"\")\n        .map(function(value) {\n          return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n        })\n        .join(\"\") + \">\"\n    );\n  };\n\n  var ASCIIHexDecode = function(value) {\n    var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n    value = value.replace(/\\s/g, \"\");\n    if (value.indexOf(\">\") !== -1) {\n      value = value.substr(0, value.indexOf(\">\"));\n    }\n    if (value.length % 2) {\n      value += \"0\";\n    }\n    if (regexCheckIfHex.test(value) === false) {\n      return \"\";\n    }\n    var result = \"\";\n    for (var i = 0; i < value.length; i += 2) {\n      result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n    }\n    return result;\n  };\n  /*\n  var FlatePredictors = {\n      None: 1,\n      TIFF: 2,\n      PNG_None: 10,\n      PNG_Sub: 11,\n      PNG_Up: 12,\n      PNG_Average: 13,\n      PNG_Paeth: 14,\n      PNG_Optimum: 15\n  };\n  */\n\n  var FlateEncode = function(data) {\n    var arr = new Uint8Array(data.length);\n    var i = data.length;\n    while (i--) {\n      arr[i] = data.charCodeAt(i);\n    }\n    arr = zlibSync(arr);\n    data = arr.reduce(function(data, byte) {\n      return data + String.fromCharCode(byte);\n    }, \"\");\n    return data;\n  };\n\n  jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n    \"use strict\";\n    var i = 0;\n    var data = origData || \"\";\n    var reverseChain = [];\n    filterChain = filterChain || [];\n\n    if (typeof filterChain === \"string\") {\n      filterChain = [filterChain];\n    }\n\n    for (i = 0; i < filterChain.length; i += 1) {\n      switch (filterChain[i]) {\n        case \"ASCII85Decode\":\n        case \"/ASCII85Decode\":\n          data = ASCII85Decode(data);\n          reverseChain.push(\"/ASCII85Encode\");\n          break;\n        case \"ASCII85Encode\":\n        case \"/ASCII85Encode\":\n          data = ASCII85Encode(data);\n          reverseChain.push(\"/ASCII85Decode\");\n          break;\n        case \"ASCIIHexDecode\":\n        case \"/ASCIIHexDecode\":\n          data = ASCIIHexDecode(data);\n          reverseChain.push(\"/ASCIIHexEncode\");\n          break;\n        case \"ASCIIHexEncode\":\n        case \"/ASCIIHexEncode\":\n          data = ASCIIHexEncode(data);\n          reverseChain.push(\"/ASCIIHexDecode\");\n          break;\n        case \"FlateEncode\":\n        case \"/FlateEncode\":\n          data = FlateEncode(data);\n          reverseChain.push(\"/FlateDecode\");\n          break;\n        default:\n          throw new Error(\n            'The filter: \"' + filterChain[i] + '\" is not implemented'\n          );\n      }\n    }\n\n    return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n  };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * @name loadFile\n   * @function\n   * @param {string} url\n   * @param {boolean} sync\n   * @param {function} callback\n   * @returns {string|undefined} result\n   */\n  jsPDFAPI.loadFile = function(url, sync, callback) {\n    return browserRequest(url, sync, callback);\n\n  };\n\n  /**\n   * @name loadImageFile\n   * @function\n   * @param {string} path\n   * @param {boolean} sync\n   * @param {function} callback\n   */\n  jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n  function browserRequest(url, sync, callback) {\n    sync = sync === false ? false : true;\n    callback = typeof callback === \"function\" ? callback : function() {};\n    var result = undefined;\n\n    var xhr = function(url, sync, callback) {\n      var request = new XMLHttpRequest();\n      var i = 0;\n\n      var sanitizeUnicode = function(data) {\n        var dataLength = data.length;\n        var charArray = [];\n        var StringFromCharCode = String.fromCharCode;\n\n        //Transform Unicode to ASCII\n        for (i = 0; i < dataLength; i += 1) {\n          charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n        }\n        return charArray.join(\"\");\n      };\n\n      request.open(\"GET\", url, !sync);\n      // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n      request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n      if (sync === false) {\n        request.onload = function() {\n          if (request.status === 200) {\n            callback(sanitizeUnicode(this.responseText));\n          } else {\n            callback(undefined);\n          }\n        };\n      }\n      request.send(null);\n\n      if (sync && request.status === 200) {\n        return sanitizeUnicode(request.responseText);\n      }\n    };\n    try {\n      result = xhr(url, sync, callback);\n      // eslint-disable-next-line no-empty\n    } catch (e) {}\n    return result;\n  }\n\n  function nodeReadFile(url, sync, callback) {\n    sync = sync === false ? false : true;\n    var result = undefined;\n\n    var fs = require(\"fs\");\n    var path = require(\"path\");\n\n    url = path.resolve(url);\n    if (sync) {\n      try {\n        result = fs.readFileSync(url, { encoding: \"latin1\" });\n      } catch (e) {\n        return undefined;\n      }\n    } else {\n      fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n        if (!callback) {\n          return;\n        }\n        if (err) {\n          callback(undefined);\n        }\n        callback(data);\n      });\n    }\n\n    return result;\n  }\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  function loadHtml2Canvas() {\n    return (function() {\n      if (globalObject[\"html2canvas\"]) {\n        return Promise.resolve(globalObject[\"html2canvas\"]);\n      }\n\n\n      if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n        return new Promise(function(resolve, reject) {\n          try {\n            resolve(require(\"html2canvas\"));\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      if (typeof define === \"function\" && define.amd) {\n        return new Promise(function(resolve, reject) {\n          try {\n            require([\"html2canvas\"], resolve);\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      return Promise.reject(new Error(\"Could not load html2canvas\"));\n    })()\n      .catch(function(e) {\n        return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n      })\n      .then(function(html2canvas) {\n        return html2canvas.default ? html2canvas.default : html2canvas;\n      });\n  }\n\n  function loadDomPurify() {\n    return (function() {\n      if (globalObject[\"DOMPurify\"]) {\n        return Promise.resolve(globalObject[\"DOMPurify\"]);\n      }\n\n\n      if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n        return new Promise(function(resolve, reject) {\n          try {\n            resolve(require(\"dompurify\"));\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      if (typeof define === \"function\" && define.amd) {\n        return new Promise(function(resolve, reject) {\n          try {\n            require([\"dompurify\"], resolve);\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      return Promise.reject(new Error(\"Could not load dompurify\"));\n    })()\n      .catch(function(e) {\n        return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n      })\n      .then(function(dompurify) {\n        return dompurify.default ? dompurify.default : dompurify;\n      });\n  }\n\n  /**\n   * Determine the type of a variable/object.\n   *\n   * @private\n   * @ignore\n   */\n  var objType = function(obj) {\n    var type = typeof obj;\n    if (type === \"undefined\") return \"undefined\";\n    else if (type === \"string\" || obj instanceof String) return \"string\";\n    else if (type === \"number\" || obj instanceof Number) return \"number\";\n    else if (type === \"function\" || obj instanceof Function) return \"function\";\n    else if (!!obj && obj.constructor === Array) return \"array\";\n    else if (obj && obj.nodeType === 1) return \"element\";\n    else if (type === \"object\") return \"object\";\n    else return \"unknown\";\n  };\n\n  /**\n   * Create an HTML element with optional className, innerHTML, and style.\n   *\n   * @private\n   * @ignore\n   */\n  var createElement = function(tagName, opt) {\n    var el = document.createElement(tagName);\n    if (opt.className) el.className = opt.className;\n    if (opt.innerHTML && opt.dompurify) {\n      el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n    }\n    for (var key in opt.style) {\n      el.style[key] = opt.style[key];\n    }\n    return el;\n  };\n\n  /**\n   * Deep-clone a node and preserve contents/properties.\n   *\n   * @private\n   * @ignore\n   */\n  var cloneNode = function(node, javascriptEnabled) {\n    // Recursively clone the node.\n    var clone =\n      node.nodeType === 3\n        ? document.createTextNode(node.nodeValue)\n        : node.cloneNode(false);\n    for (var child = node.firstChild; child; child = child.nextSibling) {\n      if (\n        javascriptEnabled === true ||\n        child.nodeType !== 1 ||\n        child.nodeName !== \"SCRIPT\"\n      ) {\n        clone.appendChild(cloneNode(child, javascriptEnabled));\n      }\n    }\n\n    if (node.nodeType === 1) {\n      // Preserve contents/properties of special nodes.\n      if (node.nodeName === \"CANVAS\") {\n        clone.width = node.width;\n        clone.height = node.height;\n        clone.getContext(\"2d\").drawImage(node, 0, 0);\n      } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n        clone.value = node.value;\n      }\n\n      // Preserve the node's scroll position when it loads.\n      clone.addEventListener(\n        \"load\",\n        function() {\n          clone.scrollTop = node.scrollTop;\n          clone.scrollLeft = node.scrollLeft;\n        },\n        true\n      );\n    }\n\n    // Return the cloned node.\n    return clone;\n  };\n\n  /* ----- CONSTRUCTOR ----- */\n\n  var Worker = function Worker(opt) {\n    // Create the root parent for the proto chain, and the starting Worker.\n    var root = Object.assign(\n      Worker.convert(Promise.resolve()),\n      JSON.parse(JSON.stringify(Worker.template))\n    );\n    var self = Worker.convert(Promise.resolve(), root);\n\n    // Set progress, optional settings, and return.\n    self = self.setProgress(1, Worker, 1, [Worker]);\n    self = self.set(opt);\n    return self;\n  };\n\n  // Boilerplate for subclassing Promise.\n  Worker.prototype = Object.create(Promise.prototype);\n  Worker.prototype.constructor = Worker;\n\n  // Converts/casts promises into Workers.\n  Worker.convert = function convert(promise, inherit) {\n    // Uses prototypal inheritance to receive changes made to ancestors' properties.\n    promise.__proto__ = inherit || Worker.prototype;\n    return promise;\n  };\n\n  Worker.template = {\n    prop: {\n      src: null,\n      container: null,\n      overlay: null,\n      canvas: null,\n      img: null,\n      pdf: null,\n      pageSize: null,\n      callback: function() {}\n    },\n    progress: {\n      val: 0,\n      state: null,\n      n: 0,\n      stack: []\n    },\n    opt: {\n      filename: \"file.pdf\",\n      margin: [0, 0, 0, 0],\n      enableLinks: true,\n      x: 0,\n      y: 0,\n      html2canvas: {},\n      jsPDF: {},\n      backgroundColor: \"transparent\"\n    }\n  };\n\n  /* ----- FROM / TO ----- */\n\n  Worker.prototype.from = function from(src, type) {\n    function getType(src) {\n      switch (objType(src)) {\n        case \"string\":\n          return \"string\";\n        case \"element\":\n          return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n        default:\n          return \"unknown\";\n      }\n    }\n\n    return this.then(function from_main() {\n      type = type || getType(src);\n      switch (type) {\n        case \"string\":\n          return this.then(loadDomPurify).then(function(dompurify) {\n            return this.set({\n              src: createElement(\"div\", {\n                innerHTML: src,\n                dompurify: dompurify\n              })\n            });\n          });\n        case \"element\":\n          return this.set({ src: src });\n        case \"canvas\":\n          return this.set({ canvas: src });\n        case \"img\":\n          return this.set({ img: src });\n        default:\n          return this.error(\"Unknown source type.\");\n      }\n    });\n  };\n\n  Worker.prototype.to = function to(target) {\n    // Route the 'to' request to the appropriate method.\n    switch (target) {\n      case \"container\":\n        return this.toContainer();\n      case \"canvas\":\n        return this.toCanvas();\n      case \"img\":\n        return this.toImg();\n      case \"pdf\":\n        return this.toPdf();\n      default:\n        return this.error(\"Invalid target.\");\n    }\n  };\n\n  Worker.prototype.toContainer = function toContainer() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkSrc() {\n        return (\n          this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n        );\n      },\n      function checkPageSize() {\n        return this.prop.pageSize || this.setPageSize();\n      }\n    ];\n    return this.thenList(prereqs).then(function toContainer_main() {\n      // Define the CSS styles for the container and its overlay parent.\n      var overlayCSS = {\n        position: \"fixed\",\n        overflow: \"hidden\",\n        zIndex: 1000,\n        left: \"-100000px\",\n        right: 0,\n        bottom: 0,\n        top: 0\n      };\n      var containerCSS = {\n        position: \"relative\",\n        display: \"inline-block\",\n        width:\n          Math.max(\n            this.prop.src.clientWidth,\n            this.prop.src.scrollWidth,\n            this.prop.src.offsetWidth\n          ) + \"px\",\n        left: 0,\n        right: 0,\n        top: 0,\n        margin: \"auto\",\n        backgroundColor: this.opt.backgroundColor\n      }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n      var source = cloneNode(\n        this.prop.src,\n        this.opt.html2canvas.javascriptEnabled\n      );\n\n      if (source.tagName === \"BODY\") {\n        containerCSS.height =\n          Math.max(\n            document.body.scrollHeight,\n            document.body.offsetHeight,\n            document.documentElement.clientHeight,\n            document.documentElement.scrollHeight,\n            document.documentElement.offsetHeight\n          ) + \"px\";\n      }\n\n      this.prop.overlay = createElement(\"div\", {\n        className: \"html2pdf__overlay\",\n        style: overlayCSS\n      });\n      this.prop.container = createElement(\"div\", {\n        className: \"html2pdf__container\",\n        style: containerCSS\n      });\n      this.prop.container.appendChild(source);\n      this.prop.container.firstChild.appendChild(\n        createElement(\"div\", {\n          style: {\n            clear: \"both\",\n            border: \"0 none transparent\",\n            margin: 0,\n            padding: 0,\n            height: 0\n          }\n        })\n      );\n      this.prop.container.style.float = \"none\";\n      this.prop.overlay.appendChild(this.prop.container);\n      document.body.appendChild(this.prop.overlay);\n      this.prop.container.firstChild.style.position = \"relative\";\n      this.prop.container.height =\n        Math.max(\n          this.prop.container.firstChild.clientHeight,\n          this.prop.container.firstChild.scrollHeight,\n          this.prop.container.firstChild.offsetHeight\n        ) + \"px\";\n    });\n  };\n\n  Worker.prototype.toCanvas = function toCanvas() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkContainer() {\n        return (\n          document.body.contains(this.prop.container) || this.toContainer()\n        );\n      }\n    ];\n\n    // Fulfill prereqs then create the canvas.\n    return this.thenList(prereqs)\n      .then(loadHtml2Canvas)\n      .then(function toCanvas_main(html2canvas) {\n        // Handle old-fashioned 'onrendered' argument.\n        var options = Object.assign({}, this.opt.html2canvas);\n        delete options.onrendered;\n\n        return html2canvas(this.prop.container, options);\n      })\n      .then(function toCanvas_post(canvas) {\n        // Handle old-fashioned 'onrendered' argument.\n        var onRendered = this.opt.html2canvas.onrendered || function() {};\n        onRendered(canvas);\n\n        this.prop.canvas = canvas;\n        document.body.removeChild(this.prop.overlay);\n      });\n  };\n\n  Worker.prototype.toContext2d = function toContext2d() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkContainer() {\n        return (\n          document.body.contains(this.prop.container) || this.toContainer()\n        );\n      }\n    ];\n\n    // Fulfill prereqs then create the canvas.\n    return this.thenList(prereqs)\n      .then(loadHtml2Canvas)\n      .then(function toContext2d_main(html2canvas) {\n        // Handle old-fashioned 'onrendered' argument.\n\n        var pdf = this.opt.jsPDF;\n        var fontFaces = this.opt.fontFaces;\n        var options = Object.assign(\n          {\n            async: true,\n            allowTaint: true,\n            scale: 1,\n            scrollX: this.opt.scrollX || 0,\n            scrollY: this.opt.scrollY || 0,\n            backgroundColor: \"#ffffff\",\n            imageTimeout: 15000,\n            logging: true,\n            proxy: null,\n            removeContainer: true,\n            foreignObjectRendering: false,\n            useCORS: false\n          },\n          this.opt.html2canvas\n        );\n        delete options.onrendered;\n\n        pdf.context2d.autoPaging = true;\n        pdf.context2d.posX = this.opt.x;\n        pdf.context2d.posY = this.opt.y;\n        pdf.context2d.fontFaces = fontFaces;\n\n        if (fontFaces) {\n          for (var i = 0; i < fontFaces.length; ++i) {\n            var font = fontFaces[i];\n            var src = font.src.find(function(src) {\n              return src.format === \"truetype\";\n            });\n\n            if (src) {\n              pdf.addFont(src.url, font.ref.name, font.ref.style);\n            }\n          }\n        }\n\n        options.windowHeight = options.windowHeight || 0;\n        options.windowHeight =\n          options.windowHeight == 0\n            ? Math.max(\n                this.prop.container.clientHeight,\n                this.prop.container.scrollHeight,\n                this.prop.container.offsetHeight\n              )\n            : options.windowHeight;\n\n        return html2canvas(this.prop.container, options);\n      })\n      .then(function toContext2d_post(canvas) {\n        // Handle old-fashioned 'onrendered' argument.\n        var onRendered = this.opt.html2canvas.onrendered || function() {};\n        onRendered(canvas);\n\n        this.prop.canvas = canvas;\n        document.body.removeChild(this.prop.overlay);\n      });\n  };\n\n  Worker.prototype.toImg = function toImg() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkCanvas() {\n        return this.prop.canvas || this.toCanvas();\n      }\n    ];\n\n    // Fulfill prereqs then create the image.\n    return this.thenList(prereqs).then(function toImg_main() {\n      var imgData = this.prop.canvas.toDataURL(\n        \"image/\" + this.opt.image.type,\n        this.opt.image.quality\n      );\n      this.prop.img = document.createElement(\"img\");\n      this.prop.img.src = imgData;\n    });\n  };\n\n  Worker.prototype.toPdf = function toPdf() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkContext2d() {\n        return this.toContext2d();\n      }\n      //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n    ];\n\n    // Fulfill prereqs then create the image.\n    return this.thenList(prereqs).then(function toPdf_main() {\n      // Create local copies of frequently used properties.\n      this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n    });\n  };\n\n  /* ----- OUTPUT / SAVE ----- */\n\n  Worker.prototype.output = function output(type, options, src) {\n    // Redirect requests to the correct function (outputPdf / outputImg).\n    src = src || \"pdf\";\n    if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n      return this.outputImg(type, options);\n    } else {\n      return this.outputPdf(type, options);\n    }\n  };\n\n  Worker.prototype.outputPdf = function outputPdf(type, options) {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkPdf() {\n        return this.prop.pdf || this.toPdf();\n      }\n    ];\n\n    // Fulfill prereqs then perform the appropriate output.\n    return this.thenList(prereqs).then(function outputPdf_main() {\n      /* Currently implemented output types:\n       *    https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n       *  save(options), arraybuffer, blob, bloburi/bloburl,\n       *  datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n       */\n      return this.prop.pdf.output(type, options);\n    });\n  };\n\n  Worker.prototype.outputImg = function outputImg(type) {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkImg() {\n        return this.prop.img || this.toImg();\n      }\n    ];\n\n    // Fulfill prereqs then perform the appropriate output.\n    return this.thenList(prereqs).then(function outputImg_main() {\n      switch (type) {\n        case undefined:\n        case \"img\":\n          return this.prop.img;\n        case \"datauristring\":\n        case \"dataurlstring\":\n          return this.prop.img.src;\n        case \"datauri\":\n        case \"dataurl\":\n          return (document.location.href = this.prop.img.src);\n        default:\n          throw 'Image output type \"' + type + '\" is not supported.';\n      }\n    });\n  };\n\n  Worker.prototype.save = function save(filename) {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkPdf() {\n        return this.prop.pdf || this.toPdf();\n      }\n    ];\n\n    // Fulfill prereqs, update the filename (if provided), and save the PDF.\n    return this.thenList(prereqs)\n      .set(filename ? { filename: filename } : null)\n      .then(function save_main() {\n        this.prop.pdf.save(this.opt.filename);\n      });\n  };\n\n  Worker.prototype.doCallback = function doCallback() {\n    // Set up function prerequisites.\n    var prereqs = [\n      function checkPdf() {\n        return this.prop.pdf || this.toPdf();\n      }\n    ];\n\n    // Fulfill prereqs, update the filename (if provided), and save the PDF.\n    return this.thenList(prereqs).then(function doCallback_main() {\n      this.prop.callback(this.prop.pdf);\n    });\n  };\n\n  /* ----- SET / GET ----- */\n\n  Worker.prototype.set = function set(opt) {\n    // TODO: Implement ordered pairs?\n\n    // Silently ignore invalid or empty input.\n    if (objType(opt) !== \"object\") {\n      return this;\n    }\n\n    // Build an array of setter functions to queue.\n    var fns = Object.keys(opt || {}).map(function(key) {\n      if (key in Worker.template.prop) {\n        // Set pre-defined properties.\n        return function set_prop() {\n          this.prop[key] = opt[key];\n        };\n      } else {\n        switch (key) {\n          case \"margin\":\n            return this.setMargin.bind(this, opt.margin);\n          case \"jsPDF\":\n            return function set_jsPDF() {\n              this.opt.jsPDF = opt.jsPDF;\n              return this.setPageSize();\n            };\n          case \"pageSize\":\n            return this.setPageSize.bind(this, opt.pageSize);\n          default:\n            // Set any other properties in opt.\n            return function set_opt() {\n              this.opt[key] = opt[key];\n            };\n        }\n      }\n    }, this);\n\n    // Set properties within the promise chain.\n    return this.then(function set_main() {\n      return this.thenList(fns);\n    });\n  };\n\n  Worker.prototype.get = function get(key, cbk) {\n    return this.then(function get_main() {\n      // Fetch the requested property, either as a predefined prop or in opt.\n      var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n      return cbk ? cbk(val) : val;\n    });\n  };\n\n  Worker.prototype.setMargin = function setMargin(margin) {\n    return this.then(function setMargin_main() {\n      // Parse the margin property.\n      switch (objType(margin)) {\n        case \"number\":\n          margin = [margin, margin, margin, margin];\n        // eslint-disable-next-line no-fallthrough\n        case \"array\":\n          if (margin.length === 2) {\n            margin = [margin[0], margin[1], margin[0], margin[1]];\n          }\n          if (margin.length === 4) {\n            break;\n          }\n        // eslint-disable-next-line no-fallthrough\n        default:\n          return this.error(\"Invalid margin array.\");\n      }\n\n      // Set the margin property, then update pageSize.\n      this.opt.margin = margin;\n    }).then(this.setPageSize);\n  };\n\n  Worker.prototype.setPageSize = function setPageSize(pageSize) {\n    function toPx(val, k) {\n      return Math.floor(((val * k) / 72) * 96);\n    }\n\n    return this.then(function setPageSize_main() {\n      // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n      pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n      // Add 'inner' field if not present.\n      if (!pageSize.hasOwnProperty(\"inner\")) {\n        pageSize.inner = {\n          width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n          height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n        };\n        pageSize.inner.px = {\n          width: toPx(pageSize.inner.width, pageSize.k),\n          height: toPx(pageSize.inner.height, pageSize.k)\n        };\n        pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n      }\n\n      // Attach pageSize to this.\n      this.prop.pageSize = pageSize;\n    });\n  };\n\n  Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n    // Immediately update all progress values.\n    if (val != null) this.progress.val = val;\n    if (state != null) this.progress.state = state;\n    if (n != null) this.progress.n = n;\n    if (stack != null) this.progress.stack = stack;\n    this.progress.ratio = this.progress.val / this.progress.state;\n\n    // Return this for command chaining.\n    return this;\n  };\n\n  Worker.prototype.updateProgress = function updateProgress(\n    val,\n    state,\n    n,\n    stack\n  ) {\n    // Immediately update all progress values, using setProgress.\n    return this.setProgress(\n      val ? this.progress.val + val : null,\n      state ? state : null,\n      n ? this.progress.n + n : null,\n      stack ? this.progress.stack.concat(stack) : null\n    );\n  };\n\n  /* ----- PROMISE MAPPING ----- */\n\n  Worker.prototype.then = function then(onFulfilled, onRejected) {\n    // Wrap `this` for encapsulation.\n    var self = this;\n\n    return this.thenCore(onFulfilled, onRejected, function then_main(\n      onFulfilled,\n      onRejected\n    ) {\n      // Update progress while queuing, calling, and resolving `then`.\n      self.updateProgress(null, null, 1, [onFulfilled]);\n      return Promise.prototype.then\n        .call(this, function then_pre(val) {\n          self.updateProgress(null, onFulfilled);\n          return val;\n        })\n        .then(onFulfilled, onRejected)\n        .then(function then_post(val) {\n          self.updateProgress(1);\n          return val;\n        });\n    });\n  };\n\n  Worker.prototype.thenCore = function thenCore(\n    onFulfilled,\n    onRejected,\n    thenBase\n  ) {\n    // Handle optional thenBase parameter.\n    thenBase = thenBase || Promise.prototype.then;\n\n    // Wrap `this` for encapsulation and bind it to the promise handlers.\n    var self = this;\n    if (onFulfilled) {\n      onFulfilled = onFulfilled.bind(self);\n    }\n    if (onRejected) {\n      onRejected = onRejected.bind(self);\n    }\n\n    // Cast self into a Promise to avoid polyfills recursively defining `then`.\n    var isNative =\n      Promise.toString().indexOf(\"[native code]\") !== -1 &&\n      Promise.name === \"Promise\";\n    var selfPromise = isNative\n      ? self\n      : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n    // Return the promise, after casting it into a Worker and preserving props.\n    var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n    return Worker.convert(returnVal, self.__proto__);\n  };\n\n  Worker.prototype.thenExternal = function thenExternal(\n    onFulfilled,\n    onRejected\n  ) {\n    // Call `then` and return a standard promise (exits the Worker chain).\n    return Promise.prototype.then.call(this, onFulfilled, onRejected);\n  };\n\n  Worker.prototype.thenList = function thenList(fns) {\n    // Queue a series of promise 'factories' into the promise chain.\n    var self = this;\n    fns.forEach(function thenList_forEach(fn) {\n      self = self.thenCore(fn);\n    });\n    return self;\n  };\n\n  Worker.prototype[\"catch\"] = function(onRejected) {\n    // Bind `this` to the promise handler, call `catch`, and return a Worker.\n    if (onRejected) {\n      onRejected = onRejected.bind(this);\n    }\n    var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n    return Worker.convert(returnVal, this);\n  };\n\n  Worker.prototype.catchExternal = function catchExternal(onRejected) {\n    // Call `catch` and return a standard promise (exits the Worker chain).\n    return Promise.prototype[\"catch\"].call(this, onRejected);\n  };\n\n  Worker.prototype.error = function error(msg) {\n    // Throw the error in the Promise chain.\n    return this.then(function error_main() {\n      throw new Error(msg);\n    });\n  };\n\n  /* ----- ALIASES ----- */\n\n  Worker.prototype.using = Worker.prototype.set;\n  Worker.prototype.saveAs = Worker.prototype.save;\n  Worker.prototype.export = Worker.prototype.output;\n  Worker.prototype.run = Worker.prototype.then;\n\n  // Get dimensions of a PDF page, as determined by jsPDF.\n  jsPDF.getPageSize = function(orientation, unit, format) {\n    // Decode options object\n    if (typeof orientation === \"object\") {\n      var options = orientation;\n      orientation = options.orientation;\n      unit = options.unit || unit;\n      format = options.format || format;\n    }\n\n    // Default options\n    unit = unit || \"mm\";\n    format = format || \"a4\";\n    orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n    var format_as_string = (\"\" + format).toLowerCase();\n\n    // Size in pt of various paper formats\n    var pageFormats = {\n      a0: [2383.94, 3370.39],\n      a1: [1683.78, 2383.94],\n      a2: [1190.55, 1683.78],\n      a3: [841.89, 1190.55],\n      a4: [595.28, 841.89],\n      a5: [419.53, 595.28],\n      a6: [297.64, 419.53],\n      a7: [209.76, 297.64],\n      a8: [147.4, 209.76],\n      a9: [104.88, 147.4],\n      a10: [73.7, 104.88],\n      b0: [2834.65, 4008.19],\n      b1: [2004.09, 2834.65],\n      b2: [1417.32, 2004.09],\n      b3: [1000.63, 1417.32],\n      b4: [708.66, 1000.63],\n      b5: [498.9, 708.66],\n      b6: [354.33, 498.9],\n      b7: [249.45, 354.33],\n      b8: [175.75, 249.45],\n      b9: [124.72, 175.75],\n      b10: [87.87, 124.72],\n      c0: [2599.37, 3676.54],\n      c1: [1836.85, 2599.37],\n      c2: [1298.27, 1836.85],\n      c3: [918.43, 1298.27],\n      c4: [649.13, 918.43],\n      c5: [459.21, 649.13],\n      c6: [323.15, 459.21],\n      c7: [229.61, 323.15],\n      c8: [161.57, 229.61],\n      c9: [113.39, 161.57],\n      c10: [79.37, 113.39],\n      dl: [311.81, 623.62],\n      letter: [612, 792],\n      \"government-letter\": [576, 756],\n      legal: [612, 1008],\n      \"junior-legal\": [576, 360],\n      ledger: [1224, 792],\n      tabloid: [792, 1224],\n      \"credit-card\": [153, 243]\n    };\n\n    var k;\n    // Unit conversion\n    switch (unit) {\n      case \"pt\":\n        k = 1;\n        break;\n      case \"mm\":\n        k = 72 / 25.4;\n        break;\n      case \"cm\":\n        k = 72 / 2.54;\n        break;\n      case \"in\":\n        k = 72;\n        break;\n      case \"px\":\n        k = 72 / 96;\n        break;\n      case \"pc\":\n        k = 12;\n        break;\n      case \"em\":\n        k = 12;\n        break;\n      case \"ex\":\n        k = 6;\n        break;\n      default:\n        throw \"Invalid unit: \" + unit;\n    }\n    var pageHeight = 0;\n    var pageWidth = 0;\n\n    // Dimensions are stored as user units and converted to points on output\n    if (pageFormats.hasOwnProperty(format_as_string)) {\n      pageHeight = pageFormats[format_as_string][1] / k;\n      pageWidth = pageFormats[format_as_string][0] / k;\n    } else {\n      try {\n        pageHeight = format[1];\n        pageWidth = format[0];\n      } catch (err) {\n        throw new Error(\"Invalid format: \" + format);\n      }\n    }\n\n    var tmp;\n    // Handle page orientation\n    if (orientation === \"p\" || orientation === \"portrait\") {\n      orientation = \"p\";\n      if (pageWidth > pageHeight) {\n        tmp = pageWidth;\n        pageWidth = pageHeight;\n        pageHeight = tmp;\n      }\n    } else if (orientation === \"l\" || orientation === \"landscape\") {\n      orientation = \"l\";\n      if (pageHeight > pageWidth) {\n        tmp = pageWidth;\n        pageWidth = pageHeight;\n        pageHeight = tmp;\n      }\n    } else {\n      throw \"Invalid orientation: \" + orientation;\n    }\n\n    // Return information (k is the unit conversion ratio from pts)\n    var info = {\n      width: pageWidth,\n      height: pageHeight,\n      unit: unit,\n      k: k,\n      orientation: orientation\n    };\n    return info;\n  };\n\n  /**\n   * @typedef FontFace\n   *\n   * The font-face type implements an interface similar to that of the font-face CSS rule,\n   * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n   * is updated.\n   *\n   * All properties expect values similar to those in the font-face CSS rule. A difference\n   * is the font-family, which do not need to be enclosed in double-quotes when containing\n   * spaces like in CSS.\n   *\n   * @property {string} family The name of the font-family.\n   * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n   * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n   * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n   * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n   * @property {string} [src] url A URL to a font of a specific format.\n   * @property {string} [src] format Format of the font referenced by the URL.\n   */\n\n  /**\n   * Generate a PDF from an HTML element or string using.\n   *\n   * @name html\n   * @function\n   * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n   * @param {Object} [options] Collection of settings\n   * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n   * @param {number|array} [options.margin] Array of margins [left, bottom, right, top]\n   * @param {string} [options.filename] name of the file\n   * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n   * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n   * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n   * @param {jsPDF} [options.jsPDF] jsPDF instance\n   * @param {number} [options.x] x position on the PDF document\n   * @param {number} [options.y] y position on the PDF document\n   *\n   * @example\n   * var doc = new jsPDF();\n   *\n   * doc.html(document.body, {\n   *    callback: function (doc) {\n   *      doc.save();\n   *    },\n   *    x: 10,\n   *    y: 10\n   * });\n   */\n  jsPDFAPI.html = function(src, options) {\n    \"use strict\";\n\n    options = options || {};\n    options.callback = options.callback || function() {};\n    options.html2canvas = options.html2canvas || {};\n    options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n    options.jsPDF = options.jsPDF || this;\n    options.fontFaces = options.fontFaces\n      ? options.fontFaces.map(normalizeFontFace)\n      : null;\n\n    // Create a new worker with the given options.\n    var worker = new Worker(options);\n\n    if (!options.worker) {\n      // If worker is not set to true, perform the traditional 'simple' operation.\n      return worker.from(src).doCallback();\n    } else {\n      // Otherwise, return the worker for new Promise-based operation.\n      return worker;\n    }\n  };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n  var jsNamesObj, jsJsObj, text;\n  /**\n   * @name addJS\n   * @function\n   * @param {string} javascript The javascript to be embedded into the PDF-file.\n   * @returns {jsPDF}\n   */\n  jsPDFAPI.addJS = function(javascript) {\n    text = javascript;\n    this.internal.events.subscribe(\"postPutResources\", function() {\n      jsNamesObj = this.internal.newObject();\n      this.internal.out(\"<<\");\n      this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n      this.internal.out(\">>\");\n      this.internal.out(\"endobj\");\n\n      jsJsObj = this.internal.newObject();\n      this.internal.out(\"<<\");\n      this.internal.out(\"/S /JavaScript\");\n      this.internal.out(\"/JS (\" + text + \")\");\n      this.internal.out(\">>\");\n      this.internal.out(\"endobj\");\n    });\n    this.internal.events.subscribe(\"putCatalog\", function() {\n      if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n        this.internal.out(\"/Names <</JavaScript \" + jsNamesObj + \" 0 R>>\");\n      }\n    });\n    return this;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC)  steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var namesOid;\n  //var destsGoto = [];\n\n  jsPDFAPI.events.push([\n    \"postPutResources\",\n    function() {\n      var pdf = this;\n      var rx = /^(\\d+) 0 obj$/;\n\n      // Write action goto objects for each page\n      // this.outline.destsGoto = [];\n      // for (var i = 0; i < totalPages; i++) {\n      // var id = pdf.internal.newObject();\n      // this.outline.destsGoto.push(id);\n      // pdf.internal.write(\"<</D[\" + (i * 2 + 3) + \" 0 R /XYZ null\n      // null null]/S/GoTo>> endobj\");\n      // }\n      //\n      // for (var i = 0; i < dests.length; i++) {\n      // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n      // R\");\n      // }\n      //\n      if (this.outline.root.children.length > 0) {\n        var lines = pdf.outline.render().split(/\\r\\n/);\n        for (var i = 0; i < lines.length; i++) {\n          var line = lines[i];\n          var m = rx.exec(line);\n          if (m != null) {\n            var oid = m[1];\n            pdf.internal.newObjectDeferredBegin(oid, false);\n          }\n          pdf.internal.write(line);\n        }\n      }\n\n      // This code will write named destination for each page reference\n      // (page_1, etc)\n      if (this.outline.createNamedDestinations) {\n        var totalPages = this.internal.pages.length;\n        // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n        // follow 5, 7, 9, etc\n        // Write destination objects for each page\n        var dests = [];\n        for (var i = 0; i < totalPages; i++) {\n          var id = pdf.internal.newObject();\n          dests.push(id);\n          var info = pdf.internal.getPageInfo(i + 1);\n          pdf.internal.write(\n            \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n          );\n        }\n\n        // assign a name for each destination\n        var names2Oid = pdf.internal.newObject();\n        pdf.internal.write(\"<< /Names [ \");\n        for (var i = 0; i < dests.length; i++) {\n          pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n        }\n        pdf.internal.write(\" ] >>\", \"endobj\");\n\n        // var kids = pdf.internal.newObject();\n        // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n        // pdf.internal.write(' ] >>', 'endobj');\n\n        namesOid = pdf.internal.newObject();\n        pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n        pdf.internal.write(\">>\", \"endobj\");\n      }\n    }\n  ]);\n\n  jsPDFAPI.events.push([\n    \"putCatalog\",\n    function() {\n      var pdf = this;\n      if (pdf.outline.root.children.length > 0) {\n        pdf.internal.write(\n          \"/Outlines\",\n          this.outline.makeRef(this.outline.root)\n        );\n        if (this.outline.createNamedDestinations) {\n          pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n        }\n        // Open with Bookmarks showing\n        // pdf.internal.write(\"/PageMode /UseOutlines\");\n      }\n    }\n  ]);\n\n  jsPDFAPI.events.push([\n    \"initialized\",\n    function() {\n      var pdf = this;\n\n      pdf.outline = {\n        createNamedDestinations: false,\n        root: {\n          children: []\n        }\n      };\n\n      /**\n       * Options: pageNumber\n       */\n      pdf.outline.add = function(parent, title, options) {\n        var item = {\n          title: title,\n          options: options,\n          children: []\n        };\n        if (parent == null) {\n          parent = this.root;\n        }\n        parent.children.push(item);\n        return item;\n      };\n\n      pdf.outline.render = function() {\n        this.ctx = {};\n        this.ctx.val = \"\";\n        this.ctx.pdf = pdf;\n\n        this.genIds_r(this.root);\n        this.renderRoot(this.root);\n        this.renderItems(this.root);\n\n        return this.ctx.val;\n      };\n\n      pdf.outline.genIds_r = function(node) {\n        node.id = pdf.internal.newObjectDeferred();\n        for (var i = 0; i < node.children.length; i++) {\n          this.genIds_r(node.children[i]);\n        }\n      };\n\n      pdf.outline.renderRoot = function(node) {\n        this.objStart(node);\n        this.line(\"/Type /Outlines\");\n        if (node.children.length > 0) {\n          this.line(\"/First \" + this.makeRef(node.children[0]));\n          this.line(\n            \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n          );\n        }\n        this.line(\n          \"/Count \" +\n            this.count_r(\n              {\n                count: 0\n              },\n              node\n            )\n        );\n        this.objEnd();\n      };\n\n      pdf.outline.renderItems = function(node) {\n        var getVerticalCoordinateString = this.ctx.pdf.internal\n          .getVerticalCoordinateString;\n        for (var i = 0; i < node.children.length; i++) {\n          var item = node.children[i];\n          this.objStart(item);\n\n          this.line(\"/Title \" + this.makeString(item.title));\n\n          this.line(\"/Parent \" + this.makeRef(node));\n          if (i > 0) {\n            this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n          }\n          if (i < node.children.length - 1) {\n            this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n          }\n          if (item.children.length > 0) {\n            this.line(\"/First \" + this.makeRef(item.children[0]));\n            this.line(\n              \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n            );\n          }\n\n          var count = (this.count = this.count_r(\n            {\n              count: 0\n            },\n            item\n          ));\n          if (count > 0) {\n            this.line(\"/Count \" + count);\n          }\n\n          if (item.options) {\n            if (item.options.pageNumber) {\n              // Explicit Destination\n              //WARNING this assumes page ids are 3,5,7, etc.\n              var info = pdf.internal.getPageInfo(item.options.pageNumber);\n              this.line(\n                \"/Dest \" +\n                  \"[\" +\n                  info.objId +\n                  \" 0 R /XYZ 0 \" +\n                  getVerticalCoordinateString(0) +\n                  \" 0]\"\n              );\n              // this line does not work on all clients (pageNumber instead of page ref)\n              //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n              // Named Destination\n              // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n              // Action Destination\n              // var id = pdf.internal.newObject();\n              // pdf.internal.write('<</D[' + (item.options.pageNumber - 1) + ' /XYZ null null null]/S/GoTo>> endobj');\n              // this.line('/A ' + id + ' 0 R' );\n            }\n          }\n          this.objEnd();\n        }\n        for (var z = 0; z < node.children.length; z++) {\n          this.renderItems(node.children[z]);\n        }\n      };\n\n      pdf.outline.line = function(text) {\n        this.ctx.val += text + \"\\r\\n\";\n      };\n\n      pdf.outline.makeRef = function(node) {\n        return node.id + \" 0 R\";\n      };\n\n      pdf.outline.makeString = function(val) {\n        return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n      };\n\n      pdf.outline.objStart = function(node) {\n        this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n      };\n\n      pdf.outline.objEnd = function() {\n        this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n      };\n\n      pdf.outline.count_r = function(ctx, node) {\n        for (var i = 0; i < node.children.length; i++) {\n          ctx.count++;\n          this.count_r(ctx, node.children[i]);\n        }\n        return ctx.count;\n      };\n    }\n  ]);\n\n  return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * 0xc0 (SOF) Huffman  - Baseline DCT\n   * 0xc1 (SOF) Huffman  - Extended sequential DCT\n   * 0xc2 Progressive DCT (SOF2)\n   * 0xc3 Spatial (sequential) lossless (SOF3)\n   * 0xc4 Differential sequential DCT (SOF5)\n   * 0xc5 Differential progressive DCT (SOF6)\n   * 0xc6 Differential spatial (SOF7)\n   * 0xc7\n   */\n  var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n  //takes a string imgData containing the raw bytes of\n  //a jpeg image and returns [width, height]\n  //Algorithm from: http://www.64lines.com/jpeg-width-height\n  var getJpegInfo = function(imgData) {\n    var width, height, numcomponents;\n    var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n    var len = imgData.length;\n    var result = { width: 0, height: 0, numcomponents: 1 };\n    for (var i = 4; i < len; i += 2) {\n      i += blockLength;\n      if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n        height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n        width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n        numcomponents = imgData.charCodeAt(i + 9);\n        result = { width: width, height: height, numcomponents: numcomponents };\n        break;\n      } else {\n        blockLength =\n          imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n      }\n    }\n    return result;\n  };\n\n  /**\n   * @ignore\n   */\n  jsPDFAPI.processJPEG = function(\n    data,\n    index,\n    alias,\n    compression,\n    dataAsBinaryString,\n    colorSpace\n  ) {\n    var filter = this.decode.DCT_DECODE,\n      bpc = 8,\n      dims,\n      result = null;\n\n    if (\n      typeof data === \"string\" ||\n      this.__addimage__.isArrayBuffer(data) ||\n      this.__addimage__.isArrayBufferView(data)\n    ) {\n      // if we already have a stored binary string rep use that\n      data = dataAsBinaryString || data;\n      data = this.__addimage__.isArrayBuffer(data)\n        ? new Uint8Array(data)\n        : data;\n      data = this.__addimage__.isArrayBufferView(data)\n        ? this.__addimage__.arrayBufferToBinaryString(data)\n        : data;\n\n      dims = getJpegInfo(data);\n      switch (dims.numcomponents) {\n        case 1:\n          colorSpace = this.color_spaces.DEVICE_GRAY;\n          break;\n        case 4:\n          colorSpace = this.color_spaces.DEVICE_CMYK;\n          break;\n        case 3:\n          colorSpace = this.color_spaces.DEVICE_RGB;\n          break;\n      }\n\n      result = {\n        data: data,\n        width: dims.width,\n        height: dims.height,\n        colorSpace: colorSpace,\n        bitsPerComponent: bpc,\n        filter: filter,\n        index: index,\n        alias: alias\n      };\n    }\n    return result;\n  };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n  var APNG_BLEND_OP_OVER,\n    APNG_BLEND_OP_SOURCE,\n    APNG_DISPOSE_OP_BACKGROUND,\n    APNG_DISPOSE_OP_NONE,\n    APNG_DISPOSE_OP_PREVIOUS,\n    makeImage,\n    scratchCanvas,\n    scratchCtx;\n\n  APNG_DISPOSE_OP_NONE = 0;\n\n  APNG_DISPOSE_OP_BACKGROUND = 1;\n\n  APNG_DISPOSE_OP_PREVIOUS = 2;\n\n  APNG_BLEND_OP_SOURCE = 0;\n\n  APNG_BLEND_OP_OVER = 1;\n\n  function PNG(data) {\n    var chunkSize,\n      colors,\n      palLen,\n      delayDen,\n      delayNum,\n      frame,\n      i,\n      index,\n      key,\n      section,\n      palShort,\n      text,\n      _i,\n      _j,\n      _ref;\n    this.data = data;\n    this.pos = 8;\n    this.palette = [];\n    this.imgData = [];\n    this.transparency = {};\n    this.animation = null;\n    this.text = {};\n    frame = null;\n    while (true) {\n      chunkSize = this.readUInt32();\n      section = function() {\n        var _i, _results;\n        _results = [];\n        for (i = _i = 0; _i < 4; i = ++_i) {\n          _results.push(String.fromCharCode(this.data[this.pos++]));\n        }\n        return _results;\n      }\n        .call(this)\n        .join(\"\");\n      switch (section) {\n        case \"IHDR\":\n          this.width = this.readUInt32();\n          this.height = this.readUInt32();\n          this.bits = this.data[this.pos++];\n          this.colorType = this.data[this.pos++];\n          this.compressionMethod = this.data[this.pos++];\n          this.filterMethod = this.data[this.pos++];\n          this.interlaceMethod = this.data[this.pos++];\n          break;\n        case \"acTL\":\n          this.animation = {\n            numFrames: this.readUInt32(),\n            numPlays: this.readUInt32() || Infinity,\n            frames: []\n          };\n          break;\n        case \"PLTE\":\n          this.palette = this.read(chunkSize);\n          break;\n        case \"fcTL\":\n          if (frame) {\n            this.animation.frames.push(frame);\n          }\n          this.pos += 4;\n          frame = {\n            width: this.readUInt32(),\n            height: this.readUInt32(),\n            xOffset: this.readUInt32(),\n            yOffset: this.readUInt32()\n          };\n          delayNum = this.readUInt16();\n          delayDen = this.readUInt16() || 100;\n          frame.delay = (1000 * delayNum) / delayDen;\n          frame.disposeOp = this.data[this.pos++];\n          frame.blendOp = this.data[this.pos++];\n          frame.data = [];\n          break;\n        case \"IDAT\":\n        case \"fdAT\":\n          if (section === \"fdAT\") {\n            this.pos += 4;\n            chunkSize -= 4;\n          }\n          data = (frame != null ? frame.data : void 0) || this.imgData;\n          for (\n            i = _i = 0;\n            0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n            i = 0 <= chunkSize ? ++_i : --_i\n          ) {\n            data.push(this.data[this.pos++]);\n          }\n          break;\n        case \"tRNS\":\n          this.transparency = {};\n          switch (this.colorType) {\n            case 3:\n              palLen = this.palette.length / 3;\n              this.transparency.indexed = this.read(chunkSize);\n              if (this.transparency.indexed.length > palLen)\n                throw new Error(\"More transparent colors than palette size\");\n              /*\n               * According to the PNG spec trns should be increased to the same size as palette if shorter\n               */\n              //palShort = 255 - this.transparency.indexed.length;\n              palShort = palLen - this.transparency.indexed.length;\n              if (palShort > 0) {\n                for (\n                  i = _j = 0;\n                  0 <= palShort ? _j < palShort : _j > palShort;\n                  i = 0 <= palShort ? ++_j : --_j\n                ) {\n                  this.transparency.indexed.push(255);\n                }\n              }\n              break;\n            case 0:\n              this.transparency.grayscale = this.read(chunkSize)[0];\n              break;\n            case 2:\n              this.transparency.rgb = this.read(chunkSize);\n          }\n          break;\n        case \"tEXt\":\n          text = this.read(chunkSize);\n          index = text.indexOf(0);\n          key = String.fromCharCode.apply(String, text.slice(0, index));\n          this.text[key] = String.fromCharCode.apply(\n            String,\n            text.slice(index + 1)\n          );\n          break;\n        case \"IEND\":\n          if (frame) {\n            this.animation.frames.push(frame);\n          }\n          this.colors = function() {\n            switch (this.colorType) {\n              case 0:\n              case 3:\n              case 4:\n                return 1;\n              case 2:\n              case 6:\n                return 3;\n            }\n          }.call(this);\n          this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n          colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n          this.pixelBitlength = this.bits * colors;\n          this.colorSpace = function() {\n            switch (this.colors) {\n              case 1:\n                return \"DeviceGray\";\n              case 3:\n                return \"DeviceRGB\";\n            }\n          }.call(this);\n          this.imgData = new Uint8Array(this.imgData);\n          return;\n        default:\n          this.pos += chunkSize;\n      }\n      this.pos += 4;\n      if (this.pos > this.data.length) {\n        throw new Error(\"Incomplete or corrupt PNG file\");\n      }\n    }\n  }\n\n  PNG.prototype.read = function(bytes) {\n    var i, _i, _results;\n    _results = [];\n    for (\n      i = _i = 0;\n      0 <= bytes ? _i < bytes : _i > bytes;\n      i = 0 <= bytes ? ++_i : --_i\n    ) {\n      _results.push(this.data[this.pos++]);\n    }\n    return _results;\n  };\n\n  PNG.prototype.readUInt32 = function() {\n    var b1, b2, b3, b4;\n    b1 = this.data[this.pos++] << 24;\n    b2 = this.data[this.pos++] << 16;\n    b3 = this.data[this.pos++] << 8;\n    b4 = this.data[this.pos++];\n    return b1 | b2 | b3 | b4;\n  };\n\n  PNG.prototype.readUInt16 = function() {\n    var b1, b2;\n    b1 = this.data[this.pos++] << 8;\n    b2 = this.data[this.pos++];\n    return b1 | b2;\n  };\n\n  PNG.prototype.decodePixels = function(data) {\n    var pixelBytes = this.pixelBitlength / 8;\n    var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n    var pos = 0;\n    var _this = this;\n\n    if (data == null) {\n      data = this.imgData;\n    }\n    if (data.length === 0) {\n      return new Uint8Array(0);\n    }\n\n    data = unzlibSync(data);\n    function pass(x0, y0, dx, dy) {\n      var abyte,\n        c,\n        col,\n        i,\n        left,\n        length,\n        p,\n        pa,\n        paeth,\n        pb,\n        pc,\n        pixels,\n        row,\n        scanlineLength,\n        upper,\n        upperLeft,\n        _i,\n        _j,\n        _k,\n        _l,\n        _m;\n      var w = Math.ceil((_this.width - x0) / dx),\n        h = Math.ceil((_this.height - y0) / dy);\n      var isFull = _this.width == w && _this.height == h;\n      scanlineLength = pixelBytes * w;\n      pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n      length = data.length;\n      row = 0;\n      c = 0;\n      while (row < h && pos < length) {\n        switch (data[pos++]) {\n          case 0:\n            for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n              pixels[c++] = data[pos++];\n            }\n            break;\n          case 1:\n            for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n              abyte = data[pos++];\n              left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n              pixels[c++] = (abyte + left) % 256;\n            }\n            break;\n          case 2:\n            for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n              abyte = data[pos++];\n              col = (i - (i % pixelBytes)) / pixelBytes;\n              upper =\n                row &&\n                pixels[\n                  (row - 1) * scanlineLength +\n                    col * pixelBytes +\n                    (i % pixelBytes)\n                ];\n              pixels[c++] = (upper + abyte) % 256;\n            }\n            break;\n          case 3:\n            for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n              abyte = data[pos++];\n              col = (i - (i % pixelBytes)) / pixelBytes;\n              left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n              upper =\n                row &&\n                pixels[\n                  (row - 1) * scanlineLength +\n                    col * pixelBytes +\n                    (i % pixelBytes)\n                ];\n              pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n            }\n            break;\n          case 4:\n            for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n              abyte = data[pos++];\n              col = (i - (i % pixelBytes)) / pixelBytes;\n              left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n              if (row === 0) {\n                upper = upperLeft = 0;\n              } else {\n                upper =\n                  pixels[\n                    (row - 1) * scanlineLength +\n                      col * pixelBytes +\n                      (i % pixelBytes)\n                  ];\n                upperLeft =\n                  col &&\n                  pixels[\n                    (row - 1) * scanlineLength +\n                      (col - 1) * pixelBytes +\n                      (i % pixelBytes)\n                  ];\n              }\n              p = left + upper - upperLeft;\n              pa = Math.abs(p - left);\n              pb = Math.abs(p - upper);\n              pc = Math.abs(p - upperLeft);\n              if (pa <= pb && pa <= pc) {\n                paeth = left;\n              } else if (pb <= pc) {\n                paeth = upper;\n              } else {\n                paeth = upperLeft;\n              }\n              pixels[c++] = (abyte + paeth) % 256;\n            }\n            break;\n          default:\n            throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n        }\n        if (!isFull) {\n          var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n          var partPos = row * scanlineLength;\n          for (i = 0; i < w; i += 1) {\n            for (var j = 0; j < pixelBytes; j += 1)\n              fullPixels[fullPos++] = pixels[partPos++];\n            fullPos += (dx - 1) * pixelBytes;\n          }\n        }\n        row++;\n      }\n    }\n    if (_this.interlaceMethod == 1) {\n      /*\n          1 6 4 6 2 6 4 6\n          7 7 7 7 7 7 7 7\n          5 6 5 6 5 6 5 6\n          7 7 7 7 7 7 7 7\n          3 6 4 6 3 6 4 6\n          7 7 7 7 7 7 7 7\n          5 6 5 6 5 6 5 6\n          7 7 7 7 7 7 7 7\n        */\n      pass(0, 0, 8, 8); // 1\n      /* NOTE these seem to follow the pattern:\n       * pass(x, 0, 2*x, 2*x);\n       * pass(0, x,   x, 2*x);\n       * with x being 4, 2, 1.\n       */\n      pass(4, 0, 8, 8); // 2\n      pass(0, 4, 4, 8); // 3\n\n      pass(2, 0, 4, 4); // 4\n      pass(0, 2, 2, 4); // 5\n\n      pass(1, 0, 2, 2); // 6\n      pass(0, 1, 1, 2); // 7\n    } else {\n      pass(0, 0, 1, 1);\n    }\n    return fullPixels;\n  };\n\n  PNG.prototype.decodePalette = function() {\n    var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n    palette = this.palette;\n    transparency = this.transparency.indexed || [];\n    ret = new Uint8Array((transparency.length || 0) + palette.length);\n    pos = 0;\n    length = palette.length;\n    c = 0;\n    for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n      ret[pos++] = palette[i];\n      ret[pos++] = palette[i + 1];\n      ret[pos++] = palette[i + 2];\n      ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n    }\n    return ret;\n  };\n\n  PNG.prototype.copyToImageData = function(imageData, pixels) {\n    var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n    colors = this.colors;\n    palette = null;\n    alpha = this.hasAlphaChannel;\n    if (this.palette.length) {\n      palette =\n        (_ref = this._decodedPalette) != null\n          ? _ref\n          : (this._decodedPalette = this.decodePalette());\n      colors = 4;\n      alpha = true;\n    }\n    data = imageData.data || imageData;\n    length = data.length;\n    input = palette || pixels;\n    i = j = 0;\n    if (colors === 1) {\n      while (i < length) {\n        k = palette ? pixels[i / 4] * 4 : j;\n        v = input[k++];\n        data[i++] = v;\n        data[i++] = v;\n        data[i++] = v;\n        data[i++] = alpha ? input[k++] : 255;\n        j = k;\n      }\n    } else {\n      while (i < length) {\n        k = palette ? pixels[i / 4] * 4 : j;\n        data[i++] = input[k++];\n        data[i++] = input[k++];\n        data[i++] = input[k++];\n        data[i++] = alpha ? input[k++] : 255;\n        j = k;\n      }\n    }\n  };\n\n  PNG.prototype.decode = function() {\n    var ret;\n    ret = new Uint8Array(this.width * this.height * 4);\n    this.copyToImageData(ret, this.decodePixels());\n    return ret;\n  };\n\n  var hasBrowserCanvas = function() {\n    if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n      try {\n        scratchCanvas = globalObject.document.createElement(\"canvas\");\n        scratchCtx = scratchCanvas.getContext(\"2d\");\n      } catch (e) {\n        return false;\n      }\n      return true;\n    }\n    return false;\n  };\n\n  hasBrowserCanvas();\n\n  makeImage = function(imageData) {\n    if (hasBrowserCanvas() === true) {\n      var img;\n      scratchCtx.width = imageData.width;\n      scratchCtx.height = imageData.height;\n      scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n      scratchCtx.putImageData(imageData, 0, 0);\n      img = new Image();\n      img.src = scratchCanvas.toDataURL();\n      return img;\n    }\n    throw new Error(\"This method requires a Browser with Canvas-capability.\");\n  };\n\n  PNG.prototype.decodeFrames = function(ctx) {\n    var frame, i, imageData, pixels, _i, _len, _ref, _results;\n    if (!this.animation) {\n      return;\n    }\n    _ref = this.animation.frames;\n    _results = [];\n    for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n      frame = _ref[i];\n      imageData = ctx.createImageData(frame.width, frame.height);\n      pixels = this.decodePixels(new Uint8Array(frame.data));\n      this.copyToImageData(imageData, pixels);\n      frame.imageData = imageData;\n      _results.push((frame.image = makeImage(imageData)));\n    }\n    return _results;\n  };\n\n  PNG.prototype.renderFrame = function(ctx, number) {\n    var frame, frames, prev;\n    frames = this.animation.frames;\n    frame = frames[number];\n    prev = frames[number - 1];\n    if (number === 0) {\n      ctx.clearRect(0, 0, this.width, this.height);\n    }\n    if (\n      (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n    ) {\n      ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n    } else if (\n      (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n    ) {\n      ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n    }\n    if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n      ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n    }\n    return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n  };\n\n  PNG.prototype.animate = function(ctx) {\n    var doFrame,\n      frameNumber,\n      frames,\n      numFrames,\n      numPlays,\n      _ref,\n      _this = this;\n    frameNumber = 0;\n    (_ref = this.animation),\n      (numFrames = _ref.numFrames),\n      (frames = _ref.frames),\n      (numPlays = _ref.numPlays);\n    return (doFrame = function() {\n      var f, frame;\n      f = frameNumber++ % numFrames;\n      frame = frames[f];\n      _this.renderFrame(ctx, f);\n      if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n        return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n      }\n    })();\n  };\n\n  PNG.prototype.stopAnimation = function() {\n    var _ref;\n    return clearTimeout(\n      (_ref = this.animation) != null ? _ref._timeout : void 0\n    );\n  };\n\n  PNG.prototype.render = function(canvas) {\n    var ctx, data;\n    if (canvas._png) {\n      canvas._png.stopAnimation();\n    }\n    canvas._png = this;\n    canvas.width = this.width;\n    canvas.height = this.height;\n    ctx = canvas.getContext(\"2d\");\n    if (this.animation) {\n      this.decodeFrames(ctx);\n      return this.animate(ctx);\n    } else {\n      data = ctx.createImageData(this.width, this.height);\n      this.copyToImageData(data, this.decodePixels());\n      return ctx.putImageData(data, 0, 0);\n    }\n  };\n\n  return PNG;\n})();\n\nexport { PNG };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /*\n   * @see http://www.w3.org/TR/PNG-Chunks.html\n   *\n   Color    Allowed      Interpretation\n   Type     Bit Depths\n\n     0       1,2,4,8,16  Each pixel is a grayscale sample.\n\n     2       8,16        Each pixel is an R,G,B triple.\n\n     3       1,2,4,8     Each pixel is a palette index;\n                         a PLTE chunk must appear.\n\n     4       8,16        Each pixel is a grayscale sample,\n                         followed by an alpha sample.\n\n     6       8,16        Each pixel is an R,G,B triple,\n                         followed by an alpha sample.\n  */\n\n  /*\n   * PNG filter method types\n   *\n   * @see http://www.w3.org/TR/PNG-Filters.html\n   * @see http://www.libpng.org/pub/png/book/chapter09.html\n   *\n   * This is what the value 'Predictor' in decode params relates to\n   *\n   * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n   * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n   *\n     0       None\n     1       Sub\n     2       Up\n     3       Average\n     4       Paeth\n   */\n\n  var canCompress = function(value) {\n    return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n  };\n\n  var hasCompressionJS = function() {\n    return typeof zlibSync === \"function\";\n  };\n  var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n    var level = 4;\n    var filter_method = filterUp;\n\n    switch (compression) {\n      case jsPDFAPI.image_compression.FAST:\n        level = 1;\n        filter_method = filterSub;\n        break;\n\n      case jsPDFAPI.image_compression.MEDIUM:\n        level = 6;\n        filter_method = filterAverage;\n        break;\n\n      case jsPDFAPI.image_compression.SLOW:\n        level = 9;\n        filter_method = filterPaeth;\n        break;\n    }\n\n    bytes = applyPngFilterMethod(\n      bytes,\n      lineLength,\n      colorsPerPixel,\n      filter_method\n    );\n    var dat = zlibSync(bytes, { level: level });\n    return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n  };\n\n  var applyPngFilterMethod = function(\n    bytes,\n    lineLength,\n    colorsPerPixel,\n    filter_method\n  ) {\n    var lines = bytes.length / lineLength,\n      result = new Uint8Array(bytes.length + lines),\n      filter_methods = getFilterMethods(),\n      line,\n      prevLine,\n      offset;\n\n    for (var i = 0; i < lines; i += 1) {\n      offset = i * lineLength;\n      line = bytes.subarray(offset, offset + lineLength);\n\n      if (filter_method) {\n        result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n      } else {\n        var len = filter_methods.length,\n          results = [];\n\n        for (var j; j < len; j += 1) {\n          results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n        }\n\n        var ind = getIndexOfSmallestSum(results.concat());\n\n        result.set(results[ind], offset + i);\n      }\n\n      prevLine = line;\n    }\n\n    return result;\n  };\n\n  var filterNone = function(line) {\n    /*var result = new Uint8Array(line.length + 1);\n    result[0] = 0;\n    result.set(line, 1);*/\n\n    var result = Array.apply([], line);\n    result.unshift(0);\n\n    return result;\n  };\n\n  var filterSub = function(line, colorsPerPixel) {\n    var result = [],\n      len = line.length,\n      left;\n\n    result[0] = 1;\n\n    for (var i = 0; i < len; i += 1) {\n      left = line[i - colorsPerPixel] || 0;\n      result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n    }\n\n    return result;\n  };\n\n  var filterUp = function(line, colorsPerPixel, prevLine) {\n    var result = [],\n      len = line.length,\n      up;\n\n    result[0] = 2;\n\n    for (var i = 0; i < len; i += 1) {\n      up = (prevLine && prevLine[i]) || 0;\n      result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n    }\n\n    return result;\n  };\n\n  var filterAverage = function(line, colorsPerPixel, prevLine) {\n    var result = [],\n      len = line.length,\n      left,\n      up;\n\n    result[0] = 3;\n\n    for (var i = 0; i < len; i += 1) {\n      left = line[i - colorsPerPixel] || 0;\n      up = (prevLine && prevLine[i]) || 0;\n      result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n    }\n\n    return result;\n  };\n\n  var filterPaeth = function(line, colorsPerPixel, prevLine) {\n    var result = [],\n      len = line.length,\n      left,\n      up,\n      upLeft,\n      paeth;\n\n    result[0] = 4;\n\n    for (var i = 0; i < len; i += 1) {\n      left = line[i - colorsPerPixel] || 0;\n      up = (prevLine && prevLine[i]) || 0;\n      upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n      paeth = paethPredictor(left, up, upLeft);\n      result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n    }\n\n    return result;\n  };\n\n  var paethPredictor = function(left, up, upLeft) {\n    if (left === up && up === upLeft) {\n      return left;\n    }\n    var pLeft = Math.abs(up - upLeft),\n      pUp = Math.abs(left - upLeft),\n      pUpLeft = Math.abs(left + up - upLeft - upLeft);\n    return pLeft <= pUp && pLeft <= pUpLeft\n      ? left\n      : pUp <= pUpLeft\n      ? up\n      : upLeft;\n  };\n\n  var getFilterMethods = function() {\n    return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n  };\n\n  var getIndexOfSmallestSum = function(arrays) {\n    var sum = arrays.map(function(value) {\n      return value.reduce(function(pv, cv) {\n        return pv + Math.abs(cv);\n      }, 0);\n    });\n    return sum.indexOf(Math.min.apply(null, sum));\n  };\n\n  var getPredictorFromCompression = function(compression) {\n    var predictor;\n    switch (compression) {\n      case jsPDFAPI.image_compression.FAST:\n        predictor = 11;\n        break;\n\n      case jsPDFAPI.image_compression.MEDIUM:\n        predictor = 13;\n        break;\n\n      case jsPDFAPI.image_compression.SLOW:\n        predictor = 14;\n        break;\n\n      default:\n        predictor = 12;\n        break;\n    }\n    return predictor;\n  };\n\n  /**\n   * @name processPNG\n   * @function\n   * @ignore\n   */\n  jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n    \"use strict\";\n\n    var colorSpace,\n      filter = this.decode.FLATE_DECODE,\n      bitsPerComponent,\n      image,\n      decodeParameters = \"\",\n      trns,\n      colors,\n      pal,\n      smask,\n      pixels,\n      len,\n      alphaData,\n      imgData,\n      hasColors,\n      pixel,\n      i,\n      n;\n\n    if (this.__addimage__.isArrayBuffer(imageData))\n      imageData = new Uint8Array(imageData);\n\n    if (this.__addimage__.isArrayBufferView(imageData)) {\n      image = new PNG(imageData);\n      imageData = image.imgData;\n      bitsPerComponent = image.bits;\n      colorSpace = image.colorSpace;\n      colors = image.colors;\n\n      /*\n       * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n       *\n       * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n       *\n       * Extract alpha to create two separate images, using the alpha as a sMask\n       */\n      if ([4, 6].indexOf(image.colorType) !== -1) {\n        /*\n         * processes 8 bit RGBA and grayscale + alpha images\n         */\n        if (image.bits === 8) {\n          pixels =\n            image.pixelBitlength == 32\n              ? new Uint32Array(image.decodePixels().buffer)\n              : image.pixelBitlength == 16\n              ? new Uint16Array(image.decodePixels().buffer)\n              : new Uint8Array(image.decodePixels().buffer);\n          len = pixels.length;\n          imgData = new Uint8Array(len * image.colors);\n          alphaData = new Uint8Array(len);\n          var pDiff = image.pixelBitlength - image.bits;\n          i = 0;\n          n = 0;\n          var pbl;\n\n          for (; i < len; i++) {\n            pixel = pixels[i];\n            pbl = 0;\n\n            while (pbl < pDiff) {\n              imgData[n++] = (pixel >>> pbl) & 0xff;\n              pbl = pbl + image.bits;\n            }\n\n            alphaData[i] = (pixel >>> pbl) & 0xff;\n          }\n        }\n\n        /*\n         * processes 16 bit RGBA and grayscale + alpha images\n         */\n        if (image.bits === 16) {\n          pixels = new Uint32Array(image.decodePixels().buffer);\n          len = pixels.length;\n          imgData = new Uint8Array(\n            len * (32 / image.pixelBitlength) * image.colors\n          );\n          alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n          hasColors = image.colors > 1;\n          i = 0;\n          n = 0;\n          var a = 0;\n\n          while (i < len) {\n            pixel = pixels[i++];\n\n            imgData[n++] = (pixel >>> 0) & 0xff;\n\n            if (hasColors) {\n              imgData[n++] = (pixel >>> 16) & 0xff;\n\n              pixel = pixels[i++];\n              imgData[n++] = (pixel >>> 0) & 0xff;\n            }\n\n            alphaData[a++] = (pixel >>> 16) & 0xff;\n          }\n          bitsPerComponent = 8;\n        }\n\n        if (canCompress(compression)) {\n          imageData = compressBytes(\n            imgData,\n            image.width * image.colors,\n            image.colors,\n            compression\n          );\n          smask = compressBytes(alphaData, image.width, 1, compression);\n        } else {\n          imageData = imgData;\n          smask = alphaData;\n          filter = undefined;\n        }\n      }\n\n      /*\n       * Indexed png. Each pixel is a palette index.\n       */\n      if (image.colorType === 3) {\n        colorSpace = this.color_spaces.INDEXED;\n        pal = image.palette;\n\n        if (image.transparency.indexed) {\n          var trans = image.transparency.indexed;\n          var total = 0;\n          i = 0;\n          len = trans.length;\n\n          for (; i < len; ++i) {\n            total += trans[i];\n          }\n\n          total = total / 255;\n\n          /*\n           * a single color is specified as 100% transparent (0),\n           * so we set trns to use a /Mask with that index\n           */\n          if (total === len - 1 && trans.indexOf(0) !== -1) {\n            trns = [trans.indexOf(0)];\n\n            /*\n             * there's more than one colour within the palette that specifies\n             * a transparency value less than 255, so we unroll the pixels to create an image sMask\n             */\n          } else if (total !== len) {\n            pixels = image.decodePixels();\n            alphaData = new Uint8Array(pixels.length);\n            i = 0;\n            len = pixels.length;\n\n            for (; i < len; i++) {\n              alphaData[i] = trans[pixels[i]];\n            }\n\n            smask = compressBytes(alphaData, image.width, 1);\n          }\n        }\n      }\n\n      var predictor = getPredictorFromCompression(compression);\n\n      if (filter === this.decode.FLATE_DECODE) {\n        decodeParameters = \"/Predictor \" + predictor + \" \";\n      }\n      decodeParameters +=\n        \"/Colors \" +\n        colors +\n        \" /BitsPerComponent \" +\n        bitsPerComponent +\n        \" /Columns \" +\n        image.width;\n\n      if (\n        this.__addimage__.isArrayBuffer(imageData) ||\n        this.__addimage__.isArrayBufferView(imageData)\n      ) {\n        imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n      }\n\n      if (\n        (smask && this.__addimage__.isArrayBuffer(smask)) ||\n        this.__addimage__.isArrayBufferView(smask)\n      ) {\n        smask = this.__addimage__.arrayBufferToBinaryString(smask);\n      }\n\n      return {\n        alias: alias,\n        data: imageData,\n        index: index,\n        filter: filter,\n        decodeParameters: decodeParameters,\n        transparency: trns,\n        palette: pal,\n        sMask: smask,\n        predictor: predictor,\n        width: image.width,\n        height: image.height,\n        bitsPerComponent: bitsPerComponent,\n        colorSpace: colorSpace\n      };\n    }\n  };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee <dean@gmail.com>, 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression.  It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n  var p = 0;\n\n  var gopts = gopts === undefined ? {} : gopts;\n  var loop_count = gopts.loop === undefined ? null : gopts.loop;\n  var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n  if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n    throw new Error(\"Width/Height invalid.\");\n\n  function check_palette_and_num_colors(palette) {\n    var num_colors = palette.length;\n    if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n      throw new Error(\n        \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n      );\n    }\n    return num_colors;\n  }\n\n  // - Header.\n  buf[p++] = 0x47;\n  buf[p++] = 0x49;\n  buf[p++] = 0x46; // GIF\n  buf[p++] = 0x38;\n  buf[p++] = 0x39;\n  buf[p++] = 0x61; // 89a\n\n  // Handling of Global Color Table (palette) and background index.\n  var gp_num_colors_pow2 = 0;\n  var background = 0;\n  if (global_palette !== null) {\n    var gp_num_colors = check_palette_and_num_colors(global_palette);\n    while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n    gp_num_colors = 1 << gp_num_colors_pow2;\n    --gp_num_colors_pow2;\n    if (gopts.background !== undefined) {\n      background = gopts.background;\n      if (background >= gp_num_colors)\n        throw new Error(\"Background index out of range.\");\n      // The GIF spec states that a background index of 0 should be ignored, so\n      // this is probably a mistake and you really want to set it to another\n      // slot in the palette.  But actually in the end most browsers, etc end\n      // up ignoring this almost completely (including for dispose background).\n      if (background === 0)\n        throw new Error(\"Background index explicitly passed as 0.\");\n    }\n  }\n\n  // - Logical Screen Descriptor.\n  // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n  buf[p++] = width & 0xff;\n  buf[p++] = (width >> 8) & 0xff;\n  buf[p++] = height & 0xff;\n  buf[p++] = (height >> 8) & 0xff;\n  // NOTE: Indicates 0-bpp original color resolution (unused?).\n  buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n  buf[p++] = background; // Background Color Index.\n  buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n  // - Global Color Table\n  if (global_palette !== null) {\n    for (var i = 0, il = global_palette.length; i < il; ++i) {\n      var rgb = global_palette[i];\n      buf[p++] = (rgb >> 16) & 0xff;\n      buf[p++] = (rgb >> 8) & 0xff;\n      buf[p++] = rgb & 0xff;\n    }\n  }\n\n  if (loop_count !== null) {\n    // Netscape block for looping.\n    if (loop_count < 0 || loop_count > 65535)\n      throw new Error(\"Loop count invalid.\");\n    // Extension code, label, and length.\n    buf[p++] = 0x21;\n    buf[p++] = 0xff;\n    buf[p++] = 0x0b;\n    // NETSCAPE2.0\n    buf[p++] = 0x4e;\n    buf[p++] = 0x45;\n    buf[p++] = 0x54;\n    buf[p++] = 0x53;\n    buf[p++] = 0x43;\n    buf[p++] = 0x41;\n    buf[p++] = 0x50;\n    buf[p++] = 0x45;\n    buf[p++] = 0x32;\n    buf[p++] = 0x2e;\n    buf[p++] = 0x30;\n    // Sub-block\n    buf[p++] = 0x03;\n    buf[p++] = 0x01;\n    buf[p++] = loop_count & 0xff;\n    buf[p++] = (loop_count >> 8) & 0xff;\n    buf[p++] = 0x00; // Terminator.\n  }\n\n  var ended = false;\n\n  this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n    if (ended === true) {\n      --p;\n      ended = false;\n    } // Un-end.\n\n    opts = opts === undefined ? {} : opts;\n\n    // TODO(deanm): Bounds check x, y.  Do they need to be within the virtual\n    // canvas width/height, I imagine?\n    if (x < 0 || y < 0 || x > 65535 || y > 65535)\n      throw new Error(\"x/y invalid.\");\n\n    if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n      throw new Error(\"Width/Height invalid.\");\n\n    if (indexed_pixels.length < w * h)\n      throw new Error(\"Not enough pixels for the frame size.\");\n\n    var using_local_palette = true;\n    var palette = opts.palette;\n    if (palette === undefined || palette === null) {\n      using_local_palette = false;\n      palette = global_palette;\n    }\n\n    if (palette === undefined || palette === null)\n      throw new Error(\"Must supply either a local or global palette.\");\n\n    var num_colors = check_palette_and_num_colors(palette);\n\n    // Compute the min_code_size (power of 2), destroying num_colors.\n    var min_code_size = 0;\n    while ((num_colors >>= 1)) ++min_code_size;\n    num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n    var delay = opts.delay === undefined ? 0 : opts.delay;\n\n    // From the spec:\n    //     0 -   No disposal specified. The decoder is\n    //           not required to take any action.\n    //     1 -   Do not dispose. The graphic is to be left\n    //           in place.\n    //     2 -   Restore to background color. The area used by the\n    //           graphic must be restored to the background color.\n    //     3 -   Restore to previous. The decoder is required to\n    //           restore the area overwritten by the graphic with\n    //           what was there prior to rendering the graphic.\n    //  4-7 -    To be defined.\n    // NOTE(deanm): Dispose background doesn't really work, apparently most\n    // browsers ignore the background palette index and clear to transparency.\n    var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n    if (disposal < 0 || disposal > 3)\n      // 4-7 is reserved.\n      throw new Error(\"Disposal out of range.\");\n\n    var use_transparency = false;\n    var transparent_index = 0;\n    if (opts.transparent !== undefined && opts.transparent !== null) {\n      use_transparency = true;\n      transparent_index = opts.transparent;\n      if (transparent_index < 0 || transparent_index >= num_colors)\n        throw new Error(\"Transparent color index.\");\n    }\n\n    if (disposal !== 0 || use_transparency || delay !== 0) {\n      // - Graphics Control Extension\n      buf[p++] = 0x21;\n      buf[p++] = 0xf9; // Extension / Label.\n      buf[p++] = 4; // Byte size.\n\n      buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n      buf[p++] = delay & 0xff;\n      buf[p++] = (delay >> 8) & 0xff;\n      buf[p++] = transparent_index; // Transparent color index.\n      buf[p++] = 0; // Block Terminator.\n    }\n\n    // - Image Descriptor\n    buf[p++] = 0x2c; // Image Seperator.\n    buf[p++] = x & 0xff;\n    buf[p++] = (x >> 8) & 0xff; // Left.\n    buf[p++] = y & 0xff;\n    buf[p++] = (y >> 8) & 0xff; // Top.\n    buf[p++] = w & 0xff;\n    buf[p++] = (w >> 8) & 0xff;\n    buf[p++] = h & 0xff;\n    buf[p++] = (h >> 8) & 0xff;\n    // NOTE: No sort flag (unused?).\n    // TODO(deanm): Support interlace.\n    buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n    // - Local Color Table\n    if (using_local_palette === true) {\n      for (var i = 0, il = palette.length; i < il; ++i) {\n        var rgb = palette[i];\n        buf[p++] = (rgb >> 16) & 0xff;\n        buf[p++] = (rgb >> 8) & 0xff;\n        buf[p++] = rgb & 0xff;\n      }\n    }\n\n    p = GifWriterOutputLZWCodeStream(\n      buf,\n      p,\n      min_code_size < 2 ? 2 : min_code_size,\n      indexed_pixels\n    );\n\n    return p;\n  };\n\n  this.end = function() {\n    if (ended === false) {\n      buf[p++] = 0x3b; // Trailer.\n      ended = true;\n    }\n    return p;\n  };\n\n  this.getOutputBuffer = function() {\n    return buf;\n  };\n  this.setOutputBuffer = function(v) {\n    buf = v;\n  };\n  this.getOutputBufferPosition = function() {\n    return p;\n  };\n  this.setOutputBufferPosition = function(v) {\n    p = v;\n  };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n  buf[p++] = min_code_size;\n  var cur_subblock = p++; // Pointing at the length field.\n\n  var clear_code = 1 << min_code_size;\n  var code_mask = clear_code - 1;\n  var eoi_code = clear_code + 1;\n  var next_code = eoi_code + 1;\n\n  var cur_code_size = min_code_size + 1; // Number of bits per code.\n  var cur_shift = 0;\n  // We have at most 12-bit codes, so we should have to hold a max of 19\n  // bits here (and then we would write out).\n  var cur = 0;\n\n  function emit_bytes_to_buffer(bit_block_size) {\n    while (cur_shift >= bit_block_size) {\n      buf[p++] = cur & 0xff;\n      cur >>= 8;\n      cur_shift -= 8;\n      if (p === cur_subblock + 256) {\n        // Finished a subblock.\n        buf[cur_subblock] = 255;\n        cur_subblock = p++;\n      }\n    }\n  }\n\n  function emit_code(c) {\n    cur |= c << cur_shift;\n    cur_shift += cur_code_size;\n    emit_bytes_to_buffer(8);\n  }\n\n  // I am not an expert on the topic, and I don't want to write a thesis.\n  // However, it is good to outline here the basic algorithm and the few data\n  // structures and optimizations here that make this implementation fast.\n  // The basic idea behind LZW is to build a table of previously seen runs\n  // addressed by a short id (herein called output code).  All data is\n  // referenced by a code, which represents one or more values from the\n  // original input stream.  All input bytes can be referenced as the same\n  // value as an output code.  So if you didn't want any compression, you\n  // could more or less just output the original bytes as codes (there are\n  // some details to this, but it is the idea).  In order to achieve\n  // compression, values greater then the input range (codes can be up to\n  // 12-bit while input only 8-bit) represent a sequence of previously seen\n  // inputs.  The decompressor is able to build the same mapping while\n  // decoding, so there is always a shared common knowledge between the\n  // encoding and decoder, which is also important for \"timing\" aspects like\n  // how to handle variable bit width code encoding.\n  //\n  // One obvious but very important consequence of the table system is there\n  // is always a unique id (at most 12-bits) to map the runs.  'A' might be\n  // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc.  This relationship\n  // can be used for an effecient lookup strategy for the code mapping.  We\n  // need to know if a run has been seen before, and be able to map that run\n  // to the output code.  Since we start with known unique ids (input bytes),\n  // and then from those build more unique ids (table entries), we can\n  // continue this chain (almost like a linked list) to always have small\n  // integer values that represent the current byte chains in the encoder.\n  // This means instead of tracking the input bytes (AAAABCD) to know our\n  // current state, we can track the table entry for AAAABC (it is guaranteed\n  // to exist by the nature of the algorithm) and the next character D.\n  // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n  // unique.  This allows us to create a simple lookup key for mapping input\n  // sequences to codes (table indices) without having to store or search\n  // any of the code sequences.  So if 'AAAA' has a table entry of 12, the\n  // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n  // key.  This leads to a integer value at most 20-bits, which can always\n  // fit in an SMI value and be used as a fast sparse array / object key.\n\n  // Output code for the current contents of the index buffer.\n  var ib_code = index_stream[0] & code_mask; // Load first input index.\n  var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n  emit_code(clear_code); // Spec says first code should be a clear code.\n\n  // First index already loaded, process the rest of the stream.\n  for (var i = 1, il = index_stream.length; i < il; ++i) {\n    var k = index_stream[i] & code_mask;\n    var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n    var cur_code = code_table[cur_key]; // buffer + k.\n\n    // Check if we have to create a new code table entry.\n    if (cur_code === undefined) {\n      // We don't have buffer + k.\n      // Emit index buffer (without k).\n      // This is an inline version of emit_code, because this is the core\n      // writing routine of the compressor (and V8 cannot inline emit_code\n      // because it is a closure here in a different context).  Additionally\n      // we can call emit_byte_to_buffer less often, because we can have\n      // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n      // be 12-bits, so can safely have 18-bits there without overflow.\n      // emit_code(ib_code);\n      cur |= ib_code << cur_shift;\n      cur_shift += cur_code_size;\n      while (cur_shift >= 8) {\n        buf[p++] = cur & 0xff;\n        cur >>= 8;\n        cur_shift -= 8;\n        if (p === cur_subblock + 256) {\n          // Finished a subblock.\n          buf[cur_subblock] = 255;\n          cur_subblock = p++;\n        }\n      }\n\n      if (next_code === 4096) {\n        // Table full, need a clear.\n        emit_code(clear_code);\n        next_code = eoi_code + 1;\n        cur_code_size = min_code_size + 1;\n        code_table = {};\n      } else {\n        // Table not full, insert a new entry.\n        // Increase our variable bit code sizes if necessary.  This is a bit\n        // tricky as it is based on \"timing\" between the encoding and\n        // decoder.  From the encoders perspective this should happen after\n        // we've already emitted the index buffer and are about to create the\n        // first table entry that would overflow our current code bit size.\n        if (next_code >= 1 << cur_code_size) ++cur_code_size;\n        code_table[cur_key] = next_code++; // Insert into code table.\n      }\n\n      ib_code = k; // Index buffer to single input k.\n    } else {\n      ib_code = cur_code; // Index buffer to sequence in code table.\n    }\n  }\n\n  emit_code(ib_code); // There will still be something in the index buffer.\n  emit_code(eoi_code); // End Of Information.\n\n  // Flush / finalize the sub-blocks stream to the buffer.\n  emit_bytes_to_buffer(1);\n\n  // Finish the sub-blocks, writing out any unfinished lengths and\n  // terminating with a sub-block of length 0.  If we have already started\n  // but not yet used a sub-block it can just become the terminator.\n  if (cur_subblock + 1 === p) {\n    // Started but unused.\n    buf[cur_subblock] = 0;\n  } else {\n    // Started and used, write length and additional terminator block.\n    buf[cur_subblock] = p - cur_subblock - 1;\n    buf[p++] = 0;\n  }\n  return p;\n}\n\nfunction GifReader(buf) {\n  var p = 0;\n\n  // - Header (GIF87a or GIF89a).\n  if (\n    buf[p++] !== 0x47 ||\n    buf[p++] !== 0x49 ||\n    buf[p++] !== 0x46 ||\n    buf[p++] !== 0x38 ||\n    ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n    buf[p++] !== 0x61\n  ) {\n    throw new Error(\"Invalid GIF 87a/89a header.\");\n  }\n\n  // - Logical Screen Descriptor.\n  var width = buf[p++] | (buf[p++] << 8);\n  var height = buf[p++] | (buf[p++] << 8);\n  var pf0 = buf[p++]; // <Packed Fields>.\n  var global_palette_flag = pf0 >> 7;\n  var num_global_colors_pow2 = pf0 & 0x7;\n  var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n  var background = buf[p++];\n  buf[p++]; // Pixel aspect ratio (unused?).\n\n  var global_palette_offset = null;\n  var global_palette_size = null;\n\n  if (global_palette_flag) {\n    global_palette_offset = p;\n    global_palette_size = num_global_colors;\n    p += num_global_colors * 3; // Seek past palette.\n  }\n\n  var no_eof = true;\n\n  var frames = [];\n\n  var delay = 0;\n  var transparent_index = null;\n  var disposal = 0; // 0 - No disposal specified.\n  var loop_count = null;\n\n  this.width = width;\n  this.height = height;\n\n  while (no_eof && p < buf.length) {\n    switch (buf[p++]) {\n      case 0x21: // Graphics Control Extension Block\n        switch (buf[p++]) {\n          case 0xff: // Application specific block\n            // Try if it's a Netscape block (with animation loop counter).\n            if (\n              buf[p] !== 0x0b || // 21 FF already read, check block size.\n              // NETSCAPE2.0\n              (buf[p + 1] == 0x4e &&\n                buf[p + 2] == 0x45 &&\n                buf[p + 3] == 0x54 &&\n                buf[p + 4] == 0x53 &&\n                buf[p + 5] == 0x43 &&\n                buf[p + 6] == 0x41 &&\n                buf[p + 7] == 0x50 &&\n                buf[p + 8] == 0x45 &&\n                buf[p + 9] == 0x32 &&\n                buf[p + 10] == 0x2e &&\n                buf[p + 11] == 0x30 &&\n                // Sub-block\n                buf[p + 12] == 0x03 &&\n                buf[p + 13] == 0x01 &&\n                buf[p + 16] == 0)\n            ) {\n              p += 14;\n              loop_count = buf[p++] | (buf[p++] << 8);\n              p++; // Skip terminator.\n            } else {\n              // We don't know what it is, just try to get past it.\n              p += 12;\n              while (true) {\n                // Seek through subblocks.\n                var block_size = buf[p++];\n                // Bad block size (ex: undefined from an out of bounds read).\n                if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n                if (block_size === 0) break; // 0 size is terminator\n                p += block_size;\n              }\n            }\n            break;\n\n          case 0xf9: // Graphics Control Extension\n            if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n              throw new Error(\"Invalid graphics extension block.\");\n            var pf1 = buf[p++];\n            delay = buf[p++] | (buf[p++] << 8);\n            transparent_index = buf[p++];\n            if ((pf1 & 1) === 0) transparent_index = null;\n            disposal = (pf1 >> 2) & 0x7;\n            p++; // Skip terminator.\n            break;\n\n          case 0xfe: // Comment Extension.\n            while (true) {\n              // Seek through subblocks.\n              var block_size = buf[p++];\n              // Bad block size (ex: undefined from an out of bounds read).\n              if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n              if (block_size === 0) break; // 0 size is terminator\n              // console.log(buf.slice(p, p+block_size).toString('ascii'));\n              p += block_size;\n            }\n            break;\n\n          default:\n            throw new Error(\n              \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n            );\n        }\n        break;\n\n      case 0x2c: // Image Descriptor.\n        var x = buf[p++] | (buf[p++] << 8);\n        var y = buf[p++] | (buf[p++] << 8);\n        var w = buf[p++] | (buf[p++] << 8);\n        var h = buf[p++] | (buf[p++] << 8);\n        var pf2 = buf[p++];\n        var local_palette_flag = pf2 >> 7;\n        var interlace_flag = (pf2 >> 6) & 1;\n        var num_local_colors_pow2 = pf2 & 0x7;\n        var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n        var palette_offset = global_palette_offset;\n        var palette_size = global_palette_size;\n        var has_local_palette = false;\n        if (local_palette_flag) {\n          var has_local_palette = true;\n          palette_offset = p; // Override with local palette.\n          palette_size = num_local_colors;\n          p += num_local_colors * 3; // Seek past palette.\n        }\n\n        var data_offset = p;\n\n        p++; // codesize\n        while (true) {\n          var block_size = buf[p++];\n          // Bad block size (ex: undefined from an out of bounds read).\n          if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n          if (block_size === 0) break; // 0 size is terminator\n          p += block_size;\n        }\n\n        frames.push({\n          x: x,\n          y: y,\n          width: w,\n          height: h,\n          has_local_palette: has_local_palette,\n          palette_offset: palette_offset,\n          palette_size: palette_size,\n          data_offset: data_offset,\n          data_length: p - data_offset,\n          transparent_index: transparent_index,\n          interlaced: !!interlace_flag,\n          delay: delay,\n          disposal: disposal\n        });\n        break;\n\n      case 0x3b: // Trailer Marker (end of file).\n        no_eof = false;\n        break;\n\n      default:\n        throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n        break;\n    }\n  }\n\n  this.numFrames = function() {\n    return frames.length;\n  };\n\n  this.loopCount = function() {\n    return loop_count;\n  };\n\n  this.frameInfo = function(frame_num) {\n    if (frame_num < 0 || frame_num >= frames.length)\n      throw new Error(\"Frame index out of range.\");\n    return frames[frame_num];\n  };\n\n  this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n    var frame = this.frameInfo(frame_num);\n    var num_pixels = frame.width * frame.height;\n    var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n    GifReaderLZWOutputIndexStream(\n      buf,\n      frame.data_offset,\n      index_stream,\n      num_pixels\n    );\n    var palette_offset = frame.palette_offset;\n\n    // NOTE(deanm): It seems to be much faster to compare index to 256 than\n    // to === null.  Not sure why, but CompareStub_EQ_STRICT shows up high in\n    // the profile, not sure if it's related to using a Uint8Array.\n    var trans = frame.transparent_index;\n    if (trans === null) trans = 256;\n\n    // We are possibly just blitting to a portion of the entire frame.\n    // That is a subrect within the framerect, so the additional pixels\n    // must be skipped over after we finished a scanline.\n    var framewidth = frame.width;\n    var framestride = width - framewidth;\n    var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n    // Output indices of the top left and bottom right corners of the subrect.\n    var opbeg = (frame.y * width + frame.x) * 4;\n    var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n    var op = opbeg;\n\n    var scanstride = framestride * 4;\n\n    // Use scanstride to skip past the rows when interlacing.  This is skipping\n    // 7 rows for the first two passes, then 3 then 1.\n    if (frame.interlaced === true) {\n      scanstride += width * 4 * 7; // Pass 1.\n    }\n\n    var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n    for (var i = 0, il = index_stream.length; i < il; ++i) {\n      var index = index_stream[i];\n\n      if (xleft === 0) {\n        // Beginning of new scan line\n        op += scanstride;\n        xleft = framewidth;\n        if (op >= opend) {\n          // Catch the wrap to switch passes when interlacing.\n          scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n          // interlaceskip / 2 * 4 is interlaceskip << 1.\n          op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n          interlaceskip >>= 1;\n        }\n      }\n\n      if (index === trans) {\n        op += 4;\n      } else {\n        var r = buf[palette_offset + index * 3];\n        var g = buf[palette_offset + index * 3 + 1];\n        var b = buf[palette_offset + index * 3 + 2];\n        pixels[op++] = b;\n        pixels[op++] = g;\n        pixels[op++] = r;\n        pixels[op++] = 255;\n      }\n      --xleft;\n    }\n  };\n\n  // I will go to copy and paste hell one day...\n  this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n    var frame = this.frameInfo(frame_num);\n    var num_pixels = frame.width * frame.height;\n    var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n    GifReaderLZWOutputIndexStream(\n      buf,\n      frame.data_offset,\n      index_stream,\n      num_pixels\n    );\n    var palette_offset = frame.palette_offset;\n\n    // NOTE(deanm): It seems to be much faster to compare index to 256 than\n    // to === null.  Not sure why, but CompareStub_EQ_STRICT shows up high in\n    // the profile, not sure if it's related to using a Uint8Array.\n    var trans = frame.transparent_index;\n    if (trans === null) trans = 256;\n\n    // We are possibly just blitting to a portion of the entire frame.\n    // That is a subrect within the framerect, so the additional pixels\n    // must be skipped over after we finished a scanline.\n    var framewidth = frame.width;\n    var framestride = width - framewidth;\n    var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n    // Output indices of the top left and bottom right corners of the subrect.\n    var opbeg = (frame.y * width + frame.x) * 4;\n    var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n    var op = opbeg;\n\n    var scanstride = framestride * 4;\n\n    // Use scanstride to skip past the rows when interlacing.  This is skipping\n    // 7 rows for the first two passes, then 3 then 1.\n    if (frame.interlaced === true) {\n      scanstride += width * 4 * 7; // Pass 1.\n    }\n\n    var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n    for (var i = 0, il = index_stream.length; i < il; ++i) {\n      var index = index_stream[i];\n\n      if (xleft === 0) {\n        // Beginning of new scan line\n        op += scanstride;\n        xleft = framewidth;\n        if (op >= opend) {\n          // Catch the wrap to switch passes when interlacing.\n          scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n          // interlaceskip / 2 * 4 is interlaceskip << 1.\n          op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n          interlaceskip >>= 1;\n        }\n      }\n\n      if (index === trans) {\n        op += 4;\n      } else {\n        var r = buf[palette_offset + index * 3];\n        var g = buf[palette_offset + index * 3 + 1];\n        var b = buf[palette_offset + index * 3 + 2];\n        pixels[op++] = r;\n        pixels[op++] = g;\n        pixels[op++] = b;\n        pixels[op++] = 255;\n      }\n      --xleft;\n    }\n  };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n  var min_code_size = code_stream[p++];\n\n  var clear_code = 1 << min_code_size;\n  var eoi_code = clear_code + 1;\n  var next_code = eoi_code + 1;\n\n  var cur_code_size = min_code_size + 1; // Number of bits per code.\n  // NOTE: This shares the same name as the encoder, but has a different\n  // meaning here.  Here this masks each code coming from the code stream.\n  var code_mask = (1 << cur_code_size) - 1;\n  var cur_shift = 0;\n  var cur = 0;\n\n  var op = 0; // Output pointer.\n\n  var subblock_size = code_stream[p++];\n\n  // TODO(deanm): Would using a TypedArray be any faster?  At least it would\n  // solve the fast mode / backing store uncertainty.\n  // var code_table = Array(4096);\n  var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n  var prev_code = null; // Track code-1.\n\n  while (true) {\n    // Read up to two bytes, making sure we always 12-bits for max sized code.\n    while (cur_shift < 16) {\n      if (subblock_size === 0) break; // No more data to be read.\n\n      cur |= code_stream[p++] << cur_shift;\n      cur_shift += 8;\n\n      if (subblock_size === 1) {\n        // Never let it get to 0 to hold logic above.\n        subblock_size = code_stream[p++]; // Next subblock.\n      } else {\n        --subblock_size;\n      }\n    }\n\n    // TODO(deanm): We should never really get here, we should have received\n    // and EOI.\n    if (cur_shift < cur_code_size) break;\n\n    var code = cur & code_mask;\n    cur >>= cur_code_size;\n    cur_shift -= cur_code_size;\n\n    // TODO(deanm): Maybe should check that the first code was a clear code,\n    // at least this is what you're supposed to do.  But actually our encoder\n    // now doesn't emit a clear code first anyway.\n    if (code === clear_code) {\n      // We don't actually have to clear the table.  This could be a good idea\n      // for greater error checking, but we don't really do any anyway.  We\n      // will just track it with next_code and overwrite old entries.\n\n      next_code = eoi_code + 1;\n      cur_code_size = min_code_size + 1;\n      code_mask = (1 << cur_code_size) - 1;\n\n      // Don't update prev_code ?\n      prev_code = null;\n      continue;\n    } else if (code === eoi_code) {\n      break;\n    }\n\n    // We have a similar situation as the decoder, where we want to store\n    // variable length entries (code table entries), but we want to do in a\n    // faster manner than an array of arrays.  The code below stores sort of a\n    // linked list within the code table, and then \"chases\" through it to\n    // construct the dictionary entries.  When a new entry is created, just the\n    // last byte is stored, and the rest (prefix) of the entry is only\n    // referenced by its table entry.  Then the code chases through the\n    // prefixes until it reaches a single byte code.  We have to chase twice,\n    // first to compute the length, and then to actually copy the data to the\n    // output (backwards, since we know the length).  The alternative would be\n    // storing something in an intermediate stack, but that doesn't make any\n    // more sense.  I implemented an approach where it also stored the length\n    // in the code table, although it's a bit tricky because you run out of\n    // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n    // entries are generally not the long).  Even when I created benchmarks for\n    // very long table entries the complexity did not seem worth it.\n    // The code table stores the prefix entry in 12 bits and then the suffix\n    // byte in 8 bits, so each entry is 20 bits.\n\n    var chase_code = code < next_code ? code : prev_code;\n\n    // Chase what we will output, either {CODE} or {CODE-1}.\n    var chase_length = 0;\n    var chase = chase_code;\n    while (chase > clear_code) {\n      chase = code_table[chase] >> 8;\n      ++chase_length;\n    }\n\n    var k = chase;\n\n    var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n    if (op_end > output_length) {\n      console.log(\"Warning, gif stream longer than expected.\");\n      return;\n    }\n\n    // Already have the first byte from the chase, might as well write it fast.\n    output[op++] = k;\n\n    op += chase_length;\n    var b = op; // Track pointer, writing backwards.\n\n    if (chase_code !== code)\n      // The case of emitting {CODE-1} + k.\n      output[op++] = k;\n\n    chase = chase_code;\n    while (chase_length--) {\n      chase = code_table[chase];\n      output[--b] = chase & 0xff; // Write backwards.\n      chase >>= 8; // Pull down to the prefix code.\n    }\n\n    if (prev_code !== null && next_code < 4096) {\n      code_table[next_code++] = (prev_code << 8) | k;\n      // TODO(deanm): Figure out this clearing vs code growth logic better.  I\n      // have an feeling that it should just happen somewhere else, for now it\n      // is awkward between when we grow past the max and then hit a clear code.\n      // For now just check if we hit the max 12-bits (then a clear code should\n      // follow, also of course encoded in 12-bits).\n      if (next_code >= code_mask + 1 && cur_code_size < 12) {\n        ++cur_code_size;\n        code_mask = (code_mask << 1) | 1;\n      }\n    }\n\n    prev_code = code;\n  }\n\n  if (op !== output_length) {\n    console.log(\"Warning, gif stream shorter than expected.\");\n  }\n\n  return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n  Copyright (c) 2008, Adobe Systems Incorporated\n  All rights reserved.\n\n  Redistribution and use in source and binary forms, with or without \n  modification, are permitted provided that the following conditions are\n  met:\n\n  * Redistributions of source code must retain the above copyright notice, \n    this list of conditions and the following disclaimer.\n  \n  * Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in the \n    documentation and/or other materials provided with the distribution.\n  \n  * Neither the name of Adobe Systems Incorporated nor the names of its \n    contributors may be used to endorse or promote products derived from \n    this software without specific prior written permission.\n\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n  IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n  var ffloor = Math.floor;\n  var YTable = new Array(64);\n  var UVTable = new Array(64);\n  var fdtbl_Y = new Array(64);\n  var fdtbl_UV = new Array(64);\n  var YDC_HT;\n  var UVDC_HT;\n  var YAC_HT;\n  var UVAC_HT;\n\n  var bitcode = new Array(65535);\n  var category = new Array(65535);\n  var outputfDCTQuant = new Array(64);\n  var DU = new Array(64);\n  var byteout = [];\n  var bytenew = 0;\n  var bytepos = 7;\n\n  var YDU = new Array(64);\n  var UDU = new Array(64);\n  var VDU = new Array(64);\n  var clt = new Array(256);\n  var RGB_YUV_TABLE = new Array(2048);\n  var currentQuality;\n\n  var ZigZag = [\n    0,\n    1,\n    5,\n    6,\n    14,\n    15,\n    27,\n    28,\n    2,\n    4,\n    7,\n    13,\n    16,\n    26,\n    29,\n    42,\n    3,\n    8,\n    12,\n    17,\n    25,\n    30,\n    41,\n    43,\n    9,\n    11,\n    18,\n    24,\n    31,\n    40,\n    44,\n    53,\n    10,\n    19,\n    23,\n    32,\n    39,\n    45,\n    52,\n    54,\n    20,\n    22,\n    33,\n    38,\n    46,\n    51,\n    55,\n    60,\n    21,\n    34,\n    37,\n    47,\n    50,\n    56,\n    59,\n    61,\n    35,\n    36,\n    48,\n    49,\n    57,\n    58,\n    62,\n    63\n  ];\n\n  var std_dc_luminance_nrcodes = [\n    0,\n    0,\n    1,\n    5,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0,\n    0\n  ];\n  var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  var std_ac_luminance_nrcodes = [\n    0,\n    0,\n    2,\n    1,\n    3,\n    3,\n    2,\n    4,\n    3,\n    5,\n    5,\n    4,\n    4,\n    0,\n    0,\n    1,\n    0x7d\n  ];\n  var std_ac_luminance_values = [\n    0x01,\n    0x02,\n    0x03,\n    0x00,\n    0x04,\n    0x11,\n    0x05,\n    0x12,\n    0x21,\n    0x31,\n    0x41,\n    0x06,\n    0x13,\n    0x51,\n    0x61,\n    0x07,\n    0x22,\n    0x71,\n    0x14,\n    0x32,\n    0x81,\n    0x91,\n    0xa1,\n    0x08,\n    0x23,\n    0x42,\n    0xb1,\n    0xc1,\n    0x15,\n    0x52,\n    0xd1,\n    0xf0,\n    0x24,\n    0x33,\n    0x62,\n    0x72,\n    0x82,\n    0x09,\n    0x0a,\n    0x16,\n    0x17,\n    0x18,\n    0x19,\n    0x1a,\n    0x25,\n    0x26,\n    0x27,\n    0x28,\n    0x29,\n    0x2a,\n    0x34,\n    0x35,\n    0x36,\n    0x37,\n    0x38,\n    0x39,\n    0x3a,\n    0x43,\n    0x44,\n    0x45,\n    0x46,\n    0x47,\n    0x48,\n    0x49,\n    0x4a,\n    0x53,\n    0x54,\n    0x55,\n    0x56,\n    0x57,\n    0x58,\n    0x59,\n    0x5a,\n    0x63,\n    0x64,\n    0x65,\n    0x66,\n    0x67,\n    0x68,\n    0x69,\n    0x6a,\n    0x73,\n    0x74,\n    0x75,\n    0x76,\n    0x77,\n    0x78,\n    0x79,\n    0x7a,\n    0x83,\n    0x84,\n    0x85,\n    0x86,\n    0x87,\n    0x88,\n    0x89,\n    0x8a,\n    0x92,\n    0x93,\n    0x94,\n    0x95,\n    0x96,\n    0x97,\n    0x98,\n    0x99,\n    0x9a,\n    0xa2,\n    0xa3,\n    0xa4,\n    0xa5,\n    0xa6,\n    0xa7,\n    0xa8,\n    0xa9,\n    0xaa,\n    0xb2,\n    0xb3,\n    0xb4,\n    0xb5,\n    0xb6,\n    0xb7,\n    0xb8,\n    0xb9,\n    0xba,\n    0xc2,\n    0xc3,\n    0xc4,\n    0xc5,\n    0xc6,\n    0xc7,\n    0xc8,\n    0xc9,\n    0xca,\n    0xd2,\n    0xd3,\n    0xd4,\n    0xd5,\n    0xd6,\n    0xd7,\n    0xd8,\n    0xd9,\n    0xda,\n    0xe1,\n    0xe2,\n    0xe3,\n    0xe4,\n    0xe5,\n    0xe6,\n    0xe7,\n    0xe8,\n    0xe9,\n    0xea,\n    0xf1,\n    0xf2,\n    0xf3,\n    0xf4,\n    0xf5,\n    0xf6,\n    0xf7,\n    0xf8,\n    0xf9,\n    0xfa\n  ];\n\n  var std_dc_chrominance_nrcodes = [\n    0,\n    0,\n    3,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    1,\n    0,\n    0,\n    0,\n    0,\n    0\n  ];\n  var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n  var std_ac_chrominance_nrcodes = [\n    0,\n    0,\n    2,\n    1,\n    2,\n    4,\n    4,\n    3,\n    4,\n    7,\n    5,\n    4,\n    4,\n    0,\n    1,\n    2,\n    0x77\n  ];\n  var std_ac_chrominance_values = [\n    0x00,\n    0x01,\n    0x02,\n    0x03,\n    0x11,\n    0x04,\n    0x05,\n    0x21,\n    0x31,\n    0x06,\n    0x12,\n    0x41,\n    0x51,\n    0x07,\n    0x61,\n    0x71,\n    0x13,\n    0x22,\n    0x32,\n    0x81,\n    0x08,\n    0x14,\n    0x42,\n    0x91,\n    0xa1,\n    0xb1,\n    0xc1,\n    0x09,\n    0x23,\n    0x33,\n    0x52,\n    0xf0,\n    0x15,\n    0x62,\n    0x72,\n    0xd1,\n    0x0a,\n    0x16,\n    0x24,\n    0x34,\n    0xe1,\n    0x25,\n    0xf1,\n    0x17,\n    0x18,\n    0x19,\n    0x1a,\n    0x26,\n    0x27,\n    0x28,\n    0x29,\n    0x2a,\n    0x35,\n    0x36,\n    0x37,\n    0x38,\n    0x39,\n    0x3a,\n    0x43,\n    0x44,\n    0x45,\n    0x46,\n    0x47,\n    0x48,\n    0x49,\n    0x4a,\n    0x53,\n    0x54,\n    0x55,\n    0x56,\n    0x57,\n    0x58,\n    0x59,\n    0x5a,\n    0x63,\n    0x64,\n    0x65,\n    0x66,\n    0x67,\n    0x68,\n    0x69,\n    0x6a,\n    0x73,\n    0x74,\n    0x75,\n    0x76,\n    0x77,\n    0x78,\n    0x79,\n    0x7a,\n    0x82,\n    0x83,\n    0x84,\n    0x85,\n    0x86,\n    0x87,\n    0x88,\n    0x89,\n    0x8a,\n    0x92,\n    0x93,\n    0x94,\n    0x95,\n    0x96,\n    0x97,\n    0x98,\n    0x99,\n    0x9a,\n    0xa2,\n    0xa3,\n    0xa4,\n    0xa5,\n    0xa6,\n    0xa7,\n    0xa8,\n    0xa9,\n    0xaa,\n    0xb2,\n    0xb3,\n    0xb4,\n    0xb5,\n    0xb6,\n    0xb7,\n    0xb8,\n    0xb9,\n    0xba,\n    0xc2,\n    0xc3,\n    0xc4,\n    0xc5,\n    0xc6,\n    0xc7,\n    0xc8,\n    0xc9,\n    0xca,\n    0xd2,\n    0xd3,\n    0xd4,\n    0xd5,\n    0xd6,\n    0xd7,\n    0xd8,\n    0xd9,\n    0xda,\n    0xe2,\n    0xe3,\n    0xe4,\n    0xe5,\n    0xe6,\n    0xe7,\n    0xe8,\n    0xe9,\n    0xea,\n    0xf2,\n    0xf3,\n    0xf4,\n    0xf5,\n    0xf6,\n    0xf7,\n    0xf8,\n    0xf9,\n    0xfa\n  ];\n\n  function initQuantTables(sf) {\n    var YQT = [\n      16,\n      11,\n      10,\n      16,\n      24,\n      40,\n      51,\n      61,\n      12,\n      12,\n      14,\n      19,\n      26,\n      58,\n      60,\n      55,\n      14,\n      13,\n      16,\n      24,\n      40,\n      57,\n      69,\n      56,\n      14,\n      17,\n      22,\n      29,\n      51,\n      87,\n      80,\n      62,\n      18,\n      22,\n      37,\n      56,\n      68,\n      109,\n      103,\n      77,\n      24,\n      35,\n      55,\n      64,\n      81,\n      104,\n      113,\n      92,\n      49,\n      64,\n      78,\n      87,\n      103,\n      121,\n      120,\n      101,\n      72,\n      92,\n      95,\n      98,\n      112,\n      100,\n      103,\n      99\n    ];\n\n    for (var i = 0; i < 64; i++) {\n      var t = ffloor((YQT[i] * sf + 50) / 100);\n      t = Math.min(Math.max(t, 1), 255);\n      YTable[ZigZag[i]] = t;\n    }\n    var UVQT = [\n      17,\n      18,\n      24,\n      47,\n      99,\n      99,\n      99,\n      99,\n      18,\n      21,\n      26,\n      66,\n      99,\n      99,\n      99,\n      99,\n      24,\n      26,\n      56,\n      99,\n      99,\n      99,\n      99,\n      99,\n      47,\n      66,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99,\n      99\n    ];\n    for (var j = 0; j < 64; j++) {\n      var u = ffloor((UVQT[j] * sf + 50) / 100);\n      u = Math.min(Math.max(u, 1), 255);\n      UVTable[ZigZag[j]] = u;\n    }\n    var aasf = [\n      1.0,\n      1.387039845,\n      1.306562965,\n      1.175875602,\n      1.0,\n      0.785694958,\n      0.5411961,\n      0.275899379\n    ];\n    var k = 0;\n    for (var row = 0; row < 8; row++) {\n      for (var col = 0; col < 8; col++) {\n        fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n        fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n        k++;\n      }\n    }\n  }\n\n  function computeHuffmanTbl(nrcodes, std_table) {\n    var codevalue = 0;\n    var pos_in_table = 0;\n    var HT = new Array();\n    for (var k = 1; k <= 16; k++) {\n      for (var j = 1; j <= nrcodes[k]; j++) {\n        HT[std_table[pos_in_table]] = [];\n        HT[std_table[pos_in_table]][0] = codevalue;\n        HT[std_table[pos_in_table]][1] = k;\n        pos_in_table++;\n        codevalue++;\n      }\n      codevalue *= 2;\n    }\n    return HT;\n  }\n\n  function initHuffmanTbl() {\n    YDC_HT = computeHuffmanTbl(\n      std_dc_luminance_nrcodes,\n      std_dc_luminance_values\n    );\n    UVDC_HT = computeHuffmanTbl(\n      std_dc_chrominance_nrcodes,\n      std_dc_chrominance_values\n    );\n    YAC_HT = computeHuffmanTbl(\n      std_ac_luminance_nrcodes,\n      std_ac_luminance_values\n    );\n    UVAC_HT = computeHuffmanTbl(\n      std_ac_chrominance_nrcodes,\n      std_ac_chrominance_values\n    );\n  }\n\n  function initCategoryNumber() {\n    var nrlower = 1;\n    var nrupper = 2;\n    for (var cat = 1; cat <= 15; cat++) {\n      //Positive numbers\n      for (var nr = nrlower; nr < nrupper; nr++) {\n        category[32767 + nr] = cat;\n        bitcode[32767 + nr] = [];\n        bitcode[32767 + nr][1] = cat;\n        bitcode[32767 + nr][0] = nr;\n      }\n      //Negative numbers\n      for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n        category[32767 + nrneg] = cat;\n        bitcode[32767 + nrneg] = [];\n        bitcode[32767 + nrneg][1] = cat;\n        bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n      }\n      nrlower <<= 1;\n      nrupper <<= 1;\n    }\n  }\n\n  function initRGBYUVTable() {\n    for (var i = 0; i < 256; i++) {\n      RGB_YUV_TABLE[i] = 19595 * i;\n      RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n      RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n      RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n      RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n      RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n      RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n      RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n    }\n  }\n\n  // IO functions\n  function writeBits(bs) {\n    var value = bs[0];\n    var posval = bs[1] - 1;\n    while (posval >= 0) {\n      if (value & (1 << posval)) {\n        bytenew |= 1 << bytepos;\n      }\n      posval--;\n      bytepos--;\n      if (bytepos < 0) {\n        if (bytenew == 0xff) {\n          writeByte(0xff);\n          writeByte(0);\n        } else {\n          writeByte(bytenew);\n        }\n        bytepos = 7;\n        bytenew = 0;\n      }\n    }\n  }\n\n  function writeByte(value) {\n    //byteout.push(clt[value]); // write char directly instead of converting later\n    byteout.push(value);\n  }\n\n  function writeWord(value) {\n    writeByte((value >> 8) & 0xff);\n    writeByte(value & 0xff);\n  }\n\n  // DCT & quantization core\n  function fDCTQuant(data, fdtbl) {\n    var d0, d1, d2, d3, d4, d5, d6, d7;\n    /* Pass 1: process rows. */\n    var dataOff = 0;\n    var i;\n    var I8 = 8;\n    var I64 = 64;\n    for (i = 0; i < I8; ++i) {\n      d0 = data[dataOff];\n      d1 = data[dataOff + 1];\n      d2 = data[dataOff + 2];\n      d3 = data[dataOff + 3];\n      d4 = data[dataOff + 4];\n      d5 = data[dataOff + 5];\n      d6 = data[dataOff + 6];\n      d7 = data[dataOff + 7];\n\n      var tmp0 = d0 + d7;\n      var tmp7 = d0 - d7;\n      var tmp1 = d1 + d6;\n      var tmp6 = d1 - d6;\n      var tmp2 = d2 + d5;\n      var tmp5 = d2 - d5;\n      var tmp3 = d3 + d4;\n      var tmp4 = d3 - d4;\n\n      /* Even part */\n      var tmp10 = tmp0 + tmp3; /* phase 2 */\n      var tmp13 = tmp0 - tmp3;\n      var tmp11 = tmp1 + tmp2;\n      var tmp12 = tmp1 - tmp2;\n\n      data[dataOff] = tmp10 + tmp11; /* phase 3 */\n      data[dataOff + 4] = tmp10 - tmp11;\n\n      var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n      data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n      data[dataOff + 6] = tmp13 - z1;\n\n      /* Odd part */\n      tmp10 = tmp4 + tmp5; /* phase 2 */\n      tmp11 = tmp5 + tmp6;\n      tmp12 = tmp6 + tmp7;\n\n      /* The rotator is modified from fig 4-8 to avoid extra negations. */\n      var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n      var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n      var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n      var z3 = tmp11 * 0.707106781; /* c4 */\n\n      var z11 = tmp7 + z3; /* phase 5 */\n      var z13 = tmp7 - z3;\n\n      data[dataOff + 5] = z13 + z2; /* phase 6 */\n      data[dataOff + 3] = z13 - z2;\n      data[dataOff + 1] = z11 + z4;\n      data[dataOff + 7] = z11 - z4;\n\n      dataOff += 8; /* advance pointer to next row */\n    }\n\n    /* Pass 2: process columns. */\n    dataOff = 0;\n    for (i = 0; i < I8; ++i) {\n      d0 = data[dataOff];\n      d1 = data[dataOff + 8];\n      d2 = data[dataOff + 16];\n      d3 = data[dataOff + 24];\n      d4 = data[dataOff + 32];\n      d5 = data[dataOff + 40];\n      d6 = data[dataOff + 48];\n      d7 = data[dataOff + 56];\n\n      var tmp0p2 = d0 + d7;\n      var tmp7p2 = d0 - d7;\n      var tmp1p2 = d1 + d6;\n      var tmp6p2 = d1 - d6;\n      var tmp2p2 = d2 + d5;\n      var tmp5p2 = d2 - d5;\n      var tmp3p2 = d3 + d4;\n      var tmp4p2 = d3 - d4;\n\n      /* Even part */\n      var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n      var tmp13p2 = tmp0p2 - tmp3p2;\n      var tmp11p2 = tmp1p2 + tmp2p2;\n      var tmp12p2 = tmp1p2 - tmp2p2;\n\n      data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n      data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n      var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n      data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n      data[dataOff + 48] = tmp13p2 - z1p2;\n\n      /* Odd part */\n      tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n      tmp11p2 = tmp5p2 + tmp6p2;\n      tmp12p2 = tmp6p2 + tmp7p2;\n\n      /* The rotator is modified from fig 4-8 to avoid extra negations. */\n      var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n      var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n      var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n      var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n      var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n      var z13p2 = tmp7p2 - z3p2;\n\n      data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n      data[dataOff + 24] = z13p2 - z2p2;\n      data[dataOff + 8] = z11p2 + z4p2;\n      data[dataOff + 56] = z11p2 - z4p2;\n\n      dataOff++; /* advance pointer to next column */\n    }\n\n    // Quantize/descale the coefficients\n    var fDCTQuant;\n    for (i = 0; i < I64; ++i) {\n      // Apply the quantization and scaling factor & Round to nearest integer\n      fDCTQuant = data[i] * fdtbl[i];\n      outputfDCTQuant[i] =\n        fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n      //outputfDCTQuant[i] = fround(fDCTQuant);\n    }\n    return outputfDCTQuant;\n  }\n\n  function writeAPP0() {\n    writeWord(0xffe0); // marker\n    writeWord(16); // length\n    writeByte(0x4a); // J\n    writeByte(0x46); // F\n    writeByte(0x49); // I\n    writeByte(0x46); // F\n    writeByte(0); // = \"JFIF\",'\\0'\n    writeByte(1); // versionhi\n    writeByte(1); // versionlo\n    writeByte(0); // xyunits\n    writeWord(1); // xdensity\n    writeWord(1); // ydensity\n    writeByte(0); // thumbnwidth\n    writeByte(0); // thumbnheight\n  }\n\n  function writeSOF0(width, height) {\n    writeWord(0xffc0); // marker\n    writeWord(17); // length, truecolor YUV JPG\n    writeByte(8); // precision\n    writeWord(height);\n    writeWord(width);\n    writeByte(3); // nrofcomponents\n    writeByte(1); // IdY\n    writeByte(0x11); // HVY\n    writeByte(0); // QTY\n    writeByte(2); // IdU\n    writeByte(0x11); // HVU\n    writeByte(1); // QTU\n    writeByte(3); // IdV\n    writeByte(0x11); // HVV\n    writeByte(1); // QTV\n  }\n\n  function writeDQT() {\n    writeWord(0xffdb); // marker\n    writeWord(132); // length\n    writeByte(0);\n    for (var i = 0; i < 64; i++) {\n      writeByte(YTable[i]);\n    }\n    writeByte(1);\n    for (var j = 0; j < 64; j++) {\n      writeByte(UVTable[j]);\n    }\n  }\n\n  function writeDHT() {\n    writeWord(0xffc4); // marker\n    writeWord(0x01a2); // length\n\n    writeByte(0); // HTYDCinfo\n    for (var i = 0; i < 16; i++) {\n      writeByte(std_dc_luminance_nrcodes[i + 1]);\n    }\n    for (var j = 0; j <= 11; j++) {\n      writeByte(std_dc_luminance_values[j]);\n    }\n\n    writeByte(0x10); // HTYACinfo\n    for (var k = 0; k < 16; k++) {\n      writeByte(std_ac_luminance_nrcodes[k + 1]);\n    }\n    for (var l = 0; l <= 161; l++) {\n      writeByte(std_ac_luminance_values[l]);\n    }\n\n    writeByte(1); // HTUDCinfo\n    for (var m = 0; m < 16; m++) {\n      writeByte(std_dc_chrominance_nrcodes[m + 1]);\n    }\n    for (var n = 0; n <= 11; n++) {\n      writeByte(std_dc_chrominance_values[n]);\n    }\n\n    writeByte(0x11); // HTUACinfo\n    for (var o = 0; o < 16; o++) {\n      writeByte(std_ac_chrominance_nrcodes[o + 1]);\n    }\n    for (var p = 0; p <= 161; p++) {\n      writeByte(std_ac_chrominance_values[p]);\n    }\n  }\n\n  function writeSOS() {\n    writeWord(0xffda); // marker\n    writeWord(12); // length\n    writeByte(3); // nrofcomponents\n    writeByte(1); // IdY\n    writeByte(0); // HTY\n    writeByte(2); // IdU\n    writeByte(0x11); // HTU\n    writeByte(3); // IdV\n    writeByte(0x11); // HTV\n    writeByte(0); // Ss\n    writeByte(0x3f); // Se\n    writeByte(0); // Bf\n  }\n\n  function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n    var EOB = HTAC[0x00];\n    var M16zeroes = HTAC[0xf0];\n    var pos;\n    var I16 = 16;\n    var I63 = 63;\n    var I64 = 64;\n    var DU_DCT = fDCTQuant(CDU, fdtbl);\n    //ZigZag reorder\n    for (var j = 0; j < I64; ++j) {\n      DU[ZigZag[j]] = DU_DCT[j];\n    }\n    var Diff = DU[0] - DC;\n    DC = DU[0];\n    //Encode DC\n    if (Diff == 0) {\n      writeBits(HTDC[0]); // Diff might be 0\n    } else {\n      pos = 32767 + Diff;\n      writeBits(HTDC[category[pos]]);\n      writeBits(bitcode[pos]);\n    }\n    //Encode ACs\n    var end0pos = 63; // was const... which is crazy\n    while (end0pos > 0 && DU[end0pos] == 0) {\n      end0pos--;\n    }\n    //end0pos = first element in reverse order !=0\n    if (end0pos == 0) {\n      writeBits(EOB);\n      return DC;\n    }\n    var i = 1;\n    var lng;\n    while (i <= end0pos) {\n      var startpos = i;\n      while (DU[i] == 0 && i <= end0pos) {\n        ++i;\n      }\n      var nrzeroes = i - startpos;\n      if (nrzeroes >= I16) {\n        lng = nrzeroes >> 4;\n        for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n          writeBits(M16zeroes);\n        nrzeroes = nrzeroes & 0xf;\n      }\n      pos = 32767 + DU[i];\n      writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n      writeBits(bitcode[pos]);\n      i++;\n    }\n    if (end0pos != I63) {\n      writeBits(EOB);\n    }\n    return DC;\n  }\n\n  function initCharLookupTable() {\n    var sfcc = String.fromCharCode;\n    for (var i = 0; i < 256; i++) {\n      ///// ACHTUNG // 255\n      clt[i] = sfcc(i);\n    }\n  }\n\n  this.encode = function(\n    image,\n    quality // image data object\n  ) {\n    if (quality) setQuality(quality);\n\n    // Initialize bit writer\n    byteout = new Array();\n    bytenew = 0;\n    bytepos = 7;\n\n    // Add JPEG headers\n    writeWord(0xffd8); // SOI\n    writeAPP0();\n    writeDQT();\n    writeSOF0(image.width, image.height);\n    writeDHT();\n    writeSOS();\n\n    // Encode 8x8 macroblocks\n    var DCY = 0;\n    var DCU = 0;\n    var DCV = 0;\n\n    bytenew = 0;\n    bytepos = 7;\n\n    this.encode.displayName = \"_encode_\";\n\n    var imageData = image.data;\n    var width = image.width;\n    var height = image.height;\n\n    var quadWidth = width * 4;\n\n    var x,\n      y = 0;\n    var r, g, b;\n    var start, p, col, row, pos;\n    while (y < height) {\n      x = 0;\n      while (x < quadWidth) {\n        start = quadWidth * y + x;\n        col = -1;\n        row = 0;\n\n        for (pos = 0; pos < 64; pos++) {\n          row = pos >> 3; // /8\n          col = (pos & 7) * 4; // %8\n          p = start + row * quadWidth + col;\n\n          if (y + row >= height) {\n            // padding bottom\n            p -= quadWidth * (y + 1 + row - height);\n          }\n\n          if (x + col >= quadWidth) {\n            // padding right\n            p -= x + col - quadWidth + 4;\n          }\n\n          r = imageData[p++];\n          g = imageData[p++];\n          b = imageData[p++];\n\n          /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n          // use lookup table (slightly faster)\n          YDU[pos] =\n            ((RGB_YUV_TABLE[r] +\n              RGB_YUV_TABLE[(g + 256) >> 0] +\n              RGB_YUV_TABLE[(b + 512) >> 0]) >>\n              16) -\n            128;\n          UDU[pos] =\n            ((RGB_YUV_TABLE[(r + 768) >> 0] +\n              RGB_YUV_TABLE[(g + 1024) >> 0] +\n              RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n              16) -\n            128;\n          VDU[pos] =\n            ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n              RGB_YUV_TABLE[(g + 1536) >> 0] +\n              RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n              16) -\n            128;\n        }\n\n        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n        x += 32;\n      }\n      y += 8;\n    }\n\n    ////////////////////////////////////////////////////////////////\n\n    // Do the bit alignment of the EOI marker\n    if (bytepos >= 0) {\n      var fillbits = [];\n      fillbits[1] = bytepos + 1;\n      fillbits[0] = (1 << (bytepos + 1)) - 1;\n      writeBits(fillbits);\n    }\n\n    writeWord(0xffd9); //EOI\n\n    return new Uint8Array(byteout);\n  };\n\n  function setQuality(quality) {\n    quality = Math.min(Math.max(quality, 1), 100);\n\n    if (currentQuality == quality) return; // don't recalc if unchanged\n\n    var sf =\n      quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n    initQuantTables(sf);\n    currentQuality = quality;\n    //console.log('Quality set to: '+quality +'%');\n  }\n\n  function init() {\n    quality = quality || 50;\n    // Create tables\n    initCharLookupTable();\n    initHuffmanTbl();\n    initCategoryNumber();\n    initRGBYUVTable();\n\n    setQuality(quality);\n  }\n  init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n    var reader = new GifReader(imageData);\n    var width = reader.width,\n      height = reader.height;\n    var qu = 100;\n    var pixels = [];\n\n    reader.decodeAndBlitFrameRGBA(0, pixels);\n    var rawImageData = {\n      data: pixels,\n      width: width,\n      height: height\n    };\n\n    var encoder = new JPEGEncoder(qu);\n    var data = encoder.encode(rawImageData, qu);\n    return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n  };\n\n  jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n  this.pos = 0;\n  this.buffer = buffer;\n  this.datav = new DataView(buffer.buffer);\n  this.is_with_alpha = !!is_with_alpha;\n  this.bottom_up = true;\n  this.flag =\n    String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n  this.pos += 2;\n  if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n    throw new Error(\"Invalid BMP File\");\n  this.parseHeader();\n  this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n  this.fileSize = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.reserved = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.offset = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.headerSize = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.width = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.height = this.datav.getInt32(this.pos, true);\n  this.pos += 4;\n  this.planes = this.datav.getUint16(this.pos, true);\n  this.pos += 2;\n  this.bitPP = this.datav.getUint16(this.pos, true);\n  this.pos += 2;\n  this.compress = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.rawSize = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.hr = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.vr = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.colors = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n  this.importantColors = this.datav.getUint32(this.pos, true);\n  this.pos += 4;\n\n  if (this.bitPP === 16 && this.is_with_alpha) {\n    this.bitPP = 15;\n  }\n  if (this.bitPP < 15) {\n    var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n    this.palette = new Array(len);\n    for (var i = 0; i < len; i++) {\n      var blue = this.datav.getUint8(this.pos++, true);\n      var green = this.datav.getUint8(this.pos++, true);\n      var red = this.datav.getUint8(this.pos++, true);\n      var quad = this.datav.getUint8(this.pos++, true);\n      this.palette[i] = {\n        red: red,\n        green: green,\n        blue: blue,\n        quad: quad\n      };\n    }\n  }\n  if (this.height < 0) {\n    this.height *= -1;\n    this.bottom_up = false;\n  }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n  this.pos = this.offset;\n  try {\n    var bitn = \"bit\" + this.bitPP;\n    var len = this.width * this.height * 4;\n    this.data = new Uint8Array(len);\n\n    this[bitn]();\n  } catch (e) {\n    console.log(\"bit decode error:\" + e);\n  }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n  var xlen = Math.ceil(this.width / 8);\n  var mode = xlen % 4;\n  var y;\n  for (y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < xlen; x++) {\n      var b = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 8 * 4;\n      for (var i = 0; i < 8; i++) {\n        if (x * 8 + i < this.width) {\n          var rgb = this.palette[(b >> (7 - i)) & 0x1];\n          this.data[location + i * 4] = rgb.blue;\n          this.data[location + i * 4 + 1] = rgb.green;\n          this.data[location + i * 4 + 2] = rgb.red;\n          this.data[location + i * 4 + 3] = 0xff;\n        } else {\n          break;\n        }\n      }\n    }\n\n    if (mode !== 0) {\n      this.pos += 4 - mode;\n    }\n  }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n  var xlen = Math.ceil(this.width / 2);\n  var mode = xlen % 4;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < xlen; x++) {\n      var b = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 2 * 4;\n\n      var before = b >> 4;\n      var after = b & 0x0f;\n\n      var rgb = this.palette[before];\n      this.data[location] = rgb.blue;\n      this.data[location + 1] = rgb.green;\n      this.data[location + 2] = rgb.red;\n      this.data[location + 3] = 0xff;\n\n      if (x * 2 + 1 >= this.width) break;\n\n      rgb = this.palette[after];\n      this.data[location + 4] = rgb.blue;\n      this.data[location + 4 + 1] = rgb.green;\n      this.data[location + 4 + 2] = rgb.red;\n      this.data[location + 4 + 3] = 0xff;\n    }\n\n    if (mode !== 0) {\n      this.pos += 4 - mode;\n    }\n  }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n  var mode = this.width % 4;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var b = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 4;\n      if (b < this.palette.length) {\n        var rgb = this.palette[b];\n        this.data[location] = rgb.red;\n        this.data[location + 1] = rgb.green;\n        this.data[location + 2] = rgb.blue;\n        this.data[location + 3] = 0xff;\n      } else {\n        this.data[location] = 0xff;\n        this.data[location + 1] = 0xff;\n        this.data[location + 2] = 0xff;\n        this.data[location + 3] = 0xff;\n      }\n    }\n    if (mode !== 0) {\n      this.pos += 4 - mode;\n    }\n  }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n  var dif_w = this.width % 3;\n  var _11111 = parseInt(\"11111\", 2),\n    _1_5 = _11111;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var B = this.datav.getUint16(this.pos, true);\n      this.pos += 2;\n      var blue = (((B & _1_5) / _1_5) * 255) | 0;\n      var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n      var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n      var alpha = B >> 15 ? 0xff : 0x00;\n\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = alpha;\n    }\n    //skip extra bytes\n    this.pos += dif_w;\n  }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n  var dif_w = this.width % 3;\n  var _11111 = parseInt(\"11111\", 2),\n    _1_5 = _11111;\n  var _111111 = parseInt(\"111111\", 2),\n    _1_6 = _111111;\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var B = this.datav.getUint16(this.pos, true);\n      this.pos += 2;\n      var alpha = 0xff;\n      var blue = (((B & _1_5) / _1_5) * 255) | 0;\n      var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n      var red = (((B >> 11) / _1_5) * 255) | 0;\n\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = alpha;\n    }\n    //skip extra bytes\n    this.pos += dif_w;\n  }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n  //when height > 0\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var blue = this.datav.getUint8(this.pos++, true);\n      var green = this.datav.getUint8(this.pos++, true);\n      var red = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = 0xff;\n    }\n    //skip extra bytes\n    this.pos += this.width % 4;\n  }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n  //when height > 0\n  for (var y = this.height - 1; y >= 0; y--) {\n    var line = this.bottom_up ? y : this.height - 1 - y;\n    for (var x = 0; x < this.width; x++) {\n      var blue = this.datav.getUint8(this.pos++, true);\n      var green = this.datav.getUint8(this.pos++, true);\n      var red = this.datav.getUint8(this.pos++, true);\n      var alpha = this.datav.getUint8(this.pos++, true);\n      var location = line * this.width * 4 + x * 4;\n      this.data[location] = red;\n      this.data[location + 1] = green;\n      this.data[location + 2] = blue;\n      this.data[location + 3] = alpha;\n    }\n    //skip extra bytes\n    //this.pos += (this.width % 4);\n  }\n};\n\nBmpDecoder.prototype.getData = function() {\n  return this.data;\n};\n\nexport { BmpDecoder };\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n    var reader = new BmpDecoder(imageData, false);\n    var width = reader.width,\n      height = reader.height;\n    var qu = 100;\n    var pixels = reader.getData();\n\n    var rawImageData = {\n      data: pixels,\n      width: width,\n      height: height\n    };\n\n    var encoder = new JPEGEncoder(qu);\n    var data = encoder.encode(rawImageData, qu);\n    return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n  };\n})(jsPDF.API);\n","function WebPDecoder(imageData) {\n  /** @license\n   * Copyright 2011 Google Inc.\n   *\n   * This code is licensed under the same terms as WebM:\n   *  Software License Agreement:  http://www.webmproject.org/license/software/\n   *  Additional IP Rights Grant:  http://www.webmproject.org/license/additional/\n   * -----------------------------------------------------------------------------\n   *\n   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n   * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n   * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n   * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n   * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n   *\n   * -----------------------------------------------------------------------------\n   *\n   * Copyright 2011-2017 Dominik Homberger\n   * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n   *\n   * Author: Dominik Homberger (dominik.homberger@gmail.com)\n   */\n\n  var self = this;\n  var UpsampleRgbLinePair,\n    UpsampleBgrLinePair,\n    UpsampleRgbaLinePair,\n    UpsampleBgraLinePair,\n    UpsampleArgbLinePair,\n    UpsampleArgbLinePair,\n    UpsampleRgba4444LinePair,\n    UpsampleRgb565LinePair;\n\n  function x(F) {\n    if (!F) throw Error(\"assert :P\");\n  }\n  function fa(F, L, J) {\n    for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n    return !1;\n  }\n  function I(F, L, J, H, Z) {\n    for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n  }\n  function M(F, L, J, H) {\n    for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n  }\n  function V(F) {\n    return new Int32Array(F);\n  }\n  function wa(F, L) {\n    for (var J = [], H = 0; H < F; H++) J.push(new L());\n    return J;\n  }\n  function wb() {\n    function F(J, H, Z) {\n      for (var O = Z[H], L = 0; L < O; L++) {\n        J.push(Z.length > H + 1 ? [] : 0);\n        if (Z.length < H + 1) break;\n        F(J[L], H + 1, Z);\n      }\n    }\n    var L = [];\n    F(L, 0, [3, 11]);\n    return L;\n  }\n  function Ed(F, L) {\n    function J(H, O, F) {\n      for (var Z = F[O], ma = 0; ma < Z; ma++) {\n        H.push(F.length > O + 1 ? [] : new L());\n        if (F.length < O + 1) break;\n        J(H[ma], O + 1, F);\n      }\n    }\n    var H = [];\n    J(H, 0, F);\n    return H;\n  }\n  WebPDecoder = function() {\n    var self = this;\n    function F() {\n      V(55);\n    }\n    function L(a, b) {\n      for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n      return c ? (a & (c - 1)) + c : a;\n    }\n    function J(a, b, c, d, e) {\n      x(!(d % c));\n      do (d -= c), (a[b + d] = e);\n      while (0 < d);\n    }\n    function H(a, b, c, d, e, f) {\n      var g = b,\n        h = 1 << c,\n        k,\n        l,\n        m = V(16),\n        n = V(16);\n      x(0 != e);\n      x(null != d);\n      x(null != a);\n      x(0 < c);\n      for (l = 0; l < e; ++l) {\n        if (15 < d[l]) return 0;\n        ++m[d[l]];\n      }\n      if (m[0] == e) return 0;\n      n[1] = 0;\n      for (k = 1; 15 > k; ++k) {\n        if (m[k] > 1 << k) return 0;\n        n[k + 1] = n[k] + m[k];\n      }\n      for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n      if (1 == n[15])\n        return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n      var r = -1,\n        q = h - 1,\n        t = 0,\n        v = 1,\n        p = 1,\n        u,\n        w = 1 << c;\n      l = 0;\n      k = 1;\n      for (e = 2; k <= c; ++k, e <<= 1) {\n        p <<= 1;\n        v += p;\n        p -= m[k];\n        if (0 > p) return 0;\n        for (; 0 < m[k]; --m[k])\n          (d = new O()),\n            (d.g = k),\n            (d.value = f[l++]),\n            J(a, g + t, e, w, d),\n            (t = L(t, k));\n      }\n      k = c + 1;\n      for (e = 2; 15 >= k; ++k, e <<= 1) {\n        p <<= 1;\n        v += p;\n        p -= m[k];\n        if (0 > p) return 0;\n        for (; 0 < m[k]; --m[k]) {\n          d = new O();\n          if ((t & q) != r) {\n            g += w;\n            r = k;\n            for (u = 1 << (r - c); 15 > r; ) {\n              u -= m[r];\n              if (0 >= u) break;\n              ++r;\n              u <<= 1;\n            }\n            u = r - c;\n            w = 1 << u;\n            h += w;\n            r = t & q;\n            a[b + r].g = u + c;\n            a[b + r].value = g - b - r;\n          }\n          d.g = k - c;\n          d.value = f[l++];\n          J(a, g + (t >> c), e, w, d);\n          t = L(t, k);\n        }\n      }\n      return v != 2 * n[15] - 1 ? 0 : h;\n    }\n    function Z(a, b, c, d, e) {\n      x(2328 >= e);\n      if (512 >= e) var f = V(512);\n      else if (((f = V(e)), null == f)) return 0;\n      return H(a, b, c, d, e, f);\n    }\n    function O() {\n      this.value = this.g = 0;\n    }\n    function Fd() {\n      this.value = this.g = 0;\n    }\n    function Ub() {\n      this.G = wa(5, O);\n      this.H = V(5);\n      this.jc = this.Qb = this.qb = this.nd = 0;\n      this.pd = wa(xb, Fd);\n    }\n    function ma(a, b, c, d) {\n      x(null != a);\n      x(null != b);\n      x(2147483648 > d);\n      a.Ca = 254;\n      a.I = 0;\n      a.b = -8;\n      a.Ka = 0;\n      a.oa = b;\n      a.pa = c;\n      a.Jd = b;\n      a.Yc = c + d;\n      a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n      Qa(a);\n    }\n    function na(a, b) {\n      for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n      return c;\n    }\n    function ca(a, b) {\n      var c = na(a, b);\n      return G(a) ? -c : c;\n    }\n    function cb(a, b, c, d) {\n      var e,\n        f = 0;\n      x(null != a);\n      x(null != b);\n      x(4294967288 > d);\n      a.Sb = d;\n      a.Ra = 0;\n      a.u = 0;\n      a.h = 0;\n      4 < d && (d = 4);\n      for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n      a.Ra = f;\n      a.bb = d;\n      a.oa = b;\n      a.pa = c;\n    }\n    function Vb(a) {\n      for (; 8 <= a.u && a.bb < a.Sb; )\n        (a.Ra >>>= 8),\n          (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n          ++a.bb,\n          (a.u -= 8);\n      db(a) && ((a.h = 1), (a.u = 0));\n    }\n    function D(a, b) {\n      x(0 <= b);\n      if (!a.h && b <= Gd) {\n        var c = pb(a) & Hd[b];\n        a.u += b;\n        Vb(a);\n        return c;\n      }\n      a.h = 1;\n      return (a.u = 0);\n    }\n    function Wb() {\n      this.b = this.Ca = this.I = 0;\n      this.oa = [];\n      this.pa = 0;\n      this.Jd = [];\n      this.Yc = 0;\n      this.Zc = [];\n      this.Ka = 0;\n    }\n    function Ra() {\n      this.Ra = 0;\n      this.oa = [];\n      this.h = this.u = this.bb = this.Sb = this.pa = 0;\n    }\n    function pb(a) {\n      return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n    }\n    function db(a) {\n      x(a.bb <= a.Sb);\n      return a.h || (a.bb == a.Sb && a.u > ob);\n    }\n    function qb(a, b) {\n      a.u = b;\n      a.h = db(a);\n    }\n    function Sa(a) {\n      a.u >= Xb && (x(a.u >= Xb), Vb(a));\n    }\n    function Qa(a) {\n      x(null != a && null != a.oa);\n      a.pa < a.Zc\n        ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n        : (x(null != a && null != a.oa),\n          a.pa < a.Yc\n            ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n            : a.Ka\n            ? (a.b = 0)\n            : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n    }\n    function G(a) {\n      return na(a, 1);\n    }\n    function K(a, b) {\n      var c = a.Ca;\n      0 > a.b && Qa(a);\n      var d = a.b,\n        e = (c * b) >>> 8,\n        f = (a.I >>> d > e) + 0;\n      f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n      d = c;\n      for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n      d = 7 ^ (e + Id[d]);\n      a.b -= d;\n      a.Ca = (c << d) - 1;\n      return f;\n    }\n    function ra(a, b, c) {\n      a[b + 0] = (c >> 24) & 255;\n      a[b + 1] = (c >> 16) & 255;\n      a[b + 2] = (c >> 8) & 255;\n      a[b + 3] = (c >> 0) & 255;\n    }\n    function Ta(a, b) {\n      return (a[b + 0] << 0) | (a[b + 1] << 8);\n    }\n    function Yb(a, b) {\n      return Ta(a, b) | (a[b + 2] << 16);\n    }\n    function Ha(a, b) {\n      return Ta(a, b) | (Ta(a, b + 2) << 16);\n    }\n    function Zb(a, b) {\n      var c = 1 << b;\n      x(null != a);\n      x(0 < b);\n      a.X = V(c);\n      if (null == a.X) return 0;\n      a.Mb = 32 - b;\n      a.Xa = b;\n      return 1;\n    }\n    function $b(a, b) {\n      x(null != a);\n      x(null != b);\n      x(a.Xa == b.Xa);\n      I(b.X, 0, a.X, 0, 1 << b.Xa);\n    }\n    function ac() {\n      this.X = [];\n      this.Xa = this.Mb = 0;\n    }\n    function bc(a, b, c, d) {\n      x(null != c);\n      x(null != d);\n      var e = c[0],\n        f = d[0];\n      0 == e && (e = (a * f + b / 2) / b);\n      0 == f && (f = (b * e + a / 2) / a);\n      if (0 >= e || 0 >= f) return 0;\n      c[0] = e;\n      d[0] = f;\n      return 1;\n    }\n    function xa(a, b) {\n      return (a + (1 << b) - 1) >>> b;\n    }\n    function yb(a, b) {\n      return (\n        (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n          ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n        0\n      );\n    }\n    function X(a, b) {\n      self[b] = function(b, d, e, f, g, h, k) {\n        var c;\n        for (c = 0; c < g; ++c) {\n          var m = self[a](h[k + c - 1], e, f + c);\n          h[k + c] = yb(b[d + c], m);\n        }\n      };\n    }\n    function Jd() {\n      this.ud = this.hd = this.jd = 0;\n    }\n    function aa(a, b) {\n      return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n    }\n    function sa(a) {\n      if (0 <= a && 256 > a) return a;\n      if (0 > a) return 0;\n      if (255 < a) return 255;\n    }\n    function eb(a, b) {\n      return sa(a + ((a - b + 0.5) >> 1));\n    }\n    function Ia(a, b, c) {\n      return Math.abs(b - c) - Math.abs(a - c);\n    }\n    function cc(a, b, c, d, e, f, g) {\n      d = f[g - 1];\n      for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n    }\n    function Kd(a, b, c, d, e) {\n      var f;\n      for (f = 0; f < c; ++f) {\n        var g = a[b + f],\n          h = (g >> 8) & 255,\n          k = g & 16711935,\n          k = k + ((h << 16) + h),\n          k = k & 16711935;\n        d[e + f] = ((g & 4278255360) + k) >>> 0;\n      }\n    }\n    function dc(a, b) {\n      b.jd = (a >> 0) & 255;\n      b.hd = (a >> 8) & 255;\n      b.ud = (a >> 16) & 255;\n    }\n    function Ld(a, b, c, d, e, f) {\n      var g;\n      for (g = 0; g < d; ++g) {\n        var h = b[c + g],\n          k = h >>> 8,\n          l = h >>> 16,\n          m = h,\n          l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n          l = l & 255,\n          m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n          m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n          m = m & 255;\n        e[f + g] = (h & 4278255360) + (l << 16) + m;\n      }\n    }\n    function ec(a, b, c, d, e) {\n      self[b] = function(a, b, c, k, l, m, n, r, q) {\n        for (k = n; k < r; ++k)\n          for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n      };\n      self[a] = function(a, b, h, k, l, m, n) {\n        var f = 8 >> a.b,\n          g = a.Ea,\n          t = a.K[0],\n          v = a.w;\n        if (8 > f)\n          for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n            var p = 0,\n              u;\n            for (u = 0; u < g; ++u)\n              u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n          }\n        else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n      };\n    }\n    function Md(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++];\n        d[e++] = (f >> 16) & 255;\n        d[e++] = (f >> 8) & 255;\n        d[e++] = (f >> 0) & 255;\n      }\n    }\n    function Nd(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++];\n        d[e++] = (f >> 16) & 255;\n        d[e++] = (f >> 8) & 255;\n        d[e++] = (f >> 0) & 255;\n        d[e++] = (f >> 24) & 255;\n      }\n    }\n    function Od(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++],\n          g = ((f >> 16) & 240) | ((f >> 12) & 15),\n          f = ((f >> 0) & 240) | ((f >> 28) & 15);\n        d[e++] = g;\n        d[e++] = f;\n      }\n    }\n    function Pd(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++],\n          g = ((f >> 16) & 248) | ((f >> 13) & 7),\n          f = ((f >> 5) & 224) | ((f >> 3) & 31);\n        d[e++] = g;\n        d[e++] = f;\n      }\n    }\n    function Qd(a, b, c, d, e) {\n      for (c = b + c; b < c; ) {\n        var f = a[b++];\n        d[e++] = (f >> 0) & 255;\n        d[e++] = (f >> 8) & 255;\n        d[e++] = (f >> 16) & 255;\n      }\n    }\n    function fb(a, b, c, d, e, f) {\n      if (0 == f)\n        for (c = b + c; b < c; )\n          (f = a[b++]),\n            ra(\n              d,\n              ((f[0] >> 24) |\n                ((f[1] >> 8) & 65280) |\n                ((f[2] << 8) & 16711680) |\n                (f[3] << 24)) >>>\n                0\n            ),\n            (e += 32);\n      else I(d, e, a, b, c);\n    }\n    function gb(a, b) {\n      self[b][0] = self[a + \"0\"];\n      self[b][1] = self[a + \"1\"];\n      self[b][2] = self[a + \"2\"];\n      self[b][3] = self[a + \"3\"];\n      self[b][4] = self[a + \"4\"];\n      self[b][5] = self[a + \"5\"];\n      self[b][6] = self[a + \"6\"];\n      self[b][7] = self[a + \"7\"];\n      self[b][8] = self[a + \"8\"];\n      self[b][9] = self[a + \"9\"];\n      self[b][10] = self[a + \"10\"];\n      self[b][11] = self[a + \"11\"];\n      self[b][12] = self[a + \"12\"];\n      self[b][13] = self[a + \"13\"];\n      self[b][14] = self[a + \"0\"];\n      self[b][15] = self[a + \"0\"];\n    }\n    function hb(a) {\n      return a == zb || a == Ab || a == Ja || a == Bb;\n    }\n    function Rd() {\n      this.eb = [];\n      this.size = this.A = this.fb = 0;\n    }\n    function Sd() {\n      this.y = [];\n      this.f = [];\n      this.ea = [];\n      this.F = [];\n      this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n    }\n    function Cb() {\n      this.Rd = this.height = this.width = this.S = 0;\n      this.f = {};\n      this.f.RGBA = new Rd();\n      this.f.kb = new Sd();\n      this.sd = null;\n    }\n    function Td() {\n      this.width = [0];\n      this.height = [0];\n      this.Pd = [0];\n      this.Qd = [0];\n      this.format = [0];\n    }\n    function Ud() {\n      this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n    }\n    function Vd(a) {\n      alert(\"todo:WebPSamplerProcessPlane\");\n      return a.T;\n    }\n    function Wd(a, b) {\n      var c = a.T,\n        d = b.ba.f.RGBA,\n        e = d.eb,\n        f = d.fb + a.ka * d.A,\n        g = P[b.ba.S],\n        h = a.y,\n        k = a.O,\n        l = a.f,\n        m = a.N,\n        n = a.ea,\n        r = a.W,\n        q = b.cc,\n        t = b.dc,\n        v = b.Mc,\n        p = b.Nc,\n        u = a.ka,\n        w = a.ka + a.T,\n        y = a.U,\n        A = (y + 1) >> 1;\n      0 == u\n        ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n        : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n          ++c);\n      for (; u + 2 < w; u += 2)\n        (q = l),\n          (t = m),\n          (v = n),\n          (p = r),\n          (m += a.Rc),\n          (r += a.Rc),\n          (f += 2 * d.A),\n          (k += 2 * a.fa),\n          g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n      k += a.fa;\n      a.j + w < a.o\n        ? (I(b.ec, b.fc, h, k, y),\n          I(b.cc, b.dc, l, m, A),\n          I(b.Mc, b.Nc, n, r, A),\n          c--)\n        : w & 1 ||\n          g(\n            h,\n            k,\n            null,\n            null,\n            l,\n            m,\n            n,\n            r,\n            l,\n            m,\n            n,\n            r,\n            e,\n            f + d.A,\n            null,\n            null,\n            y\n          );\n      return c;\n    }\n    function Xd(a, b, c) {\n      var d = a.F,\n        e = [a.J];\n      if (null != d) {\n        var f = a.U,\n          g = b.ba.S,\n          h = g == ya || g == Ja;\n        b = b.ba.f.RGBA;\n        var k = [0],\n          l = a.ka;\n        k[0] = a.T;\n        a.Kb &&\n          (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n          a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n        var m = b.eb,\n          l = b.fb + l * b.A;\n        a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n        x(c == k);\n        a && hb(g) && za(m, l, h, f, k, b.A);\n      }\n      return 0;\n    }\n    function gc(a) {\n      var b = a.ma,\n        c = b.ba.S,\n        d = 11 > c,\n        e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n      b.memory = null;\n      b.Ib = null;\n      b.Jb = null;\n      b.Nd = null;\n      if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n      e && hb(c) && ic();\n      if (a.da) alert(\"todo:use_scaling\");\n      else {\n        if (d) {\n          if (((b.Ib = Vd), a.Kb)) {\n            c = (a.U + 1) >> 1;\n            b.memory = V(a.U + 2 * c);\n            if (null == b.memory) return 0;\n            b.ec = b.memory;\n            b.fc = 0;\n            b.cc = b.ec;\n            b.dc = b.fc + a.U;\n            b.Mc = b.cc;\n            b.Nc = b.dc + c;\n            b.Ib = Wd;\n            ic();\n          }\n        } else alert(\"todo:EmitYUV\");\n        e && ((b.Jb = Xd), d && Aa());\n      }\n      if (d && !jc) {\n        for (a = 0; 256 > a; ++a)\n          (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n            (Zd[a] = -22014 * (a - 128) + Ba),\n            ($d[a] = -45773 * (a - 128)),\n            (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n        for (a = ta; a < Eb; ++a)\n          (b = (76283 * (a - 16) + Ba) >> Wa),\n            (be[a - ta] = ga(b, 255)),\n            (ce[a - ta] = ga((b + 8) >> 4, 15));\n        jc = 1;\n      }\n      return 1;\n    }\n    function kc(a) {\n      var b = a.ma,\n        c = a.U,\n        d = a.T;\n      x(!(a.ka & 1));\n      if (0 >= c || 0 >= d) return 0;\n      c = b.Ib(a, b);\n      null != b.Jb && b.Jb(a, b, c);\n      b.Dc += c;\n      return 1;\n    }\n    function lc(a) {\n      a.ma.memory = null;\n    }\n    function mc(a, b, c, d) {\n      if (47 != D(a, 8)) return 0;\n      b[0] = D(a, 14) + 1;\n      c[0] = D(a, 14) + 1;\n      d[0] = D(a, 1);\n      return 0 != D(a, 3) ? 0 : !a.h;\n    }\n    function ib(a, b) {\n      if (4 > a) return a + 1;\n      var c = (a - 2) >> 1;\n      return ((2 + (a & 1)) << c) + D(b, c) + 1;\n    }\n    function nc(a, b) {\n      if (120 < b) return b - 120;\n      var c = de[b - 1],\n        c = (c >> 4) * a + (8 - (c & 15));\n      return 1 <= c ? c : 1;\n    }\n    function ua(a, b, c) {\n      var d = pb(c);\n      b += d & 255;\n      var e = a[b].g - 8;\n      0 < e &&\n        (qb(c, c.u + 8),\n        (d = pb(c)),\n        (b += a[b].value),\n        (b += d & ((1 << e) - 1)));\n      qb(c, c.u + a[b].g);\n      return a[b].value;\n    }\n    function ub(a, b, c) {\n      c.g += a.g;\n      c.value += (a.value << b) >>> 0;\n      x(8 >= c.g);\n      return a.g;\n    }\n    function ha(a, b, c) {\n      var d = a.xc;\n      b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n      x(b < a.Wb);\n      return a.Ya[b];\n    }\n    function oc(a, b, c, d) {\n      var e = a.ab,\n        f = a.c * b,\n        g = a.C;\n      b = g + b;\n      var h = c,\n        k = d;\n      d = a.Ta;\n      for (c = a.Ua; 0 < e--; ) {\n        var l = a.gc[e],\n          m = g,\n          n = b,\n          r = h,\n          q = k,\n          k = d,\n          h = c,\n          t = l.Ea;\n        x(m < n);\n        x(n <= l.nc);\n        switch (l.hc) {\n          case 2:\n            pc(r, q, (n - m) * t, k, h);\n            break;\n          case 0:\n            var v = l,\n              p = m,\n              u = n,\n              w = k,\n              y = h,\n              A = v.Ea;\n            0 == p &&\n              (ee(r, q, null, null, 1, w, y),\n              cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n              (q += A),\n              (y += A),\n              ++p);\n            for (\n              var E = 1 << v.b,\n                B = E - 1,\n                C = xa(A, v.b),\n                N = v.K,\n                v = v.w + (p >> v.b) * C;\n              p < u;\n\n            ) {\n              var z = N,\n                Q = v,\n                S = 1;\n              for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n                var K = qc[(z[Q++] >> 8) & 15],\n                  D = (S & ~B) + E;\n                D > A && (D = A);\n                K(r, q + +S, w, y + S - A, D - S, w, y + S);\n                S = D;\n              }\n              q += A;\n              y += A;\n              ++p;\n              p & B || (v += C);\n            }\n            n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n            break;\n          case 1:\n            t = r;\n            u = q;\n            r = l.Ea;\n            q = 1 << l.b;\n            w = q - 1;\n            y = r & ~w;\n            A = r - y;\n            p = xa(r, l.b);\n            E = l.K;\n            for (l = l.w + (m >> l.b) * p; m < n; ) {\n              B = E;\n              C = l;\n              N = new Jd();\n              v = u + y;\n              for (z = u + r; u < v; )\n                dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n              u < z &&\n                (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n              ++m;\n              m & w || (l += p);\n            }\n            break;\n          case 3:\n            if (r == k && q == h && 0 < l.b) {\n              y = (n - m) * xa(l.Ea, l.b);\n              t = h + (n - m) * t - y;\n              u = k;\n              r = t;\n              q = k;\n              w = h;\n              A = y;\n              p = [];\n              for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n              for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n              rc(l, m, n, k, t, k, h);\n            } else rc(l, m, n, r, q, k, h);\n        }\n        h = d;\n        k = c;\n      }\n      k != c && I(d, c, h, k, f);\n    }\n    function ge(a, b) {\n      var c = a.V,\n        d = a.Ba + a.c * a.C,\n        e = b - a.C;\n      x(b <= a.l.o);\n      x(16 >= e);\n      if (0 < e) {\n        var f = a.l,\n          g = a.Ta,\n          h = a.Ua,\n          k = f.width;\n        oc(a, e, c, d);\n        h = [h];\n        c = a.C;\n        d = b;\n        e = h;\n        x(c < d);\n        x(f.v < f.va);\n        d > f.o && (d = f.o);\n        if (c < f.j) {\n          var l = f.j - c,\n            c = f.j;\n          e[0] += l * k;\n        }\n        c >= d\n          ? (c = 0)\n          : ((e[0] += 4 * f.v),\n            (f.ka = c - f.j),\n            (f.U = f.va - f.v),\n            (f.T = d - c),\n            (c = 1));\n        if (c) {\n          h = h[0];\n          c = a.ca;\n          if (11 > c.S) {\n            for (\n              var m = c.f.RGBA,\n                d = c.S,\n                e = f.U,\n                f = f.T,\n                l = m.eb,\n                n = m.A,\n                r = f,\n                m = m.fb + a.Ma * m.A;\n              0 < r--;\n\n            ) {\n              var q = g,\n                t = h,\n                v = e,\n                p = l,\n                u = m;\n              switch (d) {\n                case Ca:\n                  sc(q, t, v, p, u);\n                  break;\n                case Ua:\n                  Gb(q, t, v, p, u);\n                  break;\n                case zb:\n                  Gb(q, t, v, p, u);\n                  za(p, u, 0, v, 1, 0);\n                  break;\n                case tc:\n                  uc(q, t, v, p, u);\n                  break;\n                case Va:\n                  fb(q, t, v, p, u, 1);\n                  break;\n                case Ab:\n                  fb(q, t, v, p, u, 1);\n                  za(p, u, 0, v, 1, 0);\n                  break;\n                case ya:\n                  fb(q, t, v, p, u, 0);\n                  break;\n                case Ja:\n                  fb(q, t, v, p, u, 0);\n                  za(p, u, 1, v, 1, 0);\n                  break;\n                case Db:\n                  Hb(q, t, v, p, u);\n                  break;\n                case Bb:\n                  Hb(q, t, v, p, u);\n                  vc(p, u, v, 1, 0);\n                  break;\n                case wc:\n                  xc(q, t, v, p, u);\n                  break;\n                default:\n                  x(0);\n              }\n              h += k;\n              m += n;\n            }\n            a.Ma += f;\n          } else alert(\"todo:EmitRescaledRowsYUVA\");\n          x(a.Ma <= c.height);\n        }\n      }\n      a.C = b;\n      x(a.C <= a.i);\n    }\n    function yc(a) {\n      var b;\n      if (0 < a.ua) return 0;\n      for (b = 0; b < a.Wb; ++b) {\n        var c = a.Ya[b].G,\n          d = a.Ya[b].H;\n        if (\n          0 < c[1][d[1] + 0].g ||\n          0 < c[2][d[2] + 0].g ||\n          0 < c[3][d[3] + 0].g\n        )\n          return 0;\n      }\n      return 1;\n    }\n    function zc(a, b, c, d, e, f) {\n      if (0 != a.Z) {\n        var g = a.qd,\n          h = a.rd;\n        for (x(null != ia[a.Z]); b < c; ++b)\n          ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n        a.qd = g;\n        a.rd = h;\n      }\n    }\n    function Ib(a, b) {\n      var c = a.l.ma,\n        d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n        d = a.C < d ? d : a.C;\n      x(b <= a.l.o);\n      if (b > d) {\n        var e = a.l.width,\n          f = c.ca,\n          g = c.tb + e * d,\n          h = a.V,\n          k = a.Ba + a.c * d,\n          l = a.gc;\n        x(1 == a.ab);\n        x(3 == l[0].hc);\n        he(l[0], d, b, h, k, f, g);\n        zc(c, d, b, f, g, e);\n      }\n      a.C = a.Ma = b;\n    }\n    function Jb(a, b, c, d, e, f, g) {\n      var h = a.$ / d,\n        k = a.$ % d,\n        l = a.m,\n        m = a.s,\n        n = c + a.$,\n        r = n;\n      e = c + d * e;\n      var q = c + d * f,\n        t = 280 + m.ua,\n        v = a.Pb ? h : 16777216,\n        p = 0 < m.ua ? m.Wa : null,\n        u = m.wc,\n        w = n < q ? ha(m, k, h) : null;\n      x(a.C < f);\n      x(q <= e);\n      var y = !1;\n      a: for (;;) {\n        for (; y || n < q; ) {\n          var A = 0;\n          if (h >= v) {\n            var v = a,\n              E = n - c;\n            x(v.Pb);\n            v.wd = v.m;\n            v.xd = E;\n            0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n            v = h + ie;\n          }\n          k & u || (w = ha(m, k, h));\n          x(null != w);\n          w.Qb && ((b[n] = w.qb), (y = !0));\n          if (!y)\n            if ((Sa(l), w.jc)) {\n              var A = l,\n                E = b,\n                B = n,\n                C = w.pd[pb(A) & (xb - 1)];\n              x(w.jc);\n              256 > C.g\n                ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n                : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n              0 == A && (y = !0);\n            } else A = ua(w.G[0], w.H[0], l);\n          if (l.h) break;\n          if (y || 256 > A) {\n            if (!y)\n              if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n              else {\n                Sa(l);\n                y = ua(w.G[1], w.H[1], l);\n                Sa(l);\n                E = ua(w.G[2], w.H[2], l);\n                B = ua(w.G[3], w.H[3], l);\n                if (l.h) break;\n                b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n              }\n            y = !1;\n            ++n;\n            ++k;\n            if (\n              k >= d &&\n              ((k = 0),\n              ++h,\n              null != g && h <= f && !(h % 16) && g(a, h),\n              null != p)\n            )\n              for (; r < n; )\n                (A = b[r++]),\n                  (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n          } else if (280 > A) {\n            A = ib(A - 256, l);\n            E = ua(w.G[4], w.H[4], l);\n            Sa(l);\n            E = ib(E, l);\n            E = nc(d, E);\n            if (l.h) break;\n            if (n - c < E || e - n < A) break a;\n            else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n            n += A;\n            for (k += A; k >= d; )\n              (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n            x(n <= e);\n            k & u && (w = ha(m, k, h));\n            if (null != p)\n              for (; r < n; )\n                (A = b[r++]),\n                  (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n          } else if (A < t) {\n            y = A - 280;\n            for (x(null != p); r < n; )\n              (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n            A = n;\n            E = p;\n            x(!(y >>> E.Xa));\n            b[A] = E.X[y];\n            y = !0;\n          } else break a;\n          y || x(l.h == db(l));\n        }\n        if (a.Pb && l.h && n < e)\n          x(a.m.h),\n            (a.a = 5),\n            (a.m = a.wd),\n            (a.$ = a.xd),\n            0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n        else if (l.h) break a;\n        else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n        return 1;\n      }\n      a.a = 3;\n      return 0;\n    }\n    function Ac(a) {\n      x(null != a);\n      a.vc = null;\n      a.yc = null;\n      a.Ya = null;\n      var b = a.Wa;\n      null != b && (b.X = null);\n      a.vb = null;\n      x(null != a);\n    }\n    function Bc() {\n      var a = new je();\n      if (null == a) return null;\n      a.a = 0;\n      a.xb = Cc;\n      gb(\"Predictor\", \"VP8LPredictors\");\n      gb(\"Predictor\", \"VP8LPredictors_C\");\n      gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n      gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n      pc = Kd;\n      Fb = Ld;\n      sc = Md;\n      Gb = Nd;\n      Hb = Od;\n      xc = Pd;\n      uc = Qd;\n      self.VP8LMapColor32b = ke;\n      self.VP8LMapColor8b = le;\n      return a;\n    }\n    function rb(a, b, c, d, e) {\n      var f = 1,\n        g = [a],\n        h = [b],\n        k = d.m,\n        l = d.s,\n        m = null,\n        n = 0;\n      a: for (;;) {\n        if (c)\n          for (; f && D(k, 1); ) {\n            var r = g,\n              q = h,\n              t = d,\n              v = 1,\n              p = t.m,\n              u = t.gc[t.ab],\n              w = D(p, 2);\n            if (t.Oc & (1 << w)) f = 0;\n            else {\n              t.Oc |= 1 << w;\n              u.hc = w;\n              u.Ea = r[0];\n              u.nc = q[0];\n              u.K = [null];\n              ++t.ab;\n              x(4 >= t.ab);\n              switch (w) {\n                case 0:\n                case 1:\n                  u.b = D(p, 3) + 2;\n                  v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n                  u.K = u.K[0];\n                  break;\n                case 3:\n                  var y = D(p, 8) + 1,\n                    A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n                  r[0] = xa(u.Ea, A);\n                  u.b = A;\n                  var v = rb(y, 1, 0, t, u.K),\n                    E;\n                  if ((E = v)) {\n                    var B,\n                      C = y,\n                      N = u,\n                      z = 1 << (8 >> N.b),\n                      Q = V(z);\n                    if (null == Q) E = 0;\n                    else {\n                      var S = N.K[0],\n                        K = N.w;\n                      Q[0] = N.K[0][0];\n                      for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n                      for (; B < 4 * z; ++B) Q[B] = 0;\n                      N.K[0] = null;\n                      N.K[0] = Q;\n                      E = 1;\n                    }\n                  }\n                  v = E;\n                  break;\n                case 2:\n                  break;\n                default:\n                  x(0);\n              }\n              f = v;\n            }\n          }\n        g = g[0];\n        h = h[0];\n        if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n          d.a = 3;\n          break a;\n        }\n        var H;\n        if ((H = f))\n          b: {\n            var F = d,\n              G = g,\n              L = h,\n              J = n,\n              T = c,\n              Da,\n              ba,\n              X = F.m,\n              R = F.s,\n              P = [null],\n              U,\n              W = 1,\n              aa = 0,\n              na = me[J];\n            c: for (;;) {\n              if (T && D(X, 1)) {\n                var ca = D(X, 3) + 2,\n                  ga = xa(G, ca),\n                  ka = xa(L, ca),\n                  qa = ga * ka;\n                if (!rb(ga, ka, 0, F, P)) break c;\n                P = P[0];\n                R.xc = ca;\n                for (Da = 0; Da < qa; ++Da) {\n                  var ia = (P[Da] >> 8) & 65535;\n                  P[Da] = ia;\n                  ia >= W && (W = ia + 1);\n                }\n              }\n              if (X.h) break c;\n              for (ba = 0; 5 > ba; ++ba) {\n                var Y = Dc[ba];\n                !ba && 0 < J && (Y += 1 << J);\n                aa < Y && (aa = Y);\n              }\n              var ma = wa(W * na, O);\n              var ua = W,\n                va = wa(ua, Ub);\n              if (null == va) var la = null;\n              else x(65536 >= ua), (la = va);\n              var ha = V(aa);\n              if (null == la || null == ha || null == ma) {\n                F.a = 1;\n                break c;\n              }\n              var pa = ma;\n              for (Da = U = 0; Da < W; ++Da) {\n                var ja = la[Da],\n                  da = ja.G,\n                  ea = ja.H,\n                  Fa = 0,\n                  ra = 1,\n                  Ha = 0;\n                for (ba = 0; 5 > ba; ++ba) {\n                  Y = Dc[ba];\n                  da[ba] = pa;\n                  ea[ba] = U;\n                  !ba && 0 < J && (Y += 1 << J);\n                  d: {\n                    var sa,\n                      za = Y,\n                      ta = F,\n                      oa = ha,\n                      db = pa,\n                      eb = U,\n                      Ia = 0,\n                      Ka = ta.m,\n                      fb = D(Ka, 1);\n                    M(oa, 0, 0, za);\n                    if (fb) {\n                      var gb = D(Ka, 1) + 1,\n                        hb = D(Ka, 1),\n                        Ja = D(Ka, 0 == hb ? 1 : 8);\n                      oa[Ja] = 1;\n                      2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n                      var ya = 1;\n                    } else {\n                      var Ua = V(19),\n                        Va = D(Ka, 4) + 4;\n                      if (19 < Va) {\n                        ta.a = 3;\n                        var Aa = 0;\n                        break d;\n                      }\n                      for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n                      var Ba = void 0,\n                        sb = void 0,\n                        Wa = ta,\n                        ib = Ua,\n                        Ca = za,\n                        Xa = oa,\n                        Oa = 0,\n                        La = Wa.m,\n                        Ya = 8,\n                        Za = wa(128, O);\n                      e: for (;;) {\n                        if (!Z(Za, 0, 7, ib, 19)) break e;\n                        if (D(La, 1)) {\n                          var kb = 2 + 2 * D(La, 3),\n                            Ba = 2 + D(La, kb);\n                          if (Ba > Ca) break e;\n                        } else Ba = Ca;\n                        for (sb = 0; sb < Ca && Ba--; ) {\n                          Sa(La);\n                          var $a = Za[0 + (pb(La) & 127)];\n                          qb(La, La.u + $a.g);\n                          var jb = $a.value;\n                          if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n                          else {\n                            var lb = 16 == jb,\n                              ab = jb - 16,\n                              mb = oe[ab],\n                              bb = D(La, pe[ab]) + mb;\n                            if (sb + bb > Ca) break e;\n                            else\n                              for (var nb = lb ? Ya : 0; 0 < bb--; )\n                                Xa[sb++] = nb;\n                          }\n                        }\n                        Oa = 1;\n                        break e;\n                      }\n                      Oa || (Wa.a = 3);\n                      ya = Oa;\n                    }\n                    (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n                    ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n                  }\n                  if (0 == Aa) break c;\n                  ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n                  Fa += pa[U].g;\n                  U += Aa;\n                  if (3 >= ba) {\n                    var Pa = ha[0],\n                      tb;\n                    for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n                    Ha += Pa;\n                  }\n                }\n                ja.nd = ra;\n                ja.Qb = 0;\n                ra &&\n                  ((ja.qb =\n                    ((da[3][ea[3] + 0].value << 24) |\n                      (da[1][ea[1] + 0].value << 16) |\n                      da[2][ea[2] + 0].value) >>>\n                    0),\n                  0 == Fa &&\n                    256 > da[0][ea[0] + 0].value &&\n                    ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n                ja.jc = !ja.Qb && 6 > Ha;\n                if (ja.jc) {\n                  var Ga,\n                    Ea = ja;\n                  for (Ga = 0; Ga < xb; ++Ga) {\n                    var Ma = Ga,\n                      Na = Ea.pd[Ma],\n                      vb = Ea.G[0][Ea.H[0] + Ma];\n                    256 <= vb.value\n                      ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n                      : ((Na.g = 0),\n                        (Na.value = 0),\n                        (Ma >>= ub(vb, 8, Na)),\n                        (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n                        (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n                        ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n                  }\n                }\n              }\n              R.vc = P;\n              R.Wb = W;\n              R.Ya = la;\n              R.yc = ma;\n              H = 1;\n              break b;\n            }\n            H = 0;\n          }\n        f = H;\n        if (!f) {\n          d.a = 3;\n          break a;\n        }\n        if (0 < n) {\n          if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n            d.a = 1;\n            f = 0;\n            break a;\n          }\n        } else l.ua = 0;\n        var Qa = d,\n          cb = g,\n          ob = h,\n          Ra = Qa.s,\n          Ta = Ra.xc;\n        Qa.c = cb;\n        Qa.i = ob;\n        Ra.md = xa(cb, Ta);\n        Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n        if (c) {\n          d.xb = re;\n          break a;\n        }\n        m = V(g * h);\n        if (null == m) {\n          d.a = 1;\n          f = 0;\n          break a;\n        }\n        f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n        break a;\n      }\n      f\n        ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n        : Ac(l);\n      return f;\n    }\n    function Ec(a, b) {\n      var c = a.c * a.i,\n        d = c + b + 16 * b;\n      x(a.c <= b);\n      a.V = V(d);\n      if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n      a.Ta = a.V;\n      a.Ua = a.Ba + c + b;\n      return 1;\n    }\n    function se(a, b) {\n      var c = a.C,\n        d = b - c,\n        e = a.V,\n        f = a.Ba + a.c * c;\n      for (x(b <= a.l.o); 0 < d; ) {\n        var g = 16 < d ? 16 : d,\n          h = a.l.ma,\n          k = a.l.width,\n          l = k * g,\n          m = h.ca,\n          n = h.tb + k * c,\n          r = a.Ta,\n          q = a.Ua;\n        oc(a, g, e, f);\n        Fc(r, q, m, n, l);\n        zc(h, c, c + g, m, n, k);\n        d -= g;\n        e += g * a.c;\n        c += g;\n      }\n      x(c == b);\n      a.C = a.Ma = b;\n    }\n    function te(a, b) {\n      var c = [0],\n        d = [0],\n        e = [0];\n      a: for (;;) {\n        if (null == a) return 0;\n        if (null == b) return (a.a = 2), 0;\n        a.l = b;\n        a.a = 0;\n        cb(a.m, b.data, b.w, b.ha);\n        if (!mc(a.m, c, d, e)) {\n          a.a = 3;\n          break a;\n        }\n        a.xb = Cc;\n        b.width = c[0];\n        b.height = d[0];\n        if (!rb(c[0], d[0], 1, a, null)) break a;\n        return 1;\n      }\n      x(0 != a.a);\n      return 0;\n    }\n    function ue() {\n      this.ub = this.yd = this.td = this.Rb = 0;\n    }\n    function ve() {\n      this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n    }\n    function we() {\n      this.Fb = this.Bb = this.Cb = 0;\n      this.Zb = V(4);\n      this.Lb = V(4);\n    }\n    function Gc() {\n      this.Yb = wb();\n    }\n    function xe() {\n      this.jb = V(3);\n      this.Wc = Ed([4, 8], Gc);\n      this.Xc = Ed([4, 17], Gc);\n    }\n    function ye() {\n      this.Pc = this.wb = this.Tb = this.zd = 0;\n      this.vd = new V(4);\n      this.od = new V(4);\n    }\n    function Xa() {\n      this.ld = this.La = this.dd = this.tc = 0;\n    }\n    function Hc() {\n      this.Na = this.la = 0;\n    }\n    function ze() {\n      this.Sc = [0, 0];\n      this.Eb = [0, 0];\n      this.Qc = [0, 0];\n      this.ia = this.lc = 0;\n    }\n    function Kb() {\n      this.ad = V(384);\n      this.Za = 0;\n      this.Ob = V(16);\n      this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n    }\n    function Ae() {\n      this.uc = this.M = this.Nb = 0;\n      this.wa = Array(new Xa());\n      this.Y = 0;\n      this.ya = Array(new Kb());\n      this.aa = 0;\n      this.l = new Oa();\n    }\n    function Ic() {\n      this.y = V(16);\n      this.f = V(8);\n      this.ea = V(8);\n    }\n    function Be() {\n      this.cb = this.a = 0;\n      this.sc = \"\";\n      this.m = new Wb();\n      this.Od = new ue();\n      this.Kc = new ve();\n      this.ed = new ye();\n      this.Qa = new we();\n      this.Ic = this.$c = this.Aa = 0;\n      this.D = new Ae();\n      this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n      this.Jc = wa(8, Wb);\n      this.ia = 0;\n      new F();\n      this.pb = wa(4, ze);\n      this.Pa = new xe();\n      this.Bd = this.kc = 0;\n      this.Ac = [];\n      this.Bc = 0;\n      this.zc = [0, 0, 0, 0];\n      this.Gd = Array(new Ic());\n      this.Hd = 0;\n      this.rb = Array(new Hc());\n      this.sb = 0;\n      this.wa = Array(new Xa());\n      this.Y = 0;\n      this.oc = [];\n      this.pc = 0;\n      this.sa = [];\n      this.ta = 0;\n      this.qa = [];\n      this.ra = 0;\n      this.Ha = [];\n      this.B = this.R = this.Ia = 0;\n      this.Ec = [];\n      this.M = this.ja = this.Vb = this.Fc = 0;\n      this.ya = Array(new Kb());\n      this.L = this.aa = 0;\n      this.gd = Ed([4, 2], Xa);\n      this.ga = null;\n      this.Fa = [];\n      this.Cc = this.qc = this.P = 0;\n      this.Gb = [];\n      this.Uc = 0;\n      this.mb = [];\n      this.nb = 0;\n      this.rc = [];\n      this.Ga = this.Vc = 0;\n    }\n    function ga(a, b) {\n      return 0 > a ? 0 : a > b ? b : a;\n    }\n    function Oa() {\n      this.T = this.U = this.ka = this.height = this.width = 0;\n      this.y = [];\n      this.f = [];\n      this.ea = [];\n      this.Rc = this.fa = this.W = this.N = this.O = 0;\n      this.ma = \"void\";\n      this.put = \"VP8IoPutHook\";\n      this.ac = \"VP8IoSetupHook\";\n      this.bc = \"VP8IoTeardownHook\";\n      this.ha = this.Kb = 0;\n      this.data = [];\n      this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n      this.F = [];\n      this.J = 0;\n    }\n    function Ce() {\n      var a = new Be();\n      null != a &&\n        ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n      return a;\n    }\n    function T(a, b, c) {\n      0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n      return 0;\n    }\n    function Jc(a, b, c) {\n      return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n    }\n    function Kc(a, b) {\n      if (null == a) return 0;\n      a.a = 0;\n      a.sc = \"OK\";\n      if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n      var c = b.data;\n      var d = b.w;\n      var e = b.ha;\n      if (4 > e) return T(a, 7, \"Truncated header.\");\n      var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n      var g = a.Od;\n      g.Rb = !(f & 1);\n      g.td = (f >> 1) & 7;\n      g.yd = (f >> 4) & 1;\n      g.ub = f >> 5;\n      if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n      if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n      d += 3;\n      e -= 3;\n      var h = a.Kc;\n      if (g.Rb) {\n        if (7 > e) return T(a, 7, \"cannot parse picture header\");\n        if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n        h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n        h.Td = c[d + 4] >> 6;\n        h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n        h.Ud = c[d + 6] >> 6;\n        d += 7;\n        e -= 7;\n        a.za = (h.c + 15) >> 4;\n        a.Ub = (h.i + 15) >> 4;\n        b.width = h.c;\n        b.height = h.i;\n        b.Da = 0;\n        b.j = 0;\n        b.v = 0;\n        b.va = b.width;\n        b.o = b.height;\n        b.da = 0;\n        b.ib = b.width;\n        b.hb = b.height;\n        b.U = b.width;\n        b.T = b.height;\n        f = a.Pa;\n        M(f.jb, 0, 255, f.jb.length);\n        f = a.Qa;\n        x(null != f);\n        f.Cb = 0;\n        f.Bb = 0;\n        f.Fb = 1;\n        M(f.Zb, 0, 0, f.Zb.length);\n        M(f.Lb, 0, 0, f.Lb);\n      }\n      if (g.ub > e) return T(a, 7, \"bad partition length\");\n      f = a.m;\n      ma(f, c, d, g.ub);\n      d += g.ub;\n      e -= g.ub;\n      g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n      h = a.Qa;\n      var k = a.Pa,\n        l;\n      x(null != f);\n      x(null != h);\n      h.Cb = G(f);\n      if (h.Cb) {\n        h.Bb = G(f);\n        if (G(f)) {\n          h.Fb = G(f);\n          for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n          for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n        }\n        if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n      } else h.Bb = 0;\n      if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n      h = a.ed;\n      h.zd = G(f);\n      h.Tb = na(f, 6);\n      h.wb = na(f, 3);\n      h.Pc = G(f);\n      if (h.Pc && G(f)) {\n        for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n        for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n      }\n      a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n      if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n      l = d;\n      var m = e;\n      e = l;\n      d = l + m;\n      h = m;\n      a.Xb = (1 << na(a.m, 2)) - 1;\n      k = a.Xb;\n      if (m < 3 * k) c = 7;\n      else {\n        l += 3 * k;\n        h -= 3 * k;\n        for (m = 0; m < k; ++m) {\n          var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n          n > h && (n = h);\n          ma(a.Jc[+m], c, l, n);\n          l += n;\n          h -= n;\n          e += 3;\n        }\n        ma(a.Jc[+k], c, l, h);\n        c = l < d ? 0 : 5;\n      }\n      if (0 != c) return T(a, c, \"cannot parse partitions\");\n      l = a.m;\n      c = na(l, 7);\n      e = G(l) ? ca(l, 4) : 0;\n      d = G(l) ? ca(l, 4) : 0;\n      h = G(l) ? ca(l, 4) : 0;\n      k = G(l) ? ca(l, 4) : 0;\n      l = G(l) ? ca(l, 4) : 0;\n      m = a.Qa;\n      for (n = 0; 4 > n; ++n) {\n        if (m.Cb) {\n          var r = m.Zb[n];\n          m.Fb || (r += c);\n        } else if (0 < n) {\n          a.pb[n] = a.pb[0];\n          continue;\n        } else r = c;\n        var q = a.pb[n];\n        q.Sc[0] = Lb[ga(r + e, 127)];\n        q.Sc[1] = Mb[ga(r + 0, 127)];\n        q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n        q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n        8 > q.Eb[1] && (q.Eb[1] = 8);\n        q.Qc[0] = Lb[ga(r + k, 117)];\n        q.Qc[1] = Mb[ga(r + l, 127)];\n        q.lc = r + l;\n      }\n      if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n      G(f);\n      g = a.Pa;\n      for (c = 0; 4 > c; ++c) {\n        for (e = 0; 8 > e; ++e)\n          for (d = 0; 3 > d; ++d)\n            for (h = 0; 11 > h; ++h)\n              (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n                (g.Wc[c][e].Yb[d][h] = k);\n        for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n      }\n      a.kc = G(f);\n      a.kc && (a.Bd = na(f, 8));\n      return (a.cb = 1);\n    }\n    function De(a, b, c, d, e, f, g) {\n      var h = b[e].Yb[c];\n      for (c = 0; 16 > e; ++e) {\n        if (!K(a, h[c + 0])) return e;\n        for (; !K(a, h[c + 1]); )\n          if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n        var k = b[e + 1].Yb;\n        if (K(a, h[c + 2])) {\n          var l = a,\n            m = h,\n            n = c;\n          var r = 0;\n          if (K(l, m[n + 3]))\n            if (K(l, m[n + 6])) {\n              h = 0;\n              r = K(l, m[n + 8]);\n              m = K(l, m[n + 9 + r]);\n              n = 2 * r + m;\n              r = 0;\n              for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n              r += 3 + (8 << n);\n            } else\n              K(l, m[n + 7])\n                ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n                : (r = 5 + K(l, 159));\n          else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n          h = k[2];\n        } else (r = 1), (h = k[1]);\n        k = g + Ie[e];\n        l = a;\n        0 > l.b && Qa(l);\n        var m = l.b,\n          n = l.Ca >> 1,\n          q = (n - (l.I >> m)) >> 31;\n        --l.b;\n        l.Ca += q;\n        l.Ca |= 1;\n        l.I -= ((n + 1) & q) << m;\n        f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n      }\n      return 16;\n    }\n    function Lc(a) {\n      var b = a.rb[a.sb - 1];\n      b.la = 0;\n      b.Na = 0;\n      M(a.zc, 0, 0, a.zc.length);\n      a.ja = 0;\n    }\n    function Je(a, b) {\n      for (a.M = 0; a.M < a.Va; ++a.M) {\n        var c = a.Jc[a.M & a.Xb],\n          d = a.m,\n          e = a,\n          f;\n        for (f = 0; f < e.za; ++f) {\n          var g = d;\n          var h = e;\n          var k = h.Ac,\n            l = h.Bc + 4 * f,\n            m = h.zc,\n            n = h.ya[h.aa + f];\n          h.Qa.Bb\n            ? (n.$b = K(g, h.Pa.jb[0])\n                ? 2 + K(g, h.Pa.jb[2])\n                : K(g, h.Pa.jb[1]))\n            : (n.$b = 0);\n          h.kc && (n.Ad = K(g, h.Bd));\n          n.Za = !K(g, 145) + 0;\n          if (n.Za) {\n            var r = n.Ob,\n              q = 0;\n            for (h = 0; 4 > h; ++h) {\n              var t = m[0 + h];\n              var v;\n              for (v = 0; 4 > v; ++v) {\n                t = Ke[k[l + v]][t];\n                for (var p = Mc[K(g, t[0])]; 0 < p; )\n                  p = Mc[2 * p + K(g, t[p])];\n                t = -p;\n                k[l + v] = t;\n              }\n              I(r, q, k, l, 4);\n              q += 4;\n              m[0 + h] = t;\n            }\n          } else\n            (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n              (n.Ob[0] = t),\n              M(k, l, t, 4),\n              M(m, 0, t, 4);\n          n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n        }\n        if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n        for (; a.ja < a.za; ++a.ja) {\n          d = a;\n          e = c;\n          g = d.rb[d.sb - 1];\n          k = d.rb[d.sb + d.ja];\n          f = d.ya[d.aa + d.ja];\n          if ((l = d.kc ? f.Ad : 0))\n            (g.la = k.la = 0),\n              f.Za || (g.Na = k.Na = 0),\n              (f.Hc = 0),\n              (f.Gc = 0),\n              (f.ia = 0);\n          else {\n            var u,\n              w,\n              g = k,\n              k = e,\n              l = d.Pa.Xc,\n              m = d.ya[d.aa + d.ja],\n              n = d.pb[m.$b];\n            h = m.ad;\n            r = 0;\n            q = d.rb[d.sb - 1];\n            t = v = 0;\n            M(h, r, 0, 384);\n            if (m.Za) {\n              var y = 0;\n              var A = l[3];\n            } else {\n              p = V(16);\n              var E = g.Na + q.Na;\n              E = oa(k, l[1], E, n.Eb, 0, p, 0);\n              g.Na = q.Na = (0 < E) + 0;\n              if (1 < E) Nc(p, 0, h, r);\n              else {\n                var B = (p[0] + 3) >> 3;\n                for (p = 0; 256 > p; p += 16) h[r + p] = B;\n              }\n              y = 1;\n              A = l[0];\n            }\n            var C = g.la & 15;\n            var N = q.la & 15;\n            for (p = 0; 4 > p; ++p) {\n              var z = N & 1;\n              for (B = w = 0; 4 > B; ++B)\n                (E = z + (C & 1)),\n                  (E = oa(k, A, E, n.Sc, y, h, r)),\n                  (z = E > y),\n                  (C = (C >> 1) | (z << 7)),\n                  (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n                  (r += 16);\n              C >>= 4;\n              N = (N >> 1) | (z << 7);\n              v = ((v << 8) | w) >>> 0;\n            }\n            A = C;\n            y = N >> 4;\n            for (u = 0; 4 > u; u += 2) {\n              w = 0;\n              C = g.la >> (4 + u);\n              N = q.la >> (4 + u);\n              for (p = 0; 2 > p; ++p) {\n                z = N & 1;\n                for (B = 0; 2 > B; ++B)\n                  (E = z + (C & 1)),\n                    (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n                    (z = 0 < E),\n                    (C = (C >> 1) | (z << 3)),\n                    (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n                    (r += 16);\n                C >>= 2;\n                N = (N >> 1) | (z << 5);\n              }\n              t |= w << (4 * u);\n              A |= (C << 4) << u;\n              y |= (N & 240) << u;\n            }\n            g.la = A;\n            q.la = y;\n            m.Hc = v;\n            m.Gc = t;\n            m.ia = t & 43690 ? 0 : n.ia;\n            l = !(v | t);\n          }\n          0 < d.L &&\n            ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n            (d.wa[d.Y + d.ja].La |= !l));\n          if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n        }\n        Lc(a);\n        c = a;\n        d = b;\n        e = 1;\n        f = c.D;\n        g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n        if (0 == c.Aa)\n          a: {\n            (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n            w = c.D;\n            f = w.Nb;\n            t = Ya[c.L];\n            g = t * c.R;\n            k = (t / 2) * c.B;\n            p = 16 * f * c.R;\n            B = 8 * f * c.B;\n            l = c.sa;\n            m = c.ta - g + p;\n            n = c.qa;\n            h = c.ra - k + B;\n            r = c.Ha;\n            q = c.Ia - k + B;\n            C = w.M;\n            N = 0 == C;\n            v = C >= c.Va - 1;\n            2 == c.Aa && Oc(c, w);\n            if (w.uc)\n              for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n                var Q = E;\n                y = w;\n                A = z;\n                var S = Q.D,\n                  D = S.Nb;\n                u = Q.R;\n                var S = S.wa[S.Y + y],\n                  F = Q.sa,\n                  H = Q.ta + 16 * D * u + 16 * y,\n                  J = S.dd,\n                  G = S.tc;\n                if (0 != G)\n                  if ((x(3 <= G), 1 == Q.L))\n                    0 < y && Pc(F, H, u, G + 4),\n                      S.La && Qc(F, H, u, G),\n                      0 < A && Rc(F, H, u, G + 4),\n                      S.La && Sc(F, H, u, G);\n                  else {\n                    var L = Q.B,\n                      O = Q.qa,\n                      P = Q.ra + 8 * D * L + 8 * y,\n                      R = Q.Ha,\n                      Q = Q.Ia + 8 * D * L + 8 * y,\n                      D = S.ld;\n                    0 < y &&\n                      (Tc(F, H, u, G + 4, J, D),\n                      Uc(O, P, R, Q, L, G + 4, J, D));\n                    S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n                    0 < A &&\n                      (Xc(F, H, u, G + 4, J, D),\n                      Yc(O, P, R, Q, L, G + 4, J, D));\n                    S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n                  }\n              }\n            c.ia && alert(\"todo:DitherRow\");\n            if (null != d.put) {\n              w = 16 * C;\n              C = 16 * (C + 1);\n              N\n                ? ((d.y = c.sa),\n                  (d.O = c.ta + p),\n                  (d.f = c.qa),\n                  (d.N = c.ra + B),\n                  (d.ea = c.Ha),\n                  (d.W = c.Ia + B))\n                : ((w -= t),\n                  (d.y = l),\n                  (d.O = m),\n                  (d.f = n),\n                  (d.N = h),\n                  (d.ea = r),\n                  (d.W = q));\n              v || (C -= t);\n              C > d.o && (C = d.o);\n              d.F = null;\n              d.J = null;\n              if (\n                null != c.Fa &&\n                0 < c.Fa.length &&\n                w < C &&\n                ((d.J = Le(c, d, w, C - w)),\n                (d.F = c.mb),\n                null == d.F && 0 == d.F.length)\n              ) {\n                e = T(c, 3, \"Could not decode alpha data.\");\n                break a;\n              }\n              w < d.j &&\n                ((t = d.j - w),\n                (w = d.j),\n                x(!(t & 1)),\n                (d.O += c.R * t),\n                (d.N += c.B * (t >> 1)),\n                (d.W += c.B * (t >> 1)),\n                null != d.F && (d.J += d.width * t));\n              w < C &&\n                ((d.O += d.v),\n                (d.N += d.v >> 1),\n                (d.W += d.v >> 1),\n                null != d.F && (d.J += d.v),\n                (d.ka = w - d.j),\n                (d.U = d.va - d.v),\n                (d.T = C - w),\n                (e = d.put(d)));\n            }\n            f + 1 != c.Ic ||\n              v ||\n              (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n              I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n              I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n          }\n        if (!e) return T(a, 6, \"Output aborted.\");\n      }\n      return 1;\n    }\n    function Me(a, b) {\n      if (null == a) return 0;\n      if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n      if (!a.cb && !Kc(a, b)) return 0;\n      x(a.cb);\n      if (null == b.ac || b.ac(b)) {\n        b.ob && (a.L = 0);\n        var c = Ya[a.L];\n        2 == a.L\n          ? ((a.yb = 0), (a.zb = 0))\n          : ((a.yb = (b.v - c) >> 4),\n            (a.zb = (b.j - c) >> 4),\n            0 > a.yb && (a.yb = 0),\n            0 > a.zb && (a.zb = 0));\n        a.Va = (b.o + 15 + c) >> 4;\n        a.Hb = (b.va + 15 + c) >> 4;\n        a.Hb > a.za && (a.Hb = a.za);\n        a.Va > a.Ub && (a.Va = a.Ub);\n        if (0 < a.L) {\n          var d = a.ed;\n          for (c = 0; 4 > c; ++c) {\n            var e;\n            if (a.Qa.Cb) {\n              var f = a.Qa.Lb[c];\n              a.Qa.Fb || (f += d.Tb);\n            } else f = d.Tb;\n            for (e = 0; 1 >= e; ++e) {\n              var g = a.gd[c][e],\n                h = f;\n              d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n              h = 0 > h ? 0 : 63 < h ? 63 : h;\n              if (0 < h) {\n                var k = h;\n                0 < d.wb &&\n                  ((k = 4 < d.wb ? k >> 2 : k >> 1),\n                  k > 9 - d.wb && (k = 9 - d.wb));\n                1 > k && (k = 1);\n                g.dd = k;\n                g.tc = 2 * h + k;\n                g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n              } else g.tc = 0;\n              g.La = e;\n            }\n          }\n        }\n        c = 0;\n      } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n      if ((c = 0 == c)) {\n        if (c) {\n          a.$c = 0;\n          0 < a.Aa || (a.Ic = Ne);\n          b: {\n            c = a.Ic;\n            var k = a.za,\n              d = 4 * k,\n              l = 32 * k,\n              m = k + 1,\n              n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n              r = (2 == a.Aa ? 2 : 1) * k;\n            e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n            f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n            g = d + 832 + e + f;\n            if (g != g) c = 0;\n            else {\n              if (g > a.Vb) {\n                a.Vb = 0;\n                a.Ec = V(g);\n                a.Fc = 0;\n                if (null == a.Ec) {\n                  c = T(a, 1, \"no memory during frame initialization.\");\n                  break b;\n                }\n                a.Vb = g;\n              }\n              g = a.Ec;\n              h = a.Fc;\n              a.Ac = g;\n              a.Bc = h;\n              h += d;\n              a.Gd = wa(l, Ic);\n              a.Hd = 0;\n              a.rb = wa(m + 1, Hc);\n              a.sb = 1;\n              a.wa = n ? wa(n, Xa) : null;\n              a.Y = 0;\n              a.D.Nb = 0;\n              a.D.wa = a.wa;\n              a.D.Y = a.Y;\n              0 < a.Aa && (a.D.Y += k);\n              x(!0);\n              a.oc = g;\n              a.pc = h;\n              h += 832;\n              a.ya = wa(r, Kb);\n              a.aa = 0;\n              a.D.ya = a.ya;\n              a.D.aa = a.aa;\n              2 == a.Aa && (a.D.aa += k);\n              a.R = 16 * k;\n              a.B = 8 * k;\n              l = Ya[a.L];\n              k = l * a.R;\n              l = (l / 2) * a.B;\n              a.sa = g;\n              a.ta = h + k;\n              a.qa = a.sa;\n              a.ra = a.ta + 16 * c * a.R + l;\n              a.Ha = a.qa;\n              a.Ia = a.ra + 8 * c * a.B + l;\n              a.$c = 0;\n              h += e;\n              a.mb = f ? g : null;\n              a.nb = f ? h : null;\n              x(h + f <= a.Fc + a.Vb);\n              Lc(a);\n              M(a.Ac, a.Bc, 0, d);\n              c = 1;\n            }\n          }\n          if (c) {\n            b.ka = 0;\n            b.y = a.sa;\n            b.O = a.ta;\n            b.f = a.qa;\n            b.N = a.ra;\n            b.ea = a.Ha;\n            b.Vd = a.Ia;\n            b.fa = a.R;\n            b.Rc = a.B;\n            b.F = null;\n            b.J = 0;\n            if (!ad) {\n              for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n              for (c = -1020; 1020 >= c; ++c)\n                cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n              for (c = -112; 112 >= c; ++c)\n                dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n              for (c = -255; 510 >= c; ++c)\n                ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n              ad = 1;\n            }\n            Nc = Oe;\n            Za = Pe;\n            Nb = Qe;\n            pa = Re;\n            Ob = Se;\n            fd = Te;\n            Xc = Ue;\n            Tc = Ve;\n            Yc = We;\n            Uc = Xe;\n            Zc = Ye;\n            Vc = Ze;\n            $c = $e;\n            Wc = af;\n            Rc = gd;\n            Pc = hd;\n            Sc = bf;\n            Qc = cf;\n            W[0] = df;\n            W[1] = ef;\n            W[2] = ff;\n            W[3] = gf;\n            W[4] = hf;\n            W[5] = jf;\n            W[6] = kf;\n            W[7] = lf;\n            W[8] = mf;\n            W[9] = nf;\n            Y[0] = of;\n            Y[1] = pf;\n            Y[2] = qf;\n            Y[3] = rf;\n            Y[4] = sf;\n            Y[5] = tf;\n            Y[6] = uf;\n            ka[0] = vf;\n            ka[1] = wf;\n            ka[2] = xf;\n            ka[3] = yf;\n            ka[4] = zf;\n            ka[5] = Af;\n            ka[6] = Bf;\n            c = 1;\n          } else c = 0;\n        }\n        c && (c = Je(a, b));\n        null != b.bc && b.bc(b);\n        c &= 1;\n      }\n      if (!c) return 0;\n      a.cb = 0;\n      return c;\n    }\n    function qa(a, b, c, d, e) {\n      e = a[b + c + 32 * d] + (e >> 3);\n      a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n    }\n    function kb(a, b, c, d, e, f) {\n      qa(a, b, 0, c, d + e);\n      qa(a, b, 1, c, d + f);\n      qa(a, b, 2, c, d - f);\n      qa(a, b, 3, c, d - e);\n    }\n    function da(a) {\n      return ((20091 * a) >> 16) + a;\n    }\n    function id(a, b, c, d) {\n      var e = 0,\n        f;\n      var g = V(16);\n      for (f = 0; 4 > f; ++f) {\n        var h = a[b + 0] + a[b + 8];\n        var k = a[b + 0] - a[b + 8];\n        var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n        var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n        g[e + 0] = h + m;\n        g[e + 1] = k + l;\n        g[e + 2] = k - l;\n        g[e + 3] = h - m;\n        e += 4;\n        b++;\n      }\n      for (f = e = 0; 4 > f; ++f)\n        (a = g[e + 0] + 4),\n          (h = a + g[e + 8]),\n          (k = a - g[e + 8]),\n          (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n          (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n          qa(c, d, 0, 0, h + m),\n          qa(c, d, 1, 0, k + l),\n          qa(c, d, 2, 0, k - l),\n          qa(c, d, 3, 0, h - m),\n          e++,\n          (d += 32);\n    }\n    function Te(a, b, c, d) {\n      var e = a[b + 0] + 4,\n        f = (35468 * a[b + 4]) >> 16,\n        g = da(a[b + 4]),\n        h = (35468 * a[b + 1]) >> 16;\n      a = da(a[b + 1]);\n      kb(c, d, 0, e + g, a, h);\n      kb(c, d, 1, e + f, a, h);\n      kb(c, d, 2, e - f, a, h);\n      kb(c, d, 3, e - g, a, h);\n    }\n    function Pe(a, b, c, d, e) {\n      id(a, b, c, d);\n      e && id(a, b + 16, c, d + 4);\n    }\n    function Qe(a, b, c, d) {\n      Za(a, b + 0, c, d, 1);\n      Za(a, b + 32, c, d + 128, 1);\n    }\n    function Re(a, b, c, d) {\n      a = a[b + 0] + 4;\n      var e;\n      for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n    }\n    function Se(a, b, c, d) {\n      a[b + 0] && pa(a, b + 0, c, d);\n      a[b + 16] && pa(a, b + 16, c, d + 4);\n      a[b + 32] && pa(a, b + 32, c, d + 128);\n      a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n    }\n    function Oe(a, b, c, d) {\n      var e = V(16),\n        f;\n      for (f = 0; 4 > f; ++f) {\n        var g = a[b + 0 + f] + a[b + 12 + f];\n        var h = a[b + 4 + f] + a[b + 8 + f];\n        var k = a[b + 4 + f] - a[b + 8 + f];\n        var l = a[b + 0 + f] - a[b + 12 + f];\n        e[0 + f] = g + h;\n        e[8 + f] = g - h;\n        e[4 + f] = l + k;\n        e[12 + f] = l - k;\n      }\n      for (f = 0; 4 > f; ++f)\n        (a = e[0 + 4 * f] + 3),\n          (g = a + e[3 + 4 * f]),\n          (h = e[1 + 4 * f] + e[2 + 4 * f]),\n          (k = e[1 + 4 * f] - e[2 + 4 * f]),\n          (l = a - e[3 + 4 * f]),\n          (c[d + 0] = (g + h) >> 3),\n          (c[d + 16] = (l + k) >> 3),\n          (c[d + 32] = (g - h) >> 3),\n          (c[d + 48] = (l - k) >> 3),\n          (d += 64);\n    }\n    function Pb(a, b, c) {\n      var d = b - 32,\n        e = R,\n        f = 255 - a[d - 1],\n        g;\n      for (g = 0; g < c; ++g) {\n        var h = e,\n          k = f + a[b - 1],\n          l;\n        for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n        b += 32;\n      }\n    }\n    function ef(a, b) {\n      Pb(a, b, 4);\n    }\n    function wf(a, b) {\n      Pb(a, b, 8);\n    }\n    function pf(a, b) {\n      Pb(a, b, 16);\n    }\n    function qf(a, b) {\n      var c;\n      for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n    }\n    function rf(a, b) {\n      var c;\n      for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n    }\n    function $a(a, b, c) {\n      var d;\n      for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n    }\n    function of(a, b) {\n      var c = 16,\n        d;\n      for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n      $a(c >> 5, a, b);\n    }\n    function sf(a, b) {\n      var c = 8,\n        d;\n      for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n      $a(c >> 4, a, b);\n    }\n    function tf(a, b) {\n      var c = 8,\n        d;\n      for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n      $a(c >> 4, a, b);\n    }\n    function uf(a, b) {\n      $a(128, a, b);\n    }\n    function z(a, b, c) {\n      return (a + 2 * b + c + 2) >> 2;\n    }\n    function ff(a, b) {\n      var c = b - 32,\n        c = new Uint8Array([\n          z(a[c - 1], a[c + 0], a[c + 1]),\n          z(a[c + 0], a[c + 1], a[c + 2]),\n          z(a[c + 1], a[c + 2], a[c + 3]),\n          z(a[c + 2], a[c + 3], a[c + 4])\n        ]),\n        d;\n      for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n    }\n    function gf(a, b) {\n      var c = a[b - 1],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 + 96];\n      ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n      ra(a, b + 32, 16843009 * z(c, d, e));\n      ra(a, b + 64, 16843009 * z(d, e, f));\n      ra(a, b + 96, 16843009 * z(e, f, f));\n    }\n    function df(a, b) {\n      var c = 4,\n        d;\n      for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n      c >>= 3;\n      for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n    }\n    function hf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 - 32],\n        g = a[b + 0 - 32],\n        h = a[b + 1 - 32],\n        k = a[b + 2 - 32],\n        l = a[b + 3 - 32];\n      a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n      a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n      a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n      a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n      a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n      a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n      a[b + 3 + 0] = z(l, k, h);\n    }\n    function kf(a, b) {\n      var c = a[b + 1 - 32],\n        d = a[b + 2 - 32],\n        e = a[b + 3 - 32],\n        f = a[b + 4 - 32],\n        g = a[b + 5 - 32],\n        h = a[b + 6 - 32],\n        k = a[b + 7 - 32];\n      a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n      a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n      a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n      a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n      a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n      a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n      a[b + 3 + 96] = z(h, k, k);\n    }\n    function jf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 - 32],\n        g = a[b + 0 - 32],\n        h = a[b + 1 - 32],\n        k = a[b + 2 - 32],\n        l = a[b + 3 - 32];\n      a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n      a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n      a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n      a[b + 3 + 0] = (k + l + 1) >> 1;\n      a[b + 0 + 96] = z(e, d, c);\n      a[b + 0 + 64] = z(d, c, f);\n      a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n      a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n      a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n      a[b + 3 + 32] = z(h, k, l);\n    }\n    function lf(a, b) {\n      var c = a[b + 0 - 32],\n        d = a[b + 1 - 32],\n        e = a[b + 2 - 32],\n        f = a[b + 3 - 32],\n        g = a[b + 4 - 32],\n        h = a[b + 5 - 32],\n        k = a[b + 6 - 32],\n        l = a[b + 7 - 32];\n      a[b + 0 + 0] = (c + d + 1) >> 1;\n      a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n      a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n      a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n      a[b + 0 + 32] = z(c, d, e);\n      a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n      a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n      a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n      a[b + 3 + 64] = z(g, h, k);\n      a[b + 3 + 96] = z(h, k, l);\n    }\n    function nf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 + 96];\n      a[b + 0 + 0] = (c + d + 1) >> 1;\n      a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n      a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n      a[b + 1 + 0] = z(c, d, e);\n      a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n      a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n      a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n        b + 2 + 96\n      ] = a[b + 3 + 96] = f;\n    }\n    function mf(a, b) {\n      var c = a[b - 1 + 0],\n        d = a[b - 1 + 32],\n        e = a[b - 1 + 64],\n        f = a[b - 1 + 96],\n        g = a[b - 1 - 32],\n        h = a[b + 0 - 32],\n        k = a[b + 1 - 32],\n        l = a[b + 2 - 32];\n      a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n      a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n      a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n      a[b + 0 + 96] = (f + e + 1) >> 1;\n      a[b + 3 + 0] = z(h, k, l);\n      a[b + 2 + 0] = z(g, h, k);\n      a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n      a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n      a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n      a[b + 1 + 96] = z(f, e, d);\n    }\n    function xf(a, b) {\n      var c;\n      for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n    }\n    function yf(a, b) {\n      var c;\n      for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n    }\n    function lb(a, b, c) {\n      var d;\n      for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n    }\n    function vf(a, b) {\n      var c = 8,\n        d;\n      for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n      lb(c >> 4, a, b);\n    }\n    function Af(a, b) {\n      var c = 4,\n        d;\n      for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n      lb(c >> 3, a, b);\n    }\n    function zf(a, b) {\n      var c = 4,\n        d;\n      for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n      lb(c >> 3, a, b);\n    }\n    function Bf(a, b) {\n      lb(128, a, b);\n    }\n    function ab(a, b, c) {\n      var d = a[b - c],\n        e = a[b + 0],\n        f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n        g = mb[112 + ((f + 4) >> 3)];\n      a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n      a[b + 0] = R[255 + e - g];\n    }\n    function jd(a, b, c, d) {\n      var e = a[b + 0],\n        f = a[b + c];\n      return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n    }\n    function kd(a, b, c, d) {\n      return (\n        4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n      );\n    }\n    function ld(a, b, c, d, e) {\n      var f = a[b - 3 * c],\n        g = a[b - 2 * c],\n        h = a[b - c],\n        k = a[b + 0],\n        l = a[b + c],\n        m = a[b + 2 * c],\n        n = a[b + 3 * c];\n      return 4 * U[255 + h - k] + U[255 + g - l] > d\n        ? 0\n        : U[255 + a[b - 4 * c] - f] <= e &&\n            U[255 + f - g] <= e &&\n            U[255 + g - h] <= e &&\n            U[255 + n - m] <= e &&\n            U[255 + m - l] <= e &&\n            U[255 + l - k] <= e;\n    }\n    function gd(a, b, c, d) {\n      var e = 2 * d + 1;\n      for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n    }\n    function hd(a, b, c, d) {\n      var e = 2 * d + 1;\n      for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n    }\n    function bf(a, b, c, d) {\n      var e;\n      for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n    }\n    function cf(a, b, c, d) {\n      var e;\n      for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n    }\n    function ea(a, b, c, d, e, f, g, h) {\n      for (f = 2 * f + 1; 0 < e--; ) {\n        if (ld(a, b, c, f, g))\n          if (jd(a, b, c, h)) ab(a, b, c);\n          else {\n            var k = a,\n              l = b,\n              m = c,\n              n = k[l - 2 * m],\n              r = k[l - m],\n              q = k[l + 0],\n              t = k[l + m],\n              v = k[l + 2 * m],\n              p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n              u = (27 * p + 63) >> 7,\n              w = (18 * p + 63) >> 7,\n              p = (9 * p + 63) >> 7;\n            k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n            k[l - 2 * m] = R[255 + n + w];\n            k[l - m] = R[255 + r + u];\n            k[l + 0] = R[255 + q - u];\n            k[l + m] = R[255 + t - w];\n            k[l + 2 * m] = R[255 + v - p];\n          }\n        b += d;\n      }\n    }\n    function Fa(a, b, c, d, e, f, g, h) {\n      for (f = 2 * f + 1; 0 < e--; ) {\n        if (ld(a, b, c, f, g))\n          if (jd(a, b, c, h)) ab(a, b, c);\n          else {\n            var k = a,\n              l = b,\n              m = c,\n              n = k[l - m],\n              r = k[l + 0],\n              q = k[l + m],\n              t = 3 * (r - n),\n              v = mb[112 + ((t + 4) >> 3)],\n              t = mb[112 + ((t + 3) >> 3)],\n              p = (v + 1) >> 1;\n            k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n            k[l - m] = R[255 + n + t];\n            k[l + 0] = R[255 + r - v];\n            k[l + m] = R[255 + q - p];\n          }\n        b += d;\n      }\n    }\n    function Ue(a, b, c, d, e, f) {\n      ea(a, b, c, 1, 16, d, e, f);\n    }\n    function Ve(a, b, c, d, e, f) {\n      ea(a, b, 1, c, 16, d, e, f);\n    }\n    function Ye(a, b, c, d, e, f) {\n      var g;\n      for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n    }\n    function Ze(a, b, c, d, e, f) {\n      var g;\n      for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n    }\n    function We(a, b, c, d, e, f, g, h) {\n      ea(a, b, e, 1, 8, f, g, h);\n      ea(c, d, e, 1, 8, f, g, h);\n    }\n    function Xe(a, b, c, d, e, f, g, h) {\n      ea(a, b, 1, e, 8, f, g, h);\n      ea(c, d, 1, e, 8, f, g, h);\n    }\n    function $e(a, b, c, d, e, f, g, h) {\n      Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n      Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n    }\n    function af(a, b, c, d, e, f, g, h) {\n      Fa(a, b + 4, 1, e, 8, f, g, h);\n      Fa(c, d + 4, 1, e, 8, f, g, h);\n    }\n    function Cf() {\n      this.ba = new Cb();\n      this.ec = [];\n      this.cc = [];\n      this.Mc = [];\n      this.Dc = this.Nc = this.dc = this.fc = 0;\n      this.Oa = new Ud();\n      this.memory = 0;\n      this.Ib = \"OutputFunc\";\n      this.Jb = \"OutputAlphaFunc\";\n      this.Nd = \"OutputRowFunc\";\n    }\n    function md() {\n      this.data = [];\n      this.offset = this.kd = this.ha = this.w = 0;\n      this.na = [];\n      this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n    }\n    function Df() {\n      this.nc = this.Ea = this.b = this.hc = 0;\n      this.K = [];\n      this.w = 0;\n    }\n    function Ef() {\n      this.ua = 0;\n      this.Wa = new ac();\n      this.vb = new ac();\n      this.md = this.xc = this.wc = 0;\n      this.vc = [];\n      this.Wb = 0;\n      this.Ya = new Ub();\n      this.yc = new O();\n    }\n    function je() {\n      this.xb = this.a = 0;\n      this.l = new Oa();\n      this.ca = new Cb();\n      this.V = [];\n      this.Ba = 0;\n      this.Ta = [];\n      this.Ua = 0;\n      this.m = new Ra();\n      this.Pb = 0;\n      this.wd = new Ra();\n      this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n      this.s = new Ef();\n      this.ab = 0;\n      this.gc = wa(4, Df);\n      this.Oc = 0;\n    }\n    function Ff() {\n      this.Lc = this.Z = this.$a = this.i = this.c = 0;\n      this.l = new Oa();\n      this.ic = 0;\n      this.ca = [];\n      this.tb = 0;\n      this.qd = null;\n      this.rd = 0;\n    }\n    function Rb(a, b, c, d, e, f, g) {\n      a = null == a ? 0 : a[b + 0];\n      for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n    }\n    function Gf(a, b, c, d, e, f, g) {\n      if (null == a) Rb(null, null, c, d, e, f, g);\n      else {\n        var h;\n        for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n      }\n    }\n    function Hf(a, b, c, d, e, f, g) {\n      if (null == a) Rb(null, null, c, d, e, f, g);\n      else {\n        var h = a[b + 0],\n          k = h,\n          l = h,\n          m;\n        for (m = 0; m < g; ++m)\n          (h = a[b + m]),\n            (k = l + h - k),\n            (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n            (k = h),\n            (e[f + m] = l);\n      }\n    }\n    function Le(a, b, c, d) {\n      var e = b.width,\n        f = b.o;\n      x(null != a && null != b);\n      if (0 > c || 0 >= d || c + d > f) return null;\n      if (!a.Cc) {\n        if (null == a.ga) {\n          a.ga = new Ff();\n          var g;\n          (g = null == a.ga) ||\n            ((g = b.width * b.o),\n            x(0 == a.Gb.length),\n            (a.Gb = V(g)),\n            (a.Uc = 0),\n            null == a.Gb\n              ? (g = 0)\n              : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n            (g = !g));\n          if (!g) {\n            g = a.ga;\n            var h = a.Fa,\n              k = a.P,\n              l = a.qc,\n              m = a.mb,\n              n = a.nb,\n              r = k + 1,\n              q = l - 1,\n              t = g.l;\n            x(null != h && null != m && null != b);\n            ia[0] = null;\n            ia[1] = Rb;\n            ia[2] = Gf;\n            ia[3] = Hf;\n            g.ca = m;\n            g.tb = n;\n            g.c = b.width;\n            g.i = b.height;\n            x(0 < g.c && 0 < g.i);\n            if (1 >= l) b = 0;\n            else if (\n              ((g.$a = (h[k + 0] >> 0) & 3),\n              (g.Z = (h[k + 0] >> 2) & 3),\n              (g.Lc = (h[k + 0] >> 4) & 3),\n              (k = (h[k + 0] >> 6) & 3),\n              0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n            )\n              b = 0;\n            else if (\n              ((t.put = kc),\n              (t.ac = gc),\n              (t.bc = lc),\n              (t.ma = g),\n              (t.width = b.width),\n              (t.height = b.height),\n              (t.Da = b.Da),\n              (t.v = b.v),\n              (t.va = b.va),\n              (t.j = b.j),\n              (t.o = b.o),\n              g.$a)\n            )\n              b: {\n                x(1 == g.$a), (b = Bc());\n                c: for (;;) {\n                  if (null == b) {\n                    b = 0;\n                    break b;\n                  }\n                  x(null != g);\n                  g.mc = b;\n                  b.c = g.c;\n                  b.i = g.i;\n                  b.l = g.l;\n                  b.l.ma = g;\n                  b.l.width = g.c;\n                  b.l.height = g.i;\n                  b.a = 0;\n                  cb(b.m, h, r, q);\n                  if (!rb(g.c, g.i, 1, b, null)) break c;\n                  1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n                    ? ((g.ic = 1),\n                      (h = b.c * b.i),\n                      (b.Ta = null),\n                      (b.Ua = 0),\n                      (b.V = V(h)),\n                      (b.Ba = 0),\n                      null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n                    : ((g.ic = 0), (b = Ec(b, g.c)));\n                  if (!b) break c;\n                  b = 1;\n                  break b;\n                }\n                g.mc = null;\n                b = 0;\n              }\n            else b = q >= g.c * g.i;\n            g = !b;\n          }\n          if (g) return null;\n          1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n        }\n        x(null != a.ga);\n        x(c + d <= f);\n        a: {\n          h = a.ga;\n          b = h.c;\n          f = h.l.o;\n          if (0 == h.$a) {\n            r = a.rc;\n            q = a.Vc;\n            t = a.Fa;\n            k = a.P + 1 + c * b;\n            l = a.mb;\n            m = a.nb + c * b;\n            x(k <= a.P + a.qc);\n            if (0 != h.Z)\n              for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n                ia[h.Z](r, q, t, k, l, m, b),\n                  (r = l),\n                  (q = m),\n                  (m += b),\n                  (k += b);\n            else\n              for (g = 0; g < d; ++g)\n                I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n            a.rc = r;\n            a.Vc = q;\n          } else {\n            x(null != h.mc);\n            b = c + d;\n            g = h.mc;\n            x(null != g);\n            x(b <= g.i);\n            if (g.C >= b) b = 1;\n            else if ((h.ic || Aa(), h.ic)) {\n              var h = g.V,\n                r = g.Ba,\n                q = g.c,\n                v = g.i,\n                t = 1,\n                k = g.$ / q,\n                l = g.$ % q,\n                m = g.m,\n                n = g.s,\n                p = g.$,\n                u = q * v,\n                w = q * b,\n                y = n.wc,\n                A = p < w ? ha(n, l, k) : null;\n              x(p <= u);\n              x(b <= v);\n              x(yc(n));\n              c: for (;;) {\n                for (; !m.h && p < w; ) {\n                  l & y || (A = ha(n, l, k));\n                  x(null != A);\n                  Sa(m);\n                  v = ua(A.G[0], A.H[0], m);\n                  if (256 > v)\n                    (h[r + p] = v),\n                      ++p,\n                      ++l,\n                      l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n                  else if (280 > v) {\n                    var v = ib(v - 256, m);\n                    var E = ua(A.G[4], A.H[4], m);\n                    Sa(m);\n                    E = ib(E, m);\n                    E = nc(q, E);\n                    if (p >= E && u - p >= v) {\n                      var B;\n                      for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n                    } else {\n                      t = 0;\n                      break c;\n                    }\n                    p += v;\n                    for (l += v; l >= q; )\n                      (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n                    p < w && l & y && (A = ha(n, l, k));\n                  } else {\n                    t = 0;\n                    break c;\n                  }\n                  x(m.h == db(m));\n                }\n                Ib(g, k > b ? b : k);\n                break c;\n              }\n              !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n              b = t;\n            } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n            if (!b) {\n              d = 0;\n              break a;\n            }\n          }\n          c + d >= f && (a.Cc = 1);\n          d = 1;\n        }\n        if (!d) return null;\n        if (\n          a.Cc &&\n          ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n        )\n          return alert(\"todo:WebPDequantizeLevels\"), null;\n      }\n      return a.nb + c * e;\n    }\n    function If(a, b, c, d, e, f) {\n      for (; 0 < e--; ) {\n        var g = a,\n          h = b + (c ? 1 : 0),\n          k = a,\n          l = b + (c ? 0 : 3),\n          m;\n        for (m = 0; m < d; ++m) {\n          var n = k[l + 4 * m];\n          255 != n &&\n            ((n *= 32897),\n            (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n            (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n            (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n        }\n        b += f;\n      }\n    }\n    function Jf(a, b, c, d, e) {\n      for (; 0 < d--; ) {\n        var f;\n        for (f = 0; f < c; ++f) {\n          var g = a[b + 2 * f + 0],\n            h = a[b + 2 * f + 1],\n            k = h & 15,\n            l = 4369 * k,\n            h = (((h & 240) | (h >> 4)) * l) >> 16;\n          a[b + 2 * f + 0] =\n            (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n            ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n          a[b + 2 * f + 1] = (h & 240) | k;\n        }\n        b += e;\n      }\n    }\n    function Kf(a, b, c, d, e, f, g, h) {\n      var k = 255,\n        l,\n        m;\n      for (m = 0; m < e; ++m) {\n        for (l = 0; l < d; ++l) {\n          var n = a[b + l];\n          f[g + 4 * l] = n;\n          k &= n;\n        }\n        b += c;\n        g += h;\n      }\n      return 255 != k;\n    }\n    function Lf(a, b, c, d, e) {\n      var f;\n      for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n    }\n    function Aa() {\n      za = If;\n      vc = Jf;\n      fc = Kf;\n      Fc = Lf;\n    }\n    function va(a, b, c) {\n      self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n        var d,\n          E = (y - 1) >> 1;\n        var B = h[k + 0] | (l[m + 0] << 16);\n        var C = n[r + 0] | (q[t + 0] << 16);\n        x(null != a);\n        var z = (3 * B + C + 131074) >> 2;\n        b(a[e + 0], z & 255, z >> 16, v, p);\n        null != f &&\n          ((z = (3 * C + B + 131074) >> 2),\n          b(f[g + 0], z & 255, z >> 16, u, w));\n        for (d = 1; d <= E; ++d) {\n          var D = h[k + d] | (l[m + d] << 16);\n          var G = n[r + d] | (q[t + d] << 16);\n          var F = B + D + C + G + 524296;\n          var H = (F + 2 * (D + C)) >> 3;\n          F = (F + 2 * (B + G)) >> 3;\n          z = (H + B) >> 1;\n          B = (F + D) >> 1;\n          b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n          b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n          null != f &&\n            ((z = (F + C) >> 1),\n            (B = (H + G) >> 1),\n            b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n            b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n          B = D;\n          C = G;\n        }\n        y & 1 ||\n          ((z = (3 * B + C + 131074) >> 2),\n          b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n          null != f &&\n            ((z = (3 * C + B + 131074) >> 2),\n            b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n      };\n    }\n    function ic() {\n      P[Ca] = Mf;\n      P[Ua] = nd;\n      P[tc] = Nf;\n      P[Va] = od;\n      P[ya] = pd;\n      P[Db] = qd;\n      P[wc] = Of;\n      P[zb] = nd;\n      P[Ab] = od;\n      P[Ja] = pd;\n      P[Bb] = qd;\n    }\n    function Sb(a) {\n      return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n    }\n    function bb(a, b) {\n      return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n    }\n    function nb(a, b, c) {\n      return Sb(\n        ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n      );\n    }\n    function Pa(a, b) {\n      return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n    }\n    function Ga(a, b, c, d, e) {\n      d[e + 0] = bb(a, c);\n      d[e + 1] = nb(a, b, c);\n      d[e + 2] = Pa(a, b);\n    }\n    function Tb(a, b, c, d, e) {\n      d[e + 0] = Pa(a, b);\n      d[e + 1] = nb(a, b, c);\n      d[e + 2] = bb(a, c);\n    }\n    function sd(a, b, c, d, e) {\n      var f = nb(a, b, c);\n      b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n      d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n      d[e + 1] = b;\n    }\n    function td(a, b, c, d, e) {\n      var f = (Pa(a, b) & 240) | 15;\n      d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n      d[e + 1] = f;\n    }\n    function ud(a, b, c, d, e) {\n      d[e + 0] = 255;\n      Ga(a, b, c, d, e + 1);\n    }\n    function vd(a, b, c, d, e) {\n      Tb(a, b, c, d, e);\n      d[e + 3] = 255;\n    }\n    function wd(a, b, c, d, e) {\n      Ga(a, b, c, d, e);\n      d[e + 3] = 255;\n    }\n    function ga(a, b) {\n      return 0 > a ? 0 : a > b ? b : a;\n    }\n    function la(a, b, c) {\n      self[a] = function(a, e, f, g, h, k, l, m, n) {\n        for (var d = m + (n & -2) * c; m != d; )\n          b(a[e + 0], f[g + 0], h[k + 0], l, m),\n            b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n            (e += 2),\n            ++g,\n            ++k,\n            (m += 2 * c);\n        n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n      };\n    }\n    function xd(a, b, c) {\n      return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n    }\n    function yd(a, b, c, d, e) {\n      switch (a >>> 30) {\n        case 3:\n          Za(b, c, d, e, 0);\n          break;\n        case 2:\n          fd(b, c, d, e);\n          break;\n        case 1:\n          pa(b, c, d, e);\n      }\n    }\n    function Oc(a, b) {\n      var c,\n        d,\n        e = b.M,\n        f = b.Nb,\n        g = a.oc,\n        h = a.pc + 40,\n        k = a.oc,\n        l = a.pc + 584,\n        m = a.oc,\n        n = a.pc + 600;\n      for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n      for (c = 0; 8 > c; ++c)\n        (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n      0 < e\n        ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n        : (M(g, h - 32 - 1, 127, 21),\n          M(k, l - 32 - 1, 127, 9),\n          M(m, n - 32 - 1, 127, 9));\n      for (d = 0; d < a.za; ++d) {\n        var r = b.ya[b.aa + d];\n        if (0 < d) {\n          for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n          for (c = -1; 8 > c; ++c)\n            I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n              I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n        }\n        var q = a.Gd,\n          t = a.Hd + d,\n          v = r.ad,\n          p = r.Hc;\n        0 < e &&\n          (I(g, h - 32, q[t].y, 0, 16),\n          I(k, l - 32, q[t].f, 0, 8),\n          I(m, n - 32, q[t].ea, 0, 8));\n        if (r.Za) {\n          var u = g;\n          var w = h - 32 + 16;\n          0 < e &&\n            (d >= a.za - 1\n              ? M(u, w, q[t].y[15], 4)\n              : I(u, w, q[t + 1].y, 0, 4));\n          for (c = 0; 4 > c; c++)\n            u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n          for (c = 0; 16 > c; ++c, p <<= 2)\n            (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n        } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n          for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n        c = r.Gc;\n        u = xd(d, e, r.Dd);\n        ka[u](k, l);\n        ka[u](m, n);\n        r = c >> 0;\n        p = v;\n        u = k;\n        w = l;\n        r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n        c >>= 8;\n        r = m;\n        p = n;\n        c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n        e < a.Ub - 1 &&\n          (I(q[t].y, 0, g, h + 480, 16),\n          I(q[t].f, 0, k, l + 224, 8),\n          I(q[t].ea, 0, m, n + 224, 8));\n        c = 8 * f * a.B;\n        q = a.sa;\n        t = a.ta + 16 * d + 16 * f * a.R;\n        v = a.qa;\n        r = a.ra + 8 * d + c;\n        p = a.Ha;\n        u = a.Ia + 8 * d + c;\n        for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n        for (c = 0; 8 > c; ++c)\n          I(v, r + c * a.B, k, l + 32 * c, 8),\n            I(p, u + c * a.B, m, n + 32 * c, 8);\n      }\n    }\n    function Ad(a, b, c, d, e, f, g, h, k) {\n      var l = [0],\n        m = [0],\n        n = 0,\n        r = null != k ? k.kd : 0,\n        q = null != k ? k : new md();\n      if (null == a || 12 > c) return 7;\n      q.data = a;\n      q.w = b;\n      q.ha = c;\n      b = [b];\n      c = [c];\n      q.gb = [q.gb];\n      a: {\n        var t = b;\n        var v = c;\n        var p = q.gb;\n        x(null != a);\n        x(null != v);\n        x(null != p);\n        p[0] = 0;\n        if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n          if (fa(a, t[0] + 8, \"WEBP\")) {\n            p = 3;\n            break a;\n          }\n          var u = Ha(a, t[0] + 4);\n          if (12 > u || 4294967286 < u) {\n            p = 3;\n            break a;\n          }\n          if (r && u > v[0] - 8) {\n            p = 7;\n            break a;\n          }\n          p[0] = u;\n          t[0] += 12;\n          v[0] -= 12;\n        }\n        p = 0;\n      }\n      if (0 != p) return p;\n      u = 0 < q.gb[0];\n      for (c = c[0]; ; ) {\n        t = [0];\n        n = [n];\n        a: {\n          var w = a;\n          v = b;\n          p = c;\n          var y = n,\n            A = l,\n            z = m,\n            B = t;\n          y[0] = 0;\n          if (8 > p[0]) p = 7;\n          else {\n            if (!fa(w, v[0], \"VP8X\")) {\n              if (10 != Ha(w, v[0] + 4)) {\n                p = 3;\n                break a;\n              }\n              if (18 > p[0]) {\n                p = 7;\n                break a;\n              }\n              var C = Ha(w, v[0] + 8);\n              var D = 1 + Yb(w, v[0] + 12);\n              w = 1 + Yb(w, v[0] + 15);\n              if (2147483648 <= D * w) {\n                p = 3;\n                break a;\n              }\n              null != B && (B[0] = C);\n              null != A && (A[0] = D);\n              null != z && (z[0] = w);\n              v[0] += 18;\n              p[0] -= 18;\n              y[0] = 1;\n            }\n            p = 0;\n          }\n        }\n        n = n[0];\n        t = t[0];\n        if (0 != p) return p;\n        v = !!(t & 2);\n        if (!u && n) return 3;\n        null != f && (f[0] = !!(t & 16));\n        null != g && (g[0] = v);\n        null != h && (h[0] = 0);\n        g = l[0];\n        t = m[0];\n        if (n && v && null == k) {\n          p = 0;\n          break;\n        }\n        if (4 > c) {\n          p = 7;\n          break;\n        }\n        if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n          c = [c];\n          q.na = [q.na];\n          q.P = [q.P];\n          q.Sa = [q.Sa];\n          a: {\n            C = a;\n            p = b;\n            u = c;\n            var y = q.gb,\n              A = q.na,\n              z = q.P,\n              B = q.Sa;\n            D = 22;\n            x(null != C);\n            x(null != u);\n            w = p[0];\n            var F = u[0];\n            x(null != A);\n            x(null != B);\n            A[0] = null;\n            z[0] = null;\n            for (B[0] = 0; ; ) {\n              p[0] = w;\n              u[0] = F;\n              if (8 > F) {\n                p = 7;\n                break a;\n              }\n              var G = Ha(C, w + 4);\n              if (4294967286 < G) {\n                p = 3;\n                break a;\n              }\n              var H = (8 + G + 1) & -2;\n              D += H;\n              if (0 < y && D > y) {\n                p = 3;\n                break a;\n              }\n              if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n                p = 0;\n                break a;\n              }\n              if (F[0] < H) {\n                p = 7;\n                break a;\n              }\n              fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n              w += H;\n              F -= H;\n            }\n          }\n          c = c[0];\n          q.na = q.na[0];\n          q.P = q.P[0];\n          q.Sa = q.Sa[0];\n          if (0 != p) break;\n        }\n        c = [c];\n        q.Ja = [q.Ja];\n        q.xa = [q.xa];\n        a: if (\n          ((y = a),\n          (p = b),\n          (u = c),\n          (A = q.gb[0]),\n          (z = q.Ja),\n          (B = q.xa),\n          (C = p[0]),\n          (w = !fa(y, C, \"VP8 \")),\n          (D = !fa(y, C, \"VP8L\")),\n          x(null != y),\n          x(null != u),\n          x(null != z),\n          x(null != B),\n          8 > u[0])\n        )\n          p = 7;\n        else {\n          if (w || D) {\n            y = Ha(y, C + 4);\n            if (12 <= A && y > A - 12) {\n              p = 3;\n              break a;\n            }\n            if (r && y > u[0] - 8) {\n              p = 7;\n              break a;\n            }\n            z[0] = y;\n            p[0] += 8;\n            u[0] -= 8;\n            B[0] = D;\n          } else\n            (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n              (z[0] = u[0]);\n          p = 0;\n        }\n        c = c[0];\n        q.Ja = q.Ja[0];\n        q.xa = q.xa[0];\n        b = b[0];\n        if (0 != p) break;\n        if (4294967286 < q.Ja) return 3;\n        null == h || v || (h[0] = q.xa ? 2 : 1);\n        g = [g];\n        t = [t];\n        if (q.xa) {\n          if (5 > c) {\n            p = 7;\n            break;\n          }\n          h = g;\n          r = t;\n          v = f;\n          null == a || 5 > c\n            ? (a = 0)\n            : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n            ? ((u = [0]),\n              (y = [0]),\n              (A = [0]),\n              (z = new Ra()),\n              cb(z, a, b, c),\n              mc(z, u, y, A)\n                ? (null != h && (h[0] = u[0]),\n                  null != r && (r[0] = y[0]),\n                  null != v && (v[0] = A[0]),\n                  (a = 1))\n                : (a = 0))\n            : (a = 0);\n        } else {\n          if (10 > c) {\n            p = 7;\n            break;\n          }\n          h = t;\n          null == a || 10 > c || !Jc(a, b + 3, c - 3)\n            ? (a = 0)\n            : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n              (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n              (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n              r & 1 ||\n              3 < ((r >> 1) & 7) ||\n              !((r >> 4) & 1) ||\n              r >> 5 >= q.Ja ||\n              !v ||\n              !a\n                ? (a = 0)\n                : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n        }\n        if (!a) return 3;\n        g = g[0];\n        t = t[0];\n        if (n && (l[0] != g || m[0] != t)) return 3;\n        null != k &&\n          ((k[0] = q),\n          (k.offset = b - k.w),\n          x(4294967286 > b - k.w),\n          x(k.offset == k.ha - c));\n        break;\n      }\n      return 0 == p || (7 == p && n && null == k)\n        ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n          null != d && (d[0] = g),\n          null != e && (e[0] = t),\n          0)\n        : p;\n    }\n    function hc(a, b, c) {\n      var d = b.width,\n        e = b.height,\n        f = 0,\n        g = 0,\n        h = d,\n        k = e;\n      b.Da = null != a && 0 < a.Da;\n      if (\n        b.Da &&\n        ((h = a.cd),\n        (k = a.bd),\n        (f = a.v),\n        (g = a.j),\n        11 > c || ((f &= -2), (g &= -2)),\n        0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n      )\n        return 0;\n      b.v = f;\n      b.j = g;\n      b.va = f + h;\n      b.o = g + k;\n      b.U = h;\n      b.T = k;\n      b.da = null != a && 0 < a.da;\n      if (b.da) {\n        c = [a.ib];\n        f = [a.hb];\n        if (!bc(h, k, c, f)) return 0;\n        b.ib = c[0];\n        b.hb = f[0];\n      }\n      b.ob = null != a && a.ob;\n      b.Kb = null == a || !a.Sd;\n      b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n      return 1;\n    }\n    function Bd(a) {\n      if (null == a) return 2;\n      if (11 > a.S) {\n        var b = a.f.RGBA;\n        b.fb += (a.height - 1) * b.A;\n        b.A = -b.A;\n      } else\n        (b = a.f.kb),\n          (a = a.height),\n          (b.O += (a - 1) * b.fa),\n          (b.fa = -b.fa),\n          (b.N += ((a - 1) >> 1) * b.Ab),\n          (b.Ab = -b.Ab),\n          (b.W += ((a - 1) >> 1) * b.Db),\n          (b.Db = -b.Db),\n          null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n      return 0;\n    }\n    function Cd(a, b, c, d) {\n      if (null == d || 0 >= a || 0 >= b) return 2;\n      if (null != c) {\n        if (c.Da) {\n          var e = c.cd,\n            f = c.bd,\n            g = c.v & -2,\n            h = c.j & -2;\n          if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n            return 2;\n          a = e;\n          b = f;\n        }\n        if (c.da) {\n          e = [c.ib];\n          f = [c.hb];\n          if (!bc(a, b, e, f)) return 2;\n          a = e[0];\n          b = f[0];\n        }\n      }\n      d.width = a;\n      d.height = b;\n      a: {\n        var k = d.width;\n        var l = d.height;\n        a = d.S;\n        if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n        else {\n          if (0 >= d.Rd && null == d.sd) {\n            var g = (f = e = b = 0),\n              h = k * Dd[a],\n              m = h * l;\n            11 > a ||\n              ((b = (k + 1) / 2),\n              (f = ((l + 1) / 2) * b),\n              12 == a && ((e = k), (g = e * l)));\n            l = V(m + 2 * f + g);\n            if (null == l) {\n              a = 1;\n              break a;\n            }\n            d.sd = l;\n            11 > a\n              ? ((k = d.f.RGBA),\n                (k.eb = l),\n                (k.fb = 0),\n                (k.A = h),\n                (k.size = m))\n              : ((k = d.f.kb),\n                (k.y = l),\n                (k.O = 0),\n                (k.fa = h),\n                (k.Fd = m),\n                (k.f = l),\n                (k.N = 0 + m),\n                (k.Ab = b),\n                (k.Cd = f),\n                (k.ea = l),\n                (k.W = 0 + m + f),\n                (k.Db = b),\n                (k.Ed = f),\n                12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n                (k.Tc = g),\n                (k.lb = e));\n          }\n          b = 1;\n          e = d.S;\n          f = d.width;\n          g = d.height;\n          if (e >= Ca && 13 > e)\n            if (11 > e)\n              (a = d.f.RGBA),\n                (h = Math.abs(a.A)),\n                (b &= h * (g - 1) + f <= a.size),\n                (b &= h >= f * Dd[e]),\n                (b &= null != a.eb);\n            else {\n              a = d.f.kb;\n              h = (f + 1) / 2;\n              m = (g + 1) / 2;\n              k = Math.abs(a.fa);\n              var l = Math.abs(a.Ab),\n                n = Math.abs(a.Db),\n                r = Math.abs(a.lb),\n                q = r * (g - 1) + f;\n              b &= k * (g - 1) + f <= a.Fd;\n              b &= l * (m - 1) + h <= a.Cd;\n              b &= n * (m - 1) + h <= a.Ed;\n              b = b & (k >= f) & (l >= h) & (n >= h);\n              b &= null != a.y;\n              b &= null != a.f;\n              b &= null != a.ea;\n              12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n            }\n          else b = 0;\n          a = b ? 0 : 2;\n        }\n      }\n      if (0 != a) return a;\n      null != c && c.fd && (a = Bd(d));\n      return a;\n    }\n    var xb = 64,\n      Hd = [\n        0,\n        1,\n        3,\n        7,\n        15,\n        31,\n        63,\n        127,\n        255,\n        511,\n        1023,\n        2047,\n        4095,\n        8191,\n        16383,\n        32767,\n        65535,\n        131071,\n        262143,\n        524287,\n        1048575,\n        2097151,\n        4194303,\n        8388607,\n        16777215\n      ],\n      Gd = 24,\n      ob = 32,\n      Xb = 8,\n      Id = [\n        0,\n        0,\n        1,\n        1,\n        2,\n        2,\n        2,\n        2,\n        3,\n        3,\n        3,\n        3,\n        3,\n        3,\n        3,\n        3,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        4,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        5,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        6,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7,\n        7\n      ];\n    X(\"Predictor0\", \"PredictorAdd0\");\n    self.Predictor0 = function() {\n      return 4278190080;\n    };\n    self.Predictor1 = function(a) {\n      return a;\n    };\n    self.Predictor2 = function(a, b, c) {\n      return b[c + 0];\n    };\n    self.Predictor3 = function(a, b, c) {\n      return b[c + 1];\n    };\n    self.Predictor4 = function(a, b, c) {\n      return b[c - 1];\n    };\n    self.Predictor5 = function(a, b, c) {\n      return aa(aa(a, b[c + 1]), b[c + 0]);\n    };\n    self.Predictor6 = function(a, b, c) {\n      return aa(a, b[c - 1]);\n    };\n    self.Predictor7 = function(a, b, c) {\n      return aa(a, b[c + 0]);\n    };\n    self.Predictor8 = function(a, b, c) {\n      return aa(b[c - 1], b[c + 0]);\n    };\n    self.Predictor9 = function(a, b, c) {\n      return aa(b[c + 0], b[c + 1]);\n    };\n    self.Predictor10 = function(a, b, c) {\n      return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n    };\n    self.Predictor11 = function(a, b, c) {\n      var d = b[c + 0];\n      b = b[c - 1];\n      return 0 >=\n        Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n          Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n          Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n          Ia(d & 255, a & 255, b & 255)\n        ? d\n        : a;\n    };\n    self.Predictor12 = function(a, b, c) {\n      var d = b[c + 0];\n      b = b[c - 1];\n      return (\n        ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n          (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n            16) |\n          (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n          sa((a & 255) + (d & 255) - (b & 255))) >>>\n        0\n      );\n    };\n    self.Predictor13 = function(a, b, c) {\n      var d = b[c - 1];\n      a = aa(a, b[c + 0]);\n      return (\n        ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n          (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n          (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n          eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n        0\n      );\n    };\n    var ee = self.PredictorAdd0;\n    self.PredictorAdd1 = cc;\n    X(\"Predictor2\", \"PredictorAdd2\");\n    X(\"Predictor3\", \"PredictorAdd3\");\n    X(\"Predictor4\", \"PredictorAdd4\");\n    X(\"Predictor5\", \"PredictorAdd5\");\n    X(\"Predictor6\", \"PredictorAdd6\");\n    X(\"Predictor7\", \"PredictorAdd7\");\n    X(\"Predictor8\", \"PredictorAdd8\");\n    X(\"Predictor9\", \"PredictorAdd9\");\n    X(\"Predictor10\", \"PredictorAdd10\");\n    X(\"Predictor11\", \"PredictorAdd11\");\n    X(\"Predictor12\", \"PredictorAdd12\");\n    X(\"Predictor13\", \"PredictorAdd13\");\n    var fe = self.PredictorAdd2;\n    ec(\n      \"ColorIndexInverseTransform\",\n      \"MapARGB\",\n      \"32b\",\n      function(a) {\n        return (a >> 8) & 255;\n      },\n      function(a) {\n        return a;\n      }\n    );\n    ec(\n      \"VP8LColorIndexInverseTransformAlpha\",\n      \"MapAlpha\",\n      \"8b\",\n      function(a) {\n        return a;\n      },\n      function(a) {\n        return (a >> 8) & 255;\n      }\n    );\n    var rc = self.ColorIndexInverseTransform,\n      ke = self.MapARGB,\n      he = self.VP8LColorIndexInverseTransformAlpha,\n      le = self.MapAlpha,\n      pc,\n      qc = (self.VP8LPredictorsAdd = []);\n    qc.length = 16;\n    (self.VP8LPredictors = []).length = 16;\n    (self.VP8LPredictorsAdd_C = []).length = 16;\n    (self.VP8LPredictors_C = []).length = 16;\n    var Fb,\n      sc,\n      Gb,\n      Hb,\n      xc,\n      uc,\n      bd = V(511),\n      cd = V(2041),\n      dd = V(225),\n      ed = V(767),\n      ad = 0,\n      Qb = cd,\n      mb = dd,\n      R = ed,\n      U = bd,\n      Ca = 0,\n      Ua = 1,\n      tc = 2,\n      Va = 3,\n      ya = 4,\n      Db = 5,\n      wc = 6,\n      zb = 7,\n      Ab = 8,\n      Ja = 9,\n      Bb = 10,\n      pe = [2, 3, 7],\n      oe = [3, 3, 11],\n      Dc = [280, 256, 256, 256, 40],\n      qe = [0, 1, 1, 1, 0],\n      ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n      de = [\n        24,\n        7,\n        23,\n        25,\n        40,\n        6,\n        39,\n        41,\n        22,\n        26,\n        38,\n        42,\n        56,\n        5,\n        55,\n        57,\n        21,\n        27,\n        54,\n        58,\n        37,\n        43,\n        72,\n        4,\n        71,\n        73,\n        20,\n        28,\n        53,\n        59,\n        70,\n        74,\n        36,\n        44,\n        88,\n        69,\n        75,\n        52,\n        60,\n        3,\n        87,\n        89,\n        19,\n        29,\n        86,\n        90,\n        35,\n        45,\n        68,\n        76,\n        85,\n        91,\n        51,\n        61,\n        104,\n        2,\n        103,\n        105,\n        18,\n        30,\n        102,\n        106,\n        34,\n        46,\n        84,\n        92,\n        67,\n        77,\n        101,\n        107,\n        50,\n        62,\n        120,\n        1,\n        119,\n        121,\n        83,\n        93,\n        17,\n        31,\n        100,\n        108,\n        66,\n        78,\n        118,\n        122,\n        33,\n        47,\n        117,\n        123,\n        49,\n        63,\n        99,\n        109,\n        82,\n        94,\n        0,\n        116,\n        124,\n        65,\n        79,\n        16,\n        32,\n        98,\n        110,\n        48,\n        115,\n        125,\n        81,\n        95,\n        64,\n        114,\n        126,\n        97,\n        111,\n        80,\n        113,\n        127,\n        96,\n        112\n      ],\n      me = [\n        2954,\n        2956,\n        2958,\n        2962,\n        2970,\n        2986,\n        3018,\n        3082,\n        3212,\n        3468,\n        3980,\n        5004\n      ],\n      ie = 8,\n      Lb = [\n        4,\n        5,\n        6,\n        7,\n        8,\n        9,\n        10,\n        10,\n        11,\n        12,\n        13,\n        14,\n        15,\n        16,\n        17,\n        17,\n        18,\n        19,\n        20,\n        20,\n        21,\n        21,\n        22,\n        22,\n        23,\n        23,\n        24,\n        25,\n        25,\n        26,\n        27,\n        28,\n        29,\n        30,\n        31,\n        32,\n        33,\n        34,\n        35,\n        36,\n        37,\n        37,\n        38,\n        39,\n        40,\n        41,\n        42,\n        43,\n        44,\n        45,\n        46,\n        46,\n        47,\n        48,\n        49,\n        50,\n        51,\n        52,\n        53,\n        54,\n        55,\n        56,\n        57,\n        58,\n        59,\n        60,\n        61,\n        62,\n        63,\n        64,\n        65,\n        66,\n        67,\n        68,\n        69,\n        70,\n        71,\n        72,\n        73,\n        74,\n        75,\n        76,\n        76,\n        77,\n        78,\n        79,\n        80,\n        81,\n        82,\n        83,\n        84,\n        85,\n        86,\n        87,\n        88,\n        89,\n        91,\n        93,\n        95,\n        96,\n        98,\n        100,\n        101,\n        102,\n        104,\n        106,\n        108,\n        110,\n        112,\n        114,\n        116,\n        118,\n        122,\n        124,\n        126,\n        128,\n        130,\n        132,\n        134,\n        136,\n        138,\n        140,\n        143,\n        145,\n        148,\n        151,\n        154,\n        157\n      ],\n      Mb = [\n        4,\n        5,\n        6,\n        7,\n        8,\n        9,\n        10,\n        11,\n        12,\n        13,\n        14,\n        15,\n        16,\n        17,\n        18,\n        19,\n        20,\n        21,\n        22,\n        23,\n        24,\n        25,\n        26,\n        27,\n        28,\n        29,\n        30,\n        31,\n        32,\n        33,\n        34,\n        35,\n        36,\n        37,\n        38,\n        39,\n        40,\n        41,\n        42,\n        43,\n        44,\n        45,\n        46,\n        47,\n        48,\n        49,\n        50,\n        51,\n        52,\n        53,\n        54,\n        55,\n        56,\n        57,\n        58,\n        60,\n        62,\n        64,\n        66,\n        68,\n        70,\n        72,\n        74,\n        76,\n        78,\n        80,\n        82,\n        84,\n        86,\n        88,\n        90,\n        92,\n        94,\n        96,\n        98,\n        100,\n        102,\n        104,\n        106,\n        108,\n        110,\n        112,\n        114,\n        116,\n        119,\n        122,\n        125,\n        128,\n        131,\n        134,\n        137,\n        140,\n        143,\n        146,\n        149,\n        152,\n        155,\n        158,\n        161,\n        164,\n        167,\n        170,\n        173,\n        177,\n        181,\n        185,\n        189,\n        193,\n        197,\n        201,\n        205,\n        209,\n        213,\n        217,\n        221,\n        225,\n        229,\n        234,\n        239,\n        245,\n        249,\n        254,\n        259,\n        264,\n        269,\n        274,\n        279,\n        284\n      ],\n      oa = null,\n      He = [\n        [173, 148, 140, 0],\n        [176, 155, 140, 135, 0],\n        [180, 157, 141, 134, 130, 0],\n        [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n      ],\n      Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n      Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n      Fe = [\n        [\n          [\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n            [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n            [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n            [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n            [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n          ],\n          [\n            [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n            [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n            [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n            [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n            [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n            [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n            [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n            [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n            [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n          ]\n        ],\n        [\n          [\n            [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n            [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n            [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n          ],\n          [\n            [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n            [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n            [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n          ],\n          [\n            [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n            [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n            [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n          ],\n          [\n            [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n            [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n            [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n            [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n            [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n          ],\n          [\n            [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n            [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n            [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n          ],\n          [\n            [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n            [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n            [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n          ],\n          [\n            [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n            [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n            [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n          ]\n        ],\n        [\n          [\n            [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n            [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n            [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n          ],\n          [\n            [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n            [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n            [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n            [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n            [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n          ],\n          [\n            [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n            [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n            [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n            [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n            [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n            [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n            [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ],\n          [\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n            [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n          ]\n        ],\n        [\n          [\n            [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n            [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n            [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n          ],\n          [\n            [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n            [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n            [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n          ],\n          [\n            [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n            [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n            [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n          ],\n          [\n            [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n            [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n            [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n          ],\n          [\n            [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n            [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n            [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n          ],\n          [\n            [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n            [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n            [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n          ],\n          [\n            [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n            [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n            [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n          ],\n          [\n            [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n            [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n          ]\n        ]\n      ],\n      Ke = [\n        [\n          [231, 120, 48, 89, 115, 113, 120, 152, 112],\n          [152, 179, 64, 126, 170, 118, 46, 70, 95],\n          [175, 69, 143, 80, 85, 82, 72, 155, 103],\n          [56, 58, 10, 171, 218, 189, 17, 13, 152],\n          [114, 26, 17, 163, 44, 195, 21, 10, 173],\n          [121, 24, 80, 195, 26, 62, 44, 64, 85],\n          [144, 71, 10, 38, 171, 213, 144, 34, 26],\n          [170, 46, 55, 19, 136, 160, 33, 206, 71],\n          [63, 20, 8, 114, 114, 208, 12, 9, 226],\n          [81, 40, 11, 96, 182, 84, 29, 16, 36]\n        ],\n        [\n          [134, 183, 89, 137, 98, 101, 106, 165, 148],\n          [72, 187, 100, 130, 157, 111, 32, 75, 80],\n          [66, 102, 167, 99, 74, 62, 40, 234, 128],\n          [41, 53, 9, 178, 241, 141, 26, 8, 107],\n          [74, 43, 26, 146, 73, 166, 49, 23, 157],\n          [65, 38, 105, 160, 51, 52, 31, 115, 128],\n          [104, 79, 12, 27, 217, 255, 87, 17, 7],\n          [87, 68, 71, 44, 114, 51, 15, 186, 23],\n          [47, 41, 14, 110, 182, 183, 21, 17, 194],\n          [66, 45, 25, 102, 197, 189, 23, 18, 22]\n        ],\n        [\n          [88, 88, 147, 150, 42, 46, 45, 196, 205],\n          [43, 97, 183, 117, 85, 38, 35, 179, 61],\n          [39, 53, 200, 87, 26, 21, 43, 232, 171],\n          [56, 34, 51, 104, 114, 102, 29, 93, 77],\n          [39, 28, 85, 171, 58, 165, 90, 98, 64],\n          [34, 22, 116, 206, 23, 34, 43, 166, 73],\n          [107, 54, 32, 26, 51, 1, 81, 43, 31],\n          [68, 25, 106, 22, 64, 171, 36, 225, 114],\n          [34, 19, 21, 102, 132, 188, 16, 76, 124],\n          [62, 18, 78, 95, 85, 57, 50, 48, 51]\n        ],\n        [\n          [193, 101, 35, 159, 215, 111, 89, 46, 111],\n          [60, 148, 31, 172, 219, 228, 21, 18, 111],\n          [112, 113, 77, 85, 179, 255, 38, 120, 114],\n          [40, 42, 1, 196, 245, 209, 10, 25, 109],\n          [88, 43, 29, 140, 166, 213, 37, 43, 154],\n          [61, 63, 30, 155, 67, 45, 68, 1, 209],\n          [100, 80, 8, 43, 154, 1, 51, 26, 71],\n          [142, 78, 78, 16, 255, 128, 34, 197, 171],\n          [41, 40, 5, 102, 211, 183, 4, 1, 221],\n          [51, 50, 17, 168, 209, 192, 23, 25, 82]\n        ],\n        [\n          [138, 31, 36, 171, 27, 166, 38, 44, 229],\n          [67, 87, 58, 169, 82, 115, 26, 59, 179],\n          [63, 59, 90, 180, 59, 166, 93, 73, 154],\n          [40, 40, 21, 116, 143, 209, 34, 39, 175],\n          [47, 15, 16, 183, 34, 223, 49, 45, 183],\n          [46, 17, 33, 183, 6, 98, 15, 32, 183],\n          [57, 46, 22, 24, 128, 1, 54, 17, 37],\n          [65, 32, 73, 115, 28, 128, 23, 128, 205],\n          [40, 3, 9, 115, 51, 192, 18, 6, 223],\n          [87, 37, 9, 115, 59, 77, 64, 21, 47]\n        ],\n        [\n          [104, 55, 44, 218, 9, 54, 53, 130, 226],\n          [64, 90, 70, 205, 40, 41, 23, 26, 57],\n          [54, 57, 112, 184, 5, 41, 38, 166, 213],\n          [30, 34, 26, 133, 152, 116, 10, 32, 134],\n          [39, 19, 53, 221, 26, 114, 32, 73, 255],\n          [31, 9, 65, 234, 2, 15, 1, 118, 73],\n          [75, 32, 12, 51, 192, 255, 160, 43, 51],\n          [88, 31, 35, 67, 102, 85, 55, 186, 85],\n          [56, 21, 23, 111, 59, 205, 45, 37, 192],\n          [55, 38, 70, 124, 73, 102, 1, 34, 98]\n        ],\n        [\n          [125, 98, 42, 88, 104, 85, 117, 175, 82],\n          [95, 84, 53, 89, 128, 100, 113, 101, 45],\n          [75, 79, 123, 47, 51, 128, 81, 171, 1],\n          [57, 17, 5, 71, 102, 57, 53, 41, 49],\n          [38, 33, 13, 121, 57, 73, 26, 1, 85],\n          [41, 10, 67, 138, 77, 110, 90, 47, 114],\n          [115, 21, 2, 10, 102, 255, 166, 23, 6],\n          [101, 29, 16, 10, 85, 128, 101, 196, 26],\n          [57, 18, 10, 102, 102, 213, 34, 20, 43],\n          [117, 20, 15, 36, 163, 128, 68, 1, 26]\n        ],\n        [\n          [102, 61, 71, 37, 34, 53, 31, 243, 192],\n          [69, 60, 71, 38, 73, 119, 28, 222, 37],\n          [68, 45, 128, 34, 1, 47, 11, 245, 171],\n          [62, 17, 19, 70, 146, 85, 55, 62, 70],\n          [37, 43, 37, 154, 100, 163, 85, 160, 1],\n          [63, 9, 92, 136, 28, 64, 32, 201, 85],\n          [75, 15, 9, 9, 64, 255, 184, 119, 16],\n          [86, 6, 28, 5, 64, 255, 25, 248, 1],\n          [56, 8, 17, 132, 137, 255, 55, 116, 128],\n          [58, 15, 20, 82, 135, 57, 26, 121, 40]\n        ],\n        [\n          [164, 50, 31, 137, 154, 133, 25, 35, 218],\n          [51, 103, 44, 131, 131, 123, 31, 6, 158],\n          [86, 40, 64, 135, 148, 224, 45, 183, 128],\n          [22, 26, 17, 131, 240, 154, 14, 1, 209],\n          [45, 16, 21, 91, 64, 222, 7, 1, 197],\n          [56, 21, 39, 155, 60, 138, 23, 102, 213],\n          [83, 12, 13, 54, 192, 255, 68, 47, 28],\n          [85, 26, 85, 85, 128, 128, 32, 146, 171],\n          [18, 11, 7, 63, 144, 171, 4, 4, 246],\n          [35, 27, 10, 146, 174, 171, 12, 26, 128]\n        ],\n        [\n          [190, 80, 35, 99, 180, 80, 126, 54, 45],\n          [85, 126, 47, 87, 176, 51, 41, 20, 32],\n          [101, 75, 128, 139, 118, 146, 116, 128, 85],\n          [56, 41, 15, 176, 236, 85, 37, 9, 62],\n          [71, 30, 17, 119, 118, 255, 17, 18, 138],\n          [101, 38, 60, 138, 55, 70, 43, 26, 142],\n          [146, 36, 19, 30, 171, 255, 97, 27, 20],\n          [138, 45, 61, 62, 219, 1, 81, 188, 64],\n          [32, 41, 20, 117, 151, 142, 20, 21, 163],\n          [112, 19, 12, 61, 195, 128, 48, 4, 24]\n        ]\n      ],\n      Ee = [\n        [\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n            [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n            [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n            [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ],\n        [\n          [\n            [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n            [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n          ],\n          [\n            [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ],\n        [\n          [\n            [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n            [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n            [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ],\n        [\n          [\n            [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n            [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n            [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n            [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ],\n          [\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n            [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n          ]\n        ]\n      ],\n      Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n      Nc,\n      Y = [],\n      W = [],\n      ka = [],\n      Za,\n      fd,\n      Nb,\n      pa,\n      Ob,\n      Xc,\n      Tc,\n      Yc,\n      Uc,\n      Zc,\n      Vc,\n      $c,\n      Wc,\n      Rc,\n      Pc,\n      Sc,\n      Qc,\n      re = 1,\n      Cc = 2,\n      ia = [],\n      za,\n      vc,\n      fc,\n      Fc,\n      P = [];\n    va(\"UpsampleRgbLinePair\", Ga, 3);\n    va(\"UpsampleBgrLinePair\", Tb, 3);\n    va(\"UpsampleRgbaLinePair\", wd, 4);\n    va(\"UpsampleBgraLinePair\", vd, 4);\n    va(\"UpsampleArgbLinePair\", ud, 4);\n    va(\"UpsampleRgba4444LinePair\", td, 2);\n    va(\"UpsampleRgb565LinePair\", sd, 2);\n    var Mf = self.UpsampleRgbLinePair,\n      Nf = self.UpsampleBgrLinePair,\n      nd = self.UpsampleRgbaLinePair,\n      od = self.UpsampleBgraLinePair,\n      pd = self.UpsampleArgbLinePair,\n      qd = self.UpsampleRgba4444LinePair,\n      Of = self.UpsampleRgb565LinePair,\n      Wa = 16,\n      Ba = 1 << (Wa - 1),\n      ta = -227,\n      Eb = 482,\n      rd = 6,\n      Pf = (256 << rd) - 1,\n      jc = 0,\n      Yd = V(256),\n      ae = V(256),\n      $d = V(256),\n      Zd = V(256),\n      be = V(Eb - ta),\n      ce = V(Eb - ta);\n    la(\"YuvToRgbRow\", Ga, 3);\n    la(\"YuvToBgrRow\", Tb, 3);\n    la(\"YuvToRgbaRow\", wd, 4);\n    la(\"YuvToBgraRow\", vd, 4);\n    la(\"YuvToArgbRow\", ud, 4);\n    la(\"YuvToRgba4444Row\", td, 2);\n    la(\"YuvToRgb565Row\", sd, 2);\n    var zd = [\n        0,\n        4,\n        8,\n        12,\n        128,\n        132,\n        136,\n        140,\n        256,\n        260,\n        264,\n        268,\n        384,\n        388,\n        392,\n        396\n      ],\n      Ya = [0, 2, 8],\n      Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n      Ne = 1;\n    this.WebPDecodeRGBA = function(a, b, c, d, e) {\n      var f = Ua;\n      var g = new Cf(),\n        h = new Cb();\n      g.ba = h;\n      h.S = f;\n      h.width = [h.width];\n      h.height = [h.height];\n      var k = h.width;\n      var l = h.height,\n        m = new Td();\n      if (null == m || null == a) var n = 2;\n      else\n        x(null != m),\n          (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n      0 != n\n        ? (k = 0)\n        : (null != k && (k[0] = m.width[0]),\n          null != l && (l[0] = m.height[0]),\n          (k = 1));\n      if (k) {\n        h.width = h.width[0];\n        h.height = h.height[0];\n        null != d && (d[0] = h.width);\n        null != e && (e[0] = h.height);\n        b: {\n          d = new Oa();\n          e = new md();\n          e.data = a;\n          e.w = b;\n          e.ha = c;\n          e.kd = 1;\n          b = [0];\n          x(null != e);\n          a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n          (0 == a || 7 == a) && b[0] && (a = 4);\n          b = a;\n          if (0 == b) {\n            x(null != g);\n            d.data = e.data;\n            d.w = e.w + e.offset;\n            d.ha = e.ha - e.offset;\n            d.put = kc;\n            d.ac = gc;\n            d.bc = lc;\n            d.ma = g;\n            if (e.xa) {\n              a = Bc();\n              if (null == a) {\n                g = 1;\n                break b;\n              }\n              if (te(a, d)) {\n                b = Cd(d.width, d.height, g.Oa, g.ba);\n                if ((d = 0 == b)) {\n                  c: {\n                    d = a;\n                    d: for (;;) {\n                      if (null == d) {\n                        d = 0;\n                        break c;\n                      }\n                      x(null != d.s.yc);\n                      x(null != d.s.Ya);\n                      x(0 < d.s.Wb);\n                      c = d.l;\n                      x(null != c);\n                      e = c.ma;\n                      x(null != e);\n                      if (0 != d.xb) {\n                        d.ca = e.ba;\n                        d.tb = e.tb;\n                        x(null != d.ca);\n                        if (!hc(e.Oa, c, Va)) {\n                          d.a = 2;\n                          break d;\n                        }\n                        if (!Ec(d, c.width)) break d;\n                        if (c.da) break d;\n                        (c.da || hb(d.ca.S)) && Aa();\n                        11 > d.ca.S ||\n                          (alert(\"todo:WebPInitConvertARGBToYUV\"),\n                          null != d.ca.f.kb.F && Aa());\n                        if (\n                          d.Pb &&\n                          0 < d.s.ua &&\n                          null == d.s.vb.X &&\n                          !Zb(d.s.vb, d.s.Wa.Xa)\n                        ) {\n                          d.a = 1;\n                          break d;\n                        }\n                        d.xb = 0;\n                      }\n                      if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n                      e.Dc = d.Ma;\n                      d = 1;\n                      break c;\n                    }\n                    x(0 != d.a);\n                    d = 0;\n                  }\n                  d = !d;\n                }\n                d && (b = a.a);\n              } else b = a.a;\n            } else {\n              a = new Ce();\n              if (null == a) {\n                g = 1;\n                break b;\n              }\n              a.Fa = e.na;\n              a.P = e.P;\n              a.qc = e.Sa;\n              if (Kc(a, d)) {\n                if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n                  a.Aa = 0;\n                  c = g.Oa;\n                  e = a;\n                  x(null != e);\n                  if (null != c) {\n                    k = c.Md;\n                    k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n                    if (0 < k) {\n                      for (l = m = 0; 4 > l; ++l)\n                        (n = e.pb[l]),\n                          12 > n.lc &&\n                            (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n                          (m |= n.ia);\n                      m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n                    }\n                    e.Ga = c.Id;\n                    100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n                  }\n                  Me(a, d) || (b = a.a);\n                }\n              } else b = a.a;\n            }\n            0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n          }\n          g = b;\n        }\n        f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n      } else f = null;\n      return f;\n    };\n    var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n  };\n  new WebPDecoder();\n\n  /** @license\n   * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n  function memcmp(data, data_off, str, size) {\n    for (var i = 0; i < size; i++)\n      if (data[data_off + i] != str.charCodeAt(i)) return true;\n    return false;\n  }\n\n  function GetTag(data, data_off) {\n    var str = \"\";\n    for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n    return str;\n  }\n\n  function GetLE16(data, data_off) {\n    return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n  }\n\n  function GetLE24(data, data_off) {\n    return (\n      ((data[data_off + 0] << 0) |\n        (data[data_off + 1] << 8) |\n        (data[data_off + 2] << 16)) >>>\n      0\n    );\n  }\n\n  function GetLE32(data, data_off) {\n    return (\n      ((data[data_off + 0] << 0) |\n        (data[data_off + 1] << 8) |\n        (data[data_off + 2] << 16) |\n        (data[data_off + 3] << 24)) >>>\n      0\n    );\n  }\n\n  function WebPRiffParser(src, src_off) {\n    var imagearray = {};\n    var i = 0;\n    var alpha_chunk = false;\n    var alpha_size = 0;\n    var alpha_offset = 0;\n    imagearray[\"frames\"] = [];\n    if (memcmp(src, src_off, \"RIFF\", 4)) return;\n    src_off += 4;\n    var riff_size = GetLE32(src, src_off) + 8;\n    src_off += 8;\n\n    while (src_off < src.length) {\n      var fourcc = GetTag(src, src_off);\n      src_off += 4;\n\n      var payload_size = GetLE32(src, src_off);\n      src_off += 4;\n      var payload_size_padded = payload_size + (payload_size & 1);\n\n      switch (fourcc) {\n        case \"VP8 \":\n        case \"VP8L\":\n          if (typeof imagearray[\"frames\"][i] === \"undefined\")\n            imagearray[\"frames\"][i] = {};\n          var obj = imagearray[\"frames\"][i];\n          var height = [0];\n          var width = [0];\n          obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n          obj[\"src_size\"] = alpha_size + payload_size + 8;\n          //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n          //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n          i++;\n          if (alpha_chunk) {\n            alpha_chunk = false;\n            alpha_size = 0;\n            alpha_offset = 0;\n          }\n          break;\n        case \"VP8X\":\n          var obj = (imagearray[\"header\"] = {});\n          var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n          var src_off_ = src_off + 4;\n          var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n          src_off_ += 3;\n          var canvas_height = (obj[\"canvas_height\"] =\n            1 + GetLE24(src, src_off_));\n          src_off_ += 3;\n          break;\n        case \"ALPH\":\n          alpha_chunk = true;\n          alpha_size = payload_size_padded + 8;\n          alpha_offset = src_off - 8;\n          break;\n\n        case \"ANIM\":\n          var obj = imagearray[\"header\"];\n          var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n          src_off_ = src_off + 4;\n\n          var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n          src_off_ += 2;\n          break;\n        case \"ANMF\":\n          var offset_x = 0,\n            offset_y = 0,\n            width = 0,\n            height = 0,\n            duration = 0,\n            blend = 0,\n            dispose = 0,\n            temp = 0;\n          var obj = (imagearray[\"frames\"][i] = {});\n          obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n          src_off += 3;\n          obj[\"duration\"] = duration = GetLE24(src, src_off);\n          src_off += 3;\n          temp = src[src_off++];\n          obj[\"dispose\"] = dispose = temp & 1;\n          obj[\"blend\"] = blend = (temp >> 1) & 1;\n          break;\n        default:\n      }\n      if (fourcc != \"ANMF\") src_off += payload_size_padded;\n    }\n    return imagearray;\n  }\n\n  var height = [0];\n  var width = [0];\n  var pixels = [];\n  var webpdecoder = new WebPDecoder();\n\n  var response = imageData;\n  var imagearray = WebPRiffParser(response, 0);\n  imagearray[\"response\"] = response;\n  imagearray[\"rgbaoutput\"] = true;\n  imagearray[\"dataurl\"] = false;\n\n  var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n  var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n  if (header) {\n    header[\"loop_counter\"] = header[\"loop_count\"];\n    height = [header[\"canvas_height\"]];\n    width = [header[\"canvas_width\"]];\n\n    var blend = false;\n    for (var f = 0; f < frames.length; f++)\n      if (frames[f][\"blend\"] == 0) {\n        blend = true;\n        break;\n      }\n  }\n\n  var frame = frames[0];\n  var rgba = webpdecoder.WebPDecodeRGBA(\n    response,\n    frame[\"src_off\"],\n    frame[\"src_size\"],\n    width,\n    height\n  );\n  frame[\"rgba\"] = rgba;\n  frame[\"imgwidth\"] = width[0];\n  frame[\"imgheight\"] = height[0];\n\n  for (var i = 0; i < width[0] * height[0] * 4; i++) {\n    pixels[i] = rgba[i];\n  }\n\n  this.width = width;\n  this.height = height;\n  this.data = pixels;\n  return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n  return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n    var reader = new WebPDecoder(imageData, false);\n    var width = reader.width,\n      height = reader.height;\n    var qu = 100;\n    var pixels = reader.getData();\n\n    var rawImageData = {\n      data: pixels,\n      width: width,\n      height: height\n    };\n\n    var encoder = new JPEGEncoder(qu);\n    var data = encoder.encode(rawImageData, qu);\n    return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  /**\n   * Add Language Tag to the generated PDF\n   *\n   * @name setLanguage\n   * @function\n   * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n   * @returns {jsPDF}\n   * @example\n   * var doc = new jsPDF()\n   * doc.text(10, 10, 'This is a test')\n   * doc.setLanguage(\"en-US\")\n   * doc.save('english.pdf')\n   */\n  jsPDFAPI.setLanguage = function(langCode) {\n    \"use strict\";\n\n    var langCodes = {\n      af: \"Afrikaans\",\n      sq: \"Albanian\",\n      ar: \"Arabic (Standard)\",\n      \"ar-DZ\": \"Arabic (Algeria)\",\n      \"ar-BH\": \"Arabic (Bahrain)\",\n      \"ar-EG\": \"Arabic (Egypt)\",\n      \"ar-IQ\": \"Arabic (Iraq)\",\n      \"ar-JO\": \"Arabic (Jordan)\",\n      \"ar-KW\": \"Arabic (Kuwait)\",\n      \"ar-LB\": \"Arabic (Lebanon)\",\n      \"ar-LY\": \"Arabic (Libya)\",\n      \"ar-MA\": \"Arabic (Morocco)\",\n      \"ar-OM\": \"Arabic (Oman)\",\n      \"ar-QA\": \"Arabic (Qatar)\",\n      \"ar-SA\": \"Arabic (Saudi Arabia)\",\n      \"ar-SY\": \"Arabic (Syria)\",\n      \"ar-TN\": \"Arabic (Tunisia)\",\n      \"ar-AE\": \"Arabic (U.A.E.)\",\n      \"ar-YE\": \"Arabic (Yemen)\",\n      an: \"Aragonese\",\n      hy: \"Armenian\",\n      as: \"Assamese\",\n      ast: \"Asturian\",\n      az: \"Azerbaijani\",\n      eu: \"Basque\",\n      be: \"Belarusian\",\n      bn: \"Bengali\",\n      bs: \"Bosnian\",\n      br: \"Breton\",\n      bg: \"Bulgarian\",\n      my: \"Burmese\",\n      ca: \"Catalan\",\n      ch: \"Chamorro\",\n      ce: \"Chechen\",\n      zh: \"Chinese\",\n      \"zh-HK\": \"Chinese (Hong Kong)\",\n      \"zh-CN\": \"Chinese (PRC)\",\n      \"zh-SG\": \"Chinese (Singapore)\",\n      \"zh-TW\": \"Chinese (Taiwan)\",\n      cv: \"Chuvash\",\n      co: \"Corsican\",\n      cr: \"Cree\",\n      hr: \"Croatian\",\n      cs: \"Czech\",\n      da: \"Danish\",\n      nl: \"Dutch (Standard)\",\n      \"nl-BE\": \"Dutch (Belgian)\",\n      en: \"English\",\n      \"en-AU\": \"English (Australia)\",\n      \"en-BZ\": \"English (Belize)\",\n      \"en-CA\": \"English (Canada)\",\n      \"en-IE\": \"English (Ireland)\",\n      \"en-JM\": \"English (Jamaica)\",\n      \"en-NZ\": \"English (New Zealand)\",\n      \"en-PH\": \"English (Philippines)\",\n      \"en-ZA\": \"English (South Africa)\",\n      \"en-TT\": \"English (Trinidad & Tobago)\",\n      \"en-GB\": \"English (United Kingdom)\",\n      \"en-US\": \"English (United States)\",\n      \"en-ZW\": \"English (Zimbabwe)\",\n      eo: \"Esperanto\",\n      et: \"Estonian\",\n      fo: \"Faeroese\",\n      fj: \"Fijian\",\n      fi: \"Finnish\",\n      fr: \"French (Standard)\",\n      \"fr-BE\": \"French (Belgium)\",\n      \"fr-CA\": \"French (Canada)\",\n      \"fr-FR\": \"French (France)\",\n      \"fr-LU\": \"French (Luxembourg)\",\n      \"fr-MC\": \"French (Monaco)\",\n      \"fr-CH\": \"French (Switzerland)\",\n      fy: \"Frisian\",\n      fur: \"Friulian\",\n      gd: \"Gaelic (Scots)\",\n      \"gd-IE\": \"Gaelic (Irish)\",\n      gl: \"Galacian\",\n      ka: \"Georgian\",\n      de: \"German (Standard)\",\n      \"de-AT\": \"German (Austria)\",\n      \"de-DE\": \"German (Germany)\",\n      \"de-LI\": \"German (Liechtenstein)\",\n      \"de-LU\": \"German (Luxembourg)\",\n      \"de-CH\": \"German (Switzerland)\",\n      el: \"Greek\",\n      gu: \"Gujurati\",\n      ht: \"Haitian\",\n      he: \"Hebrew\",\n      hi: \"Hindi\",\n      hu: \"Hungarian\",\n      is: \"Icelandic\",\n      id: \"Indonesian\",\n      iu: \"Inuktitut\",\n      ga: \"Irish\",\n      it: \"Italian (Standard)\",\n      \"it-CH\": \"Italian (Switzerland)\",\n      ja: \"Japanese\",\n      kn: \"Kannada\",\n      ks: \"Kashmiri\",\n      kk: \"Kazakh\",\n      km: \"Khmer\",\n      ky: \"Kirghiz\",\n      tlh: \"Klingon\",\n      ko: \"Korean\",\n      \"ko-KP\": \"Korean (North Korea)\",\n      \"ko-KR\": \"Korean (South Korea)\",\n      la: \"Latin\",\n      lv: \"Latvian\",\n      lt: \"Lithuanian\",\n      lb: \"Luxembourgish\",\n      mk: \"FYRO Macedonian\",\n      ms: \"Malay\",\n      ml: \"Malayalam\",\n      mt: \"Maltese\",\n      mi: \"Maori\",\n      mr: \"Marathi\",\n      mo: \"Moldavian\",\n      nv: \"Navajo\",\n      ng: \"Ndonga\",\n      ne: \"Nepali\",\n      no: \"Norwegian\",\n      nb: \"Norwegian (Bokmal)\",\n      nn: \"Norwegian (Nynorsk)\",\n      oc: \"Occitan\",\n      or: \"Oriya\",\n      om: \"Oromo\",\n      fa: \"Persian\",\n      \"fa-IR\": \"Persian/Iran\",\n      pl: \"Polish\",\n      pt: \"Portuguese\",\n      \"pt-BR\": \"Portuguese (Brazil)\",\n      pa: \"Punjabi\",\n      \"pa-IN\": \"Punjabi (India)\",\n      \"pa-PK\": \"Punjabi (Pakistan)\",\n      qu: \"Quechua\",\n      rm: \"Rhaeto-Romanic\",\n      ro: \"Romanian\",\n      \"ro-MO\": \"Romanian (Moldavia)\",\n      ru: \"Russian\",\n      \"ru-MO\": \"Russian (Moldavia)\",\n      sz: \"Sami (Lappish)\",\n      sg: \"Sango\",\n      sa: \"Sanskrit\",\n      sc: \"Sardinian\",\n      sd: \"Sindhi\",\n      si: \"Singhalese\",\n      sr: \"Serbian\",\n      sk: \"Slovak\",\n      sl: \"Slovenian\",\n      so: \"Somani\",\n      sb: \"Sorbian\",\n      es: \"Spanish\",\n      \"es-AR\": \"Spanish (Argentina)\",\n      \"es-BO\": \"Spanish (Bolivia)\",\n      \"es-CL\": \"Spanish (Chile)\",\n      \"es-CO\": \"Spanish (Colombia)\",\n      \"es-CR\": \"Spanish (Costa Rica)\",\n      \"es-DO\": \"Spanish (Dominican Republic)\",\n      \"es-EC\": \"Spanish (Ecuador)\",\n      \"es-SV\": \"Spanish (El Salvador)\",\n      \"es-GT\": \"Spanish (Guatemala)\",\n      \"es-HN\": \"Spanish (Honduras)\",\n      \"es-MX\": \"Spanish (Mexico)\",\n      \"es-NI\": \"Spanish (Nicaragua)\",\n      \"es-PA\": \"Spanish (Panama)\",\n      \"es-PY\": \"Spanish (Paraguay)\",\n      \"es-PE\": \"Spanish (Peru)\",\n      \"es-PR\": \"Spanish (Puerto Rico)\",\n      \"es-ES\": \"Spanish (Spain)\",\n      \"es-UY\": \"Spanish (Uruguay)\",\n      \"es-VE\": \"Spanish (Venezuela)\",\n      sx: \"Sutu\",\n      sw: \"Swahili\",\n      sv: \"Swedish\",\n      \"sv-FI\": \"Swedish (Finland)\",\n      \"sv-SV\": \"Swedish (Sweden)\",\n      ta: \"Tamil\",\n      tt: \"Tatar\",\n      te: \"Teluga\",\n      th: \"Thai\",\n      tig: \"Tigre\",\n      ts: \"Tsonga\",\n      tn: \"Tswana\",\n      tr: \"Turkish\",\n      tk: \"Turkmen\",\n      uk: \"Ukrainian\",\n      hsb: \"Upper Sorbian\",\n      ur: \"Urdu\",\n      ve: \"Venda\",\n      vi: \"Vietnamese\",\n      vo: \"Volapuk\",\n      wa: \"Walloon\",\n      cy: \"Welsh\",\n      xh: \"Xhosa\",\n      ji: \"Yiddish\",\n      zu: \"Zulu\"\n    };\n\n    if (this.internal.languageSettings === undefined) {\n      this.internal.languageSettings = {};\n      this.internal.languageSettings.isSubscribed = false;\n    }\n\n    if (langCodes[langCode] !== undefined) {\n      this.internal.languageSettings.languageCode = langCode;\n      if (this.internal.languageSettings.isSubscribed === false) {\n        this.internal.events.subscribe(\"putCatalog\", function() {\n          this.internal.write(\n            \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n          );\n        });\n        this.internal.languageSettings.isSubscribed = true;\n      }\n    }\n    return this;\n  };\n})(jsPDF.API);\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n *               2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n  \"use strict\";\n  /**\n   * Returns an array of length matching length of the 'word' string, with each\n   * cell occupied by the width of the char in that position.\n   *\n   * @name getCharWidthsArray\n   * @function\n   * @param {string} text\n   * @param {Object} options\n   * @returns {Array}\n   */\n  var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n    options = options || {};\n\n    var activeFont = options.font || this.internal.getFont();\n    var fontSize = options.fontSize || this.internal.getFontSize();\n    var charSpace = options.charSpace || this.internal.getCharSpace();\n\n    var widths = options.widths\n      ? options.widths\n      : activeFont.metadata.Unicode.widths;\n    var widthsFractionOf = widths.fof ? widths.fof : 1;\n    var kerning = options.kerning\n      ? options.kerning\n      : activeFont.metadata.Unicode.kerning;\n    var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n    var doKerning = options.doKerning === false ? false : true;\n    var kerningValue = 0;\n\n    var i;\n    var length = text.length;\n    var char_code;\n    var prior_char_code = 0; //for kerning\n    var default_char_width = widths[0] || widthsFractionOf;\n    var output = [];\n\n    for (i = 0; i < length; i++) {\n      char_code = text.charCodeAt(i);\n\n      if (typeof activeFont.metadata.widthOfString === \"function\") {\n        output.push(\n          (activeFont.metadata.widthOfGlyph(\n            activeFont.metadata.characterToGlyph(char_code)\n          ) +\n            charSpace * (1000 / fontSize) || 0) / 1000\n        );\n      } else {\n        if (\n          doKerning &&\n          typeof kerning[char_code] === \"object\" &&\n          !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n        ) {\n          kerningValue =\n            kerning[char_code][prior_char_code] / kerningFractionOf;\n        } else {\n          kerningValue = 0;\n        }\n        output.push(\n          (widths[char_code] || default_char_width) / widthsFractionOf +\n            kerningValue\n        );\n      }\n      prior_char_code = char_code;\n    }\n\n    return output;\n  });\n\n  /**\n   * Returns a widths of string in a given font, if the font size is set as 1 point.\n   *\n   * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n   * of the string will be that much.\n   *\n   * Multiply by font size to get actual width in *points*\n   * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n   *\n   * @name getStringUnitWidth\n   * @public\n   * @function\n   * @param {string} text\n   * @param {string} options\n   * @returns {number} result\n   */\n  var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n    options = options || {};\n\n    var fontSize = options.fontSize || this.internal.getFontSize();\n    var font = options.font || this.internal.getFont();\n    var charSpace = options.charSpace || this.internal.getCharSpace();\n    var result = 0;\n\n    if (API.processArabic) {\n      text = API.processArabic(text);\n    }\n\n    if (typeof font.metadata.widthOfString === \"function\") {\n      result =\n        font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n    } else {\n      result = getCharWidthsArray\n        .apply(this, arguments)\n        .reduce(function(pv, cv) {\n          return pv + cv;\n        }, 0);\n    }\n    return result;\n  });\n\n  /**\n  returns array of lines\n  */\n  var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n    var answer = [];\n\n    // 1st, chop off the piece that can fit on the hanging line.\n    var i = 0,\n      l = word.length,\n      workingLen = 0;\n    while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n      workingLen += widths_array[i];\n      i++;\n    }\n    // this is first line.\n    answer.push(word.slice(0, i));\n\n    // 2nd. Split the rest into maxLen pieces.\n    var startOfLine = i;\n    workingLen = 0;\n    while (i !== l) {\n      if (workingLen + widths_array[i] > maxLen) {\n        answer.push(word.slice(startOfLine, i));\n        workingLen = 0;\n        startOfLine = i;\n      }\n      workingLen += widths_array[i];\n      i++;\n    }\n    if (startOfLine !== i) {\n      answer.push(word.slice(startOfLine, i));\n    }\n\n    return answer;\n  };\n\n  // Note, all sizing inputs for this function must be in \"font measurement units\"\n  // By default, for PDF, it's \"point\".\n  var splitParagraphIntoLines = function(text, maxlen, options) {\n    // at this time works only on Western scripts, ones with space char\n    // separating the words. Feel free to expand.\n\n    if (!options) {\n      options = {};\n    }\n\n    var line = [],\n      lines = [line],\n      line_length = options.textIndent || 0,\n      separator_length = 0,\n      current_word_length = 0,\n      word,\n      widths_array,\n      words = text.split(\" \"),\n      spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n      i,\n      l,\n      tmp,\n      lineIndent;\n\n    if (options.lineIndent === -1) {\n      lineIndent = words[0].length + 2;\n    } else {\n      lineIndent = options.lineIndent || 0;\n    }\n    if (lineIndent) {\n      var pad = Array(lineIndent).join(\" \"),\n        wrds = [];\n      words.map(function(wrd) {\n        wrd = wrd.split(/\\s*\\n/);\n        if (wrd.length > 1) {\n          wrds = wrds.concat(\n            wrd.map(function(wrd, idx) {\n              return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n            })\n          );\n        } else {\n          wrds.push(wrd[0]);\n        }\n      });\n      words = wrds;\n      lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n    }\n\n    for (i = 0, l = words.length; i < l; i++) {\n      var force = 0;\n\n      word = words[i];\n      if (lineIndent && word[0] == \"\\n\") {\n        word = word.substr(1);\n        force = 1;\n      }\n      widths_array = getCharWidthsArray.apply(this, [word, options]);\n      current_word_length = widths_array.reduce(function(pv, cv) {\n        return pv + cv;\n      }, 0);\n\n      if (\n        line_length + separator_length + current_word_length > maxlen ||\n        force\n      ) {\n        if (current_word_length > maxlen) {\n          // this happens when you have space-less long URLs for example.\n          // we just chop these to size. We do NOT insert hiphens\n          tmp = splitLongWord.apply(this, [\n            word,\n            widths_array,\n            maxlen - (line_length + separator_length),\n            maxlen\n          ]);\n          // first line we add to existing line object\n          line.push(tmp.shift()); // it's ok to have extra space indicator there\n          // last line we make into new line object\n          line = [tmp.pop()];\n          // lines in the middle we apped to lines object as whole lines\n          while (tmp.length) {\n            lines.push([tmp.shift()]); // single fragment occupies whole line\n          }\n          current_word_length = widths_array\n            .slice(word.length - (line[0] ? line[0].length : 0))\n            .reduce(function(pv, cv) {\n              return pv + cv;\n            }, 0);\n        } else {\n          // just put it on a new line\n          line = [word];\n        }\n\n        // now we attach new line to lines\n        lines.push(line);\n        line_length = current_word_length + lineIndent;\n        separator_length = spaceCharWidth;\n      } else {\n        line.push(word);\n\n        line_length += separator_length + current_word_length;\n        separator_length = spaceCharWidth;\n      }\n    }\n\n    var postProcess;\n    if (lineIndent) {\n      postProcess = function(ln, idx) {\n        return (idx ? pad : \"\") + ln.join(\" \");\n      };\n    } else {\n      postProcess = function(ln) {\n        return ln.join(\" \");\n      };\n    }\n\n    return lines.map(postProcess);\n  };\n\n  /**\n   * Splits a given string into an array of strings. Uses 'size' value\n   * (in measurement units declared as default for the jsPDF instance)\n   * and the font's \"widths\" and \"Kerning\" tables, where available, to\n   * determine display length of a given string for a given font.\n   *\n   * We use character's 100% of unit size (height) as width when Width\n   * table or other default width is not available.\n   *\n   * @name splitTextToSize\n   * @public\n   * @function\n   * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n   * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n   * @param {Object} options Optional flags needed for chopper to do the right thing.\n   * @returns {Array} array Array with strings chopped to size.\n   */\n  API.splitTextToSize = function(text, maxlen, options) {\n    \"use strict\";\n\n    options = options || {};\n\n    var fsize = options.fontSize || this.internal.getFontSize(),\n      newOptions = function(options) {\n        var widths = {\n            0: 1\n          },\n          kerning = {};\n\n        if (!options.widths || !options.kerning) {\n          var f = this.internal.getFont(options.fontName, options.fontStyle),\n            encoding = \"Unicode\";\n          // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n          // Actual JavaScript-native String's 16bit char codes used.\n          // no multi-byte logic here\n\n          if (f.metadata[encoding]) {\n            return {\n              widths: f.metadata[encoding].widths || widths,\n              kerning: f.metadata[encoding].kerning || kerning\n            };\n          } else {\n            return {\n              font: f.metadata,\n              fontSize: this.internal.getFontSize(),\n              charSpace: this.internal.getCharSpace()\n            };\n          }\n        } else {\n          return {\n            widths: options.widths,\n            kerning: options.kerning\n          };\n        }\n      }.call(this, options);\n\n    // first we split on end-of-line chars\n    var paragraphs;\n    if (Array.isArray(text)) {\n      paragraphs = text;\n    } else {\n      paragraphs = String(text).split(/\\r?\\n/);\n    }\n\n    // now we convert size (max length of line) into \"font size units\"\n    // at present time, the \"font size unit\" is always 'point'\n    // 'proportional' means, \"in proportion to font size\"\n    var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n    // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n    // this may change in the future?\n    // until then, proportional_maxlen is likely to be in 'points'\n\n    // If first line is to be indented (shorter or longer) than maxLen\n    // we indicate that by using CSS-style \"text-indent\" option.\n    // here it's in font units too (which is likely 'points')\n    // it can be negative (which makes the first line longer than maxLen)\n    newOptions.textIndent = options.textIndent\n      ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n      : 0;\n    newOptions.lineIndent = options.lineIndent;\n\n    var i,\n      l,\n      output = [];\n    for (i = 0, l = paragraphs.length; i < l; i++) {\n      output = output.concat(\n        splitParagraphIntoLines.apply(this, [\n          paragraphs[i],\n          fontUnit_maxLen,\n          newOptions\n        ])\n      );\n    }\n\n    return output;\n  };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n  \"use strict\";\n  API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n  var decoded = \"0123456789abcdef\",\n    encoded = \"klmnopqrstuvwxyz\",\n    mappingUncompress = {},\n    mappingCompress = {};\n\n  for (var i = 0; i < encoded.length; i++) {\n    mappingUncompress[encoded[i]] = decoded[i];\n    mappingCompress[decoded[i]] = encoded[i];\n  }\n\n  var hex = function(value) {\n    return \"0x\" + parseInt(value, 10).toString(16);\n  };\n\n  var compress = (API.__fontmetrics__.compress = function(data) {\n    var vals = [\"{\"];\n    var value, keystring, valuestring, numberprefix;\n\n    for (var key in data) {\n      value = data[key];\n\n      if (!isNaN(parseInt(key, 10))) {\n        key = parseInt(key, 10);\n        keystring = hex(key).slice(2);\n        keystring =\n          keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n      } else {\n        keystring = \"'\" + key + \"'\";\n      }\n\n      if (typeof value == \"number\") {\n        if (value < 0) {\n          valuestring = hex(value).slice(3);\n          numberprefix = \"-\";\n        } else {\n          valuestring = hex(value).slice(2);\n          numberprefix = \"\";\n        }\n        valuestring =\n          numberprefix +\n          valuestring.slice(0, -1) +\n          mappingCompress[valuestring.slice(-1)];\n      } else {\n        if (typeof value === \"object\") {\n          valuestring = compress(value);\n        } else {\n          throw new Error(\n            \"Don't know what to do with value type \" + typeof value + \".\"\n          );\n        }\n      }\n      vals.push(keystring + valuestring);\n    }\n    vals.push(\"}\");\n    return vals.join(\"\");\n  });\n\n  /**\n   * Uncompresses data compressed into custom, base16-like format.\n   *\n   * @public\n   * @function\n   * @param\n   * @returns {Type}\n   */\n  var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n    if (typeof data !== \"string\") {\n      throw new Error(\"Invalid argument passed to uncompress.\");\n    }\n\n    var output = {},\n      sign = 1,\n      stringparts, // undef. will be [] in string mode\n      activeobject = output,\n      parentchain = [],\n      parent_key_pair,\n      keyparts = \"\",\n      valueparts = \"\",\n      key, // undef. will be Truthy when Key is resolved.\n      datalen = data.length - 1, // stripping ending }\n      ch;\n\n    for (var i = 1; i < datalen; i += 1) {\n      // - { } ' are special.\n\n      ch = data[i];\n\n      if (ch == \"'\") {\n        if (stringparts) {\n          // end of string mode\n          key = stringparts.join(\"\");\n          stringparts = undefined;\n        } else {\n          // start of string mode\n          stringparts = [];\n        }\n      } else if (stringparts) {\n        stringparts.push(ch);\n      } else if (ch == \"{\") {\n        // start of object\n        parentchain.push([activeobject, key]);\n        activeobject = {};\n        key = undefined;\n      } else if (ch == \"}\") {\n        // end of object\n        parent_key_pair = parentchain.pop();\n        parent_key_pair[0][parent_key_pair[1]] = activeobject;\n        key = undefined;\n        activeobject = parent_key_pair[0];\n      } else if (ch == \"-\") {\n        sign = -1;\n      } else {\n        // must be number\n        if (key === undefined) {\n          if (mappingUncompress.hasOwnProperty(ch)) {\n            keyparts += mappingUncompress[ch];\n            key = parseInt(keyparts, 16) * sign;\n            sign = +1;\n            keyparts = \"\";\n          } else {\n            keyparts += ch;\n          }\n        } else {\n          if (mappingUncompress.hasOwnProperty(ch)) {\n            valueparts += mappingUncompress[ch];\n            activeobject[key] = parseInt(valueparts, 16) * sign;\n            sign = +1;\n            key = undefined;\n            valueparts = \"\";\n          } else {\n            valueparts += ch;\n          }\n        }\n      }\n    }\n    return output;\n  });\n\n  // encoding = 'Unicode'\n  // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n  // Actual 16bit char codes used.\n  // no multi-byte logic here\n\n  // Unicode characters to WinAnsiEncoding:\n  // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n  // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n  // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n  // as well as give strings with some (supported by these fonts) Unicode characters and\n  // these will be mapped to win cp1252\n  // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n  var encodingBlock = {\n    codePages: [\"WinAnsiEncoding\"],\n    WinAnsiEncoding: uncompress(\n      \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n    )\n  };\n  var encodings = {\n    Unicode: {\n      Courier: encodingBlock,\n      \"Courier-Bold\": encodingBlock,\n      \"Courier-BoldOblique\": encodingBlock,\n      \"Courier-Oblique\": encodingBlock,\n      Helvetica: encodingBlock,\n      \"Helvetica-Bold\": encodingBlock,\n      \"Helvetica-BoldOblique\": encodingBlock,\n      \"Helvetica-Oblique\": encodingBlock,\n      \"Times-Roman\": encodingBlock,\n      \"Times-Bold\": encodingBlock,\n      \"Times-BoldItalic\": encodingBlock,\n      \"Times-Italic\": encodingBlock\n      //\t, 'Symbol'\n      //\t, 'ZapfDingbats'\n    }\n  };\n\n  var fontMetrics = {\n    Unicode: {\n      // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n      // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n      // width is 476/1000 or 47.6% of its height (regardless of font size)\n      // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n      // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n      // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n      \"Courier-Oblique\": uncompress(\n        \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n      ),\n      \"Times-BoldItalic\": uncompress(\n        \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n      ),\n      \"Helvetica-Bold\": uncompress(\n        \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n      ),\n      Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n      \"Courier-BoldOblique\": uncompress(\n        \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n      ),\n      \"Times-Bold\": uncompress(\n        \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n      ),\n      Symbol: uncompress(\n        \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n      ),\n      Helvetica: uncompress(\n        \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n      ),\n      \"Helvetica-BoldOblique\": uncompress(\n        \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n      ),\n      ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n      \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n      \"Times-Italic\": uncompress(\n        \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n      ),\n      \"Times-Roman\": uncompress(\n        \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n      ),\n      \"Helvetica-Oblique\": uncompress(\n        \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n      )\n    }\n  };\n\n  /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n  API.events.push([\n    \"addFont\",\n    function(data) {\n      var font = data.font;\n\n      var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n      if (metrics) {\n        font.metadata[\"Unicode\"] = {};\n        font.metadata[\"Unicode\"].widths = metrics.widths;\n        font.metadata[\"Unicode\"].kerning = metrics.kerning;\n      }\n\n      var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n      if (encodingBlock) {\n        font.metadata[\"Unicode\"].encoding = encodingBlock;\n        font.encoding = encodingBlock.codePages[0];\n      }\n    }\n  ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n  \"use strict\";\n\n  var binaryStringToUint8Array = function(binary_string) {\n    var len = binary_string.length;\n    var bytes = new Uint8Array(len);\n    for (var i = 0; i < len; i++) {\n      bytes[i] = binary_string.charCodeAt(i);\n    }\n    return bytes;\n  };\n\n  var addFont = function(font, file) {\n    // eslint-disable-next-line no-control-regex\n    if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n      file = binaryStringToUint8Array(file);\n    } else {\n      file = binaryStringToUint8Array(atob(file));\n    }\n    font.metadata = jsPDF.API.TTFFont.open(file);\n    font.metadata.Unicode = font.metadata.Unicode || {\n      encoding: {},\n      kerning: {},\n      widths: []\n    };\n    font.metadata.glyIdsUsed = [0];\n  };\n\n  jsPDF.API.events.push([\n    \"addFont\",\n    function(data) {\n      var file = undefined;\n      var font = data.font;\n      var instance = data.instance;\n      if (font.isStandardFont) {\n        return;\n      }\n      if (typeof instance !== \"undefined\") {\n        if (instance.existsFileInVFS(font.postScriptName) === false) {\n          file = instance.loadFile(font.postScriptName);\n        } else {\n          file = instance.getFileFromVFS(font.postScriptName);\n        }\n        if (typeof file !== \"string\") {\n          throw new Error(\n            \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n              font.postScriptName +\n              \"').\"\n          );\n        }\n        addFont(font, file);\n      } else {\n        throw new Error(\n          \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n            font.postScriptName +\n            \"').\"\n        );\n      }\n    }\n  ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  function loadCanvg() {\n    return (function() {\n      if (globalObject[\"canvg\"]) {\n        return Promise.resolve(globalObject[\"canvg\"]);\n      }\n\n\n      if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n        return new Promise(function(resolve, reject) {\n          try {\n            resolve(require(\"canvg\"));\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      if (typeof define === \"function\" && define.amd) {\n        return new Promise(function(resolve, reject) {\n          try {\n            require([\"canvg\"], resolve);\n          } catch (e) {\n            reject(e);\n          }\n        });\n      }\n      return Promise.reject(new Error(\"Could not load canvg\"));\n    })()\n      .catch(function(e) {\n        return Promise.reject(new Error(\"Could not load canvg: \" + e));\n      })\n      .then(function(canvg) {\n        return canvg.default ? canvg.default : canvg;\n      });\n  }\n\n  /**\n   * Parses SVG XML and saves it as image into the PDF.\n   *\n   * Depends on canvas-element and canvg\n   *\n   * @name addSvgAsImage\n   * @public\n   * @function\n   * @param {string} SVG-Data as Text\n   * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n   * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n   * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n   * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n   * @param {string} alias of SVG-Image (if used multiple times)\n   * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n   * @param {number} rotation of the image in degrees (0-359)\n   *\n   * @returns jsPDF jsPDF-instance\n   */\n  jsPDFAPI.addSvgAsImage = function(\n    svg,\n    x,\n    y,\n    w,\n    h,\n    alias,\n    compression,\n    rotation\n  ) {\n    if (isNaN(x) || isNaN(y)) {\n      console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n      throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n    }\n\n    if (isNaN(w) || isNaN(h)) {\n      console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n      throw new Error(\n        \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n      );\n    }\n\n    var canvas = document.createElement(\"canvas\");\n    canvas.width = w;\n    canvas.height = h;\n    var ctx = canvas.getContext(\"2d\");\n    ctx.fillStyle = \"#fff\"; /// set white fill style\n    ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n    var options = {\n      ignoreMouse: true,\n      ignoreAnimation: true,\n      ignoreDimensions: true\n    };\n    var doc = this;\n    return loadCanvg()\n      .then(\n        function(canvg) {\n          return canvg.fromString(ctx, svg, options);\n        },\n        function() {\n          return Promise.reject(new Error(\"Could not load canvg.\"));\n        }\n      )\n      .then(function(instance) {\n        return instance.render(options);\n      })\n      .then(function() {\n        doc.addImage(\n          canvas.toDataURL(\"image/jpeg\", 1.0),\n          x,\n          y,\n          w,\n          h,\n          compression,\n          rotation\n        );\n      });\n  };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n  /**\n   * @name putTotalPages\n   * @function\n   * @param {string} pageExpression Regular Expression\n   * @returns {jsPDF} jsPDF-instance\n   */\n\n  jsPDFAPI.putTotalPages = function(pageExpression) {\n    \"use strict\";\n\n    var replaceExpression;\n    var totalNumberOfPages = 0;\n    if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n      replaceExpression = new RegExp(pageExpression, \"g\");\n      totalNumberOfPages = this.internal.getNumberOfPages();\n    } else {\n      replaceExpression = new RegExp(\n        this.pdfEscape16(pageExpression, this.internal.getFont()),\n        \"g\"\n      );\n      totalNumberOfPages = this.pdfEscape16(\n        this.internal.getNumberOfPages() + \"\",\n        this.internal.getFont()\n      );\n    }\n\n    for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n      for (var i = 0; i < this.internal.pages[n].length; i++) {\n        this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n          replaceExpression,\n          totalNumberOfPages\n        );\n      }\n    }\n\n    return this;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n  /**\n   * Set the ViewerPreferences of the generated PDF\n   *\n   * @name viewerPreferences\n   * @function\n   * @public\n   * @param {Object} options Array with the ViewerPreferences<br />\n   * Example: doc.viewerPreferences({\"FitWindow\":true});<br />\n   * <br />\n   * You can set following preferences:<br />\n   * <br/>\n   * <b>HideToolbar</b> <i>(boolean)</i><br />\n   * Default value: false<br />\n   * <br />\n   * <b>HideMenubar</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>HideWindowUI</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>FitWindow</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>CenterWindow</b> <i>(boolean)</i><br />\n   * Default value: false<br />\n   * <br />\n   * <b>DisplayDocTitle</b> <i>(boolean)</i><br />\n   * Default value: false.<br />\n   * <br />\n   * <b>NonFullScreenPageMode</b> <i>(string)</i><br />\n   * Possible values: UseNone, UseOutlines, UseThumbs, UseOC<br />\n   * Default value: UseNone<br/>\n   * <br />\n   * <b>Direction</b> <i>(string)</i><br />\n   * Possible values: L2R, R2L<br />\n   * Default value: L2R.<br />\n   * <br />\n   * <b>ViewArea</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox.<br />\n   * <br />\n   * <b>ViewClip</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox<br />\n   * <br />\n   * <b>PrintArea</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox<br />\n   * <br />\n   * <b>PrintClip</b> <i>(string)</i><br />\n   * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox<br />\n   * Default value: CropBox.<br />\n   * <br />\n   * <b>PrintScaling</b> <i>(string)</i><br />\n   * Possible values: AppDefault, None<br />\n   * Default value: AppDefault.<br />\n   * <br />\n   * <b>Duplex</b> <i>(string)</i><br />\n   * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n   * Default value: none<br />\n   * <br />\n   * <b>PickTrayByPDFSize</b> <i>(boolean)</i><br />\n   * Default value: false<br />\n   * <br />\n   * <b>PrintPageRange</b> <i>(Array)</i><br />\n   * Example: [[1,5], [7,9]]<br />\n   * Default value: as defined by PDF viewer application<br />\n   * <br />\n   * <b>NumCopies</b> <i>(Number)</i><br />\n   * Possible values: 1, 2, 3, 4, 5<br />\n   * Default value: 1<br />\n   * <br />\n   * For more information see the PDF Reference, sixth edition on Page 577\n   * @param {boolean} doReset True to reset the settings\n   * @function\n   * @returns jsPDF jsPDF-instance\n   * @example\n   * var doc = new jsPDF()\n   * doc.text('This is a test', 10, 10)\n   * doc.viewerPreferences({'FitWindow': true}, true)\n   * doc.save(\"viewerPreferences.pdf\")\n   *\n   * // Example printing 10 copies, using cropbox, and hiding UI.\n   * doc.viewerPreferences({\n   *   'HideWindowUI': true,\n   *   'PrintArea': 'CropBox',\n   *   'NumCopies': 10\n   * })\n   */\n  jsPDFAPI.viewerPreferences = function(options, doReset) {\n    options = options || {};\n    doReset = doReset || false;\n\n    var configuration;\n    var configurationTemplate = {\n      HideToolbar: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      HideMenubar: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      HideWindowUI: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      FitWindow: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      CenterWindow: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.3\n      },\n      DisplayDocTitle: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.4\n      },\n      NonFullScreenPageMode: {\n        defaultValue: \"UseNone\",\n        value: \"UseNone\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n        pdfVersion: 1.3\n      },\n      Direction: {\n        defaultValue: \"L2R\",\n        value: \"L2R\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"L2R\", \"R2L\"],\n        pdfVersion: 1.3\n      },\n      ViewArea: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      ViewClip: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      PrintArea: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      PrintClip: {\n        defaultValue: \"CropBox\",\n        value: \"CropBox\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n        pdfVersion: 1.4\n      },\n      PrintScaling: {\n        defaultValue: \"AppDefault\",\n        value: \"AppDefault\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\"AppDefault\", \"None\"],\n        pdfVersion: 1.6\n      },\n      Duplex: {\n        defaultValue: \"\",\n        value: \"none\",\n        type: \"name\",\n        explicitSet: false,\n        valueSet: [\n          \"Simplex\",\n          \"DuplexFlipShortEdge\",\n          \"DuplexFlipLongEdge\",\n          \"none\"\n        ],\n        pdfVersion: 1.7\n      },\n      PickTrayByPDFSize: {\n        defaultValue: false,\n        value: false,\n        type: \"boolean\",\n        explicitSet: false,\n        valueSet: [true, false],\n        pdfVersion: 1.7\n      },\n      PrintPageRange: {\n        defaultValue: \"\",\n        value: \"\",\n        type: \"array\",\n        explicitSet: false,\n        valueSet: null,\n        pdfVersion: 1.7\n      },\n      NumCopies: {\n        defaultValue: 1,\n        value: 1,\n        type: \"integer\",\n        explicitSet: false,\n        valueSet: null,\n        pdfVersion: 1.7\n      }\n    };\n\n    var configurationKeys = Object.keys(configurationTemplate);\n\n    var rangeArray = [];\n    var i = 0;\n    var j = 0;\n    var k = 0;\n    var isValid;\n\n    var method;\n    var value;\n\n    function arrayContainsElement(array, element) {\n      var iterator;\n      var result = false;\n\n      for (iterator = 0; iterator < array.length; iterator += 1) {\n        if (array[iterator] === element) {\n          result = true;\n        }\n      }\n      return result;\n    }\n\n    if (this.internal.viewerpreferences === undefined) {\n      this.internal.viewerpreferences = {};\n      this.internal.viewerpreferences.configuration = JSON.parse(\n        JSON.stringify(configurationTemplate)\n      );\n      this.internal.viewerpreferences.isSubscribed = false;\n    }\n    configuration = this.internal.viewerpreferences.configuration;\n\n    if (options === \"reset\" || doReset === true) {\n      var len = configurationKeys.length;\n\n      for (k = 0; k < len; k += 1) {\n        configuration[configurationKeys[k]].value =\n          configuration[configurationKeys[k]].defaultValue;\n        configuration[configurationKeys[k]].explicitSet = false;\n      }\n    }\n\n    if (typeof options === \"object\") {\n      for (method in options) {\n        value = options[method];\n        if (\n          arrayContainsElement(configurationKeys, method) &&\n          value !== undefined\n        ) {\n          if (\n            configuration[method].type === \"boolean\" &&\n            typeof value === \"boolean\"\n          ) {\n            configuration[method].value = value;\n          } else if (\n            configuration[method].type === \"name\" &&\n            arrayContainsElement(configuration[method].valueSet, value)\n          ) {\n            configuration[method].value = value;\n          } else if (\n            configuration[method].type === \"integer\" &&\n            Number.isInteger(value)\n          ) {\n            configuration[method].value = value;\n          } else if (configuration[method].type === \"array\") {\n            for (i = 0; i < value.length; i += 1) {\n              isValid = true;\n              if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n                rangeArray.push(String(value[i] - 1));\n              } else if (value[i].length > 1) {\n                for (j = 0; j < value[i].length; j += 1) {\n                  if (typeof value[i][j] !== \"number\") {\n                    isValid = false;\n                  }\n                }\n                if (isValid === true) {\n                  rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n                }\n              }\n            }\n            configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n          } else {\n            configuration[method].value = configuration[method].defaultValue;\n          }\n\n          configuration[method].explicitSet = true;\n        }\n      }\n    }\n\n    if (this.internal.viewerpreferences.isSubscribed === false) {\n      this.internal.events.subscribe(\"putCatalog\", function() {\n        var pdfDict = [];\n        var vPref;\n        for (vPref in configuration) {\n          if (configuration[vPref].explicitSet === true) {\n            if (configuration[vPref].type === \"name\") {\n              pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n            } else {\n              pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n            }\n          }\n        }\n        if (pdfDict.length !== 0) {\n          this.internal.write(\n            \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n          );\n        }\n      });\n      this.internal.viewerpreferences.isSubscribed = true;\n    }\n\n    this.internal.viewerpreferences.configuration = configuration;\n    return this;\n  };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var postPutResources = function() {\n    var xmpmeta_beginning = '<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">';\n    var rdf_beginning =\n      '<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"' +\n      this.internal.__metadata__.namespaceuri +\n      '\"><jspdf:metadata>';\n    var rdf_ending = \"</jspdf:metadata></rdf:Description></rdf:RDF>\";\n    var xmpmeta_ending = \"</x:xmpmeta>\";\n    var utf8_xmpmeta_beginning = unescape(\n      encodeURIComponent(xmpmeta_beginning)\n    );\n    var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n    var utf8_metadata = unescape(\n      encodeURIComponent(this.internal.__metadata__.metadata)\n    );\n    var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n    var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n    var total_len =\n      utf8_rdf_beginning.length +\n      utf8_metadata.length +\n      utf8_rdf_ending.length +\n      utf8_xmpmeta_beginning.length +\n      utf8_xmpmeta_ending.length;\n\n    this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n    this.internal.write(\n      \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n    );\n    this.internal.write(\"stream\");\n    this.internal.write(\n      utf8_xmpmeta_beginning +\n        utf8_rdf_beginning +\n        utf8_metadata +\n        utf8_rdf_ending +\n        utf8_xmpmeta_ending\n    );\n    this.internal.write(\"endstream\");\n    this.internal.write(\"endobj\");\n  };\n\n  var putCatalog = function() {\n    if (this.internal.__metadata__.metadata_object_number) {\n      this.internal.write(\n        \"/Metadata \" +\n          this.internal.__metadata__.metadata_object_number +\n          \" 0 R\"\n      );\n    }\n  };\n\n  /**\n   * Adds XMP formatted metadata to PDF\n   *\n   * @name addMetadata\n   * @function\n   * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n   * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n   * @returns {jsPDF} jsPDF-instance\n   */\n  jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n    if (typeof this.internal.__metadata__ === \"undefined\") {\n      this.internal.__metadata__ = {\n        metadata: metadata,\n        namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n      };\n      this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n      this.internal.events.subscribe(\"postPutResources\", postPutResources);\n    }\n    return this;\n  };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n  \"use strict\";\n  var jsPDFAPI = jsPDF.API;\n\n  /***************************************************************************************************/\n  /* function : pdfEscape16                                                                          */\n  /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n  /*   the corresponding glyph id and width, and then adding padding to the string.                  */\n  /***************************************************************************************************/\n  var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n    var widths = font.metadata.Unicode.widths;\n    var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n    var ar = [\"\"];\n    for (var i = 0, l = text.length, t; i < l; ++i) {\n      t = font.metadata.characterToGlyph(text.charCodeAt(i));\n      font.metadata.glyIdsUsed.push(t);\n      font.metadata.toUnicode[t] = text.charCodeAt(i);\n      if (widths.indexOf(t) == -1) {\n        widths.push(t);\n        widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n      }\n      if (t == \"0\") {\n        //Spaces are not allowed in cmap.\n        return ar.join(\"\");\n      } else {\n        t = t.toString(16);\n        ar.push(padz[4 - t.length], t);\n      }\n    }\n    return ar.join(\"\");\n  });\n\n  var toUnicodeCmap = function(map) {\n    var code, codes, range, unicode, unicodeMap, _i, _len;\n    unicodeMap =\n      \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n  /Registry (Adobe)\\n  /Ordering (UCS)\\n  /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\";\n    codes = Object.keys(map).sort(function(a, b) {\n      return a - b;\n    });\n\n    range = [];\n    for (_i = 0, _len = codes.length; _i < _len; _i++) {\n      code = codes[_i];\n      if (range.length >= 100) {\n        unicodeMap +=\n          \"\\n\" +\n          range.length +\n          \" beginbfchar\\n\" +\n          range.join(\"\\n\") +\n          \"\\nendbfchar\";\n        range = [];\n      }\n\n      if (\n        map[code] !== undefined &&\n        map[code] !== null &&\n        typeof map[code].toString === \"function\"\n      ) {\n        unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n        code = (\"0000\" + (+code).toString(16)).slice(-4);\n        range.push(\"<\" + code + \"><\" + unicode + \">\");\n      }\n    }\n\n    if (range.length) {\n      unicodeMap +=\n        \"\\n\" +\n        range.length +\n        \" beginbfchar\\n\" +\n        range.join(\"\\n\") +\n        \"\\nendbfchar\\n\";\n    }\n    unicodeMap +=\n      \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n    return unicodeMap;\n  };\n\n  var identityHFunction = function(options) {\n    var font = options.font;\n    var out = options.out;\n    var newObject = options.newObject;\n    var putStream = options.putStream;\n    var pdfEscapeWithNeededParanthesis = options.pdfEscapeWithNeededParanthesis;\n\n    if (\n      font.metadata instanceof jsPDF.API.TTFFont &&\n      font.encoding === \"Identity-H\"\n    ) {\n      //Tag with Identity-H\n      var widths = font.metadata.Unicode.widths;\n      var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n      var pdfOutput = data;\n      var pdfOutput2 = \"\";\n      for (var i = 0; i < pdfOutput.length; i++) {\n        pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n      }\n      var fontTable = newObject();\n      putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n      out(\"endobj\");\n\n      var cmap = newObject();\n      var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n      putStream({ data: cmapData, addLength1: true, objectId: cmap });\n      out(\"endobj\");\n\n      var fontDescriptor = newObject();\n      out(\"<<\");\n      out(\"/Type /FontDescriptor\");\n      out(\"/FontName /\" + pdfEscapeWithNeededParanthesis(font.fontName));\n      out(\"/FontFile2 \" + fontTable + \" 0 R\");\n      out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n      out(\"/Flags \" + font.metadata.flags);\n      out(\"/StemV \" + font.metadata.stemV);\n      out(\"/ItalicAngle \" + font.metadata.italicAngle);\n      out(\"/Ascent \" + font.metadata.ascender);\n      out(\"/Descent \" + font.metadata.decender);\n      out(\"/CapHeight \" + font.metadata.capHeight);\n      out(\">>\");\n      out(\"endobj\");\n\n      var DescendantFont = newObject();\n      out(\"<<\");\n      out(\"/Type /Font\");\n      out(\"/BaseFont /\" + pdfEscapeWithNeededParanthesis(font.fontName));\n      out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n      out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n      out(\"/CIDToGIDMap /Identity\");\n      out(\"/DW 1000\");\n      out(\"/Subtype /CIDFontType2\");\n      out(\"/CIDSystemInfo\");\n      out(\"<<\");\n      out(\"/Supplement 0\");\n      out(\"/Registry (Adobe)\");\n      out(\"/Ordering (\" + font.encoding + \")\");\n      out(\">>\");\n      out(\">>\");\n      out(\"endobj\");\n\n      font.objectNumber = newObject();\n      out(\"<<\");\n      out(\"/Type /Font\");\n      out(\"/Subtype /Type0\");\n      out(\"/ToUnicode \" + cmap + \" 0 R\");\n      out(\"/BaseFont /\" + pdfEscapeWithNeededParanthesis(font.fontName));\n      out(\"/Encoding /\" + font.encoding);\n      out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n      out(\">>\");\n      out(\"endobj\");\n\n      font.isAlreadyPutted = true;\n    }\n  };\n\n  jsPDFAPI.events.push([\n    \"putFont\",\n    function(args) {\n      identityHFunction(args);\n    }\n  ]);\n\n  var winAnsiEncodingFunction = function(options) {\n    var font = options.font;\n    var out = options.out;\n    var newObject = options.newObject;\n    var putStream = options.putStream;\n    var pdfEscapeWithNeededParanthesis = options.pdfEscapeWithNeededParanthesis;\n\n    if (\n      font.metadata instanceof jsPDF.API.TTFFont &&\n      font.encoding === \"WinAnsiEncoding\"\n    ) {\n      //Tag with WinAnsi encoding\n      var data = font.metadata.rawData;\n      var pdfOutput = data;\n      var pdfOutput2 = \"\";\n      for (var i = 0; i < pdfOutput.length; i++) {\n        pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n      }\n      var fontTable = newObject();\n      putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n      out(\"endobj\");\n\n      var cmap = newObject();\n      var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n      putStream({ data: cmapData, addLength1: true, objectId: cmap });\n      out(\"endobj\");\n\n      var fontDescriptor = newObject();\n      out(\"<<\");\n      out(\"/Descent \" + font.metadata.decender);\n      out(\"/CapHeight \" + font.metadata.capHeight);\n      out(\"/StemV \" + font.metadata.stemV);\n      out(\"/Type /FontDescriptor\");\n      out(\"/FontFile2 \" + fontTable + \" 0 R\");\n      out(\"/Flags 96\");\n      out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n      out(\"/FontName /\" + pdfEscapeWithNeededParanthesis(font.fontName));\n      out(\"/ItalicAngle \" + font.metadata.italicAngle);\n      out(\"/Ascent \" + font.metadata.ascender);\n      out(\">>\");\n      out(\"endobj\");\n      font.objectNumber = newObject();\n      for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n        font.metadata.hmtx.widths[j] = parseInt(\n          font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n        ); //Change the width of Em units to Point units.\n      }\n      out(\n        \"<</Subtype/TrueType/Type/Font/ToUnicode \" +\n          cmap +\n          \" 0 R/BaseFont/\" +\n          pdfEscapeWithNeededParanthesis(font.fontName) +\n          \"/FontDescriptor \" +\n          fontDescriptor +\n          \" 0 R\" +\n          \"/Encoding/\" +\n          font.encoding +\n          \" /FirstChar 29 /LastChar 255 /Widths \" +\n          jsPDF.API.PDFObject.convert(font.metadata.hmtx.widths) +\n          \">>\"\n      );\n      out(\"endobj\");\n      font.isAlreadyPutted = true;\n    }\n  };\n\n  jsPDFAPI.events.push([\n    \"putFont\",\n    function(args) {\n      winAnsiEncodingFunction(args);\n    }\n  ]);\n\n  var utf8TextFunction = function(args) {\n    var text = args.text || \"\";\n    var x = args.x;\n    var y = args.y;\n    var options = args.options || {};\n    var mutex = args.mutex || {};\n\n    var pdfEscape = mutex.pdfEscape;\n    var activeFontKey = mutex.activeFontKey;\n    var fonts = mutex.fonts;\n    var key = activeFontKey;\n\n    var str = \"\",\n      s = 0,\n      cmapConfirm;\n    var strText = \"\";\n    var encoding = fonts[key].encoding;\n\n    if (fonts[key].encoding !== \"Identity-H\") {\n      return {\n        text: text,\n        x: x,\n        y: y,\n        options: options,\n        mutex: mutex\n      };\n    }\n    strText = text;\n\n    key = activeFontKey;\n    if (Array.isArray(text)) {\n      strText = text[0];\n    }\n    for (s = 0; s < strText.length; s += 1) {\n      if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n        cmapConfirm =\n          fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n        /*\n             if (Object.prototype.toString.call(text) === '[object Array]') {\n                var i = 0;\n               // for (i = 0; i < text.length; i += 1) {\n                    if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n                        cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n                    } else {\n                        \n                    }\n                //}\n                \n            } else {\n                cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n            }*/\n      }\n      if (!cmapConfirm) {\n        if (\n          strText[s].charCodeAt(0) < 256 &&\n          fonts[key].metadata.hasOwnProperty(\"Unicode\")\n        ) {\n          str += strText[s];\n        } else {\n          str += \"\";\n        }\n      } else {\n        str += strText[s];\n      }\n    }\n    var result = \"\";\n    if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n      //For the default 13 font\n      result = pdfEscape(str, key)\n        .split(\"\")\n        .map(function(cv) {\n          return cv.charCodeAt(0).toString(16);\n        })\n        .join(\"\");\n    } else if (encoding === \"Identity-H\") {\n      result = pdfEscape16(str, fonts[key]);\n    }\n    mutex.isHex = true;\n\n    return {\n      text: result,\n      x: x,\n      y: y,\n      options: options,\n      mutex: mutex\n    };\n  };\n\n  var utf8EscapeFunction = function(parms) {\n    var text = parms.text || \"\",\n      x = parms.x,\n      y = parms.y,\n      options = parms.options,\n      mutex = parms.mutex;\n    var tmpText = [];\n    var args = {\n      text: text,\n      x: x,\n      y: y,\n      options: options,\n      mutex: mutex\n    };\n\n    if (Array.isArray(text)) {\n      var i = 0;\n      for (i = 0; i < text.length; i += 1) {\n        if (Array.isArray(text[i])) {\n          if (text[i].length === 3) {\n            tmpText.push([\n              utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n                .text,\n              text[i][1],\n              text[i][2]\n            ]);\n          } else {\n            tmpText.push(\n              utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n            );\n          }\n        } else {\n          tmpText.push(\n            utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n          );\n        }\n      }\n      parms.text = tmpText;\n    } else {\n      parms.text = utf8TextFunction(\n        Object.assign({}, args, { text: text })\n      ).text;\n    }\n  };\n\n  jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n  \"use strict\";\n\n  var _initializeVFS = function() {\n    if (typeof this.internal.vFS === \"undefined\") {\n      this.internal.vFS = {};\n    }\n    return true;\n  };\n\n  /**\n   * Check if the file exists in the vFS\n   *\n   * @name existsFileInVFS\n   * @function\n   * @param {string} Possible filename in the vFS.\n   * @returns {boolean}\n   * @example\n   * doc.existsFileInVFS(\"someFile.txt\");\n   */\n  jsPDFAPI.existsFileInVFS = function(filename) {\n    _initializeVFS.call(this);\n    return typeof this.internal.vFS[filename] !== \"undefined\";\n  };\n\n  /**\n   * Add a file to the vFS\n   *\n   * @name addFileToVFS\n   * @function\n   * @param {string} filename The name of the file which should be added.\n   * @param {string} filecontent The content of the file.\n   * @returns {jsPDF}\n   * @example\n   * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n   */\n  jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n    _initializeVFS.call(this);\n    this.internal.vFS[filename] = filecontent;\n    return this;\n  };\n\n  /**\n   * Get the file from the vFS\n   *\n   * @name getFileFromVFS\n   * @function\n   * @param {string} The name of the file which gets requested.\n   * @returns {string}\n   * @example\n   * doc.getFileFromVFS(\"someFile.txt\");\n   */\n  jsPDFAPI.getFileFromVFS = function(filename) {\n    _initializeVFS.call(this);\n\n    if (typeof this.internal.vFS[filename] !== \"undefined\") {\n      return this.internal.vFS[filename];\n    }\n    return null;\n  };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n  \"use strict\";\n  /**\n   * Table of Unicode types.\n   *\n   * Generated by:\n   *\n   * var bidi = require(\"./bidi/index\");\n   * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n   * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n   * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n   *\n   * for( var i = 0; i < bidi_accumulate.length; i++) {\n   * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n   * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n   * }\n   * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n   * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n   *\n   * Based on:\n   * https://github.com/mathiasbynens/unicode-8.0.0\n   */\n  var bidiUnicodeTypes = [\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"S\",\n    \"B\",\n    \"S\",\n    \"WS\",\n    \"B\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"B\",\n    \"B\",\n    \"B\",\n    \"S\",\n    \"WS\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ES\",\n    \"CS\",\n    \"ES\",\n    \"CS\",\n    \"CS\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"B\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"CS\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"BN\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"EN\",\n    \"EN\",\n    \"N\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"EN\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\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    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"ET\",\n    \"ET\",\n    \"AL\",\n    \"CS\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"AN\",\n    \"ET\",\n    \"AN\",\n    \"AN\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AN\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\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    \"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    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"WS\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"L\",\n    \"R\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"WS\",\n    \"B\",\n    \"LRE\",\n    \"RLE\",\n    \"PDF\",\n    \"LRO\",\n    \"RLO\",\n    \"CS\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"WS\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"N\",\n    \"LRI\",\n    \"RLI\",\n    \"FSI\",\n    \"PDI\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"BN\",\n    \"EN\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"ES\",\n    \"ES\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"ES\",\n    \"ES\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"R\",\n    \"NSM\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"ES\",\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    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"N\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"R\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"NSM\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"ES\",\n    \"ES\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"AL\",\n    \"N\",\n    \"N\",\n    \"BN\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ES\",\n    \"CS\",\n    \"ES\",\n    \"CS\",\n    \"CS\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"EN\",\n    \"CS\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"L\",\n    \"L\",\n    \"L\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"ET\",\n    \"ET\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\",\n    \"N\"\n  ];\n\n  /**\n   * Unicode Bidi algorithm compliant Bidi engine.\n   * For reference see http://unicode.org/reports/tr9/\n   */\n\n  /**\n   * constructor ( options )\n   *\n   * Initializes Bidi engine\n   *\n   * @param {Object} See 'setOptions' below for detailed description.\n   * options are cashed between invocation of 'doBidiReorder' method\n   *\n   * sample usage pattern of BidiEngine:\n   * var opt = {\n   * \tisInputVisual: true,\n   * \tisInputRtl: false,\n   * \tisOutputVisual: false,\n   * \tisOutputRtl: false,\n   * \tisSymmetricSwapping: true\n   * }\n   * var sourceToTarget = [], levels = [];\n   * var bidiEng = Globalize.bidiEngine(opt);\n   * var src = \"text string to be reordered\";\n   * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n   */\n\n  jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n    var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n    var _STATE_TABLE_LTR = [\n      [0, 3, 0, 1, 0, 0, 0],\n      [0, 3, 0, 1, 2, 2, 0],\n      [0, 3, 0, 0x11, 2, 0, 1],\n      [0, 3, 5, 5, 4, 1, 0],\n      [0, 3, 0x15, 0x15, 4, 0, 1],\n      [0, 3, 5, 5, 4, 2, 0]\n    ];\n\n    var _STATE_TABLE_RTL = [\n      [2, 0, 1, 1, 0, 1, 0],\n      [2, 0, 1, 1, 0, 2, 0],\n      [2, 0, 2, 1, 3, 2, 0],\n      [2, 0, 2, 0x21, 3, 1, 1]\n    ];\n\n    var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n    var _UNICODE_RANGES_MAP = {\n      0: 0,\n      5: 1,\n      6: 2,\n      7: 3,\n      0x20: 4,\n      0xfb: 5,\n      0xfe: 6,\n      0xff: 7\n    };\n\n    var _SWAP_TABLE = [\n      \"\\u0028\",\n      \"\\u0029\",\n      \"\\u0028\",\n      \"\\u003C\",\n      \"\\u003E\",\n      \"\\u003C\",\n      \"\\u005B\",\n      \"\\u005D\",\n      \"\\u005B\",\n      \"\\u007B\",\n      \"\\u007D\",\n      \"\\u007B\",\n      \"\\u00AB\",\n      \"\\u00BB\",\n      \"\\u00AB\",\n      \"\\u2039\",\n      \"\\u203A\",\n      \"\\u2039\",\n      \"\\u2045\",\n      \"\\u2046\",\n      \"\\u2045\",\n      \"\\u207D\",\n      \"\\u207E\",\n      \"\\u207D\",\n      \"\\u208D\",\n      \"\\u208E\",\n      \"\\u208D\",\n      \"\\u2264\",\n      \"\\u2265\",\n      \"\\u2264\",\n      \"\\u2329\",\n      \"\\u232A\",\n      \"\\u2329\",\n      \"\\uFE59\",\n      \"\\uFE5A\",\n      \"\\uFE59\",\n      \"\\uFE5B\",\n      \"\\uFE5C\",\n      \"\\uFE5B\",\n      \"\\uFE5D\",\n      \"\\uFE5E\",\n      \"\\uFE5D\",\n      \"\\uFE64\",\n      \"\\uFE65\",\n      \"\\uFE64\"\n    ];\n\n    var _LTR_RANGES_REG_EXPR = new RegExp(\n      /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n    );\n\n    var _lastArabic = false,\n      _hasUbatAl,\n      _hasUbatB,\n      _hasUbatS,\n      DIR_LTR = 0,\n      DIR_RTL = 1,\n      _isInVisual,\n      _isInRtl,\n      _isOutVisual,\n      _isOutRtl,\n      _isSymmetricSwapping,\n      _dir = DIR_LTR;\n\n    this.__bidiEngine__ = {};\n\n    var _init = function(text, sourceToTargetMap) {\n      if (sourceToTargetMap) {\n        for (var i = 0; i < text.length; i++) {\n          sourceToTargetMap[i] = i;\n        }\n      }\n      if (_isInRtl === undefined) {\n        _isInRtl = _isContextualDirRtl(text);\n      }\n      if (_isOutRtl === undefined) {\n        _isOutRtl = _isContextualDirRtl(text);\n      }\n    };\n\n    // for reference see 3.2 in http://unicode.org/reports/tr9/\n    //\n    var _getCharType = function(ch) {\n      var charCode = ch.charCodeAt(),\n        range = charCode >> 8,\n        rangeIdx = _UNICODE_RANGES_MAP[range];\n\n      if (rangeIdx !== undefined) {\n        return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n      } else if (range === 0xfc || range === 0xfd) {\n        return \"AL\";\n      } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n        //unlikely case\n        return \"L\";\n      } else if (range === 8) {\n        // even less likely\n        return \"R\";\n      }\n      return \"N\"; //undefined type, mark as neutral\n    };\n\n    var _isContextualDirRtl = function(text) {\n      for (var i = 0, charType; i < text.length; i++) {\n        charType = _getCharType(text.charAt(i));\n        if (charType === \"L\") {\n          return false;\n        } else if (charType === \"R\") {\n          return true;\n        }\n      }\n      return false;\n    };\n\n    // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n    //\n    var _resolveCharType = function(chars, types, resolvedTypes, index) {\n      var cType = types[index],\n        wType,\n        nType,\n        i,\n        len;\n      switch (cType) {\n        case \"L\":\n        case \"R\":\n          _lastArabic = false;\n          break;\n        case \"N\":\n        case \"AN\":\n          break;\n\n        case \"EN\":\n          if (_lastArabic) {\n            cType = \"AN\";\n          }\n          break;\n\n        case \"AL\":\n          _lastArabic = true;\n          _hasUbatAl = true;\n          cType = \"R\";\n          break;\n\n        case \"WS\":\n          cType = \"N\";\n          break;\n\n        case \"CS\":\n          if (\n            index < 1 ||\n            index + 1 >= types.length ||\n            ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n            ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n          ) {\n            cType = \"N\";\n          } else if (_lastArabic) {\n            nType = \"AN\";\n          }\n          cType = nType === wType ? nType : \"N\";\n          break;\n\n        case \"ES\":\n          wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n          cType =\n            wType === \"EN\" &&\n            index + 1 < types.length &&\n            types[index + 1] === \"EN\"\n              ? \"EN\"\n              : \"N\";\n          break;\n\n        case \"ET\":\n          if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n            cType = \"EN\";\n            break;\n          } else if (_lastArabic) {\n            cType = \"N\";\n            break;\n          }\n          i = index + 1;\n          len = types.length;\n          while (i < len && types[i] === \"ET\") {\n            i++;\n          }\n          if (i < len && types[i] === \"EN\") {\n            cType = \"EN\";\n          } else {\n            cType = \"N\";\n          }\n          break;\n\n        case \"NSM\":\n          if (_isInVisual && !_isInRtl) {\n            //V->L\n            len = types.length;\n            i = index + 1;\n            while (i < len && types[i] === \"NSM\") {\n              i++;\n            }\n            if (i < len) {\n              var c = chars[index];\n              var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n              wType = types[i];\n              if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n                cType = \"R\";\n                break;\n              }\n            }\n          }\n          if (index < 1 || (wType = types[index - 1]) === \"B\") {\n            cType = \"N\";\n          } else {\n            cType = resolvedTypes[index - 1];\n          }\n          break;\n\n        case \"B\":\n          _lastArabic = false;\n          _hasUbatB = true;\n          cType = _dir;\n          break;\n\n        case \"S\":\n          _hasUbatS = true;\n          cType = \"N\";\n          break;\n\n        case \"LRE\":\n        case \"RLE\":\n        case \"LRO\":\n        case \"RLO\":\n        case \"PDF\":\n          _lastArabic = false;\n          break;\n        case \"BN\":\n          cType = \"N\";\n          break;\n      }\n      return cType;\n    };\n\n    var _handleUbatS = function(types, levels, length) {\n      for (var i = 0; i < length; i++) {\n        if (types[i] === \"S\") {\n          levels[i] = _dir;\n          for (var j = i - 1; j >= 0; j--) {\n            if (types[j] === \"WS\") {\n              levels[j] = _dir;\n            } else {\n              break;\n            }\n          }\n        }\n      }\n    };\n\n    var _invertString = function(text, sourceToTargetMap, levels) {\n      var charArray = text.split(\"\");\n      if (levels) {\n        _computeLevels(charArray, levels, { hiLevel: _dir });\n      }\n      charArray.reverse();\n      sourceToTargetMap && sourceToTargetMap.reverse();\n      return charArray.join(\"\");\n    };\n\n    // For reference see 3.3 in http://unicode.org/reports/tr9/\n    //\n    var _computeLevels = function(chars, levels, params) {\n      var action,\n        condition,\n        i,\n        index,\n        newLevel,\n        prevState,\n        condPos = -1,\n        len = chars.length,\n        newState = 0,\n        resolvedTypes = [],\n        stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n        types = [];\n\n      _lastArabic = false;\n      _hasUbatAl = false;\n      _hasUbatB = false;\n      _hasUbatS = false;\n      for (i = 0; i < len; i++) {\n        types[i] = _getCharType(chars[i]);\n      }\n      for (index = 0; index < len; index++) {\n        prevState = newState;\n        resolvedTypes[index] = _resolveCharType(\n          chars,\n          types,\n          resolvedTypes,\n          index\n        );\n        newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n        action = newState & 0xf0;\n        newState &= 0x0f;\n        levels[index] = newLevel = stateTable[newState][5];\n        if (action > 0) {\n          if (action === 0x10) {\n            for (i = condPos; i < index; i++) {\n              levels[i] = 1;\n            }\n            condPos = -1;\n          } else {\n            condPos = -1;\n          }\n        }\n        condition = stateTable[newState][6];\n        if (condition) {\n          if (condPos === -1) {\n            condPos = index;\n          }\n        } else {\n          if (condPos > -1) {\n            for (i = condPos; i < index; i++) {\n              levels[i] = newLevel;\n            }\n            condPos = -1;\n          }\n        }\n        if (types[index] === \"B\") {\n          levels[index] = 0;\n        }\n        params.hiLevel |= newLevel;\n      }\n      if (_hasUbatS) {\n        _handleUbatS(types, levels, len);\n      }\n    };\n\n    // for reference see 3.4 in http://unicode.org/reports/tr9/\n    //\n    var _invertByLevel = function(\n      level,\n      charArray,\n      sourceToTargetMap,\n      levels,\n      params\n    ) {\n      if (params.hiLevel < level) {\n        return;\n      }\n      if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n        charArray.reverse();\n        sourceToTargetMap && sourceToTargetMap.reverse();\n        return;\n      }\n      var ch,\n        high,\n        end,\n        low,\n        len = charArray.length,\n        start = 0;\n\n      while (start < len) {\n        if (levels[start] >= level) {\n          end = start + 1;\n          while (end < len && levels[end] >= level) {\n            end++;\n          }\n          for (low = start, high = end - 1; low < high; low++, high--) {\n            ch = charArray[low];\n            charArray[low] = charArray[high];\n            charArray[high] = ch;\n            if (sourceToTargetMap) {\n              ch = sourceToTargetMap[low];\n              sourceToTargetMap[low] = sourceToTargetMap[high];\n              sourceToTargetMap[high] = ch;\n            }\n          }\n          start = end;\n        }\n        start++;\n      }\n    };\n\n    // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n    //\n    var _symmetricSwap = function(charArray, levels, params) {\n      if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n        for (var i = 0, index; i < charArray.length; i++) {\n          if (levels[i] === 1) {\n            index = _SWAP_TABLE.indexOf(charArray[i]);\n            if (index >= 0) {\n              charArray[i] = _SWAP_TABLE[index + 1];\n            }\n          }\n        }\n      }\n    };\n\n    var _reorder = function(text, sourceToTargetMap, levels) {\n      var charArray = text.split(\"\"),\n        params = { hiLevel: _dir };\n\n      if (!levels) {\n        levels = [];\n      }\n      _computeLevels(charArray, levels, params);\n      _symmetricSwap(charArray, levels, params);\n      _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n      _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n      return charArray.join(\"\");\n    };\n\n    // doBidiReorder( text, sourceToTargetMap, levels )\n    // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n    // Returns reordered string\n    // @text [String]:\n    // - input string to be reordered, this is input parameter\n    // $sourceToTargetMap [Array] (optional)\n    // - resultant mapping between input and output strings, this is output parameter\n    // $levels [Array] (optional)\n    // - array of calculated Bidi levels, , this is output parameter\n    this.__bidiEngine__.doBidiReorder = function(\n      text,\n      sourceToTargetMap,\n      levels\n    ) {\n      _init(text, sourceToTargetMap);\n      if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n        // LLTR->VLTR, LRTL->VLTR\n        _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n        text = _reorder(text, sourceToTargetMap, levels);\n      } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n        // VRTL->VLTR, VLTR->VRTL\n        _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n        text = _invertString(text, sourceToTargetMap, levels);\n      } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n        // LLTR->VRTL, LRTL->VRTL\n        _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n        text = _reorder(text, sourceToTargetMap, levels);\n        text = _invertString(text, sourceToTargetMap);\n      } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n        // VLTR->LLTR\n        _dir = DIR_LTR;\n        text = _reorder(text, sourceToTargetMap, levels);\n      } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n        // VLTR->LRTL, VRTL->LLTR\n        text = _invertString(text, sourceToTargetMap);\n        if (_isInRtl) {\n          //LLTR -> VLTR\n          _dir = DIR_LTR;\n          text = _reorder(text, sourceToTargetMap, levels);\n        } else {\n          //LRTL -> VRTL\n          _dir = DIR_RTL;\n          text = _reorder(text, sourceToTargetMap, levels);\n          text = _invertString(text, sourceToTargetMap);\n        }\n      } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n        //  VRTL->LRTL\n        _dir = DIR_RTL;\n        text = _reorder(text, sourceToTargetMap, levels);\n        text = _invertString(text, sourceToTargetMap);\n      } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n        // LRTL->LLTR, LLTR->LRTL\n        var isSymmetricSwappingOrig = _isSymmetricSwapping;\n        if (_isInRtl) {\n          //LRTL->LLTR\n          _dir = DIR_RTL;\n          text = _reorder(text, sourceToTargetMap, levels);\n          _dir = DIR_LTR;\n          _isSymmetricSwapping = false;\n          text = _reorder(text, sourceToTargetMap, levels);\n          _isSymmetricSwapping = isSymmetricSwappingOrig;\n        } else {\n          //LLTR->LRTL\n          _dir = DIR_LTR;\n          text = _reorder(text, sourceToTargetMap, levels);\n          text = _invertString(text, sourceToTargetMap);\n          _dir = DIR_RTL;\n          _isSymmetricSwapping = false;\n          text = _reorder(text, sourceToTargetMap, levels);\n          _isSymmetricSwapping = isSymmetricSwappingOrig;\n          text = _invertString(text, sourceToTargetMap);\n        }\n      }\n      return text;\n    };\n\n    /**\n     * @name setOptions( options )\n     * @function\n     * Sets options for Bidi conversion\n     * @param {Object}:\n     * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n     * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n     * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n     * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n     * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n     */\n    this.__bidiEngine__.setOptions = function(options) {\n      if (options) {\n        _isInVisual = options.isInputVisual;\n        _isOutVisual = options.isOutputVisual;\n        _isInRtl = options.isInputRtl;\n        _isOutRtl = options.isOutputRtl;\n        _isSymmetricSwapping = options.isSymmetricSwapping;\n      }\n    };\n\n    this.__bidiEngine__.setOptions(options);\n    return this.__bidiEngine__;\n  };\n\n  var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n  var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n  var bidiEngineFunction = function(args) {\n    var text = args.text;\n    var x = args.x;\n    var y = args.y;\n    var options = args.options || {};\n    var mutex = args.mutex || {};\n    var lang = options.lang;\n    var tmpText = [];\n\n    options.isInputVisual =\n      typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n    bidiEngine.setOptions(options);\n\n    if (Object.prototype.toString.call(text) === \"[object Array]\") {\n      var i = 0;\n      tmpText = [];\n      for (i = 0; i < text.length; i += 1) {\n        if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n          tmpText.push([\n            bidiEngine.doBidiReorder(text[i][0]),\n            text[i][1],\n            text[i][2]\n          ]);\n        } else {\n          tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n        }\n      }\n      args.text = tmpText;\n    } else {\n      args.text = bidiEngine.doBidiReorder(text);\n    }\n    bidiEngine.setOptions({ isInputVisual: true });\n  };\n\n  jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font                          *\n * Start Data : 2017. 01. 22.                   *\n * Comment : TEXT API                           *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n  /************************************************************************/\n  /* function : open                                                       */\n  /* comment : Decode the encoded ttf content and create a TTFFont object. */\n  /************************************************************************/\n  TTFFont.open = function(file) {\n    return new TTFFont(file);\n  };\n  /***************************************************************/\n  /* function : TTFFont gernerator                               */\n  /* comment : Decode TTF contents are parsed, Data,             */\n  /* Subset object is created, and registerTTF function is called.*/\n  /***************************************************************/\n  function TTFFont(rawData) {\n    var data;\n    this.rawData = rawData;\n    data = this.contents = new Data(rawData);\n    this.contents.pos = 4;\n    if (data.readString(4) === \"ttcf\") {\n      throw new Error(\"TTCF not supported.\");\n    } else {\n      data.pos = 0;\n      this.parse();\n      this.subset = new Subset(this);\n      this.registerTTF();\n    }\n  }\n  /********************************************************/\n  /* function : parse                                     */\n  /* comment : TTF Parses the file contents by each table.*/\n  /********************************************************/\n  TTFFont.prototype.parse = function() {\n    this.directory = new Directory(this.contents);\n    this.head = new HeadTable(this);\n    this.name = new NameTable(this);\n    this.cmap = new CmapTable(this);\n    this.toUnicode = {};\n    this.hhea = new HheaTable(this);\n    this.maxp = new MaxpTable(this);\n    this.hmtx = new HmtxTable(this);\n    this.post = new PostTable(this);\n    this.os2 = new OS2Table(this);\n    this.loca = new LocaTable(this);\n    this.glyf = new GlyfTable(this);\n    this.ascender =\n      (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n    this.decender =\n      (this.os2.exists && this.os2.decender) || this.hhea.decender;\n    this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n    return (this.bbox = [\n      this.head.xMin,\n      this.head.yMin,\n      this.head.xMax,\n      this.head.yMax\n    ]);\n  };\n  /***************************************************************/\n  /* function : registerTTF                                      */\n  /* comment : Get the value to assign pdf font descriptors.     */\n  /***************************************************************/\n  TTFFont.prototype.registerTTF = function() {\n    var e, hi, low, raw, _ref;\n    this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n    this.bbox = function() {\n      var _i, _len, _ref, _results;\n      _ref = this.bbox;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        e = _ref[_i];\n        _results.push(Math.round(e * this.scaleFactor));\n      }\n      return _results;\n    }.call(this);\n    this.stemV = 0;\n    if (this.post.exists) {\n      raw = this.post.italic_angle;\n      hi = raw >> 16;\n      low = raw & 0xff;\n      if ((hi & 0x8000) !== 0) {\n        hi = -((hi ^ 0xffff) + 1);\n      }\n      this.italicAngle = +(\"\" + hi + \".\" + low);\n    } else {\n      this.italicAngle = 0;\n    }\n    this.ascender = Math.round(this.ascender * this.scaleFactor);\n    this.decender = Math.round(this.decender * this.scaleFactor);\n    this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n    this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n    this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n    this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n    this.isSerif =\n      (_ref = this.familyClass) === 1 ||\n      _ref === 2 ||\n      _ref === 3 ||\n      _ref === 4 ||\n      _ref === 5 ||\n      _ref === 7;\n    this.isScript = this.familyClass === 10;\n    this.flags = 0;\n    if (this.post.isFixedPitch) {\n      this.flags |= 1 << 0;\n    }\n    if (this.isSerif) {\n      this.flags |= 1 << 1;\n    }\n    if (this.isScript) {\n      this.flags |= 1 << 3;\n    }\n    if (this.italicAngle !== 0) {\n      this.flags |= 1 << 6;\n    }\n    this.flags |= 1 << 5;\n    if (!this.cmap.unicode) {\n      throw new Error(\"No unicode cmap for font\");\n    }\n  };\n  TTFFont.prototype.characterToGlyph = function(character) {\n    var _ref;\n    return (\n      ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n      0\n    );\n  };\n  TTFFont.prototype.widthOfGlyph = function(glyph) {\n    var scale;\n    scale = 1000.0 / this.head.unitsPerEm;\n    return this.hmtx.forGlyph(glyph).advance * scale;\n  };\n  TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n    var charCode, i, scale, width, _ref;\n    string = \"\" + string;\n    width = 0;\n    for (\n      i = 0, _ref = string.length;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      charCode = string.charCodeAt(i);\n      width +=\n        this.widthOfGlyph(this.characterToGlyph(charCode)) +\n          charSpace * (1000 / size) || 0;\n    }\n    scale = size / 1000;\n    return width * scale;\n  };\n  TTFFont.prototype.lineHeight = function(size, includeGap) {\n    var gap;\n    if (includeGap == null) {\n      includeGap = false;\n    }\n    gap = includeGap ? this.lineGap : 0;\n    return ((this.ascender + gap - this.decender) / 1000) * size;\n  };\n  return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data                                                                              */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n  function Data(data) {\n    this.data = data != null ? data : [];\n    this.pos = 0;\n    this.length = this.data.length;\n  }\n  Data.prototype.readByte = function() {\n    return this.data[this.pos++];\n  };\n  Data.prototype.writeByte = function(byte) {\n    return (this.data[this.pos++] = byte);\n  };\n  Data.prototype.readUInt32 = function() {\n    var b1, b2, b3, b4;\n    b1 = this.readByte() * 0x1000000;\n    b2 = this.readByte() << 16;\n    b3 = this.readByte() << 8;\n    b4 = this.readByte();\n    return b1 + b2 + b3 + b4;\n  };\n  Data.prototype.writeUInt32 = function(val) {\n    this.writeByte((val >>> 24) & 0xff);\n    this.writeByte((val >> 16) & 0xff);\n    this.writeByte((val >> 8) & 0xff);\n    return this.writeByte(val & 0xff);\n  };\n  Data.prototype.readInt32 = function() {\n    var int;\n    int = this.readUInt32();\n    if (int >= 0x80000000) {\n      return int - 0x100000000;\n    } else {\n      return int;\n    }\n  };\n  Data.prototype.writeInt32 = function(val) {\n    if (val < 0) {\n      val += 0x100000000;\n    }\n    return this.writeUInt32(val);\n  };\n  Data.prototype.readUInt16 = function() {\n    var b1, b2;\n    b1 = this.readByte() << 8;\n    b2 = this.readByte();\n    return b1 | b2;\n  };\n  Data.prototype.writeUInt16 = function(val) {\n    this.writeByte((val >> 8) & 0xff);\n    return this.writeByte(val & 0xff);\n  };\n  Data.prototype.readInt16 = function() {\n    var int;\n    int = this.readUInt16();\n    if (int >= 0x8000) {\n      return int - 0x10000;\n    } else {\n      return int;\n    }\n  };\n  Data.prototype.writeInt16 = function(val) {\n    if (val < 0) {\n      val += 0x10000;\n    }\n    return this.writeUInt16(val);\n  };\n  Data.prototype.readString = function(length) {\n    var i, ret;\n    ret = [];\n    for (\n      i = 0;\n      0 <= length ? i < length : i > length;\n      i = 0 <= length ? ++i : --i\n    ) {\n      ret[i] = String.fromCharCode(this.readByte());\n    }\n    return ret.join(\"\");\n  };\n  Data.prototype.writeString = function(val) {\n    var i, _ref, _results;\n    _results = [];\n    for (\n      i = 0, _ref = val.length;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      _results.push(this.writeByte(val.charCodeAt(i)));\n    }\n    return _results;\n  };\n  /*Data.prototype.stringAt = function (pos, length) {\n            this.pos = pos;\n            return this.readString(length);\n        };*/\n  Data.prototype.readShort = function() {\n    return this.readInt16();\n  };\n  Data.prototype.writeShort = function(val) {\n    return this.writeInt16(val);\n  };\n  Data.prototype.readLongLong = function() {\n    var b1, b2, b3, b4, b5, b6, b7, b8;\n    b1 = this.readByte();\n    b2 = this.readByte();\n    b3 = this.readByte();\n    b4 = this.readByte();\n    b5 = this.readByte();\n    b6 = this.readByte();\n    b7 = this.readByte();\n    b8 = this.readByte();\n    if (b1 & 0x80) {\n      return (\n        ((b1 ^ 0xff) * 0x100000000000000 +\n          (b2 ^ 0xff) * 0x1000000000000 +\n          (b3 ^ 0xff) * 0x10000000000 +\n          (b4 ^ 0xff) * 0x100000000 +\n          (b5 ^ 0xff) * 0x1000000 +\n          (b6 ^ 0xff) * 0x10000 +\n          (b7 ^ 0xff) * 0x100 +\n          (b8 ^ 0xff) +\n          1) *\n        -1\n      );\n    }\n    return (\n      b1 * 0x100000000000000 +\n      b2 * 0x1000000000000 +\n      b3 * 0x10000000000 +\n      b4 * 0x100000000 +\n      b5 * 0x1000000 +\n      b6 * 0x10000 +\n      b7 * 0x100 +\n      b8\n    );\n  };\n  Data.prototype.writeLongLong = function(val) {\n    var high, low;\n    high = Math.floor(val / 0x100000000);\n    low = val & 0xffffffff;\n    this.writeByte((high >> 24) & 0xff);\n    this.writeByte((high >> 16) & 0xff);\n    this.writeByte((high >> 8) & 0xff);\n    this.writeByte(high & 0xff);\n    this.writeByte((low >> 24) & 0xff);\n    this.writeByte((low >> 16) & 0xff);\n    this.writeByte((low >> 8) & 0xff);\n    return this.writeByte(low & 0xff);\n  };\n  Data.prototype.readInt = function() {\n    return this.readInt32();\n  };\n  Data.prototype.writeInt = function(val) {\n    return this.writeInt32(val);\n  };\n  /*Data.prototype.slice = function (start, end) {\n            return this.data.slice(start, end);\n        };*/\n  Data.prototype.read = function(bytes) {\n    var buf, i;\n    buf = [];\n    for (\n      i = 0;\n      0 <= bytes ? i < bytes : i > bytes;\n      i = 0 <= bytes ? ++i : --i\n    ) {\n      buf.push(this.readByte());\n    }\n    return buf;\n  };\n  Data.prototype.write = function(bytes) {\n    var byte, i, _len, _results;\n    _results = [];\n    for (i = 0, _len = bytes.length; i < _len; i++) {\n      byte = bytes[i];\n      _results.push(this.writeByte(byte));\n    }\n    return _results;\n  };\n  return Data;\n})();\n\nvar Directory = (function() {\n  var checksum;\n\n  /*****************************************************************************************************/\n  /* function : Directory generator                                                                    */\n  /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n  /*****************************************************************************************************/\n  function Directory(data) {\n    var entry, i, _ref;\n    this.scalarType = data.readInt();\n    this.tableCount = data.readShort();\n    this.searchRange = data.readShort();\n    this.entrySelector = data.readShort();\n    this.rangeShift = data.readShort();\n    this.tables = {};\n    for (\n      i = 0, _ref = this.tableCount;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      entry = {\n        tag: data.readString(4),\n        checksum: data.readInt(),\n        offset: data.readInt(),\n        length: data.readInt()\n      };\n      this.tables[entry.tag] = entry;\n    }\n  }\n  /********************************************************************************************************/\n  /* function : encode                                                                                    */\n  /* comment : It encodes and stores the font table object and information used for the directory object. */\n  /********************************************************************************************************/\n  Directory.prototype.encode = function(tables) {\n    var adjustment,\n      directory,\n      directoryLength,\n      entrySelector,\n      headOffset,\n      log2,\n      offset,\n      rangeShift,\n      searchRange,\n      sum,\n      table,\n      tableCount,\n      tableData,\n      tag;\n    tableCount = Object.keys(tables).length;\n    log2 = Math.log(2);\n    searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n    entrySelector = Math.floor(searchRange / log2);\n    rangeShift = tableCount * 16 - searchRange;\n    directory = new Data();\n    directory.writeInt(this.scalarType);\n    directory.writeShort(tableCount);\n    directory.writeShort(searchRange);\n    directory.writeShort(entrySelector);\n    directory.writeShort(rangeShift);\n    directoryLength = tableCount * 16;\n    offset = directory.pos + directoryLength;\n    headOffset = null;\n    tableData = [];\n    for (tag in tables) {\n      table = tables[tag];\n      directory.writeString(tag);\n      directory.writeInt(checksum(table));\n      directory.writeInt(offset);\n      directory.writeInt(table.length);\n      tableData = tableData.concat(table);\n      if (tag === \"head\") {\n        headOffset = offset;\n      }\n      offset += table.length;\n      while (offset % 4) {\n        tableData.push(0);\n        offset++;\n      }\n    }\n    directory.write(tableData);\n    sum = checksum(directory.data);\n    adjustment = 0xb1b0afba - sum;\n    directory.pos = headOffset + 8;\n    directory.writeUInt32(adjustment);\n    return directory.data;\n  };\n  /***************************************************************/\n  /* function : checksum                                         */\n  /* comment : Duplicate the table for the tag.                  */\n  /***************************************************************/\n  checksum = function(data) {\n    var i, sum, tmp, _ref;\n    data = __slice.call(data);\n    while (data.length % 4) {\n      data.push(0);\n    }\n    tmp = new Data(data);\n    sum = 0;\n    for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n      sum += tmp.readUInt32();\n    }\n    return sum & 0xffffffff;\n  };\n  return Directory;\n})();\n\nvar Table,\n  __hasProp = {}.hasOwnProperty,\n  __extends = function(child, parent) {\n    for (var key in parent) {\n      if (__hasProp.call(parent, key)) child[key] = parent[key];\n    }\n\n    function ctor() {\n      this.constructor = child;\n    }\n    ctor.prototype = parent.prototype;\n    child.prototype = new ctor();\n    child.__super__ = parent.prototype;\n    return child;\n  };\n\n/***************************************************************/\n/* function : Table                                            */\n/* comment : Save info for each table, and parse the table.    */\n/***************************************************************/\nTable = (function() {\n  function Table(file) {\n    var info;\n    this.file = file;\n    info = this.file.directory.tables[this.tag];\n    this.exists = !!info;\n    if (info) {\n      (this.offset = info.offset), (this.length = info.length);\n      this.parse(this.file.contents);\n    }\n  }\n  Table.prototype.parse = function() {};\n  Table.prototype.encode = function() {};\n  Table.prototype.raw = function() {\n    if (!this.exists) {\n      return null;\n    }\n    this.file.contents.pos = this.offset;\n    return this.file.contents.read(this.length);\n  };\n  return Table;\n})();\n\nvar HeadTable = (function(_super) {\n  __extends(HeadTable, _super);\n\n  function HeadTable() {\n    return HeadTable.__super__.constructor.apply(this, arguments);\n  }\n  HeadTable.prototype.tag = \"head\";\n  HeadTable.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readInt();\n    this.revision = data.readInt();\n    this.checkSumAdjustment = data.readInt();\n    this.magicNumber = data.readInt();\n    this.flags = data.readShort();\n    this.unitsPerEm = data.readShort();\n    this.created = data.readLongLong();\n    this.modified = data.readLongLong();\n    this.xMin = data.readShort();\n    this.yMin = data.readShort();\n    this.xMax = data.readShort();\n    this.yMax = data.readShort();\n    this.macStyle = data.readShort();\n    this.lowestRecPPEM = data.readShort();\n    this.fontDirectionHint = data.readShort();\n    this.indexToLocFormat = data.readShort();\n    return (this.glyphDataFormat = data.readShort());\n  };\n  HeadTable.prototype.encode = function(indexToLocFormat) {\n    var table;\n    table = new Data();\n    table.writeInt(this.version);\n    table.writeInt(this.revision);\n    table.writeInt(this.checkSumAdjustment);\n    table.writeInt(this.magicNumber);\n    table.writeShort(this.flags);\n    table.writeShort(this.unitsPerEm);\n    table.writeLongLong(this.created);\n    table.writeLongLong(this.modified);\n    table.writeShort(this.xMin);\n    table.writeShort(this.yMin);\n    table.writeShort(this.xMax);\n    table.writeShort(this.yMax);\n    table.writeShort(this.macStyle);\n    table.writeShort(this.lowestRecPPEM);\n    table.writeShort(this.fontDirectionHint);\n    table.writeShort(indexToLocFormat);\n    table.writeShort(this.glyphDataFormat);\n    return table.data;\n  };\n  return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry                                                             */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n  function CmapEntry(data, offset) {\n    var code,\n      count,\n      endCode,\n      glyphId,\n      glyphIds,\n      i,\n      idDelta,\n      idRangeOffset,\n      index,\n      saveOffset,\n      segCount,\n      segCountX2,\n      start,\n      startCode,\n      tail,\n      _j,\n      _k,\n      _len;\n    this.platformID = data.readUInt16();\n    this.encodingID = data.readShort();\n    this.offset = offset + data.readInt();\n    saveOffset = data.pos;\n    data.pos = this.offset;\n    this.format = data.readUInt16();\n    this.length = data.readUInt16();\n    this.language = data.readUInt16();\n    this.isUnicode =\n      (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n      (this.platformID === 0 && this.format === 4);\n    this.codeMap = {};\n    switch (this.format) {\n      case 0:\n        for (i = 0; i < 256; ++i) {\n          this.codeMap[i] = data.readByte();\n        }\n        break;\n      case 4:\n        segCountX2 = data.readUInt16();\n        segCount = segCountX2 / 2;\n        data.pos += 6;\n        endCode = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        data.pos += 2;\n        startCode = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        idDelta = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        idRangeOffset = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= segCount ? _j < segCount : _j > segCount;\n            i = 0 <= segCount ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        count = (this.length - data.pos + this.offset) / 2;\n        glyphIds = (function() {\n          var _j, _results;\n          _results = [];\n          for (\n            i = _j = 0;\n            0 <= count ? _j < count : _j > count;\n            i = 0 <= count ? ++_j : --_j\n          ) {\n            _results.push(data.readUInt16());\n          }\n          return _results;\n        })();\n        for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n          tail = endCode[i];\n          start = startCode[i];\n          for (\n            code = _k = start;\n            start <= tail ? _k <= tail : _k >= tail;\n            code = start <= tail ? ++_k : --_k\n          ) {\n            if (idRangeOffset[i] === 0) {\n              glyphId = code + idDelta[i];\n            } else {\n              index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n              glyphId = glyphIds[index] || 0;\n              if (glyphId !== 0) {\n                glyphId += idDelta[i];\n              }\n            }\n            this.codeMap[code] = glyphId & 0xffff;\n          }\n        }\n    }\n    data.pos = saveOffset;\n  }\n  CmapEntry.encode = function(charmap, encoding) {\n    var charMap,\n      code,\n      codeMap,\n      codes,\n      delta,\n      deltas,\n      diff,\n      endCode,\n      endCodes,\n      entrySelector,\n      glyphIDs,\n      i,\n      id,\n      indexes,\n      last,\n      map,\n      nextID,\n      offset,\n      old,\n      rangeOffsets,\n      rangeShift,\n      searchRange,\n      segCount,\n      segCountX2,\n      startCode,\n      startCodes,\n      startGlyph,\n      subtable,\n      _i,\n      _j,\n      _k,\n      _l,\n      _len,\n      _len1,\n      _len2,\n      _len3,\n      _len4,\n      _len5,\n      _len6,\n      _len7,\n      _m,\n      _n,\n      _name,\n      _o,\n      _p,\n      _q;\n    subtable = new Data();\n    codes = Object.keys(charmap).sort(function(a, b) {\n      return a - b;\n    });\n    switch (encoding) {\n      case \"macroman\":\n        id = 0;\n        indexes = (function() {\n          var _results = [];\n          for (i = 0; i < 256; ++i) {\n            _results.push(0);\n          }\n          return _results;\n        })();\n        map = {\n          0: 0\n        };\n        codeMap = {};\n        for (_i = 0, _len = codes.length; _i < _len; _i++) {\n          code = codes[_i];\n          if (map[(_name = charmap[code])] == null) {\n            map[_name] = ++id;\n          }\n          codeMap[code] = {\n            old: charmap[code],\n            new: map[charmap[code]]\n          };\n          indexes[code] = map[charmap[code]];\n        }\n        subtable.writeUInt16(1);\n        subtable.writeUInt16(0);\n        subtable.writeUInt32(12);\n        subtable.writeUInt16(0);\n        subtable.writeUInt16(262);\n        subtable.writeUInt16(0);\n        subtable.write(indexes);\n        return {\n          charMap: codeMap,\n          subtable: subtable.data,\n          maxGlyphID: id + 1\n        };\n      case \"unicode\":\n        startCodes = [];\n        endCodes = [];\n        nextID = 0;\n        map = {};\n        charMap = {};\n        last = diff = null;\n        for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n          code = codes[_j];\n          old = charmap[code];\n          if (map[old] == null) {\n            map[old] = ++nextID;\n          }\n          charMap[code] = {\n            old: old,\n            new: map[old]\n          };\n          delta = map[old] - code;\n          if (last == null || delta !== diff) {\n            if (last) {\n              endCodes.push(last);\n            }\n            startCodes.push(code);\n            diff = delta;\n          }\n          last = code;\n        }\n        if (last) {\n          endCodes.push(last);\n        }\n        endCodes.push(0xffff);\n        startCodes.push(0xffff);\n        segCount = startCodes.length;\n        segCountX2 = segCount * 2;\n        searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n        entrySelector = Math.log(searchRange / 2) / Math.LN2;\n        rangeShift = 2 * segCount - searchRange;\n        deltas = [];\n        rangeOffsets = [];\n        glyphIDs = [];\n        for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n          startCode = startCodes[i];\n          endCode = endCodes[i];\n          if (startCode === 0xffff) {\n            deltas.push(0);\n            rangeOffsets.push(0);\n            break;\n          }\n          startGlyph = charMap[startCode][\"new\"];\n          if (startCode - startGlyph >= 0x8000) {\n            deltas.push(0);\n            rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n            for (\n              code = _l = startCode;\n              startCode <= endCode ? _l <= endCode : _l >= endCode;\n              code = startCode <= endCode ? ++_l : --_l\n            ) {\n              glyphIDs.push(charMap[code][\"new\"]);\n            }\n          } else {\n            deltas.push(startGlyph - startCode);\n            rangeOffsets.push(0);\n          }\n        }\n        subtable.writeUInt16(3);\n        subtable.writeUInt16(1);\n        subtable.writeUInt32(12);\n        subtable.writeUInt16(4);\n        subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n        subtable.writeUInt16(0);\n        subtable.writeUInt16(segCountX2);\n        subtable.writeUInt16(searchRange);\n        subtable.writeUInt16(entrySelector);\n        subtable.writeUInt16(rangeShift);\n        for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n          code = endCodes[_m];\n          subtable.writeUInt16(code);\n        }\n        subtable.writeUInt16(0);\n        for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n          code = startCodes[_n];\n          subtable.writeUInt16(code);\n        }\n        for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n          delta = deltas[_o];\n          subtable.writeUInt16(delta);\n        }\n        for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n          offset = rangeOffsets[_p];\n          subtable.writeUInt16(offset);\n        }\n        for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n          id = glyphIDs[_q];\n          subtable.writeUInt16(id);\n        }\n        return {\n          charMap: charMap,\n          subtable: subtable.data,\n          maxGlyphID: nextID + 1\n        };\n    }\n  };\n  return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n  __extends(CmapTable, _super);\n\n  function CmapTable() {\n    return CmapTable.__super__.constructor.apply(this, arguments);\n  }\n  CmapTable.prototype.tag = \"cmap\";\n  CmapTable.prototype.parse = function(data) {\n    var entry, i, tableCount;\n    data.pos = this.offset;\n    this.version = data.readUInt16();\n    tableCount = data.readUInt16();\n    this.tables = [];\n    this.unicode = null;\n    for (\n      i = 0;\n      0 <= tableCount ? i < tableCount : i > tableCount;\n      i = 0 <= tableCount ? ++i : --i\n    ) {\n      entry = new CmapEntry(data, this.offset);\n      this.tables.push(entry);\n      if (entry.isUnicode) {\n        if (this.unicode == null) {\n          this.unicode = entry;\n        }\n      }\n    }\n    return true;\n  };\n  /*************************************************************************/\n  /* function : encode                                                     */\n  /* comment : Encode the cmap table corresponding to the input character. */\n  /*************************************************************************/\n  CmapTable.encode = function(charmap, encoding) {\n    var result, table;\n    if (encoding == null) {\n      encoding = \"macroman\";\n    }\n    result = CmapEntry.encode(charmap, encoding);\n    table = new Data();\n    table.writeUInt16(0);\n    table.writeUInt16(1);\n    result.table = table.data.concat(result.subtable);\n    return result;\n  };\n  return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n  __extends(HheaTable, _super);\n\n  function HheaTable() {\n    return HheaTable.__super__.constructor.apply(this, arguments);\n  }\n  HheaTable.prototype.tag = \"hhea\";\n  HheaTable.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readInt();\n    this.ascender = data.readShort();\n    this.decender = data.readShort();\n    this.lineGap = data.readShort();\n    this.advanceWidthMax = data.readShort();\n    this.minLeftSideBearing = data.readShort();\n    this.minRightSideBearing = data.readShort();\n    this.xMaxExtent = data.readShort();\n    this.caretSlopeRise = data.readShort();\n    this.caretSlopeRun = data.readShort();\n    this.caretOffset = data.readShort();\n    data.pos += 4 * 2;\n    this.metricDataFormat = data.readShort();\n    return (this.numberOfMetrics = data.readUInt16());\n  };\n  /*HheaTable.prototype.encode = function (ids) {\n            var i, table, _i, _ref;\n            table = new Data;\n            table.writeInt(this.version);\n            table.writeShort(this.ascender);\n            table.writeShort(this.decender);\n            table.writeShort(this.lineGap);\n            table.writeShort(this.advanceWidthMax);\n            table.writeShort(this.minLeftSideBearing);\n            table.writeShort(this.minRightSideBearing);\n            table.writeShort(this.xMaxExtent);\n            table.writeShort(this.caretSlopeRise);\n            table.writeShort(this.caretSlopeRun);\n            table.writeShort(this.caretOffset);\n            for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n                table.writeByte(0);\n            }\n            table.writeShort(this.metricDataFormat);\n            table.writeUInt16(ids.length);\n            return table.data;\n        };*/\n  return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n  __extends(OS2Table, _super);\n\n  function OS2Table() {\n    return OS2Table.__super__.constructor.apply(this, arguments);\n  }\n  OS2Table.prototype.tag = \"OS/2\";\n  OS2Table.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readUInt16();\n    this.averageCharWidth = data.readShort();\n    this.weightClass = data.readUInt16();\n    this.widthClass = data.readUInt16();\n    this.type = data.readShort();\n    this.ySubscriptXSize = data.readShort();\n    this.ySubscriptYSize = data.readShort();\n    this.ySubscriptXOffset = data.readShort();\n    this.ySubscriptYOffset = data.readShort();\n    this.ySuperscriptXSize = data.readShort();\n    this.ySuperscriptYSize = data.readShort();\n    this.ySuperscriptXOffset = data.readShort();\n    this.ySuperscriptYOffset = data.readShort();\n    this.yStrikeoutSize = data.readShort();\n    this.yStrikeoutPosition = data.readShort();\n    this.familyClass = data.readShort();\n    this.panose = (function() {\n      var i, _results;\n      _results = [];\n      for (i = 0; i < 10; ++i) {\n        _results.push(data.readByte());\n      }\n      return _results;\n    })();\n    this.charRange = (function() {\n      var i, _results;\n      _results = [];\n      for (i = 0; i < 4; ++i) {\n        _results.push(data.readInt());\n      }\n      return _results;\n    })();\n    this.vendorID = data.readString(4);\n    this.selection = data.readShort();\n    this.firstCharIndex = data.readShort();\n    this.lastCharIndex = data.readShort();\n    if (this.version > 0) {\n      this.ascent = data.readShort();\n      this.descent = data.readShort();\n      this.lineGap = data.readShort();\n      this.winAscent = data.readShort();\n      this.winDescent = data.readShort();\n      this.codePageRange = (function() {\n        var i, _results;\n        _results = [];\n        for (i = 0; i < 2; i = ++i) {\n          _results.push(data.readInt());\n        }\n        return _results;\n      })();\n      if (this.version > 1) {\n        this.xHeight = data.readShort();\n        this.capHeight = data.readShort();\n        this.defaultChar = data.readShort();\n        this.breakChar = data.readShort();\n        return (this.maxContext = data.readShort());\n      }\n    }\n  };\n  /*OS2Table.prototype.encode = function () {\n            return this.raw();\n        };*/\n  return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n  var POSTSCRIPT_GLYPHS;\n  __extends(PostTable, _super);\n\n  function PostTable() {\n    return PostTable.__super__.constructor.apply(this, arguments);\n  }\n  PostTable.prototype.tag = \"post\";\n  PostTable.prototype.parse = function(data) {\n    var length, numberOfGlyphs, _results;\n    data.pos = this.offset;\n    this.format = data.readInt();\n    this.italicAngle = data.readInt();\n    this.underlinePosition = data.readShort();\n    this.underlineThickness = data.readShort();\n    this.isFixedPitch = data.readInt();\n    this.minMemType42 = data.readInt();\n    this.maxMemType42 = data.readInt();\n    this.minMemType1 = data.readInt();\n    this.maxMemType1 = data.readInt();\n    switch (this.format) {\n      case 0x00010000:\n        break;\n      case 0x00020000:\n        numberOfGlyphs = data.readUInt16();\n        this.glyphNameIndex = [];\n        var i;\n        for (\n          i = 0;\n          0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n          i = 0 <= numberOfGlyphs ? ++i : --i\n        ) {\n          this.glyphNameIndex.push(data.readUInt16());\n        }\n        this.names = [];\n        _results = [];\n        while (data.pos < this.offset + this.length) {\n          length = data.readByte();\n          _results.push(this.names.push(data.readString(length)));\n        }\n        return _results;\n      case 0x00025000:\n        numberOfGlyphs = data.readUInt16();\n        return (this.offsets = data.read(numberOfGlyphs));\n      case 0x00030000:\n        break;\n      case 0x00040000:\n        return (this.map = function() {\n          var _j, _ref, _results1;\n          _results1 = [];\n          for (\n            i = _j = 0, _ref = this.file.maxp.numGlyphs;\n            0 <= _ref ? _j < _ref : _j > _ref;\n            i = 0 <= _ref ? ++_j : --_j\n          ) {\n            _results1.push(data.readUInt32());\n          }\n          return _results1;\n        }.call(this));\n    }\n  };\n  /*PostTable.prototype.glyphFor = function (code) {\n            var index;\n            switch (this.format) {\n            case 0x00010000:\n                return POSTSCRIPT_GLYPHS[code] || '.notdef';\n            case 0x00020000:\n                index = this.glyphNameIndex[code];\n                if (index <= 257) {\n                    return POSTSCRIPT_GLYPHS[index];\n                }\n                else {\n                    return this.names[index - 258] || '.notdef';\n                }\n                break;\n            case 0x00025000:\n                return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n            case 0x00030000:\n                return '.notdef';\n            case 0x00040000:\n                return this.map[code] || 0xFFFF;\n            }\n        };*/\n  /*PostTable.prototype.encode = function (mapping) {\n            var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n            if (!this.exists) {\n                return null;\n            }\n            raw = this.raw();\n            if (this.format === 0x00030000) {\n                return raw;\n            }\n            table = new Data(raw.slice(0, 32));\n            table.writeUInt32(0x00020000);\n            table.pos = 32;\n            indexes = [];\n            strings = [];\n            for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n                id = mapping[_i];\n                post = this.glyphFor(id);\n                position = POSTSCRIPT_GLYPHS.indexOf(post);\n                if (position !== -1) {\n                    indexes.push(position);\n                }\n                else {\n                    indexes.push(257 + strings.length);\n                    strings.push(post);\n                }\n            }\n            table.writeUInt16(Object.keys(mapping).length);\n            for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n                index = indexes[_j];\n                table.writeUInt16(index);\n            }\n            for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n                string = strings[_k];\n                table.writeByte(string.length);\n                table.writeString(string);\n            }\n            return table.data;\n        };*/\n  POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n    /\\s+/g\n  );\n  return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry                                                                                  */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n  function NameEntry(raw, entry) {\n    this.raw = raw;\n    this.length = raw.length;\n    this.platformID = entry.platformID;\n    this.encodingID = entry.encodingID;\n    this.languageID = entry.languageID;\n  }\n  return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n  var subsetTag;\n  __extends(NameTable, _super);\n\n  function NameTable() {\n    return NameTable.__super__.constructor.apply(this, arguments);\n  }\n  NameTable.prototype.tag = \"name\";\n  NameTable.prototype.parse = function(data) {\n    var count,\n      entries,\n      entry,\n      i,\n      name,\n      stringOffset,\n      strings,\n      text,\n      _j,\n      _len,\n      _name;\n    data.pos = this.offset;\n    data.readShort(); //format\n    count = data.readShort();\n    stringOffset = data.readShort();\n    entries = [];\n    for (\n      i = 0;\n      0 <= count ? i < count : i > count;\n      i = 0 <= count ? ++i : --i\n    ) {\n      entries.push({\n        platformID: data.readShort(),\n        encodingID: data.readShort(),\n        languageID: data.readShort(),\n        nameID: data.readShort(),\n        length: data.readShort(),\n        offset: this.offset + stringOffset + data.readShort()\n      });\n    }\n    strings = {};\n    for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n      entry = entries[i];\n      data.pos = entry.offset;\n      text = data.readString(entry.length);\n      name = new NameEntry(text, entry);\n      if (strings[(_name = entry.nameID)] == null) {\n        strings[_name] = [];\n      }\n      strings[entry.nameID].push(name);\n    }\n    this.strings = strings;\n    this.copyright = strings[0];\n    this.fontFamily = strings[1];\n    this.fontSubfamily = strings[2];\n    this.uniqueSubfamily = strings[3];\n    this.fontName = strings[4];\n    this.version = strings[5];\n    try {\n      this.postscriptName = strings[6][0].raw.replace(\n        /[\\x00-\\x19\\x80-\\xff]/g,\n        \"\"\n      );\n    } catch (e) {\n      this.postscriptName = strings[4][0].raw.replace(\n        /[\\x00-\\x19\\x80-\\xff]/g,\n        \"\"\n      );\n    }\n    this.trademark = strings[7];\n    this.manufacturer = strings[8];\n    this.designer = strings[9];\n    this.description = strings[10];\n    this.vendorUrl = strings[11];\n    this.designerUrl = strings[12];\n    this.license = strings[13];\n    this.licenseUrl = strings[14];\n    this.preferredFamily = strings[15];\n    this.preferredSubfamily = strings[17];\n    this.compatibleFull = strings[18];\n    return (this.sampleText = strings[19]);\n  };\n  subsetTag = \"AAAAAA\";\n  /*NameTable.prototype.encode = function () {\n            var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n            strings = {};\n            _ref = this.strings;\n            for (id in _ref) {\n                val = _ref[id];\n                strings[id] = val;\n            }\n            postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n                platformID: 1\n                , encodingID: 0\n                , languageID: 0\n            });\n            strings[6] = [postscriptName];\n            subsetTag = successorOf(subsetTag);\n            strCount = 0;\n            for (id in strings) {\n                list = strings[id];\n                if (list != null) {\n                    strCount += list.length;\n                }\n            }\n            table = new Data;\n            strTable = new Data;\n            table.writeShort(0);\n            table.writeShort(strCount);\n            table.writeShort(6 + 12 * strCount);\n            for (nameID in strings) {\n                list = strings[nameID];\n                if (list != null) {\n                    for (_i = 0, _len = list.length; _i < _len; _i++) {\n                        string = list[_i];\n                        table.writeShort(string.platformID);\n                        table.writeShort(string.encodingID);\n                        table.writeShort(string.languageID);\n                        table.writeShort(nameID);\n                        table.writeShort(string.length);\n                        table.writeShort(strTable.pos);\n                        strTable.writeString(string.raw);\n                    }\n                }\n            }\n            return nameTable = {\n                postscriptName: postscriptName.raw\n                , table: table.data.concat(strTable.data)\n            };\n        };*/\n  return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n  __extends(MaxpTable, _super);\n\n  function MaxpTable() {\n    return MaxpTable.__super__.constructor.apply(this, arguments);\n  }\n  MaxpTable.prototype.tag = \"maxp\";\n  MaxpTable.prototype.parse = function(data) {\n    data.pos = this.offset;\n    this.version = data.readInt();\n    this.numGlyphs = data.readUInt16();\n    this.maxPoints = data.readUInt16();\n    this.maxContours = data.readUInt16();\n    this.maxCompositePoints = data.readUInt16();\n    this.maxComponentContours = data.readUInt16();\n    this.maxZones = data.readUInt16();\n    this.maxTwilightPoints = data.readUInt16();\n    this.maxStorage = data.readUInt16();\n    this.maxFunctionDefs = data.readUInt16();\n    this.maxInstructionDefs = data.readUInt16();\n    this.maxStackElements = data.readUInt16();\n    this.maxSizeOfInstructions = data.readUInt16();\n    this.maxComponentElements = data.readUInt16();\n    return (this.maxComponentDepth = data.readUInt16());\n  };\n  /*MaxpTable.prototype.encode = function (ids) {\n            var table;\n            table = new Data;\n            table.writeInt(this.version);\n            table.writeUInt16(ids.length);\n            table.writeUInt16(this.maxPoints);\n            table.writeUInt16(this.maxContours);\n            table.writeUInt16(this.maxCompositePoints);\n            table.writeUInt16(this.maxComponentContours);\n            table.writeUInt16(this.maxZones);\n            table.writeUInt16(this.maxTwilightPoints);\n            table.writeUInt16(this.maxStorage);\n            table.writeUInt16(this.maxFunctionDefs);\n            table.writeUInt16(this.maxInstructionDefs);\n            table.writeUInt16(this.maxStackElements);\n            table.writeUInt16(this.maxSizeOfInstructions);\n            table.writeUInt16(this.maxComponentElements);\n            table.writeUInt16(this.maxComponentDepth);\n            return table.data;\n        };*/\n  return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n  __extends(HmtxTable, _super);\n\n  function HmtxTable() {\n    return HmtxTable.__super__.constructor.apply(this, arguments);\n  }\n  HmtxTable.prototype.tag = \"hmtx\";\n  HmtxTable.prototype.parse = function(data) {\n    var i, last, lsbCount, m, _j, _ref, _results;\n    data.pos = this.offset;\n    this.metrics = [];\n    for (\n      i = 0, _ref = this.file.hhea.numberOfMetrics;\n      0 <= _ref ? i < _ref : i > _ref;\n      i = 0 <= _ref ? ++i : --i\n    ) {\n      this.metrics.push({\n        advance: data.readUInt16(),\n        lsb: data.readInt16()\n      });\n    }\n    lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n    this.leftSideBearings = (function() {\n      var _j, _results;\n      _results = [];\n      for (\n        i = _j = 0;\n        0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n        i = 0 <= lsbCount ? ++_j : --_j\n      ) {\n        _results.push(data.readInt16());\n      }\n      return _results;\n    })();\n    this.widths = function() {\n      var _j, _len, _ref1, _results;\n      _ref1 = this.metrics;\n      _results = [];\n      for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n        m = _ref1[_j];\n        _results.push(m.advance);\n      }\n      return _results;\n    }.call(this);\n    last = this.widths[this.widths.length - 1];\n    _results = [];\n    for (\n      i = _j = 0;\n      0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n      i = 0 <= lsbCount ? ++_j : --_j\n    ) {\n      _results.push(this.widths.push(last));\n    }\n    return _results;\n  };\n  /***************************************************************/\n  /* function : forGlyph                                         */\n  /* comment : Returns the advance width and lsb for this glyph. */\n  /***************************************************************/\n  HmtxTable.prototype.forGlyph = function(id) {\n    if (id in this.metrics) {\n      return this.metrics[id];\n    }\n    return {\n      advance: this.metrics[this.metrics.length - 1].advance,\n      lsb: this.leftSideBearings[id - this.metrics.length]\n    };\n  };\n  /*HmtxTable.prototype.encode = function (mapping) {\n            var id, metric, table, _i, _len;\n            table = new Data;\n            for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n                id = mapping[_i];\n                metric = this.forGlyph(id);\n                table.writeUInt16(metric.advance);\n                table.writeUInt16(metric.lsb);\n            }\n            return table.data;\n        };*/\n  return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n  __extends(GlyfTable, _super);\n\n  function GlyfTable() {\n    return GlyfTable.__super__.constructor.apply(this, arguments);\n  }\n  GlyfTable.prototype.tag = \"glyf\";\n  GlyfTable.prototype.parse = function() {\n    return (this.cache = {});\n  };\n  GlyfTable.prototype.glyphFor = function(id) {\n    var data,\n      index,\n      length,\n      loca,\n      numberOfContours,\n      raw,\n      xMax,\n      xMin,\n      yMax,\n      yMin;\n    if (id in this.cache) {\n      return this.cache[id];\n    }\n    loca = this.file.loca;\n    data = this.file.contents;\n    index = loca.indexOf(id);\n    length = loca.lengthOf(id);\n    if (length === 0) {\n      return (this.cache[id] = null);\n    }\n    data.pos = this.offset + index;\n    raw = new Data(data.read(length));\n    numberOfContours = raw.readShort();\n    xMin = raw.readShort();\n    yMin = raw.readShort();\n    xMax = raw.readShort();\n    yMax = raw.readShort();\n    if (numberOfContours === -1) {\n      this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n    } else {\n      this.cache[id] = new SimpleGlyph(\n        raw,\n        numberOfContours,\n        xMin,\n        yMin,\n        xMax,\n        yMax\n      );\n    }\n    return this.cache[id];\n  };\n  GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n    var glyph, id, offsets, table, _i, _len;\n    table = [];\n    offsets = [];\n    for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n      id = mapping[_i];\n      glyph = glyphs[id];\n      offsets.push(table.length);\n      if (glyph) {\n        table = table.concat(glyph.encode(old2new));\n      }\n    }\n    offsets.push(table.length);\n    return {\n      table: table,\n      offsets: offsets\n    };\n  };\n  return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n  /**************************************************************************/\n  /* function : SimpleGlyph                                                 */\n  /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n  /**************************************************************************/\n  function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n    this.raw = raw;\n    this.numberOfContours = numberOfContours;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n    this.compound = false;\n  }\n  SimpleGlyph.prototype.encode = function() {\n    return this.raw.data;\n  };\n  return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n  var ARG_1_AND_2_ARE_WORDS,\n    MORE_COMPONENTS,\n    WE_HAVE_AN_X_AND_Y_SCALE,\n    WE_HAVE_A_SCALE,\n    WE_HAVE_A_TWO_BY_TWO,\n    WE_HAVE_INSTRUCTIONS;\n  ARG_1_AND_2_ARE_WORDS = 0x0001;\n  WE_HAVE_A_SCALE = 0x0008;\n  MORE_COMPONENTS = 0x0020;\n  WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n  WE_HAVE_A_TWO_BY_TWO = 0x0080;\n  WE_HAVE_INSTRUCTIONS = 0x0100;\n\n  /********************************************************************************************************************/\n  /* function : CompoundGlypg generator                                                                               */\n  /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n  /********************************************************************************************************************/\n  function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n    var data, flags;\n    this.raw = raw;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n    this.compound = true;\n    this.glyphIDs = [];\n    this.glyphOffsets = [];\n    data = this.raw;\n    while (true) {\n      flags = data.readShort();\n      this.glyphOffsets.push(data.pos);\n      this.glyphIDs.push(data.readUInt16());\n      if (!(flags & MORE_COMPONENTS)) {\n        break;\n      }\n      if (flags & ARG_1_AND_2_ARE_WORDS) {\n        data.pos += 4;\n      } else {\n        data.pos += 2;\n      }\n      if (flags & WE_HAVE_A_TWO_BY_TWO) {\n        data.pos += 8;\n      } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n        data.pos += 4;\n      } else if (flags & WE_HAVE_A_SCALE) {\n        data.pos += 2;\n      }\n    }\n  }\n  /****************************************************************************************************************/\n  /* function : CompoundGlypg encode                                                                              */\n  /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n  /****************************************************************************************************************/\n  CompoundGlyph.prototype.encode = function() {\n    var i, result, _len, _ref;\n    result = new Data(__slice.call(this.raw.data));\n    _ref = this.glyphIDs;\n    for (i = 0, _len = _ref.length; i < _len; ++i) {\n      result.pos = this.glyphOffsets[i];\n    }\n    return result.data;\n  };\n  return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n  __extends(LocaTable, _super);\n\n  function LocaTable() {\n    return LocaTable.__super__.constructor.apply(this, arguments);\n  }\n  LocaTable.prototype.tag = \"loca\";\n  LocaTable.prototype.parse = function(data) {\n    var format, i;\n    data.pos = this.offset;\n    format = this.file.head.indexToLocFormat;\n    if (format === 0) {\n      return (this.offsets = function() {\n        var _ref, _results;\n        _results = [];\n        for (i = 0, _ref = this.length; i < _ref; i += 2) {\n          _results.push(data.readUInt16() * 2);\n        }\n        return _results;\n      }.call(this));\n    } else {\n      return (this.offsets = function() {\n        var _ref, _results;\n        _results = [];\n        for (i = 0, _ref = this.length; i < _ref; i += 4) {\n          _results.push(data.readUInt32());\n        }\n        return _results;\n      }.call(this));\n    }\n  };\n  LocaTable.prototype.indexOf = function(id) {\n    return this.offsets[id];\n  };\n  LocaTable.prototype.lengthOf = function(id) {\n    return this.offsets[id + 1] - this.offsets[id];\n  };\n  LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n    var LocaTable = new Uint32Array(this.offsets.length);\n    var glyfPtr = 0;\n    var listGlyf = 0;\n    for (var k = 0; k < LocaTable.length; ++k) {\n      LocaTable[k] = glyfPtr;\n      if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n        ++listGlyf;\n        LocaTable[k] = glyfPtr;\n        var start = this.offsets[k];\n        var len = this.offsets[k + 1] - start;\n        if (len > 0) {\n          glyfPtr += len;\n        }\n      }\n    }\n    var newLocaTable = new Array(LocaTable.length * 4);\n    for (var j = 0; j < LocaTable.length; ++j) {\n      newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n      newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n      newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n      newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n    }\n    return newLocaTable;\n  };\n  return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert                                                                */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n  var key, ret, val;\n  ret = {};\n  for (key in object) {\n    val = object[key];\n    ret[val] = key;\n  }\n  return ret;\n};\n\n/*var successorOf = function (input) {\n        var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n        alphabet = 'abcdefghijklmnopqrstuvwxyz';\n        length = alphabet.length;\n        result = input;\n        i = input.length;\n        while (i >= 0) {\n            last = input.charAt(--i);\n            if (isNaN(last)) {\n                index = alphabet.indexOf(last.toLowerCase());\n                if (index === -1) {\n                    next = last;\n                    carry = true;\n                }\n                else {\n                    next = alphabet.charAt((index + 1) % length);\n                    isUpperCase = last === last.toUpperCase();\n                    if (isUpperCase) {\n                        next = next.toUpperCase();\n                    }\n                    carry = index + 1 >= length;\n                    if (carry && i === 0) {\n                        added = isUpperCase ? 'A' : 'a';\n                        result = added + next + result.slice(1);\n                        break;\n                    }\n                }\n            }\n            else {\n                next = +last + 1;\n                carry = next > 9;\n                if (carry) {\n                    next = 0;\n                }\n                if (carry && i === 0) {\n                    result = '1' + next + result.slice(1);\n                    break;\n                }\n            }\n            result = result.slice(0, i) + next + result.slice(i + 1);\n            if (!carry) {\n                break;\n            }\n        }\n        return result;\n    };*/\n\nvar Subset = (function() {\n  function Subset(font) {\n    this.font = font;\n    this.subset = {};\n    this.unicodes = {};\n    this.next = 33;\n  }\n  /*Subset.prototype.use = function (character) {\n            var i, _i, _ref;\n            if (typeof character === 'string') {\n                for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n                    this.use(character.charCodeAt(i));\n                }\n                return;\n            }\n            if (!this.unicodes[character]) {\n                this.subset[this.next] = character;\n                return this.unicodes[character] = this.next++;\n            }\n        };*/\n  /*Subset.prototype.encodeText = function (text) {\n            var char, i, string, _i, _ref;\n            string = '';\n            for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n                char = this.unicodes[text.charCodeAt(i)];\n                string += String.fromCharCode(char);\n            }\n            return string;\n        };*/\n  /***************************************************************/\n  /* function : generateCmap                                     */\n  /* comment : Returns the unicode cmap for this font.         */\n  /***************************************************************/\n  Subset.prototype.generateCmap = function() {\n    var mapping, roman, unicode, unicodeCmap, _ref;\n    unicodeCmap = this.font.cmap.tables[0].codeMap;\n    mapping = {};\n    _ref = this.subset;\n    for (roman in _ref) {\n      unicode = _ref[roman];\n      mapping[roman] = unicodeCmap[unicode];\n    }\n    return mapping;\n  };\n  /*Subset.prototype.glyphIDs = function () {\n            var ret, roman, unicode, unicodeCmap, val, _ref;\n            unicodeCmap = this.font.cmap.tables[0].codeMap;\n            ret = [0];\n            _ref = this.subset;\n            for (roman in _ref) {\n                unicode = _ref[roman];\n                val = unicodeCmap[unicode];\n                if ((val != null) && __indexOf.call(ret, val) < 0) {\n                    ret.push(val);\n                }\n            }\n            return ret.sort();\n        };*/\n  /******************************************************************/\n  /* function : glyphsFor                                           */\n  /* comment : Returns simple glyph objects for the input character.*/\n  /******************************************************************/\n  Subset.prototype.glyphsFor = function(glyphIDs) {\n    var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n    glyphs = {};\n    for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n      id = glyphIDs[_i];\n      glyphs[id] = this.font.glyf.glyphFor(id);\n    }\n    additionalIDs = [];\n    for (id in glyphs) {\n      glyph = glyphs[id];\n      if (glyph != null ? glyph.compound : void 0) {\n        additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n      }\n    }\n    if (additionalIDs.length > 0) {\n      _ref = this.glyphsFor(additionalIDs);\n      for (id in _ref) {\n        glyph = _ref[id];\n        glyphs[id] = glyph;\n      }\n    }\n    return glyphs;\n  };\n  /***************************************************************/\n  /* function : encode                                           */\n  /* comment : Encode various tables for the characters you use. */\n  /***************************************************************/\n  Subset.prototype.encode = function(glyID, indexToLocFormat) {\n    var cmap,\n      code,\n      glyf,\n      glyphs,\n      id,\n      ids,\n      loca,\n      new2old,\n      newIDs,\n      nextGlyphID,\n      old2new,\n      oldID,\n      oldIDs,\n      tables,\n      _ref;\n    cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n    glyphs = this.glyphsFor(glyID);\n    old2new = {\n      0: 0\n    };\n    _ref = cmap.charMap;\n    for (code in _ref) {\n      ids = _ref[code];\n      old2new[ids.old] = ids[\"new\"];\n    }\n    nextGlyphID = cmap.maxGlyphID;\n    for (oldID in glyphs) {\n      if (!(oldID in old2new)) {\n        old2new[oldID] = nextGlyphID++;\n      }\n    }\n    new2old = invert(old2new);\n    newIDs = Object.keys(new2old).sort(function(a, b) {\n      return a - b;\n    });\n    oldIDs = (function() {\n      var _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n        id = newIDs[_i];\n        _results.push(new2old[id]);\n      }\n      return _results;\n    })();\n    glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n    loca = this.font.loca.encode(glyf.offsets, oldIDs);\n    tables = {\n      cmap: this.font.cmap.raw(),\n      glyf: glyf.table,\n      loca: loca,\n      hmtx: this.font.hmtx.raw(),\n      hhea: this.font.hhea.raw(),\n      maxp: this.font.maxp.raw(),\n      post: this.font.post.raw(),\n      name: this.font.name.raw(),\n      head: this.font.head.encode(indexToLocFormat)\n    };\n    if (this.font.os2.exists) {\n      tables[\"OS/2\"] = this.font.os2.raw();\n    }\n    return this.font.directory.encode(tables);\n  };\n  return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n  var pad;\n\n  function PDFObject() {}\n  pad = function(str, length) {\n    return (Array(length + 1).join(\"0\") + str).slice(-length);\n  };\n  /*****************************************************************************/\n  /* function : convert                                                        */\n  /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n  /*****************************************************************************/\n  PDFObject.convert = function(object) {\n    var e, items, key, out, val;\n    if (Array.isArray(object)) {\n      items = (function() {\n        var _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = object.length; _i < _len; _i++) {\n          e = object[_i];\n          _results.push(PDFObject.convert(e));\n        }\n        return _results;\n      })().join(\" \");\n      return \"[\" + items + \"]\";\n    } else if (typeof object === \"string\") {\n      return \"/\" + object;\n    } else if (object != null ? object.isString : void 0) {\n      return \"(\" + object + \")\";\n    } else if (object instanceof Date) {\n      return (\n        \"(D:\" +\n        pad(object.getUTCFullYear(), 4) +\n        pad(object.getUTCMonth(), 2) +\n        pad(object.getUTCDate(), 2) +\n        pad(object.getUTCHours(), 2) +\n        pad(object.getUTCMinutes(), 2) +\n        pad(object.getUTCSeconds(), 2) +\n        \"Z)\"\n      );\n    } else if ({}.toString.call(object) === \"[object Object]\") {\n      out = [\"<<\"];\n      for (key in object) {\n        val = object[key];\n        out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n      }\n      out.push(\">>\");\n      return out.join(\"\\n\");\n    } else {\n      return \"\" + object;\n    }\n  };\n  return PDFObject;\n})();\n"],"names":["_global"],"mappings":"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,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;EAC3C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;EAC1C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;EAC5C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;EAC1C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;EAC3C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;EAC5C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;EAC1C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;EAC1C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;EAC5C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,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C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;EAC1C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC;EACpB,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5B,IAAI,MAAM,EAAE,CAAC,MAAM,EAA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EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;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I,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAA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C;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAA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,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,OAAO;EACP,MAAM,EAAE,GAAG;EACX,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,CAAC;EACT,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ,GAAG;EACX,QAAQ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,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,WAAW;EACX,UAAU;EACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACnE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A;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,gBAAgB,GAAG;EACzB,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,KAAK;EACT,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,IAAI;EACR,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,GAAG;EACP,IAAI,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"}