{"ast":null,"code":"!function (t) {\n \"function\" == typeof define && define.amd ? define(t) : t();\n}(function () {\n \"use strict\";\n /** @license\n * jsPDF - PDF Document creation from JavaScript\n * Version 1.5.3 Built on 2018-12-27T14:11:42.696Z\n * CommitID d93d28db14\n *\n * Copyright (c) 2010-2016 James Hall , https://github.com/MrRio/jsPDF\n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, willow-systems.com\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Licensed under the MIT License\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\n function se(t) {\n return (se = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n })(t);\n }\n\n !function (t) {\n if (\"object\" !== se(t.console)) {\n t.console = {};\n\n for (var e, n, r = t.console, i = function i() {}, o = [\"memory\"], a = \"assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn\".split(\",\"); e = o.pop();) {\n r[e] || (r[e] = {});\n }\n\n for (; n = a.pop();) {\n r[n] || (r[n] = i);\n }\n }\n\n var s,\n l,\n h,\n u,\n c = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n void 0 === t.btoa && (t.btoa = function (t) {\n var e,\n n,\n r,\n i,\n o,\n a = 0,\n s = 0,\n l = \"\",\n h = [];\n if (!t) return t;\n\n for (; e = (o = t.charCodeAt(a++) << 16 | t.charCodeAt(a++) << 8 | t.charCodeAt(a++)) >> 18 & 63, n = o >> 12 & 63, r = o >> 6 & 63, i = 63 & o, h[s++] = c.charAt(e) + c.charAt(n) + c.charAt(r) + c.charAt(i), a < t.length;) {\n ;\n }\n\n l = h.join(\"\");\n var u = t.length % 3;\n return (u ? l.slice(0, u - 3) : l) + \"===\".slice(u || 3);\n }), void 0 === t.atob && (t.atob = function (t) {\n var e,\n n,\n r,\n i,\n o,\n a,\n s = 0,\n l = 0,\n h = [];\n if (!t) return t;\n\n for (t += \"\"; e = (a = c.indexOf(t.charAt(s++)) << 18 | c.indexOf(t.charAt(s++)) << 12 | (i = c.indexOf(t.charAt(s++))) << 6 | (o = c.indexOf(t.charAt(s++)))) >> 16 & 255, n = a >> 8 & 255, r = 255 & a, h[l++] = 64 == i ? String.fromCharCode(e) : 64 == o ? String.fromCharCode(e, n) : String.fromCharCode(e, n, r), s < t.length;) {\n ;\n }\n\n return h.join(\"\");\n }), Array.prototype.map || (Array.prototype.map = function (t) {\n if (null == this || \"function\" != typeof t) throw new TypeError();\n\n for (var e = Object(this), n = e.length >>> 0, r = new Array(n), i = 1 < arguments.length ? arguments[1] : void 0, o = 0; o < n; o++) {\n o in e && (r[o] = t.call(i, e[o], o, e));\n }\n\n return r;\n }), Array.isArray || (Array.isArray = function (t) {\n return \"[object Array]\" === Object.prototype.toString.call(t);\n }), Array.prototype.forEach || (Array.prototype.forEach = function (t, e) {\n if (null == this || \"function\" != typeof t) throw new TypeError();\n\n for (var n = Object(this), r = n.length >>> 0, i = 0; i < r; i++) {\n i in n && t.call(e, n[i], i, n);\n }\n }), Array.prototype.find || Object.defineProperty(Array.prototype, \"find\", {\n value: function value(t) {\n if (null == this) throw new TypeError('\"this\" is null or not defined');\n var e = Object(this),\n n = e.length >>> 0;\n if (\"function\" != typeof t) throw new TypeError(\"predicate must be a function\");\n\n for (var r = arguments[1], i = 0; i < n;) {\n var o = e[i];\n if (t.call(r, o, i, e)) return o;\n i++;\n }\n },\n configurable: !0,\n writable: !0\n }), Object.keys || (Object.keys = (s = Object.prototype.hasOwnProperty, l = !{\n toString: null\n }.propertyIsEnumerable(\"toString\"), u = (h = [\"toString\", \"toLocaleString\", \"valueOf\", \"hasOwnProperty\", \"isPrototypeOf\", \"propertyIsEnumerable\", \"constructor\"]).length, function (t) {\n if (\"object\" !== se(t) && (\"function\" != typeof t || null === t)) throw new TypeError();\n var e,\n n,\n r = [];\n\n for (e in t) {\n s.call(t, e) && r.push(e);\n }\n\n if (l) for (n = 0; n < u; n++) {\n s.call(t, h[n]) && r.push(h[n]);\n }\n return r;\n })), \"function\" != typeof Object.assign && (Object.assign = function (t) {\n if (null == t) throw new TypeError(\"Cannot convert undefined or null to object\");\n t = Object(t);\n\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e];\n if (null != n) for (var r in n) {\n Object.prototype.hasOwnProperty.call(n, r) && (t[r] = n[r]);\n }\n }\n\n return t;\n }), String.prototype.trim || (String.prototype.trim = function () {\n return this.replace(/^\\s+|\\s+$/g, \"\");\n }), String.prototype.trimLeft || (String.prototype.trimLeft = function () {\n return this.replace(/^\\s+/g, \"\");\n }), String.prototype.trimRight || (String.prototype.trimRight = function () {\n return this.replace(/\\s+$/g, \"\");\n }), Number.isInteger = Number.isInteger || function (t) {\n return \"number\" == typeof t && isFinite(t) && Math.floor(t) === t;\n };\n }(\"undefined\" != typeof self && self || \"undefined\" != typeof window && window || \"undefined\" != typeof global && global || Function('return typeof this === \"object\" && this.content')() || Function(\"return this\")());\n\n var t,\n e,\n n,\n _,\n l,\n F,\n P,\n p,\n d,\n k,\n a,\n o,\n s,\n h,\n u,\n c,\n r,\n i,\n f,\n g,\n m,\n y,\n v,\n w,\n b,\n x,\n I,\n C,\n B,\n N,\n L,\n A,\n S,\n j,\n E,\n M,\n O,\n q,\n T,\n R,\n D,\n U,\n z,\n H,\n W,\n V,\n G,\n Y,\n J,\n X,\n K,\n Z,\n Q,\n $,\n tt,\n et,\n nt,\n rt,\n it,\n ot,\n at,\n st,\n lt = function (ie) {\n function oe(o) {\n if (\"object\" !== se(o)) throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");\n var a = {};\n this.subscribe = function (t, e, n) {\n if (n = n || !1, \"string\" != typeof t || \"function\" != typeof e || \"boolean\" != typeof n) throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");\n a.hasOwnProperty(t) || (a[t] = {});\n var r = Math.random().toString(35);\n return a[t][r] = [e, !!n], r;\n }, this.unsubscribe = function (t) {\n for (var e in a) {\n if (a[e][t]) return delete a[e][t], 0 === Object.keys(a[e]).length && delete a[e], !0;\n }\n\n return !1;\n }, this.publish = function (t) {\n if (a.hasOwnProperty(t)) {\n var e = Array.prototype.slice.call(arguments, 1),\n n = [];\n\n for (var r in a[t]) {\n var i = a[t][r];\n\n try {\n i[0].apply(o, e);\n } catch (t) {\n ie.console && console.error(\"jsPDF PubSub Error\", t.message, t);\n }\n\n i[1] && n.push(r);\n }\n\n n.length && n.forEach(this.unsubscribe);\n }\n }, this.getTopics = function () {\n return a;\n };\n }\n\n function ae(t, e, i, n) {\n var r = {},\n o = [],\n a = 1;\n \"object\" === se(t) && (t = (r = t).orientation, e = r.unit || e, i = r.format || i, n = r.compress || r.compressPdf || n, o = r.filters || (!0 === n ? [\"FlateEncode\"] : o), a = \"number\" == typeof r.userUnit ? Math.abs(r.userUnit) : 1), e = e || \"mm\", t = (\"\" + (t || \"P\")).toLowerCase();\n var s = r.putOnlyUsedFonts || !0,\n K = {},\n l = {\n internal: {},\n __private__: {}\n };\n l.__private__.PubSub = oe;\n\n var h = \"1.3\",\n u = l.__private__.getPdfVersion = function () {\n return h;\n },\n c = (l.__private__.setPdfVersion = function (t) {\n h = t;\n }, {\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 f = (l.__private__.getPageFormats = function () {\n return c;\n }, l.__private__.getPageFormat = function (t) {\n return c[t];\n });\n\n \"string\" == typeof i && (i = f(i)), i = i || f(\"a4\");\n\n var p,\n Z = l.f2 = l.__private__.f2 = function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.f2\");\n return t.toFixed(2);\n },\n Q = l.__private__.f3 = function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.f3\");\n return t.toFixed(3);\n },\n d = \"00000000000000000000000000000000\",\n g = l.__private__.getFileId = function () {\n return d;\n },\n m = l.__private__.setFileId = function (t) {\n return t = t || \"12345678901234567890123456789012\".split(\"\").map(function () {\n return \"ABCDEF0123456789\".charAt(Math.floor(16 * Math.random()));\n }).join(\"\"), d = t;\n };\n\n l.setFileId = function (t) {\n return m(t), this;\n }, l.getFileId = function () {\n return g();\n };\n\n var y = l.__private__.convertDateToPDFDate = function (t) {\n var e = t.getTimezoneOffset(),\n n = e < 0 ? \"+\" : \"-\",\n r = Math.floor(Math.abs(e / 60)),\n i = Math.abs(e % 60),\n o = [n, P(r), \"'\", P(i), \"'\"].join(\"\");\n return [\"D:\", t.getFullYear(), P(t.getMonth() + 1), P(t.getDate()), P(t.getHours()), P(t.getMinutes()), P(t.getSeconds()), o].join(\"\");\n },\n v = l.__private__.convertPDFDateToDate = function (t) {\n var e = parseInt(t.substr(2, 4), 10),\n n = parseInt(t.substr(6, 2), 10) - 1,\n r = parseInt(t.substr(8, 2), 10),\n i = parseInt(t.substr(10, 2), 10),\n o = parseInt(t.substr(12, 2), 10),\n a = parseInt(t.substr(14, 2), 10);\n parseInt(t.substr(16, 2), 10), parseInt(t.substr(20, 2), 10);\n return new Date(e, n, r, i, o, a, 0);\n },\n w = l.__private__.setCreationDate = function (t) {\n var e;\n if (void 0 === t && (t = new Date()), \"object\" === se(t) && \"[object Date]\" === Object.prototype.toString.call(t)) e = y(t);else {\n if (!/^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])\\'?$/.test(t)) throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\n e = t;\n }\n return p = e;\n },\n b = l.__private__.getCreationDate = function (t) {\n var e = p;\n return \"jsDate\" === t && (e = v(p)), e;\n };\n\n l.setCreationDate = function (t) {\n return w(t), this;\n }, l.getCreationDate = function (t) {\n return b(t);\n };\n\n var x,\n N,\n L,\n A,\n S,\n $,\n _,\n F,\n P = l.__private__.padd2 = function (t) {\n return (\"0\" + parseInt(t)).slice(-2);\n },\n k = !1,\n I = [],\n C = [],\n B = 0,\n tt = (l.__private__.setCustomOutputDestination = function (t) {\n N = t;\n }, l.__private__.resetCustomOutputDestination = function (t) {\n N = void 0;\n }, l.__private__.out = function (t) {\n var e;\n return t = \"string\" == typeof t ? t : t.toString(), (e = void 0 === N ? k ? I[x] : C : N).push(t), k || (B += t.length + 1), e;\n }),\n j = l.__private__.write = function (t) {\n return tt(1 === arguments.length ? t.toString() : Array.prototype.join.call(arguments, \" \"));\n },\n E = l.__private__.getArrayBuffer = function (t) {\n for (var e = t.length, n = new ArrayBuffer(e), r = new Uint8Array(n); e--;) {\n r[e] = t.charCodeAt(e);\n }\n\n return n;\n },\n M = [[\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"], [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"], [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"], [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"], [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"], [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"], [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"], [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"], [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"], [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"], [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"], [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"], [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null], [\"Symbol\", \"symbol\", \"normal\", null]],\n et = (l.__private__.getStandardFonts = function (t) {\n return M;\n }, r.fontSize || 16),\n O = (l.__private__.setFontSize = l.setFontSize = function (t) {\n return et = t, this;\n }, l.__private__.getFontSize = l.getFontSize = function () {\n return et;\n }),\n nt = r.R2L || !1,\n q = (l.__private__.setR2L = l.setR2L = function (t) {\n return nt = t, this;\n }, l.__private__.getR2L = l.getR2L = function (t) {\n return nt;\n }, l.__private__.setZoomMode = function (t) {\n var e = [void 0, null, \"fullwidth\", \"fullheight\", \"fullpage\", \"original\"];\n if (/^\\d*\\.?\\d*\\%$/.test(t)) L = t;else if (isNaN(t)) {\n if (-1 === e.indexOf(t)) throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' + t + '\" is not recognized.');\n L = t;\n } else L = parseInt(t, 10);\n }),\n T = (l.__private__.getZoomMode = function () {\n return L;\n }, l.__private__.setPageMode = function (t) {\n if (-1 == [void 0, null, \"UseNone\", \"UseOutlines\", \"UseThumbs\", \"FullScreen\"].indexOf(t)) throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' + t + '\" is not recognized.');\n A = t;\n }),\n R = (l.__private__.getPageMode = function () {\n return A;\n }, l.__private__.setLayoutMode = function (t) {\n if (-1 == [void 0, null, \"continuous\", \"single\", \"twoleft\", \"tworight\", \"two\"].indexOf(t)) throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"' + t + '\" is not recognized.');\n S = t;\n }),\n D = (l.__private__.getLayoutMode = function () {\n return S;\n }, l.__private__.setDisplayMode = l.setDisplayMode = function (t, e, n) {\n return q(t), R(e), T(n), this;\n }, {\n title: \"\",\n subject: \"\",\n author: \"\",\n keywords: \"\",\n creator: \"\"\n }),\n U = (l.__private__.getDocumentProperty = function (t) {\n if (-1 === Object.keys(D).indexOf(t)) throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\n return D[t];\n }, l.__private__.getDocumentProperties = function (t) {\n return D;\n }, l.__private__.setDocumentProperties = l.setProperties = l.setDocumentProperties = function (t) {\n for (var e in D) {\n D.hasOwnProperty(e) && t[e] && (D[e] = t[e]);\n }\n\n return this;\n }, l.__private__.setDocumentProperty = function (t, e) {\n if (-1 === Object.keys(D).indexOf(t)) throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\n return D[t] = e;\n }, 0),\n z = [],\n rt = {},\n H = {},\n W = 0,\n V = [],\n G = [],\n it = new oe(l),\n Y = r.hotfixes || [],\n J = l.__private__.newObject = function () {\n var t = X();\n return ot(t, !0), t;\n },\n X = l.__private__.newObjectDeferred = function () {\n return z[++U] = function () {\n return B;\n }, U;\n },\n ot = function ot(t, e) {\n return e = \"boolean\" == typeof e && e, z[t] = B, e && tt(t + \" 0 obj\"), t;\n },\n at = l.__private__.newAdditionalObject = function () {\n var t = {\n objId: X(),\n content: \"\"\n };\n return G.push(t), t;\n },\n st = X(),\n lt = X(),\n ht = l.__private__.decodeColorString = function (t) {\n var e = t.split(\" \");\n\n if (2 === e.length && (\"g\" === e[1] || \"G\" === e[1])) {\n var n = parseFloat(e[0]);\n e = [n, n, n, \"r\"];\n }\n\n for (var r = \"#\", i = 0; i < 3; i++) {\n r += (\"0\" + Math.floor(255 * parseFloat(e[i])).toString(16)).slice(-2);\n }\n\n return r;\n },\n ut = l.__private__.encodeColorString = function (t) {\n var e;\n \"string\" == typeof t && (t = {\n ch1: t\n });\n var n = t.ch1,\n r = t.ch2,\n i = t.ch3,\n o = t.ch4,\n a = (t.precision, \"draw\" === t.pdfColorType ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"]);\n\n if (\"string\" == typeof n && \"#\" !== n.charAt(0)) {\n var s = new RGBColor(n);\n if (s.ok) n = s.toHex();else if (!/^\\d*\\.?\\d*$/.test(n)) throw new Error('Invalid color \"' + n + '\" passed to jsPDF.encodeColorString.');\n }\n\n if (\"string\" == typeof n && /^#[0-9A-Fa-f]{3}$/.test(n) && (n = \"#\" + n[1] + n[1] + n[2] + n[2] + n[3] + n[3]), \"string\" == typeof n && /^#[0-9A-Fa-f]{6}$/.test(n)) {\n var l = parseInt(n.substr(1), 16);\n n = l >> 16 & 255, r = l >> 8 & 255, i = 255 & l;\n }\n\n if (void 0 === r || void 0 === o && n === r && r === i) {\n if (\"string\" == typeof n) e = n + \" \" + a[0];else switch (t.precision) {\n case 2:\n e = Z(n / 255) + \" \" + a[0];\n break;\n\n case 3:\n default:\n e = Q(n / 255) + \" \" + a[0];\n }\n } else if (void 0 === o || \"object\" === se(o)) {\n if (o && !isNaN(o.a) && 0 === o.a) return e = [\"1.000\", \"1.000\", \"1.000\", a[1]].join(\" \");\n if (\"string\" == typeof n) e = [n, r, i, a[1]].join(\" \");else switch (t.precision) {\n case 2:\n e = [Z(n / 255), Z(r / 255), Z(i / 255), a[1]].join(\" \");\n break;\n\n default:\n case 3:\n e = [Q(n / 255), Q(r / 255), Q(i / 255), a[1]].join(\" \");\n }\n } else if (\"string\" == typeof n) e = [n, r, i, o, a[2]].join(\" \");else switch (t.precision) {\n case 2:\n e = [Z(n / 255), Z(r / 255), Z(i / 255), Z(o / 255), a[2]].join(\" \");\n break;\n\n case 3:\n default:\n e = [Q(n / 255), Q(r / 255), Q(i / 255), Q(o / 255), a[2]].join(\" \");\n }\n return e;\n },\n ct = l.__private__.getFilters = function () {\n return o;\n },\n ft = l.__private__.putStream = function (t) {\n var e = (t = t || {}).data || \"\",\n n = t.filters || ct(),\n r = t.alreadyAppliedFilters || [],\n i = t.addLength1 || !1,\n o = e.length,\n a = {};\n !0 === n && (n = [\"FlateEncode\"]);\n var s = t.additionalKeyValues || [],\n l = (a = void 0 !== ae.API.processDataByFilters ? ae.API.processDataByFilters(e, n) : {\n data: e,\n reverseChain: []\n }).reverseChain + (Array.isArray(r) ? r.join(\" \") : r.toString());\n 0 !== a.data.length && (s.push({\n key: \"Length\",\n value: a.data.length\n }), !0 === i && s.push({\n key: \"Length1\",\n value: o\n })), 0 != l.length && (l.split(\"/\").length - 1 == 1 ? s.push({\n key: \"Filter\",\n value: l\n }) : s.push({\n key: \"Filter\",\n value: \"[\" + l + \"]\"\n })), tt(\"<<\");\n\n for (var h = 0; h < s.length; h++) {\n tt(\"/\" + s[h].key + \" \" + s[h].value);\n }\n\n tt(\">>\"), 0 !== a.data.length && (tt(\"stream\"), tt(a.data), tt(\"endstream\"));\n },\n pt = l.__private__.putPage = function (t) {\n t.mediaBox;\n var e = t.number,\n n = t.data,\n r = t.objId,\n i = t.contentsObjId;\n ot(r, !0);\n V[x].mediaBox.topRightX, V[x].mediaBox.bottomLeftX, V[x].mediaBox.topRightY, V[x].mediaBox.bottomLeftY;\n tt(\"<>\"), tt(\"endobj\");\n var o = n.join(\"\\n\");\n return ot(i, !0), ft({\n data: o,\n filters: ct()\n }), tt(\"endobj\"), r;\n },\n dt = l.__private__.putPages = function () {\n var t,\n e,\n n = [];\n\n for (t = 1; t <= W; t++) {\n V[t].objId = X(), V[t].contentsObjId = X();\n }\n\n for (t = 1; t <= W; t++) {\n n.push(pt({\n number: t,\n data: I[t],\n objId: V[t].objId,\n contentsObjId: V[t].contentsObjId,\n mediaBox: V[t].mediaBox,\n cropBox: V[t].cropBox,\n bleedBox: V[t].bleedBox,\n trimBox: V[t].trimBox,\n artBox: V[t].artBox,\n userUnit: V[t].userUnit,\n rootDictionaryObjId: st,\n resourceDictionaryObjId: lt\n }));\n }\n\n ot(st, !0), tt(\"<>\"), tt(\"endobj\"), it.publish(\"postPutPages\");\n },\n gt = function gt() {\n !function () {\n for (var t in rt) {\n rt.hasOwnProperty(t) && (!1 === s || !0 === s && K.hasOwnProperty(t)) && (e = rt[t], it.publish(\"putFont\", {\n font: e,\n out: tt,\n newObject: J,\n putStream: ft\n }), !0 !== e.isAlreadyPutted && (e.objectNumber = J(), tt(\"<<\"), tt(\"/Type /Font\"), tt(\"/BaseFont /\" + e.postScriptName), tt(\"/Subtype /Type1\"), \"string\" == typeof e.encoding && tt(\"/Encoding /\" + e.encoding), tt(\"/FirstChar 32\"), tt(\"/LastChar 255\"), tt(\">>\"), tt(\"endobj\")));\n }\n\n var e;\n }(), it.publish(\"putResources\"), ot(lt, !0), tt(\"<<\"), function () {\n for (var t in tt(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"), tt(\"/Font <<\"), rt) {\n rt.hasOwnProperty(t) && (!1 === s || !0 === s && K.hasOwnProperty(t)) && tt(\"/\" + t + \" \" + rt[t].objectNumber + \" 0 R\");\n }\n\n tt(\">>\"), tt(\"/XObject <<\"), it.publish(\"putXobjectDict\"), tt(\">>\");\n }(), tt(\">>\"), tt(\"endobj\"), it.publish(\"postPutResources\");\n },\n mt = function mt(t, e, n) {\n H.hasOwnProperty(e) || (H[e] = {}), H[e][n] = t;\n },\n yt = function yt(t, e, n, r, i) {\n i = i || !1;\n var o = \"F\" + (Object.keys(rt).length + 1).toString(10),\n a = {\n id: o,\n postScriptName: t,\n fontName: e,\n fontStyle: n,\n encoding: r,\n isStandardFont: i,\n metadata: {}\n };\n return it.publish(\"addFont\", {\n font: a,\n instance: this\n }), void 0 !== o && (rt[o] = a, mt(o, e, n)), o;\n },\n vt = l.__private__.pdfEscape = l.pdfEscape = function (t, e) {\n return function (t, e) {\n var n, r, i, o, a, s, l, h, u;\n\n if (i = (e = e || {}).sourceEncoding || \"Unicode\", a = e.outputEncoding, (e.autoencode || a) && rt[$].metadata && rt[$].metadata[i] && rt[$].metadata[i].encoding && (o = rt[$].metadata[i].encoding, !a && rt[$].encoding && (a = rt[$].encoding), !a && o.codePages && (a = o.codePages[0]), \"string\" == typeof a && (a = o[a]), a)) {\n for (l = !1, s = [], n = 0, r = t.length; n < r; n++) {\n (h = a[t.charCodeAt(n)]) ? s.push(String.fromCharCode(h)) : s.push(t[n]), s[n].charCodeAt(0) >> 8 && (l = !0);\n }\n\n t = s.join(\"\");\n }\n\n for (n = t.length; void 0 === l && 0 !== n;) {\n t.charCodeAt(n - 1) >> 8 && (l = !0), n--;\n }\n\n if (!l) return t;\n\n for (s = e.noBOM ? [] : [254, 255], n = 0, r = t.length; n < r; n++) {\n if ((u = (h = t.charCodeAt(n)) >> 8) >> 8) throw new Error(\"Character at position \" + n + \" of string '\" + t + \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");\n s.push(u), s.push(h - (u << 8));\n }\n\n return String.fromCharCode.apply(void 0, s);\n }(t, e).replace(/\\\\/g, \"\\\\\\\\\").replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n },\n wt = l.__private__.beginPage = function (t, e) {\n var n,\n r = \"string\" == typeof e && e.toLowerCase();\n\n if (\"string\" == typeof t && (n = f(t.toLowerCase())) && (t = n[0], e = n[1]), Array.isArray(t) && (e = t[1], t = t[0]), (isNaN(t) || isNaN(e)) && (t = i[0], e = i[1]), r) {\n switch (r.substr(0, 1)) {\n case \"l\":\n t < e && (r = \"s\");\n break;\n\n case \"p\":\n e < t && (r = \"s\");\n }\n\n \"s\" === r && (n = t, t = e, e = n);\n }\n\n (14400 < t || 14400 < e) && (console.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"), t = Math.min(14400, t), e = Math.min(14400, e)), i = [t, e], k = !0, I[++W] = [], V[W] = {\n objId: 0,\n contentsObjId: 0,\n userUnit: Number(a),\n artBox: null,\n bleedBox: null,\n cropBox: null,\n trimBox: null,\n mediaBox: {\n bottomLeftX: 0,\n bottomLeftY: 0,\n topRightX: Number(t),\n topRightY: Number(e)\n }\n }, xt(W);\n },\n bt = function bt() {\n wt.apply(this, arguments), Dt(Rt), tt(Jt), 0 !== te && tt(te + \" J\"), 0 !== ne && tt(ne + \" j\"), it.publish(\"addPage\", {\n pageNumber: W\n });\n },\n xt = function xt(t) {\n 0 < t && t <= W && (x = t);\n },\n Nt = l.__private__.getNumberOfPages = l.getNumberOfPages = function () {\n return I.length - 1;\n },\n Lt = function Lt(t, e, n) {\n var r,\n i = void 0;\n return n = n || {}, t = void 0 !== t ? t : rt[$].fontName, e = void 0 !== e ? e : rt[$].fontStyle, r = t.toLowerCase(), void 0 !== H[r] && void 0 !== H[r][e] ? i = H[r][e] : void 0 !== H[t] && void 0 !== H[t][e] ? i = H[t][e] : !1 === n.disableWarning && console.warn(\"Unable to look up font label for font '\" + t + \"', '\" + e + \"'. Refer to getFontList() for available fonts.\"), i || n.noFallback || null == (i = H.times[e]) && (i = H.times.normal), i;\n },\n At = l.__private__.putInfo = function () {\n for (var t in J(), tt(\"<<\"), tt(\"/Producer (jsPDF \" + ae.version + \")\"), D) {\n D.hasOwnProperty(t) && D[t] && tt(\"/\" + t.substr(0, 1).toUpperCase() + t.substr(1) + \" (\" + vt(D[t]) + \")\");\n }\n\n tt(\"/CreationDate (\" + p + \")\"), tt(\">>\"), tt(\"endobj\");\n },\n St = l.__private__.putCatalog = function (t) {\n var e = (t = t || {}).rootDictionaryObjId || st;\n\n switch (J(), tt(\"<<\"), tt(\"/Type /Catalog\"), tt(\"/Pages \" + e + \" 0 R\"), L || (L = \"fullwidth\"), L) {\n case \"fullwidth\":\n tt(\"/OpenAction [3 0 R /FitH null]\");\n break;\n\n case \"fullheight\":\n tt(\"/OpenAction [3 0 R /FitV null]\");\n break;\n\n case \"fullpage\":\n tt(\"/OpenAction [3 0 R /Fit]\");\n break;\n\n case \"original\":\n tt(\"/OpenAction [3 0 R /XYZ null null 1]\");\n break;\n\n default:\n var n = \"\" + L;\n \"%\" === n.substr(n.length - 1) && (L = parseInt(L) / 100), \"number\" == typeof L && tt(\"/OpenAction [3 0 R /XYZ null null \" + Z(L) + \"]\");\n }\n\n switch (S || (S = \"continuous\"), S) {\n case \"continuous\":\n tt(\"/PageLayout /OneColumn\");\n break;\n\n case \"single\":\n tt(\"/PageLayout /SinglePage\");\n break;\n\n case \"two\":\n case \"twoleft\":\n tt(\"/PageLayout /TwoColumnLeft\");\n break;\n\n case \"tworight\":\n tt(\"/PageLayout /TwoColumnRight\");\n }\n\n A && tt(\"/PageMode /\" + A), it.publish(\"putCatalog\"), tt(\">>\"), tt(\"endobj\");\n },\n _t = l.__private__.putTrailer = function () {\n tt(\"trailer\"), tt(\"<<\"), tt(\"/Size \" + (U + 1)), tt(\"/Root \" + U + \" 0 R\"), tt(\"/Info \" + (U - 1) + \" 0 R\"), tt(\"/ID [ <\" + d + \"> <\" + d + \"> ]\"), tt(\">>\");\n },\n Ft = l.__private__.putHeader = function () {\n tt(\"%PDF-\" + h), tt(\"%ºß¬à\");\n },\n Pt = l.__private__.putXRef = function () {\n var t = 1,\n e = \"0000000000\";\n\n for (tt(\"xref\"), tt(\"0 \" + (U + 1)), tt(\"0000000000 65535 f \"), t = 1; t <= U; t++) {\n \"function\" == typeof z[t] ? tt((e + z[t]()).slice(-10) + \" 00000 n \") : void 0 !== z[t] ? tt((e + z[t]).slice(-10) + \" 00000 n \") : tt(\"0000000000 00000 n \");\n }\n },\n kt = l.__private__.buildDocument = function () {\n k = !1, B = U = 0, C = [], z = [], G = [], st = X(), lt = X(), it.publish(\"buildDocument\"), Ft(), dt(), function () {\n it.publish(\"putAdditionalObjects\");\n\n for (var t = 0; t < G.length; t++) {\n var e = G[t];\n ot(e.objId, !0), tt(e.content), tt(\"endobj\");\n }\n\n it.publish(\"postPutAdditionalObjects\");\n }(), gt(), At(), St();\n var t = B;\n return Pt(), _t(), tt(\"startxref\"), tt(\"\" + t), tt(\"%%EOF\"), k = !0, C.join(\"\\n\");\n },\n It = l.__private__.getBlob = function (t) {\n return new Blob([E(t)], {\n type: \"application/pdf\"\n });\n },\n Ct = l.output = l.__private__.output = ((F = function F(t, e) {\n e = e || {};\n var n = kt();\n\n switch (\"string\" == typeof e ? e = {\n filename: e\n } : e.filename = e.filename || \"generated.pdf\", t) {\n case void 0:\n return n;\n\n case \"save\":\n l.save(e.filename);\n break;\n\n case \"arraybuffer\":\n return E(n);\n\n case \"blob\":\n return It(n);\n\n case \"bloburi\":\n case \"bloburl\":\n if (void 0 !== ie.URL && \"function\" == typeof ie.URL.createObjectURL) return ie.URL && ie.URL.createObjectURL(It(n)) || void 0;\n console.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");\n break;\n\n case \"datauristring\":\n case \"dataurlstring\":\n return \"data:application/pdf;filename=\" + e.filename + \";base64,\" + btoa(n);\n\n case \"dataurlnewwindow\":\n var r = '',\n i = ie.open();\n if (null !== i && i.document.write(r), i || \"undefined\" == typeof safari) return i;\n\n case \"datauri\":\n case \"dataurl\":\n return ie.document.location.href = \"data:application/pdf;filename=\" + e.filename + \";base64,\" + btoa(n);\n\n default:\n return null;\n }\n }).foo = function () {\n try {\n return F.apply(this, arguments);\n } catch (t) {\n var e = t.stack || \"\";\n ~e.indexOf(\" at \") && (e = e.split(\" at \")[1]);\n var n = \"Error in function \" + e.split(\"\\n\")[0].split(\"<\")[0] + \": \" + t.message;\n if (!ie.console) throw new Error(n);\n ie.console.error(n, t), ie.alert && alert(n);\n }\n }, (F.foo.bar = F).foo),\n Bt = function Bt(t) {\n return !0 === Array.isArray(Y) && -1 < Y.indexOf(t);\n };\n\n switch (e) {\n case \"pt\":\n _ = 1;\n break;\n\n case \"mm\":\n _ = 72 / 25.4;\n break;\n\n case \"cm\":\n _ = 72 / 2.54;\n break;\n\n case \"in\":\n _ = 72;\n break;\n\n case \"px\":\n _ = 1 == Bt(\"px_scaling\") ? .75 : 96 / 72;\n break;\n\n case \"pc\":\n case \"em\":\n _ = 12;\n break;\n\n case \"ex\":\n _ = 6;\n break;\n\n default:\n throw new Error(\"Invalid unit: \" + e);\n }\n\n w(), m();\n\n var jt = l.__private__.getPageInfo = function (t) {\n if (isNaN(t) || t % 1 != 0) throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\n return {\n objId: V[t].objId,\n pageNumber: t,\n pageContext: V[t]\n };\n },\n Et = l.__private__.getPageInfoByObjId = function (t) {\n for (var e in V) {\n if (V[e].objId === t) break;\n }\n\n if (isNaN(t) || t % 1 != 0) throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\n return jt(e);\n },\n Mt = l.__private__.getCurrentPageInfo = function () {\n return {\n objId: V[x].objId,\n pageNumber: x,\n pageContext: V[x]\n };\n };\n\n l.addPage = function () {\n return bt.apply(this, arguments), this;\n }, l.setPage = function () {\n return xt.apply(this, arguments), this;\n }, l.insertPage = function (t) {\n return this.addPage(), this.movePage(x, t), this;\n }, l.movePage = function (t, e) {\n if (e < t) {\n for (var n = I[t], r = V[t], i = t; e < i; i--) {\n I[i] = I[i - 1], V[i] = V[i - 1];\n }\n\n I[e] = n, V[e] = r, this.setPage(e);\n } else if (t < e) {\n for (n = I[t], r = V[t], i = t; i < e; i++) {\n I[i] = I[i + 1], V[i] = V[i + 1];\n }\n\n I[e] = n, V[e] = r, this.setPage(e);\n }\n\n return this;\n }, l.deletePage = function () {\n return function (t) {\n 0 < t && t <= W && (I.splice(t, 1), --W < x && (x = W), this.setPage(x));\n }.apply(this, arguments), this;\n };\n l.__private__.text = l.text = function (t, e, n, i) {\n var r;\n \"number\" != typeof t || \"number\" != typeof e || \"string\" != typeof n && !Array.isArray(n) || (r = n, n = e, e = t, t = r);\n var o = arguments[3],\n a = arguments[4],\n s = arguments[5];\n if (\"object\" === se(o) && null !== o || (\"string\" == typeof a && (s = a, a = null), \"string\" == typeof o && (s = o, o = null), \"number\" == typeof o && (a = o, o = null), i = {\n flags: o,\n angle: a,\n align: s\n }), (o = o || {}).noBOM = o.noBOM || !0, o.autoencode = o.autoencode || !0, isNaN(e) || isNaN(n) || null == t) throw new Error(\"Invalid arguments passed to jsPDF.text\");\n if (0 === t.length) return c;\n var l,\n h = \"\",\n u = \"number\" == typeof i.lineHeightFactor ? i.lineHeightFactor : Tt,\n c = i.scope || this;\n\n function f(t) {\n for (var e, n = t.concat(), r = [], i = n.length; i--;) {\n \"string\" == typeof (e = n.shift()) ? r.push(e) : Array.isArray(t) && 1 === e.length ? r.push(e[0]) : r.push([e[0], e[1], e[2]]);\n }\n\n return r;\n }\n\n function p(t, e) {\n var n;\n if (\"string\" == typeof t) n = e(t)[0];else if (Array.isArray(t)) {\n for (var r, i, o = t.concat(), a = [], s = o.length; s--;) {\n \"string\" == typeof (r = o.shift()) ? a.push(e(r)[0]) : Array.isArray(r) && \"string\" === r[0] && (i = e(r[0], r[1], r[2]), a.push([i[0], i[1], i[2]]));\n }\n\n n = a;\n }\n return n;\n }\n\n var d = !1,\n g = !0;\n if (\"string\" == typeof t) d = !0;else if (Array.isArray(t)) {\n for (var m, y = t.concat(), v = [], w = y.length; w--;) {\n (\"string\" != typeof (m = y.shift()) || Array.isArray(m) && \"string\" != typeof m[0]) && (g = !1);\n }\n\n d = g;\n }\n if (!1 === d) throw new Error('Type of text must be string or Array. \"' + t + '\" is not recognized.');\n var b = rt[$].encoding;\n \"WinAnsiEncoding\" !== b && \"StandardEncoding\" !== b || (t = p(t, function (t, e, n) {\n return [(r = t, r = r.split(\"\\t\").join(Array(i.TabLen || 9).join(\" \")), vt(r, o)), e, n];\n var r;\n })), \"string\" == typeof t && (t = t.match(/[\\r?\\n]/) ? t.split(/\\r\\n|\\r|\\n/g) : [t]);\n var x = et / c.internal.scaleFactor,\n N = x * (Tt - 1);\n\n switch (i.baseline) {\n case \"bottom\":\n n -= N;\n break;\n\n case \"top\":\n n += x - N;\n break;\n\n case \"hanging\":\n n += x - 2 * N;\n break;\n\n case \"middle\":\n n += x / 2 - N;\n }\n\n 0 < (O = i.maxWidth || 0) && (\"string\" == typeof t ? t = c.splitTextToSize(t, O) : \"[object Array]\" === Object.prototype.toString.call(t) && (t = c.splitTextToSize(t.join(\" \"), O)));\n var L = {\n text: t,\n x: e,\n y: n,\n options: i,\n mutex: {\n pdfEscape: vt,\n activeFontKey: $,\n fonts: rt,\n activeFontSize: et\n }\n };\n it.publish(\"preProcessText\", L), t = L.text;\n a = (i = L.options).angle;\n var A = c.internal.scaleFactor,\n S = [];\n\n if (a) {\n a *= Math.PI / 180;\n\n var _ = Math.cos(a),\n F = Math.sin(a);\n\n S = [Z(_), Z(F), Z(-1 * F), Z(_)];\n }\n\n void 0 !== (M = i.charSpace) && (h += Q(M * A) + \" Tc\\n\");\n i.lang;\n var P = -1,\n k = void 0 !== i.renderingMode ? i.renderingMode : i.stroke,\n I = c.internal.getCurrentPageInfo().pageContext;\n\n switch (k) {\n case 0:\n case !1:\n case \"fill\":\n P = 0;\n break;\n\n case 1:\n case !0:\n case \"stroke\":\n P = 1;\n break;\n\n case 2:\n case \"fillThenStroke\":\n P = 2;\n break;\n\n case 3:\n case \"invisible\":\n P = 3;\n break;\n\n case 4:\n case \"fillAndAddForClipping\":\n P = 4;\n break;\n\n case 5:\n case \"strokeAndAddPathForClipping\":\n P = 5;\n break;\n\n case 6:\n case \"fillThenStrokeAndAddToPathForClipping\":\n P = 6;\n break;\n\n case 7:\n case \"addToPathForClipping\":\n P = 7;\n }\n\n var C = void 0 !== I.usedRenderingMode ? I.usedRenderingMode : -1;\n -1 !== P ? h += P + \" Tr\\n\" : -1 !== C && (h += \"0 Tr\\n\"), -1 !== P && (I.usedRenderingMode = P);\n s = i.align || \"left\";\n var B = et * u,\n j = c.internal.pageSize.getWidth(),\n E = (A = c.internal.scaleFactor, rt[$]),\n M = i.charSpace || Qt,\n O = i.maxWidth || 0,\n q = (o = {}, []);\n\n if (\"[object Array]\" === Object.prototype.toString.call(t)) {\n var T, R;\n v = f(t);\n \"left\" !== s && (R = v.map(function (t) {\n return c.getStringUnitWidth(t, {\n font: E,\n charSpace: M,\n fontSize: et\n }) * et / A;\n }));\n var D,\n U = Math.max.apply(Math, R),\n z = 0;\n\n if (\"right\" === s) {\n e -= R[0], t = [];\n var H = 0;\n\n for (w = v.length; H < w; H++) {\n U - R[H], T = 0 === H ? (D = Wt(e), Vt(n)) : (D = (z - R[H]) * A, -B), t.push([v[H], D, T]), z = R[H];\n }\n } else if (\"center\" === s) {\n e -= R[0] / 2, t = [];\n\n for (H = 0, w = v.length; H < w; H++) {\n (U - R[H]) / 2, T = 0 === H ? (D = Wt(e), Vt(n)) : (D = (z - R[H]) / 2 * A, -B), t.push([v[H], D, T]), z = R[H];\n }\n } else if (\"left\" === s) {\n t = [];\n\n for (H = 0, w = v.length; H < w; H++) {\n T = 0 === H ? Vt(n) : -B, D = 0 === H ? Wt(e) : 0, t.push(v[H]);\n }\n } else {\n if (\"justify\" !== s) throw new Error('Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".');\n t = [];\n\n for (O = 0 !== O ? O : j, H = 0, w = v.length; H < w; H++) {\n T = 0 === H ? Vt(n) : -B, D = 0 === H ? Wt(e) : 0, H < w - 1 && q.push(((O - R[H]) / (v[H].split(\" \").length - 1) * A).toFixed(2)), t.push([v[H], D, T]);\n }\n }\n }\n\n !0 === (\"boolean\" == typeof i.R2L ? i.R2L : nt) && (t = p(t, function (t, e, n) {\n return [t.split(\"\").reverse().join(\"\"), e, n];\n }));\n L = {\n text: t,\n x: e,\n y: n,\n options: i,\n mutex: {\n pdfEscape: vt,\n activeFontKey: $,\n fonts: rt,\n activeFontSize: et\n }\n };\n it.publish(\"postProcessText\", L), t = L.text, l = L.mutex.isHex;\n v = f(t);\n t = [];\n var W,\n V,\n G,\n Y = 0,\n J = (w = v.length, \"\");\n\n for (H = 0; H < w; H++) {\n J = \"\", Array.isArray(v[H]) ? (W = parseFloat(v[H][1]), V = parseFloat(v[H][2]), G = (l ? \"<\" : \"(\") + v[H][0] + (l ? \">\" : \")\"), Y = 1) : (W = Wt(e), V = Vt(n), G = (l ? \"<\" : \"(\") + v[H] + (l ? \">\" : \")\")), void 0 !== q && void 0 !== q[H] && (J = q[H] + \" Tw\\n\"), 0 !== S.length && 0 === H ? t.push(J + S.join(\" \") + \" \" + W.toFixed(2) + \" \" + V.toFixed(2) + \" Tm\\n\" + G) : 1 === Y || 0 === Y && 0 === H ? t.push(J + W.toFixed(2) + \" \" + V.toFixed(2) + \" Td\\n\" + G) : t.push(J + G);\n }\n\n t = 0 === Y ? t.join(\" Tj\\nT* \") : t.join(\" Tj\\n\"), t += \" Tj\\n\";\n var X = \"BT\\n/\" + $ + \" \" + et + \" Tf\\n\" + (et * u).toFixed(2) + \" TL\\n\" + Kt + \"\\n\";\n return X += h, X += t, tt(X += \"ET\"), K[$] = !0, c;\n }, l.__private__.lstext = l.lstext = function (t, e, n, r) {\n return console.warn(\"jsPDF.lstext is deprecated\"), this.text(t, e, n, {\n charSpace: r\n });\n }, l.__private__.clip = l.clip = function (t) {\n tt(\"evenodd\" === t ? \"W*\" : \"W\"), tt(\"n\");\n }, l.__private__.clip_fixed = l.clip_fixed = function (t) {\n console.log(\"clip_fixed is deprecated\"), l.clip(t);\n };\n\n var Ot = l.__private__.isValidStyle = function (t) {\n var e = !1;\n return -1 !== [void 0, null, \"S\", \"F\", \"DF\", \"FD\", \"f\", \"f*\", \"B\", \"B*\"].indexOf(t) && (e = !0), e;\n },\n qt = l.__private__.getStyle = function (t) {\n var e = \"S\";\n return \"F\" === t ? e = \"f\" : \"FD\" === t || \"DF\" === t ? e = \"B\" : \"f\" !== t && \"f*\" !== t && \"B\" !== t && \"B*\" !== t || (e = t), e;\n };\n\n l.__private__.line = l.line = function (t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r)) throw new Error(\"Invalid arguments passed to jsPDF.line\");\n return this.lines([[n - t, r - e]], t, e);\n }, l.__private__.lines = l.lines = function (t, e, n, r, i, o) {\n var a, s, l, h, u, c, f, p, d, g, m, y;\n if (\"number\" == typeof t && (y = n, n = e, e = t, t = y), r = r || [1, 1], o = o || !1, isNaN(e) || isNaN(n) || !Array.isArray(t) || !Array.isArray(r) || !Ot(i) || \"boolean\" != typeof o) throw new Error(\"Invalid arguments passed to jsPDF.lines\");\n\n for (tt(Q(Wt(e)) + \" \" + Q(Vt(n)) + \" m \"), a = r[0], s = r[1], h = t.length, g = e, m = n, l = 0; l < h; l++) {\n 2 === (u = t[l]).length ? (g = u[0] * a + g, m = u[1] * s + m, tt(Q(Wt(g)) + \" \" + Q(Vt(m)) + \" l\")) : (c = u[0] * a + g, f = u[1] * s + m, p = u[2] * a + g, d = u[3] * s + m, g = u[4] * a + g, m = u[5] * s + m, tt(Q(Wt(c)) + \" \" + Q(Vt(f)) + \" \" + Q(Wt(p)) + \" \" + Q(Vt(d)) + \" \" + Q(Wt(g)) + \" \" + Q(Vt(m)) + \" c\"));\n }\n\n return o && tt(\" h\"), null !== i && tt(qt(i)), this;\n }, l.__private__.rect = l.rect = function (t, e, n, r, i) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r) || !Ot(i)) throw new Error(\"Invalid arguments passed to jsPDF.rect\");\n return tt([Z(Wt(t)), Z(Vt(e)), Z(n * _), Z(-r * _), \"re\"].join(\" \")), null !== i && tt(qt(i)), this;\n }, l.__private__.triangle = l.triangle = function (t, e, n, r, i, o, a) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r) || isNaN(i) || isNaN(o) || !Ot(a)) throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\n return this.lines([[n - t, r - e], [i - n, o - r], [t - i, e - o]], t, e, [1, 1], a, !0), this;\n }, l.__private__.roundedRect = l.roundedRect = function (t, e, n, r, i, o, a) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r) || isNaN(i) || isNaN(o) || !Ot(a)) throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\n var s = 4 / 3 * (Math.SQRT2 - 1);\n return this.lines([[n - 2 * i, 0], [i * s, 0, i, o - o * s, i, o], [0, r - 2 * o], [0, o * s, -i * s, o, -i, o], [2 * i - n, 0], [-i * s, 0, -i, -o * s, -i, -o], [0, 2 * o - r], [0, -o * s, i * s, -o, i, -o]], t + i, e, [1, 1], a), this;\n }, l.__private__.ellipse = l.ellipse = function (t, e, n, r, i) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r) || !Ot(i)) throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\n var o = 4 / 3 * (Math.SQRT2 - 1) * n,\n a = 4 / 3 * (Math.SQRT2 - 1) * r;\n return tt([Z(Wt(t + n)), Z(Vt(e)), \"m\", Z(Wt(t + n)), Z(Vt(e - a)), Z(Wt(t + o)), Z(Vt(e - r)), Z(Wt(t)), Z(Vt(e - r)), \"c\"].join(\" \")), tt([Z(Wt(t - o)), Z(Vt(e - r)), Z(Wt(t - n)), Z(Vt(e - a)), Z(Wt(t - n)), Z(Vt(e)), \"c\"].join(\" \")), tt([Z(Wt(t - n)), Z(Vt(e + a)), Z(Wt(t - o)), Z(Vt(e + r)), Z(Wt(t)), Z(Vt(e + r)), \"c\"].join(\" \")), tt([Z(Wt(t + o)), Z(Vt(e + r)), Z(Wt(t + n)), Z(Vt(e + a)), Z(Wt(t + n)), Z(Vt(e)), \"c\"].join(\" \")), null !== i && tt(qt(i)), this;\n }, l.__private__.circle = l.circle = function (t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || !Ot(r)) throw new Error(\"Invalid arguments passed to jsPDF.circle\");\n return this.ellipse(t, e, n, n, r);\n };\n l.setFont = function (t, e) {\n return $ = Lt(t, e, {\n disableWarning: !1\n }), this;\n }, l.setFontStyle = l.setFontType = function (t) {\n return $ = Lt(void 0, t), this;\n };\n\n l.__private__.getFontList = l.getFontList = function () {\n var t,\n e,\n n,\n r = {};\n\n for (t in H) {\n if (H.hasOwnProperty(t)) for (e in r[t] = n = [], H[t]) {\n H[t].hasOwnProperty(e) && n.push(e);\n }\n }\n\n return r;\n };\n\n l.addFont = function (t, e, n, r) {\n yt.call(this, t, e, n, r = r || \"Identity-H\");\n };\n\n var Tt,\n Rt = r.lineWidth || .200025,\n Dt = l.__private__.setLineWidth = l.setLineWidth = function (t) {\n return tt((t * _).toFixed(2) + \" w\"), this;\n },\n Ut = (l.__private__.setLineDash = ae.API.setLineDash = function (t, e) {\n if (t = t || [], e = e || 0, isNaN(e) || !Array.isArray(t)) throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\n return t = t.map(function (t) {\n return (t * _).toFixed(3);\n }).join(\" \"), e = parseFloat((e * _).toFixed(3)), tt(\"[\" + t + \"] \" + e + \" d\"), this;\n }, l.__private__.getLineHeight = l.getLineHeight = function () {\n return et * Tt;\n }),\n zt = (Ut = l.__private__.getLineHeight = l.getLineHeight = function () {\n return et * Tt;\n }, l.__private__.setLineHeightFactor = l.setLineHeightFactor = function (t) {\n return \"number\" == typeof (t = t || 1.15) && (Tt = t), this;\n }),\n Ht = l.__private__.getLineHeightFactor = l.getLineHeightFactor = function () {\n return Tt;\n };\n\n zt(r.lineHeight);\n\n var Wt = l.__private__.getHorizontalCoordinate = function (t) {\n return t * _;\n },\n Vt = l.__private__.getVerticalCoordinate = function (t) {\n return V[x].mediaBox.topRightY - V[x].mediaBox.bottomLeftY - t * _;\n },\n Gt = l.__private__.getHorizontalCoordinateString = function (t) {\n return Z(t * _);\n },\n Yt = l.__private__.getVerticalCoordinateString = function (t) {\n return Z(V[x].mediaBox.topRightY - V[x].mediaBox.bottomLeftY - t * _);\n },\n Jt = r.strokeColor || \"0 G\",\n Xt = (l.__private__.getStrokeColor = l.getDrawColor = function () {\n return ht(Jt);\n }, l.__private__.setStrokeColor = l.setDrawColor = function (t, e, n, r) {\n return Jt = ut({\n ch1: t,\n ch2: e,\n ch3: n,\n ch4: r,\n pdfColorType: \"draw\",\n precision: 2\n }), tt(Jt), this;\n }, r.fillColor || \"0 g\"),\n Kt = (l.__private__.getFillColor = l.getFillColor = function () {\n return ht(Xt);\n }, l.__private__.setFillColor = l.setFillColor = function (t, e, n, r) {\n return Xt = ut({\n ch1: t,\n ch2: e,\n ch3: n,\n ch4: r,\n pdfColorType: \"fill\",\n precision: 2\n }), tt(Xt), this;\n }, r.textColor || \"0 g\"),\n Zt = l.__private__.getTextColor = l.getTextColor = function () {\n return ht(Kt);\n },\n Qt = (l.__private__.setTextColor = l.setTextColor = function (t, e, n, r) {\n return Kt = ut({\n ch1: t,\n ch2: e,\n ch3: n,\n ch4: r,\n pdfColorType: \"text\",\n precision: 3\n }), this;\n }, r.charSpace || 0),\n $t = l.__private__.getCharSpace = l.getCharSpace = function () {\n return Qt;\n },\n te = (l.__private__.setCharSpace = l.setCharSpace = function (t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\n return Qt = t, this;\n }, 0);\n\n l.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 l.__private__.setLineCap = l.setLineCap = function (t) {\n var e = l.CapJoinStyles[t];\n if (void 0 === e) throw new Error(\"Line cap style of '\" + t + \"' is not recognized. See or extend .CapJoinStyles property for valid styles\");\n return tt((te = e) + \" J\"), this;\n };\n\n var ee,\n ne = 0;\n l.__private__.setLineJoin = l.setLineJoin = function (t) {\n var e = l.CapJoinStyles[t];\n if (void 0 === e) throw new Error(\"Line join style of '\" + t + \"' is not recognized. See or extend .CapJoinStyles property for valid styles\");\n return tt((ne = e) + \" j\"), this;\n }, l.__private__.setMiterLimit = l.setMiterLimit = function (t) {\n if (t = t || 0, isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.setMiterLimit\");\n return ee = parseFloat(Z(t * _)), tt(ee + \" M\"), this;\n };\n\n for (var re in l.save = function (r, t) {\n if (r = r || \"generated.pdf\", (t = t || {}).returnPromise = t.returnPromise || !1, !1 !== t.returnPromise) return new Promise(function (t, e) {\n try {\n var n = le(It(kt()), r);\n \"function\" == typeof le.unload && ie.setTimeout && setTimeout(le.unload, 911), t(n);\n } catch (t) {\n e(t.message);\n }\n });\n le(It(kt()), r), \"function\" == typeof le.unload && ie.setTimeout && setTimeout(le.unload, 911);\n }, ae.API) {\n ae.API.hasOwnProperty(re) && (\"events\" === re && ae.API.events.length ? function (t, e) {\n var n, r, i;\n\n for (i = e.length - 1; -1 !== i; i--) {\n n = e[i][0], r = e[i][1], t.subscribe.apply(t, [n].concat(\"function\" == typeof r ? [r] : r));\n }\n }(it, ae.API.events) : l[re] = ae.API[re]);\n }\n\n return l.internal = {\n pdfEscape: vt,\n getStyle: qt,\n getFont: function getFont() {\n return rt[Lt.apply(l, arguments)];\n },\n getFontSize: O,\n getCharSpace: $t,\n getTextColor: Zt,\n getLineHeight: Ut,\n getLineHeightFactor: Ht,\n write: j,\n getHorizontalCoordinate: Wt,\n getVerticalCoordinate: Vt,\n getCoordinateString: Gt,\n getVerticalCoordinateString: Yt,\n collections: {},\n newObject: J,\n newAdditionalObject: at,\n newObjectDeferred: X,\n newObjectDeferredBegin: ot,\n getFilters: ct,\n putStream: ft,\n events: it,\n scaleFactor: _,\n pageSize: {\n getWidth: function getWidth() {\n return (V[x].mediaBox.topRightX - V[x].mediaBox.bottomLeftX) / _;\n },\n setWidth: function setWidth(t) {\n V[x].mediaBox.topRightX = t * _ + V[x].mediaBox.bottomLeftX;\n },\n getHeight: function getHeight() {\n return (V[x].mediaBox.topRightY - V[x].mediaBox.bottomLeftY) / _;\n },\n setHeight: function setHeight(t) {\n V[x].mediaBox.topRightY = t * _ + V[x].mediaBox.bottomLeftY;\n }\n },\n output: Ct,\n getNumberOfPages: Nt,\n pages: I,\n out: tt,\n f2: Z,\n f3: Q,\n getPageInfo: jt,\n getPageInfoByObjId: Et,\n getCurrentPageInfo: Mt,\n getPDFVersion: u,\n hasHotfix: Bt\n }, Object.defineProperty(l.internal.pageSize, \"width\", {\n get: function get() {\n return (V[x].mediaBox.topRightX - V[x].mediaBox.bottomLeftX) / _;\n },\n set: function set(t) {\n V[x].mediaBox.topRightX = t * _ + V[x].mediaBox.bottomLeftX;\n },\n enumerable: !0,\n configurable: !0\n }), Object.defineProperty(l.internal.pageSize, \"height\", {\n get: function get() {\n return (V[x].mediaBox.topRightY - V[x].mediaBox.bottomLeftY) / _;\n },\n set: function set(t) {\n V[x].mediaBox.topRightY = t * _ + V[x].mediaBox.bottomLeftY;\n },\n enumerable: !0,\n configurable: !0\n }), function (t) {\n for (var e = 0, n = M.length; e < n; e++) {\n var r = yt(t[e][0], t[e][1], t[e][2], M[e][3], !0);\n K[r] = !0;\n var i = t[e][0].split(\"-\");\n mt(r, i[0], i[1] || \"\");\n }\n\n it.publish(\"addFonts\", {\n fonts: rt,\n dictionary: H\n });\n }(M), $ = \"F1\", bt(i, t), it.publish(\"initialized\"), l;\n }\n\n return ae.API = {\n events: []\n }, ae.version = \"1.5.3\", \"function\" == typeof define && define.amd ? define(\"jsPDF\", function () {\n return ae;\n }) : \"undefined\" != typeof module && module.exports ? (module.exports = ae, module.exports.jsPDF = ae) : ie.jsPDF = ae, ae;\n }(\"undefined\" != typeof self && self || \"undefined\" != typeof window && window || \"undefined\" != typeof global && global || Function('return typeof this === \"object\" && this.content')() || Function(\"return this\")());\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 (function (t, e) {\n var A,\n n = 1,\n S = function S(t) {\n return t.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n },\n y = function y(t) {\n return t.replace(/\\\\\\\\/g, \"\\\\\").replace(/\\\\\\(/g, \"(\").replace(/\\\\\\)/g, \")\");\n },\n _ = function _(t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.f2\");\n return t.toFixed(2);\n },\n s = function s(t) {\n if (isNaN(t)) throw new Error(\"Invalid argument passed to jsPDF.f2\");\n return t.toFixed(5);\n };\n\n t.__acroform__ = {};\n\n var r = function r(t, e) {\n t.prototype = Object.create(e.prototype), t.prototype.constructor = t;\n },\n v = function v(t) {\n return t * n;\n },\n w = function w(t) {\n return t / n;\n },\n l = function l(t) {\n var e = new j(),\n n = Y.internal.getHeight(t) || 0,\n r = Y.internal.getWidth(t) || 0;\n return e.BBox = [0, 0, Number(_(r)), Number(_(n))], e;\n },\n i = t.__acroform__.setBit = function (t, e) {\n if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBit\");\n return t |= 1 << e;\n },\n o = t.__acroform__.clearBit = function (t, e) {\n if (t = t || 0, e = e || 0, isNaN(t) || isNaN(e)) throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\");\n return t &= ~(1 << e);\n },\n a = t.__acroform__.getBit = function (t, e) {\n if (isNaN(t) || isNaN(e)) throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBit\");\n return 0 == (t & 1 << e) ? 0 : 1;\n },\n b = t.__acroform__.getBitForPdf = function (t, e) {\n if (isNaN(t) || isNaN(e)) throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\");\n return a(t, e - 1);\n },\n x = t.__acroform__.setBitForPdf = function (t, e) {\n if (isNaN(t) || isNaN(e)) throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\");\n return i(t, e - 1);\n },\n N = t.__acroform__.clearBitForPdf = function (t, e, n) {\n if (isNaN(t) || isNaN(e)) throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\");\n return o(t, e - 1);\n },\n c = t.__acroform__.calculateCoordinates = function (t) {\n var e = this.internal.getHorizontalCoordinate,\n n = this.internal.getVerticalCoordinate,\n r = t[0],\n i = t[1],\n o = t[2],\n a = t[3],\n s = {};\n return s.lowerLeft_X = e(r) || 0, s.lowerLeft_Y = n(i + a) || 0, s.upperRight_X = e(r + o) || 0, s.upperRight_Y = n(i) || 0, [Number(_(s.lowerLeft_X)), Number(_(s.lowerLeft_Y)), Number(_(s.upperRight_X)), Number(_(s.upperRight_Y))];\n },\n f = function f(t) {\n if (t.appearanceStreamContent) return t.appearanceStreamContent;\n\n if (t.V || t.DV) {\n var e = [],\n n = t.V || t.DV,\n r = h(t, n),\n i = A.internal.getFont(t.fontName, t.fontStyle).id;\n e.push(\"/Tx BMC\"), e.push(\"q\"), e.push(\"BT\"), e.push(A.__private__.encodeColorString(t.color)), e.push(\"/\" + i + \" \" + _(r.fontSize) + \" Tf\"), e.push(\"1 0 0 1 0 0 Tm\"), e.push(r.text), e.push(\"ET\"), e.push(\"Q\"), e.push(\"EMC\");\n var o = new l(t);\n return o.stream = e.join(\"\\n\"), o;\n }\n },\n h = function h(i, t) {\n var e = i.maxFontSize || 12,\n n = (i.fontName, {\n text: \"\",\n fontSize: \"\"\n }),\n o = (t = \")\" == (t = \"(\" == t.substr(0, 1) ? t.substr(1) : t).substr(t.length - 1) ? t.substr(0, t.length - 1) : t).split(\" \"),\n r = (A.__private__.encodeColorString(i.color), e),\n a = Y.internal.getHeight(i) || 0;\n a = a < 0 ? -a : a;\n var s = Y.internal.getWidth(i) || 0;\n s = s < 0 ? -s : s;\n\n var l = function l(t, e, n) {\n if (t + 1 < o.length) {\n var r = e + \" \" + o[t + 1];\n return F(r, i, n).width <= s - 4;\n }\n\n return !1;\n };\n\n r++;\n\n t: for (;;) {\n t = \"\";\n var h = F(\"3\", i, --r).height,\n u = i.multiline ? a - r : (a - h) / 2,\n c = -2,\n f = u += 2,\n p = 0,\n d = 0,\n g = 0;\n\n if (r <= 0) {\n t = \"(...) Tj\\n\", t += \"% Width of Text: \" + F(t, i, r = 12).width + \", FieldWidth:\" + s + \"\\n\";\n break;\n }\n\n g = F(o[0] + \" \", i, r).width;\n var m = \"\",\n y = 0;\n\n for (var v in o) {\n if (o.hasOwnProperty(v)) {\n m = \" \" == (m += o[v] + \" \").substr(m.length - 1) ? m.substr(0, m.length - 1) : m;\n var w = parseInt(v);\n g = F(m + \" \", i, r).width;\n var b = l(w, m, r),\n x = v >= o.length - 1;\n\n if (b && !x) {\n m += \" \";\n continue;\n }\n\n if (b || x) {\n if (x) d = w;else if (i.multiline && a < (h + 2) * (y + 2) + 2) continue t;\n } else {\n if (!i.multiline) continue t;\n if (a < (h + 2) * (y + 2) + 2) continue t;\n d = w;\n }\n\n for (var N = \"\", L = p; L <= d; L++) {\n N += o[L] + \" \";\n }\n\n switch (N = \" \" == N.substr(N.length - 1) ? N.substr(0, N.length - 1) : N, g = F(N, i, r).width, i.textAlign) {\n case \"right\":\n c = s - g - 2;\n break;\n\n case \"center\":\n c = (s - g) / 2;\n break;\n\n case \"left\":\n default:\n c = 2;\n }\n\n t += _(c) + \" \" + _(f) + \" Td\\n\", t += \"(\" + S(N) + \") Tj\\n\", t += -_(c) + \" 0 Td\\n\", f = -(r + 2), g = 0, p = d + 1, y++, m = \"\";\n } else ;\n }\n\n break;\n }\n\n return n.text = t, n.fontSize = r, n;\n },\n F = function F(t, e, n) {\n var r = A.internal.getFont(e.fontName, e.fontStyle),\n i = A.getStringUnitWidth(t, {\n font: r,\n fontSize: parseFloat(n),\n charSpace: 0\n }) * parseFloat(n);\n return {\n height: A.getStringUnitWidth(\"3\", {\n font: r,\n fontSize: parseFloat(n),\n charSpace: 0\n }) * parseFloat(n) * 1.5,\n width: i\n };\n },\n u = {\n fields: [],\n xForms: [],\n acroFormDictionaryRoot: null,\n printedOut: !1,\n internal: null,\n isInitialized: !1\n },\n p = function p() {\n A.internal.acroformPlugin.acroFormDictionaryRoot.objId = void 0;\n var t = A.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n\n for (var e in t) {\n if (t.hasOwnProperty(e)) {\n var n = t[e];\n n.objId = void 0, n.hasAnnotation && d.call(A, n);\n }\n }\n },\n d = function d(t) {\n var e = {\n type: \"reference\",\n object: t\n };\n void 0 === A.internal.getPageInfo(t.page).pageContext.annotations.find(function (t) {\n return t.type === e.type && t.object === e.object;\n }) && A.internal.getPageInfo(t.page).pageContext.annotations.push(e);\n },\n g = function g() {\n if (void 0 === A.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error(\"putCatalogCallback: Root missing.\");\n A.internal.write(\"/AcroForm \" + A.internal.acroformPlugin.acroFormDictionaryRoot.objId + \" 0 R\");\n },\n m = function m() {\n A.internal.events.unsubscribe(A.internal.acroformPlugin.acroFormDictionaryRoot._eventID), delete A.internal.acroformPlugin.acroFormDictionaryRoot._eventID, A.internal.acroformPlugin.printedOut = !0;\n },\n L = function L(t) {\n var e = !t;\n t || (A.internal.newObjectDeferredBegin(A.internal.acroformPlugin.acroFormDictionaryRoot.objId, !0), A.internal.acroformPlugin.acroFormDictionaryRoot.putStream());\n t = t || A.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var n in t) {\n if (t.hasOwnProperty(n)) {\n var r = t[n],\n i = [],\n o = r.Rect;\n\n if (r.Rect && (r.Rect = c.call(this, r.Rect)), A.internal.newObjectDeferredBegin(r.objId, !0), r.DA = Y.createDefaultAppearanceStream(r), \"object\" === se(r) && \"function\" == typeof r.getKeyValueListForStream && (i = r.getKeyValueListForStream()), r.Rect = o, r.hasAppearanceStream && !r.appearanceStreamContent) {\n var a = f.call(this, r);\n i.push({\n key: \"AP\",\n value: \"<>\"\n }), A.internal.acroformPlugin.xForms.push(a);\n }\n\n if (r.appearanceStreamContent) {\n var s = \"\";\n\n for (var l in r.appearanceStreamContent) {\n if (r.appearanceStreamContent.hasOwnProperty(l)) {\n var h = r.appearanceStreamContent[l];\n if (s += \"/\" + l + \" \", s += \"<<\", 1 <= Object.keys(h).length || Array.isArray(h)) for (var n in h) {\n var u;\n if (h.hasOwnProperty(n)) \"function\" == typeof (u = h[n]) && (u = u.call(this, r)), s += \"/\" + n + \" \" + u + \" \", 0 <= A.internal.acroformPlugin.xForms.indexOf(u) || A.internal.acroformPlugin.xForms.push(u);\n } else \"function\" == typeof (u = h) && (u = u.call(this, r)), s += \"/\" + n + \" \" + u, 0 <= A.internal.acroformPlugin.xForms.indexOf(u) || A.internal.acroformPlugin.xForms.push(u);\n s += \">>\";\n }\n }\n\n i.push({\n key: \"AP\",\n value: \"<<\\n\" + s + \">>\"\n });\n }\n\n A.internal.putStream({\n additionalKeyValues: i\n }), A.internal.out(\"endobj\");\n }\n }\n\n e && P.call(this, A.internal.acroformPlugin.xForms);\n },\n P = function P(t) {\n for (var e in t) {\n if (t.hasOwnProperty(e)) {\n var n = e,\n r = t[e];\n A.internal.newObjectDeferredBegin(r && r.objId, !0), \"object\" === se(r) && \"function\" == typeof r.putStream && r.putStream(), delete t[n];\n }\n }\n },\n k = function k() {\n if (void 0 !== this.internal && (void 0 === this.internal.acroformPlugin || !1 === this.internal.acroformPlugin.isInitialized)) {\n if (A = this, M.FieldNum = 0, this.internal.acroformPlugin = JSON.parse(JSON.stringify(u)), this.internal.acroformPlugin.acroFormDictionaryRoot) throw new Error(\"Exception while creating AcroformDictionary\");\n n = A.internal.scaleFactor, A.internal.acroformPlugin.acroFormDictionaryRoot = new E(), A.internal.acroformPlugin.acroFormDictionaryRoot._eventID = A.internal.events.subscribe(\"postPutResources\", m), A.internal.events.subscribe(\"buildDocument\", p), A.internal.events.subscribe(\"putCatalog\", g), A.internal.events.subscribe(\"postPutPages\", L), A.internal.acroformPlugin.isInitialized = !0;\n }\n },\n I = t.__acroform__.arrayToPdfArray = function (t) {\n if (Array.isArray(t)) {\n for (var e = \"[\", n = 0; n < t.length; n++) {\n switch (0 !== n && (e += \" \"), se(t[n])) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n e += t[n].toString();\n break;\n\n case \"string\":\n \"/\" !== t[n].substr(0, 1) ? e += \"(\" + S(t[n].toString()) + \")\" : e += t[n].toString();\n }\n }\n\n return e += \"]\";\n }\n\n throw new Error(\"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\");\n };\n\n var C = function C(t) {\n return (t = t || \"\").toString(), t = \"(\" + S(t) + \")\";\n },\n B = function B() {\n var e;\n Object.defineProperty(this, \"objId\", {\n configurable: !0,\n get: function get() {\n if (e || (e = A.internal.newObjectDeferred()), !e) throw new Error(\"AcroFormPDFObject: Couldn't create Object ID\");\n return e;\n },\n set: function set(t) {\n e = t;\n }\n });\n };\n\n B.prototype.toString = function () {\n return this.objId + \" 0 R\";\n }, B.prototype.putStream = function () {\n var t = this.getKeyValueListForStream();\n A.internal.putStream({\n data: this.stream,\n additionalKeyValues: t\n }), A.internal.out(\"endobj\");\n }, B.prototype.getKeyValueListForStream = function () {\n return function (t) {\n var e = [],\n n = Object.getOwnPropertyNames(t).filter(function (t) {\n return \"content\" != t && \"appearanceStreamContent\" != t && \"_\" != t.substring(0, 1);\n });\n\n for (var r in n) {\n if (!1 === Object.getOwnPropertyDescriptor(t, n[r]).configurable) {\n var i = n[r],\n o = t[i];\n o && (Array.isArray(o) ? e.push({\n key: i,\n value: I(o)\n }) : o instanceof B ? e.push({\n key: i,\n value: o.objId + \" 0 R\"\n }) : \"function\" != typeof o && e.push({\n key: i,\n value: o\n }));\n }\n }\n\n return e;\n }(this);\n };\n\n var j = function j() {\n B.call(this), Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: !1,\n writeable: !0\n }), Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: !1,\n writeable: !0\n }), Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: !1,\n writeable: !0\n });\n var e,\n n = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: !1,\n writeable: !0,\n get: function get() {\n return n;\n },\n set: function set(t) {\n n = t;\n }\n }), Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: !1,\n writeable: !0\n }), Object.defineProperty(this, \"stream\", {\n enumerable: !1,\n configurable: !0,\n set: function set(t) {\n e = t.trim();\n },\n get: function get() {\n return e || null;\n }\n });\n };\n\n r(j, B);\n\n var E = function E() {\n B.call(this);\n var e,\n t = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: !1,\n configurable: !0,\n get: function get() {\n return 0 < t.length ? t : void 0;\n }\n }), Object.defineProperty(this, \"Fields\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n return t;\n }\n }), Object.defineProperty(this, \"DA\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n if (e) return \"(\" + e + \")\";\n },\n set: function set(t) {\n e = t;\n }\n });\n };\n\n r(E, B);\n\n var M = function t() {\n B.call(this);\n var e = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n return e;\n },\n set: function set(t) {\n if (isNaN(t)) throw new Error('Invalid value \"' + t + '\" for attribute F supplied.');\n e = t;\n }\n }), Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(e, 3));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.F = x(e, 3) : this.F = N(e, 3);\n }\n });\n var n = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n return n;\n },\n set: function set(t) {\n if (isNaN(t)) throw new Error('Invalid value \"' + t + '\" for attribute Ff supplied.');\n n = t;\n }\n });\n var r = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n if (0 !== r.length) return r;\n },\n set: function set(t) {\n r = void 0 !== t ? t : [];\n }\n }), Object.defineProperty(this, \"x\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return !r || isNaN(r[0]) ? 0 : w(r[0]);\n },\n set: function set(t) {\n r[0] = v(t);\n }\n }), Object.defineProperty(this, \"y\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return !r || isNaN(r[1]) ? 0 : w(r[1]);\n },\n set: function set(t) {\n r[1] = v(t);\n }\n }), Object.defineProperty(this, \"width\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return !r || isNaN(r[2]) ? 0 : w(r[2]);\n },\n set: function set(t) {\n r[2] = v(t);\n }\n }), Object.defineProperty(this, \"height\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return !r || isNaN(r[3]) ? 0 : w(r[3]);\n },\n set: function set(t) {\n r[3] = v(t);\n }\n });\n var i = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n return i;\n },\n set: function set(t) {\n switch (t) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n i = t;\n break;\n\n default:\n throw new Error('Invalid value \"' + t + '\" for attribute FT supplied.');\n }\n }\n });\n var o = null;\n Object.defineProperty(this, \"T\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n if (!o || o.length < 1) {\n if (this instanceof H) return;\n o = \"FieldObject\" + t.FieldNum++;\n }\n\n return \"(\" + S(o) + \")\";\n },\n set: function set(t) {\n o = t.toString();\n }\n }), Object.defineProperty(this, \"fieldName\", {\n configurable: !0,\n enumerable: !0,\n get: function get() {\n return o;\n },\n set: function set(t) {\n o = t;\n }\n });\n var a = \"helvetica\";\n Object.defineProperty(this, \"fontName\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return a;\n },\n set: function set(t) {\n a = t;\n }\n });\n var s = \"normal\";\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return s;\n },\n set: function set(t) {\n s = t;\n }\n });\n var l = 0;\n Object.defineProperty(this, \"fontSize\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return w(l);\n },\n set: function set(t) {\n l = v(t);\n }\n });\n var h = 50;\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return w(h);\n },\n set: function set(t) {\n h = v(t);\n }\n });\n var u = \"black\";\n Object.defineProperty(this, \"color\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return u;\n },\n set: function set(t) {\n u = t;\n }\n });\n var c = \"/F1 0 Tf 0 g\";\n Object.defineProperty(this, \"DA\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n if (!(!c || this instanceof H || this instanceof V)) return C(c);\n },\n set: function set(t) {\n t = t.toString(), c = t;\n }\n });\n var f = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n if (f) return this instanceof D == !1 ? C(f) : f;\n },\n set: function set(t) {\n t = t.toString(), f = this instanceof D == !1 ? \"(\" === t.substr(0, 1) ? y(t.substr(1, t.length - 2)) : y(t) : t;\n }\n }), Object.defineProperty(this, \"defaultValue\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return this instanceof D == !0 ? y(f.substr(1, f.length - 1)) : f;\n },\n set: function set(t) {\n t = t.toString(), f = this instanceof D == !0 ? \"/\" + t : t;\n }\n });\n var p = null;\n Object.defineProperty(this, \"V\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n if (p) return this instanceof D == !1 ? C(p) : p;\n },\n set: function set(t) {\n t = t.toString(), p = this instanceof D == !1 ? \"(\" === t.substr(0, 1) ? y(t.substr(1, t.length - 2)) : y(t) : t;\n }\n }), Object.defineProperty(this, \"value\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return this instanceof D == !0 ? y(p.substr(1, p.length - 1)) : p;\n },\n set: function set(t) {\n t = t.toString(), p = this instanceof D == !0 ? \"/\" + t : t;\n }\n }), Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return this.Rect;\n }\n }), Object.defineProperty(this, \"Type\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n }), Object.defineProperty(this, \"Subtype\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n var d,\n g = !1;\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: !0,\n configurable: !0,\n writeable: !0,\n get: function get() {\n return g;\n },\n set: function set(t) {\n t = Boolean(t), g = t;\n }\n }), Object.defineProperty(this, \"page\", {\n enumerable: !0,\n configurable: !0,\n writeable: !0,\n get: function get() {\n if (d) return d;\n },\n set: function set(t) {\n d = t;\n }\n }), Object.defineProperty(this, \"readOnly\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 1));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 1) : this.Ff = N(this.Ff, 1);\n }\n }), Object.defineProperty(this, \"required\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 2));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 2) : this.Ff = N(this.Ff, 2);\n }\n }), Object.defineProperty(this, \"noExport\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 3));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 3) : this.Ff = N(this.Ff, 3);\n }\n });\n var m = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n if (null !== m) return m;\n },\n set: function set(t) {\n if (-1 === [0, 1, 2].indexOf(t)) throw new Error('Invalid value \"' + t + '\" for attribute Q supplied.');\n m = t;\n }\n }), Object.defineProperty(this, \"textAlign\", {\n get: function get() {\n var t = \"left\";\n\n switch (m) {\n case 0:\n default:\n t = \"left\";\n break;\n\n case 1:\n t = \"center\";\n break;\n\n case 2:\n t = \"right\";\n }\n\n return t;\n },\n configurable: !0,\n enumerable: !0,\n set: function set(t) {\n switch (t) {\n case \"right\":\n case 2:\n m = 2;\n break;\n\n case \"center\":\n case 1:\n m = 1;\n break;\n\n case \"left\":\n case 0:\n default:\n m = 0;\n }\n }\n });\n };\n\n r(M, B);\n\n var O = function O() {\n M.call(this), this.FT = \"/Ch\", this.V = \"()\", this.fontName = \"zapfdingbats\";\n var e = 0;\n Object.defineProperty(this, \"TI\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = t;\n }\n }), Object.defineProperty(this, \"topIndex\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = t;\n }\n });\n var r = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n return I(r);\n },\n set: function set(t) {\n var e, n;\n n = [], \"string\" == typeof (e = t) && (n = function (t, e, n) {\n n || (n = 1);\n\n for (var r, i = []; r = e.exec(t);) {\n i.push(r[n]);\n }\n\n return i;\n }(e, /\\((.*?)\\)/g)), r = n;\n }\n }), this.getOptions = function () {\n return r;\n }, this.setOptions = function (t) {\n r = t, this.sort && r.sort();\n }, this.addOption = function (t) {\n t = (t = t || \"\").toString(), r.push(t), this.sort && r.sort();\n }, this.removeOption = function (t, e) {\n for (e = e || !1, t = (t = t || \"\").toString(); -1 !== r.indexOf(t) && (r.splice(r.indexOf(t), 1), !1 !== e);) {\n ;\n }\n }, Object.defineProperty(this, \"combo\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 18));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 18) : this.Ff = N(this.Ff, 18);\n }\n }), Object.defineProperty(this, \"edit\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 19));\n },\n set: function set(t) {\n !0 === this.combo && (!0 === Boolean(t) ? this.Ff = x(this.Ff, 19) : this.Ff = N(this.Ff, 19));\n }\n }), Object.defineProperty(this, \"sort\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 20));\n },\n set: function set(t) {\n !0 === Boolean(t) ? (this.Ff = x(this.Ff, 20), r.sort()) : this.Ff = N(this.Ff, 20);\n }\n }), Object.defineProperty(this, \"multiSelect\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 22));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 22) : this.Ff = N(this.Ff, 22);\n }\n }), Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 23));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 23) : this.Ff = N(this.Ff, 23);\n }\n }), Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 27));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 27) : this.Ff = N(this.Ff, 27);\n }\n }), this.hasAppearanceStream = !1;\n };\n\n r(O, M);\n\n var q = function q() {\n O.call(this), this.fontName = \"helvetica\", this.combo = !1;\n };\n\n r(q, O);\n\n var T = function T() {\n q.call(this), this.combo = !0;\n };\n\n r(T, q);\n\n var R = function R() {\n T.call(this), this.edit = !0;\n };\n\n r(R, T);\n\n var D = function D() {\n M.call(this), this.FT = \"/Btn\", Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 15));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 15) : this.Ff = N(this.Ff, 15);\n }\n }), Object.defineProperty(this, \"radio\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 16));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 16) : this.Ff = N(this.Ff, 16);\n }\n }), Object.defineProperty(this, \"pushButton\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 17));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 17) : this.Ff = N(this.Ff, 17);\n }\n }), Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 26));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 26) : this.Ff = N(this.Ff, 26);\n }\n });\n var e,\n n = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n if (0 !== Object.keys(n).length) {\n var t,\n e = [];\n\n for (t in e.push(\"<<\"), n) {\n e.push(\"/\" + t + \" (\" + n[t] + \")\");\n }\n\n return e.push(\">>\"), e.join(\"\\n\");\n }\n },\n set: function set(t) {\n \"object\" === se(t) && (n = t);\n }\n }), Object.defineProperty(this, \"caption\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return n.CA || \"\";\n },\n set: function set(t) {\n \"string\" == typeof t && (n.CA = t);\n }\n }), Object.defineProperty(this, \"AS\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = t;\n }\n }), Object.defineProperty(this, \"appearanceState\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return e.substr(1, e.length - 1);\n },\n set: function set(t) {\n e = \"/\" + t;\n }\n });\n };\n\n r(D, M);\n\n var U = function U() {\n D.call(this), this.pushButton = !0;\n };\n\n r(U, D);\n\n var z = function z() {\n D.call(this), this.radio = !0, this.pushButton = !1;\n var e = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = void 0 !== t ? t : [];\n }\n });\n };\n\n r(z, D);\n\n var H = function H() {\n var e, n;\n M.call(this), Object.defineProperty(this, \"Parent\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = t;\n }\n }), Object.defineProperty(this, \"optionName\", {\n enumerable: !1,\n configurable: !0,\n get: function get() {\n return n;\n },\n set: function set(t) {\n n = t;\n }\n });\n var r,\n i = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n var t,\n e = [];\n\n for (t in e.push(\"<<\"), i) {\n e.push(\"/\" + t + \" (\" + i[t] + \")\");\n }\n\n return e.push(\">>\"), e.join(\"\\n\");\n },\n set: function set(t) {\n \"object\" === se(t) && (i = t);\n }\n }), Object.defineProperty(this, \"caption\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return i.CA || \"\";\n },\n set: function set(t) {\n \"string\" == typeof t && (i.CA = t);\n }\n }), Object.defineProperty(this, \"AS\", {\n enumerable: !1,\n configurable: !1,\n get: function get() {\n return r;\n },\n set: function set(t) {\n r = t;\n }\n }), Object.defineProperty(this, \"appearanceState\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return r.substr(1, r.length - 1);\n },\n set: function set(t) {\n r = \"/\" + t;\n }\n }), this.optionName = name, this.caption = \"l\", this.appearanceState = \"Off\", this._AppearanceType = Y.RadioButton.Circle, this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(name);\n };\n\n r(H, M), z.prototype.setAppearance = function (t) {\n if (!(\"createAppearanceStream\" in t && \"getCA\" in t)) throw new Error(\"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\");\n\n for (var e in this.Kids) {\n if (this.Kids.hasOwnProperty(e)) {\n var n = this.Kids[e];\n n.appearanceStreamContent = t.createAppearanceStream(n.optionName), n.caption = t.getCA();\n }\n }\n }, z.prototype.createOption = function (t) {\n this.Kids.length;\n var e = new H();\n return e.Parent = this, e.optionName = t, this.Kids.push(e), J.call(this, e), e;\n };\n\n var W = function W() {\n D.call(this), this.fontName = \"zapfdingbats\", this.caption = \"3\", this.appearanceState = \"On\", this.value = \"On\", this.textAlign = \"center\", this.appearanceStreamContent = Y.CheckBox.createAppearanceStream();\n };\n\n r(W, D);\n\n var V = function V() {\n M.call(this), this.FT = \"/Tx\", Object.defineProperty(this, \"multiline\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 13));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 13) : this.Ff = N(this.Ff, 13);\n }\n }), Object.defineProperty(this, \"fileSelect\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 21));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 21) : this.Ff = N(this.Ff, 21);\n }\n }), Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 23));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 23) : this.Ff = N(this.Ff, 23);\n }\n }), Object.defineProperty(this, \"doNotScroll\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 24));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 24) : this.Ff = N(this.Ff, 24);\n }\n }), Object.defineProperty(this, \"comb\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 25));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 25) : this.Ff = N(this.Ff, 25);\n }\n }), Object.defineProperty(this, \"richText\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 26));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 26) : this.Ff = N(this.Ff, 26);\n }\n });\n var e = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: !0,\n configurable: !1,\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = t;\n }\n }), Object.defineProperty(this, \"maxLength\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return e;\n },\n set: function set(t) {\n Number.isInteger(t) && (e = t);\n }\n }), Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return this.V || this.DV;\n }\n });\n };\n\n r(V, M);\n\n var G = function G() {\n V.call(this), Object.defineProperty(this, \"password\", {\n enumerable: !0,\n configurable: !0,\n get: function get() {\n return Boolean(b(this.Ff, 14));\n },\n set: function set(t) {\n !0 === Boolean(t) ? this.Ff = x(this.Ff, 14) : this.Ff = N(this.Ff, 14);\n }\n }), this.password = !0;\n };\n\n r(G, V);\n var Y = {\n CheckBox: {\n createAppearanceStream: function createAppearanceStream() {\n return {\n N: {\n On: Y.CheckBox.YesNormal\n },\n D: {\n On: Y.CheckBox.YesPushDown,\n Off: Y.CheckBox.OffPushDown\n }\n };\n },\n YesPushDown: function YesPushDown(t) {\n var e = l(t),\n n = [],\n r = A.internal.getFont(t.fontName, t.fontStyle).id,\n i = A.__private__.encodeColorString(t.color),\n o = h(t, t.caption);\n\n return n.push(\"0.749023 g\"), n.push(\"0 0 \" + _(Y.internal.getWidth(t)) + \" \" + _(Y.internal.getHeight(t)) + \" re\"), n.push(\"f\"), n.push(\"BMC\"), n.push(\"q\"), n.push(\"0 0 1 rg\"), n.push(\"/\" + r + \" \" + _(o.fontSize) + \" Tf \" + i), n.push(\"BT\"), n.push(o.text), n.push(\"ET\"), n.push(\"Q\"), n.push(\"EMC\"), e.stream = n.join(\"\\n\"), e;\n },\n YesNormal: function YesNormal(t) {\n var e = l(t),\n n = A.internal.getFont(t.fontName, t.fontStyle).id,\n r = A.__private__.encodeColorString(t.color),\n i = [],\n o = Y.internal.getHeight(t),\n a = Y.internal.getWidth(t),\n s = h(t, t.caption);\n\n return i.push(\"1 g\"), i.push(\"0 0 \" + _(a) + \" \" + _(o) + \" re\"), i.push(\"f\"), i.push(\"q\"), i.push(\"0 0 1 rg\"), i.push(\"0 0 \" + _(a - 1) + \" \" + _(o - 1) + \" re\"), i.push(\"W\"), i.push(\"n\"), i.push(\"0 g\"), i.push(\"BT\"), i.push(\"/\" + n + \" \" + _(s.fontSize) + \" Tf \" + r), i.push(s.text), i.push(\"ET\"), i.push(\"Q\"), e.stream = i.join(\"\\n\"), e;\n },\n OffPushDown: function OffPushDown(t) {\n var e = l(t),\n n = [];\n return n.push(\"0.749023 g\"), n.push(\"0 0 \" + _(Y.internal.getWidth(t)) + \" \" + _(Y.internal.getHeight(t)) + \" re\"), n.push(\"f\"), e.stream = n.join(\"\\n\"), e;\n }\n },\n RadioButton: {\n Circle: {\n createAppearanceStream: function createAppearanceStream(t) {\n var e = {\n D: {\n Off: Y.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n return e.N[t] = Y.RadioButton.Circle.YesNormal, e.D[t] = Y.RadioButton.Circle.YesPushDown, e;\n },\n getCA: function getCA() {\n return \"l\";\n },\n YesNormal: function YesNormal(t) {\n var e = l(t),\n n = [],\n r = Y.internal.getWidth(t) <= Y.internal.getHeight(t) ? Y.internal.getWidth(t) / 4 : Y.internal.getHeight(t) / 4;\n r = Number((.9 * r).toFixed(5));\n var i = Y.internal.Bezier_C,\n o = Number((r * i).toFixed(5));\n return n.push(\"q\"), n.push(\"1 0 0 1 \" + s(Y.internal.getWidth(t) / 2) + \" \" + s(Y.internal.getHeight(t) / 2) + \" cm\"), n.push(r + \" 0 m\"), n.push(r + \" \" + o + \" \" + o + \" \" + r + \" 0 \" + r + \" c\"), n.push(\"-\" + o + \" \" + r + \" -\" + r + \" \" + o + \" -\" + r + \" 0 c\"), n.push(\"-\" + r + \" -\" + o + \" -\" + o + \" -\" + r + \" 0 -\" + r + \" c\"), n.push(o + \" -\" + r + \" \" + r + \" -\" + o + \" \" + r + \" 0 c\"), n.push(\"f\"), n.push(\"Q\"), e.stream = n.join(\"\\n\"), e;\n },\n YesPushDown: function YesPushDown(t) {\n var e = l(t),\n n = [],\n r = Y.internal.getWidth(t) <= Y.internal.getHeight(t) ? Y.internal.getWidth(t) / 4 : Y.internal.getHeight(t) / 4,\n i = (r = Number((.9 * r).toFixed(5)), Number((2 * r).toFixed(5))),\n o = Number((i * Y.internal.Bezier_C).toFixed(5)),\n a = Number((r * Y.internal.Bezier_C).toFixed(5));\n return n.push(\"0.749023 g\"), n.push(\"q\"), n.push(\"1 0 0 1 \" + s(Y.internal.getWidth(t) / 2) + \" \" + s(Y.internal.getHeight(t) / 2) + \" cm\"), n.push(i + \" 0 m\"), n.push(i + \" \" + o + \" \" + o + \" \" + i + \" 0 \" + i + \" c\"), n.push(\"-\" + o + \" \" + i + \" -\" + i + \" \" + o + \" -\" + i + \" 0 c\"), n.push(\"-\" + i + \" -\" + o + \" -\" + o + \" -\" + i + \" 0 -\" + i + \" c\"), n.push(o + \" -\" + i + \" \" + i + \" -\" + o + \" \" + i + \" 0 c\"), n.push(\"f\"), n.push(\"Q\"), n.push(\"0 g\"), n.push(\"q\"), n.push(\"1 0 0 1 \" + s(Y.internal.getWidth(t) / 2) + \" \" + s(Y.internal.getHeight(t) / 2) + \" cm\"), n.push(r + \" 0 m\"), n.push(r + \" \" + a + \" \" + a + \" \" + r + \" 0 \" + r + \" c\"), n.push(\"-\" + a + \" \" + r + \" -\" + r + \" \" + a + \" -\" + r + \" 0 c\"), n.push(\"-\" + r + \" -\" + a + \" -\" + a + \" -\" + r + \" 0 -\" + r + \" c\"), n.push(a + \" -\" + r + \" \" + r + \" -\" + a + \" \" + r + \" 0 c\"), n.push(\"f\"), n.push(\"Q\"), e.stream = n.join(\"\\n\"), e;\n },\n OffPushDown: function OffPushDown(t) {\n var e = l(t),\n n = [],\n r = Y.internal.getWidth(t) <= Y.internal.getHeight(t) ? Y.internal.getWidth(t) / 4 : Y.internal.getHeight(t) / 4,\n i = (r = Number((.9 * r).toFixed(5)), Number((2 * r).toFixed(5))),\n o = Number((i * Y.internal.Bezier_C).toFixed(5));\n return n.push(\"0.749023 g\"), n.push(\"q\"), n.push(\"1 0 0 1 \" + s(Y.internal.getWidth(t) / 2) + \" \" + s(Y.internal.getHeight(t) / 2) + \" cm\"), n.push(i + \" 0 m\"), n.push(i + \" \" + o + \" \" + o + \" \" + i + \" 0 \" + i + \" c\"), n.push(\"-\" + o + \" \" + i + \" -\" + i + \" \" + o + \" -\" + i + \" 0 c\"), n.push(\"-\" + i + \" -\" + o + \" -\" + o + \" -\" + i + \" 0 -\" + i + \" c\"), n.push(o + \" -\" + i + \" \" + i + \" -\" + o + \" \" + i + \" 0 c\"), n.push(\"f\"), n.push(\"Q\"), e.stream = n.join(\"\\n\"), e;\n }\n },\n Cross: {\n createAppearanceStream: function createAppearanceStream(t) {\n var e = {\n D: {\n Off: Y.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n return e.N[t] = Y.RadioButton.Cross.YesNormal, e.D[t] = Y.RadioButton.Cross.YesPushDown, e;\n },\n getCA: function getCA() {\n return \"8\";\n },\n YesNormal: function YesNormal(t) {\n var e = l(t),\n n = [],\n r = Y.internal.calculateCross(t);\n return n.push(\"q\"), n.push(\"1 1 \" + _(Y.internal.getWidth(t) - 2) + \" \" + _(Y.internal.getHeight(t) - 2) + \" re\"), n.push(\"W\"), n.push(\"n\"), n.push(_(r.x1.x) + \" \" + _(r.x1.y) + \" m\"), n.push(_(r.x2.x) + \" \" + _(r.x2.y) + \" l\"), n.push(_(r.x4.x) + \" \" + _(r.x4.y) + \" m\"), n.push(_(r.x3.x) + \" \" + _(r.x3.y) + \" l\"), n.push(\"s\"), n.push(\"Q\"), e.stream = n.join(\"\\n\"), e;\n },\n YesPushDown: function YesPushDown(t) {\n var e = l(t),\n n = Y.internal.calculateCross(t),\n r = [];\n return r.push(\"0.749023 g\"), r.push(\"0 0 \" + _(Y.internal.getWidth(t)) + \" \" + _(Y.internal.getHeight(t)) + \" re\"), r.push(\"f\"), r.push(\"q\"), r.push(\"1 1 \" + _(Y.internal.getWidth(t) - 2) + \" \" + _(Y.internal.getHeight(t) - 2) + \" re\"), r.push(\"W\"), r.push(\"n\"), r.push(_(n.x1.x) + \" \" + _(n.x1.y) + \" m\"), r.push(_(n.x2.x) + \" \" + _(n.x2.y) + \" l\"), r.push(_(n.x4.x) + \" \" + _(n.x4.y) + \" m\"), r.push(_(n.x3.x) + \" \" + _(n.x3.y) + \" l\"), r.push(\"s\"), r.push(\"Q\"), e.stream = r.join(\"\\n\"), e;\n },\n OffPushDown: function OffPushDown(t) {\n var e = l(t),\n n = [];\n return n.push(\"0.749023 g\"), n.push(\"0 0 \" + _(Y.internal.getWidth(t)) + \" \" + _(Y.internal.getHeight(t)) + \" re\"), n.push(\"f\"), e.stream = n.join(\"\\n\"), e;\n }\n }\n },\n createDefaultAppearanceStream: function createDefaultAppearanceStream(t) {\n var e = A.internal.getFont(t.fontName, t.fontStyle).id,\n n = A.__private__.encodeColorString(t.color);\n\n return \"/\" + e + \" \" + t.fontSize + \" Tf \" + n;\n }\n };\n Y.internal = {\n Bezier_C: .551915024494,\n calculateCross: function calculateCross(t) {\n var e = Y.internal.getWidth(t),\n n = Y.internal.getHeight(t),\n r = Math.min(e, n);\n return {\n x1: {\n x: (e - r) / 2,\n y: (n - r) / 2 + r\n },\n x2: {\n x: (e - r) / 2 + r,\n y: (n - r) / 2\n },\n x3: {\n x: (e - r) / 2,\n y: (n - r) / 2\n },\n x4: {\n x: (e - r) / 2 + r,\n y: (n - r) / 2 + r\n }\n };\n }\n }, Y.internal.getWidth = function (t) {\n var e = 0;\n return \"object\" === se(t) && (e = v(t.Rect[2])), e;\n }, Y.internal.getHeight = function (t) {\n var e = 0;\n return \"object\" === se(t) && (e = v(t.Rect[3])), e;\n };\n\n var J = t.addField = function (t) {\n if (k.call(this), !(t instanceof M)) throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n return function (t) {\n A.internal.acroformPlugin.printedOut && (A.internal.acroformPlugin.printedOut = !1, A.internal.acroformPlugin.acroFormDictionaryRoot = null), A.internal.acroformPlugin.acroFormDictionaryRoot || k.call(A), A.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(t);\n }.call(this, t), t.page = A.internal.getCurrentPageInfo().pageNumber, this;\n };\n\n t.addButton = function (t) {\n if (t instanceof D == !1) throw new Error(\"Invalid argument passed to jsPDF.addButton.\");\n return J.call(this, t);\n }, t.addTextField = function (t) {\n if (t instanceof V == !1) throw new Error(\"Invalid argument passed to jsPDF.addTextField.\");\n return J.call(this, t);\n }, t.addChoiceField = function (t) {\n if (t instanceof O == !1) throw new Error(\"Invalid argument passed to jsPDF.addChoiceField.\");\n return J.call(this, t);\n };\n \"object\" == se(e) && void 0 === e.ChoiceField && void 0 === e.ListBox && void 0 === e.ComboBox && void 0 === e.EditBox && void 0 === e.Button && void 0 === e.PushButton && void 0 === e.RadioButton && void 0 === e.CheckBox && void 0 === e.TextField && void 0 === e.PasswordField ? (e.ChoiceField = O, e.ListBox = q, e.ComboBox = T, e.EditBox = R, e.Button = D, e.PushButton = U, e.RadioButton = z, e.CheckBox = W, e.TextField = V, e.PasswordField = G, e.AcroForm = {\n Appearance: Y\n }) : console.warn(\"AcroForm-Classes are not populated into global-namespace, because the class-Names exist already.\"), t.AcroFormChoiceField = O, t.AcroFormListBox = q, t.AcroFormComboBox = T, t.AcroFormEditBox = R, t.AcroFormButton = D, t.AcroFormPushButton = U, t.AcroFormRadioButton = z, t.AcroFormCheckBox = W, t.AcroFormTextField = V, t.AcroFormPasswordField = G, t.AcroFormAppearance = Y, t.AcroForm = {\n ChoiceField: O,\n ListBox: q,\n ComboBox: T,\n EditBox: R,\n Button: D,\n PushButton: U,\n RadioButton: z,\n CheckBox: W,\n TextField: V,\n PasswordField: G,\n Appearance: Y\n };\n })((window.tmp = lt).API, \"undefined\" != typeof window && window || \"undefined\" != typeof global && global),\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 * \n */\n function (x) {\n var N = \"addImage_\",\n l = {\n PNG: [[137, 80, 78, 71]],\n TIFF: [[77, 77, 0, 42], [73, 73, 42, 0]],\n JPEG: [[255, 216, 255, 224, void 0, void 0, 74, 70, 73, 70, 0], [255, 216, 255, 225, void 0, void 0, 69, 120, 105, 102, 0, 0]],\n JPEG2000: [[0, 0, 0, 12, 106, 80, 32, 32]],\n GIF87a: [[71, 73, 70, 56, 55, 97]],\n GIF89a: [[71, 73, 70, 56, 57, 97]],\n BMP: [[66, 77], [66, 65], [67, 73], [67, 80], [73, 67], [80, 84]]\n },\n h = x.getImageFileTypeByImageData = function (t, e) {\n var n, r;\n e = e || \"UNKNOWN\";\n var i,\n o,\n a,\n s = \"UNKNOWN\";\n\n for (a in x.isArrayBufferView(t) && (t = x.arrayBufferToBinaryString(t)), l) {\n for (i = l[a], n = 0; n < i.length; n += 1) {\n for (o = !0, r = 0; r < i[n].length; r += 1) {\n if (void 0 !== i[n][r] && i[n][r] !== t.charCodeAt(r)) {\n o = !1;\n break;\n }\n }\n\n if (!0 === o) {\n s = a;\n break;\n }\n }\n }\n\n return \"UNKNOWN\" === s && \"UNKNOWN\" !== e && (console.warn('FileType of Image not recognized. Processing image as \"' + e + '\".'), s = e), s;\n },\n n = function t(e) {\n for (var n = this.internal.newObject(), r = this.internal.write, i = this.internal.putStream, o = (0, this.internal.getFilters)(); -1 !== o.indexOf(\"FlateEncode\");) {\n o.splice(o.indexOf(\"FlateEncode\"), 1);\n }\n\n e.n = n;\n var a = [];\n\n if (a.push({\n key: \"Type\",\n value: \"/XObject\"\n }), a.push({\n key: \"Subtype\",\n value: \"/Image\"\n }), a.push({\n key: \"Width\",\n value: e.w\n }), a.push({\n key: \"Height\",\n value: e.h\n }), e.cs === this.color_spaces.INDEXED ? a.push({\n key: \"ColorSpace\",\n value: \"[/Indexed /DeviceRGB \" + (e.pal.length / 3 - 1) + \" \" + (\"smask\" in e ? n + 2 : n + 1) + \" 0 R]\"\n }) : (a.push({\n key: \"ColorSpace\",\n value: \"/\" + e.cs\n }), e.cs === this.color_spaces.DEVICE_CMYK && a.push({\n key: \"Decode\",\n value: \"[1 0 1 0 1 0 1 0]\"\n })), a.push({\n key: \"BitsPerComponent\",\n value: e.bpc\n }), \"dp\" in e && a.push({\n key: \"DecodeParms\",\n value: \"<<\" + e.dp + \">>\"\n }), \"trns\" in e && e.trns.constructor == Array) {\n for (var s = \"\", l = 0, h = e.trns.length; l < h; l++) {\n s += e.trns[l] + \" \" + e.trns[l] + \" \";\n }\n\n a.push({\n key: \"Mask\",\n value: \"[\" + s + \"]\"\n });\n }\n\n \"smask\" in e && a.push({\n key: \"SMask\",\n value: n + 1 + \" 0 R\"\n });\n var u = void 0 !== e.f ? [\"/\" + e.f] : void 0;\n\n if (i({\n data: e.data,\n additionalKeyValues: a,\n alreadyAppliedFilters: u\n }), r(\"endobj\"), \"smask\" in e) {\n var c = \"/Predictor \" + e.p + \" /Colors 1 /BitsPerComponent \" + e.bpc + \" /Columns \" + e.w,\n f = {\n w: e.w,\n h: e.h,\n cs: \"DeviceGray\",\n bpc: e.bpc,\n dp: c,\n data: e.smask\n };\n \"f\" in e && (f.f = e.f), t.call(this, f);\n }\n\n e.cs === this.color_spaces.INDEXED && (this.internal.newObject(), i({\n data: this.arrayBufferToBinaryString(new Uint8Array(e.pal))\n }), r(\"endobj\"));\n },\n L = function L() {\n var t = this.internal.collections[N + \"images\"];\n\n for (var e in t) {\n n.call(this, t[e]);\n }\n },\n A = function A() {\n var t,\n e = this.internal.collections[N + \"images\"],\n n = this.internal.write;\n\n for (var r in e) {\n n(\"/I\" + (t = e[r]).i, t.n, \"0\", \"R\");\n }\n },\n S = function S(t) {\n return \"function\" == typeof x[\"process\" + t.toUpperCase()];\n },\n _ = function _(t) {\n return \"object\" === se(t) && 1 === t.nodeType;\n },\n F = function F(t, e) {\n if (\"IMG\" === t.nodeName && t.hasAttribute(\"src\")) {\n var n = \"\" + t.getAttribute(\"src\");\n if (0 === n.indexOf(\"data:image/\")) return unescape(n);\n var r = x.loadFile(n);\n if (void 0 !== r) return btoa(r);\n }\n\n if (\"CANVAS\" === t.nodeName) {\n var i = t;\n return t.toDataURL(\"image/jpeg\", 1);\n }\n\n (i = document.createElement(\"canvas\")).width = t.clientWidth || t.width, i.height = t.clientHeight || t.height;\n var o = i.getContext(\"2d\");\n if (!o) throw \"addImage requires canvas to be supported by browser.\";\n return o.drawImage(t, 0, 0, i.width, i.height), i.toDataURL(\"png\" == (\"\" + e).toLowerCase() ? \"image/png\" : \"image/jpeg\");\n },\n P = function P(t, e) {\n var n;\n if (e) for (var r in e) {\n if (t === e[r].alias) {\n n = e[r];\n break;\n }\n }\n return n;\n };\n\n x.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 }, x.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 }, x.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n }, x.sHashCode = function (t) {\n var e,\n n = 0;\n if (0 === (t = t || \"\").length) return n;\n\n for (e = 0; e < t.length; e++) {\n n = (n << 5) - n + t.charCodeAt(e), n |= 0;\n }\n\n return n;\n }, x.isString = function (t) {\n return \"string\" == typeof t;\n }, x.validateStringAsBase64 = function (t) {\n (t = t || \"\").toString().trim();\n var e = !0;\n return 0 === t.length && (e = !1), t.length % 4 != 0 && (e = !1), !1 === /^[A-Za-z0-9+\\/]+$/.test(t.substr(0, t.length - 2)) && (e = !1), !1 === /^[A-Za-z0-9\\/][A-Za-z0-9+\\/]|[A-Za-z0-9+\\/]=|==$/.test(t.substr(-2)) && (e = !1), e;\n }, x.extractInfoFromBase64DataURI = function (t) {\n return /^data:([\\w]+?\\/([\\w]+?));\\S*;*base64,(.+)$/g.exec(t);\n }, x.extractImageFromDataUrl = function (t) {\n var e = (t = t || \"\").split(\"base64,\"),\n n = null;\n\n if (2 === e.length) {\n var r = /^data:(\\w*\\/\\w*);*(charset=[\\w=-]*)*;*$/.exec(e[0]);\n Array.isArray(r) && (n = {\n mimeType: r[1],\n charset: r[2],\n data: e[1]\n });\n }\n\n return n;\n }, x.supportsArrayBuffer = function () {\n return \"undefined\" != typeof ArrayBuffer && \"undefined\" != typeof Uint8Array;\n }, x.isArrayBuffer = function (t) {\n return !!this.supportsArrayBuffer() && t instanceof ArrayBuffer;\n }, x.isArrayBufferView = function (t) {\n return !!this.supportsArrayBuffer() && \"undefined\" != typeof Uint32Array && (t instanceof Int8Array || t instanceof Uint8Array || \"undefined\" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array);\n }, x.binaryStringToUint8Array = function (t) {\n for (var e = t.length, n = new Uint8Array(e), r = 0; r < e; r++) {\n n[r] = t.charCodeAt(r);\n }\n\n return n;\n }, x.arrayBufferToBinaryString = function (t) {\n if (\"function\" == typeof atob) return atob(this.arrayBufferToBase64(t));\n }, x.arrayBufferToBase64 = function (t) {\n for (var e, n = \"\", r = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", i = new Uint8Array(t), o = i.byteLength, a = o % 3, s = o - a, l = 0; l < s; l += 3) {\n n += r[(16515072 & (e = i[l] << 16 | i[l + 1] << 8 | i[l + 2])) >> 18] + r[(258048 & e) >> 12] + r[(4032 & e) >> 6] + r[63 & e];\n }\n\n return 1 == a ? n += r[(252 & (e = i[s])) >> 2] + r[(3 & e) << 4] + \"==\" : 2 == a && (n += r[(64512 & (e = i[s] << 8 | i[s + 1])) >> 10] + r[(1008 & e) >> 4] + r[(15 & e) << 2] + \"=\"), n;\n }, x.createImageInfo = function (t, e, n, r, i, o, a, s, l, h, u, c, f) {\n var p = {\n alias: s,\n w: e,\n h: n,\n cs: r,\n bpc: i,\n i: a,\n data: t\n };\n return o && (p.f = o), l && (p.dp = l), h && (p.trns = h), u && (p.pal = u), c && (p.smask = c), f && (p.p = f), p;\n }, x.addImage = function (t, e, n, r, i, o, a, s, l) {\n var h = \"\";\n\n if (\"string\" != typeof e) {\n var u = o;\n o = i, i = r, r = n, n = e, e = u;\n }\n\n if (\"object\" === se(t) && !_(t) && \"imageData\" in t) {\n var c = t;\n t = c.imageData, e = c.format || e || \"UNKNOWN\", n = c.x || n || 0, r = c.y || r || 0, i = c.w || i, o = c.h || o, a = c.alias || a, s = c.compression || s, l = c.rotation || c.angle || l;\n }\n\n var f = this.internal.getFilters();\n if (void 0 === s && -1 !== f.indexOf(\"FlateEncode\") && (s = \"SLOW\"), \"string\" == typeof t && (t = unescape(t)), isNaN(n) || isNaN(r)) throw console.error(\"jsPDF.addImage: Invalid coordinates\", arguments), new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n\n var p,\n d,\n g,\n m,\n y,\n v,\n w,\n b = function () {\n var t = this.internal.collections[N + \"images\"];\n return t || (this.internal.collections[N + \"images\"] = t = {}, this.internal.events.subscribe(\"putResources\", L), this.internal.events.subscribe(\"putXobjectDict\", A)), t;\n }.call(this);\n\n if (!((p = P(t, b)) || (_(t) && (t = F(t, e)), (null == (w = a) || 0 === w.length) && (a = \"string\" == typeof (v = t) ? x.sHashCode(v) : x.isArrayBufferView(v) ? x.sHashCode(x.arrayBufferToBinaryString(v)) : null), p = P(a, b)))) {\n if (this.isString(t) && (\"\" !== (h = this.convertStringToImageData(t)) ? t = h : void 0 !== (h = x.loadFile(t)) && (t = h)), e = this.getImageFileTypeByImageData(t, e), !S(e)) throw new Error(\"addImage does not support files of type '\" + e + \"', please ensure that a plugin for '\" + e + \"' support is added.\");\n if (this.supportsArrayBuffer() && (t instanceof Uint8Array || (d = t, t = this.binaryStringToUint8Array(t))), !(p = this[\"process\" + e.toUpperCase()](t, (y = 0, (m = b) && (y = Object.keys ? Object.keys(m).length : function (t) {\n var e = 0;\n\n for (var n in t) {\n t.hasOwnProperty(n) && e++;\n }\n\n return e;\n }(m)), y), a, ((g = s) && \"string\" == typeof g && (g = g.toUpperCase()), g in x.image_compression ? g : x.image_compression.NONE), d))) throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n return function (t, e, n, r, i, o, a, s) {\n var l = function (t, e, n) {\n return t || e || (e = t = -96), t < 0 && (t = -1 * n.w * 72 / t / this.internal.scaleFactor), e < 0 && (e = -1 * n.h * 72 / e / this.internal.scaleFactor), 0 === t && (t = e * n.w / n.h), 0 === e && (e = t * n.h / n.w), [t, e];\n }.call(this, n, r, i),\n h = this.internal.getCoordinateString,\n u = this.internal.getVerticalCoordinateString;\n\n if (n = l[0], r = l[1], a[o] = i, s) {\n s *= Math.PI / 180;\n\n var c = Math.cos(s),\n f = Math.sin(s),\n p = function p(t) {\n return t.toFixed(4);\n },\n d = [p(c), p(f), p(-1 * f), p(c), 0, 0, \"cm\"];\n }\n\n this.internal.write(\"q\"), s ? (this.internal.write([1, \"0\", \"0\", 1, h(t), u(e + r), \"cm\"].join(\" \")), this.internal.write(d.join(\" \")), this.internal.write([h(n), \"0\", \"0\", h(r), \"0\", \"0\", \"cm\"].join(\" \"))) : this.internal.write([h(n), \"0\", \"0\", h(r), h(t), u(e + r), \"cm\"].join(\" \")), this.internal.write(\"/I\" + i.i + \" Do\"), this.internal.write(\"Q\");\n }.call(this, n, r, i, o, p, p.i, b, l), this;\n }, x.convertStringToImageData = function (t) {\n var e,\n n = \"\";\n\n if (this.isString(t)) {\n var r;\n e = null !== (r = this.extractImageFromDataUrl(t)) ? r.data : t;\n\n try {\n n = atob(e);\n } catch (t) {\n throw x.validateStringAsBase64(e) ? new Error(\"atob-Error in jsPDF.convertStringToImageData \" + t.message) : new Error(\"Supplied Data is not a valid base64-String jsPDF.convertStringToImageData \");\n }\n }\n\n return n;\n };\n\n var u = function u(t, e) {\n return t.subarray(e, e + 5);\n };\n\n x.processJPEG = function (t, e, n, r, i, o) {\n var a,\n s = this.decode.DCT_DECODE;\n if (!this.isString(t) && !this.isArrayBuffer(t) && !this.isArrayBufferView(t)) return null;\n if (this.isString(t) && (a = function (t) {\n var e;\n if (\"JPEG\" !== h(t)) throw new Error(\"getJpegSize requires a binary string jpeg file\");\n\n for (var n = 256 * t.charCodeAt(4) + t.charCodeAt(5), r = 4, i = t.length; r < i;) {\n if (r += n, 255 !== t.charCodeAt(r)) throw new Error(\"getJpegSize could not find the size of the image\");\n if (192 === t.charCodeAt(r + 1) || 193 === t.charCodeAt(r + 1) || 194 === t.charCodeAt(r + 1) || 195 === t.charCodeAt(r + 1) || 196 === t.charCodeAt(r + 1) || 197 === t.charCodeAt(r + 1) || 198 === t.charCodeAt(r + 1) || 199 === t.charCodeAt(r + 1)) return e = 256 * t.charCodeAt(r + 5) + t.charCodeAt(r + 6), [256 * t.charCodeAt(r + 7) + t.charCodeAt(r + 8), e, t.charCodeAt(r + 9)];\n r += 2, n = 256 * t.charCodeAt(r) + t.charCodeAt(r + 1);\n }\n }(t)), this.isArrayBuffer(t) && (t = new Uint8Array(t)), this.isArrayBufferView(t) && (a = function (t) {\n if (65496 != (t[0] << 8 | t[1])) throw new Error(\"Supplied data is not a JPEG\");\n\n for (var e, n = t.length, r = (t[4] << 8) + t[5], i = 4; i < n;) {\n if (r = ((e = u(t, i += r))[2] << 8) + e[3], (192 === e[1] || 194 === e[1]) && 255 === e[0] && 7 < r) return {\n width: ((e = u(t, i + 5))[2] << 8) + e[3],\n height: (e[0] << 8) + e[1],\n numcomponents: e[4]\n };\n i += 2;\n }\n\n throw new Error(\"getJpegSizeFromBytes could not find the size of the image\");\n }(t), t = i || this.arrayBufferToBinaryString(t)), void 0 === o) switch (a.numcomponents) {\n case 1:\n o = this.color_spaces.DEVICE_GRAY;\n break;\n\n case 4:\n o = this.color_spaces.DEVICE_CMYK;\n break;\n\n default:\n case 3:\n o = this.color_spaces.DEVICE_RGB;\n }\n return this.createImageInfo(t, a.width, a.height, o, 8, s, e, n);\n }, x.processJPG = function () {\n return this.processJPEG.apply(this, arguments);\n }, x.getImageProperties = function (t) {\n var e,\n n,\n r = \"\";\n if (_(t) && (t = F(t)), this.isString(t) && (\"\" !== (r = this.convertStringToImageData(t)) ? t = r : void 0 !== (r = x.loadFile(t)) && (t = r)), n = this.getImageFileTypeByImageData(t), !S(n)) throw new Error(\"addImage does not support files of type '\" + n + \"', please ensure that a plugin for '\" + n + \"' support is added.\");\n if (this.supportsArrayBuffer() && (t instanceof Uint8Array || (t = this.binaryStringToUint8Array(t))), !(e = this[\"process\" + n.toUpperCase()](t))) throw new Error(\"An unknown error occurred whilst processing the image\");\n return {\n fileType: n,\n width: e.w,\n height: e.h,\n colorSpace: e.cs,\n compressionMode: e.f,\n bitsPerComponent: e.bpc\n };\n };\n }(lt.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 t = lt.API, lt.API.events.push([\"addPage\", function (t) {\n this.internal.getPageInfo(t.pageNumber).pageContext.annotations = [];\n }]), t.events.push([\"putPage\", function (t) {\n for (var e = this.internal.getPageInfoByObjId(t.objId), n = t.pageContext.annotations, r = function r(t) {\n if (void 0 !== t && \"\" != t) return !0;\n }, i = !1, o = 0; o < n.length && !i; o++) {\n switch ((l = n[o]).type) {\n case \"link\":\n if (r(l.options.url) || r(l.options.pageNumber)) {\n i = !0;\n break;\n }\n\n case \"reference\":\n case \"text\":\n case \"freetext\":\n i = !0;\n }\n }\n\n if (0 != i) {\n this.internal.write(\"/Annots [\"), this.internal.pageSize.height;\n var a = this.internal.getCoordinateString,\n s = this.internal.getVerticalCoordinateString;\n\n for (o = 0; o < n.length; o++) {\n var l;\n\n switch ((l = n[o]).type) {\n case \"reference\":\n this.internal.write(\" \" + l.object.objId + \" 0 R \");\n break;\n\n case \"text\":\n var h = this.internal.newAdditionalObject(),\n u = this.internal.newAdditionalObject(),\n c = l.title || \"Note\";\n m = \"<>\", h.content = m;\n var f = h.objId + \" 0 R\";\n m = \"<>\", u.content = m, this.internal.write(h.objId, \"0 R\", u.objId, \"0 R\");\n break;\n\n case \"freetext\":\n var p = \"/Rect [\" + a(l.bounds.x) + \" \" + s(l.bounds.y) + \" \" + a(l.bounds.x + l.bounds.w) + \" \" + s(l.bounds.y + l.bounds.h) + \"] \",\n d = l.color || \"#000000\";\n m = \"<>\", this.internal.write(m);\n break;\n\n case \"link\":\n if (l.options.name) {\n var g = this.annotations._nameMap[l.options.name];\n l.options.pageNumber = g.page, l.options.top = g.y;\n } else l.options.top || (l.options.top = 0);\n\n p = \"/Rect [\" + a(l.x) + \" \" + s(l.y) + \" \" + a(l.x + l.w) + \" \" + s(l.y + l.h) + \"] \";\n var m = \"\";\n if (l.options.url) m = \"<>\";else if (l.options.pageNumber) switch (m = \"<>\", this.internal.write(m));\n }\n }\n\n this.internal.write(\"]\");\n }\n }]), t.createAnnotation = function (t) {\n var e = this.internal.getCurrentPageInfo();\n\n switch (t.type) {\n case \"link\":\n this.link(t.bounds.x, t.bounds.y, t.bounds.w, t.bounds.h, t);\n break;\n\n case \"text\":\n case \"freetext\":\n e.pageContext.annotations.push(t);\n }\n }, t.link = function (t, e, n, r, i) {\n this.internal.getCurrentPageInfo().pageContext.annotations.push({\n x: t,\n y: e,\n w: n,\n h: r,\n options: i,\n type: \"link\"\n });\n }, t.textWithLink = function (t, e, n, r) {\n var i = this.getTextWidth(t),\n o = this.internal.getLineHeight() / this.internal.scaleFactor;\n return this.text(t, e, n), n += .2 * o, this.link(e, n - o, i, o, r), i;\n }, t.getTextWidth = function (t) {\n var e = this.internal.getFontSize();\n return this.getStringUnitWidth(t) * e / this.internal.scaleFactor;\n },\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 function (t) {\n var h = {\n 1569: [65152],\n 1570: [65153, 65154],\n 1571: [65155, 65156],\n 1572: [65157, 65158],\n 1573: [65159, 65160],\n 1574: [65161, 65162, 65163, 65164],\n 1575: [65165, 65166],\n 1576: [65167, 65168, 65169, 65170],\n 1577: [65171, 65172],\n 1578: [65173, 65174, 65175, 65176],\n 1579: [65177, 65178, 65179, 65180],\n 1580: [65181, 65182, 65183, 65184],\n 1581: [65185, 65186, 65187, 65188],\n 1582: [65189, 65190, 65191, 65192],\n 1583: [65193, 65194],\n 1584: [65195, 65196],\n 1585: [65197, 65198],\n 1586: [65199, 65200],\n 1587: [65201, 65202, 65203, 65204],\n 1588: [65205, 65206, 65207, 65208],\n 1589: [65209, 65210, 65211, 65212],\n 1590: [65213, 65214, 65215, 65216],\n 1591: [65217, 65218, 65219, 65220],\n 1592: [65221, 65222, 65223, 65224],\n 1593: [65225, 65226, 65227, 65228],\n 1594: [65229, 65230, 65231, 65232],\n 1601: [65233, 65234, 65235, 65236],\n 1602: [65237, 65238, 65239, 65240],\n 1603: [65241, 65242, 65243, 65244],\n 1604: [65245, 65246, 65247, 65248],\n 1605: [65249, 65250, 65251, 65252],\n 1606: [65253, 65254, 65255, 65256],\n 1607: [65257, 65258, 65259, 65260],\n 1608: [65261, 65262],\n 1609: [65263, 65264, 64488, 64489],\n 1610: [65265, 65266, 65267, 65268],\n 1649: [64336, 64337],\n 1655: [64477],\n 1657: [64358, 64359, 64360, 64361],\n 1658: [64350, 64351, 64352, 64353],\n 1659: [64338, 64339, 64340, 64341],\n 1662: [64342, 64343, 64344, 64345],\n 1663: [64354, 64355, 64356, 64357],\n 1664: [64346, 64347, 64348, 64349],\n 1667: [64374, 64375, 64376, 64377],\n 1668: [64370, 64371, 64372, 64373],\n 1670: [64378, 64379, 64380, 64381],\n 1671: [64382, 64383, 64384, 64385],\n 1672: [64392, 64393],\n 1676: [64388, 64389],\n 1677: [64386, 64387],\n 1678: [64390, 64391],\n 1681: [64396, 64397],\n 1688: [64394, 64395],\n 1700: [64362, 64363, 64364, 64365],\n 1702: [64366, 64367, 64368, 64369],\n 1705: [64398, 64399, 64400, 64401],\n 1709: [64467, 64468, 64469, 64470],\n 1711: [64402, 64403, 64404, 64405],\n 1713: [64410, 64411, 64412, 64413],\n 1715: [64406, 64407, 64408, 64409],\n 1722: [64414, 64415],\n 1723: [64416, 64417, 64418, 64419],\n 1726: [64426, 64427, 64428, 64429],\n 1728: [64420, 64421],\n 1729: [64422, 64423, 64424, 64425],\n 1733: [64480, 64481],\n 1734: [64473, 64474],\n 1735: [64471, 64472],\n 1736: [64475, 64476],\n 1737: [64482, 64483],\n 1739: [64478, 64479],\n 1740: [64508, 64509, 64510, 64511],\n 1744: [64484, 64485, 64486, 64487],\n 1746: [64430, 64431],\n 1747: [64432, 64433]\n },\n a = {\n 65247: {\n 65154: 65269,\n 65156: 65271,\n 65160: 65273,\n 65166: 65275\n },\n 65248: {\n 65154: 65270,\n 65156: 65272,\n 65160: 65274,\n 65166: 65276\n },\n 65165: {\n 65247: {\n 65248: {\n 65258: 65010\n }\n }\n },\n 1617: {\n 1612: 64606,\n 1613: 64607,\n 1614: 64608,\n 1615: 64609,\n 1616: 64610\n }\n },\n e = {\n 1612: 64606,\n 1613: 64607,\n 1614: 64608,\n 1615: 64609,\n 1616: 64610\n },\n n = [1570, 1571, 1573, 1575];\n t.__arabicParser__ = {};\n\n var r = t.__arabicParser__.isInArabicSubstitutionA = function (t) {\n return void 0 !== h[t.charCodeAt(0)];\n },\n u = t.__arabicParser__.isArabicLetter = function (t) {\n return \"string\" == typeof t && /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(t);\n },\n i = t.__arabicParser__.isArabicEndLetter = function (t) {\n return u(t) && r(t) && h[t.charCodeAt(0)].length <= 2;\n },\n o = t.__arabicParser__.isArabicAlfLetter = function (t) {\n return u(t) && 0 <= n.indexOf(t.charCodeAt(0));\n },\n s = (t.__arabicParser__.arabicLetterHasIsolatedForm = function (t) {\n return u(t) && r(t) && 1 <= h[t.charCodeAt(0)].length;\n }, t.__arabicParser__.arabicLetterHasFinalForm = function (t) {\n return u(t) && r(t) && 2 <= h[t.charCodeAt(0)].length;\n }),\n l = (t.__arabicParser__.arabicLetterHasInitialForm = function (t) {\n return u(t) && r(t) && 3 <= h[t.charCodeAt(0)].length;\n }, t.__arabicParser__.arabicLetterHasMedialForm = function (t) {\n return u(t) && r(t) && 4 == h[t.charCodeAt(0)].length;\n }),\n c = t.__arabicParser__.resolveLigatures = function (t) {\n var e = 0,\n n = a,\n r = 0,\n i = \"\",\n o = 0;\n\n for (e = 0; e < t.length; e += 1) {\n void 0 !== n[t.charCodeAt(e)] ? (o++, \"number\" == typeof (n = n[t.charCodeAt(e)]) && (r = -1 !== (r = f(t.charAt(e), t.charAt(e - o), t.charAt(e + 1))) ? r : 0, i += String.fromCharCode(n), n = a, o = 0), e === t.length - 1 && (n = a, i += t.charAt(e - (o - 1)), e -= o - 1, o = 0)) : (n = a, i += t.charAt(e - o), e -= o, o = 0);\n }\n\n return i;\n },\n f = (t.__arabicParser__.isArabicDiacritic = function (t) {\n return void 0 !== t && void 0 !== e[t.charCodeAt(0)];\n }, t.__arabicParser__.getCorrectForm = function (t, e, n) {\n return u(t) ? !1 === r(t) ? -1 : !s(t) || !u(e) && !u(n) || !u(n) && i(e) || i(t) && !u(e) || i(t) && o(e) || i(t) && i(e) ? 0 : l(t) && u(e) && !i(e) && u(n) && s(n) ? 3 : i(t) || !u(n) ? 1 : 2 : -1;\n }),\n p = t.__arabicParser__.processArabic = t.processArabic = function (t) {\n var e = 0,\n n = 0,\n r = 0,\n i = \"\",\n o = \"\",\n a = \"\",\n s = (t = t || \"\").split(\"\\\\s+\"),\n l = [];\n\n for (e = 0; e < s.length; e += 1) {\n for (l.push(\"\"), n = 0; n < s[e].length; n += 1) {\n i = s[e][n], o = s[e][n - 1], a = s[e][n + 1], u(i) ? (r = f(i, o, a), l[e] += -1 !== r ? String.fromCharCode(h[i.charCodeAt(0)][r]) : i) : l[e] += i;\n }\n\n l[e] = c(l[e]);\n }\n\n return l.join(\" \");\n };\n\n t.events.push([\"preProcessText\", function (t) {\n var e = t.text,\n n = (t.x, t.y, t.options || {}),\n r = (t.mutex, n.lang, []);\n\n if (\"[object Array]\" === Object.prototype.toString.call(e)) {\n var i = 0;\n\n for (r = [], i = 0; i < e.length; i += 1) {\n \"[object Array]\" === Object.prototype.toString.call(e[i]) ? r.push([p(e[i][0]), e[i][1], e[i][2]]) : r.push([p(e[i])]);\n }\n\n t.text = r;\n } else t.text = p(e);\n }]);\n }(lt.API), lt.API.autoPrint = function (t) {\n var e;\n\n switch ((t = t || {}).variant = t.variant || \"non-conform\", t.variant) {\n case \"javascript\":\n this.addJS(\"print({});\");\n break;\n\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function () {\n e = this.internal.newObject(), this.internal.out(\"<<\"), this.internal.out(\"/S /Named\"), this.internal.out(\"/Type /Action\"), this.internal.out(\"/N /Print\"), this.internal.out(\">>\"), this.internal.out(\"endobj\");\n }), this.internal.events.subscribe(\"putCatalog\", function () {\n this.internal.out(\"/OpenAction \" + e + \" 0 R\");\n });\n }\n\n return this;\n },\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 e = lt.API, (n = function n() {\n var e = void 0;\n Object.defineProperty(this, \"pdf\", {\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = t;\n }\n });\n var n = 150;\n Object.defineProperty(this, \"width\", {\n get: function get() {\n return n;\n },\n set: function set(t) {\n n = isNaN(t) || !1 === Number.isInteger(t) || t < 0 ? 150 : t, this.getContext(\"2d\").pageWrapXEnabled && (this.getContext(\"2d\").pageWrapX = n + 1);\n }\n });\n var r = 300;\n Object.defineProperty(this, \"height\", {\n get: function get() {\n return r;\n },\n set: function set(t) {\n r = isNaN(t) || !1 === Number.isInteger(t) || t < 0 ? 300 : t, this.getContext(\"2d\").pageWrapYEnabled && (this.getContext(\"2d\").pageWrapY = r + 1);\n }\n });\n var i = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function get() {\n return i;\n },\n set: function set(t) {\n i = t;\n }\n });\n var o = {};\n Object.defineProperty(this, \"style\", {\n get: function get() {\n return o;\n },\n set: function set(t) {\n o = t;\n }\n }), Object.defineProperty(this, \"parentNode\", {\n get: function get() {\n return !1;\n }\n });\n }).prototype.getContext = function (t, e) {\n var n;\n if (\"2d\" !== (t = t || \"2d\")) return null;\n\n for (n in e) {\n this.pdf.context2d.hasOwnProperty(n) && (this.pdf.context2d[n] = e[n]);\n }\n\n return (this.pdf.context2d._canvas = this).pdf.context2d;\n }, n.prototype.toDataURL = function () {\n throw new Error(\"toDataURL is not implemented.\");\n }, e.events.push([\"initialized\", function () {\n this.canvas = new n(), this.canvas.pdf = this;\n }]),\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 * \n * ====================================================================\n */\n _ = lt.API, F = {\n x: void 0,\n y: void 0,\n w: void 0,\n h: void 0,\n ln: void 0\n }, P = 1, p = function p(t, e, n, r, i) {\n F = {\n x: t,\n y: e,\n w: n,\n h: r,\n ln: i\n };\n }, d = function d() {\n return F;\n }, k = {\n left: 0,\n top: 0,\n bottom: 0\n }, _.setHeaderFunction = function (t) {\n l = t;\n }, _.getTextDimensions = function (t, e) {\n var n = this.table_font_size || this.internal.getFontSize(),\n r = (this.internal.getFont().fontStyle, (e = e || {}).scaleFactor || this.internal.scaleFactor),\n i = 0,\n o = 0,\n a = 0;\n if (\"string\" == typeof t) 0 != (i = this.getStringUnitWidth(t) * n) && (o = 1);else {\n if (\"[object Array]\" !== Object.prototype.toString.call(t)) throw new Error(\"getTextDimensions expects text-parameter to be of type String or an Array of Strings.\");\n\n for (var s = 0; s < t.length; s++) {\n i < (a = this.getStringUnitWidth(t[s]) * n) && (i = a);\n }\n\n 0 !== i && (o = t.length);\n }\n return {\n w: i /= r,\n h: Math.max((o * n * this.getLineHeightFactor() - n * (this.getLineHeightFactor() - 1)) / r, 0)\n };\n }, _.cellAddPage = function () {\n var t = this.margins || k;\n this.addPage(), p(t.left, t.top, void 0, void 0), P += 1;\n }, _.cellInitialize = function () {\n F = {\n x: void 0,\n y: void 0,\n w: void 0,\n h: void 0,\n ln: void 0\n }, P = 1;\n }, _.cell = function (t, e, n, r, i, o, a) {\n var s = d(),\n l = !1;\n if (void 0 !== s.ln) if (s.ln === o) t = s.x + s.w, e = s.y;else {\n var h = this.margins || k;\n s.y + s.h + r + 13 >= this.internal.pageSize.getHeight() - h.bottom && (this.cellAddPage(), l = !0, this.printHeaders && this.tableHeaderRow && this.printHeaderRow(o, !0)), e = d().y + d().h, l && (e = 23);\n }\n if (void 0 !== i[0]) if (this.printingHeaderRow ? this.rect(t, e, n, r, \"FD\") : this.rect(t, e, n, r), \"right\" === a) {\n i instanceof Array || (i = [i]);\n\n for (var u = 0; u < i.length; u++) {\n var c = i[u],\n f = this.getStringUnitWidth(c) * this.internal.getFontSize() / this.internal.scaleFactor;\n this.text(c, t + n - f - 3, e + this.internal.getLineHeight() * (u + 1));\n }\n } else this.text(i, t + 3, e + this.internal.getLineHeight());\n return p(t, e, n, r, o), this;\n }, _.arrayMax = function (t, e) {\n var n,\n r,\n i,\n o = t[0];\n\n for (n = 0, r = t.length; n < r; n += 1) {\n i = t[n], e ? -1 === e(o, i) && (o = i) : o < i && (o = i);\n }\n\n return o;\n }, _.table = function (t, e, n, r, i) {\n if (!n) throw \"No data for PDF table\";\n var o,\n a,\n s,\n l,\n h,\n u,\n c,\n f,\n p,\n d,\n g = [],\n m = [],\n y = {},\n v = {},\n w = [],\n b = [],\n x = !1,\n N = !0,\n L = 12,\n A = k;\n if (A.width = this.internal.pageSize.getWidth(), i && (!0 === i.autoSize && (x = !0), !1 === i.printHeaders && (N = !1), i.fontSize && (L = i.fontSize), i.css && void 0 !== i.css[\"font-size\"] && (L = 16 * i.css[\"font-size\"]), i.margins && (A = i.margins)), this.lnMod = 0, F = {\n x: void 0,\n y: void 0,\n w: void 0,\n h: void 0,\n ln: void 0\n }, P = 1, this.printHeaders = N, this.margins = A, this.setFontSize(L), this.table_font_size = L, null == r) g = Object.keys(n[0]);else if (r[0] && \"string\" != typeof r[0]) for (a = 0, s = r.length; a < s; a += 1) {\n o = r[a], g.push(o.name), m.push(o.prompt), v[o.name] = o.width * (19.049976 / 25.4);\n } else g = r;\n if (x) for (d = function d(t) {\n return t[o];\n }, a = 0, s = g.length; a < s; a += 1) {\n for (y[o = g[a]] = n.map(d), w.push(this.getTextDimensions(m[a] || o, {\n scaleFactor: 1\n }).w), c = 0, l = (u = y[o]).length; c < l; c += 1) {\n h = u[c], w.push(this.getTextDimensions(h, {\n scaleFactor: 1\n }).w);\n }\n\n v[o] = _.arrayMax(w), w = [];\n }\n\n if (N) {\n var S = this.calculateLineHeight(g, v, m.length ? m : g);\n\n for (a = 0, s = g.length; a < s; a += 1) {\n o = g[a], b.push([t, e, v[o], S, String(m.length ? m[a] : o)]);\n }\n\n this.setTableHeaderRow(b), this.printHeaderRow(1, !1);\n }\n\n for (a = 0, s = n.length; a < s; a += 1) {\n for (f = n[a], S = this.calculateLineHeight(g, v, f), c = 0, p = g.length; c < p; c += 1) {\n o = g[c], this.cell(t, e, v[o], S, f[o], a + 2, o.align);\n }\n }\n\n return this.lastCellPos = F, this.table_x = t, this.table_y = e, this;\n }, _.calculateLineHeight = function (t, e, n) {\n for (var r, i = 0, o = 0; o < t.length; o++) {\n n[r = t[o]] = this.splitTextToSize(String(n[r]), e[r] - 3);\n var a = this.internal.getLineHeight() * n[r].length + 3;\n i < a && (i = a);\n }\n\n return i;\n }, _.setTableHeaderRow = function (t) {\n this.tableHeaderRow = t;\n }, _.printHeaderRow = function (t, e) {\n if (!this.tableHeaderRow) throw \"Property tableHeaderRow does not exist.\";\n var n, r, i, o;\n\n if (this.printingHeaderRow = !0, void 0 !== l) {\n var a = l(this, P);\n p(a[0], a[1], a[2], a[3], -1);\n }\n\n this.setFontStyle(\"bold\");\n var s = [];\n\n for (i = 0, o = this.tableHeaderRow.length; i < o; i += 1) {\n this.setFillColor(200, 200, 200), n = this.tableHeaderRow[i], e && (this.margins.top = 13, n[1] = this.margins && this.margins.top || 0, s.push(n)), r = [].concat(n), this.cell.apply(this, r.concat(t));\n }\n\n 0 < s.length && this.setTableHeaderRow(s), this.setFontStyle(\"normal\"), this.printingHeaderRow = !1;\n },\n /**\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 function (t, e) {\n var l,\n i,\n o,\n h,\n u,\n c = function c(t) {\n return t = t || {}, this.isStrokeTransparent = t.isStrokeTransparent || !1, this.strokeOpacity = t.strokeOpacity || 1, this.strokeStyle = t.strokeStyle || \"#000000\", this.fillStyle = t.fillStyle || \"#000000\", this.isFillTransparent = t.isFillTransparent || !1, this.fillOpacity = t.fillOpacity || 1, this.font = t.font || \"10px sans-serif\", this.textBaseline = t.textBaseline || \"alphabetic\", this.textAlign = t.textAlign || \"left\", this.lineWidth = t.lineWidth || 1, this.lineJoin = t.lineJoin || \"miter\", this.lineCap = t.lineCap || \"butt\", this.path = t.path || [], this.transform = void 0 !== t.transform ? t.transform.clone() : new M(), this.globalCompositeOperation = t.globalCompositeOperation || \"normal\", this.globalAlpha = t.globalAlpha || 1, this.clip_path = t.clip_path || [], this.currentPoint = t.currentPoint || new j(), this.miterLimit = t.miterLimit || 10, this.lastPoint = t.lastPoint || new j(), this.ignoreClearRect = \"boolean\" != typeof t.ignoreClearRect || t.ignoreClearRect, this;\n };\n\n t.events.push([\"initialized\", function () {\n this.context2d = new n(this), l = this.internal.f2, this.internal.f3, i = this.internal.getCoordinateString, o = this.internal.getVerticalCoordinateString, h = this.internal.getHorizontalCoordinate, u = this.internal.getVerticalCoordinate;\n }]);\n\n var n = function n(t) {\n Object.defineProperty(this, \"canvas\", {\n get: function get() {\n return {\n parentNode: !1,\n style: !1\n };\n }\n }), Object.defineProperty(this, \"pdf\", {\n get: function get() {\n return t;\n }\n });\n var e = !1;\n Object.defineProperty(this, \"pageWrapXEnabled\", {\n get: function get() {\n return e;\n },\n set: function set(t) {\n e = Boolean(t);\n }\n });\n var n = !1;\n Object.defineProperty(this, \"pageWrapYEnabled\", {\n get: function get() {\n return n;\n },\n set: function set(t) {\n n = Boolean(t);\n }\n });\n var r = 0;\n Object.defineProperty(this, \"posX\", {\n get: function get() {\n return r;\n },\n set: function set(t) {\n isNaN(t) || (r = t);\n }\n });\n var i = 0;\n Object.defineProperty(this, \"posY\", {\n get: function get() {\n return i;\n },\n set: function set(t) {\n isNaN(t) || (i = t);\n }\n });\n var o = !1;\n Object.defineProperty(this, \"autoPaging\", {\n get: function get() {\n return o;\n },\n set: function set(t) {\n o = Boolean(t);\n }\n });\n var a = 0;\n Object.defineProperty(this, \"lastBreak\", {\n get: function get() {\n return a;\n },\n set: function set(t) {\n a = t;\n }\n });\n var s = [];\n Object.defineProperty(this, \"pageBreaks\", {\n get: function get() {\n return s;\n },\n set: function set(t) {\n s = t;\n }\n });\n var l = new c();\n Object.defineProperty(this, \"ctx\", {\n get: function get() {\n return l;\n },\n set: function set(t) {\n t instanceof c && (l = t);\n }\n }), Object.defineProperty(this, \"path\", {\n get: function get() {\n return l.path;\n },\n set: function set(t) {\n l.path = t;\n }\n });\n var h = [];\n Object.defineProperty(this, \"ctxStack\", {\n get: function get() {\n return h;\n },\n set: function set(t) {\n h = t;\n }\n }), Object.defineProperty(this, \"fillStyle\", {\n get: function get() {\n return this.ctx.fillStyle;\n },\n set: function set(t) {\n var e;\n e = f(t), this.ctx.fillStyle = e.style, this.ctx.isFillTransparent = 0 === e.a, this.ctx.fillOpacity = e.a, this.pdf.setFillColor(e.r, e.g, e.b, {\n a: e.a\n }), this.pdf.setTextColor(e.r, e.g, e.b, {\n a: e.a\n });\n }\n }), Object.defineProperty(this, \"strokeStyle\", {\n get: function get() {\n return this.ctx.strokeStyle;\n },\n set: function set(t) {\n var e = f(t);\n this.ctx.strokeStyle = e.style, this.ctx.isStrokeTransparent = 0 === e.a, this.ctx.strokeOpacity = e.a, 0 === e.a ? this.pdf.setDrawColor(255, 255, 255) : (e.a, this.pdf.setDrawColor(e.r, e.g, e.b));\n }\n }), Object.defineProperty(this, \"lineCap\", {\n get: function get() {\n return this.ctx.lineCap;\n },\n set: function set(t) {\n -1 !== [\"butt\", \"round\", \"square\"].indexOf(t) && (this.ctx.lineCap = t, this.pdf.setLineCap(t));\n }\n }), Object.defineProperty(this, \"lineWidth\", {\n get: function get() {\n return this.ctx.lineWidth;\n },\n set: function set(t) {\n isNaN(t) || (this.ctx.lineWidth = t, this.pdf.setLineWidth(t));\n }\n }), Object.defineProperty(this, \"lineJoin\", {\n get: function get() {\n return this.ctx.lineJoin;\n },\n set: function set(t) {\n -1 !== [\"bevel\", \"round\", \"miter\"].indexOf(t) && (this.ctx.lineJoin = t, this.pdf.setLineJoin(t));\n }\n }), Object.defineProperty(this, \"miterLimit\", {\n get: function get() {\n return this.ctx.miterLimit;\n },\n set: function set(t) {\n isNaN(t) || (this.ctx.miterLimit = t, this.pdf.setMiterLimit(t));\n }\n }), Object.defineProperty(this, \"textBaseline\", {\n get: function get() {\n return this.ctx.textBaseline;\n },\n set: function set(t) {\n this.ctx.textBaseline = t;\n }\n }), Object.defineProperty(this, \"textAlign\", {\n get: function get() {\n return this.ctx.textAlign;\n },\n set: function set(t) {\n -1 !== [\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(t) && (this.ctx.textAlign = t);\n }\n }), Object.defineProperty(this, \"font\", {\n get: function get() {\n return this.ctx.font;\n },\n set: function set(t) {\n var e;\n\n if (this.ctx.font = t, null !== (e = /^\\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.exec(t))) {\n var n = e[1],\n r = (e[2], e[3]),\n i = e[4],\n o = e[5],\n a = e[6];\n i = \"px\" === o ? Math.floor(parseFloat(i)) : \"em\" === o ? Math.floor(parseFloat(i) * this.pdf.getFontSize()) : Math.floor(parseFloat(i)), this.pdf.setFontSize(i);\n var s = \"\";\n (\"bold\" === r || 700 <= parseInt(r, 10) || \"bold\" === n) && (s = \"bold\"), \"italic\" === n && (s += \"italic\"), 0 === s.length && (s = \"normal\");\n\n for (var l = \"\", h = a.toLowerCase().replace(/\"|'/g, \"\").split(/\\s*,\\s*/), u = {\n arial: \"Helvetica\",\n verdana: \"Helvetica\",\n helvetica: \"Helvetica\",\n \"sans-serif\": \"Helvetica\",\n fixed: \"Courier\",\n monospace: \"Courier\",\n terminal: \"Courier\",\n courier: \"Courier\",\n times: \"Times\",\n cursive: \"Times\",\n fantasy: \"Times\",\n serif: \"Times\"\n }, c = 0; c < h.length; c++) {\n if (void 0 !== this.pdf.internal.getFont(h[c], s, {\n noFallback: !0,\n disableWarning: !0\n })) {\n l = h[c];\n break;\n }\n\n if (\"bolditalic\" === s && void 0 !== this.pdf.internal.getFont(h[c], \"bold\", {\n noFallback: !0,\n disableWarning: !0\n })) l = h[c], s = \"bold\";else if (void 0 !== this.pdf.internal.getFont(h[c], \"normal\", {\n noFallback: !0,\n disableWarning: !0\n })) {\n l = h[c], s = \"normal\";\n break;\n }\n }\n\n if (\"\" === l) for (c = 0; c < h.length; c++) {\n if (u[h[c]]) {\n l = u[h[c]];\n break;\n }\n }\n l = \"\" === l ? \"Times\" : l, this.pdf.setFont(l, s);\n }\n }\n }), Object.defineProperty(this, \"globalCompositeOperation\", {\n get: function get() {\n return this.ctx.globalCompositeOperation;\n },\n set: function set(t) {\n this.ctx.globalCompositeOperation = t;\n }\n }), Object.defineProperty(this, \"globalAlpha\", {\n get: function get() {\n return this.ctx.globalAlpha;\n },\n set: function set(t) {\n this.ctx.globalAlpha = t;\n }\n }), Object.defineProperty(this, \"ignoreClearRect\", {\n get: function get() {\n return this.ctx.ignoreClearRect;\n },\n set: function set(t) {\n this.ctx.ignoreClearRect = Boolean(t);\n }\n });\n };\n\n n.prototype.fill = function () {\n r.call(this, \"fill\", !1);\n }, n.prototype.stroke = function () {\n r.call(this, \"stroke\", !1);\n }, n.prototype.beginPath = function () {\n this.path = [{\n type: \"begin\"\n }];\n }, n.prototype.moveTo = function (t, e) {\n if (isNaN(t) || isNaN(e)) throw console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\n var n = this.ctx.transform.applyToPoint(new j(t, e));\n this.path.push({\n type: \"mt\",\n x: n.x,\n y: n.y\n }), this.ctx.lastPoint = new j(t, e);\n }, n.prototype.closePath = function () {\n var t = new j(0, 0),\n e = 0;\n\n for (e = this.path.length - 1; -1 !== e; e--) {\n if (\"begin\" === this.path[e].type && \"object\" === se(this.path[e + 1]) && \"number\" == typeof this.path[e + 1].x) {\n t = new j(this.path[e + 1].x, this.path[e + 1].y), this.path.push({\n type: \"lt\",\n x: t.x,\n y: t.y\n });\n break;\n }\n }\n\n \"object\" === se(this.path[e + 2]) && \"number\" == typeof this.path[e + 2].x && this.path.push(JSON.parse(JSON.stringify(this.path[e + 2]))), this.path.push({\n type: \"close\"\n }), this.ctx.lastPoint = new j(t.x, t.y);\n }, n.prototype.lineTo = function (t, e) {\n if (isNaN(t) || isNaN(e)) throw console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\n var n = this.ctx.transform.applyToPoint(new j(t, e));\n this.path.push({\n type: \"lt\",\n x: n.x,\n y: n.y\n }), this.ctx.lastPoint = new j(n.x, n.y);\n }, n.prototype.clip = function () {\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path)), r.call(this, null, !0);\n }, n.prototype.quadraticCurveTo = function (t, e, n, r) {\n if (isNaN(n) || isNaN(r) || isNaN(t) || isNaN(e)) throw console.error(\"jsPDF.context2d.quadraticCurveTo: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\");\n var i = this.ctx.transform.applyToPoint(new j(n, r)),\n o = this.ctx.transform.applyToPoint(new j(t, e));\n this.path.push({\n type: \"qct\",\n x1: o.x,\n y1: o.y,\n x: i.x,\n y: i.y\n }), this.ctx.lastPoint = new j(i.x, i.y);\n }, n.prototype.bezierCurveTo = function (t, e, n, r, i, o) {\n if (isNaN(i) || isNaN(o) || isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r)) throw console.error(\"jsPDF.context2d.bezierCurveTo: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\");\n var a = this.ctx.transform.applyToPoint(new j(i, o)),\n s = this.ctx.transform.applyToPoint(new j(t, e)),\n l = this.ctx.transform.applyToPoint(new j(n, r));\n this.path.push({\n type: \"bct\",\n x1: s.x,\n y1: s.y,\n x2: l.x,\n y2: l.y,\n x: a.x,\n y: a.y\n }), this.ctx.lastPoint = new j(a.x, a.y);\n }, n.prototype.arc = function (t, e, n, r, i, o) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r) || isNaN(i)) throw console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\n\n if (o = Boolean(o), !this.ctx.transform.isIdentity) {\n var a = this.ctx.transform.applyToPoint(new j(t, e));\n t = a.x, e = a.y;\n var s = this.ctx.transform.applyToPoint(new j(0, n)),\n l = this.ctx.transform.applyToPoint(new j(0, 0));\n n = Math.sqrt(Math.pow(s.x - l.x, 2) + Math.pow(s.y - l.y, 2));\n }\n\n Math.abs(i - r) >= 2 * Math.PI && (r = 0, i = 2 * Math.PI), this.path.push({\n type: \"arc\",\n x: t,\n y: e,\n radius: n,\n startAngle: r,\n endAngle: i,\n counterclockwise: o\n });\n }, n.prototype.arcTo = function (t, e, n, r, i) {\n throw new Error(\"arcTo not implemented.\");\n }, n.prototype.rect = function (t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r)) throw console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\n this.moveTo(t, e), this.lineTo(t + n, e), this.lineTo(t + n, e + r), this.lineTo(t, e + r), this.lineTo(t, e), this.lineTo(t + n, e), this.lineTo(t, e);\n }, n.prototype.fillRect = function (t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r)) throw console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\n\n if (!N.call(this)) {\n var i = {};\n \"butt\" !== this.lineCap && (i.lineCap = this.lineCap, this.lineCap = \"butt\"), \"miter\" !== this.lineJoin && (i.lineJoin = this.lineJoin, this.lineJoin = \"miter\"), this.beginPath(), this.rect(t, e, n, r), this.fill(), i.hasOwnProperty(\"lineCap\") && (this.lineCap = i.lineCap), i.hasOwnProperty(\"lineJoin\") && (this.lineJoin = i.lineJoin);\n }\n }, n.prototype.strokeRect = function (t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r)) throw console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\n L.call(this) || (this.beginPath(), this.rect(t, e, n, r), this.stroke());\n }, n.prototype.clearRect = function (t, e, n, r) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r)) throw console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\n this.ignoreClearRect || (this.fillStyle = \"#ffffff\", this.fillRect(t, e, n, r));\n }, n.prototype.save = function (t) {\n t = \"boolean\" != typeof t || t;\n\n for (var e = this.pdf.internal.getCurrentPageInfo().pageNumber, n = 0; n < this.pdf.internal.getNumberOfPages(); n++) {\n this.pdf.setPage(n + 1), this.pdf.internal.out(\"q\");\n }\n\n if (this.pdf.setPage(e), t) {\n this.ctx.fontSize = this.pdf.internal.getFontSize();\n var r = new c(this.ctx);\n this.ctxStack.push(this.ctx), this.ctx = r;\n }\n }, n.prototype.restore = function (t) {\n t = \"boolean\" != typeof t || t;\n\n for (var e = this.pdf.internal.getCurrentPageInfo().pageNumber, n = 0; n < this.pdf.internal.getNumberOfPages(); n++) {\n this.pdf.setPage(n + 1), this.pdf.internal.out(\"Q\");\n }\n\n this.pdf.setPage(e), t && 0 !== this.ctxStack.length && (this.ctx = this.ctxStack.pop(), this.fillStyle = this.ctx.fillStyle, this.strokeStyle = this.ctx.strokeStyle, this.font = this.ctx.font, this.lineCap = this.ctx.lineCap, this.lineWidth = this.ctx.lineWidth, this.lineJoin = this.ctx.lineJoin);\n }, n.prototype.toDataURL = function () {\n throw new Error(\"toDataUrl not implemented.\");\n };\n\n var f = function f(t) {\n var e, n, r, i;\n if (!0 === t.isCanvasGradient && (t = t.getColor()), !t) return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n style: t\n };\n if (/transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/.test(t)) i = r = n = e = 0;else {\n var o = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/.exec(t);\n if (null !== o) e = parseInt(o[1]), n = parseInt(o[2]), r = parseInt(o[3]), i = 1;else if (null !== (o = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/.exec(t))) e = parseInt(o[1]), n = parseInt(o[2]), r = parseInt(o[3]), i = parseFloat(o[4]);else {\n if (i = 1, \"string\" == typeof t && \"#\" !== t.charAt(0)) {\n var a = new RGBColor(t);\n t = a.ok ? a.toHex() : \"#000000\";\n }\n\n 4 === t.length ? (e = t.substring(1, 2), e += e, n = t.substring(2, 3), n += n, r = t.substring(3, 4), r += r) : (e = t.substring(1, 3), n = t.substring(3, 5), r = t.substring(5, 7)), e = parseInt(e, 16), n = parseInt(n, 16), r = parseInt(r, 16);\n }\n }\n return {\n r: e,\n g: n,\n b: r,\n a: i,\n style: t\n };\n },\n N = function N() {\n return this.ctx.isFillTransparent || 0 == this.globalAlpha;\n },\n L = function L() {\n return Boolean(this.ctx.isStrokeTransparent || 0 == this.globalAlpha);\n };\n\n n.prototype.fillText = function (t, e, n, r) {\n if (isNaN(e) || isNaN(n) || \"string\" != typeof t) throw console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\n\n if (r = isNaN(r) ? void 0 : r, !N.call(this)) {\n n = a.call(this, n);\n var i = B(this.ctx.transform.rotation),\n o = this.ctx.transform.scaleX;\n s.call(this, {\n text: t,\n x: e,\n y: n,\n scale: o,\n angle: i,\n align: this.textAlign,\n maxWidth: r\n });\n }\n }, n.prototype.strokeText = function (t, e, n, r) {\n if (isNaN(e) || isNaN(n) || \"string\" != typeof t) throw console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\n\n if (!L.call(this)) {\n r = isNaN(r) ? void 0 : r, n = a.call(this, n);\n var i = B(this.ctx.transform.rotation),\n o = this.ctx.transform.scaleX;\n s.call(this, {\n text: t,\n x: e,\n y: n,\n scale: o,\n renderingMode: \"stroke\",\n angle: i,\n align: this.textAlign,\n maxWidth: r\n });\n }\n }, n.prototype.measureText = function (t) {\n if (\"string\" != typeof t) throw console.error(\"jsPDF.context2d.measureText: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.measureText\");\n var e = this.pdf,\n n = this.pdf.internal.scaleFactor,\n r = e.internal.getFontSize(),\n i = e.getStringUnitWidth(t) * r / e.internal.scaleFactor;\n return new function (t) {\n var e = (t = t || {}).width || 0;\n return Object.defineProperty(this, \"width\", {\n get: function get() {\n return e;\n }\n }), this;\n }({\n width: i *= Math.round(96 * n / 72 * 1e4) / 1e4\n });\n }, n.prototype.scale = function (t, e) {\n if (isNaN(t) || isNaN(e)) throw console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\n var n = new M(t, 0, 0, e, 0, 0);\n this.ctx.transform = this.ctx.transform.multiply(n);\n }, n.prototype.rotate = function (t) {\n if (isNaN(t)) throw console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\n var e = new M(Math.cos(t), Math.sin(t), -Math.sin(t), Math.cos(t), 0, 0);\n this.ctx.transform = this.ctx.transform.multiply(e);\n }, n.prototype.translate = function (t, e) {\n if (isNaN(t) || isNaN(e)) throw console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\n var n = new M(1, 0, 0, 1, t, e);\n this.ctx.transform = this.ctx.transform.multiply(n);\n }, n.prototype.transform = function (t, e, n, r, i, o) {\n if (isNaN(t) || isNaN(e) || isNaN(n) || isNaN(r) || isNaN(i) || isNaN(o)) throw console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments), new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\n var a = new M(t, e, n, r, i, o);\n this.ctx.transform = this.ctx.transform.multiply(a);\n }, n.prototype.setTransform = function (t, e, n, r, i, o) {\n t = isNaN(t) ? 1 : t, e = isNaN(e) ? 0 : e, n = isNaN(n) ? 0 : n, r = isNaN(r) ? 1 : r, i = isNaN(i) ? 0 : i, o = isNaN(o) ? 0 : o, this.ctx.transform = new M(t, e, n, r, i, o);\n }, n.prototype.drawImage = function (t, e, n, r, i, o, a, s, l) {\n var h = this.pdf.getImageProperties(t),\n u = 1,\n c = 1,\n f = 1,\n p = 1;\n void 0 !== r && void 0 !== s && (f = s / r, p = l / i, u = h.width / r * s / r, c = h.height / i * l / i), void 0 === o && (o = e, a = n, n = e = 0), void 0 !== r && void 0 === s && (s = r, l = i), void 0 === r && void 0 === s && (s = h.width, l = h.height);\n var d = this.ctx.transform.decompose(),\n g = B(d.rotate.shx);\n d.scale.sx, d.scale.sy;\n\n for (var m, y = new M(), v = ((y = (y = (y = y.multiply(d.translate)).multiply(d.skew)).multiply(d.scale)).applyToPoint(new j(s, l)), y.applyToRectangle(new E(o - e * f, a - n * p, r * u, i * c))), w = F.call(this, v), b = [], x = 0; x < w.length; x += 1) {\n -1 === b.indexOf(w[x]) && b.push(w[x]);\n }\n\n if (b.sort(), this.autoPaging) for (var N = b[0], L = b[b.length - 1], A = N; A < L + 1; A++) {\n if (this.pdf.setPage(A), 0 !== this.ctx.clip_path.length) {\n var S = this.path;\n m = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = P(m, this.posX, -1 * this.pdf.internal.pageSize.height * (A - 1) + this.posY), k.call(this, \"fill\", !0), this.path = S;\n }\n\n var _ = JSON.parse(JSON.stringify(v));\n\n _ = P([_], this.posX, -1 * this.pdf.internal.pageSize.height * (A - 1) + this.posY)[0], this.pdf.addImage(t, \"jpg\", _.x, _.y, _.w, _.h, null, null, g);\n } else this.pdf.addImage(t, \"jpg\", v.x, v.y, v.w, v.h, null, null, g);\n };\n\n var F = function F(t, e, n) {\n var r = [];\n\n switch (e = e || this.pdf.internal.pageSize.width, n = n || this.pdf.internal.pageSize.height, t.type) {\n default:\n case \"mt\":\n case \"lt\":\n r.push(Math.floor((t.y + this.posY) / n) + 1);\n break;\n\n case \"arc\":\n r.push(Math.floor((t.y + this.posY - t.radius) / n) + 1), r.push(Math.floor((t.y + this.posY + t.radius) / n) + 1);\n break;\n\n case \"qct\":\n var i = w(this.ctx.lastPoint.x, this.ctx.lastPoint.y, t.x1, t.y1, t.x, t.y);\n r.push(Math.floor(i.y / n) + 1), r.push(Math.floor((i.y + i.h) / n) + 1);\n break;\n\n case \"bct\":\n var o = b(this.ctx.lastPoint.x, this.ctx.lastPoint.y, t.x1, t.y1, t.x2, t.y2, t.x, t.y);\n r.push(Math.floor(o.y / n) + 1), r.push(Math.floor((o.y + o.h) / n) + 1);\n break;\n\n case \"rect\":\n r.push(Math.floor((t.y + this.posY) / n) + 1), r.push(Math.floor((t.y + t.h + this.posY) / n) + 1);\n }\n\n for (var a = 0; a < r.length; a += 1) {\n for (; this.pdf.internal.getNumberOfPages() < r[a];) {\n v.call(this);\n }\n }\n\n return r;\n },\n v = function v() {\n var t = this.fillStyle,\n e = this.strokeStyle,\n n = this.font,\n r = this.lineCap,\n i = this.lineWidth,\n o = this.lineJoin;\n this.pdf.addPage(), this.fillStyle = t, this.strokeStyle = e, this.font = n, this.lineCap = r, this.lineWidth = i, this.lineJoin = o;\n },\n P = function P(t, e, n) {\n for (var r = 0; r < t.length; r++) {\n switch (t[r].type) {\n case \"bct\":\n t[r].x2 += e, t[r].y2 += n;\n\n case \"qct\":\n t[r].x1 += e, t[r].y1 += n;\n\n case \"mt\":\n case \"lt\":\n case \"arc\":\n default:\n t[r].x += e, t[r].y += n;\n }\n }\n\n return t;\n },\n r = function r(t, e) {\n for (var n, r, i = this.fillStyle, o = this.strokeStyle, a = (this.font, this.lineCap), s = this.lineWidth, l = this.lineJoin, h = JSON.parse(JSON.stringify(this.path)), u = JSON.parse(JSON.stringify(this.path)), c = [], f = 0; f < u.length; f++) {\n if (void 0 !== u[f].x) for (var p = F.call(this, u[f]), d = 0; d < p.length; d += 1) {\n -1 === c.indexOf(p[d]) && c.push(p[d]);\n }\n }\n\n for (f = 0; f < c.length; f++) {\n for (; this.pdf.internal.getNumberOfPages() < c[f];) {\n v.call(this);\n }\n }\n\n if (c.sort(), this.autoPaging) {\n var g = c[0],\n m = c[c.length - 1];\n\n for (f = g; f < m + 1; f++) {\n if (this.pdf.setPage(f), this.fillStyle = i, this.strokeStyle = o, this.lineCap = a, this.lineWidth = s, this.lineJoin = l, 0 !== this.ctx.clip_path.length) {\n var y = this.path;\n n = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = P(n, this.posX, -1 * this.pdf.internal.pageSize.height * (f - 1) + this.posY), k.call(this, t, !0), this.path = y;\n }\n\n r = JSON.parse(JSON.stringify(h)), this.path = P(r, this.posX, -1 * this.pdf.internal.pageSize.height * (f - 1) + this.posY), !1 !== e && 0 !== f || k.call(this, t, e);\n }\n } else k.call(this, t, e);\n\n this.path = h;\n },\n k = function k(t, e) {\n if ((\"stroke\" !== t || e || !L.call(this)) && (\"stroke\" === t || e || !N.call(this))) {\n var n = [];\n this.ctx.globalAlpha;\n this.ctx.fillOpacity < 1 && this.ctx.fillOpacity;\n\n for (var r, i = this.path, o = 0; o < i.length; o++) {\n var a = i[o];\n\n switch (a.type) {\n case \"begin\":\n n.push({\n begin: !0\n });\n break;\n\n case \"close\":\n n.push({\n close: !0\n });\n break;\n\n case \"mt\":\n n.push({\n start: a,\n deltas: [],\n abs: []\n });\n break;\n\n case \"lt\":\n var s = n.length;\n\n if (!isNaN(i[o - 1].x)) {\n var l = [a.x - i[o - 1].x, a.y - i[o - 1].y];\n if (0 < s) for (; 0 <= s; s--) {\n if (!0 !== n[s - 1].close && !0 !== n[s - 1].begin) {\n n[s - 1].deltas.push(l), n[s - 1].abs.push(a);\n break;\n }\n }\n }\n\n break;\n\n case \"bct\":\n l = [a.x1 - i[o - 1].x, a.y1 - i[o - 1].y, a.x2 - i[o - 1].x, a.y2 - i[o - 1].y, a.x - i[o - 1].x, a.y - i[o - 1].y];\n n[n.length - 1].deltas.push(l);\n break;\n\n case \"qct\":\n var h = i[o - 1].x + 2 / 3 * (a.x1 - i[o - 1].x),\n u = i[o - 1].y + 2 / 3 * (a.y1 - i[o - 1].y),\n c = a.x + 2 / 3 * (a.x1 - a.x),\n f = a.y + 2 / 3 * (a.y1 - a.y),\n p = a.x,\n d = a.y;\n l = [h - i[o - 1].x, u - i[o - 1].y, c - i[o - 1].x, f - i[o - 1].y, p - i[o - 1].x, d - i[o - 1].y];\n n[n.length - 1].deltas.push(l);\n break;\n\n case \"arc\":\n n.push({\n deltas: [],\n abs: [],\n arc: !0\n }), Array.isArray(n[n.length - 1].abs) && n[n.length - 1].abs.push(a);\n }\n }\n\n r = e ? null : \"stroke\" === t ? \"stroke\" : \"fill\";\n\n for (o = 0; o < n.length; o++) {\n if (n[o].arc) for (var g = n[o].abs, m = 0; m < g.length; m++) {\n var y = g[m];\n\n if (void 0 !== y.startAngle) {\n var v = B(y.startAngle),\n w = B(y.endAngle),\n b = y.x,\n x = y.y;\n A.call(this, b, x, y.radius, v, w, y.counterclockwise, r, e);\n } else I.call(this, y.x, y.y);\n }\n\n if (!n[o].arc && !0 !== n[o].close && !0 !== n[o].begin) {\n b = n[o].start.x, x = n[o].start.y;\n C.call(this, n[o].deltas, b, x, null, null);\n }\n }\n\n r && S.call(this, r), e && _.call(this);\n }\n },\n a = function a(t) {\n var e = this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor,\n n = e * (this.pdf.internal.getLineHeightFactor() - 1);\n\n switch (this.ctx.textBaseline) {\n case \"bottom\":\n return t - n;\n\n case \"top\":\n return t + e - n;\n\n case \"hanging\":\n return t + e - 2 * n;\n\n case \"middle\":\n return t + e / 2 - n;\n\n case \"ideographic\":\n return t;\n\n case \"alphabetic\":\n default:\n return t;\n }\n };\n\n n.prototype.createLinearGradient = function () {\n var t = function t() {};\n\n return t.colorStops = [], t.addColorStop = function (t, e) {\n this.colorStops.push([t, e]);\n }, t.getColor = function () {\n return 0 === this.colorStops.length ? \"#000000\" : this.colorStops[0][1];\n }, t.isCanvasGradient = !0, t;\n }, n.prototype.createPattern = function () {\n return this.createLinearGradient();\n }, n.prototype.createRadialGradient = function () {\n return this.createLinearGradient();\n };\n\n var A = function A(t, e, n, r, i, o, a, s) {\n this.pdf.internal.scaleFactor;\n\n for (var l = y(r), h = y(i), u = g.call(this, n, l, h, o), c = 0; c < u.length; c++) {\n var f = u[c];\n 0 === c && p.call(this, f.x1 + t, f.y1 + e), d.call(this, t, e, f.x2, f.y2, f.x3, f.y3, f.x4, f.y4);\n }\n\n s ? _.call(this) : S.call(this, a);\n },\n S = function S(t) {\n switch (t) {\n case \"stroke\":\n this.pdf.internal.out(\"S\");\n break;\n\n case \"fill\":\n this.pdf.internal.out(\"f\");\n }\n },\n _ = function _() {\n this.pdf.clip();\n },\n p = function p(t, e) {\n this.pdf.internal.out(i(t) + \" \" + o(e) + \" m\");\n },\n s = function s(t) {\n var e;\n\n switch (t.align) {\n case \"right\":\n case \"end\":\n e = \"right\";\n break;\n\n case \"center\":\n e = \"center\";\n break;\n\n case \"left\":\n case \"start\":\n default:\n e = \"left\";\n }\n\n var n = this.ctx.transform.applyToPoint(new j(t.x, t.y)),\n r = this.ctx.transform.decompose(),\n i = new M();\n i = (i = (i = i.multiply(r.translate)).multiply(r.skew)).multiply(r.scale);\n\n for (var o, a = this.pdf.getTextDimensions(t.text), s = this.ctx.transform.applyToRectangle(new E(t.x, t.y, a.w, a.h)), l = i.applyToRectangle(new E(t.x, t.y - a.h, a.w, a.h)), h = F.call(this, l), u = [], c = 0; c < h.length; c += 1) {\n -1 === u.indexOf(h[c]) && u.push(h[c]);\n }\n\n if (u.sort(), !0 === this.autoPaging) for (var f = u[0], p = u[u.length - 1], d = f; d < p + 1; d++) {\n if (this.pdf.setPage(d), 0 !== this.ctx.clip_path.length) {\n var g = this.path;\n o = JSON.parse(JSON.stringify(this.ctx.clip_path)), this.path = P(o, this.posX, -1 * this.pdf.internal.pageSize.height * (d - 1) + this.posY), k.call(this, \"fill\", !0), this.path = g;\n }\n\n var m = JSON.parse(JSON.stringify(s));\n\n if (m = P([m], this.posX, -1 * this.pdf.internal.pageSize.height * (d - 1) + this.posY)[0], .01 <= t.scale) {\n var y = this.pdf.internal.getFontSize();\n this.pdf.setFontSize(y * t.scale);\n }\n\n this.pdf.text(t.text, m.x, m.y, {\n angle: t.angle,\n align: e,\n renderingMode: t.renderingMode,\n maxWidth: t.maxWidth\n }), .01 <= t.scale && this.pdf.setFontSize(y);\n } else {\n if (.01 <= t.scale) {\n y = this.pdf.internal.getFontSize();\n this.pdf.setFontSize(y * t.scale);\n }\n\n this.pdf.text(t.text, n.x + this.posX, n.y + this.posY, {\n angle: t.angle,\n align: e,\n renderingMode: t.renderingMode,\n maxWidth: t.maxWidth\n }), .01 <= t.scale && this.pdf.setFontSize(y);\n }\n },\n I = function I(t, e, n, r) {\n n = n || 0, r = r || 0, this.pdf.internal.out(i(t + n) + \" \" + o(e + r) + \" l\");\n },\n C = function C(t, e, n) {\n return this.pdf.lines(t, e, n, null, null);\n },\n d = function d(t, e, n, r, i, o, a, s) {\n this.pdf.internal.out([l(h(n + t)), l(u(r + e)), l(h(i + t)), l(u(o + e)), l(h(a + t)), l(u(s + e)), \"c\"].join(\" \"));\n },\n g = function g(t, e, n, r) {\n var i = 2 * Math.PI,\n o = e;\n (o < i || i < o) && (o %= i);\n var a = n;\n (a < i || i < a) && (a %= i);\n\n for (var s = [], l = Math.PI / 2, h = r ? -1 : 1, u = e, c = Math.min(i, Math.abs(a - o)); 1e-5 < c;) {\n var f = u + h * Math.min(c, l);\n s.push(m.call(this, t, u, f)), c -= Math.abs(f - u), u = f;\n }\n\n return s;\n },\n m = function m(t, e, n) {\n var r = (n - e) / 2,\n i = t * Math.cos(r),\n o = t * Math.sin(r),\n a = i,\n s = -o,\n l = a * a + s * s,\n h = l + a * i + s * o,\n u = 4 / 3 * (Math.sqrt(2 * l * h) - h) / (a * o - s * i),\n c = a - u * s,\n f = s + u * a,\n p = c,\n d = -f,\n g = r + e,\n m = Math.cos(g),\n y = Math.sin(g);\n return {\n x1: t * Math.cos(e),\n y1: t * Math.sin(e),\n x2: c * m - f * y,\n y2: c * y + f * m,\n x3: p * m - d * y,\n y3: p * y + d * m,\n x4: t * Math.cos(n),\n y4: t * Math.sin(n)\n };\n },\n B = function B(t) {\n return 180 * t / Math.PI;\n },\n y = function y(t) {\n return t * Math.PI / 180;\n },\n w = function w(t, e, n, r, i, o) {\n var a = t + .5 * (n - t),\n s = e + .5 * (r - e),\n l = i + .5 * (n - i),\n h = o + .5 * (r - o),\n u = Math.min(t, i, a, l),\n c = Math.max(t, i, a, l),\n f = Math.min(e, o, s, h),\n p = Math.max(e, o, s, h);\n return new E(u, f, c - u, p - f);\n },\n b = function b(t, e, n, r, i, o, a, s) {\n for (var l, h, u, c, f, p, d, g, m, y, v, w, b, x = n - t, N = r - e, L = i - n, A = o - r, S = a - i, _ = s - o, F = 0; F < 41; F++) {\n g = (p = (h = t + (l = F / 40) * x) + l * ((c = n + l * L) - h)) + l * (c + l * (i + l * S - c) - p), m = (d = (u = e + l * N) + l * ((f = r + l * A) - u)) + l * (f + l * (o + l * _ - f) - d), b = 0 == F ? (w = y = g, v = m) : (y = Math.min(y, g), v = Math.min(v, m), w = Math.max(w, g), Math.max(b, m));\n }\n\n return new E(Math.round(y), Math.round(v), Math.round(w - y), Math.round(b - v));\n },\n j = function j(t, e) {\n var n = t || 0;\n Object.defineProperty(this, \"x\", {\n enumerable: !0,\n get: function get() {\n return n;\n },\n set: function set(t) {\n isNaN(t) || (n = parseFloat(t));\n }\n });\n var r = e || 0;\n Object.defineProperty(this, \"y\", {\n enumerable: !0,\n get: function get() {\n return r;\n },\n set: function set(t) {\n isNaN(t) || (r = parseFloat(t));\n }\n });\n var i = \"pt\";\n return Object.defineProperty(this, \"type\", {\n enumerable: !0,\n get: function get() {\n return i;\n },\n set: function set(t) {\n i = t.toString();\n }\n }), this;\n },\n E = function E(t, e, n, r) {\n j.call(this, t, e), this.type = \"rect\";\n var i = n || 0;\n Object.defineProperty(this, \"w\", {\n enumerable: !0,\n get: function get() {\n return i;\n },\n set: function set(t) {\n isNaN(t) || (i = parseFloat(t));\n }\n });\n var o = r || 0;\n return Object.defineProperty(this, \"h\", {\n enumerable: !0,\n get: function get() {\n return o;\n },\n set: function set(t) {\n isNaN(t) || (o = parseFloat(t));\n }\n }), this;\n },\n M = function M(t, e, n, r, i, o) {\n var a = [];\n return Object.defineProperty(this, \"sx\", {\n get: function get() {\n return a[0];\n },\n set: function set(t) {\n a[0] = Math.round(1e5 * t) / 1e5;\n }\n }), Object.defineProperty(this, \"shy\", {\n get: function get() {\n return a[1];\n },\n set: function set(t) {\n a[1] = Math.round(1e5 * t) / 1e5;\n }\n }), Object.defineProperty(this, \"shx\", {\n get: function get() {\n return a[2];\n },\n set: function set(t) {\n a[2] = Math.round(1e5 * t) / 1e5;\n }\n }), Object.defineProperty(this, \"sy\", {\n get: function get() {\n return a[3];\n },\n set: function set(t) {\n a[3] = Math.round(1e5 * t) / 1e5;\n }\n }), Object.defineProperty(this, \"tx\", {\n get: function get() {\n return a[4];\n },\n set: function set(t) {\n a[4] = Math.round(1e5 * t) / 1e5;\n }\n }), Object.defineProperty(this, \"ty\", {\n get: function get() {\n return a[5];\n },\n set: function set(t) {\n a[5] = Math.round(1e5 * t) / 1e5;\n }\n }), Object.defineProperty(this, \"rotation\", {\n get: function get() {\n return Math.atan2(this.shx, this.sx);\n }\n }), Object.defineProperty(this, \"scaleX\", {\n get: function get() {\n return this.decompose().scale.sx;\n }\n }), Object.defineProperty(this, \"scaleY\", {\n get: function get() {\n return this.decompose().scale.sy;\n }\n }), Object.defineProperty(this, \"isIdentity\", {\n get: function get() {\n return 1 === this.sx && 0 === this.shy && 0 === this.shx && 1 === this.sy && 0 === this.tx && 0 === this.ty;\n }\n }), this.sx = isNaN(t) ? 1 : t, this.shy = isNaN(e) ? 0 : e, this.shx = isNaN(n) ? 0 : n, this.sy = isNaN(r) ? 1 : r, this.tx = isNaN(i) ? 0 : i, this.ty = isNaN(o) ? 0 : o, this;\n };\n\n M.prototype.multiply = function (t) {\n var e = t.sx * this.sx + t.shy * this.shx,\n n = t.sx * this.shy + t.shy * this.sy,\n r = t.shx * this.sx + t.sy * this.shx,\n i = t.shx * this.shy + t.sy * this.sy,\n o = t.tx * this.sx + t.ty * this.shx + this.tx,\n a = t.tx * this.shy + t.ty * this.sy + this.ty;\n return new M(e, n, r, i, o, a);\n }, M.prototype.decompose = function () {\n var t = this.sx,\n e = this.shy,\n n = this.shx,\n r = this.sy,\n i = this.tx,\n o = this.ty,\n a = Math.sqrt(t * t + e * e),\n s = (t /= a) * n + (e /= a) * r;\n n -= t * s, r -= e * s;\n var l = Math.sqrt(n * n + r * r);\n return s /= l, t * (r /= l) < e * (n /= l) && (t = -t, e = -e, s = -s, a = -a), {\n scale: new M(a, 0, 0, l, 0, 0),\n translate: new M(1, 0, 0, 1, i, o),\n rotate: new M(t, e, -e, t, 0, 0),\n skew: new M(1, 0, s, 1, 0, 0)\n };\n }, M.prototype.applyToPoint = function (t) {\n var e = t.x * this.sx + t.y * this.shx + this.tx,\n n = t.x * this.shy + t.y * this.sy + this.ty;\n return new j(e, n);\n }, M.prototype.applyToRectangle = function (t) {\n var e = this.applyToPoint(t),\n n = this.applyToPoint(new j(t.x + t.w, t.y + t.h));\n return new E(e.x, e.y, n.x - e.x, n.y - e.y);\n }, M.prototype.clone = function () {\n var t = this.sx,\n e = this.shy,\n n = this.shx,\n r = this.sy,\n i = this.tx,\n o = this.ty;\n return new M(t, e, n, r, i, o);\n };\n }(lt.API, \"undefined\" != typeof self && self || \"undefined\" != typeof window && window || \"undefined\" != typeof global && global || Function('return typeof this === \"object\" && this.content')() || Function(\"return this\")()),\n /**\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 a = lt.API, o = function o(t) {\n var r, e, n, i, o, a, s, l, h, u;\n\n for (/[^\\x00-\\xFF]/.test(t), e = [], n = 0, i = (t += r = \"\\0\\0\\0\\0\".slice(t.length % 4 || 4)).length; n < i; n += 4) {\n 0 !== (o = (t.charCodeAt(n) << 24) + (t.charCodeAt(n + 1) << 16) + (t.charCodeAt(n + 2) << 8) + t.charCodeAt(n + 3)) ? (a = (o = ((o = ((o = ((o = (o - (u = o % 85)) / 85) - (h = o % 85)) / 85) - (l = o % 85)) / 85) - (s = o % 85)) / 85) % 85, e.push(a + 33, s + 33, l + 33, h + 33, u + 33)) : e.push(122);\n }\n\n return function (t, e) {\n for (var n = r.length; 0 < n; n--) {\n t.pop();\n }\n }(e), String.fromCharCode.apply(String, e) + \"~>\";\n }, s = function s(t) {\n var r,\n e,\n n,\n i,\n o,\n a = String,\n s = \"length\",\n l = \"charCodeAt\",\n h = \"slice\",\n u = \"replace\";\n\n for (t[h](-2), t = t[h](0, -2)[u](/\\s/g, \"\")[u](\"z\", \"!!!!!\"), n = [], i = 0, o = (t += r = \"uuuuu\"[h](t[s] % 5 || 5))[s]; i < o; i += 5) {\n e = 52200625 * (t[l](i) - 33) + 614125 * (t[l](i + 1) - 33) + 7225 * (t[l](i + 2) - 33) + 85 * (t[l](i + 3) - 33) + (t[l](i + 4) - 33), n.push(255 & e >> 24, 255 & e >> 16, 255 & e >> 8, 255 & e);\n }\n\n return function (t, e) {\n for (var n = r[s]; 0 < n; n--) {\n t.pop();\n }\n }(n), a.fromCharCode.apply(a, n);\n }, h = function h(t) {\n for (var e = \"\", n = 0; n < t.length; n += 1) {\n e += (\"0\" + t.charCodeAt(n).toString(16)).slice(-2);\n }\n\n return e += \">\";\n }, u = function u(t) {\n var e = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n if (-1 !== (t = t.replace(/\\s/g, \"\")).indexOf(\">\") && (t = t.substr(0, t.indexOf(\">\"))), t.length % 2 && (t += \"0\"), !1 === e.test(t)) return \"\";\n\n for (var n = \"\", r = 0; r < t.length; r += 2) {\n n += String.fromCharCode(\"0x\" + (t[r] + t[r + 1]));\n }\n\n return n;\n }, c = function c(t, e) {\n e = Object.assign({\n predictor: 1,\n colors: 1,\n bitsPerComponent: 8,\n columns: 1\n }, e);\n\n for (var n, r, i = [], o = t.length; o--;) {\n i[o] = t.charCodeAt(o);\n }\n\n return n = a.adler32cs.from(t), (r = new Deflater(6)).append(new Uint8Array(i)), t = r.flush(), (i = new Uint8Array(t.length + 6)).set(new Uint8Array([120, 156])), i.set(t, 2), i.set(new Uint8Array([255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255]), t.length + 2), t = String.fromCharCode.apply(null, i);\n }, a.processDataByFilters = function (t, e) {\n var n = 0,\n r = t || \"\",\n i = [];\n\n for (\"string\" == typeof (e = e || []) && (e = [e]), n = 0; n < e.length; n += 1) {\n switch (e[n]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n r = s(r), i.push(\"/ASCII85Encode\");\n break;\n\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n r = o(r), i.push(\"/ASCII85Decode\");\n break;\n\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n r = u(r), i.push(\"/ASCIIHexEncode\");\n break;\n\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n r = h(r), i.push(\"/ASCIIHexDecode\");\n break;\n\n case \"FlateEncode\":\n case \"/FlateEncode\":\n r = c(r), i.push(\"/FlateDecode\");\n break;\n\n default:\n throw 'The filter: \"' + e[n] + '\" is not implemented';\n }\n }\n\n return {\n data: r,\n reverseChain: i.reverse().join(\" \")\n };\n }, (\n /**\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 r = lt.API).loadFile = function (t, e, n) {\n var r;\n e = e || !0, n = n || function () {};\n\n try {\n r = function (t, e, n) {\n var r = new XMLHttpRequest(),\n i = [],\n o = 0,\n a = function a(t) {\n var e = t.length,\n n = String.fromCharCode;\n\n for (o = 0; o < e; o += 1) {\n i.push(n(255 & t.charCodeAt(o)));\n }\n\n return i.join(\"\");\n };\n\n if (r.open(\"GET\", t, !e), r.overrideMimeType(\"text/plain; charset=x-user-defined\"), !1 === e && (r.onload = function () {\n return a(this.responseText);\n }), r.send(null), 200 === r.status) return e ? a(r.responseText) : void 0;\n console.warn('Unable to load file \"' + t + '\"');\n }(t, e);\n } catch (t) {\n r = void 0;\n }\n\n return r;\n }, r.loadImageFile = r.loadFile,\n /**\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 i = lt.API, f = \"undefined\" != typeof window && window || \"undefined\" != typeof global && global, g = function g(t) {\n var e = se(t);\n return \"undefined\" === e ? \"undefined\" : \"string\" === e || t instanceof String ? \"string\" : \"number\" === e || t instanceof Number ? \"number\" : \"function\" === e || t instanceof Function ? \"function\" : t && t.constructor === Array ? \"array\" : t && 1 === t.nodeType ? \"element\" : \"object\" === e ? \"object\" : \"unknown\";\n }, m = function m(t, e) {\n var n = document.createElement(t);\n\n if (e.className && (n.className = e.className), e.innerHTML) {\n n.innerHTML = e.innerHTML;\n\n for (var r = n.getElementsByTagName(\"script\"), i = r.length; 0 < i--; null) {\n r[i].parentNode.removeChild(r[i]);\n }\n }\n\n for (var o in e.style) {\n n.style[o] = e.style[o];\n }\n\n return n;\n }, (((y = function t(e) {\n var n = Object.assign(t.convert(Promise.resolve()), JSON.parse(JSON.stringify(t.template))),\n r = t.convert(Promise.resolve(), n);\n return r = (r = r.setProgress(1, t, 1, [t])).set(e);\n }).prototype = Object.create(Promise.prototype)).constructor = y).convert = function (t, e) {\n return t.__proto__ = e || y.prototype, t;\n }, y.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 callback() {}\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: !0,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {}\n }\n }, y.prototype.from = function (t, e) {\n return this.then(function () {\n switch (e = e || function (t) {\n switch (g(t)) {\n case \"string\":\n return \"string\";\n\n case \"element\":\n return \"canvas\" === t.nodeName.toLowerCase ? \"canvas\" : \"element\";\n\n default:\n return \"unknown\";\n }\n }(t)) {\n case \"string\":\n return this.set({\n src: m(\"div\", {\n innerHTML: t\n })\n });\n\n case \"element\":\n return this.set({\n src: t\n });\n\n case \"canvas\":\n return this.set({\n canvas: t\n });\n\n case \"img\":\n return this.set({\n img: t\n });\n\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n }, y.prototype.to = function (t) {\n switch (t) {\n case \"container\":\n return this.toContainer();\n\n case \"canvas\":\n return this.toCanvas();\n\n case \"img\":\n return this.toImg();\n\n case \"pdf\":\n return this.toPdf();\n\n default:\n return this.error(\"Invalid target.\");\n }\n }, y.prototype.toContainer = function () {\n return this.thenList([function () {\n return this.prop.src || this.error(\"Cannot duplicate - no source HTML.\");\n }, function () {\n return this.prop.pageSize || this.setPageSize();\n }]).then(function () {\n var t = {\n position: \"relative\",\n display: \"inline-block\",\n width: Math.max(this.prop.src.clientWidth, this.prop.src.scrollWidth, this.prop.src.offsetWidth) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: \"white\"\n },\n e = function t(e, n) {\n for (var r = 3 === e.nodeType ? document.createTextNode(e.nodeValue) : e.cloneNode(!1), i = e.firstChild; i; i = i.nextSibling) {\n !0 !== n && 1 === i.nodeType && \"SCRIPT\" === i.nodeName || r.appendChild(t(i, n));\n }\n\n return 1 === e.nodeType && (\"CANVAS\" === e.nodeName ? (r.width = e.width, r.height = e.height, r.getContext(\"2d\").drawImage(e, 0, 0)) : \"TEXTAREA\" !== e.nodeName && \"SELECT\" !== e.nodeName || (r.value = e.value), r.addEventListener(\"load\", function () {\n r.scrollTop = e.scrollTop, r.scrollLeft = e.scrollLeft;\n }, !0)), r;\n }(this.prop.src, this.opt.html2canvas.javascriptEnabled);\n\n \"BODY\" === e.tagName && (t.height = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight) + \"px\"), this.prop.overlay = m(\"div\", {\n className: \"html2pdf__overlay\",\n style: {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1e3,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n }\n }), this.prop.container = m(\"div\", {\n className: \"html2pdf__container\",\n style: t\n }), this.prop.container.appendChild(e), this.prop.container.firstChild.appendChild(m(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })), this.prop.container.style.float = \"none\", this.prop.overlay.appendChild(this.prop.container), document.body.appendChild(this.prop.overlay), this.prop.container.firstChild.style.position = \"relative\", this.prop.container.height = Math.max(this.prop.container.firstChild.clientHeight, this.prop.container.firstChild.scrollHeight, this.prop.container.firstChild.offsetHeight) + \"px\";\n });\n }, y.prototype.toCanvas = function () {\n var t = [function () {\n return document.body.contains(this.prop.container) || this.toContainer();\n }];\n return this.thenList(t).then(function () {\n var t = Object.assign({}, this.opt.html2canvas);\n if (delete t.onrendered, this.isHtml2CanvasLoaded()) return html2canvas(this.prop.container, t);\n }).then(function (t) {\n (this.opt.html2canvas.onrendered || function () {})(t), this.prop.canvas = t, document.body.removeChild(this.prop.overlay);\n });\n }, y.prototype.toContext2d = function () {\n var t = [function () {\n return document.body.contains(this.prop.container) || this.toContainer();\n }];\n return this.thenList(t).then(function () {\n var t = this.opt.jsPDF,\n e = Object.assign({\n async: !0,\n allowTaint: !0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15e3,\n logging: !0,\n proxy: null,\n removeContainer: !0,\n foreignObjectRendering: !1,\n useCORS: !1\n }, this.opt.html2canvas);\n if (delete e.onrendered, t.context2d.autoPaging = !0, t.context2d.posX = this.opt.x, t.context2d.posY = this.opt.y, e.windowHeight = e.windowHeight || 0, e.windowHeight = 0 == e.windowHeight ? Math.max(this.prop.container.clientHeight, this.prop.container.scrollHeight, this.prop.container.offsetHeight) : e.windowHeight, this.isHtml2CanvasLoaded()) return html2canvas(this.prop.container, e);\n }).then(function (t) {\n (this.opt.html2canvas.onrendered || function () {})(t), this.prop.canvas = t, document.body.removeChild(this.prop.overlay);\n });\n }, y.prototype.toImg = function () {\n return this.thenList([function () {\n return this.prop.canvas || this.toCanvas();\n }]).then(function () {\n var t = this.prop.canvas.toDataURL(\"image/\" + this.opt.image.type, this.opt.image.quality);\n this.prop.img = document.createElement(\"img\"), this.prop.img.src = t;\n });\n }, y.prototype.toPdf = function () {\n return this.thenList([function () {\n return this.toContext2d();\n }]).then(function () {\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n }, y.prototype.output = function (t, e, n) {\n return \"img\" === (n = n || \"pdf\").toLowerCase() || \"image\" === n.toLowerCase() ? this.outputImg(t, e) : this.outputPdf(t, e);\n }, y.prototype.outputPdf = function (t, e) {\n return this.thenList([function () {\n return this.prop.pdf || this.toPdf();\n }]).then(function () {\n return this.prop.pdf.output(t, e);\n });\n }, y.prototype.outputImg = function (t, e) {\n return this.thenList([function () {\n return this.prop.img || this.toImg();\n }]).then(function () {\n switch (t) {\n case void 0:\n case \"img\":\n return this.prop.img;\n\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n\n case \"datauri\":\n case \"dataurl\":\n return document.location.href = this.prop.img.src;\n\n default:\n throw 'Image output type \"' + t + '\" is not supported.';\n }\n });\n }, y.prototype.isHtml2CanvasLoaded = function () {\n var t = void 0 !== f.html2canvas;\n return t || console.error(\"html2canvas not loaded.\"), t;\n }, y.prototype.save = function (t) {\n if (this.isHtml2CanvasLoaded()) return this.thenList([function () {\n return this.prop.pdf || this.toPdf();\n }]).set(t ? {\n filename: t\n } : null).then(function () {\n this.prop.pdf.save(this.opt.filename);\n });\n }, y.prototype.doCallback = function (t) {\n if (this.isHtml2CanvasLoaded()) return this.thenList([function () {\n return this.prop.pdf || this.toPdf();\n }]).then(function () {\n this.prop.callback(this.prop.pdf);\n });\n }, y.prototype.set = function (e) {\n if (\"object\" !== g(e)) return this;\n var t = Object.keys(e || {}).map(function (t) {\n if (t in y.template.prop) return function () {\n this.prop[t] = e[t];\n };\n\n switch (t) {\n case \"margin\":\n return this.setMargin.bind(this, e.margin);\n\n case \"jsPDF\":\n return function () {\n return this.opt.jsPDF = e.jsPDF, this.setPageSize();\n };\n\n case \"pageSize\":\n return this.setPageSize.bind(this, e.pageSize);\n\n default:\n return function () {\n this.opt[t] = e[t];\n };\n }\n }, this);\n return this.then(function () {\n return this.thenList(t);\n });\n }, y.prototype.get = function (e, n) {\n return this.then(function () {\n var t = e in y.template.prop ? this.prop[e] : this.opt[e];\n return n ? n(t) : t;\n });\n }, y.prototype.setMargin = function (t) {\n return this.then(function () {\n switch (g(t)) {\n case \"number\":\n t = [t, t, t, t];\n\n case \"array\":\n if (2 === t.length && (t = [t[0], t[1], t[0], t[1]]), 4 === t.length) break;\n\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n this.opt.margin = t;\n }).then(this.setPageSize);\n }, y.prototype.setPageSize = function (t) {\n function e(t, e) {\n return Math.floor(t * e / 72 * 96);\n }\n\n return this.then(function () {\n (t = t || lt.getPageSize(this.opt.jsPDF)).hasOwnProperty(\"inner\") || (t.inner = {\n width: t.width - this.opt.margin[1] - this.opt.margin[3],\n height: t.height - this.opt.margin[0] - this.opt.margin[2]\n }, t.inner.px = {\n width: e(t.inner.width, t.k),\n height: e(t.inner.height, t.k)\n }, t.inner.ratio = t.inner.height / t.inner.width), this.prop.pageSize = t;\n });\n }, y.prototype.setProgress = function (t, e, n, r) {\n return null != t && (this.progress.val = t), null != e && (this.progress.state = e), null != n && (this.progress.n = n), null != r && (this.progress.stack = r), this.progress.ratio = this.progress.val / this.progress.state, this;\n }, y.prototype.updateProgress = function (t, e, n, r) {\n return this.setProgress(t ? this.progress.val + t : null, e || null, n ? this.progress.n + n : null, r ? this.progress.stack.concat(r) : null);\n }, y.prototype.then = function (t, e) {\n var n = this;\n return this.thenCore(t, e, function (e, t) {\n return n.updateProgress(null, null, 1, [e]), Promise.prototype.then.call(this, function (t) {\n return n.updateProgress(null, e), t;\n }).then(e, t).then(function (t) {\n return n.updateProgress(1), t;\n });\n });\n }, y.prototype.thenCore = function (t, e, n) {\n n = n || Promise.prototype.then;\n var r = this;\n t && (t = t.bind(r)), e && (e = e.bind(r));\n var i = -1 !== Promise.toString().indexOf(\"[native code]\") && \"Promise\" === Promise.name ? r : y.convert(Object.assign({}, r), Promise.prototype),\n o = n.call(i, t, e);\n return y.convert(o, r.__proto__);\n }, y.prototype.thenExternal = function (t, e) {\n return Promise.prototype.then.call(this, t, e);\n }, y.prototype.thenList = function (t) {\n var e = this;\n return t.forEach(function (t) {\n e = e.thenCore(t);\n }), e;\n }, y.prototype.catch = function (t) {\n t && (t = t.bind(this));\n var e = Promise.prototype.catch.call(this, t);\n return y.convert(e, this);\n }, y.prototype.catchExternal = function (t) {\n return Promise.prototype.catch.call(this, t);\n }, y.prototype.error = function (t) {\n return this.then(function () {\n throw new Error(t);\n });\n }, y.prototype.using = y.prototype.set, y.prototype.saveAs = y.prototype.save, y.prototype.export = y.prototype.output, y.prototype.run = y.prototype.then, lt.getPageSize = function (t, e, n) {\n if (\"object\" === se(t)) {\n var r = t;\n t = r.orientation, e = r.unit || e, n = r.format || n;\n }\n\n e = e || \"mm\", n = n || \"a4\", t = (\"\" + (t || \"P\")).toLowerCase();\n var i = (\"\" + n).toLowerCase(),\n o = {\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 switch (e) {\n case \"pt\":\n var a = 1;\n break;\n\n case \"mm\":\n a = 72 / 25.4;\n break;\n\n case \"cm\":\n a = 72 / 2.54;\n break;\n\n case \"in\":\n a = 72;\n break;\n\n case \"px\":\n a = .75;\n break;\n\n case \"pc\":\n case \"em\":\n a = 12;\n break;\n\n case \"ex\":\n a = 6;\n break;\n\n default:\n throw \"Invalid unit: \" + e;\n }\n\n if (o.hasOwnProperty(i)) var s = o[i][1] / a,\n l = o[i][0] / a;else try {\n s = n[1], l = n[0];\n } catch (t) {\n throw new Error(\"Invalid format: \" + n);\n }\n\n if (\"p\" === t || \"portrait\" === t) {\n if (t = \"p\", s < l) {\n var h = l;\n l = s, s = h;\n }\n } else {\n if (\"l\" !== t && \"landscape\" !== t) throw \"Invalid orientation: \" + t;\n t = \"l\", l < s && (h = l, l = s, s = h);\n }\n\n return {\n width: l,\n height: s,\n unit: e,\n k: a\n };\n }, i.html = function (t, e) {\n (e = e || {}).callback = e.callback || function () {}, e.html2canvas = e.html2canvas || {}, e.html2canvas.canvas = e.html2canvas.canvas || this.canvas, e.jsPDF = e.jsPDF || this, e.jsPDF;\n var n = new y(e);\n return e.worker ? n : n.from(t).doCallback();\n }, lt.API.addJS = function (t) {\n return b = t, this.internal.events.subscribe(\"postPutResources\", function (t) {\n v = this.internal.newObject(), this.internal.out(\"<<\"), this.internal.out(\"/Names [(EmbeddedJS) \" + (v + 1) + \" 0 R]\"), this.internal.out(\">>\"), this.internal.out(\"endobj\"), w = this.internal.newObject(), this.internal.out(\"<<\"), this.internal.out(\"/S /JavaScript\"), this.internal.out(\"/JS (\" + b + \")\"), this.internal.out(\">>\"), this.internal.out(\"endobj\");\n }), this.internal.events.subscribe(\"putCatalog\", function () {\n void 0 !== v && void 0 !== w && this.internal.out(\"/Names <>\");\n }), this;\n }, (\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 x = lt.API).events.push([\"postPutResources\", function () {\n var t = this,\n e = /^(\\d+) 0 obj$/;\n if (0 < this.outline.root.children.length) for (var n = t.outline.render().split(/\\r\\n/), r = 0; r < n.length; r++) {\n var i = n[r],\n o = e.exec(i);\n\n if (null != o) {\n var a = o[1];\n t.internal.newObjectDeferredBegin(a, !1);\n }\n\n t.internal.write(i);\n }\n\n if (this.outline.createNamedDestinations) {\n var s = this.internal.pages.length,\n l = [];\n\n for (r = 0; r < s; r++) {\n var h = t.internal.newObject();\n l.push(h);\n var u = t.internal.getPageInfo(r + 1);\n t.internal.write(\"<< /D[\" + u.objId + \" 0 R /XYZ null null null]>> endobj\");\n }\n\n var c = t.internal.newObject();\n\n for (t.internal.write(\"<< /Names [ \"), r = 0; r < l.length; r++) {\n t.internal.write(\"(page_\" + (r + 1) + \")\" + l[r] + \" 0 R\");\n }\n\n t.internal.write(\" ] >>\", \"endobj\"), t.internal.newObject(), t.internal.write(\"<< /Dests \" + c + \" 0 R\"), t.internal.write(\">>\", \"endobj\");\n }\n }]), x.events.push([\"putCatalog\", function () {\n 0 < this.outline.root.children.length && (this.internal.write(\"/Outlines\", this.outline.makeRef(this.outline.root)), this.outline.createNamedDestinations && this.internal.write(\"/Names \" + namesOid + \" 0 R\"));\n }]), x.events.push([\"initialized\", function () {\n var a = this;\n a.outline = {\n createNamedDestinations: !1,\n root: {\n children: []\n }\n }, a.outline.add = function (t, e, n) {\n var r = {\n title: e,\n options: n,\n children: []\n };\n return null == t && (t = this.root), t.children.push(r), r;\n }, a.outline.render = function () {\n return this.ctx = {}, this.ctx.val = \"\", this.ctx.pdf = a, this.genIds_r(this.root), this.renderRoot(this.root), this.renderItems(this.root), this.ctx.val;\n }, a.outline.genIds_r = function (t) {\n t.id = a.internal.newObjectDeferred();\n\n for (var e = 0; e < t.children.length; e++) {\n this.genIds_r(t.children[e]);\n }\n }, a.outline.renderRoot = function (t) {\n this.objStart(t), this.line(\"/Type /Outlines\"), 0 < t.children.length && (this.line(\"/First \" + this.makeRef(t.children[0])), this.line(\"/Last \" + this.makeRef(t.children[t.children.length - 1]))), this.line(\"/Count \" + this.count_r({\n count: 0\n }, t)), this.objEnd();\n }, a.outline.renderItems = function (t) {\n this.ctx.pdf.internal.getCoordinateString;\n\n for (var e = this.ctx.pdf.internal.getVerticalCoordinateString, n = 0; n < t.children.length; n++) {\n var r = t.children[n];\n this.objStart(r), this.line(\"/Title \" + this.makeString(r.title)), this.line(\"/Parent \" + this.makeRef(t)), 0 < n && this.line(\"/Prev \" + this.makeRef(t.children[n - 1])), n < t.children.length - 1 && this.line(\"/Next \" + this.makeRef(t.children[n + 1])), 0 < r.children.length && (this.line(\"/First \" + this.makeRef(r.children[0])), this.line(\"/Last \" + this.makeRef(r.children[r.children.length - 1])));\n var i = this.count = this.count_r({\n count: 0\n }, r);\n\n if (0 < i && this.line(\"/Count \" + i), r.options && r.options.pageNumber) {\n var o = a.internal.getPageInfo(r.options.pageNumber);\n this.line(\"/Dest [\" + o.objId + \" 0 R /XYZ 0 \" + e(0) + \" 0]\");\n }\n\n this.objEnd();\n }\n\n for (n = 0; n < t.children.length; n++) {\n r = t.children[n], this.renderItems(r);\n }\n }, a.outline.line = function (t) {\n this.ctx.val += t + \"\\r\\n\";\n }, a.outline.makeRef = function (t) {\n return t.id + \" 0 R\";\n }, a.outline.makeString = function (t) {\n return \"(\" + a.internal.pdfEscape(t) + \")\";\n }, a.outline.objStart = function (t) {\n this.ctx.val += \"\\r\\n\" + t.id + \" 0 obj\\r\\n<<\\r\\n\";\n }, a.outline.objEnd = function (t) {\n this.ctx.val += \">> \\r\\nendobj\\r\\n\";\n }, a.outline.count_r = function (t, e) {\n for (var n = 0; n < e.children.length; n++) {\n t.count++, this.count_r(t, e.children[n]);\n }\n\n return t.count;\n };\n }]),\n /**\n * @license\n * \n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * \n * ====================================================================\n */\n I = lt.API, C = function C() {\n var t = \"function\" == typeof Deflater;\n if (!t) throw new Error(\"requires deflate.js for compression\");\n return t;\n }, B = function B(t, e, n, r) {\n var i = 5,\n o = E;\n\n switch (r) {\n case I.image_compression.FAST:\n i = 3, o = j;\n break;\n\n case I.image_compression.MEDIUM:\n i = 6, o = M;\n break;\n\n case I.image_compression.SLOW:\n i = 9, o = O;\n }\n\n t = A(t, e, n, o);\n var a = new Uint8Array(N(i)),\n s = L(t),\n l = new Deflater(i),\n h = l.append(t),\n u = l.flush(),\n c = a.length + h.length + u.length,\n f = new Uint8Array(c + 4);\n return f.set(a), f.set(h, a.length), f.set(u, a.length + h.length), f[c++] = s >>> 24 & 255, f[c++] = s >>> 16 & 255, f[c++] = s >>> 8 & 255, f[c++] = 255 & s, I.arrayBufferToBinaryString(f);\n }, N = function N(t, e) {\n var n = Math.LOG2E * Math.log(32768) - 8 << 4 | 8,\n r = n << 8;\n return r |= Math.min(3, (e - 1 & 255) >> 1) << 6, r |= 0, [n, 255 & (r += 31 - r % 31)];\n }, L = function L(t, e) {\n for (var n, r = 1, i = 0, o = t.length, a = 0; 0 < o;) {\n for (o -= n = e < o ? e : o; i += r += t[a++], --n;) {\n ;\n }\n\n r %= 65521, i %= 65521;\n }\n\n return (i << 16 | r) >>> 0;\n }, A = function A(t, e, n, r) {\n for (var i, o, a, s = t.length / e, l = new Uint8Array(t.length + s), h = T(), u = 0; u < s; u++) {\n if (a = u * e, i = t.subarray(a, a + e), r) l.set(r(i, n, o), a + u);else {\n for (var c = 0, f = h.length, p = []; c < f; c++) {\n p[c] = h[c](i, n, o);\n }\n\n var d = R(p.concat());\n l.set(p[d], a + u);\n }\n o = i;\n }\n\n return l;\n }, S = function S(t, e, n) {\n var r = Array.apply([], t);\n return r.unshift(0), r;\n }, j = function j(t, e, n) {\n var r,\n i = [],\n o = 0,\n a = t.length;\n\n for (i[0] = 1; o < a; o++) {\n r = t[o - e] || 0, i[o + 1] = t[o] - r + 256 & 255;\n }\n\n return i;\n }, E = function E(t, e, n) {\n var r,\n i = [],\n o = 0,\n a = t.length;\n\n for (i[0] = 2; o < a; o++) {\n r = n && n[o] || 0, i[o + 1] = t[o] - r + 256 & 255;\n }\n\n return i;\n }, M = function M(t, e, n) {\n var r,\n i,\n o = [],\n a = 0,\n s = t.length;\n\n for (o[0] = 3; a < s; a++) {\n r = t[a - e] || 0, i = n && n[a] || 0, o[a + 1] = t[a] + 256 - (r + i >>> 1) & 255;\n }\n\n return o;\n }, O = function O(t, e, n) {\n var r,\n i,\n o,\n a,\n s = [],\n l = 0,\n h = t.length;\n\n for (s[0] = 4; l < h; l++) {\n r = t[l - e] || 0, i = n && n[l] || 0, o = n && n[l - e] || 0, a = q(r, i, o), s[l + 1] = t[l] - a + 256 & 255;\n }\n\n return s;\n }, q = function q(t, e, n) {\n var r = t + e - n,\n i = Math.abs(r - t),\n o = Math.abs(r - e),\n a = Math.abs(r - n);\n return i <= o && i <= a ? t : o <= a ? e : n;\n }, T = function T() {\n return [S, j, E, M, O];\n }, R = function R(t) {\n for (var e, n, r, i = 0, o = t.length; i < o;) {\n ((e = D(t[i].slice(1))) < n || !n) && (n = e, r = i), i++;\n }\n\n return r;\n }, D = function D(t) {\n for (var e = 0, n = t.length, r = 0; e < n;) {\n r += Math.abs(t[e++]);\n }\n\n return r;\n }, I.processPNG = function (t, e, n, r, i) {\n var o,\n a,\n s,\n l,\n h,\n u,\n c = this.color_spaces.DEVICE_RGB,\n f = this.decode.FLATE_DECODE,\n p = 8;\n\n if (this.isArrayBuffer(t) && (t = new Uint8Array(t)), this.isArrayBufferView(t)) {\n if (\"function\" != typeof PNG || \"function\" != typeof kt) throw new Error(\"PNG support requires png.js and zlib.js\");\n\n if (t = (o = new PNG(t)).imgData, p = o.bits, c = o.colorSpace, l = o.colors, -1 !== [4, 6].indexOf(o.colorType)) {\n if (8 === o.bits) for (var d, g = (_ = 32 == o.pixelBitlength ? new Uint32Array(o.decodePixels().buffer) : 16 == o.pixelBitlength ? new Uint16Array(o.decodePixels().buffer) : new Uint8Array(o.decodePixels().buffer)).length, m = new Uint8Array(g * o.colors), y = new Uint8Array(g), v = o.pixelBitlength - o.bits, w = 0, b = 0; w < g; w++) {\n for (x = _[w], d = 0; d < v;) {\n m[b++] = x >>> d & 255, d += o.bits;\n }\n\n y[w] = x >>> d & 255;\n }\n\n if (16 === o.bits) {\n g = (_ = new Uint32Array(o.decodePixels().buffer)).length, m = new Uint8Array(g * (32 / o.pixelBitlength) * o.colors), y = new Uint8Array(g * (32 / o.pixelBitlength));\n\n for (var x, N = 1 < o.colors, L = b = w = 0; w < g;) {\n x = _[w++], m[b++] = x >>> 0 & 255, N && (m[b++] = x >>> 16 & 255, x = _[w++], m[b++] = x >>> 0 & 255), y[L++] = x >>> 16 & 255;\n }\n\n p = 8;\n }\n\n r !== I.image_compression.NONE && C() ? (t = B(m, o.width * o.colors, o.colors, r), u = B(y, o.width, 1, r)) : (t = m, u = y, f = null);\n }\n\n if (3 === o.colorType && (c = this.color_spaces.INDEXED, h = o.palette, o.transparency.indexed)) {\n var A = o.transparency.indexed,\n S = 0;\n\n for (w = 0, g = A.length; w < g; ++w) {\n S += A[w];\n }\n\n if ((S /= 255) == g - 1 && -1 !== A.indexOf(0)) s = [A.indexOf(0)];else if (S !== g) {\n var _ = o.decodePixels();\n\n for (y = new Uint8Array(_.length), w = 0, g = _.length; w < g; w++) {\n y[w] = A[_[w]];\n }\n\n u = B(y, o.width, 1);\n }\n }\n\n var F = function (t) {\n var e;\n\n switch (t) {\n case I.image_compression.FAST:\n e = 11;\n break;\n\n case I.image_compression.MEDIUM:\n e = 13;\n break;\n\n case I.image_compression.SLOW:\n e = 14;\n break;\n\n default:\n e = 12;\n }\n\n return e;\n }(r);\n\n return a = f === this.decode.FLATE_DECODE ? \"/Predictor \" + F + \" /Colors \" + l + \" /BitsPerComponent \" + p + \" /Columns \" + o.width : \"/Colors \" + l + \" /BitsPerComponent \" + p + \" /Columns \" + o.width, (this.isArrayBuffer(t) || this.isArrayBufferView(t)) && (t = this.arrayBufferToBinaryString(t)), (u && this.isArrayBuffer(u) || this.isArrayBufferView(u)) && (u = this.arrayBufferToBinaryString(u)), this.createImageInfo(t, o.width, o.height, c, p, f, e, n, a, s, h, u, F);\n }\n\n throw new Error(\"Unsupported PNG image data, try using JPEG instead.\");\n }, (\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 U = lt.API).processGIF89A = function (t, e, n, r, i) {\n var o = new At(t),\n a = o.width,\n s = o.height,\n l = [];\n o.decodeAndBlitFrameRGBA(0, l);\n var h = {\n data: l,\n width: a,\n height: s\n },\n u = new _t(100).encode(h, 100);\n return U.processJPEG.call(this, u, e, n, r);\n }, U.processGIF87A = U.processGIF89A, (\n /**\n * Copyright (c) 2018 Aras Abbasi \n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n z = lt.API).processBMP = function (t, e, n, r, i) {\n var o = new Ft(t, !1),\n a = o.width,\n s = o.height,\n l = {\n data: o.getData(),\n width: a,\n height: s\n },\n h = new _t(100).encode(l, 100);\n return z.processJPEG.call(this, h, e, n, r);\n }, lt.API.setLanguage = function (t) {\n return void 0 === this.internal.languageSettings && (this.internal.languageSettings = {}, this.internal.languageSettings.isSubscribed = !1), void 0 !== {\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 }[t] && (this.internal.languageSettings.languageCode = t, !1 === this.internal.languageSettings.isSubscribed && (this.internal.events.subscribe(\"putCatalog\", function () {\n this.internal.write(\"/Lang (\" + this.internal.languageSettings.languageCode + \")\");\n }), this.internal.languageSettings.isSubscribed = !0)), this;\n },\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 * \n * ====================================================================\n */\n H = lt.API, W = H.getCharWidthsArray = function (t, e) {\n var n,\n r,\n i,\n o = (e = e || {}).font || this.internal.getFont(),\n a = e.fontSize || this.internal.getFontSize(),\n s = e.charSpace || this.internal.getCharSpace(),\n l = e.widths ? e.widths : o.metadata.Unicode.widths,\n h = l.fof ? l.fof : 1,\n u = e.kerning ? e.kerning : o.metadata.Unicode.kerning,\n c = u.fof ? u.fof : 1,\n f = 0,\n p = l[0] || h,\n d = [];\n\n for (n = 0, r = t.length; n < r; n++) {\n i = t.charCodeAt(n), \"function\" == typeof o.metadata.widthOfString ? d.push((o.metadata.widthOfGlyph(o.metadata.characterToGlyph(i)) + s * (1e3 / a) || 0) / 1e3) : d.push((l[i] || p) / h + (u[i] && u[i][f] || 0) / c), f = i;\n }\n\n return d;\n }, V = H.getArraySum = function (t) {\n for (var e = t.length, n = 0; e;) {\n n += t[--e];\n }\n\n return n;\n }, G = H.getStringUnitWidth = function (t, e) {\n var n = (e = e || {}).fontSize || this.internal.getFontSize(),\n r = e.font || this.internal.getFont(),\n i = e.charSpace || this.internal.getCharSpace();\n return \"function\" == typeof r.metadata.widthOfString ? r.metadata.widthOfString(t, n, i) / n : V(W.apply(this, arguments));\n }, Y = function Y(t, e, n, r) {\n for (var i = [], o = 0, a = t.length, s = 0; o !== a && s + e[o] < n;) {\n s += e[o], o++;\n }\n\n i.push(t.slice(0, o));\n var l = o;\n\n for (s = 0; o !== a;) {\n s + e[o] > r && (i.push(t.slice(l, o)), s = 0, l = o), s += e[o], o++;\n }\n\n return l !== o && i.push(t.slice(l, o)), i;\n }, J = function J(t, e, n) {\n n || (n = {});\n var r,\n i,\n o,\n a,\n s,\n l,\n h = [],\n u = [h],\n c = n.textIndent || 0,\n f = 0,\n p = 0,\n d = t.split(\" \"),\n g = W.apply(this, [\" \", n])[0];\n\n if (l = -1 === n.lineIndent ? d[0].length + 2 : n.lineIndent || 0) {\n var m = Array(l).join(\" \"),\n y = [];\n d.map(function (t) {\n 1 < (t = t.split(/\\s*\\n/)).length ? y = y.concat(t.map(function (t, e) {\n return (e && t.length ? \"\\n\" : \"\") + t;\n })) : y.push(t[0]);\n }), d = y, l = G.apply(this, [m, n]);\n }\n\n for (o = 0, a = d.length; o < a; o++) {\n var v = 0;\n\n if (r = d[o], l && \"\\n\" == r[0] && (r = r.substr(1), v = 1), i = W.apply(this, [r, n]), e < c + f + (p = V(i)) || v) {\n if (e < p) {\n for (s = Y.apply(this, [r, i, e - (c + f), e]), h.push(s.shift()), h = [s.pop()]; s.length;) {\n u.push([s.shift()]);\n }\n\n p = V(i.slice(r.length - (h[0] ? h[0].length : 0)));\n } else h = [r];\n\n u.push(h), c = p + l, f = g;\n } else h.push(r), c += f + p, f = g;\n }\n\n if (l) var w = function w(t, e) {\n return (e ? m : \"\") + t.join(\" \");\n };else w = function w(t) {\n return t.join(\" \");\n };\n return u.map(w);\n }, H.splitTextToSize = function (t, e, n) {\n var r,\n i = (n = n || {}).fontSize || this.internal.getFontSize(),\n o = function (t) {\n var e = {\n 0: 1\n },\n n = {};\n if (t.widths && t.kerning) return {\n widths: t.widths,\n kerning: t.kerning\n };\n var r = this.internal.getFont(t.fontName, t.fontStyle),\n i = \"Unicode\";\n return r.metadata[i] ? {\n widths: r.metadata[i].widths || e,\n kerning: r.metadata[i].kerning || n\n } : {\n font: r.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }.call(this, n);\n\n r = Array.isArray(t) ? t : t.split(/\\r?\\n/);\n var a = 1 * this.internal.scaleFactor * e / i;\n o.textIndent = n.textIndent ? 1 * n.textIndent * this.internal.scaleFactor / i : 0, o.lineIndent = n.lineIndent;\n var s,\n l,\n h = [];\n\n for (s = 0, l = r.length; s < l; s++) {\n h = h.concat(J.apply(this, [r[s], a, o]));\n }\n\n return h;\n },\n /** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * MIT license.\n * \n * ====================================================================\n */\n X = lt.API, Z = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: (K = function K(t) {\n for (var e = \"klmnopqrstuvwxyz\", n = {}, r = 0; r < e.length; r++) {\n n[e[r]] = \"0123456789abcdef\"[r];\n }\n\n var i,\n o,\n a,\n s,\n l,\n h = {},\n u = 1,\n c = h,\n f = [],\n p = \"\",\n d = \"\",\n g = t.length - 1;\n\n for (r = 1; r != g;) {\n l = t[r], r += 1, \"'\" == l ? o = o ? (s = o.join(\"\"), i) : [] : o ? o.push(l) : \"{\" == l ? (f.push([c, s]), c = {}, s = i) : \"}\" == l ? ((a = f.pop())[0][a[1]] = c, s = i, c = a[0]) : \"-\" == l ? u = -1 : s === i ? n.hasOwnProperty(l) ? (p += n[l], s = parseInt(p, 16) * u, u = 1, p = \"\") : p += l : n.hasOwnProperty(l) ? (d += n[l], c[s] = parseInt(d, 16) * u, u = 1, s = i, d = \"\") : d += l;\n }\n\n return h;\n })(\"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\")\n }, Q = {\n Unicode: {\n Courier: Z,\n \"Courier-Bold\": Z,\n \"Courier-BoldOblique\": Z,\n \"Courier-Oblique\": Z,\n Helvetica: Z,\n \"Helvetica-Bold\": Z,\n \"Helvetica-BoldOblique\": Z,\n \"Helvetica-Oblique\": Z,\n \"Times-Roman\": Z,\n \"Times-Bold\": Z,\n \"Times-BoldItalic\": Z,\n \"Times-Italic\": Z\n }\n }, $ = {\n Unicode: {\n \"Courier-Oblique\": K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-BoldItalic\": K(\"{'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 \"Helvetica-Bold\": K(\"{'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 Courier: K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Bold\": K(\"{'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 Symbol: K(\"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"),\n Helvetica: K(\"{'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 \"Helvetica-BoldOblique\": K(\"{'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 ZapfDingbats: K(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": K(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": K(\"{'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 \"Times-Roman\": K(\"{'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 \"Helvetica-Oblique\": K(\"{'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 }, X.events.push([\"addFont\", function (t) {\n var e,\n n,\n r,\n i = t.font,\n o = \"Unicode\";\n (e = $[o][i.postScriptName]) && ((n = i.metadata[o] ? i.metadata[o] : i.metadata[o] = {}).widths = e.widths, n.kerning = e.kerning), (r = Q[o][i.postScriptName]) && ((n = i.metadata[o] ? i.metadata[o] : i.metadata[o] = {}).encoding = r).codePages && r.codePages.length && (i.encoding = r.codePages[0]);\n }]),\n /**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n tt = lt, \"undefined\" != typeof self && self || \"undefined\" != typeof global && global || \"undefined\" != typeof window && window || Function(\"return this\")(), tt.API.events.push([\"addFont\", function (t) {\n var e = t.font,\n n = t.instance;\n\n if (void 0 !== n && n.existsFileInVFS(e.postScriptName)) {\n var r = n.getFileFromVFS(e.postScriptName);\n if (\"string\" != typeof r) throw new Error(\"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" + e.postScriptName + \"').\");\n e.metadata = tt.API.TTFFont.open(e.postScriptName, e.fontName, r, e.encoding), e.metadata.Unicode = e.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n }, e.metadata.glyIdsUsed = [0];\n } else if (!1 === e.isStandardFont) throw new Error(\"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" + e.postScriptName + \"').\");\n }]), (\n /** @license\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * \n * \n * ====================================================================\n */\n et = lt.API).addSvg = function (t, e, n, r, i) {\n if (void 0 === e || void 0 === n) throw new Error(\"addSVG needs values for 'x' and 'y'\");\n\n function o(t) {\n for (var e = parseFloat(t[1]), n = parseFloat(t[2]), r = [], i = 3, o = t.length; i < o;) {\n \"c\" === t[i] ? (r.push([parseFloat(t[i + 1]), parseFloat(t[i + 2]), parseFloat(t[i + 3]), parseFloat(t[i + 4]), parseFloat(t[i + 5]), parseFloat(t[i + 6])]), i += 7) : \"l\" === t[i] ? (r.push([parseFloat(t[i + 1]), parseFloat(t[i + 2])]), i += 3) : i += 1;\n }\n\n return [e, n, r];\n }\n\n var a,\n s,\n l,\n h,\n u,\n c,\n f,\n p,\n d = (h = document, p = h.createElement(\"iframe\"), u = \".jsPDF_sillysvg_iframe {display:none;position:absolute;}\", (f = (c = h).createElement(\"style\")).type = \"text/css\", f.styleSheet ? f.styleSheet.cssText = u : f.appendChild(c.createTextNode(u)), c.getElementsByTagName(\"head\")[0].appendChild(f), p.name = \"childframe\", p.setAttribute(\"width\", 0), p.setAttribute(\"height\", 0), p.setAttribute(\"frameborder\", \"0\"), p.setAttribute(\"scrolling\", \"no\"), p.setAttribute(\"seamless\", \"seamless\"), p.setAttribute(\"class\", \"jsPDF_sillysvg_iframe\"), h.body.appendChild(p), p),\n g = (a = t, (l = ((s = d).contentWindow || s.contentDocument).document).write(a), l.close(), l.getElementsByTagName(\"svg\")[0]),\n m = [1, 1],\n y = parseFloat(g.getAttribute(\"width\")),\n v = parseFloat(g.getAttribute(\"height\"));\n y && v && (r && i ? m = [r / y, i / v] : r ? m = [r / y, r / y] : i && (m = [i / v, i / v]));\n var w,\n b,\n x,\n N,\n L = g.childNodes;\n\n for (w = 0, b = L.length; w < b; w++) {\n (x = L[w]).tagName && \"PATH\" === x.tagName.toUpperCase() && ((N = o(x.getAttribute(\"d\").split(\" \")))[0] = N[0] * m[0] + e, N[1] = N[1] * m[1] + n, this.lines.call(this, N[2], N[0], N[1], m));\n }\n\n return this;\n }, et.addSVG = et.addSvg, et.addSvgAsImage = function (t, e, n, r, i, o, a, s) {\n if (isNaN(e) || isNaN(n)) throw console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments), new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n if (isNaN(r) || isNaN(i)) throw console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments), new Error(\"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\");\n var l = document.createElement(\"canvas\");\n l.width = r, l.height = i;\n var h = l.getContext(\"2d\");\n return h.fillStyle = \"#fff\", h.fillRect(0, 0, l.width, l.height), canvg(l, t, {\n ignoreMouse: !0,\n ignoreAnimation: !0,\n ignoreDimensions: !0,\n ignoreClear: !0\n }), this.addImage(l.toDataURL(\"image/jpeg\", 1), e, n, r, i, a, s), this;\n }, lt.API.putTotalPages = function (t) {\n var e,\n n = 0;\n n = parseInt(this.internal.getFont().id.substr(1), 10) < 15 ? (e = new RegExp(t, \"g\"), this.internal.getNumberOfPages()) : (e = new RegExp(this.pdfEscape16(t, this.internal.getFont()), \"g\"), this.pdfEscape16(this.internal.getNumberOfPages() + \"\", this.internal.getFont()));\n\n for (var r = 1; r <= this.internal.getNumberOfPages(); r++) {\n for (var i = 0; i < this.internal.pages[r].length; i++) {\n this.internal.pages[r][i] = this.internal.pages[r][i].replace(e, n);\n }\n }\n\n return this;\n }, lt.API.viewerPreferences = function (t, e) {\n var n;\n t = t || {}, e = e || !1;\n var r,\n i,\n o = {\n HideToolbar: {\n defaultValue: !1,\n value: !1,\n type: \"boolean\",\n explicitSet: !1,\n valueSet: [!0, !1],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: !1,\n value: !1,\n type: \"boolean\",\n explicitSet: !1,\n valueSet: [!0, !1],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: !1,\n value: !1,\n type: \"boolean\",\n explicitSet: !1,\n valueSet: [!0, !1],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: !1,\n value: !1,\n type: \"boolean\",\n explicitSet: !1,\n valueSet: [!0, !1],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: !1,\n value: !1,\n type: \"boolean\",\n explicitSet: !1,\n valueSet: [!0, !1],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: !1,\n value: !1,\n type: \"boolean\",\n explicitSet: !1,\n valueSet: [!0, !1],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: !1,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: !1,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: !1,\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: !1,\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: !1,\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: !1,\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: !1,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: !1,\n valueSet: [\"Simplex\", \"DuplexFlipShortEdge\", \"DuplexFlipLongEdge\", \"none\"],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: !1,\n value: !1,\n type: \"boolean\",\n explicitSet: !1,\n valueSet: [!0, !1],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: !1,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: !1,\n valueSet: null,\n pdfVersion: 1.7\n }\n },\n a = Object.keys(o),\n s = [],\n l = 0,\n h = 0,\n u = 0,\n c = !0;\n\n function f(t, e) {\n var n,\n r = !1;\n\n for (n = 0; n < t.length; n += 1) {\n t[n] === e && (r = !0);\n }\n\n return r;\n }\n\n if (void 0 === this.internal.viewerpreferences && (this.internal.viewerpreferences = {}, this.internal.viewerpreferences.configuration = JSON.parse(JSON.stringify(o)), this.internal.viewerpreferences.isSubscribed = !1), n = this.internal.viewerpreferences.configuration, \"reset\" === t || !0 === e) {\n var p = a.length;\n\n for (u = 0; u < p; u += 1) {\n n[a[u]].value = n[a[u]].defaultValue, n[a[u]].explicitSet = !1;\n }\n }\n\n if (\"object\" === se(t)) for (r in t) {\n if (i = t[r], f(a, r) && void 0 !== i) {\n if (\"boolean\" === n[r].type && \"boolean\" == typeof i) n[r].value = i;else if (\"name\" === n[r].type && f(n[r].valueSet, i)) n[r].value = i;else if (\"integer\" === n[r].type && Number.isInteger(i)) n[r].value = i;else if (\"array\" === n[r].type) {\n for (l = 0; l < i.length; l += 1) {\n if (c = !0, 1 === i[l].length && \"number\" == typeof i[l][0]) s.push(String(i[l] - 1));else if (1 < i[l].length) {\n for (h = 0; h < i[l].length; h += 1) {\n \"number\" != typeof i[l][h] && (c = !1);\n }\n\n !0 === c && s.push([i[l][0] - 1, i[l][1] - 1].join(\" \"));\n }\n }\n\n n[r].value = \"[\" + s.join(\" \") + \"]\";\n } else n[r].value = n[r].defaultValue;\n n[r].explicitSet = !0;\n }\n }\n return !1 === this.internal.viewerpreferences.isSubscribed && (this.internal.events.subscribe(\"putCatalog\", function () {\n var t,\n e = [];\n\n for (t in n) {\n !0 === n[t].explicitSet && (\"name\" === n[t].type ? e.push(\"/\" + t + \" /\" + n[t].value) : e.push(\"/\" + t + \" \" + n[t].value));\n }\n\n 0 !== e.length && this.internal.write(\"/ViewerPreferences\\n<<\\n\" + e.join(\"\\n\") + \"\\n>>\");\n }), this.internal.viewerpreferences.isSubscribed = !0), this.internal.viewerpreferences.configuration = n, this;\n },\n /** ==================================================================== \n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n * \n * \n * ====================================================================\n */\n nt = lt.API, ot = it = rt = \"\", nt.addMetadata = function (t, e) {\n return it = e || \"http://jspdf.default.namespaceuri/\", rt = t, this.internal.events.subscribe(\"postPutResources\", function () {\n if (rt) {\n var t = '',\n e = unescape(encodeURIComponent('')),\n n = unescape(encodeURIComponent(t)),\n r = unescape(encodeURIComponent(rt)),\n i = unescape(encodeURIComponent(\"\")),\n o = unescape(encodeURIComponent(\"\")),\n a = n.length + r.length + i.length + e.length + o.length;\n ot = this.internal.newObject(), this.internal.write(\"<< /Type /Metadata /Subtype /XML /Length \" + a + \" >>\"), this.internal.write(\"stream\"), this.internal.write(e + n + r + i + o), this.internal.write(\"endstream\"), this.internal.write(\"endobj\");\n } else ot = \"\";\n }), this.internal.events.subscribe(\"putCatalog\", function () {\n ot && this.internal.write(\"/Metadata \" + ot + \" 0 R\");\n }), this;\n }, function (f, t) {\n var e = f.API;\n\n var m = e.pdfEscape16 = function (t, e) {\n for (var n, r = e.metadata.Unicode.widths, i = [\"\", \"0\", \"00\", \"000\", \"0000\"], o = [\"\"], a = 0, s = t.length; a < s; ++a) {\n if (n = e.metadata.characterToGlyph(t.charCodeAt(a)), e.metadata.glyIdsUsed.push(n), e.metadata.toUnicode[n] = t.charCodeAt(a), -1 == r.indexOf(n) && (r.push(n), r.push([parseInt(e.metadata.widthOfGlyph(n), 10)])), \"0\" == n) return o.join(\"\");\n n = n.toString(16), o.push(i[4 - n.length], n);\n }\n\n return o.join(\"\");\n },\n p = function p(t) {\n var e, n, r, i, o, a, s;\n\n for (o = \"/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>\\nendcodespacerange\", r = [], a = 0, s = (n = Object.keys(t).sort(function (t, e) {\n return t - e;\n })).length; a < s; a++) {\n e = n[a], 100 <= r.length && (o += \"\\n\" + r.length + \" beginbfchar\\n\" + r.join(\"\\n\") + \"\\nendbfchar\", r = []), i = (\"0000\" + t[e].toString(16)).slice(-4), e = (\"0000\" + (+e).toString(16)).slice(-4), r.push(\"<\" + e + \"><\" + i + \">\");\n }\n\n return r.length && (o += \"\\n\" + r.length + \" beginbfchar\\n\" + r.join(\"\\n\") + \"\\nendbfchar\\n\"), o += \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n };\n\n e.events.push([\"putFont\", function (t) {\n !function (t, e, n, r) {\n if (t.metadata instanceof f.API.TTFFont && \"Identity-H\" === t.encoding) {\n for (var i = t.metadata.Unicode.widths, o = t.metadata.subset.encode(t.metadata.glyIdsUsed, 1), a = \"\", s = 0; s < o.length; s++) {\n a += String.fromCharCode(o[s]);\n }\n\n var l = n();\n r({\n data: a,\n addLength1: !0\n }), e(\"endobj\");\n var h = n();\n r({\n data: p(t.metadata.toUnicode),\n addLength1: !0\n }), e(\"endobj\");\n var u = n();\n e(\"<<\"), e(\"/Type /FontDescriptor\"), e(\"/FontName /\" + t.fontName), e(\"/FontFile2 \" + l + \" 0 R\"), e(\"/FontBBox \" + f.API.PDFObject.convert(t.metadata.bbox)), e(\"/Flags \" + t.metadata.flags), e(\"/StemV \" + t.metadata.stemV), e(\"/ItalicAngle \" + t.metadata.italicAngle), e(\"/Ascent \" + t.metadata.ascender), e(\"/Descent \" + t.metadata.decender), e(\"/CapHeight \" + t.metadata.capHeight), e(\">>\"), e(\"endobj\");\n var c = n();\n e(\"<<\"), e(\"/Type /Font\"), e(\"/BaseFont /\" + t.fontName), e(\"/FontDescriptor \" + u + \" 0 R\"), e(\"/W \" + f.API.PDFObject.convert(i)), e(\"/CIDToGIDMap /Identity\"), e(\"/DW 1000\"), e(\"/Subtype /CIDFontType2\"), e(\"/CIDSystemInfo\"), e(\"<<\"), e(\"/Supplement 0\"), e(\"/Registry (Adobe)\"), e(\"/Ordering (\" + t.encoding + \")\"), e(\">>\"), e(\">>\"), e(\"endobj\"), t.objectNumber = n(), e(\"<<\"), e(\"/Type /Font\"), e(\"/Subtype /Type0\"), e(\"/ToUnicode \" + h + \" 0 R\"), e(\"/BaseFont /\" + t.fontName), e(\"/Encoding /\" + t.encoding), e(\"/DescendantFonts [\" + c + \" 0 R]\"), e(\">>\"), e(\"endobj\"), t.isAlreadyPutted = !0;\n }\n }(t.font, t.out, t.newObject, t.putStream);\n }]);\n e.events.push([\"putFont\", function (t) {\n !function (t, e, n, r) {\n if (t.metadata instanceof f.API.TTFFont && \"WinAnsiEncoding\" === t.encoding) {\n t.metadata.Unicode.widths;\n\n for (var i = t.metadata.rawData, o = \"\", a = 0; a < i.length; a++) {\n o += String.fromCharCode(i[a]);\n }\n\n var s = n();\n r({\n data: o,\n addLength1: !0\n }), e(\"endobj\");\n var l = n();\n r({\n data: p(t.metadata.toUnicode),\n addLength1: !0\n }), e(\"endobj\");\n var h = n();\n\n for (e(\"<<\"), e(\"/Descent \" + t.metadata.decender), e(\"/CapHeight \" + t.metadata.capHeight), e(\"/StemV \" + t.metadata.stemV), e(\"/Type /FontDescriptor\"), e(\"/FontFile2 \" + s + \" 0 R\"), e(\"/Flags 96\"), e(\"/FontBBox \" + f.API.PDFObject.convert(t.metadata.bbox)), e(\"/FontName /\" + t.fontName), e(\"/ItalicAngle \" + t.metadata.italicAngle), e(\"/Ascent \" + t.metadata.ascender), e(\">>\"), e(\"endobj\"), t.objectNumber = n(), a = 0; a < t.metadata.hmtx.widths.length; a++) {\n t.metadata.hmtx.widths[a] = parseInt(t.metadata.hmtx.widths[a] * (1e3 / t.metadata.head.unitsPerEm));\n }\n\n e(\"<>\"), e(\"endobj\"), t.isAlreadyPutted = !0;\n }\n }(t.font, t.out, t.newObject, t.putStream);\n }]);\n\n var h = function h(t) {\n var e,\n n,\n r = t.text || \"\",\n i = t.x,\n o = t.y,\n a = t.options || {},\n s = t.mutex || {},\n l = s.pdfEscape,\n h = s.activeFontKey,\n u = s.fonts,\n c = (s.activeFontSize, \"\"),\n f = 0,\n p = \"\",\n d = u[n = h].encoding;\n if (\"Identity-H\" !== u[n].encoding) return {\n text: r,\n x: i,\n y: o,\n options: a,\n mutex: s\n };\n\n for (p = r, n = h, \"[object Array]\" === Object.prototype.toString.call(r) && (p = r[0]), f = 0; f < p.length; f += 1) {\n u[n].metadata.hasOwnProperty(\"cmap\") && (e = u[n].metadata.cmap.unicode.codeMap[p[f].charCodeAt(0)]), e ? c += p[f] : p[f].charCodeAt(0) < 256 && u[n].metadata.hasOwnProperty(\"Unicode\") ? c += p[f] : c += \"\";\n }\n\n var g = \"\";\n return parseInt(n.slice(1)) < 14 || \"WinAnsiEncoding\" === d ? g = function (t) {\n for (var e = \"\", n = 0; n < t.length; n++) {\n e += \"\" + t.charCodeAt(n).toString(16);\n }\n\n return e;\n }(l(c, n)) : \"Identity-H\" === d && (g = m(c, u[n])), s.isHex = !0, {\n text: g,\n x: i,\n y: o,\n options: a,\n mutex: s\n };\n };\n\n e.events.push([\"postProcessText\", function (t) {\n var e = t.text || \"\",\n n = t.x,\n r = t.y,\n i = t.options,\n o = t.mutex,\n a = (i.lang, []),\n s = {\n text: e,\n x: n,\n y: r,\n options: i,\n mutex: o\n };\n\n if (\"[object Array]\" === Object.prototype.toString.call(e)) {\n var l = 0;\n\n for (l = 0; l < e.length; l += 1) {\n \"[object Array]\" === Object.prototype.toString.call(e[l]) && 3 === e[l].length ? a.push([h(Object.assign({}, s, {\n text: e[l][0]\n })).text, e[l][1], e[l][2]]) : a.push(h(Object.assign({}, s, {\n text: e[l]\n })).text);\n }\n\n t.text = a;\n } else t.text = h(Object.assign({}, s, {\n text: e\n })).text;\n }]);\n }(lt, \"undefined\" != typeof self && self || \"undefined\" != typeof global && global || \"undefined\" != typeof window && window || Function(\"return this\")()), at = lt.API, st = function st(t) {\n return void 0 !== t && (void 0 === t.vFS && (t.vFS = {}), !0);\n }, at.existsFileInVFS = function (t) {\n return !!st(this.internal) && void 0 !== this.internal.vFS[t];\n }, at.addFileToVFS = function (t, e) {\n return st(this.internal), this.internal.vFS[t] = e, this;\n }, at.getFileFromVFS = function (t) {\n return st(this.internal), void 0 !== this.internal.vFS[t] ? this.internal.vFS[t] : null;\n }, lt.API.addHTML = function (t, d, g, s, m) {\n if (\"undefined\" == typeof html2canvas && \"undefined\" == typeof rasterizeHTML) throw new Error(\"You need either https://github.com/niklasvh/html2canvas or https://github.com/cburgmer/rasterizeHTML.js\");\n \"number\" != typeof d && (s = d, m = g), \"function\" == typeof s && (m = s, s = null), \"function\" != typeof m && (m = function m() {});\n var e = this.internal,\n y = e.scaleFactor,\n v = e.pageSize.getWidth(),\n w = e.pageSize.getHeight();\n if ((s = s || {}).onrendered = function (l) {\n d = parseInt(d) || 0, g = parseInt(g) || 0;\n var t = s.dim || {},\n h = Object.assign({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n useFor: \"content\"\n }, s.margin),\n e = t.h || Math.min(w, l.height / y),\n u = t.w || Math.min(v, l.width / y) - d,\n c = s.format || \"JPEG\",\n f = s.imageCompression || \"SLOW\";\n\n if (l.height > w - h.top - h.bottom && s.pagesplit) {\n var p = function p(t, e, n, r, i) {\n var o = document.createElement(\"canvas\");\n o.height = i, o.width = r;\n var a = o.getContext(\"2d\");\n return a.mozImageSmoothingEnabled = !1, a.webkitImageSmoothingEnabled = !1, a.msImageSmoothingEnabled = !1, a.imageSmoothingEnabled = !1, a.fillStyle = s.backgroundColor || \"#ffffff\", a.fillRect(0, 0, r, i), a.drawImage(t, e, n, r, i, 0, 0, r, i), o;\n },\n n = function () {\n for (var t, e, n = 0, r = 0, i = {}, o = !1;;) {\n var a;\n if (r = 0, i.top = 0 !== n ? h.top : g, i.left = 0 !== n ? h.left : d, o = (v - h.left - h.right) * y < l.width, \"content\" === h.useFor ? 0 === n ? (t = Math.min((v - h.left) * y, l.width), e = Math.min((w - h.top) * y, l.height - n)) : (t = Math.min(v * y, l.width), e = Math.min(w * y, l.height - n), i.top = 0) : (t = Math.min((v - h.left - h.right) * y, l.width), e = Math.min((w - h.bottom - h.top) * y, l.height - n)), o) for (;;) {\n \"content\" === h.useFor && (0 === r ? t = Math.min((v - h.left) * y, l.width) : (t = Math.min(v * y, l.width - r), i.left = 0));\n var s = [a = p(l, r, n, t, e), i.left, i.top, a.width / y, a.height / y, c, null, f];\n if (this.addImage.apply(this, s), (r += t) >= l.width) break;\n this.addPage();\n } else s = [a = p(l, 0, n, t, e), i.left, i.top, a.width / y, a.height / y, c, null, f], this.addImage.apply(this, s);\n if ((n += e) >= l.height) break;\n this.addPage();\n }\n\n m(u, n, null, s);\n }.bind(this);\n\n if (\"CANVAS\" === l.nodeName) {\n var r = new Image();\n r.onload = n, r.src = l.toDataURL(\"image/png\"), l = r;\n } else n();\n } else {\n var i = Math.random().toString(35),\n o = [l, d, g, u, e, c, i, f];\n this.addImage.apply(this, o), m(u, e, i, o);\n }\n }.bind(this), \"undefined\" != typeof html2canvas && !s.rstz) return html2canvas(t, s);\n if (\"undefined\" == typeof rasterizeHTML) return null;\n var n = \"drawDocument\";\n return \"string\" == typeof t && (n = /^http/.test(t) ? \"drawURL\" : \"drawHTML\"), s.width = s.width || v * y, rasterizeHTML[n](t, void 0, s).then(function (t) {\n s.onrendered(t.image);\n }, function (t) {\n m(null, t);\n });\n },\n /**\n * jsPDF fromHTML plugin. BETA stage. API subject to change. Needs browser\n * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Daniel Husar, https://github.com/danielhusar\n * 2014 Wolfgang Gassler, https://github.com/woolfg\n * 2014 Steven Spungin, https://github.com/flamenco\n *\n * @license\n * \n * ====================================================================\n */\n function (t) {\n var P, _k, i, a, s, l, h, u, I, w, f, c, p, n, C, B, d, g, m, j;\n\n P = function () {\n return function (t) {\n return e.prototype = t, new e();\n };\n\n function e() {}\n }(), w = function w(t) {\n var e, n, r, i, o, a, s;\n\n for (n = 0, r = t.length, e = void 0, a = i = !1; !i && n !== r;) {\n (e = t[n] = t[n].trimLeft()) && (i = !0), n++;\n }\n\n for (n = r - 1; r && !a && -1 !== n;) {\n (e = t[n] = t[n].trimRight()) && (a = !0), n--;\n }\n\n for (o = /\\s+$/g, s = !0, n = 0; n !== r;) {\n \"\\u2028\" != t[n] && (e = t[n].replace(/\\s+/g, \" \"), s && (e = e.trimLeft()), e && (s = o.test(e)), t[n] = e), n++;\n }\n\n return t;\n }, c = function c(t) {\n var e, n, r;\n\n for (e = void 0, n = (r = t.split(\",\")).shift(); !e && n;) {\n e = i[n.trim().toLowerCase()], n = r.shift();\n }\n\n return e;\n }, p = function p(t) {\n var e;\n return -1 < (t = \"auto\" === t ? \"0px\" : t).indexOf(\"em\") && !isNaN(Number(t.replace(\"em\", \"\"))) && (t = 18.719 * Number(t.replace(\"em\", \"\")) + \"px\"), -1 < t.indexOf(\"pt\") && !isNaN(Number(t.replace(\"pt\", \"\"))) && (t = 1.333 * Number(t.replace(\"pt\", \"\")) + \"px\"), void 0, 16, (e = n[t]) ? e : void 0 !== (e = {\n \"xx-small\": 9,\n \"x-small\": 11,\n small: 13,\n medium: 16,\n large: 19,\n \"x-large\": 23,\n \"xx-large\": 28,\n auto: 0\n }[t]) ? n[t] = e / 16 : (e = parseFloat(t)) ? n[t] = e / 16 : (e = t.match(/([\\d\\.]+)(px)/), Array.isArray(e) && 3 === e.length ? n[t] = parseFloat(e[1]) / 16 : n[t] = 1);\n }, I = function I(t) {\n var e, n, r, i, o;\n return o = t, i = document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(o, null) : o.currentStyle ? o.currentStyle : o.style, n = void 0, (e = {})[\"font-family\"] = c((r = function r(t) {\n return t = t.replace(/-\\D/g, function (t) {\n return t.charAt(1).toUpperCase();\n }), i[t];\n })(\"font-family\")) || \"times\", e[\"font-style\"] = a[r(\"font-style\")] || \"normal\", e[\"text-align\"] = s[r(\"text-align\")] || \"left\", \"bold\" === (n = l[r(\"font-weight\")] || \"normal\") && (\"normal\" === e[\"font-style\"] ? e[\"font-style\"] = n : e[\"font-style\"] = n + e[\"font-style\"]), e[\"font-size\"] = p(r(\"font-size\")) || 1, e[\"line-height\"] = p(r(\"line-height\")) || 1, e.display = \"inline\" === r(\"display\") ? \"inline\" : \"block\", n = \"block\" === e.display, e[\"margin-top\"] = n && p(r(\"margin-top\")) || 0, e[\"margin-bottom\"] = n && p(r(\"margin-bottom\")) || 0, e[\"padding-top\"] = n && p(r(\"padding-top\")) || 0, e[\"padding-bottom\"] = n && p(r(\"padding-bottom\")) || 0, e[\"margin-left\"] = n && p(r(\"margin-left\")) || 0, e[\"margin-right\"] = n && p(r(\"margin-right\")) || 0, e[\"padding-left\"] = n && p(r(\"padding-left\")) || 0, e[\"padding-right\"] = n && p(r(\"padding-right\")) || 0, e[\"page-break-before\"] = r(\"page-break-before\") || \"auto\", e.float = h[r(\"cssFloat\")] || \"none\", e.clear = u[r(\"clear\")] || \"none\", e.color = r(\"color\"), e;\n }, C = function C(t, e, n) {\n var r, i, o, a, s;\n if (o = !1, a = i = void 0, r = n[\"#\" + t.id]) if (\"function\" == typeof r) o = r(t, e);else for (i = 0, a = r.length; !o && i !== a;) {\n o = r[i](t, e), i++;\n }\n if (r = n[t.nodeName], !o && r) if (\"function\" == typeof r) o = r(t, e);else for (i = 0, a = r.length; !o && i !== a;) {\n o = r[i](t, e), i++;\n }\n\n for (s = \"string\" == typeof t.className ? t.className.split(\" \") : [], i = 0; i < s.length; i++) {\n if (r = n[\".\" + s[i]], !o && r) if (\"function\" == typeof r) o = r(t, e);else for (i = 0, a = r.length; !o && i !== a;) {\n o = r[i](t, e), i++;\n }\n }\n\n return o;\n }, j = function j(t, e) {\n var n, r, i, o, a, s, l, h, u;\n\n for (n = [], r = [], i = 0, u = t.rows[0].cells.length, l = t.clientWidth; i < u;) {\n h = t.rows[0].cells[i], r[i] = {\n name: h.textContent.toLowerCase().replace(/\\s+/g, \"\"),\n prompt: h.textContent.replace(/\\r?\\n/g, \"\"),\n width: h.clientWidth / l * e.pdf.internal.pageSize.getWidth()\n }, i++;\n }\n\n for (i = 1; i < t.rows.length;) {\n for (s = t.rows[i], a = {}, o = 0; o < s.cells.length;) {\n a[r[o].name] = s.cells[o].textContent.replace(/\\r?\\n/g, \"\"), o++;\n }\n\n n.push(a), i++;\n }\n\n return {\n rows: n,\n headers: r\n };\n };\n var E = {\n SCRIPT: 1,\n STYLE: 1,\n NOSCRIPT: 1,\n OBJECT: 1,\n EMBED: 1,\n SELECT: 1\n },\n M = 1;\n _k = function k(t, i, e) {\n var n, r, o, a, s, l, h, u;\n\n for (r = t.childNodes, n = void 0, (s = \"block\" === (o = I(t)).display) && (i.setBlockBoundary(), i.setBlockStyle(o)), a = 0, l = r.length; a < l;) {\n if (\"object\" === se(n = r[a])) {\n if (i.executeWatchFunctions(n), 1 === n.nodeType && \"HEADER\" === n.nodeName) {\n var c = n,\n f = i.pdf.margins_doc.top;\n i.pdf.internal.events.subscribe(\"addPage\", function (t) {\n i.y = f, _k(c, i, e), i.pdf.margins_doc.top = i.y + 10, i.y += 10;\n }, !1);\n }\n\n if (8 === n.nodeType && \"#comment\" === n.nodeName) ~n.textContent.indexOf(\"ADD_PAGE\") && (i.pdf.addPage(), i.y = i.pdf.margins_doc.top);else if (1 !== n.nodeType || E[n.nodeName]) {\n if (3 === n.nodeType) {\n var p = n.nodeValue;\n if (n.nodeValue && \"LI\" === n.parentNode.nodeName) if (\"OL\" === n.parentNode.parentNode.nodeName) p = M++ + \". \" + p;else {\n var d = o[\"font-size\"],\n g = (3 - .75 * d) * i.pdf.internal.scaleFactor,\n m = .75 * d * i.pdf.internal.scaleFactor,\n y = 1.74 * d / i.pdf.internal.scaleFactor;\n\n u = function u(t, e) {\n this.pdf.circle(t + g, e + m, y, \"FD\");\n };\n }\n 16 & n.ownerDocument.body.compareDocumentPosition(n) && i.addText(p, o);\n } else \"string\" == typeof n && i.addText(n, o);\n } else {\n var v;\n\n if (\"IMG\" === n.nodeName) {\n var w = n.getAttribute(\"src\");\n v = B[i.pdf.sHashCode(w) || w];\n }\n\n if (v) {\n i.pdf.internal.pageSize.getHeight() - i.pdf.margins_doc.bottom < i.y + n.height && i.y > i.pdf.margins_doc.top && (i.pdf.addPage(), i.y = i.pdf.margins_doc.top, i.executeWatchFunctions(n));\n\n var b = I(n),\n x = i.x,\n N = 12 / i.pdf.internal.scaleFactor,\n L = (b[\"margin-left\"] + b[\"padding-left\"]) * N,\n A = (b[\"margin-right\"] + b[\"padding-right\"]) * N,\n S = (b[\"margin-top\"] + b[\"padding-top\"]) * N,\n _ = (b[\"margin-bottom\"] + b[\"padding-bottom\"]) * N;\n\n void 0 !== b.float && \"right\" === b.float ? x += i.settings.width - n.width - A : x += L, i.pdf.addImage(v, x, i.y + S, n.width, n.height), v = void 0, \"right\" === b.float || \"left\" === b.float ? (i.watchFunctions.push(function (t, e, n, r) {\n return i.y >= e ? (i.x += t, i.settings.width += n, !0) : !!(r && 1 === r.nodeType && !E[r.nodeName] && i.x + r.width > i.pdf.margins_doc.left + i.pdf.margins_doc.width) && (i.x += t, i.y = e, i.settings.width += n, !0);\n }.bind(this, \"left\" === b.float ? -n.width - L - A : 0, i.y + n.height + S + _, n.width)), i.watchFunctions.push(function (t, e, n) {\n return !(i.y < t && e === i.pdf.internal.getNumberOfPages()) || 1 === n.nodeType && \"both\" === I(n).clear && (i.y = t, !0);\n }.bind(this, i.y + n.height, i.pdf.internal.getNumberOfPages())), i.settings.width -= n.width + L + A, \"left\" === b.float && (i.x += n.width + L + A)) : i.y += n.height + S + _;\n } else if (\"TABLE\" === n.nodeName) h = j(n, i), i.y += 10, i.pdf.table(i.x, i.y, h.rows, h.headers, {\n autoSize: !1,\n printHeaders: e.printHeaders,\n margins: i.pdf.margins_doc,\n css: I(n)\n }), i.y = i.pdf.lastCellPos.y + i.pdf.lastCellPos.h + 20;else if (\"OL\" === n.nodeName || \"UL\" === n.nodeName) M = 1, C(n, i, e) || _k(n, i, e), i.y += 10;else if (\"LI\" === n.nodeName) {\n var F = i.x;\n i.x += 20 / i.pdf.internal.scaleFactor, i.y += 3, C(n, i, e) || _k(n, i, e), i.x = F;\n } else \"BR\" === n.nodeName ? (i.y += o[\"font-size\"] * i.pdf.internal.scaleFactor, i.addText(\"\\u2028\", P(o))) : C(n, i, e) || _k(n, i, e);\n }\n }\n\n a++;\n }\n\n if (e.outY = i.y, s) return i.setBlockBoundary(u);\n }, B = {}, d = function d(t, o, e, n) {\n var a,\n r = t.getElementsByTagName(\"img\"),\n i = r.length,\n s = 0;\n\n function l() {\n o.pdf.internal.events.publish(\"imagesLoaded\"), n(a);\n }\n\n function h(e, n, r) {\n if (e) {\n var i = new Image();\n a = ++s, i.crossOrigin = \"\", i.onerror = i.onload = function () {\n if (i.complete && (0 === i.src.indexOf(\"data:image/\") && (i.width = n || i.width || 0, i.height = r || i.height || 0), i.width + i.height)) {\n var t = o.pdf.sHashCode(e) || e;\n B[t] = B[t] || i;\n }\n\n --s || l();\n }, i.src = e;\n }\n }\n\n for (; i--;) {\n h(r[i].getAttribute(\"src\"), r[i].width, r[i].height);\n }\n\n return s || l();\n }, g = function g(t, o, a) {\n var s = t.getElementsByTagName(\"footer\");\n\n if (0 < s.length) {\n s = s[0];\n var e = o.pdf.internal.write,\n n = o.y;\n o.pdf.internal.write = function () {}, _k(s, o, a);\n var l = Math.ceil(o.y - n) + 5;\n o.y = n, o.pdf.internal.write = e, o.pdf.margins_doc.bottom += l;\n\n for (var r = function r(t) {\n var e = void 0 !== t ? t.pageNumber : 1,\n n = o.y;\n o.y = o.pdf.internal.pageSize.getHeight() - o.pdf.margins_doc.bottom, o.pdf.margins_doc.bottom -= l;\n\n for (var r = s.getElementsByTagName(\"span\"), i = 0; i < r.length; ++i) {\n -1 < (\" \" + r[i].className + \" \").replace(/[\\n\\t]/g, \" \").indexOf(\" pageCounter \") && (r[i].innerHTML = e), -1 < (\" \" + r[i].className + \" \").replace(/[\\n\\t]/g, \" \").indexOf(\" totalPages \") && (r[i].innerHTML = \"###jsPDFVarTotalPages###\");\n }\n\n _k(s, o, a), o.pdf.margins_doc.bottom += l, o.y = n;\n }, i = s.getElementsByTagName(\"span\"), h = 0; h < i.length; ++h) {\n -1 < (\" \" + i[h].className + \" \").replace(/[\\n\\t]/g, \" \").indexOf(\" totalPages \") && o.pdf.internal.events.subscribe(\"htmlRenderingFinished\", o.pdf.putTotalPages.bind(o.pdf, \"###jsPDFVarTotalPages###\"), !0);\n }\n\n o.pdf.internal.events.subscribe(\"addPage\", r, !1), r(), E.FOOTER = 1;\n }\n }, m = function m(t, e, n, r, i, o) {\n if (!e) return !1;\n var a, s, l, h;\n \"string\" == typeof e || e.parentNode || (e = \"\" + e.innerHTML), \"string\" == typeof e && (a = e.replace(/<\\/?script[^>]*?>/gi, \"\"), h = \"jsPDFhtmlText\" + Date.now().toString() + (1e3 * Math.random()).toFixed(0), (l = document.createElement(\"div\")).style.cssText = \"position: absolute !important;clip: rect(1px 1px 1px 1px); /* IE6, IE7 */clip: rect(1px, 1px, 1px, 1px);padding:0 !important;border:0 !important;height: 1px !important;width: 1px !important; top:auto;left:-100px;overflow: hidden;\", l.innerHTML = '