{
  "version": 3,
  "sources": ["/cdn/shop/t/221/assets/eyebuddy-rx-ocr.js?ebv=20260918-upload-recovery-v2"],
  "sourcesContent": ["/* EyeBuddy prescription scanner prototype.\n   Runs OCR in the browser, then returns only values that pass strict Rx checks. */\n(function (global) {\n  'use strict';\n\n  var TESSERACT_URL = 'https://cdn.jsdelivr.net/npm/tesseract.js@5.1.1/dist/tesseract.min.js';\n  var PDFJS_URL = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.min.js';\n  var PDFJS_WORKER_URL = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js';\n  var scriptPromises = {};\n  var tesseractWorkerPromise = null;\n  var tesseractProgress = function () {};\n\n  function loadScript(url, ready) {\n    if (ready()) return Promise.resolve();\n    if (scriptPromises[url]) return scriptPromises[url];\n    scriptPromises[url] = new Promise(function (resolve, reject) {\n      var script = document.createElement('script');\n      script.src = url;\n      script.async = true;\n      script.onload = function () { ready() ? resolve() : reject(new Error('Scanner library did not initialize.')); };\n      script.onerror = function () { reject(new Error('Scanner library could not be loaded.')); };\n      document.head.appendChild(script);\n    });\n    return scriptPromises[url];\n  }\n\n  function normalizeText(text) {\n    return String(text || '')\n      .replace(/[\\u2212\\u2012\\u2013\\u2014]/g, '-')\n      .replace(/[\\uFF0B]/g, '+')\n      .replace(/\\b0D\\b/gi, 'OD')\n      .replace(/\\b0S\\b/gi, 'OS')\n      .replace(/\\bO\\.D\\.?\\b/gi, 'OD')\n      .replace(/\\bO\\.S\\.?\\b/gi, 'OS')\n      .replace(/\\bSPHERE\\b/gi, 'SPH')\n      .replace(/\\bCYLINDER\\b/gi, 'CYL')\n      .replace(/\\bPUPILLARY\\s+DISTANCE\\b/gi, 'PD')\n      .replace(/\\r/g, '')\n      .replace(/[\\t ]+/g, ' ')\n      .split('\\n')\n      .map(function (line) { return line.trim(); })\n      .filter(Boolean)\n      .join('\\n')\n      .toUpperCase();\n  }\n\n  function decimalPlaces(step) {\n    var value = String(step);\n    return value.indexOf('.') === -1 ? 0 : value.length - value.indexOf('.') - 1;\n  }\n\n  function validStep(value, step) {\n    return Math.abs(value / step - Math.round(value / step)) < 0.035;\n  }\n\n  function opticalValue(raw, min, max) {\n    if (raw == null) return null;\n    var original = String(raw).trim().toUpperCase();\n    if (/^(PL|PLANO|SPH|SPHDS|BAL|BALANCE)$/.test(original)) return '0.00';\n    var compact = original.replace(/\\s+/g, '').replace(',', '.');\n    if (!/^[+-]\\d{1,2}(?:\\.\\d{1,2})?$/.test(compact) && !/^[+-]?0(?:\\.0+)?$/.test(compact)) return null;\n    var value = Number(compact);\n    if (!isFinite(value) || value < min || value > max || !validStep(value, 0.25)) return null;\n    return value.toFixed(2);\n  }\n\n  function axisValue(raw) {\n    if (raw == null) return null;\n    var compact = String(raw).replace(/[^0-9]/g, '');\n    if (!compact) return null;\n    var value = Number(compact);\n    return Number.isInteger(value) && value >= 1 && value <= 180 ? String(value) : null;\n  }\n\n  function pdValue(raw, dual) {\n    if (raw == null) return null;\n    var value = Number(String(raw).replace(',', '.').replace(/[^0-9.]/g, ''));\n    var min = dual ? 20 : 40;\n    var max = dual ? 40 : 80;\n    if (!isFinite(value) || value < min || value > max || !validStep(value, 0.5)) return null;\n    return value.toFixed(2);\n  }\n\n  function signedTokens(text) {\n    var tokens = String(text || '').match(/(?:PLANO|SPHDS?|BAL(?:ANCE)?|[+-]\\s*\\d{1,2}(?:[.,]\\d{1,2})?|\\b0(?:[.,]0+)?\\b|\\b\\d{1,3}\\b)/gi) || [];\n    return tokens.map(function (token) { return token.replace(/\\s+/g, ''); });\n  }\n\n  function explicitField(segment, labels) {\n    var label = labels.join('|');\n    var expression = new RegExp('(?:' + label + ')\\\\s*[:=]?\\\\s*(PLANO|SPHDS?|BAL(?:ANCE)?|[+-]\\\\s*\\\\d{1,2}(?:[.,]\\\\d{1,2})?|0(?:[.,]0+)?)(?![\\\\d.,])', 'i');\n    var match = segment.match(expression);\n    return match ? match[1] : null;\n  }\n\n  function explicitAxis(segment) {\n    var match = segment.match(/(?:AXIS|AX|X)\\s*[:=]?\\s*(\\d{1,3})\\b/i);\n    return match ? match[1] : null;\n  }\n\n  function eyeSegment(text, eye) {\n    var startPattern = eye === 'od' ? /\\b(?:OD|RIGHT(?:\\s+EYE)?|R\\/E|RE)\\b/i : /\\b(?:OS|LEFT(?:\\s+EYE)?|L\\/E|LE)\\b/i;\n    var otherPattern = eye === 'od' ? /\\b(?:OS|LEFT(?:\\s+EYE)?|L\\/E|LE)\\b/i : /\\b(?:OD|RIGHT(?:\\s+EYE)?|R\\/E|RE)\\b/i;\n    var start = text.search(startPattern);\n    if (start < 0) return '';\n    var tail = text.slice(start);\n    var other = tail.slice(2).search(otherPattern);\n    return other >= 0 ? tail.slice(0, other + 2) : tail.slice(0, 240);\n  }\n\n  function parseEye(text, eye, needsAdd) {\n    var segment = eyeSegment(text, eye);\n    var output = { sph: null, cyl: null, axis: null, add: null };\n    if (!segment) return output;\n\n    output.sph = opticalValue(explicitField(segment, ['SPH']), -20, 20);\n    output.cyl = opticalValue(explicitField(segment, ['CYL']), -8, 8);\n    output.axis = axisValue(explicitAxis(segment));\n    output.add = opticalValue(explicitField(segment, ['ADD', 'NV[- ]?ADD']), 0, 4);\n\n    var firstLine = segment.split('\\n')[0] || segment;\n    var row = firstLine.replace(/^.*?\\b(?:OD|OS|RIGHT(?:\\s+EYE)?|LEFT(?:\\s+EYE)?|R\\/E|L\\/E|RE|LE)\\b/i, '');\n    var tokens = signedTokens(row);\n    var optical = tokens.filter(function (token) { return /^(?:PLANO|SPHDS?|BAL|BALANCE|[+-]|0)/i.test(token); });\n    var integers = tokens.filter(function (token) { return /^\\d{1,3}$/.test(token); });\n    var hasSphLabel = /\\bSPH\\b/i.test(segment);\n    var hasCylLabel = /\\bCYL\\b/i.test(segment);\n    var hasAxisLabel = /\\b(?:AXIS|AX)\\b/i.test(segment);\n    var hasAddLabel = /\\b(?:ADD|NV[- ]?ADD)\\b/i.test(segment);\n\n    if (!output.sph && !hasSphLabel && optical[0]) output.sph = opticalValue(optical[0], -20, 20);\n    if (!output.cyl && !hasCylLabel && optical[1]) output.cyl = opticalValue(optical[1], -8, 8);\n    if (!output.axis && !hasAxisLabel) {\n      var axisCandidate = integers.find(function (token) { return Number(token) >= 1 && Number(token) <= 180; });\n      output.axis = axisValue(axisCandidate);\n    }\n    if (needsAdd && !output.add && !hasAddLabel && optical[2]) output.add = opticalValue(optical[2], 0, 4);\n    if (output.cyl === '0.00') output.axis = '';\n    return output;\n  }\n\n  function parsePd(text) {\n    var lines = text.split('\\n').filter(function (line) { return /\\b(?:PD|P\\.D\\.)\\b/.test(line); });\n    for (var i = 0; i < lines.length; i++) {\n      var line = lines[i].replace(/\\b(?:PD|P\\.D\\.)\\b.*?[:=]?/i, '');\n      var numbers = (line.match(/\\d{2}(?:[.,]\\d{1,2})?/g) || []).map(function (value) { return value.replace(',', '.'); });\n      var dual = numbers.map(function (value) { return pdValue(value, true); }).filter(Boolean);\n      if (dual.length >= 2) return { mode: 'dual', right: dual[0], left: dual[1] };\n      var single = numbers.map(function (value) { return pdValue(value, false); }).find(Boolean);\n      if (single) return { mode: 'single', value: single };\n    }\n    return null;\n  }\n\n  function parseText(rawText, options) {\n    options = options || {};\n    var text = normalizeText(rawText);\n    var od = parseEye(text, 'od', options.needsAdd);\n    var os = parseEye(text, 'os', options.needsAdd);\n    var pd = parsePd(text);\n    var values = { od: od, os: os, pd: pd, hasPrism: /\\bPRISM\\b/.test(text) };\n    var missing = [];\n\n    ['od', 'os'].forEach(function (eye) {\n      if (values[eye].sph == null) missing.push(eye + '.sph');\n      if (values[eye].cyl == null) missing.push(eye + '.cyl');\n      if (values[eye].cyl && values[eye].cyl !== '0.00' && !values[eye].axis) missing.push(eye + '.axis');\n      if (options.needsAdd && !(Number(values[eye].add) > 0)) missing.push(eye + '.add');\n    });\n    if (!pd) missing.push('pd');\n\n    var coreCount = ['sph', 'cyl'].reduce(function (count, field) {\n      return count + (od[field] != null ? 1 : 0) + (os[field] != null ? 1 : 0);\n    }, 0);\n    return {\n      kind: coreCount === 0 ? 'allError' : missing.length ? 'partial' : 'full',\n      values: values,\n      missing: missing,\n      rawText: text\n    };\n  }\n\n  function imageToCanvas(file) {\n    return createImageBitmap(file).then(function (bitmap) {\n      var maxWidth = 2400;\n      var minWidth = 1500;\n      var scale = Math.min(maxWidth / bitmap.width, Math.max(1, minWidth / bitmap.width));\n      var canvas = document.createElement('canvas');\n      canvas.width = Math.max(1, Math.round(bitmap.width * scale));\n      canvas.height = Math.max(1, Math.round(bitmap.height * scale));\n      var context = canvas.getContext('2d', { willReadFrequently: true });\n      context.fillStyle = '#fff';\n      context.fillRect(0, 0, canvas.width, canvas.height);\n      context.drawImage(bitmap, 0, 0, canvas.width, canvas.height);\n      bitmap.close();\n\n      var image = context.getImageData(0, 0, canvas.width, canvas.height);\n      for (var i = 0; i < image.data.length; i += 4) {\n        var gray = image.data[i] * 0.299 + image.data[i + 1] * 0.587 + image.data[i + 2] * 0.114;\n        var contrast = Math.max(0, Math.min(255, (gray - 128) * 1.45 + 128));\n        image.data[i] = contrast;\n        image.data[i + 1] = contrast;\n        image.data[i + 2] = contrast;\n      }\n      context.putImageData(image, 0, 0);\n      return canvas;\n    });\n  }\n\n  function pdfInputs(file, progress) {\n    return loadScript(PDFJS_URL, function () { return !!global.pdfjsLib; }).then(function () {\n      global.pdfjsLib.GlobalWorkerOptions.workerSrc = PDFJS_WORKER_URL;\n      return file.arrayBuffer();\n    }).then(function (buffer) {\n      return global.pdfjsLib.getDocument({ data: buffer }).promise;\n    }).then(async function (pdf) {\n      var text = [];\n      var canvases = [];\n      var pages = Math.min(pdf.numPages, 2);\n      for (var pageNo = 1; pageNo <= pages; pageNo++) {\n        progress({ status: 'preparing', progress: (pageNo - 1) / pages * 0.15 });\n        var page = await pdf.getPage(pageNo);\n        var content = await page.getTextContent();\n        var rows = {};\n        content.items.forEach(function (item) {\n          var y = Math.round(item.transform[5] / 3) * 3;\n          (rows[y] = rows[y] || []).push({ x: item.transform[4], text: item.str });\n        });\n        Object.keys(rows).sort(function (a, b) { return Number(b) - Number(a); }).forEach(function (key) {\n          text.push(rows[key].sort(function (a, b) { return a.x - b.x; }).map(function (item) { return item.text; }).join(' '));\n        });\n        var viewport = page.getViewport({ scale: 2 });\n        var canvas = document.createElement('canvas');\n        canvas.width = viewport.width;\n        canvas.height = viewport.height;\n        await page.render({ canvasContext: canvas.getContext('2d'), viewport: viewport }).promise;\n        canvases.push(canvas);\n      }\n      return { text: text.join('\\n'), canvases: canvases };\n    });\n  }\n\n  function tesseractWorker() {\n    return loadScript(TESSERACT_URL, function () { return !!global.Tesseract; }).then(function () {\n      if (!tesseractWorkerPromise) {\n        tesseractWorkerPromise = global.Tesseract.createWorker('eng', 1, {\n          logger: function (message) { tesseractProgress(message); }\n        });\n      }\n      return tesseractWorkerPromise;\n    });\n  }\n\n  function prewarm() {\n    return tesseractWorker().catch(function () { return null; });\n  }\n\n  function ocrCanvas(canvas, progress, offset, span) {\n    tesseractProgress = function (message) {\n      if (message.status === 'recognizing text') {\n        progress({ status: 'recognizing', progress: offset + Number(message.progress || 0) * span });\n      }\n    };\n    return tesseractWorker().then(function (worker) {\n      return worker.recognize(canvas);\n    }).then(function (result) {\n      return { text: result.data.text || '', confidence: Number(result.data.confidence || 0) };\n    });\n  }\n\n  function coreComplete(result, needsAdd) {\n    if (!result || !result.values) return false;\n    return ['od', 'os'].every(function (eye) {\n      var item = result.values[eye] || {};\n      if (item.sph == null || item.cyl == null) return false;\n      if (item.cyl !== '0.00' && !item.axis) return false;\n      return !needsAdd || Number(item.add) > 0;\n    });\n  }\n\n  function trustedLocalResult(result, needsAdd) {\n    return coreComplete(result, needsAdd) && Number(result.confidence || 0) >= 82;\n  }\n\n  async function scanLocal(file, options, progress) {\n    progress({ status: 'preparing', progress: 0.03 });\n    if (file.type === 'application/pdf' || /\\.pdf$/i.test(file.name || '')) {\n      var pdf = await pdfInputs(file, progress);\n      var embedded = parseText(pdf.text, options);\n      embedded.confidence = pdf.text ? 100 : 0;\n      embedded.source = 'local-pdf-text';\n      if (trustedLocalResult(embedded, options.needsAdd === true)) return embedded;\n      if (!pdf.canvases.length) return embedded;\n      var pdfOcr = await ocrCanvas(pdf.canvases[0], progress, 0.15, 0.75);\n      var parsedPdf = parseText(pdfOcr.text, options);\n      parsedPdf.confidence = pdfOcr.confidence;\n      parsedPdf.source = 'local-pdf-ocr';\n      return parsedPdf;\n    }\n    var canvas = await imageToCanvas(file);\n    var recognized = await ocrCanvas(canvas, progress, 0.08, 0.82);\n    var parsed = parseText(recognized.text, options);\n    parsed.confidence = recognized.confidence;\n    parsed.source = 'local-image-ocr';\n    return parsed;\n  }\n\n  function fileBase64(file) {\n    return file.arrayBuffer().then(function (buffer) {\n      var bytes = new Uint8Array(buffer), chunk = 0x8000, binary = '';\n      for (var i = 0; i < bytes.length; i += chunk) {\n        binary += String.fromCharCode.apply(null, bytes.subarray(i, i + chunk));\n      }\n      return btoa(binary);\n    });\n  }\n\n  function prepareServiceFile(file) {\n    if (!/^image\\//i.test(file.type || '')) return Promise.resolve(file);\n    return createImageBitmap(file).then(function (bitmap) {\n      var maxSide = 1600;\n      var scale = Math.min(1, maxSide / Math.max(bitmap.width, bitmap.height));\n      if (scale === 1 && file.size <= 900 * 1024) {\n        bitmap.close();\n        return file;\n      }\n      var canvas = document.createElement('canvas');\n      canvas.width = Math.max(1, Math.round(bitmap.width * scale));\n      canvas.height = Math.max(1, Math.round(bitmap.height * scale));\n      var context = canvas.getContext('2d');\n      context.fillStyle = '#fff';\n      context.fillRect(0, 0, canvas.width, canvas.height);\n      context.drawImage(bitmap, 0, 0, canvas.width, canvas.height);\n      bitmap.close();\n      return new Promise(function (resolve, reject) {\n        canvas.toBlob(function (blob) {\n          if (!blob) return reject(new Error('The prescription image could not be prepared.'));\n          resolve(new File([blob], file.name.replace(/\\.[^.]+$/, '') + '.jpg', { type: 'image/jpeg' }));\n        }, 'image/jpeg', 0.86);\n      });\n    }).catch(function () {\n      return file;\n    });\n  }\n\n  function apiOptical(raw, min, max) {\n    if (raw == null || raw === '') return null;\n    var value = Number(raw);\n    if (!isFinite(value) || value < min || value > max || !validStep(value, 0.25)) return null;\n    return value.toFixed(2);\n  }\n\n  function sanitizeServiceResult(result, needsAdd) {\n    var source = result && result.values ? result.values : {};\n    var values = { od: {}, os: {}, pd: null, hasPrism: source.hasPrism === true };\n    var missing = [];\n    ['od', 'os'].forEach(function (eye) {\n      var item = source[eye] || {};\n      values[eye].sph = apiOptical(item.sph, -20, 20);\n      values[eye].cyl = apiOptical(item.cyl, -8, 8);\n      values[eye].axis = axisValue(item.axis);\n      values[eye].add = apiOptical(item.add, 0, 4);\n      if (values[eye].cyl === '0.00') values[eye].axis = '';\n      if (values[eye].sph == null) missing.push(eye + '.sph');\n      if (values[eye].cyl == null) missing.push(eye + '.cyl');\n      if (values[eye].cyl && values[eye].cyl !== '0.00' && !values[eye].axis) missing.push(eye + '.axis');\n      if (needsAdd && !(Number(values[eye].add) > 0)) missing.push(eye + '.add');\n    });\n    if (source.pd && source.pd.mode === 'single') {\n      var single = pdValue(source.pd.value, false);\n      if (single) values.pd = { mode: 'single', value: single };\n    } else if (source.pd && source.pd.mode === 'dual') {\n      var right = pdValue(source.pd.right, true), left = pdValue(source.pd.left, true);\n      if (right && left) values.pd = { mode: 'dual', right: right, left: left };\n    }\n    if (!values.pd) missing.push('pd');\n    var core = ['od', 'os'].reduce(function (count, eye) {\n      return count + (values[eye].sph != null ? 1 : 0) + (values[eye].cyl != null ? 1 : 0);\n    }, 0);\n    return {\n      kind: core === 0 ? 'allError' : missing.length ? 'partial' : 'full',\n      values: values,\n      missing: missing,\n      confidence: Number(result.confidence || 0),\n      source: result.source || 'vision-consensus'\n    };\n  }\n\n  function reviewFallbackResult(needsAdd, source) {\n    var missing = ['od.sph', 'od.cyl', 'od.axis', 'os.sph', 'os.cyl', 'os.axis'];\n    if (needsAdd) missing.push('od.add', 'os.add');\n    missing.push('pd');\n    return {\n      kind: 'partial',\n      values: {\n        od: { sph: null, cyl: null, axis: null, add: null },\n        os: { sph: null, cyl: null, axis: null, add: null },\n        pd: null,\n        hasPrism: false\n      },\n      missing: missing,\n      confidence: 0,\n      source: source || 'scan-timeout-review'\n    };\n  }\n\n  async function scanService(file, options, progress) {\n    progress({ status: 'preparing', progress: 0.05 });\n    var uploadFile = await prepareServiceFile(file);\n    var data = await fileBase64(uploadFile);\n    progress({ status: 'recognizing', progress: 0.2 });\n    var controller = typeof AbortController === 'function' ? new AbortController() : null;\n    var timeoutId = controller ? setTimeout(function () { controller.abort(); }, Number(options.cloudTimeoutMs || 14500)) : null;\n    try {\n      var response = await fetch(options.endpoint, {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ filename: uploadFile.name, mimeType: uploadFile.type || 'application/octet-stream', data: data, needsAdd: options.needsAdd === true }),\n        signal: controller ? controller.signal : undefined\n      });\n      var result = await response.json().catch(function () { return {}; });\n      if (!response.ok) throw new Error(result.error || 'The prescription scanner could not complete this request.');\n      progress({ status: 'done', progress: 1 });\n      return sanitizeServiceResult(result, options.needsAdd === true);\n    } catch (error) {\n      if (error && error.name === 'AbortError') throw new Error('The AI scanner took too long to respond.');\n      throw error;\n    } finally {\n      if (timeoutId) clearTimeout(timeoutId);\n    }\n  }\n\n  async function scan(file, options) {\n    options = options || {};\n    var progress = typeof options.progress === 'function' ? options.progress : function () {};\n    if (!file) throw new Error('Choose a prescription photo or PDF.');\n    if (file.size > 10 * 1024 * 1024) throw new Error('File is over 10 MB.');\n    var localPromise = scanLocal(file, options, function (update) {\n      progress({ status: update.status, progress: Math.min(0.72, Number(update.progress || 0) * 0.72) });\n    }).then(function (result) {\n      return { source: 'local', result: result };\n    }).catch(function (error) {\n      return { source: 'local', error: error };\n    });\n\n    if (!options.endpoint) {\n      var localOnly = await localPromise;\n      if (localOnly.error) throw localOnly.error;\n      progress({ status: 'done', progress: 1 });\n      return localOnly.result;\n    }\n\n    var cloudPromise = scanService(file, options, function (update) {\n        progress({ status: update.status, progress: 0.58 + Number(update.progress || 0) * 0.42 });\n      }).then(function (result) {\n      return { source: 'cloud', result: result };\n    }).catch(function (error) {\n      return { source: 'cloud', error: error };\n    });\n\n    var softTimeoutMs = Number(options.softTimeoutMs || 10000);\n    var hardTimeoutMs = Math.max(softTimeoutMs + 500, Number(options.hardTimeoutMs || 15000));\n    var pending = {\n      local: localPromise,\n      cloud: cloudPromise,\n      soft: new Promise(function (resolve) { setTimeout(function () { resolve({ source: 'soft' }); }, softTimeoutMs); }),\n      hard: new Promise(function (resolve) { setTimeout(function () { resolve({ source: 'hard' }); }, hardTimeoutMs); })\n    };\n    var completed = {};\n\n    while (Object.keys(pending).length) {\n      var event = await Promise.race(Object.keys(pending).map(function (key) { return pending[key]; }));\n      delete pending[event.source];\n      completed[event.source] = event;\n\n      if (event.source === 'cloud' && !event.error) return event.result;\n      if (event.source === 'local' && !event.error && trustedLocalResult(event.result, options.needsAdd === true)) {\n        progress({ status: 'done', progress: 1 });\n        return event.result;\n      }\n\n      if (event.source === 'cloud' && event.error && completed.local) {\n        if (!completed.local.error && completed.local.result.kind !== 'allError') return completed.local.result;\n        return reviewFallbackResult(options.needsAdd === true, 'cloud-unavailable-review');\n      }\n      if (event.source === 'local' && completed.cloud && completed.cloud.error) {\n        if (!event.error && event.result.kind !== 'allError') return event.result;\n        return reviewFallbackResult(options.needsAdd === true, 'scanner-unavailable-review');\n      }\n      if (event.source === 'soft' && completed.local && !completed.local.error && completed.local.result.kind !== 'allError') {\n        return completed.local.result;\n      }\n      if (event.source === 'hard') {\n        if (completed.local && !completed.local.error && completed.local.result.kind !== 'allError') return completed.local.result;\n        return reviewFallbackResult(options.needsAdd === true, 'scan-timeout-review');\n      }\n    }\n\n    return reviewFallbackResult(options.needsAdd === true, 'scanner-unavailable-review');\n  }\n\n  global.EyeBuddyRxOcr = {\n    scan: scan,\n    prewarm: prewarm,\n    prepareUploadFile: prepareServiceFile,\n    parseText: parseText,\n    normalizeText: normalizeText,\n    version: 'hybrid-timeboxed-fallback-6'\n  };\n})(window);\n"],
  "mappings": "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",
  "names": ["line"]
}
