2.1.5
此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/468263/1202354/tesseractminjs.js
! function(e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.Tesseract = t() : e.Tesseract = t() }(window, (function() { return function(e) { var t = {}; function r(n) { if (t[n]) return t[n].exports; var o = t[n] = { i: n, l: !1, exports: {} }; return e[n].call(o.exports, o, o.exports, r), o.l = !0, o.exports } return r.m = e, r.c = t, r.d = function(e, t, n) { r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n }) }, r.r = function(e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, r.t = function(e, t) { if (1 & t && (e = r(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var o in e) r.d(n, o, function(t) { return e[t] }.bind(null, o)); return n }, r.n = function(e) { var t = e && e.__esModule ? function() { return e. default } : function() { return e }; return r.d(t, "a", t), t }, r.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, r.p = "", r(r.s = 12) }([ function(e, t, r) { var n; ! function(o) { "use strict"; function i(e, t, r) { var n, o = document.createElement("img"); function a(t, a) { a && console.log(a), t && i.isInstanceOf("Blob", t) ? (e = t, n = i.createObjectURL(e)) : (n = e, r && r.crossOrigin && (o.crossOrigin = r.crossOrigin)), o.src = n } return o.onerror = function(a) { return i.onerror(o, a, e, n, t, r) }, o.onload = function(a) { return i.onload(o, a, e, n, t, r) }, "string" == typeof e ? (i.hasMetaOption(r) ? i.fetchBlob(e, a, r) : a(), o) : i.isInstanceOf("Blob", e) || i.isInstanceOf("File", e) ? (n = i.createObjectURL(e)) ? (o.src = n, o) : i.readFile(e, (function(e) { var r = e.target; r && r.result ? o.src = r.result : t && t(e) })) : void 0 } var a = o.createObjectURL && o || o.URL && URL.revokeObjectURL && URL || o.webkitURL && webkitURL; function c(e, t) { !e || "blob:" !== e.slice(0, 5) || t && t.noRevoke || i.revokeObjectURL(e) } i.hasMetaOption = function(e) { return e && e.meta }, i.fetchBlob = function(e, t) { t() }, i.isInstanceOf = function(e, t) { return Object.prototype.toString.call(t) === "[object " + e + "]" }, i.transform = function(e, t, r, n, o) { r(e, o) }, i.onerror = function(e, t, r, n, o, i) { c(n, i), o && o.call(e, t) }, i.onload = function(e, t, r, n, o, a) { c(n, a), o && i.transform(e, a, o, r, { originalWidth: e.naturalWidth || e.width, originalHeight: e.naturalHeight || e.height }) }, i.createObjectURL = function(e) { return !!a && a.createObjectURL(e) }, i.revokeObjectURL = function(e) { return !!a && a.revokeObjectURL(e) }, i.readFile = function(e, t, r) { if (o.FileReader) { var n = new FileReader; if (n.onload = n.onerror = t, n[r = r || "readAsDataURL"]) return n[r](e), n } return !1 }, void 0 === (n = function() { return i }.call(t, r, t, e)) || (e.exports = n) }("undefined" != typeof window && window || this) }, function(e, t, r) { var n, o, i; ! function(a) { "use strict"; o = [r(0)], void 0 === (i = "function" == typeof(n = function(e) { var t = "undefined" != typeof Blob && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice); e.blobSlice = t && function() { var e = this.slice || this.webkitSlice || this.mozSlice; return e.apply(this, arguments) }, e.metaDataParsers = { jpeg: { 65505: [], 65517: [] } }, e.parseMetaData = function(t, r, n, o) { o = o || {}; var i = this, a = (n = n || {}).maxMetaDataSize || 262144; !! ("undefined" != typeof DataView && t && t.size >= 12 && "image/jpeg" === t.type && e.blobSlice) && e.readFile(e.blobSlice.call(t, 0, a), (function(t) { if (t.target.error) return console.log(t.target.error), void r(o); var a, c, s, u, l = t.target.result, f = new DataView(l), p = 2, d = f.byteLength - 4, h = p; if (65496 === f.getUint16(0)) { for (; p < d && ((a = f.getUint16(p)) >= 65504 && a <= 65519 || 65534 === a);) { if (p + (c = f.getUint16(p + 2) + 2) > f.byteLength) { console.log("Invalid meta data: Invalid segment size."); break } if ((s = e.metaDataParsers.jpeg[a]) && !n.disableMetaDataParsers) for (u = 0; u < s.length; u += 1) s[u].call(i, f, p, c, o, n); h = p += c }!n.disableImageHead && h > 6 && (l.slice ? o.imageHead = l.slice(0, h) : o.imageHead = new Uint8Array(l).subarray(0, h)) } else console.log("Invalid JPEG file: Missing JPEG marker."); r(o) }), "readAsArrayBuffer") || r(o) }, e.replaceHead = function(t, r, n) { e.parseMetaData(t, (function(o) { n(new Blob([r, e.blobSlice.call(t, o.imageHead.byteLength)], { type: "image/jpeg" })) }), { maxMetaDataSize: 256, disableMetaDataParsers: !0 }) }; var r = e.transform; e.transform = function(t, n, o, i, a) { e.hasMetaOption(n) ? e.parseMetaData(i, (function(a) { r.call(e, t, n, o, i, a) }), n, a) : r.apply(e, arguments) } }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t) { e.exports = function(e, t) { return "".concat(e, "-").concat(t, "-").concat(Math.random().toString(16).slice(3, 8)) } }, function(e, t) { var r = this, n = !1; t.logging = n, t.setLogging = function(e) { n = e }, t.log = function() { for (var e = arguments.length, t = new Array(e), o = 0; o < e; o++) t[o] = arguments[o]; return n ? console.log.apply(r, t) : null } }, function(e, t) { var r, n, o = e.exports = {}; function i() { throw new Error("setTimeout has not been defined") } function a() { throw new Error("clearTimeout has not been defined") } function c(e) { if (r === setTimeout) return setTimeout(e, 0); if ((r === i || !r) && setTimeout) return r = setTimeout, setTimeout(e, 0); try { return r(e, 0) } catch (t) { try { return r.call(null, e, 0) } catch (t) { return r.call(this, e, 0) } } }! function() { try { r = "function" == typeof setTimeout ? setTimeout : i } catch (e) { r = i } try { n = "function" == typeof clearTimeout ? clearTimeout : a } catch (e) { n = a } }(); var s, u = [], l = !1, f = -1; function p() { l && s && (l = !1, s.length ? u = s.concat(u) : f = -1, u.length && d()) } function d() { if (!l) { var e = c(p); l = !0; for (var t = u.length; t;) { for (s = u, u = []; ++f < t;) s && s[f].run(); f = -1, t = u.length } s = null, l = !1, function(e) { if (n === clearTimeout) return clearTimeout(e); if ((n === a || !n) && clearTimeout) return n = clearTimeout, clearTimeout(e); try { n(e) } catch (t) { try { return n.call(null, e) } catch (t) { return n.call(this, e) } } }(e) } } function h(e, t) { this.fun = e, this.array = t } function g() {} o.nextTick = function(e) { var t = new Array(arguments.length - 1); if (arguments.length > 1) for (var r = 1; r < arguments.length; r++) t[r - 1] = arguments[r]; u.push(new h(e, t)), 1 !== u.length || l || c(d) }, h.prototype.run = function() { this.fun.apply(null, this.array) }, o.title = "browser", o.browser = !0, o.env = {}, o.argv = [], o.version = "", o.versions = {}, o.on = g, o.addListener = g, o.once = g, o.off = g, o.removeListener = g, o.removeAllListeners = g, o.emit = g, o.prependListener = g, o.prependOnceListener = g, o.listeners = function(e) { return [] }, o.binding = function(e) { throw new Error("process.binding is not supported") }, o.cwd = function() { return "/" }, o.chdir = function(e) { throw new Error("process.chdir is not supported") }, o.umask = function() { return 0 } }, function(e, t, r) { var n, o; void 0 === (o = "function" == typeof(n = function() { return function() { var e = arguments.length; if (0 === e) throw new Error("resolveUrl requires at least one argument; got none."); var t = document.createElement("base"); if (t.href = arguments[0], 1 === e) return t.href; var r = document.getElementsByTagName("head")[0]; r.insertBefore(t, r.firstChild); for (var n, o = document.createElement("a"), i = 1; i < e; i++) o.href = arguments[i], n = o.href, t.href = n; return r.removeChild(t), n } }) ? n.call(t, r, t, e) : n) || (e.exports = o) }, function(e, t, r) { var n = r(2), o = 0; e.exports = function(e) { var t = e.id, r = e.action, i = e.payload, a = void 0 === i ? {} : i, c = t; return void 0 === c && (c = n("Job", o), o += 1), { id: c, action: r, payload: a } } }, function(e, t, r) { function n(e, t, r, n, o, i, a) { try { var c = e[i](a), s = c.value } catch (e) { return void r(e) } c.done ? t(s) : Promise.resolve(s).then(n, o) } function o(e) { return function() { var t = this, r = arguments; return new Promise((function(o, i) { var a = e.apply(t, r); function c(e) { n(a, o, i, c, s, "next", e) } function s(e) { n(a, o, i, c, s, "throw", e) } c(void 0) })) } } function i(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r } function a(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {}; t % 2 ? i(Object(r), !0).forEach((function(t) { c(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : i(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e } function c(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } function s(e, t) { if (null == e) return {}; var r, n, o = function(e, t) { if (null == e) return {}; var r, n, o = {}, i = Object.keys(e); for (n = 0; n < i.length; n++) r = i[n], t.indexOf(r) >= 0 || (o[r] = e[r]); return o }(e, t); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e); for (n = 0; n < i.length; n++) r = i[n], t.indexOf(r) >= 0 || Object.prototype.propertyIsEnumerable.call(e, r) && (o[r] = e[r]) } return o } var u = r(16), l = r(19), f = r(6), p = r(3).log, d = r(2), h = r(20).defaultOEM, g = r(21), m = g.defaultOptions, y = g.spawnWorker, b = g.terminateWorker, v = g.onMessage, w = g.loadImage, A = g.send, S = 0; e.exports = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = d("Worker", S), r = u(a({}, m, {}, e)), n = r.logger, i = r.errorHandler, c = s(r, ["logger", "errorHandler"]), g = {}, O = {}, x = y(c); S += 1; var E = function(e, t) { g[e] = t }, P = function(e, t) { O[e] = t }, j = function(e) { var r = e.id, n = e.action, o = e.payload; return new Promise((function(e, i) { p("[".concat(t, "]: Start ").concat(r, ", action=").concat(n)), E(n, e), P(n, i), A(x, { workerId: t, jobId: r, action: n, payload: o }) })) }, k = function(e) { return j(f({ id: e, action: "load", payload: { options: c } })) }, L = function(e, t, r) { return j(f({ id: r, action: "FS", payload: { method: "writeFile", args: [e, t] } })) }, R = function(e, t) { return j(f({ id: t, action: "FS", payload: { method: "readFile", args: [e, { encoding: "utf8" }] } })) }, I = function(e, t) { return j(f({ id: t, action: "FS", payload: { method: "unlink", args: [e] } })) }, D = function(e, t, r) { return j(f({ id: r, action: "FS", payload: { method: e, args: t } })) }, T = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "eng", t = arguments.length > 1 ? arguments[1] : void 0; return j(f({ id: t, action: "loadLanguage", payload: { langs: e, options: c } })) }, C = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "eng", t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : h, r = arguments.length > 2 ? arguments[2] : void 0; return j(f({ id: r, action: "initialize", payload: { langs: e, oem: t } })) }, B = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 ? arguments[1] : void 0; return j(f({ id: t, action: "setParameters", payload: { params: e } })) }, F = function() { var e = o(regeneratorRuntime.mark((function e(t) { var r, n, o = arguments; return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return r = o.length > 1 && void 0 !== o[1] ? o[1] : {}, n = o.length > 2 ? o[2] : void 0, e.t0 = j, e.t1 = f, e.t2 = n, e.next = 7, w(t); case 7: return e.t3 = e.sent, e.t4 = r, e.t5 = { image: e.t3, options: e.t4 }, e.t6 = { id: e.t2, action: "recognize", payload: e.t5 }, e.t7 = (0, e.t1)(e.t6), e.abrupt("return", (0, e.t0)(e.t7)); case 13: case "end": return e.stop() } }), e) }))); return function(t) { return e.apply(this, arguments) } }(), M = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "Tesseract OCR Result", t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], r = arguments.length > 2 ? arguments[2] : void 0; return j(f({ id: r, action: "getPDF", payload: { title: e, textonly: t } })) }, U = function() { var e = o(regeneratorRuntime.mark((function e(t, r) { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return e.t0 = j, e.t1 = f, e.t2 = r, e.next = 5, w(t); case 5: return e.t3 = e.sent, e.t4 = { image: e.t3 }, e.t5 = { id: e.t2, action: "detect", payload: e.t4 }, e.t6 = (0, e.t1)(e.t5), e.abrupt("return", (0, e.t0)(e.t6)); case 10: case "end": return e.stop() } }), e) }))); return function(t, r) { return e.apply(this, arguments) } }(), N = function() { var e = o(regeneratorRuntime.mark((function e() { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return null !== x && (b(x), x = null), e.abrupt("return", Promise.resolve()); case 2: case "end": return e.stop() } }), e) }))); return function() { return e.apply(this, arguments) } }(); return v(x, (function(e) { var t = e.workerId, r = e.jobId, o = e.status, c = e.action, s = e.data; if ("resolve" === o) { p("[".concat(t, "]: Complete ").concat(r)); var u = s; "recognize" === c ? u = l(s) : "getPDF" === c && (u = Array.from(a({}, s, { length: Object.keys(s).length }))), g[c]({ jobId: r, data: u }) } else if ("reject" === o) { if (O[c](s), !i) throw Error(s); i(s) } else "progress" === o && n(a({}, s, { userJobId: r })) })), { id: t, worker: x, setResolve: E, setReject: P, load: k, writeText: L, readText: R, removeFile: I, FS: D, loadLanguage: T, initialize: C, setParameters: B, recognize: F, getPDF: M, detect: U, terminate: N } } }, function(e, t) { e.exports = { TESSERACT_ONLY: 0, LSTM_ONLY: 1, TESSERACT_LSTM_COMBINED: 2, DEFAULT: 3 } }, function(e, t, r) { var n, o, i; ! function(a) { "use strict"; o = [r(0)], void 0 === (i = "function" == typeof(n = function(e) { var t = e.transform; e.transform = function(r, n, o, i, a) { t.call(e, e.scale(r, n, a), n, o, i, a) }, e.transformCoordinates = function() {}, e.getTransformedOptions = function(e, t) { var r, n, o, i, a = t.aspectRatio; if (!a) return t; for (n in r = {}, t) Object.prototype.hasOwnProperty.call(t, n) && (r[n] = t[n]); return r.crop = !0, (o = e.naturalWidth || e.width) / (i = e.naturalHeight || e.height) > a ? (r.maxWidth = i * a, r.maxHeight = i) : (r.maxWidth = o, r.maxHeight = o / a), r }, e.renderImageToCanvas = function(e, t, r, n, o, i, a, c, s, u, l) { var f = e.getContext("2d"); return !1 === l.imageSmoothingEnabled ? f.imageSmoothingEnabled = !1 : l.imageSmoothingQuality && (f.imageSmoothingQuality = l.imageSmoothingQuality), f.drawImage(t, r, n, o, i, a, c, s, u), e }, e.hasCanvasOption = function(e) { return e.canvas || e.crop || !! e.aspectRatio }, e.scale = function(t, r, n) { r = r || {}; var o, i, a, c, s, u, l, f, p, d, h, g = document.createElement("canvas"), m = t.getContext || e.hasCanvasOption(r) && g.getContext, y = t.naturalWidth || t.width, b = t.naturalHeight || t.height, v = y, w = b; function A() { var e = Math.max((a || v) / v, (c || w) / w); e > 1 && (v *= e, w *= e) } function S() { var e = Math.min((o || v) / v, (i || w) / w); e < 1 && (v *= e, w *= e) } if (m && (l = (r = e.getTransformedOptions(t, r, n)).left || 0, f = r.top || 0, r.sourceWidth ? (s = r.sourceWidth, void 0 !== r.right && void 0 === r.left && (l = y - s - r.right)) : s = y - l - (r.right || 0), r.sourceHeight ? (u = r.sourceHeight, void 0 !== r.bottom && void 0 === r.top && (f = b - u - r.bottom)) : u = b - f - (r.bottom || 0), v = s, w = u), o = r.maxWidth, i = r.maxHeight, a = r.minWidth, c = r.minHeight, m && o && i && r.crop ? (v = o, w = i, (h = s / u - o / i) < 0 ? (u = i * s / o, void 0 === r.top && void 0 === r.bottom && (f = (b - u) / 2)) : h > 0 && (s = o * u / i, void 0 === r.left && void 0 === r.right && (l = (y - s) / 2))) : ((r.contain || r.cover) && (a = o = o || a, c = i = i || c), r.cover ? (S(), A()) : (A(), S())), m) { if ((p = r.pixelRatio) > 1 && (g.style.width = v + "px", g.style.height = w + "px", v *= p, w *= p, g.getContext("2d").scale(p, p)), (d = r.downsamplingRatio) > 0 && d < 1 && v < s && w < u) for (; s * d > v;) g.width = s * d, g.height = u * d, e.renderImageToCanvas(g, t, l, f, s, u, 0, 0, g.width, g.height, r), l = 0, f = 0, s = g.width, u = g.height, (t = document.createElement("canvas")).width = s, t.height = u, e.renderImageToCanvas(t, g, 0, 0, s, u, 0, 0, s, u, r); return g.width = v, g.height = w, e.transformCoordinates(g, r), e.renderImageToCanvas(g, t, l, f, s, u, 0, 0, v, w, r) } return t.width = v, t.height = w, t } }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t, r) { var n, o, i; ! function(a) { "use strict"; o = [r(0), r(1)], void 0 === (i = "function" == typeof(n = function(e) { function t(e) { e && (Object.defineProperty(this, "map", { value: this.privateIFDs[e].map }), Object.defineProperty(this, "tags", { value: this.tags && this.tags[e] || {} })) } t.prototype.map = { Orientation: 274, Thumbnail: 513, Exif: 34665, GPSInfo: 34853, Interoperability: 40965 }, t.prototype.privateIFDs = { 34665: { name: "Exif", map: {} }, 34853: { name: "GPSInfo", map: {} }, 40965: { name: "Interoperability", map: {} } }, t.prototype.get = function(e) { return this[e] || this[this.map[e]] }; var r = { 1: { getValue: function(e, t) { return e.getUint8(t) }, size: 1 }, 2: { getValue: function(e, t) { return String.fromCharCode(e.getUint8(t)) }, size: 1, ascii: !0 }, 3: { getValue: function(e, t, r) { return e.getUint16(t, r) }, size: 2 }, 4: { getValue: function(e, t, r) { return e.getUint32(t, r) }, size: 4 }, 5: { getValue: function(e, t, r) { return e.getUint32(t, r) / e.getUint32(t + 4, r) }, size: 8 }, 9: { getValue: function(e, t, r) { return e.getInt32(t, r) }, size: 4 }, 10: { getValue: function(e, t, r) { return e.getInt32(t, r) / e.getInt32(t + 4, r) }, size: 8 } }; function n(e, t, n, o, i, a) { var c, s, u, l, f, p, d = r[o]; if (d) { if (!((s = (c = d.size * i) > 4 ? t + e.getUint32(n + 8, a) : n + 8) + c > e.byteLength)) { if (1 === i) return d.getValue(e, s, a); for (u = [], l = 0; l < i; l += 1) u[l] = d.getValue(e, s + l * d.size, a); if (d.ascii) { for (f = "", l = 0; l < u.length && "\0" !== (p = u[l]); l += 1) f += p; return f } return u } console.log("Invalid Exif data: Invalid data offset.") } else console.log("Invalid Exif data: Invalid tag type.") } function o(e, t, r, o, i, a, c, s) { var u, l, f, p, d, h; if (r + 6 > e.byteLength) console.log("Invalid Exif data: Invalid directory offset."); else { if (!((l = r + 2 + 12 * (u = e.getUint16(r, o))) + 4 > e.byteLength)) { for (f = 0; f < u; f += 1) p = r + 2 + 12 * f, d = e.getUint16(p, o), c && !c[d] || s && !0 === s[d] || (h = n(e, t, p, e.getUint16(p + 2, o), e.getUint32(p + 4, o), o), i[d] = h, a && (a[d] = p)); return e.getUint32(l, o) } console.log("Invalid Exif data: Invalid directory size.") } } r[7] = r[1], e.parseExifData = function(e, r, n, i, a) { if (!a.disableExif) { var c, s, u = a.includeExifTags, l = a.excludeExifTags || { 34665: { 37500: !0 } }, f = r + 10; if (1165519206 === e.getUint32(r + 4)) if (f + 8 > e.byteLength) console.log("Invalid Exif data: Invalid segment size."); else if (0 === e.getUint16(r + 8)) { switch (e.getUint16(f)) { case 18761: c = !0; break; case 19789: c = !1; break; default: return void console.log("Invalid Exif data: Invalid byte alignment marker.") } 42 === e.getUint16(f + 2, c) ? (s = e.getUint32(f + 4, c), i.exif = new t, a.disableExifOffsets || (i.exifOffsets = new t, i.exifTiffOffset = f, i.exifLittleEndian = c), (s = o(e, f, f + s, c, i.exif, i.exifOffsets, u, l)) && !a.disableExifThumbnail && (s = o(e, f, f + s, c, i.exif, i.exifOffsets, u, l), i.exif[513] && i.exif[514] && (i.exif[513] = function(e, t, r) { if (r && !(t + r > e.byteLength)) return new Blob([e.buffer.slice(t, t + r)], { type: "image/jpeg" }); console.log("Invalid Exif data: Invalid thumbnail data.") }(e, f + i.exif[513], i.exif[514]))), Object.keys(i.exif.privateIFDs).forEach((function(r) { ! function(e, r, n, i, a, c, s) { var u = e.exif[r]; u && (e.exif[r] = new t(r), e.exifOffsets && (e.exifOffsets[r] = new t(r)), o(n, i, i + u, a, e.exif[r], e.exifOffsets && e.exifOffsets[r], c && c[r], s && s[r])) }(i, r, e, f, c, u, l) }))) : console.log("Invalid Exif data: Missing TIFF marker.") } else console.log("Invalid Exif data: Missing byte alignment offset.") } }, e.metaDataParsers.jpeg[65505].push(e.parseExifData), e.exifWriters = { 274: function(e, t, r) { return new DataView(e, t.exifOffsets[274] + 8, 2).setUint16(0, r, t.exifLittleEndian), e } }, e.writeExifData = function(t, r, n, o) { e.exifWriters[r.exif.map[n]](t, r, o) }, e.ExifMap = t }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t, r) { var n, o, i; ! function(a) { "use strict"; o = [r(0), r(1)], void 0 === (i = "function" == typeof(n = function(e) { function t() {} function r(e, t, r, n, o) { return "binary" === t.types[e] ? new Blob([r.buffer.slice(n, n + o)]) : "Uint16" === t.types[e] ? r.getUint16(n) : function(e, t, r) { for (var n = "", o = t + r, i = t; i < o; i += 1) n += String.fromCharCode(e.getUint8(i)); return n }(r, n, o) } function n(e, t) { return void 0 === e ? t : e instanceof Array ? (e.push(t), e) : [e, t] } function o(e, t, o, i, a, c) { for (var s, u, l, f = t + o, p = t; p < f;) 28 === e.getUint8(p) && 2 === e.getUint8(p + 1) && (l = e.getUint8(p + 2), a && !a[l] || c && c[l] || (u = e.getInt16(p + 3), s = r(l, i.iptc, e, p + 5, u), i.iptc[l] = n(i.iptc[l], s), i.iptcOffsets && (i.iptcOffsets[l] = p))), p += 1 } function i(e, t) { return 943868237 === e.getUint32(t) && 1028 === e.getUint16(t + 4) } function a(e, t) { var r = e.getUint8(t + 7); return r % 2 != 0 && (r += 1), 0 === r && (r = 4), r } t.prototype.map = { ObjectName: 5 }, t.prototype.types = { 0: "Uint16", 200: "Uint16", 201: "Uint16", 202: "binary" }, t.prototype.get = function(e) { return this[e] || this[this.map[e]] }, e.parseIptcData = function(e, r, n, c, s) { if (!s.disableIptc) for (var u = r + n; r + 8 < u;) { if (i(e, r)) { var l = a(e, r), f = r + 8 + l; if (f > u) { console.log("Invalid IPTC data: Invalid segment offset."); break } var p = e.getUint16(r + 6 + l); if (r + p > u) { console.log("Invalid IPTC data: Invalid segment size."); break } return c.iptc = new t, s.disableIptcOffsets || (c.iptcOffsets = new t), void o(e, f, p, c, s.includeIptcTags, s.excludeIptcTags || { 202: !0 }) } r += 1 } }, e.metaDataParsers.jpeg[65517].push(e.parseIptcData), e.IptcMap = t }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t, r) { function n(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r } function o(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } r(13); var i = r(15), a = r(7), c = r(35), s = r(36), u = r(8), l = r(37), f = r(3).setLogging; e.exports = function(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {}; t % 2 ? n(Object(r), !0).forEach((function(t) { o(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : n(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e }({ languages: s, OEM: u, PSM: l, createScheduler: i, createWorker: a, setLogging: f }, c) }, function(e, t, r) { (function(e) { function t(e) { return (t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) } var r = function(e) { "use strict"; var r = Object.prototype, n = r.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", c = o.toStringTag || "@@toStringTag"; function s(e, t, r, n) { var o = t && t.prototype instanceof f ? t : f, i = Object.create(o.prototype), a = new O(n || []); return i._invoke = function(e, t, r) { var n = "suspendedStart"; return function(o, i) { if ("executing" === n) throw new Error("Generator is already running"); if ("completed" === n) { if ("throw" === o) throw i; return E() } for (r.method = o, r.arg = i;;) { var a = r.delegate; if (a) { var c = w(a, r); if (c) { if (c === l) continue; return c } } if ("next" === r.method) r.sent = r._sent = r.arg; else if ("throw" === r.method) { if ("suspendedStart" === n) throw n = "completed", r.arg; r.dispatchException(r.arg) } else "return" === r.method && r.abrupt("return", r.arg); n = "executing"; var s = u(e, t, r); if ("normal" === s.type) { if (n = r.done ? "completed" : "suspendedYield", s.arg === l) continue; return { value: s.arg, done: r.done } } "throw" === s.type && (n = "completed", r.method = "throw", r.arg = s.arg) } } }(e, r, a), i } function u(e, t, r) { try { return { type: "normal", arg: e.call(t, r) } } catch (e) { return { type: "throw", arg: e } } } e.wrap = s; var l = {}; function f() {} function p() {} function d() {} var h = {}; h[i] = function() { return this }; var g = Object.getPrototypeOf, m = g && g(g(x([]))); m && m !== r && n.call(m, i) && (h = m); var y = d.prototype = f.prototype = Object.create(h); function b(e) { ["next", "throw", "return"].forEach((function(t) { e[t] = function(e) { return this._invoke(t, e) } })) } function v(e) { var r; this._invoke = function(o, i) { function a() { return new Promise((function(r, a) { ! function r(o, i, a, c) { var s = u(e[o], e, i); if ("throw" !== s.type) { var l = s.arg, f = l.value; return f && "object" === t(f) && n.call(f, "__await") ? Promise.resolve(f.__await).then((function(e) { r("next", e, a, c) }), (function(e) { r("throw", e, a, c) })) : Promise.resolve(f).then((function(e) { l.value = e, a(l) }), (function(e) { return r("throw", e, a, c) })) } c(s.arg) }(o, i, r, a) })) } return r = r ? r.then(a, a) : a() } } function w(e, t) { var r = e.iterator[t.method]; if (void 0 === r) { if (t.delegate = null, "throw" === t.method) { if (e.iterator. return &&(t.method = "return", t.arg = void 0, w(e, t), "throw" === t.method)) return l; t.method = "throw", t.arg = new TypeError("The iterator does not provide a 'throw' method") } return l } var n = u(r, e.iterator, t.arg); if ("throw" === n.type) return t.method = "throw", t.arg = n.arg, t.delegate = null, l; var o = n.arg; return o ? o.done ? (t[e.resultName] = o.value, t.next = e.nextLoc, "return" !== t.method && (t.method = "next", t.arg = void 0), t.delegate = null, l) : o : (t.method = "throw", t.arg = new TypeError("iterator result is not an object"), t.delegate = null, l) } function A(e) { var t = { tryLoc: e[0] }; 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t) } function S(e) { var t = e.completion || {}; t.type = "normal", delete t.arg, e.completion = t } function O(e) { this.tryEntries = [{ tryLoc: "root" }], e.forEach(A, this), this.reset(!0) } function x(e) { if (e) { var t = e[i]; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var r = -1, o = function t() { for (; ++r < e.length;) if (n.call(e, r)) return t.value = e[r], t.done = !1, t; return t.value = void 0, t.done = !0, t }; return o.next = o } } return { next: E } } function E() { return { value: void 0, done: !0 } } return p.prototype = y.constructor = d, d.constructor = p, d[c] = p.displayName = "GeneratorFunction", e.isGeneratorFunction = function(e) { var t = "function" == typeof e && e.constructor; return !!t && (t === p || "GeneratorFunction" === (t.displayName || t.name)) }, e.mark = function(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, d) : (e.__proto__ = d, c in e || (e[c] = "GeneratorFunction")), e.prototype = Object.create(y), e }, e.awrap = function(e) { return { __await: e } }, b(v.prototype), v.prototype[a] = function() { return this }, e.AsyncIterator = v, e.async = function(t, r, n, o) { var i = new v(s(t, r, n, o)); return e.isGeneratorFunction(r) ? i : i.next().then((function(e) { return e.done ? e.value : i.next() })) }, b(y), y[c] = "Generator", y[i] = function() { return this }, y.toString = function() { return "[object Generator]" }, e.keys = function(e) { var t = []; for (var r in e) t.push(r); return t.reverse(), function r() { for (; t.length;) { var n = t.pop(); if (n in e) return r.value = n, r.done = !1, r } return r.done = !0, r } }, e.values = x, O.prototype = { constructor: O, reset: function(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(S), !e) for (var t in this) "t" === t.charAt(0) && n.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0) }, stop: function() { this.done = !0; var e = this.tryEntries[0].completion; if ("throw" === e.type) throw e.arg; return this.rval }, dispatchException: function(e) { if (this.done) throw e; var t = this; function r(r, n) { return a.type = "throw", a.arg = e, t.next = r, n && (t.method = "next", t.arg = void 0), !! n } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return r("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), s = n.call(i, "finallyLoc"); if (c && s) { if (this.prev < i.catchLoc) return r(i.catchLoc, !0); if (this.prev < i.finallyLoc) return r(i.finallyLoc) } else if (c) { if (this.prev < i.catchLoc) return r(i.catchLoc, !0) } else { if (!s) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return r(i.finallyLoc) } } } }, abrupt: function(e, t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break } } i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, l) : this.complete(a) }, complete: function(e, t) { if ("throw" === e.type) throw e.arg; return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), l }, finish: function(e) { for (var t = this.tryEntries.length - 1; t >= 0; --t) { var r = this.tryEntries[t]; if (r.finallyLoc === e) return this.complete(r.completion, r.afterLoc), S(r), l } }, catch: function(e) { for (var t = this.tryEntries.length - 1; t >= 0; --t) { var r = this.tryEntries[t]; if (r.tryLoc === e) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; S(r) } return o } } throw new Error("illegal catch attempt") }, delegateYield: function(e, t, r) { return this.delegate = { iterator: x(e), resultName: t, nextLoc: r }, "next" === this.method && (this.arg = void 0), l } }, e }("object" === t(e) ? e.exports : {}); try { regeneratorRuntime = r } catch (e) { Function("r", "regeneratorRuntime = r")(r) } }).call(this, r(14)(e)) }, function(e, t) { e.exports = function(e) { return e.webpackPolyfill || (e.deprecate = function() {}, e.paths = [], e.children || (e.children = []), Object.defineProperty(e, "loaded", { enumerable: !0, get: function() { return e.l } }), Object.defineProperty(e, "id", { enumerable: !0, get: function() { return e.i } }), e.webpackPolyfill = 1), e } }, function(e, t, r) { var n = this; function o(e) { return function(e) { if (Array.isArray(e)) { for (var t = 0, r = new Array(e.length); t < e.length; t++) r[t] = e[t]; return r } }(e) || function(e) { if (Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e)) return Array.from(e) }(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance") }() } function i(e, t, r, n, o, i, a) { try { var c = e[i](a), s = c.value } catch (e) { return void r(e) } c.done ? t(s) : Promise.resolve(s).then(n, o) } function a(e) { return function() { var t = this, r = arguments; return new Promise((function(n, o) { var a = e.apply(t, r); function c(e) { i(a, n, o, c, s, "next", e) } function s(e) { i(a, n, o, c, s, "throw", e) } c(void 0) })) } } var c = r(6), s = r(3).log, u = r(2), l = 0; e.exports = function() { var e = u("Scheduler", l), t = {}, r = {}, i = []; l += 1; var f = function() { return Object.keys(t).length }, p = function() { if (0 !== i.length) for (var e = Object.keys(t), n = 0; n < e.length; n += 1) if (void 0 === r[e[n]]) { i[0](t[e[n]]); break } }, d = function(t, u) { return new Promise((function(l, f) { var d = c({ action: t, payload: u }); i.push(function() { var e = a(regeneratorRuntime.mark((function e(a) { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return i.shift(), r[a.id] = d, e.prev = 2, e.t0 = l, e.next = 6, a[t].apply(n, [].concat(o(u), [d.id])); case 6: e.t1 = e.sent, (0, e.t0)(e.t1), e.next = 13; break; case 10: e.prev = 10, e.t2 = e. catch (2), f(e.t2); case 13: return e.prev = 13, delete r[a.id], p(), e.finish(13); case 17: case "end": return e.stop() } }), e, null, [ [2, 10, 13, 17] ]) }))); return function(t) { return e.apply(this, arguments) } }()), s("[".concat(e, "]: Add ").concat(d.id, " to JobQueue")), s("[".concat(e, "]: JobQueue length=").concat(i.length)), p() })) }; return { addWorker: function(r) { return t[r.id] = r, s("[".concat(e, "]: Add ").concat(r.id)), s("[".concat(e, "]: Number of workers=").concat(f())), p(), r.id }, addJob: function() { var t = a(regeneratorRuntime.mark((function t(r) { var n, o, i, a = arguments; return regeneratorRuntime.wrap((function(t) { for (;;) switch (t.prev = t.next) { case 0: if (0 !== f()) { t.next = 2; break } throw Error("[".concat(e, "]: You need to have at least one worker before adding jobs")); case 2: for (n = a.length, o = new Array(n > 1 ? n - 1 : 0), i = 1; i < n; i++) o[i - 1] = a[i]; return t.abrupt("return", d(r, o)); case 4: case "end": return t.stop() } }), t) }))); return function(e) { return t.apply(this, arguments) } }(), terminate: function() { var e = a(regeneratorRuntime.mark((function e() { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: Object.keys(t).forEach(function() { var e = a(regeneratorRuntime.mark((function e(r) { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return e.next = 2, t[r].terminate(); case 2: case "end": return e.stop() } }), e) }))); return function(t) { return e.apply(this, arguments) } }()), i = []; case 2: case "end": return e.stop() } }), e) }))); return function() { return e.apply(this, arguments) } }(), getQueueLen: function() { return i.length }, getNumWorkers: f } } }, function(e, t, r) { function n(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r } function o(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } var i = "browser" === r(17)("type") ? r(5) : function(e) { return e }; e.exports = function(e) { var t = function(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {}; t % 2 ? n(Object(r), !0).forEach((function(t) { o(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : n(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e }({}, e); return ["corePath", "workerPath", "langPath"].forEach((function(r) { void 0 !== e[r] && (t[r] = i(t[r])) })), t } }, function(e, t, r) { (function(t) { function n(e) { return (n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) } var o = r(18); e.exports = function(e) { var r = {}; return "undefined" != typeof WorkerGlobalScope ? r.type = "webworker" : o() ? r.type = "electron" : "object" === ("undefined" == typeof window ? "undefined" : n(window)) ? r.type = "browser" : "object" === (void 0 === t ? "undefined" : n(t)) && (r.type = "node"), void 0 === e ? r : r[e] } }).call(this, r(4)) }, function(e, t, r) { (function(t) { function r(e) { return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) } e.exports = function() { return "undefined" != typeof window && "object" === r(window.process) && "renderer" === window.process.type || (!(void 0 === t || "object" !== r(t.versions) || !t.versions.electron) || "object" === ("undefined" == typeof navigator ? "undefined" : r(navigator)) && "string" == typeof navigator.userAgent && navigator.userAgent.indexOf("Electron") >= 0) } }).call(this, r(4)) }, function(e, t) { function r(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r } function n(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? r(Object(n), !0).forEach((function(t) { o(e, t, n[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : r(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } function o(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } e.exports = function(e) { var t = [], r = [], o = [], i = [], a = []; return e.blocks.forEach((function(c) { c.paragraphs.forEach((function(t) { t.lines.forEach((function(r) { r.words.forEach((function(o) { o.symbols.forEach((function(i) { a.push(n({}, i, { page: e, block: c, paragraph: t, line: r, word: o })) })), i.push(n({}, o, { page: e, block: c, paragraph: t, line: r })) })), o.push(n({}, r, { page: e, block: c, paragraph: t })) })), r.push(n({}, t, { page: e, block: c })) })), t.push(n({}, c, { page: e })) })), n({}, e, { blocks: t, paragraphs: r, lines: o, words: i, symbols: a }) } }, function(e, t, r) { var n = r(8); e.exports = { defaultOEM: n.DEFAULT } }, function(e, t, r) { var n = r(22), o = r(25), i = r(26), a = r(27), c = r(28), s = r(29); e.exports = { defaultOptions: n, spawnWorker: o, terminateWorker: i, onMessage: a, send: c, loadImage: s } }, function(e, t, r) { (function(t) { function n(e) { return (n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) } function o(e, t) { var r = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), r.push.apply(r, n) } return r } function i(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e } var a = r(5), c = r(23), s = c.version, u = c.dependencies, l = r(24); e.exports = function(e) { for (var t = 1; t < arguments.length; t++) { var r = null != arguments[t] ? arguments[t] : {}; t % 2 ? o(Object(r), !0).forEach((function(t) { i(e, t, r[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : o(Object(r)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) })) } return e }({}, l, { workerPath: void 0 !== t && "development" === t.env.TESS_ENV ? a("/dist/worker.dev.js?nocache=".concat(Math.random().toString(36).slice(3))) : "https://unpkg.com/tesseract.js@v".concat(s, "/dist/worker.min.js"), corePath: "https://unpkg.com/tesseract.js-core@v".concat(u["tesseract.js-core"].substring(1), "/tesseract-core.").concat("object" === ("undefined" == typeof WebAssembly ? "undefined" : n(WebAssembly)) ? "wasm" : "asm", ".js") }) }).call(this, r(4)) }, function(e) { e.exports = JSON.parse('{"name":"tesseract.js","version":"2.1.5","description":"Pure Javascript Multilingual OCR","main":"src/index.js","types":"src/index.d.ts","unpkg":"dist/tesseract.min.js","jsdelivr":"dist/tesseract.min.js","scripts":{"start":"node scripts/server.js","build":"rimraf dist && webpack --config scripts/webpack.config.prod.js","profile:tesseract":"webpack-bundle-analyzer dist/tesseract-stats.json","profile:worker":"webpack-bundle-analyzer dist/worker-stats.json","prepublishOnly":"npm run build","wait":"rimraf dist && wait-on http://localhost:3000/dist/tesseract.dev.js","test":"npm-run-all -p -r start test:all","test:all":"npm-run-all wait test:browser:* test:node:all","test:node":"nyc mocha --exit --bail --require ./scripts/test-helper.js","test:node:all":"npm run test:node -- ./tests/*.test.js","test:browser-tpl":"mocha-headless-chrome -a incognito -a no-sandbox -a disable-setuid-sandbox -a disable-logging -t 300000","test:browser:detect":"npm run test:browser-tpl -- -f ./tests/detect.test.html","test:browser:recognize":"npm run test:browser-tpl -- -f ./tests/recognize.test.html","test:browser:scheduler":"npm run test:browser-tpl -- -f ./tests/scheduler.test.html","test:browser:FS":"npm run test:browser-tpl -- -f ./tests/FS.test.html","lint":"eslint src","lint:fix":"eslint --fix src","postinstall":"opencollective-postinstall || true"},"browser":{"./src/worker/node/index.js":"./src/worker/browser/index.js"},"author":"","contributors":["jeromewu"],"license":"Apache-2.0","devDependencies":{"@babel/core":"^7.7.7","@babel/preset-env":"^7.7.7","acorn":"^6.4.0","babel-loader":"^8.1.0","cors":"^2.8.5","eslint":"^7.2.0","eslint-config-airbnb-base":"^14.2.0","eslint-plugin-import":"^2.22.1","expect.js":"^0.3.1","express":"^4.17.1","mocha":"^8.1.3","mocha-headless-chrome":"^2.0.3","npm-run-all":"^4.1.5","nyc":"^15.1.0","rimraf":"^2.7.1","wait-on":"^3.3.0","webpack":"^4.44.2","webpack-bundle-analyzer":"^3.6.0","webpack-cli":"^3.3.12","webpack-dev-middleware":"^3.7.2"},"dependencies":{"blueimp-load-image":"^3.0.0","bmp-js":"^0.1.0","file-type":"^12.4.1","idb-keyval":"^3.2.0","is-electron":"^2.2.0","is-url":"^1.2.4","jpeg-autorotate":"^7.1.1","node-fetch":"^2.6.0","opencollective-postinstall":"^2.0.2","regenerator-runtime":"^0.13.3","resolve-url":"^0.2.1","tesseract.js-core":"^2.2.0","zlibjs":"^0.3.1"},"repository":{"type":"git","url":"https://github.com/naptha/tesseract.js.git"},"bugs":{"url":"https://github.com/naptha/tesseract.js/issues"},"homepage":"https://github.com/naptha/tesseract.js","collective":{"type":"opencollective","url":"https://opencollective.com/tesseractjs"}}') }, function(e, t) { e.exports = { langPath: "https://raw.github.cnpmjs.org/naptha/tessdata/gh-pages/4.0.0", workerBlobURL: !0, logger: function() {} } }, function(e, t) { e.exports = function(e) { var t, r = e.workerPath, n = e.workerBlobURL; if (Blob && URL && n) { var o = new Blob(['importScripts("'.concat(r, '");')], { type: "application/javascript" }); t = new Worker(URL.createObjectURL(o)) } else t = new Worker(r); return t } }, function(e, t) { e.exports = function(e) { e.terminate() } }, function(e, t) { e.exports = function(e, t) { e.onmessage = function(e) { var r = e.data; t(r) } } }, function(e, t) { function r(e, t, r, n, o, i, a) { try { var c = e[i](a), s = c.value } catch (e) { return void r(e) } c.done ? t(s) : Promise.resolve(s).then(n, o) } e.exports = function() { var e, t = (e = regeneratorRuntime.mark((function e(t, r) { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: t.postMessage(r); case 1: case "end": return e.stop() } }), e) })), function() { var t = this, n = arguments; return new Promise((function(o, i) { var a = e.apply(t, n); function c(e) { r(a, o, i, c, s, "next", e) } function s(e) { r(a, o, i, c, s, "throw", e) } c(void 0) })) }); return function(e, r) { return t.apply(this, arguments) } }() }, function(e, t, r) { function n(e, t, r, n, o, i, a) { try { var c = e[i](a), s = c.value } catch (e) { return void r(e) } c.done ? t(s) : Promise.resolve(s).then(n, o) } function o(e) { return function() { var t = this, r = arguments; return new Promise((function(o, i) { var a = e.apply(t, r); function c(e) { n(a, o, i, c, s, "next", e) } function s(e) { n(a, o, i, c, s, "throw", e) } c(void 0) })) } } var i = r(5), a = r(30), c = function(e) { return new Promise((function(t, r) { var n = new FileReader; n.onload = function() { t(n.result) }, n.onerror = function(e) { var t = e.target.error.code; r(Error("File could not be read! Code=".concat(t))) }, n.readAsArrayBuffer(e) })) }, s = function(e) { return new Promise((function(t) { a(e, (function(e) { return e.toBlob(t) }), { orientation: !0, canvas: !0 }) })) }, u = function() { var e = o(regeneratorRuntime.mark((function e(t) { var r, n, a, l; return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: if (r = t, void 0 !== t) { e.next = 3; break } return e.abrupt("return", "undefined"); case 3: if ("string" != typeof t) { e.next = 24; break } if (!t.endsWith(".pbm")) { e.next = 13; break } return e.next = 7, fetch(i(t)); case 7: return n = e.sent, e.next = 10, n.arrayBuffer(); case 10: r = e.sent, e.next = 22; break; case 13: return a = t, /data:image\/([a-zA-Z]*);base64,([^"]*)/.test(t) || (a = i(t)), e.t0 = c, e.next = 18, s(a); case 18: return e.t1 = e.sent, e.next = 21, (0, e.t0)(e.t1); case 21: r = e.sent; case 22: e.next = 47; break; case 24: if (!(t instanceof HTMLElement)) { e.next = 38; break } if ("IMG" !== t.tagName) { e.next = 29; break } return e.next = 28, u(t.src); case 28: r = e.sent; case 29: if ("VIDEO" !== t.tagName) { e.next = 33; break } return e.next = 32, u(t.poster); case 32: r = e.sent; case 33: if ("CANVAS" !== t.tagName) { e.next = 36; break } return e.next = 36, new Promise((function(e) { t.toBlob(function() { var t = o(regeneratorRuntime.mark((function t(n) { return regeneratorRuntime.wrap((function(t) { for (;;) switch (t.prev = t.next) { case 0: return t.next = 2, c(n); case 2: r = t.sent, e(); case 4: case "end": return t.stop() } }), t) }))); return function(e) { return t.apply(this, arguments) } }()) })); case 36: e.next = 47; break; case 38: if (!(t instanceof File || t instanceof Blob)) { e.next = 47; break } if (l = t, t.name.endsWith(".pbm")) { e.next = 44; break } return e.next = 43, s(l); case 43: l = e.sent; case 44: return e.next = 46, c(l); case 46: r = e.sent; case 47: return e.abrupt("return", new Uint8Array(r)); case 48: case "end": return e.stop() } }), e) }))); return function(t) { return e.apply(this, arguments) } }(); e.exports = u }, function(e, t, r) { e.exports = r(0), r(9), r(1), r(31), r(10), r(32), r(11), r(33), r(34) }, function(e, t, r) { var n, o, i; ! function(a) { "use strict"; o = [r(0)], void 0 === (i = "function" == typeof(n = function(e) { "undefined" != typeof fetch && "undefined" != typeof Request ? e.fetchBlob = function(e, t, r) { fetch(new Request(e, r)).then((function(e) { return e.blob() })).then(t). catch ((function(e) { t(null, e) })) } : "undefined" != typeof XMLHttpRequest && "undefined" != typeof ProgressEvent && (e.fetchBlob = function(e, t, r) { r = r || {}; var n = new XMLHttpRequest; n.open(r.method || "GET", e), r.headers && Object.keys(r.headers).forEach((function(e) { n.setRequestHeader(e, r.headers[e]) })), n.withCredentials = "include" === r.credentials, n.responseType = "blob", n.onload = function() { t(n.response) }, n.onerror = n.onabort = n.ontimeout = function(e) { t(null, e) }, n.send(r.body) }) }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t, r) { var n, o, i; function a(e) { return (a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) }! function(c) { "use strict"; o = [r(0), r(10)], void 0 === (i = "function" == typeof(n = function(e) { var t = e.ExifMap.prototype; t.tags = { 256: "ImageWidth", 257: "ImageHeight", 258: "BitsPerSample", 259: "Compression", 262: "PhotometricInterpretation", 274: "Orientation", 277: "SamplesPerPixel", 284: "PlanarConfiguration", 530: "YCbCrSubSampling", 531: "YCbCrPositioning", 282: "XResolution", 283: "YResolution", 296: "ResolutionUnit", 273: "StripOffsets", 278: "RowsPerStrip", 279: "StripByteCounts", 513: "JPEGInterchangeFormat", 514: "JPEGInterchangeFormatLength", 301: "TransferFunction", 318: "WhitePoint", 319: "PrimaryChromaticities", 529: "YCbCrCoefficients", 532: "ReferenceBlackWhite", 306: "DateTime", 270: "ImageDescription", 271: "Make", 272: "Model", 305: "Software", 315: "Artist", 33432: "Copyright", 34665: { 36864: "ExifVersion", 40960: "FlashpixVersion", 40961: "ColorSpace", 40962: "PixelXDimension", 40963: "PixelYDimension", 42240: "Gamma", 37121: "ComponentsConfiguration", 37122: "CompressedBitsPerPixel", 37500: "MakerNote", 37510: "UserComment", 40964: "RelatedSoundFile", 36867: "DateTimeOriginal", 36868: "DateTimeDigitized", 37520: "SubSecTime", 37521: "SubSecTimeOriginal", 37522: "SubSecTimeDigitized", 33434: "ExposureTime", 33437: "FNumber", 34850: "ExposureProgram", 34852: "SpectralSensitivity", 34855: "PhotographicSensitivity", 34856: "OECF", 34864: "SensitivityType", 34865: "StandardOutputSensitivity", 34866: "RecommendedExposureIndex", 34867: "ISOSpeed", 34868: "ISOSpeedLatitudeyyy", 34869: "ISOSpeedLatitudezzz", 37377: "ShutterSpeedValue", 37378: "ApertureValue", 37379: "BrightnessValue", 37380: "ExposureBias", 37381: "MaxApertureValue", 37382: "SubjectDistance", 37383: "MeteringMode", 37384: "LightSource", 37385: "Flash", 37396: "SubjectArea", 37386: "FocalLength", 41483: "FlashEnergy", 41484: "SpatialFrequencyResponse", 41486: "FocalPlaneXResolution", 41487: "FocalPlaneYResolution", 41488: "FocalPlaneResolutionUnit", 41492: "SubjectLocation", 41493: "ExposureIndex", 41495: "SensingMethod", 41728: "FileSource", 41729: "SceneType", 41730: "CFAPattern", 41985: "CustomRendered", 41986: "ExposureMode", 41987: "WhiteBalance", 41988: "DigitalZoomRatio", 41989: "FocalLengthIn35mmFilm", 41990: "SceneCaptureType", 41991: "GainControl", 41992: "Contrast", 41993: "Saturation", 41994: "Sharpness", 41995: "DeviceSettingDescription", 41996: "SubjectDistanceRange", 42016: "ImageUniqueID", 42032: "CameraOwnerName", 42033: "BodySerialNumber", 42034: "LensSpecification", 42035: "LensMake", 42036: "LensModel", 42037: "LensSerialNumber" }, 34853: { 0: "GPSVersionID", 1: "GPSLatitudeRef", 2: "GPSLatitude", 3: "GPSLongitudeRef", 4: "GPSLongitude", 5: "GPSAltitudeRef", 6: "GPSAltitude", 7: "GPSTimeStamp", 8: "GPSSatellites", 9: "GPSStatus", 10: "GPSMeasureMode", 11: "GPSDOP", 12: "GPSSpeedRef", 13: "GPSSpeed", 14: "GPSTrackRef", 15: "GPSTrack", 16: "GPSImgDirectionRef", 17: "GPSImgDirection", 18: "GPSMapDatum", 19: "GPSDestLatitudeRef", 20: "GPSDestLatitude", 21: "GPSDestLongitudeRef", 22: "GPSDestLongitude", 23: "GPSDestBearingRef", 24: "GPSDestBearing", 25: "GPSDestDistanceRef", 26: "GPSDestDistance", 27: "GPSProcessingMethod", 28: "GPSAreaInformation", 29: "GPSDateStamp", 30: "GPSDifferential", 31: "GPSHPositioningError" }, 40965: { 1: "InteroperabilityIndex" } }, t.stringValues = { ExposureProgram: { 0: "Undefined", 1: "Manual", 2: "Normal program", 3: "Aperture priority", 4: "Shutter priority", 5: "Creative program", 6: "Action program", 7: "Portrait mode", 8: "Landscape mode" }, MeteringMode: { 0: "Unknown", 1: "Average", 2: "CenterWeightedAverage", 3: "Spot", 4: "MultiSpot", 5: "Pattern", 6: "Partial", 255: "Other" }, LightSource: { 0: "Unknown", 1: "Daylight", 2: "Fluorescent", 3: "Tungsten (incandescent light)", 4: "Flash", 9: "Fine weather", 10: "Cloudy weather", 11: "Shade", 12: "Daylight fluorescent (D 5700 - 7100K)", 13: "Day white fluorescent (N 4600 - 5400K)", 14: "Cool white fluorescent (W 3900 - 4500K)", 15: "White fluorescent (WW 3200 - 3700K)", 17: "Standard light A", 18: "Standard light B", 19: "Standard light C", 20: "D55", 21: "D65", 22: "D75", 23: "D50", 24: "ISO studio tungsten", 255: "Other" }, Flash: { 0: "Flash did not fire", 1: "Flash fired", 5: "Strobe return light not detected", 7: "Strobe return light detected", 9: "Flash fired, compulsory flash mode", 13: "Flash fired, compulsory flash mode, return light not detected", 15: "Flash fired, compulsory flash mode, return light detected", 16: "Flash did not fire, compulsory flash mode", 24: "Flash did not fire, auto mode", 25: "Flash fired, auto mode", 29: "Flash fired, auto mode, return light not detected", 31: "Flash fired, auto mode, return light detected", 32: "No flash function", 65: "Flash fired, red-eye reduction mode", 69: "Flash fired, red-eye reduction mode, return light not detected", 71: "Flash fired, red-eye reduction mode, return light detected", 73: "Flash fired, compulsory flash mode, red-eye reduction mode", 77: "Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected", 79: "Flash fired, compulsory flash mode, red-eye reduction mode, return light detected", 89: "Flash fired, auto mode, red-eye reduction mode", 93: "Flash fired, auto mode, return light not detected, red-eye reduction mode", 95: "Flash fired, auto mode, return light detected, red-eye reduction mode" }, SensingMethod: { 1: "Undefined", 2: "One-chip color area sensor", 3: "Two-chip color area sensor", 4: "Three-chip color area sensor", 5: "Color sequential area sensor", 7: "Trilinear sensor", 8: "Color sequential linear sensor" }, SceneCaptureType: { 0: "Standard", 1: "Landscape", 2: "Portrait", 3: "Night scene" }, SceneType: { 1: "Directly photographed" }, CustomRendered: { 0: "Normal process", 1: "Custom process" }, WhiteBalance: { 0: "Auto white balance", 1: "Manual white balance" }, GainControl: { 0: "None", 1: "Low gain up", 2: "High gain up", 3: "Low gain down", 4: "High gain down" }, Contrast: { 0: "Normal", 1: "Soft", 2: "Hard" }, Saturation: { 0: "Normal", 1: "Low saturation", 2: "High saturation" }, Sharpness: { 0: "Normal", 1: "Soft", 2: "Hard" }, SubjectDistanceRange: { 0: "Unknown", 1: "Macro", 2: "Close view", 3: "Distant view" }, FileSource: { 3: "DSC" }, ComponentsConfiguration: { 0: "", 1: "Y", 2: "Cb", 3: "Cr", 4: "R", 5: "G", 6: "B" }, Orientation: { 1: "top-left", 2: "top-right", 3: "bottom-right", 4: "bottom-left", 5: "left-top", 6: "right-top", 7: "right-bottom", 8: "left-bottom" } }, t.getText = function(e) { var t = this.get(e); switch (e) { case "LightSource": case "Flash": case "MeteringMode": case "ExposureProgram": case "SensingMethod": case "SceneCaptureType": case "SceneType": case "CustomRendered": case "WhiteBalance": case "GainControl": case "Contrast": case "Saturation": case "Sharpness": case "SubjectDistanceRange": case "FileSource": case "Orientation": return this.stringValues[e][t]; case "ExifVersion": case "FlashpixVersion": if (!t) return; return String.fromCharCode(t[0], t[1], t[2], t[3]); case "ComponentsConfiguration": if (!t) return; return this.stringValues[e][t[0]] + this.stringValues[e][t[1]] + this.stringValues[e][t[2]] + this.stringValues[e][t[3]]; case "GPSVersionID": if (!t) return; return t[0] + "." + t[1] + "." + t[2] + "." + t[3] } return String(t) }, t.getAll = function() { var e, t, r, n = {}; for (e in this) Object.prototype.hasOwnProperty.call(this, e) && ((t = this[e]) && t.getAll ? n[this.privateIFDs[e].name] = t.getAll() : (r = this.tags[e]) && (n[r] = this.getText(r))); return n }, t.getName = function(e) { var t = this.tags[e]; return "object" === a(t) ? this.privateIFDs[e].name : t }, function() { var e, r, n, o = t.tags; for (e in o) if (Object.prototype.hasOwnProperty.call(o, e)) if (r = t.privateIFDs[e]) for (e in n = o[e]) Object.prototype.hasOwnProperty.call(n, e) && (r.map[n[e]] = Number(e)); else t.map[o[e]] = Number(e) }() }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t, r) { var n, o, i; ! function(a) { "use strict"; o = [r(0), r(11)], void 0 === (i = "function" == typeof(n = function(e) { var t = e.IptcMap.prototype; t.tags = { 0: "ApplicationRecordVersion", 3: "ObjectTypeReference", 4: "ObjectAttributeReference", 5: "ObjectName", 7: "EditStatus", 8: "EditorialUpdate", 10: "Urgency", 12: "SubjectReference", 15: "Category", 20: "SupplementalCategories", 22: "FixtureIdentifier", 25: "Keywords", 26: "ContentLocationCode", 27: "ContentLocationName", 30: "ReleaseDate", 35: "ReleaseTime", 37: "ExpirationDate", 38: "ExpirationTime", 40: "SpecialInstructions", 42: "ActionAdvised", 45: "ReferenceService", 47: "ReferenceDate", 50: "ReferenceNumber", 55: "DateCreated", 60: "TimeCreated", 62: "DigitalCreationDate", 63: "DigitalCreationTime", 65: "OriginatingProgram", 70: "ProgramVersion", 75: "ObjectCycle", 80: "Byline", 85: "BylineTitle", 90: "City", 92: "Sublocation", 95: "State", 100: "CountryCode", 101: "Country", 103: "OriginalTransmissionReference", 105: "Headline", 110: "Credit", 115: "Source", 116: "CopyrightNotice", 118: "Contact", 120: "Caption", 121: "LocalCaption", 122: "Writer", 125: "RasterizedCaption", 130: "ImageType", 131: "ImageOrientation", 135: "LanguageIdentifier", 150: "AudioType", 151: "AudioSamplingRate", 152: "AudioSamplingResolution", 153: "AudioDuration", 154: "AudioOutcue", 184: "JobID", 185: "MasterDocumentID", 186: "ShortDocumentID", 187: "UniqueDocumentID", 188: "OwnerID", 200: "ObjectPreviewFileFormat", 201: "ObjectPreviewFileVersion", 202: "ObjectPreviewData", 221: "Prefs", 225: "ClassifyState", 228: "SimilarityIndex", 230: "DocumentNotes", 231: "DocumentHistory", 232: "ExifCameraInfo", 255: "CatalogSets" }, t.stringValues = { 10: { 0: "0 (reserved)", 1: "1 (most urgent)", 2: "2", 3: "3", 4: "4", 5: "5 (normal urgency)", 6: "6", 7: "7", 8: "8 (least urgent)", 9: "9 (user-defined priority)" }, 75: { a: "Morning", b: "Both Morning and Evening", p: "Evening" }, 131: { L: "Landscape", P: "Portrait", S: "Square" } }, t.getText = function(e) { var t = this.get(e), r = this.map[e], n = this.stringValues[r]; return n ? n[t] : String(t) }, t.getAll = function() { var e, t, r = {}; for (e in this) Object.prototype.hasOwnProperty.call(this, e) && (t = this.tags[e]) && (r[t] = this.getText(t)); return r }, t.getName = function(e) { return this.tags[e] }, function() { var e, r = t.tags, n = t.map || {}; for (e in r) Object.prototype.hasOwnProperty.call(r, e) && (n[r[e]] = Number(e)) }() }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t, r) { var n, o, i; ! function(a) { "use strict"; o = [r(0), r(9), r(1)], void 0 === (i = "function" == typeof(n = function(e) { var t = e.hasCanvasOption, r = e.hasMetaOption, n = e.transformCoordinates, o = e.getTransformedOptions; i = document.createElement("img"), i.onload = function() { e.orientation = 1 === i.width && 2 === i.height }, i.src = "data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/xABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==", e.hasCanvasOption = function(r) { return !0 == !! r.orientation && !e.orientation || r.orientation > 1 && r.orientation < 9 || t.call(e, r) }, e.hasMetaOption = function(t) { return t && !0 === t.orientation && !e.orientation || r.call(e, t) }, e.transformCoordinates = function(t, r) { n.call(e, t, r); var o = t.getContext("2d"), i = t.width, a = t.height, c = t.style.width, s = t.style.height, u = r.orientation; if (u > 1 && u < 9) switch (u > 4 && (t.width = a, t.height = i, t.style.width = s, t.style.height = c), u) { case 2: o.translate(i, 0), o.scale(-1, 1); break; case 3: o.translate(i, a), o.rotate(Math.PI); break; case 4: o.translate(0, a), o.scale(1, -1); break; case 5: o.rotate(.5 * Math.PI), o.scale(1, -1); break; case 6: o.rotate(.5 * Math.PI), o.translate(0, -a); break; case 7: o.rotate(.5 * Math.PI), o.translate(i, -a), o.scale(-1, 1); break; case 8: o.rotate(-.5 * Math.PI), o.translate(-i, 0) } }, e.getTransformedOptions = function(t, r, n) { var i, a, c = o.call(e, t, r), s = c.orientation; if (!0 === s) { if (e.orientation) return c; s = n && n.exif && n.exif.get("Orientation") } if (!(s > 1 && s < 9)) return c; for (a in i = {}, c) Object.prototype.hasOwnProperty.call(c, a) && (i[a] = c[a]); switch (i.orientation = s, s) { case 2: i.left = c.right, i.right = c.left; break; case 3: i.left = c.right, i.top = c.bottom, i.right = c.left, i.bottom = c.top; break; case 4: i.top = c.bottom, i.bottom = c.top; break; case 5: i.left = c.top, i.top = c.left, i.right = c.bottom, i.bottom = c.right; break; case 6: i.left = c.top, i.top = c.right, i.right = c.bottom, i.bottom = c.left; break; case 7: i.left = c.bottom, i.top = c.right, i.right = c.top, i.bottom = c.left; break; case 8: i.left = c.bottom, i.top = c.left, i.right = c.top, i.bottom = c.right } return i.orientation > 4 && (i.maxWidth = c.maxHeight, i.maxHeight = c.maxWidth, i.minWidth = c.minHeight, i.minHeight = c.minWidth, i.sourceWidth = c.sourceHeight, i.sourceHeight = c.sourceWidth), i }; var i }) ? n.apply(t, o) : n) || (e.exports = i) }() }, function(e, t, r) { function n(e, t, r, n, o, i, a) { try { var c = e[i](a), s = c.value } catch (e) { return void r(e) } c.done ? t(s) : Promise.resolve(s).then(n, o) } function o(e) { return function() { var t = this, r = arguments; return new Promise((function(o, i) { var a = e.apply(t, r); function c(e) { n(a, o, i, c, s, "next", e) } function s(e) { n(a, o, i, c, s, "throw", e) } c(void 0) })) } } var i = r(7), a = function() { var e = o(regeneratorRuntime.mark((function e(t, r, n) { var a; return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return a = i(n), e.next = 3, a.load(); case 3: return e.next = 5, a.loadLanguage(r); case 5: return e.next = 7, a.initialize(r); case 7: return e.abrupt("return", a.recognize(t). finally(o(regeneratorRuntime.mark((function e() { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return e.next = 2, a.terminate(); case 2: case "end": return e.stop() } }), e) }))))); case 8: case "end": return e.stop() } }), e) }))); return function(t, r, n) { return e.apply(this, arguments) } }(), c = function() { var e = o(regeneratorRuntime.mark((function e(t, r) { var n; return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return n = i(r), e.next = 3, n.load(); case 3: return e.next = 5, n.loadLanguage("osd"); case 5: return e.next = 7, n.initialize("osd"); case 7: return e.abrupt("return", n.detect(t). finally(o(regeneratorRuntime.mark((function e() { return regeneratorRuntime.wrap((function(e) { for (;;) switch (e.prev = e.next) { case 0: return e.next = 2, n.terminate(); case 2: case "end": return e.stop() } }), e) }))))); case 8: case "end": return e.stop() } }), e) }))); return function(t, r) { return e.apply(this, arguments) } }(); e.exports = { recognize: a, detect: c } }, function(e, t) { e.exports = { AFR: "afr", AMH: "amh", ARA: "ara", ASM: "asm", AZE: "aze", AZE_CYRL: "aze_cyrl", BEL: "bel", BEN: "ben", BOD: "bod", BOS: "bos", BUL: "bul", CAT: "cat", CEB: "ceb", CES: "ces", CHI_SIM: "chi_sim", CHI_TRA: "chi_tra", CHR: "chr", CYM: "cym", DAN: "dan", DEU: "deu", DZO: "dzo", ELL: "ell", ENG: "eng", ENM: "enm", EPO: "epo", EST: "est", EUS: "eus", FAS: "fas", FIN: "fin", FRA: "fra", FRK: "frk", FRM: "frm", GLE: "gle", GLG: "glg", GRC: "grc", GUJ: "guj", HAT: "hat", HEB: "heb", HIN: "hin", HRV: "hrv", HUN: "hun", IKU: "iku", IND: "ind", ISL: "isl", ITA: "ita", ITA_OLD: "ita_old", JAV: "jav", JPN: "jpn", KAN: "kan", KAT: "kat", KAT_OLD: "kat_old", KAZ: "kaz", KHM: "khm", KIR: "kir", KOR: "kor", KUR: "kur", LAO: "lao", LAT: "lat", LAV: "lav", LIT: "lit", MAL: "mal", MAR: "mar", MKD: "mkd", MLT: "mlt", MSA: "msa", MYA: "mya", NEP: "nep", NLD: "nld", NOR: "nor", ORI: "ori", PAN: "pan", POL: "pol", POR: "por", PUS: "pus", RON: "ron", RUS: "rus", SAN: "san", SIN: "sin", SLK: "slk", SLV: "slv", SPA: "spa", SPA_OLD: "spa_old", SQI: "sqi", SRP: "srp", SRP_LATN: "srp_latn", SWA: "swa", SWE: "swe", SYR: "syr", TAM: "tam", TEL: "tel", TGK: "tgk", TGL: "tgl", THA: "tha", TIR: "tir", TUR: "tur", UIG: "uig", UKR: "ukr", URD: "urd", UZB: "uzb", UZB_CYRL: "uzb_cyrl", VIE: "vie", YID: "yid" } }, function(e, t) { e.exports = { OSD_ONLY: "0", AUTO_OSD: "1", AUTO_ONLY: "2", AUTO: "3", SINGLE_COLUMN: "4", SINGLE_BLOCK_VERT_TEXT: "5", SINGLE_BLOCK: "6", SINGLE_LINE: "7", SINGLE_WORD: "8", CIRCLE_WORD: "9", SINGLE_CHAR: "10", SPARSE_TEXT: "11", SPARSE_TEXT_OSD: "12" } } ]) })); //# sourceMappingURL=tesseract.min.js.map