1 |
- {"ast":null,"code":"\"use strict\";\n\n/*!\n *************************************************************************\n *\n * mhchemParser.ts\n * 4.2.1\n *\n * Parser for the \\ce command and \\pu command for MathJax and Co.\n *\n * mhchem's \\ce is a tool for writing beautiful chemical equations easily.\n * mhchem's \\pu is a tool for writing physical units easily.\n *\n * ----------------------------------------------------------------------\n *\n * Copyright (c) 2015-2023 Martin Hensel\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * ----------------------------------------------------------------------\n *\n * https://github.com/mhchem/mhchemParser\n *\n */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mhchemParser = void 0;\nvar mhchemParser = function () {\n function mhchemParser() {}\n mhchemParser.toTex = function (input, type) {\n return _mhchemTexify.go(_mhchemParser.go(input, type), type !== \"tex\");\n };\n return mhchemParser;\n}();\nexports.mhchemParser = mhchemParser;\nfunction _mhchemCreateTransitions(o) {\n var pattern, state;\n var transitions = {};\n for (pattern in o) {\n for (state in o[pattern]) {\n var stateArray = state.split(\"|\");\n o[pattern][state].stateArray = stateArray;\n for (var i = 0; i < stateArray.length; i++) {\n transitions[stateArray[i]] = [];\n }\n }\n }\n for (pattern in o) {\n for (state in o[pattern]) {\n var stateArray = o[pattern][state].stateArray || [];\n for (var i = 0; i < stateArray.length; i++) {\n var p = o[pattern][state];\n p.action_ = [].concat(p.action_);\n for (var k = 0; k < p.action_.length; k++) {\n if (typeof p.action_[k] === \"string\") {\n p.action_[k] = {\n type_: p.action_[k]\n };\n }\n }\n var patternArray = pattern.split(\"|\");\n for (var j = 0; j < patternArray.length; j++) {\n if (stateArray[i] === '*') {\n var t = void 0;\n for (t in transitions) {\n transitions[t].push({\n pattern: patternArray[j],\n task: p\n });\n }\n } else {\n transitions[stateArray[i]].push({\n pattern: patternArray[j],\n task: p\n });\n }\n }\n }\n }\n }\n return transitions;\n}\n;\nvar _mhchemParser = {\n go: function (input, stateMachine) {\n if (!input) {\n return [];\n }\n if (stateMachine === undefined) {\n stateMachine = 'ce';\n }\n var state = '0';\n var buffer = {};\n buffer['parenthesisLevel'] = 0;\n input = input.replace(/\\n/g, \" \");\n input = input.replace(/[\\u2212\\u2013\\u2014\\u2010]/g, \"-\");\n input = input.replace(/[\\u2026]/g, \"...\");\n var lastInput;\n var watchdog = 10;\n var output = [];\n while (true) {\n if (lastInput !== input) {\n watchdog = 10;\n lastInput = input;\n } else {\n watchdog--;\n }\n var machine = _mhchemParser.stateMachines[stateMachine];\n var t = machine.transitions[state] || machine.transitions['*'];\n iterateTransitions: for (var i = 0; i < t.length; i++) {\n var matches = _mhchemParser.patterns.match_(t[i].pattern, input);\n if (matches) {\n var task = t[i].task;\n for (var iA = 0; iA < task.action_.length; iA++) {\n var o = void 0;\n if (machine.actions[task.action_[iA].type_]) {\n o = machine.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);\n } else if (_mhchemParser.actions[task.action_[iA].type_]) {\n o = _mhchemParser.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);\n } else {\n throw [\"MhchemBugA\", \"mhchem bug A. Please report. (\" + task.action_[iA].type_ + \")\"];\n }\n _mhchemParser.concatArray(output, o);\n }\n state = task.nextState || state;\n if (input.length > 0) {\n if (!task.revisit) {\n input = matches.remainder;\n }\n if (!task.toContinue) {\n break iterateTransitions;\n }\n } else {\n return output;\n }\n }\n }\n if (watchdog <= 0) {\n throw [\"MhchemBugU\", \"mhchem bug U. Please report.\"];\n }\n }\n },\n concatArray: function (a, b) {\n if (b) {\n if (Array.isArray(b)) {\n for (var iB = 0; iB < b.length; iB++) {\n a.push(b[iB]);\n }\n } else {\n a.push(b);\n }\n }\n },\n patterns: {\n patterns: {\n 'empty': /^$/,\n 'else': /^./,\n 'else2': /^./,\n 'space': /^\\s/,\n 'space A': /^\\s(?=[A-Z\\\\$])/,\n 'space$': /^\\s$/,\n 'a-z': /^[a-z]/,\n 'x': /^x/,\n 'x$': /^x$/,\n 'i$': /^i$/,\n 'letters': /^(?:[a-zA-Z\\u03B1-\\u03C9\\u0391-\\u03A9?@]|(?:\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))))+/,\n '\\\\greek': /^\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))/,\n 'one lowercase latin letter $': /^(?:([a-z])(?:$|[^a-zA-Z]))$/,\n '$one lowercase latin letter$ $': /^\\$(?:([a-z])(?:$|[^a-zA-Z]))\\$$/,\n 'one lowercase greek letter $': /^(?:\\$?[\\u03B1-\\u03C9]\\$?|\\$?\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\\s*\\$?)(?:\\s+|\\{\\}|(?![a-zA-Z]))$/,\n 'digits': /^[0-9]+/,\n '-9.,9': /^[+\\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))/,\n '-9.,9 no missing 0': /^[+\\-]?[0-9]+(?:[.,][0-9]+)?/,\n '(-)(9.,9)(e)(99)': function (input) {\n var match = input.match(/^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))?(\\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))\\))?(?:(?:([eE])|\\s*(\\*|x|\\\\times|\\u00D7)\\s*10\\^)([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\}))?/);\n if (match && match[0]) {\n return {\n match_: match.slice(1),\n remainder: input.substr(match[0].length)\n };\n }\n return null;\n },\n '(-)(9)^(-9)': /^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+)?)\\^([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\})/,\n 'state of aggregation $': function (input) {\n var a = _mhchemParser.patterns.findObserveGroups(input, \"\", /^\\([a-z]{1,3}(?=[\\),])/, \")\", \"\");\n if (a && a.remainder.match(/^($|[\\s,;\\)\\]\\}])/)) {\n return a;\n }\n var match = input.match(/^(?:\\((?:\\\\ca\\s?)?\\$[amothc]\\$\\))/);\n if (match) {\n return {\n match_: match[0],\n remainder: input.substr(match[0].length)\n };\n }\n return null;\n },\n '_{(state of aggregation)}$': /^_\\{(\\([a-z]{1,3}\\))\\}/,\n '{[(': /^(?:\\\\\\{|\\[|\\()/,\n ')]}': /^(?:\\)|\\]|\\\\\\})/,\n ', ': /^[,;]\\s*/,\n ',': /^[,;]/,\n '.': /^[.]/,\n '. __* ': /^([.\\u22C5\\u00B7\\u2022]|[*])\\s*/,\n '...': /^\\.\\.\\.(?=$|[^.])/,\n '^{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"^{\", \"\", \"\", \"}\");\n },\n '^($...$)': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"^\", \"$\", \"$\", \"\");\n },\n '^a': /^\\^([0-9]+|[^\\\\_])/,\n '^\\\\x{}{}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"^\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true);\n },\n '^\\\\x{}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"^\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\");\n },\n '^\\\\x': /^\\^(\\\\[a-zA-Z]+)\\s*/,\n '^(-1)': /^\\^(-?\\d+)/,\n '\\'': /^'/,\n '_{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"_{\", \"\", \"\", \"}\");\n },\n '_($...$)': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"_\", \"$\", \"$\", \"\");\n },\n '_9': /^_([+\\-]?[0-9]+|[^\\\\])/,\n '_\\\\x{}{}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"_\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true);\n },\n '_\\\\x{}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"_\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\");\n },\n '_\\\\x': /^_(\\\\[a-zA-Z]+)\\s*/,\n '^_': /^(?:\\^(?=_)|\\_(?=\\^)|[\\^_]$)/,\n '{}^': /^\\{\\}(?=\\^)/,\n '{}': /^\\{\\}/,\n '{...}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\", \"{\", \"}\", \"\");\n },\n '{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"{\", \"\", \"\", \"}\");\n },\n '$...$': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\", \"$\", \"$\", \"\");\n },\n '${(...)}$__$(...)$': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"${\", \"\", \"\", \"}$\") || _mhchemParser.patterns.findObserveGroups(input, \"$\", \"\", \"\", \"$\");\n },\n '=<>': /^[=<>]/,\n '#': /^[#\\u2261]/,\n '+': /^\\+/,\n '-$': /^-(?=[\\s_},;\\]/]|$|\\([a-z]+\\))/,\n '-9': /^-(?=[0-9])/,\n '- orbital overlap': /^-(?=(?:[spd]|sp)(?:$|[\\s,;\\)\\]\\}]))/,\n '-': /^-/,\n 'pm-operator': /^(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)/,\n 'operator': /^(?:\\+|(?:[\\-=<>]|<<|>>|\\\\approx|\\$\\\\approx\\$)(?=\\s|$|-?[0-9]))/,\n 'arrowUpDown': /^(?:v|\\(v\\)|\\^|\\(\\^\\))(?=$|[\\s,;\\)\\]\\}])/,\n '\\\\bond{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\bond{\", \"\", \"\", \"}\");\n },\n '->': /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\\u2192\\u27F6\\u21CC])/,\n 'CMT': /^[CMT](?=\\[)/,\n '[(...)]': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"[\", \"\", \"\", \"]\");\n },\n '1st-level escape': /^(&|\\\\\\\\|\\\\hline)\\s*/,\n '\\\\,': /^(?:\\\\[,\\ ;:])/,\n '\\\\x{}{}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true);\n },\n '\\\\x{}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\");\n },\n '\\\\ca': /^\\\\ca(?:\\s+|(?![a-zA-Z]))/,\n '\\\\x': /^(?:\\\\[a-zA-Z]+\\s*|\\\\[_&{}%])/,\n 'orbital': /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,\n 'others': /^[\\/~|]/,\n '\\\\frac{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\frac{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\");\n },\n '\\\\overset{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\overset{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\");\n },\n '\\\\underset{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\underset{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\");\n },\n '\\\\underbrace{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\underbrace{\", \"\", \"\", \"}_\", \"{\", \"\", \"\", \"}\");\n },\n '\\\\color{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\color{\", \"\", \"\", \"}\");\n },\n '\\\\color{(...)}{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\color{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\") || _mhchemParser.patterns.findObserveGroups(input, \"\\\\color\", \"\\\\\", \"\", /^(?=\\{)/, \"{\", \"\", \"\", \"}\");\n },\n '\\\\ce{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\ce{\", \"\", \"\", \"}\");\n },\n '\\\\pu{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\pu{\", \"\", \"\", \"}\");\n },\n 'oxidation$': /^(?:[+-][IVX]+|(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)\\s*0)$/,\n 'd-oxidation$': /^(?:[+-]?[IVX]+|(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)\\s*0)$/,\n '1/2$': /^[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+(?:\\$[a-z]\\$|[a-z])?$/,\n 'amount': function (input) {\n var match;\n match = input.match(/^(?:(?:(?:\\([+\\-]?[0-9]+\\/[0-9]+\\)|[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+|[+\\-]?[0-9]+[.,][0-9]+|[+\\-]?\\.[0-9]+|[+\\-]?[0-9]+)(?:[a-z](?=\\s*[A-Z]))?)|[+\\-]?[a-z](?=\\s*[A-Z])|\\+(?!\\s))/);\n if (match) {\n return {\n match_: match[0],\n remainder: input.substr(match[0].length)\n };\n }\n var a = _mhchemParser.patterns.findObserveGroups(input, \"\", \"$\", \"$\", \"\");\n if (a) {\n match = a.match_.match(/^\\$(?:\\(?[+\\-]?(?:[0-9]*[a-z]?[+\\-])?[0-9]*[a-z](?:[+\\-][0-9]*[a-z]?)?\\)?|\\+|-)\\$$/);\n if (match) {\n return {\n match_: match[0],\n remainder: input.substr(match[0].length)\n };\n }\n }\n return null;\n },\n 'amount2': function (input) {\n return this['amount'](input);\n },\n '(KV letters),': /^(?:[A-Z][a-z]{0,2}|i)(?=,)/,\n 'formula$': function (input) {\n if (input.match(/^\\([a-z]+\\)$/)) {\n return null;\n }\n var match = input.match(/^(?:[a-z]|(?:[0-9\\ \\+\\-\\,\\.\\(\\)]+[a-z])+[0-9\\ \\+\\-\\,\\.\\(\\)]*|(?:[a-z][0-9\\ \\+\\-\\,\\.\\(\\)]+)+[a-z]?)$/);\n if (match) {\n return {\n match_: match[0],\n remainder: input.substr(match[0].length)\n };\n }\n return null;\n },\n 'uprightEntities': /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,\n '/': /^\\s*(\\/)\\s*/,\n '//': /^\\s*(\\/\\/)\\s*/,\n '*': /^\\s*[*.]\\s*/\n },\n findObserveGroups: function (input, begExcl, begIncl, endIncl, endExcl, beg2Excl, beg2Incl, end2Incl, end2Excl, combine) {\n var _match = function (input, pattern) {\n if (typeof pattern === \"string\") {\n if (input.indexOf(pattern) !== 0) {\n return null;\n }\n return pattern;\n } else {\n var match_1 = input.match(pattern);\n if (!match_1) {\n return null;\n }\n return match_1[0];\n }\n };\n var _findObserveGroups = function (input, i, endChars) {\n var braces = 0;\n while (i < input.length) {\n var a = input.charAt(i);\n var match_2 = _match(input.substr(i), endChars);\n if (match_2 !== null && braces === 0) {\n return {\n endMatchBegin: i,\n endMatchEnd: i + match_2.length\n };\n } else if (a === \"{\") {\n braces++;\n } else if (a === \"}\") {\n if (braces === 0) {\n throw [\"ExtraCloseMissingOpen\", \"Extra close brace or missing open brace\"];\n } else {\n braces--;\n }\n }\n i++;\n }\n if (braces > 0) {\n return null;\n }\n return null;\n };\n var match = _match(input, begExcl);\n if (match === null) {\n return null;\n }\n input = input.substr(match.length);\n match = _match(input, begIncl);\n if (match === null) {\n return null;\n }\n var e = _findObserveGroups(input, match.length, endIncl || endExcl);\n if (e === null) {\n return null;\n }\n var match1 = input.substring(0, endIncl ? e.endMatchEnd : e.endMatchBegin);\n if (!(beg2Excl || beg2Incl)) {\n return {\n match_: match1,\n remainder: input.substr(e.endMatchEnd)\n };\n } else {\n var group2 = this.findObserveGroups(input.substr(e.endMatchEnd), beg2Excl, beg2Incl, end2Incl, end2Excl);\n if (group2 === null) {\n return null;\n }\n var matchRet = [match1, group2.match_];\n return {\n match_: combine ? matchRet.join(\"\") : matchRet,\n remainder: group2.remainder\n };\n }\n },\n match_: function (m, input) {\n var pattern = _mhchemParser.patterns.patterns[m];\n if (pattern === undefined) {\n throw [\"MhchemBugP\", \"mhchem bug P. Please report. (\" + m + \")\"];\n } else if (typeof pattern === \"function\") {\n return _mhchemParser.patterns.patterns[m](input);\n } else {\n var match = input.match(pattern);\n if (match) {\n if (match.length > 2) {\n return {\n match_: match.slice(1),\n remainder: input.substr(match[0].length)\n };\n } else {\n return {\n match_: match[1] || match[0],\n remainder: input.substr(match[0].length)\n };\n }\n }\n return null;\n }\n }\n },\n actions: {\n 'a=': function (buffer, m) {\n buffer.a = (buffer.a || \"\") + m;\n return undefined;\n },\n 'b=': function (buffer, m) {\n buffer.b = (buffer.b || \"\") + m;\n return undefined;\n },\n 'p=': function (buffer, m) {\n buffer.p = (buffer.p || \"\") + m;\n return undefined;\n },\n 'o=': function (buffer, m) {\n buffer.o = (buffer.o || \"\") + m;\n return undefined;\n },\n 'o=+p1': function (buffer, _m, a) {\n buffer.o = (buffer.o || \"\") + a;\n return undefined;\n },\n 'q=': function (buffer, m) {\n buffer.q = (buffer.q || \"\") + m;\n return undefined;\n },\n 'd=': function (buffer, m) {\n buffer.d = (buffer.d || \"\") + m;\n return undefined;\n },\n 'rm=': function (buffer, m) {\n buffer.rm = (buffer.rm || \"\") + m;\n return undefined;\n },\n 'text=': function (buffer, m) {\n buffer.text_ = (buffer.text_ || \"\") + m;\n return undefined;\n },\n 'insert': function (_buffer, _m, a) {\n return {\n type_: a\n };\n },\n 'insert+p1': function (_buffer, m, a) {\n return {\n type_: a,\n p1: m\n };\n },\n 'insert+p1+p2': function (_buffer, m, a) {\n return {\n type_: a,\n p1: m[0],\n p2: m[1]\n };\n },\n 'copy': function (_buffer, m) {\n return m;\n },\n 'write': function (_buffer, _m, a) {\n return a;\n },\n 'rm': function (_buffer, m) {\n return {\n type_: 'rm',\n p1: m\n };\n },\n 'text': function (_buffer, m) {\n return _mhchemParser.go(m, 'text');\n },\n 'tex-math': function (_buffer, m) {\n return _mhchemParser.go(m, 'tex-math');\n },\n 'tex-math tight': function (_buffer, m) {\n return _mhchemParser.go(m, 'tex-math tight');\n },\n 'bond': function (_buffer, m, k) {\n return {\n type_: 'bond',\n kind_: k || m\n };\n },\n 'color0-output': function (_buffer, m) {\n return {\n type_: 'color0',\n color: m\n };\n },\n 'ce': function (_buffer, m) {\n return _mhchemParser.go(m, 'ce');\n },\n 'pu': function (_buffer, m) {\n return _mhchemParser.go(m, 'pu');\n },\n '1/2': function (_buffer, m) {\n var ret = [];\n if (m.match(/^[+\\-]/)) {\n ret.push(m.substr(0, 1));\n m = m.substr(1);\n }\n var n = m.match(/^([0-9]+|\\$[a-z]\\$|[a-z])\\/([0-9]+)(\\$[a-z]\\$|[a-z])?$/);\n n[1] = n[1].replace(/\\$/g, \"\");\n ret.push({\n type_: 'frac',\n p1: n[1],\n p2: n[2]\n });\n if (n[3]) {\n n[3] = n[3].replace(/\\$/g, \"\");\n ret.push({\n type_: 'tex-math',\n p1: n[3]\n });\n }\n return ret;\n },\n '9,9': function (_buffer, m) {\n return _mhchemParser.go(m, '9,9');\n }\n },\n stateMachines: {\n 'tex': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '0': {\n action_: 'copy'\n }\n },\n '\\\\ce{(...)}': {\n '0': {\n action_: [{\n type_: 'write',\n option: \"{\"\n }, 'ce', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n '\\\\pu{(...)}': {\n '0': {\n action_: [{\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n 'else': {\n '0': {\n action_: 'copy'\n }\n }\n }),\n actions: {}\n },\n 'ce': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: 'output'\n }\n },\n 'else': {\n '0|1|2': {\n action_: 'beginsWithBond=false',\n revisit: true,\n toContinue: true\n }\n },\n 'oxidation$': {\n '0': {\n action_: 'oxidation-output'\n }\n },\n 'CMT': {\n 'r': {\n action_: 'rdt=',\n nextState: 'rt'\n },\n 'rd': {\n action_: 'rqt=',\n nextState: 'rdt'\n }\n },\n 'arrowUpDown': {\n '0|1|2|as': {\n action_: ['sb=false', 'output', 'operator'],\n nextState: '1'\n }\n },\n 'uprightEntities': {\n '0|1|2': {\n action_: ['o=', 'output'],\n nextState: '1'\n }\n },\n 'orbital': {\n '0|1|2|3': {\n action_: 'o=',\n nextState: 'o'\n }\n },\n '->': {\n '0|1|2|3': {\n action_: 'r=',\n nextState: 'r'\n },\n 'a|as': {\n action_: ['output', 'r='],\n nextState: 'r'\n },\n '*': {\n action_: ['output', 'r='],\n nextState: 'r'\n }\n },\n '+': {\n 'o': {\n action_: 'd= kv',\n nextState: 'd'\n },\n 'd|D': {\n action_: 'd=',\n nextState: 'd'\n },\n 'q': {\n action_: 'd=',\n nextState: 'qd'\n },\n 'qd|qD': {\n action_: 'd=',\n nextState: 'qd'\n },\n 'dq': {\n action_: ['output', 'd='],\n nextState: 'd'\n },\n '3': {\n action_: ['sb=false', 'output', 'operator'],\n nextState: '0'\n }\n },\n 'amount': {\n '0|2': {\n action_: 'a=',\n nextState: 'a'\n }\n },\n 'pm-operator': {\n '0|1|2|a|as': {\n action_: ['sb=false', 'output', {\n type_: 'operator',\n option: '\\\\pm'\n }],\n nextState: '0'\n }\n },\n 'operator': {\n '0|1|2|a|as': {\n action_: ['sb=false', 'output', 'operator'],\n nextState: '0'\n }\n },\n '-$': {\n 'o|q': {\n action_: ['charge or bond', 'output'],\n nextState: 'qd'\n },\n 'd': {\n action_: 'd=',\n nextState: 'd'\n },\n 'D': {\n action_: ['output', {\n type_: 'bond',\n option: \"-\"\n }],\n nextState: '3'\n },\n 'q': {\n action_: 'd=',\n nextState: 'qd'\n },\n 'qd': {\n action_: 'd=',\n nextState: 'qd'\n },\n 'qD|dq': {\n action_: ['output', {\n type_: 'bond',\n option: \"-\"\n }],\n nextState: '3'\n }\n },\n '-9': {\n '3|o': {\n action_: ['output', {\n type_: 'insert',\n option: 'hyphen'\n }],\n nextState: '3'\n }\n },\n '- orbital overlap': {\n 'o': {\n action_: ['output', {\n type_: 'insert',\n option: 'hyphen'\n }],\n nextState: '2'\n },\n 'd': {\n action_: ['output', {\n type_: 'insert',\n option: 'hyphen'\n }],\n nextState: '2'\n }\n },\n '-': {\n '0|1|2': {\n action_: [{\n type_: 'output',\n option: 1\n }, 'beginsWithBond=true', {\n type_: 'bond',\n option: \"-\"\n }],\n nextState: '3'\n },\n '3': {\n action_: {\n type_: 'bond',\n option: \"-\"\n }\n },\n 'a': {\n action_: ['output', {\n type_: 'insert',\n option: 'hyphen'\n }],\n nextState: '2'\n },\n 'as': {\n action_: [{\n type_: 'output',\n option: 2\n }, {\n type_: 'bond',\n option: \"-\"\n }],\n nextState: '3'\n },\n 'b': {\n action_: 'b='\n },\n 'o': {\n action_: {\n type_: '- after o/d',\n option: false\n },\n nextState: '2'\n },\n 'q': {\n action_: {\n type_: '- after o/d',\n option: false\n },\n nextState: '2'\n },\n 'd|qd|dq': {\n action_: {\n type_: '- after o/d',\n option: true\n },\n nextState: '2'\n },\n 'D|qD|p': {\n action_: ['output', {\n type_: 'bond',\n option: \"-\"\n }],\n nextState: '3'\n }\n },\n 'amount2': {\n '1|3': {\n action_: 'a=',\n nextState: 'a'\n }\n },\n 'letters': {\n '0|1|2|3|a|as|b|p|bp|o': {\n action_: 'o=',\n nextState: 'o'\n },\n 'q|dq': {\n action_: ['output', 'o='],\n nextState: 'o'\n },\n 'd|D|qd|qD': {\n action_: 'o after d',\n nextState: 'o'\n }\n },\n 'digits': {\n 'o': {\n action_: 'q=',\n nextState: 'q'\n },\n 'd|D': {\n action_: 'q=',\n nextState: 'dq'\n },\n 'q': {\n action_: ['output', 'o='],\n nextState: 'o'\n },\n 'a': {\n action_: 'o=',\n nextState: 'o'\n }\n },\n 'space A': {\n 'b|p|bp': {\n action_: []\n }\n },\n 'space': {\n 'a': {\n action_: [],\n nextState: 'as'\n },\n '0': {\n action_: 'sb=false'\n },\n '1|2': {\n action_: 'sb=true'\n },\n 'r|rt|rd|rdt|rdq': {\n action_: 'output',\n nextState: '0'\n },\n '*': {\n action_: ['output', 'sb=true'],\n nextState: '1'\n }\n },\n '1st-level escape': {\n '1|2': {\n action_: ['output', {\n type_: 'insert+p1',\n option: '1st-level escape'\n }]\n },\n '*': {\n action_: ['output', {\n type_: 'insert+p1',\n option: '1st-level escape'\n }],\n nextState: '0'\n }\n },\n '[(...)]': {\n 'r|rt': {\n action_: 'rd=',\n nextState: 'rd'\n },\n 'rd|rdt': {\n action_: 'rq=',\n nextState: 'rdq'\n }\n },\n '...': {\n 'o|d|D|dq|qd|qD': {\n action_: ['output', {\n type_: 'bond',\n option: \"...\"\n }],\n nextState: '3'\n },\n '*': {\n action_: [{\n type_: 'output',\n option: 1\n }, {\n type_: 'insert',\n option: 'ellipsis'\n }],\n nextState: '1'\n }\n },\n '. __* ': {\n '*': {\n action_: ['output', {\n type_: 'insert',\n option: 'addition compound'\n }],\n nextState: '1'\n }\n },\n 'state of aggregation $': {\n '*': {\n action_: ['output', 'state of aggregation'],\n nextState: '1'\n }\n },\n '{[(': {\n 'a|as|o': {\n action_: ['o=', 'output', 'parenthesisLevel++'],\n nextState: '2'\n },\n '0|1|2|3': {\n action_: ['o=', 'output', 'parenthesisLevel++'],\n nextState: '2'\n },\n '*': {\n action_: ['output', 'o=', 'output', 'parenthesisLevel++'],\n nextState: '2'\n }\n },\n ')]}': {\n '0|1|2|3|b|p|bp|o': {\n action_: ['o=', 'parenthesisLevel--'],\n nextState: 'o'\n },\n 'a|as|d|D|q|qd|qD|dq': {\n action_: ['output', 'o=', 'parenthesisLevel--'],\n nextState: 'o'\n }\n },\n ', ': {\n '*': {\n action_: ['output', 'comma'],\n nextState: '0'\n }\n },\n '^_': {\n '*': {\n action_: []\n }\n },\n '^{(...)}|^($...$)': {\n '0|1|2|as': {\n action_: 'b=',\n nextState: 'b'\n },\n 'p': {\n action_: 'b=',\n nextState: 'bp'\n },\n '3|o': {\n action_: 'd= kv',\n nextState: 'D'\n },\n 'q': {\n action_: 'd=',\n nextState: 'qD'\n },\n 'd|D|qd|qD|dq': {\n action_: ['output', 'd='],\n nextState: 'D'\n }\n },\n '^a|^\\\\x{}{}|^\\\\x{}|^\\\\x|\\'': {\n '0|1|2|as': {\n action_: 'b=',\n nextState: 'b'\n },\n 'p': {\n action_: 'b=',\n nextState: 'bp'\n },\n '3|o': {\n action_: 'd= kv',\n nextState: 'd'\n },\n 'q': {\n action_: 'd=',\n nextState: 'qd'\n },\n 'd|qd|D|qD': {\n action_: 'd='\n },\n 'dq': {\n action_: ['output', 'd='],\n nextState: 'd'\n }\n },\n '_{(state of aggregation)}$': {\n 'd|D|q|qd|qD|dq': {\n action_: ['output', 'q='],\n nextState: 'q'\n }\n },\n '_{(...)}|_($...$)|_9|_\\\\x{}{}|_\\\\x{}|_\\\\x': {\n '0|1|2|as': {\n action_: 'p=',\n nextState: 'p'\n },\n 'b': {\n action_: 'p=',\n nextState: 'bp'\n },\n '3|o': {\n action_: 'q=',\n nextState: 'q'\n },\n 'd|D': {\n action_: 'q=',\n nextState: 'dq'\n },\n 'q|qd|qD|dq': {\n action_: ['output', 'q='],\n nextState: 'q'\n }\n },\n '=<>': {\n '0|1|2|3|a|as|o|q|d|D|qd|qD|dq': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'bond'],\n nextState: '3'\n }\n },\n '#': {\n '0|1|2|3|a|as|o': {\n action_: [{\n type_: 'output',\n option: 2\n }, {\n type_: 'bond',\n option: \"#\"\n }],\n nextState: '3'\n }\n },\n '{}^': {\n '*': {\n action_: [{\n type_: 'output',\n option: 1\n }, {\n type_: 'insert',\n option: 'tinySkip'\n }],\n nextState: '1'\n }\n },\n '{}': {\n '*': {\n action_: {\n type_: 'output',\n option: 1\n },\n nextState: '1'\n }\n },\n '{...}': {\n '0|1|2|3|a|as|b|p|bp': {\n action_: 'o=',\n nextState: 'o'\n },\n 'o|d|D|q|qd|qD|dq': {\n action_: ['output', 'o='],\n nextState: 'o'\n }\n },\n '$...$': {\n 'a': {\n action_: 'a='\n },\n '0|1|2|3|as|b|p|bp|o': {\n action_: 'o=',\n nextState: 'o'\n },\n 'as|o': {\n action_: 'o='\n },\n 'q|d|D|qd|qD|dq': {\n action_: ['output', 'o='],\n nextState: 'o'\n }\n },\n '\\\\bond{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'bond'],\n nextState: \"3\"\n }\n },\n '\\\\frac{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 1\n }, 'frac-output'],\n nextState: '3'\n }\n },\n '\\\\overset{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'overset-output'],\n nextState: '3'\n }\n },\n '\\\\underset{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'underset-output'],\n nextState: '3'\n }\n },\n '\\\\underbrace{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'underbrace-output'],\n nextState: '3'\n }\n },\n '\\\\color{(...)}{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'color-output'],\n nextState: '3'\n }\n },\n '\\\\color{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'color0-output']\n }\n },\n '\\\\ce{(...)}': {\n '*': {\n action_: [{\n type_: 'output',\n option: 2\n }, 'ce'],\n nextState: '3'\n }\n },\n '\\\\,': {\n '*': {\n action_: [{\n type_: 'output',\n option: 1\n }, 'copy'],\n nextState: '1'\n }\n },\n '\\\\pu{(...)}': {\n '*': {\n action_: ['output', {\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }],\n nextState: '3'\n }\n },\n '\\\\x{}{}|\\\\x{}|\\\\x': {\n '0|1|2|3|a|as|b|p|bp|o|c0': {\n action_: ['o=', 'output'],\n nextState: '3'\n },\n '*': {\n action_: ['output', 'o=', 'output'],\n nextState: '3'\n }\n },\n 'others': {\n '*': {\n action_: [{\n type_: 'output',\n option: 1\n }, 'copy'],\n nextState: '3'\n }\n },\n 'else2': {\n 'a': {\n action_: 'a to o',\n nextState: 'o',\n revisit: true\n },\n 'as': {\n action_: ['output', 'sb=true'],\n nextState: '1',\n revisit: true\n },\n 'r|rt|rd|rdt|rdq': {\n action_: ['output'],\n nextState: '0',\n revisit: true\n },\n '*': {\n action_: ['output', 'copy'],\n nextState: '3'\n }\n }\n }),\n actions: {\n 'o after d': function (buffer, m) {\n var ret;\n if ((buffer.d || \"\").match(/^[1-9][0-9]*$/)) {\n var tmp = buffer.d;\n buffer.d = undefined;\n ret = this['output'](buffer);\n ret.push({\n type_: 'tinySkip'\n });\n buffer.b = tmp;\n } else {\n ret = this['output'](buffer);\n }\n _mhchemParser.actions['o='](buffer, m);\n return ret;\n },\n 'd= kv': function (buffer, m) {\n buffer.d = m;\n buffer.dType = 'kv';\n return undefined;\n },\n 'charge or bond': function (buffer, m) {\n if (buffer['beginsWithBond']) {\n var ret = [];\n _mhchemParser.concatArray(ret, this['output'](buffer));\n _mhchemParser.concatArray(ret, _mhchemParser.actions['bond'](buffer, m, \"-\"));\n return ret;\n } else {\n buffer.d = m;\n return undefined;\n }\n },\n '- after o/d': function (buffer, m, isAfterD) {\n var c1 = _mhchemParser.patterns.match_('orbital', buffer.o || \"\");\n var c2 = _mhchemParser.patterns.match_('one lowercase greek letter $', buffer.o || \"\");\n var c3 = _mhchemParser.patterns.match_('one lowercase latin letter $', buffer.o || \"\");\n var c4 = _mhchemParser.patterns.match_('$one lowercase latin letter$ $', buffer.o || \"\");\n var hyphenFollows = m === \"-\" && (c1 && c1.remainder === \"\" || c2 || c3 || c4);\n if (hyphenFollows && !buffer.a && !buffer.b && !buffer.p && !buffer.d && !buffer.q && !c1 && c3) {\n buffer.o = '$' + buffer.o + '$';\n }\n var ret = [];\n if (hyphenFollows) {\n _mhchemParser.concatArray(ret, this['output'](buffer));\n ret.push({\n type_: 'hyphen'\n });\n } else {\n c1 = _mhchemParser.patterns.match_('digits', buffer.d || \"\");\n if (isAfterD && c1 && c1.remainder === '') {\n _mhchemParser.concatArray(ret, _mhchemParser.actions['d='](buffer, m));\n _mhchemParser.concatArray(ret, this['output'](buffer));\n } else {\n _mhchemParser.concatArray(ret, this['output'](buffer));\n _mhchemParser.concatArray(ret, _mhchemParser.actions['bond'](buffer, m, \"-\"));\n }\n }\n return ret;\n },\n 'a to o': function (buffer) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n return undefined;\n },\n 'sb=true': function (buffer) {\n buffer.sb = true;\n return undefined;\n },\n 'sb=false': function (buffer) {\n buffer.sb = false;\n return undefined;\n },\n 'beginsWithBond=true': function (buffer) {\n buffer['beginsWithBond'] = true;\n return undefined;\n },\n 'beginsWithBond=false': function (buffer) {\n buffer['beginsWithBond'] = false;\n return undefined;\n },\n 'parenthesisLevel++': function (buffer) {\n buffer['parenthesisLevel']++;\n return undefined;\n },\n 'parenthesisLevel--': function (buffer) {\n buffer['parenthesisLevel']--;\n return undefined;\n },\n 'state of aggregation': function (_buffer, m) {\n return {\n type_: 'state of aggregation',\n p1: _mhchemParser.go(m, 'o')\n };\n },\n 'comma': function (buffer, m) {\n var a = m.replace(/\\s*$/, '');\n var withSpace = a !== m;\n if (withSpace && buffer['parenthesisLevel'] === 0) {\n return {\n type_: 'comma enumeration L',\n p1: a\n };\n } else {\n return {\n type_: 'comma enumeration M',\n p1: a\n };\n }\n },\n 'output': function (buffer, _m, entityFollows) {\n var ret;\n if (!buffer.r) {\n ret = [];\n if (!buffer.a && !buffer.b && !buffer.p && !buffer.o && !buffer.q && !buffer.d && !entityFollows) {} else {\n if (buffer.sb) {\n ret.push({\n type_: 'entitySkip'\n });\n }\n if (!buffer.o && !buffer.q && !buffer.d && !buffer.b && !buffer.p && entityFollows !== 2) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n } else if (!buffer.o && !buffer.q && !buffer.d && (buffer.b || buffer.p)) {\n buffer.o = buffer.a;\n buffer.d = buffer.b;\n buffer.q = buffer.p;\n buffer.a = buffer.b = buffer.p = undefined;\n } else {\n if (buffer.o && buffer.dType === 'kv' && _mhchemParser.patterns.match_('d-oxidation$', buffer.d || \"\")) {\n buffer.dType = 'oxidation';\n } else if (buffer.o && buffer.dType === 'kv' && !buffer.q) {\n buffer.dType = undefined;\n }\n }\n ret.push({\n type_: 'chemfive',\n a: _mhchemParser.go(buffer.a, 'a'),\n b: _mhchemParser.go(buffer.b, 'bd'),\n p: _mhchemParser.go(buffer.p, 'pq'),\n o: _mhchemParser.go(buffer.o, 'o'),\n q: _mhchemParser.go(buffer.q, 'pq'),\n d: _mhchemParser.go(buffer.d, buffer.dType === 'oxidation' ? 'oxidation' : 'bd'),\n dType: buffer.dType\n });\n }\n } else {\n var rd = void 0;\n if (buffer.rdt === 'M') {\n rd = _mhchemParser.go(buffer.rd, 'tex-math');\n } else if (buffer.rdt === 'T') {\n rd = [{\n type_: 'text',\n p1: buffer.rd || \"\"\n }];\n } else {\n rd = _mhchemParser.go(buffer.rd, 'ce');\n }\n var rq = void 0;\n if (buffer.rqt === 'M') {\n rq = _mhchemParser.go(buffer.rq, 'tex-math');\n } else if (buffer.rqt === 'T') {\n rq = [{\n type_: 'text',\n p1: buffer.rq || \"\"\n }];\n } else {\n rq = _mhchemParser.go(buffer.rq, 'ce');\n }\n ret = {\n type_: 'arrow',\n r: buffer.r,\n rd: rd,\n rq: rq\n };\n }\n for (var p in buffer) {\n if (p !== 'parenthesisLevel' && p !== 'beginsWithBond') {\n delete buffer[p];\n }\n }\n return ret;\n },\n 'oxidation-output': function (_buffer, m) {\n var ret = [\"{\"];\n _mhchemParser.concatArray(ret, _mhchemParser.go(m, 'oxidation'));\n ret.push(\"}\");\n return ret;\n },\n 'frac-output': function (_buffer, m) {\n return {\n type_: 'frac-ce',\n p1: _mhchemParser.go(m[0], 'ce'),\n p2: _mhchemParser.go(m[1], 'ce')\n };\n },\n 'overset-output': function (_buffer, m) {\n return {\n type_: 'overset',\n p1: _mhchemParser.go(m[0], 'ce'),\n p2: _mhchemParser.go(m[1], 'ce')\n };\n },\n 'underset-output': function (_buffer, m) {\n return {\n type_: 'underset',\n p1: _mhchemParser.go(m[0], 'ce'),\n p2: _mhchemParser.go(m[1], 'ce')\n };\n },\n 'underbrace-output': function (_buffer, m) {\n return {\n type_: 'underbrace',\n p1: _mhchemParser.go(m[0], 'ce'),\n p2: _mhchemParser.go(m[1], 'ce')\n };\n },\n 'color-output': function (_buffer, m) {\n return {\n type_: 'color',\n color1: m[0],\n color2: _mhchemParser.go(m[1], 'ce')\n };\n },\n 'r=': function (buffer, m) {\n buffer.r = m;\n return undefined;\n },\n 'rdt=': function (buffer, m) {\n buffer.rdt = m;\n return undefined;\n },\n 'rd=': function (buffer, m) {\n buffer.rd = m;\n return undefined;\n },\n 'rqt=': function (buffer, m) {\n buffer.rqt = m;\n return undefined;\n },\n 'rq=': function (buffer, m) {\n buffer.rq = m;\n return undefined;\n },\n 'operator': function (_buffer, m, p1) {\n return {\n type_: 'operator',\n kind_: p1 || m\n };\n }\n }\n },\n 'a': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: []\n }\n },\n '1/2$': {\n '0': {\n action_: '1/2'\n }\n },\n 'else': {\n '0': {\n action_: [],\n nextState: '1',\n revisit: true\n }\n },\n '${(...)}$__$(...)$': {\n '*': {\n action_: 'tex-math tight',\n nextState: '1'\n }\n },\n ',': {\n '*': {\n action_: {\n type_: 'insert',\n option: 'commaDecimal'\n }\n }\n },\n 'else2': {\n '*': {\n action_: 'copy'\n }\n }\n }),\n actions: {}\n },\n 'o': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: []\n }\n },\n '1/2$': {\n '0': {\n action_: '1/2'\n }\n },\n 'else': {\n '0': {\n action_: [],\n nextState: '1',\n revisit: true\n }\n },\n 'letters': {\n '*': {\n action_: 'rm'\n }\n },\n '\\\\ca': {\n '*': {\n action_: {\n type_: 'insert',\n option: 'circa'\n }\n }\n },\n '\\\\pu{(...)}': {\n '*': {\n action_: [{\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n '\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': {\n action_: 'copy'\n }\n },\n '${(...)}$__$(...)$': {\n '*': {\n action_: 'tex-math'\n }\n },\n '{(...)}': {\n '*': {\n action_: [{\n type_: 'write',\n option: \"{\"\n }, 'text', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n 'else2': {\n '*': {\n action_: 'copy'\n }\n }\n }),\n actions: {}\n },\n 'text': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: 'output'\n }\n },\n '{...}': {\n '*': {\n action_: 'text='\n }\n },\n '${(...)}$__$(...)$': {\n '*': {\n action_: 'tex-math'\n }\n },\n '\\\\greek': {\n '*': {\n action_: ['output', 'rm']\n }\n },\n '\\\\pu{(...)}': {\n '*': {\n action_: ['output', {\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': {\n action_: ['output', 'copy']\n }\n },\n 'else': {\n '*': {\n action_: 'text='\n }\n }\n }),\n actions: {\n 'output': function (buffer) {\n if (buffer.text_) {\n var ret = {\n type_: 'text',\n p1: buffer.text_\n };\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n return undefined;\n }\n }\n },\n 'pq': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: []\n }\n },\n 'state of aggregation $': {\n '*': {\n action_: 'state of aggregation'\n }\n },\n 'i$': {\n '0': {\n action_: [],\n nextState: '!f',\n revisit: true\n }\n },\n '(KV letters),': {\n '0': {\n action_: 'rm',\n nextState: '0'\n }\n },\n 'formula$': {\n '0': {\n action_: [],\n nextState: 'f',\n revisit: true\n }\n },\n '1/2$': {\n '0': {\n action_: '1/2'\n }\n },\n 'else': {\n '0': {\n action_: [],\n nextState: '!f',\n revisit: true\n }\n },\n '${(...)}$__$(...)$': {\n '*': {\n action_: 'tex-math'\n }\n },\n '{(...)}': {\n '*': {\n action_: 'text'\n }\n },\n 'a-z': {\n 'f': {\n action_: 'tex-math'\n }\n },\n 'letters': {\n '*': {\n action_: 'rm'\n }\n },\n '-9.,9': {\n '*': {\n action_: '9,9'\n }\n },\n ',': {\n '*': {\n action_: {\n type_: 'insert+p1',\n option: 'comma enumeration S'\n }\n }\n },\n '\\\\color{(...)}{(...)}': {\n '*': {\n action_: 'color-output'\n }\n },\n '\\\\color{(...)}': {\n '*': {\n action_: 'color0-output'\n }\n },\n '\\\\ce{(...)}': {\n '*': {\n action_: 'ce'\n }\n },\n '\\\\pu{(...)}': {\n '*': {\n action_: [{\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': {\n action_: 'copy'\n }\n },\n 'else2': {\n '*': {\n action_: 'copy'\n }\n }\n }),\n actions: {\n 'state of aggregation': function (_buffer, m) {\n return {\n type_: 'state of aggregation subscript',\n p1: _mhchemParser.go(m, 'o')\n };\n },\n 'color-output': function (_buffer, m) {\n return {\n type_: 'color',\n color1: m[0],\n color2: _mhchemParser.go(m[1], 'pq')\n };\n }\n }\n },\n 'bd': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: []\n }\n },\n 'x$': {\n '0': {\n action_: [],\n nextState: '!f',\n revisit: true\n }\n },\n 'formula$': {\n '0': {\n action_: [],\n nextState: 'f',\n revisit: true\n }\n },\n 'else': {\n '0': {\n action_: [],\n nextState: '!f',\n revisit: true\n }\n },\n '-9.,9 no missing 0': {\n '*': {\n action_: '9,9'\n }\n },\n '.': {\n '*': {\n action_: {\n type_: 'insert',\n option: 'electron dot'\n }\n }\n },\n 'a-z': {\n 'f': {\n action_: 'tex-math'\n }\n },\n 'x': {\n '*': {\n action_: {\n type_: 'insert',\n option: 'KV x'\n }\n }\n },\n 'letters': {\n '*': {\n action_: 'rm'\n }\n },\n '\\'': {\n '*': {\n action_: {\n type_: 'insert',\n option: 'prime'\n }\n }\n },\n '${(...)}$__$(...)$': {\n '*': {\n action_: 'tex-math'\n }\n },\n '{(...)}': {\n '*': {\n action_: 'text'\n }\n },\n '\\\\color{(...)}{(...)}': {\n '*': {\n action_: 'color-output'\n }\n },\n '\\\\color{(...)}': {\n '*': {\n action_: 'color0-output'\n }\n },\n '\\\\ce{(...)}': {\n '*': {\n action_: 'ce'\n }\n },\n '\\\\pu{(...)}': {\n '*': {\n action_: [{\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': {\n action_: 'copy'\n }\n },\n 'else2': {\n '*': {\n action_: 'copy'\n }\n }\n }),\n actions: {\n 'color-output': function (_buffer, m) {\n return {\n type_: 'color',\n color1: m[0],\n color2: _mhchemParser.go(m[1], 'bd')\n };\n }\n }\n },\n 'oxidation': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: 'roman-numeral'\n }\n },\n 'pm-operator': {\n '*': {\n action_: {\n type_: 'o=+p1',\n option: \"\\\\pm\"\n }\n }\n },\n 'else': {\n '*': {\n action_: 'o='\n }\n }\n }),\n actions: {\n 'roman-numeral': function (buffer) {\n return {\n type_: 'roman numeral',\n p1: buffer.o || \"\"\n };\n }\n }\n },\n 'tex-math': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: 'output'\n }\n },\n '\\\\ce{(...)}': {\n '*': {\n action_: ['output', 'ce']\n }\n },\n '\\\\pu{(...)}': {\n '*': {\n action_: ['output', {\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n '{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': {\n action_: 'o='\n }\n },\n 'else': {\n '*': {\n action_: 'o='\n }\n }\n }),\n actions: {\n 'output': function (buffer) {\n if (buffer.o) {\n var ret = {\n type_: 'tex-math',\n p1: buffer.o\n };\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n return undefined;\n }\n }\n },\n 'tex-math tight': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: 'output'\n }\n },\n '\\\\ce{(...)}': {\n '*': {\n action_: ['output', 'ce']\n }\n },\n '\\\\pu{(...)}': {\n '*': {\n action_: ['output', {\n type_: 'write',\n option: \"{\"\n }, 'pu', {\n type_: 'write',\n option: \"}\"\n }]\n }\n },\n '{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': {\n action_: 'o='\n }\n },\n '-|+': {\n '*': {\n action_: 'tight operator'\n }\n },\n 'else': {\n '*': {\n action_: 'o='\n }\n }\n }),\n actions: {\n 'tight operator': function (buffer, m) {\n buffer.o = (buffer.o || \"\") + \"{\" + m + \"}\";\n return undefined;\n },\n 'output': function (buffer) {\n if (buffer.o) {\n var ret = {\n type_: 'tex-math',\n p1: buffer.o\n };\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n return undefined;\n }\n }\n },\n '9,9': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: []\n }\n },\n ',': {\n '*': {\n action_: 'comma'\n }\n },\n 'else': {\n '*': {\n action_: 'copy'\n }\n }\n }),\n actions: {\n 'comma': function () {\n return {\n type_: 'commaDecimal'\n };\n }\n }\n },\n 'pu': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: 'output'\n }\n },\n 'space$': {\n '*': {\n action_: ['output', 'space']\n }\n },\n '{[(|)]}': {\n '0|a': {\n action_: 'copy'\n }\n },\n '(-)(9)^(-9)': {\n '0': {\n action_: 'number^',\n nextState: 'a'\n }\n },\n '(-)(9.,9)(e)(99)': {\n '0': {\n action_: 'enumber',\n nextState: 'a'\n }\n },\n 'space': {\n '0|a': {\n action_: []\n }\n },\n 'pm-operator': {\n '0|a': {\n action_: {\n type_: 'operator',\n option: '\\\\pm'\n },\n nextState: '0'\n }\n },\n 'operator': {\n '0|a': {\n action_: 'copy',\n nextState: '0'\n }\n },\n '//': {\n 'd': {\n action_: 'o=',\n nextState: '/'\n }\n },\n '/': {\n 'd': {\n action_: 'o=',\n nextState: '/'\n }\n },\n '{...}|else': {\n '0|d': {\n action_: 'd=',\n nextState: 'd'\n },\n 'a': {\n action_: ['space', 'd='],\n nextState: 'd'\n },\n '/|q': {\n action_: 'q=',\n nextState: 'q'\n }\n }\n }),\n actions: {\n 'enumber': function (_buffer, m) {\n var ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n } else if (m[0]) {\n ret.push(m[0]);\n }\n if (m[1]) {\n _mhchemParser.concatArray(ret, _mhchemParser.go(m[1], 'pu-9,9'));\n if (m[2]) {\n if (m[2].match(/[,.]/)) {\n _mhchemParser.concatArray(ret, _mhchemParser.go(m[2], 'pu-9,9'));\n } else {\n ret.push(m[2]);\n }\n }\n if (m[3] || m[4]) {\n if (m[3] === \"e\" || m[4] === \"*\") {\n ret.push({\n type_: 'cdot'\n });\n } else {\n ret.push({\n type_: 'times'\n });\n }\n }\n }\n if (m[5]) {\n ret.push(\"10^{\" + m[5] + \"}\");\n }\n return ret;\n },\n 'number^': function (_buffer, m) {\n var ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n } else if (m[0]) {\n ret.push(m[0]);\n }\n _mhchemParser.concatArray(ret, _mhchemParser.go(m[1], 'pu-9,9'));\n ret.push(\"^{\" + m[2] + \"}\");\n return ret;\n },\n 'operator': function (_buffer, m, p1) {\n return {\n type_: 'operator',\n kind_: p1 || m\n };\n },\n 'space': function () {\n return {\n type_: 'pu-space-1'\n };\n },\n 'output': function (buffer) {\n var ret;\n var md = _mhchemParser.patterns.match_('{(...)}', buffer.d || \"\");\n if (md && md.remainder === '') {\n buffer.d = md.match_;\n }\n var mq = _mhchemParser.patterns.match_('{(...)}', buffer.q || \"\");\n if (mq && mq.remainder === '') {\n buffer.q = mq.match_;\n }\n if (buffer.d) {\n buffer.d = buffer.d.replace(/\\u00B0C|\\^oC|\\^{o}C/g, \"{}^{\\\\circ}C\");\n buffer.d = buffer.d.replace(/\\u00B0F|\\^oF|\\^{o}F/g, \"{}^{\\\\circ}F\");\n }\n if (buffer.q) {\n buffer.q = buffer.q.replace(/\\u00B0C|\\^oC|\\^{o}C/g, \"{}^{\\\\circ}C\");\n buffer.q = buffer.q.replace(/\\u00B0F|\\^oF|\\^{o}F/g, \"{}^{\\\\circ}F\");\n var b5 = {\n d: _mhchemParser.go(buffer.d, 'pu'),\n q: _mhchemParser.go(buffer.q, 'pu')\n };\n if (buffer.o === '//') {\n ret = {\n type_: 'pu-frac',\n p1: b5.d,\n p2: b5.q\n };\n } else {\n ret = b5.d;\n if (b5.d.length > 1 || b5.q.length > 1) {\n ret.push({\n type_: ' / '\n });\n } else {\n ret.push({\n type_: '/'\n });\n }\n _mhchemParser.concatArray(ret, b5.q);\n }\n } else {\n ret = _mhchemParser.go(buffer.d, 'pu-2');\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n }\n },\n 'pu-2': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': {\n action_: 'output'\n }\n },\n '*': {\n '*': {\n action_: ['output', 'cdot'],\n nextState: '0'\n }\n },\n '\\\\x': {\n '*': {\n action_: 'rm='\n }\n },\n 'space': {\n '*': {\n action_: ['output', 'space'],\n nextState: '0'\n }\n },\n '^{(...)}|^(-1)': {\n '1': {\n action_: '^(-1)'\n }\n },\n '-9.,9': {\n '0': {\n action_: 'rm=',\n nextState: '0'\n },\n '1': {\n action_: '^(-1)',\n nextState: '0'\n }\n },\n '{...}|else': {\n '*': {\n action_: 'rm=',\n nextState: '1'\n }\n }\n }),\n actions: {\n 'cdot': function () {\n return {\n type_: 'tight cdot'\n };\n },\n '^(-1)': function (buffer, m) {\n buffer.rm += \"^{\" + m + \"}\";\n return undefined;\n },\n 'space': function () {\n return {\n type_: 'pu-space-2'\n };\n },\n 'output': function (buffer) {\n var ret = [];\n if (buffer.rm) {\n var mrm = _mhchemParser.patterns.match_('{(...)}', buffer.rm || \"\");\n if (mrm && mrm.remainder === '') {\n ret = _mhchemParser.go(mrm.match_, 'pu');\n } else {\n ret = {\n type_: 'rm',\n p1: buffer.rm\n };\n }\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n }\n },\n 'pu-9,9': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '0': {\n action_: 'output-0'\n },\n 'o': {\n action_: 'output-o'\n }\n },\n ',': {\n '0': {\n action_: ['output-0', 'comma'],\n nextState: 'o'\n }\n },\n '.': {\n '0': {\n action_: ['output-0', 'copy'],\n nextState: 'o'\n }\n },\n 'else': {\n '*': {\n action_: 'text='\n }\n }\n }),\n actions: {\n 'comma': function () {\n return {\n type_: 'commaDecimal'\n };\n },\n 'output-0': function (buffer) {\n var ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n var a = buffer.text_.length % 3;\n if (a === 0) {\n a = 3;\n }\n for (var i = buffer.text_.length - 3; i > 0; i -= 3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({\n type_: '1000 separator'\n });\n }\n ret.push(buffer.text_.substr(0, a));\n ret.reverse();\n } else {\n ret.push(buffer.text_);\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n },\n 'output-o': function (buffer) {\n var ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n var a = buffer.text_.length - 3;\n var i = void 0;\n for (i = 0; i < a; i += 3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({\n type_: '1000 separator'\n });\n }\n ret.push(buffer.text_.substr(i));\n } else {\n ret.push(buffer.text_);\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n }\n }\n }\n};\nvar _mhchemTexify = {\n go: function (input, addOuterBraces) {\n if (!input) {\n return \"\";\n }\n var res = \"\";\n var cee = false;\n for (var i = 0; i < input.length; i++) {\n var inputi = input[i];\n if (typeof inputi === \"string\") {\n res += inputi;\n } else {\n res += _mhchemTexify._go2(inputi);\n if (inputi.type_ === '1st-level escape') {\n cee = true;\n }\n }\n }\n if (addOuterBraces && !cee && res) {\n res = \"{\" + res + \"}\";\n }\n return res;\n },\n _goInner: function (input) {\n return _mhchemTexify.go(input, false);\n },\n _go2: function (buf) {\n var res;\n switch (buf.type_) {\n case 'chemfive':\n res = \"\";\n var b5 = {\n a: _mhchemTexify._goInner(buf.a),\n b: _mhchemTexify._goInner(buf.b),\n p: _mhchemTexify._goInner(buf.p),\n o: _mhchemTexify._goInner(buf.o),\n q: _mhchemTexify._goInner(buf.q),\n d: _mhchemTexify._goInner(buf.d)\n };\n if (b5.a) {\n if (b5.a.match(/^[+\\-]/)) {\n b5.a = \"{\" + b5.a + \"}\";\n }\n res += b5.a + \"\\\\,\";\n }\n if (b5.b || b5.p) {\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\\\\hphantom{\" + (b5.b || \"\") + \"}}_{\\\\hphantom{\" + (b5.p || \"\") + \"}}\";\n res += \"\\\\mkern-1.5mu\";\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\\\\smash[t]{\\\\vphantom{2}}\\\\llap{\" + (b5.b || \"\") + \"}}\";\n res += \"_{\\\\vphantom{2}\\\\llap{\\\\smash[t]{\" + (b5.p || \"\") + \"}}}\";\n }\n if (b5.o) {\n if (b5.o.match(/^[+\\-]/)) {\n b5.o = \"{\" + b5.o + \"}\";\n }\n res += b5.o;\n }\n if (buf.dType === 'kv') {\n if (b5.d || b5.q) {\n res += \"{\\\\vphantom{A}}\";\n }\n if (b5.d) {\n res += \"^{\" + b5.d + \"}\";\n }\n if (b5.q) {\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n } else if (buf.dType === 'oxidation') {\n if (b5.d) {\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\" + b5.d + \"}\";\n }\n if (b5.q) {\n res += \"{\\\\vphantom{A}}\";\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n } else {\n if (b5.q) {\n res += \"{\\\\vphantom{A}}\";\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n if (b5.d) {\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\" + b5.d + \"}\";\n }\n }\n break;\n case 'rm':\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n break;\n case 'text':\n if (buf.p1.match(/[\\^_]/)) {\n buf.p1 = buf.p1.replace(\" \", \"~\").replace(\"-\", \"\\\\text{-}\");\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n } else {\n res = \"\\\\text{\" + buf.p1 + \"}\";\n }\n break;\n case 'roman numeral':\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n break;\n case 'state of aggregation':\n res = \"\\\\mskip2mu \" + _mhchemTexify._goInner(buf.p1);\n break;\n case 'state of aggregation subscript':\n res = \"\\\\mskip1mu \" + _mhchemTexify._goInner(buf.p1);\n break;\n case 'bond':\n res = _mhchemTexify._getBond(buf.kind_);\n if (!res) {\n throw [\"MhchemErrorBond\", \"mhchem Error. Unknown bond type (\" + buf.kind_ + \")\"];\n }\n break;\n case 'frac':\n var c = \"\\\\frac{\" + buf.p1 + \"}{\" + buf.p2 + \"}\";\n res = \"\\\\mathchoice{\\\\textstyle\" + c + \"}{\" + c + \"}{\" + c + \"}{\" + c + \"}\";\n break;\n case 'pu-frac':\n var d = \"\\\\frac{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n res = \"\\\\mathchoice{\\\\textstyle\" + d + \"}{\" + d + \"}{\" + d + \"}{\" + d + \"}\";\n break;\n case 'tex-math':\n res = buf.p1 + \" \";\n break;\n case 'frac-ce':\n res = \"\\\\frac{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'overset':\n res = \"\\\\overset{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'underset':\n res = \"\\\\underset{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'underbrace':\n res = \"\\\\underbrace{\" + _mhchemTexify._goInner(buf.p1) + \"}_{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'color':\n res = \"{\\\\color{\" + buf.color1 + \"}{\" + _mhchemTexify._goInner(buf.color2) + \"}}\";\n break;\n case 'color0':\n res = \"\\\\color{\" + buf.color + \"}\";\n break;\n case 'arrow':\n var b6 = {\n rd: _mhchemTexify._goInner(buf.rd),\n rq: _mhchemTexify._goInner(buf.rq)\n };\n var arrow = _mhchemTexify._getArrow(buf.r);\n if (b6.rd || b6.rq) {\n if (buf.r === \"<=>\" || buf.r === \"<=>>\" || buf.r === \"<<=>\" || buf.r === \"<-->\") {\n arrow = \"\\\\long\" + arrow;\n if (b6.rd) {\n arrow = \"\\\\overset{\" + b6.rd + \"}{\" + arrow + \"}\";\n }\n if (b6.rq) {\n if (buf.r === \"<-->\") {\n arrow = \"\\\\underset{\\\\lower2mu{\" + b6.rq + \"}}{\" + arrow + \"}\";\n } else {\n arrow = \"\\\\underset{\\\\lower6mu{\" + b6.rq + \"}}{\" + arrow + \"}\";\n }\n }\n arrow = \" {}\\\\mathrel{\" + arrow + \"}{} \";\n } else {\n if (b6.rq) {\n arrow += \"[{\" + b6.rq + \"}]\";\n }\n arrow += \"{\" + b6.rd + \"}\";\n arrow = \" {}\\\\mathrel{\\\\x\" + arrow + \"}{} \";\n }\n } else {\n arrow = \" {}\\\\mathrel{\\\\long\" + arrow + \"}{} \";\n }\n res = arrow;\n break;\n case 'operator':\n res = _mhchemTexify._getOperator(buf.kind_);\n break;\n case '1st-level escape':\n res = buf.p1 + \" \";\n break;\n case 'space':\n res = \" \";\n break;\n case 'tinySkip':\n res = '\\\\mkern2mu';\n break;\n case 'entitySkip':\n res = \"~\";\n break;\n case 'pu-space-1':\n res = \"~\";\n break;\n case 'pu-space-2':\n res = \"\\\\mkern3mu \";\n break;\n case '1000 separator':\n res = \"\\\\mkern2mu \";\n break;\n case 'commaDecimal':\n res = \"{,}\";\n break;\n case 'comma enumeration L':\n res = \"{\" + buf.p1 + \"}\\\\mkern6mu \";\n break;\n case 'comma enumeration M':\n res = \"{\" + buf.p1 + \"}\\\\mkern3mu \";\n break;\n case 'comma enumeration S':\n res = \"{\" + buf.p1 + \"}\\\\mkern1mu \";\n break;\n case 'hyphen':\n res = \"\\\\text{-}\";\n break;\n case 'addition compound':\n res = \"\\\\,{\\\\cdot}\\\\,\";\n break;\n case 'electron dot':\n res = \"\\\\mkern1mu \\\\bullet\\\\mkern1mu \";\n break;\n case 'KV x':\n res = \"{\\\\times}\";\n break;\n case 'prime':\n res = \"\\\\prime \";\n break;\n case 'cdot':\n res = \"\\\\cdot \";\n break;\n case 'tight cdot':\n res = \"\\\\mkern1mu{\\\\cdot}\\\\mkern1mu \";\n break;\n case 'times':\n res = \"\\\\times \";\n break;\n case 'circa':\n res = \"{\\\\sim}\";\n break;\n case '^':\n res = \"uparrow\";\n break;\n case 'v':\n res = \"downarrow\";\n break;\n case 'ellipsis':\n res = \"\\\\ldots \";\n break;\n case '/':\n res = \"/\";\n break;\n case ' / ':\n res = \"\\\\,/\\\\,\";\n break;\n default:\n assertNever(buf);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n return res;\n },\n _getArrow: function (a) {\n switch (a) {\n case \"->\":\n return \"rightarrow\";\n case \"\\u2192\":\n return \"rightarrow\";\n case \"\\u27F6\":\n return \"rightarrow\";\n case \"<-\":\n return \"leftarrow\";\n case \"<->\":\n return \"leftrightarrow\";\n case \"<-->\":\n return \"leftrightarrows\";\n case \"<=>\":\n return \"rightleftharpoons\";\n case \"\\u21CC\":\n return \"rightleftharpoons\";\n case \"<=>>\":\n return \"Rightleftharpoons\";\n case \"<<=>\":\n return \"Leftrightharpoons\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getBond: function (a) {\n switch (a) {\n case \"-\":\n return \"{-}\";\n case \"1\":\n return \"{-}\";\n case \"=\":\n return \"{=}\";\n case \"2\":\n return \"{=}\";\n case \"#\":\n return \"{\\\\equiv}\";\n case \"3\":\n return \"{\\\\equiv}\";\n case \"~\":\n return \"{\\\\tripledash}\";\n case \"~-\":\n return \"{\\\\rlap{\\\\lower.1em{-}}\\\\raise.1em{\\\\tripledash}}\";\n case \"~=\":\n return \"{\\\\rlap{\\\\lower.2em{-}}\\\\rlap{\\\\raise.2em{\\\\tripledash}}-}\";\n case \"~--\":\n return \"{\\\\rlap{\\\\lower.2em{-}}\\\\rlap{\\\\raise.2em{\\\\tripledash}}-}\";\n case \"-~-\":\n return \"{\\\\rlap{\\\\lower.2em{-}}\\\\rlap{\\\\raise.2em{-}}\\\\tripledash}\";\n case \"...\":\n return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"....\":\n return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"->\":\n return \"{\\\\rightarrow}\";\n case \"<-\":\n return \"{\\\\leftarrow}\";\n case \"<\":\n return \"{<}\";\n case \">\":\n return \"{>}\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getOperator: function (a) {\n switch (a) {\n case \"+\":\n return \" {}+{} \";\n case \"-\":\n return \" {}-{} \";\n case \"=\":\n return \" {}={} \";\n case \"<\":\n return \" {}<{} \";\n case \">\":\n return \" {}>{} \";\n case \"<<\":\n return \" {}\\\\ll{} \";\n case \">>\":\n return \" {}\\\\gg{} \";\n case \"\\\\pm\":\n return \" {}\\\\pm{} \";\n case \"\\\\approx\":\n return \" {}\\\\approx{} \";\n case \"$\\\\approx$\":\n return \" {}\\\\approx{} \";\n case \"v\":\n return \" \\\\downarrow{} \";\n case \"(v)\":\n return \" \\\\downarrow{} \";\n case \"^\":\n return \" \\\\uparrow{} \";\n case \"(^)\":\n return \" \\\\uparrow{} \";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n }\n};\nfunction assertNever(a) {}","map":{"version":3,"names":["Object","defineProperty","exports","value","mhchemParser","toTex","input","type","_mhchemTexify","go","_mhchemParser","_mhchemCreateTransitions","o","pattern","state","transitions","stateArray","split","i","length","p","action_","concat","k","type_","patternArray","j","t","push","task","stateMachine","undefined","buffer","replace","lastInput","watchdog","output","machine","stateMachines","iterateTransitions","matches","patterns","match_","iA","actions","option","concatArray","nextState","revisit","remainder","toContinue","a","b","Array","isArray","iB","(-)(9.,9)(e)(99)","match","slice","substr","state of aggregation $","findObserveGroups","^{(...)}","^($...$)","^\\x{}{}","^\\x{}","_{(...)}","_($...$)","_\\x{}{}","_\\x{}","{...}","{(...)}","$...$","${(...)}$__$(...)$","\\bond{(...)}","[(...)]","\\x{}{}","\\x{}","\\frac{(...)}","\\overset{(...)}","\\underset{(...)}","\\underbrace{(...)}","\\color{(...)}","\\color{(...)}{(...)}","\\ce{(...)}","\\pu{(...)}","amount","amount2","formula$","begExcl","begIncl","endIncl","endExcl","beg2Excl","beg2Incl","end2Incl","end2Excl","combine","_match","indexOf","match_1","_findObserveGroups","endChars","braces","charAt","match_2","endMatchBegin","endMatchEnd","e","match1","substring","group2","matchRet","join","m","a=","b=","p=","o=","o=+p1","_m","q=","q","d=","d","rm=","rm","text=","text_","insert","_buffer","insert+p1","p1","insert+p1+p2","p2","copy","write","text","tex-math","tex-math tight","bond","kind_","color0-output","color","ce","pu","1/2","ret","n","9,9","o after d","tmp","d= kv","dType","charge or bond","- after o/d","isAfterD","c1","c2","c3","c4","hyphenFollows","a to o","sb=true","sb","sb=false","beginsWithBond=true","beginsWithBond=false","parenthesisLevel++","parenthesisLevel--","state of aggregation","comma","withSpace","entityFollows","r","rd","rdt","rq","rqt","oxidation-output","frac-output","overset-output","underset-output","underbrace-output","color-output","color1","color2","r=","rdt=","rd=","rqt=","rq=","operator","roman-numeral","tight operator","enumber","number^","space","md","mq","b5","cdot","^(-1)","mrm","output-0","reverse","output-o","addOuterBraces","res","cee","inputi","_go2","_goInner","buf","_getBond","c","b6","arrow","_getArrow","_getOperator","assertNever"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/mhchemparser/dist/mhchemParser.js"],"sourcesContent":["\"use strict\";\n/*!\n *************************************************************************\n *\n * mhchemParser.ts\n * 4.2.1\n *\n * Parser for the \\ce command and \\pu command for MathJax and Co.\n *\n * mhchem's \\ce is a tool for writing beautiful chemical equations easily.\n * mhchem's \\pu is a tool for writing physical units easily.\n *\n * ----------------------------------------------------------------------\n *\n * Copyright (c) 2015-2023 Martin Hensel\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * ----------------------------------------------------------------------\n *\n * https://github.com/mhchem/mhchemParser\n *\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mhchemParser = void 0;\nvar mhchemParser = (function () {\n function mhchemParser() {\n }\n mhchemParser.toTex = function (input, type) {\n return _mhchemTexify.go(_mhchemParser.go(input, type), type !== \"tex\");\n };\n return mhchemParser;\n}());\nexports.mhchemParser = mhchemParser;\nfunction _mhchemCreateTransitions(o) {\n var pattern, state;\n var transitions = {};\n for (pattern in o) {\n for (state in o[pattern]) {\n var stateArray = state.split(\"|\");\n o[pattern][state].stateArray = stateArray;\n for (var i = 0; i < stateArray.length; i++) {\n transitions[stateArray[i]] = [];\n }\n }\n }\n for (pattern in o) {\n for (state in o[pattern]) {\n var stateArray = o[pattern][state].stateArray || [];\n for (var i = 0; i < stateArray.length; i++) {\n var p = o[pattern][state];\n p.action_ = [].concat(p.action_);\n for (var k = 0; k < p.action_.length; k++) {\n if (typeof p.action_[k] === \"string\") {\n p.action_[k] = { type_: p.action_[k] };\n }\n }\n var patternArray = pattern.split(\"|\");\n for (var j = 0; j < patternArray.length; j++) {\n if (stateArray[i] === '*') {\n var t = void 0;\n for (t in transitions) {\n transitions[t].push({ pattern: patternArray[j], task: p });\n }\n }\n else {\n transitions[stateArray[i]].push({ pattern: patternArray[j], task: p });\n }\n }\n }\n }\n }\n return transitions;\n}\n;\nvar _mhchemParser = {\n go: function (input, stateMachine) {\n if (!input) {\n return [];\n }\n if (stateMachine === undefined) {\n stateMachine = 'ce';\n }\n var state = '0';\n var buffer = {};\n buffer['parenthesisLevel'] = 0;\n input = input.replace(/\\n/g, \" \");\n input = input.replace(/[\\u2212\\u2013\\u2014\\u2010]/g, \"-\");\n input = input.replace(/[\\u2026]/g, \"...\");\n var lastInput;\n var watchdog = 10;\n var output = [];\n while (true) {\n if (lastInput !== input) {\n watchdog = 10;\n lastInput = input;\n }\n else {\n watchdog--;\n }\n var machine = _mhchemParser.stateMachines[stateMachine];\n var t = machine.transitions[state] || machine.transitions['*'];\n iterateTransitions: for (var i = 0; i < t.length; i++) {\n var matches = _mhchemParser.patterns.match_(t[i].pattern, input);\n if (matches) {\n var task = t[i].task;\n for (var iA = 0; iA < task.action_.length; iA++) {\n var o = void 0;\n if (machine.actions[task.action_[iA].type_]) {\n o = machine.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);\n }\n else if (_mhchemParser.actions[task.action_[iA].type_]) {\n o = _mhchemParser.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);\n }\n else {\n throw [\"MhchemBugA\", \"mhchem bug A. Please report. (\" + task.action_[iA].type_ + \")\"];\n }\n _mhchemParser.concatArray(output, o);\n }\n state = task.nextState || state;\n if (input.length > 0) {\n if (!task.revisit) {\n input = matches.remainder;\n }\n if (!task.toContinue) {\n break iterateTransitions;\n }\n }\n else {\n return output;\n }\n }\n }\n if (watchdog <= 0) {\n throw [\"MhchemBugU\", \"mhchem bug U. Please report.\"];\n }\n }\n },\n concatArray: function (a, b) {\n if (b) {\n if (Array.isArray(b)) {\n for (var iB = 0; iB < b.length; iB++) {\n a.push(b[iB]);\n }\n }\n else {\n a.push(b);\n }\n }\n },\n patterns: {\n patterns: {\n 'empty': /^$/,\n 'else': /^./,\n 'else2': /^./,\n 'space': /^\\s/,\n 'space A': /^\\s(?=[A-Z\\\\$])/,\n 'space$': /^\\s$/,\n 'a-z': /^[a-z]/,\n 'x': /^x/,\n 'x$': /^x$/,\n 'i$': /^i$/,\n 'letters': /^(?:[a-zA-Z\\u03B1-\\u03C9\\u0391-\\u03A9?@]|(?:\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))))+/,\n '\\\\greek': /^\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))/,\n 'one lowercase latin letter $': /^(?:([a-z])(?:$|[^a-zA-Z]))$/,\n '$one lowercase latin letter$ $': /^\\$(?:([a-z])(?:$|[^a-zA-Z]))\\$$/,\n 'one lowercase greek letter $': /^(?:\\$?[\\u03B1-\\u03C9]\\$?|\\$?\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\\s*\\$?)(?:\\s+|\\{\\}|(?![a-zA-Z]))$/,\n 'digits': /^[0-9]+/,\n '-9.,9': /^[+\\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))/,\n '-9.,9 no missing 0': /^[+\\-]?[0-9]+(?:[.,][0-9]+)?/,\n '(-)(9.,9)(e)(99)': function (input) {\n var match = input.match(/^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))?(\\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))\\))?(?:(?:([eE])|\\s*(\\*|x|\\\\times|\\u00D7)\\s*10\\^)([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\}))?/);\n if (match && match[0]) {\n return { match_: match.slice(1), remainder: input.substr(match[0].length) };\n }\n return null;\n },\n '(-)(9)^(-9)': /^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+)?)\\^([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\})/,\n 'state of aggregation $': function (input) {\n var a = _mhchemParser.patterns.findObserveGroups(input, \"\", /^\\([a-z]{1,3}(?=[\\),])/, \")\", \"\");\n if (a && a.remainder.match(/^($|[\\s,;\\)\\]\\}])/)) {\n return a;\n }\n var match = input.match(/^(?:\\((?:\\\\ca\\s?)?\\$[amothc]\\$\\))/);\n if (match) {\n return { match_: match[0], remainder: input.substr(match[0].length) };\n }\n return null;\n },\n '_{(state of aggregation)}$': /^_\\{(\\([a-z]{1,3}\\))\\}/,\n '{[(': /^(?:\\\\\\{|\\[|\\()/,\n ')]}': /^(?:\\)|\\]|\\\\\\})/,\n ', ': /^[,;]\\s*/,\n ',': /^[,;]/,\n '.': /^[.]/,\n '. __* ': /^([.\\u22C5\\u00B7\\u2022]|[*])\\s*/,\n '...': /^\\.\\.\\.(?=$|[^.])/,\n '^{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"^{\", \"\", \"\", \"}\"); },\n '^($...$)': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"^\", \"$\", \"$\", \"\"); },\n '^a': /^\\^([0-9]+|[^\\\\_])/,\n '^\\\\x{}{}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"^\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true); },\n '^\\\\x{}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"^\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\"); },\n '^\\\\x': /^\\^(\\\\[a-zA-Z]+)\\s*/,\n '^(-1)': /^\\^(-?\\d+)/,\n '\\'': /^'/,\n '_{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"_{\", \"\", \"\", \"}\"); },\n '_($...$)': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"_\", \"$\", \"$\", \"\"); },\n '_9': /^_([+\\-]?[0-9]+|[^\\\\])/,\n '_\\\\x{}{}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"_\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true); },\n '_\\\\x{}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"_\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\"); },\n '_\\\\x': /^_(\\\\[a-zA-Z]+)\\s*/,\n '^_': /^(?:\\^(?=_)|\\_(?=\\^)|[\\^_]$)/,\n '{}^': /^\\{\\}(?=\\^)/,\n '{}': /^\\{\\}/,\n '{...}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\", \"{\", \"}\", \"\"); },\n '{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"{\", \"\", \"\", \"}\"); },\n '$...$': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\", \"$\", \"$\", \"\"); },\n '${(...)}$__$(...)$': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"${\", \"\", \"\", \"}$\") || _mhchemParser.patterns.findObserveGroups(input, \"$\", \"\", \"\", \"$\");\n },\n '=<>': /^[=<>]/,\n '#': /^[#\\u2261]/,\n '+': /^\\+/,\n '-$': /^-(?=[\\s_},;\\]/]|$|\\([a-z]+\\))/,\n '-9': /^-(?=[0-9])/,\n '- orbital overlap': /^-(?=(?:[spd]|sp)(?:$|[\\s,;\\)\\]\\}]))/,\n '-': /^-/,\n 'pm-operator': /^(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)/,\n 'operator': /^(?:\\+|(?:[\\-=<>]|<<|>>|\\\\approx|\\$\\\\approx\\$)(?=\\s|$|-?[0-9]))/,\n 'arrowUpDown': /^(?:v|\\(v\\)|\\^|\\(\\^\\))(?=$|[\\s,;\\)\\]\\}])/,\n '\\\\bond{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\bond{\", \"\", \"\", \"}\"); },\n '->': /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\\u2192\\u27F6\\u21CC])/,\n 'CMT': /^[CMT](?=\\[)/,\n '[(...)]': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"[\", \"\", \"\", \"]\"); },\n '1st-level escape': /^(&|\\\\\\\\|\\\\hline)\\s*/,\n '\\\\,': /^(?:\\\\[,\\ ;:])/,\n '\\\\x{}{}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true); },\n '\\\\x{}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\"); },\n '\\\\ca': /^\\\\ca(?:\\s+|(?![a-zA-Z]))/,\n '\\\\x': /^(?:\\\\[a-zA-Z]+\\s*|\\\\[_&{}%])/,\n 'orbital': /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,\n 'others': /^[\\/~|]/,\n '\\\\frac{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\frac{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\"); },\n '\\\\overset{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\overset{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\"); },\n '\\\\underset{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\underset{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\"); },\n '\\\\underbrace{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\underbrace{\", \"\", \"\", \"}_\", \"{\", \"\", \"\", \"}\"); },\n '\\\\color{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\color{\", \"\", \"\", \"}\"); },\n '\\\\color{(...)}{(...)}': function (input) {\n return _mhchemParser.patterns.findObserveGroups(input, \"\\\\color{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\") ||\n _mhchemParser.patterns.findObserveGroups(input, \"\\\\color\", \"\\\\\", \"\", /^(?=\\{)/, \"{\", \"\", \"\", \"}\");\n },\n '\\\\ce{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\ce{\", \"\", \"\", \"}\"); },\n '\\\\pu{(...)}': function (input) { return _mhchemParser.patterns.findObserveGroups(input, \"\\\\pu{\", \"\", \"\", \"}\"); },\n 'oxidation$': /^(?:[+-][IVX]+|(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)\\s*0)$/,\n 'd-oxidation$': /^(?:[+-]?[IVX]+|(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)\\s*0)$/,\n '1/2$': /^[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+(?:\\$[a-z]\\$|[a-z])?$/,\n 'amount': function (input) {\n var match;\n match = input.match(/^(?:(?:(?:\\([+\\-]?[0-9]+\\/[0-9]+\\)|[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+|[+\\-]?[0-9]+[.,][0-9]+|[+\\-]?\\.[0-9]+|[+\\-]?[0-9]+)(?:[a-z](?=\\s*[A-Z]))?)|[+\\-]?[a-z](?=\\s*[A-Z])|\\+(?!\\s))/);\n if (match) {\n return { match_: match[0], remainder: input.substr(match[0].length) };\n }\n var a = _mhchemParser.patterns.findObserveGroups(input, \"\", \"$\", \"$\", \"\");\n if (a) {\n match = a.match_.match(/^\\$(?:\\(?[+\\-]?(?:[0-9]*[a-z]?[+\\-])?[0-9]*[a-z](?:[+\\-][0-9]*[a-z]?)?\\)?|\\+|-)\\$$/);\n if (match) {\n return { match_: match[0], remainder: input.substr(match[0].length) };\n }\n }\n return null;\n },\n 'amount2': function (input) { return this['amount'](input); },\n '(KV letters),': /^(?:[A-Z][a-z]{0,2}|i)(?=,)/,\n 'formula$': function (input) {\n if (input.match(/^\\([a-z]+\\)$/)) {\n return null;\n }\n var match = input.match(/^(?:[a-z]|(?:[0-9\\ \\+\\-\\,\\.\\(\\)]+[a-z])+[0-9\\ \\+\\-\\,\\.\\(\\)]*|(?:[a-z][0-9\\ \\+\\-\\,\\.\\(\\)]+)+[a-z]?)$/);\n if (match) {\n return { match_: match[0], remainder: input.substr(match[0].length) };\n }\n return null;\n },\n 'uprightEntities': /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,\n '/': /^\\s*(\\/)\\s*/,\n '//': /^\\s*(\\/\\/)\\s*/,\n '*': /^\\s*[*.]\\s*/\n },\n findObserveGroups: function (input, begExcl, begIncl, endIncl, endExcl, beg2Excl, beg2Incl, end2Incl, end2Excl, combine) {\n var _match = function (input, pattern) {\n if (typeof pattern === \"string\") {\n if (input.indexOf(pattern) !== 0) {\n return null;\n }\n return pattern;\n }\n else {\n var match_1 = input.match(pattern);\n if (!match_1) {\n return null;\n }\n return match_1[0];\n }\n };\n var _findObserveGroups = function (input, i, endChars) {\n var braces = 0;\n while (i < input.length) {\n var a = input.charAt(i);\n var match_2 = _match(input.substr(i), endChars);\n if (match_2 !== null && braces === 0) {\n return { endMatchBegin: i, endMatchEnd: i + match_2.length };\n }\n else if (a === \"{\") {\n braces++;\n }\n else if (a === \"}\") {\n if (braces === 0) {\n throw [\"ExtraCloseMissingOpen\", \"Extra close brace or missing open brace\"];\n }\n else {\n braces--;\n }\n }\n i++;\n }\n if (braces > 0) {\n return null;\n }\n return null;\n };\n var match = _match(input, begExcl);\n if (match === null) {\n return null;\n }\n input = input.substr(match.length);\n match = _match(input, begIncl);\n if (match === null) {\n return null;\n }\n var e = _findObserveGroups(input, match.length, endIncl || endExcl);\n if (e === null) {\n return null;\n }\n var match1 = input.substring(0, (endIncl ? e.endMatchEnd : e.endMatchBegin));\n if (!(beg2Excl || beg2Incl)) {\n return {\n match_: match1,\n remainder: input.substr(e.endMatchEnd)\n };\n }\n else {\n var group2 = this.findObserveGroups(input.substr(e.endMatchEnd), beg2Excl, beg2Incl, end2Incl, end2Excl);\n if (group2 === null) {\n return null;\n }\n var matchRet = [match1, group2.match_];\n return {\n match_: (combine ? matchRet.join(\"\") : matchRet),\n remainder: group2.remainder\n };\n }\n },\n match_: function (m, input) {\n var pattern = _mhchemParser.patterns.patterns[m];\n if (pattern === undefined) {\n throw [\"MhchemBugP\", \"mhchem bug P. Please report. (\" + m + \")\"];\n }\n else if (typeof pattern === \"function\") {\n return _mhchemParser.patterns.patterns[m](input);\n }\n else {\n var match = input.match(pattern);\n if (match) {\n if (match.length > 2) {\n return { match_: match.slice(1), remainder: input.substr(match[0].length) };\n }\n else {\n return { match_: match[1] || match[0], remainder: input.substr(match[0].length) };\n }\n }\n return null;\n }\n }\n },\n actions: {\n 'a=': function (buffer, m) { buffer.a = (buffer.a || \"\") + m; return undefined; },\n 'b=': function (buffer, m) { buffer.b = (buffer.b || \"\") + m; return undefined; },\n 'p=': function (buffer, m) { buffer.p = (buffer.p || \"\") + m; return undefined; },\n 'o=': function (buffer, m) { buffer.o = (buffer.o || \"\") + m; return undefined; },\n 'o=+p1': function (buffer, _m, a) { buffer.o = (buffer.o || \"\") + a; return undefined; },\n 'q=': function (buffer, m) { buffer.q = (buffer.q || \"\") + m; return undefined; },\n 'd=': function (buffer, m) { buffer.d = (buffer.d || \"\") + m; return undefined; },\n 'rm=': function (buffer, m) { buffer.rm = (buffer.rm || \"\") + m; return undefined; },\n 'text=': function (buffer, m) { buffer.text_ = (buffer.text_ || \"\") + m; return undefined; },\n 'insert': function (_buffer, _m, a) { return { type_: a }; },\n 'insert+p1': function (_buffer, m, a) { return { type_: a, p1: m }; },\n 'insert+p1+p2': function (_buffer, m, a) { return { type_: a, p1: m[0], p2: m[1] }; },\n 'copy': function (_buffer, m) { return m; },\n 'write': function (_buffer, _m, a) { return a; },\n 'rm': function (_buffer, m) { return { type_: 'rm', p1: m }; },\n 'text': function (_buffer, m) { return _mhchemParser.go(m, 'text'); },\n 'tex-math': function (_buffer, m) { return _mhchemParser.go(m, 'tex-math'); },\n 'tex-math tight': function (_buffer, m) { return _mhchemParser.go(m, 'tex-math tight'); },\n 'bond': function (_buffer, m, k) { return { type_: 'bond', kind_: k || m }; },\n 'color0-output': function (_buffer, m) { return { type_: 'color0', color: m }; },\n 'ce': function (_buffer, m) { return _mhchemParser.go(m, 'ce'); },\n 'pu': function (_buffer, m) { return _mhchemParser.go(m, 'pu'); },\n '1/2': function (_buffer, m) {\n var ret = [];\n if (m.match(/^[+\\-]/)) {\n ret.push(m.substr(0, 1));\n m = m.substr(1);\n }\n var n = m.match(/^([0-9]+|\\$[a-z]\\$|[a-z])\\/([0-9]+)(\\$[a-z]\\$|[a-z])?$/);\n n[1] = n[1].replace(/\\$/g, \"\");\n ret.push({ type_: 'frac', p1: n[1], p2: n[2] });\n if (n[3]) {\n n[3] = n[3].replace(/\\$/g, \"\");\n ret.push({ type_: 'tex-math', p1: n[3] });\n }\n return ret;\n },\n '9,9': function (_buffer, m) { return _mhchemParser.go(m, '9,9'); }\n },\n stateMachines: {\n 'tex': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '0': { action_: 'copy' }\n },\n '\\\\ce{(...)}': {\n '0': { action_: [{ type_: 'write', option: \"{\" }, 'ce', { type_: 'write', option: \"}\" }] }\n },\n '\\\\pu{(...)}': {\n '0': { action_: [{ type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }] }\n },\n 'else': {\n '0': { action_: 'copy' }\n },\n }),\n actions: {}\n },\n 'ce': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: 'output' }\n },\n 'else': {\n '0|1|2': { action_: 'beginsWithBond=false', revisit: true, toContinue: true }\n },\n 'oxidation$': {\n '0': { action_: 'oxidation-output' }\n },\n 'CMT': {\n 'r': { action_: 'rdt=', nextState: 'rt' },\n 'rd': { action_: 'rqt=', nextState: 'rdt' }\n },\n 'arrowUpDown': {\n '0|1|2|as': { action_: ['sb=false', 'output', 'operator'], nextState: '1' }\n },\n 'uprightEntities': {\n '0|1|2': { action_: ['o=', 'output'], nextState: '1' }\n },\n 'orbital': {\n '0|1|2|3': { action_: 'o=', nextState: 'o' }\n },\n '->': {\n '0|1|2|3': { action_: 'r=', nextState: 'r' },\n 'a|as': { action_: ['output', 'r='], nextState: 'r' },\n '*': { action_: ['output', 'r='], nextState: 'r' }\n },\n '+': {\n 'o': { action_: 'd= kv', nextState: 'd' },\n 'd|D': { action_: 'd=', nextState: 'd' },\n 'q': { action_: 'd=', nextState: 'qd' },\n 'qd|qD': { action_: 'd=', nextState: 'qd' },\n 'dq': { action_: ['output', 'd='], nextState: 'd' },\n '3': { action_: ['sb=false', 'output', 'operator'], nextState: '0' }\n },\n 'amount': {\n '0|2': { action_: 'a=', nextState: 'a' }\n },\n 'pm-operator': {\n '0|1|2|a|as': { action_: ['sb=false', 'output', { type_: 'operator', option: '\\\\pm' }], nextState: '0' }\n },\n 'operator': {\n '0|1|2|a|as': { action_: ['sb=false', 'output', 'operator'], nextState: '0' }\n },\n '-$': {\n 'o|q': { action_: ['charge or bond', 'output'], nextState: 'qd' },\n 'd': { action_: 'd=', nextState: 'd' },\n 'D': { action_: ['output', { type_: 'bond', option: \"-\" }], nextState: '3' },\n 'q': { action_: 'd=', nextState: 'qd' },\n 'qd': { action_: 'd=', nextState: 'qd' },\n 'qD|dq': { action_: ['output', { type_: 'bond', option: \"-\" }], nextState: '3' }\n },\n '-9': {\n '3|o': { action_: ['output', { type_: 'insert', option: 'hyphen' }], nextState: '3' }\n },\n '- orbital overlap': {\n 'o': { action_: ['output', { type_: 'insert', option: 'hyphen' }], nextState: '2' },\n 'd': { action_: ['output', { type_: 'insert', option: 'hyphen' }], nextState: '2' }\n },\n '-': {\n '0|1|2': { action_: [{ type_: 'output', option: 1 }, 'beginsWithBond=true', { type_: 'bond', option: \"-\" }], nextState: '3' },\n '3': { action_: { type_: 'bond', option: \"-\" } },\n 'a': { action_: ['output', { type_: 'insert', option: 'hyphen' }], nextState: '2' },\n 'as': { action_: [{ type_: 'output', option: 2 }, { type_: 'bond', option: \"-\" }], nextState: '3' },\n 'b': { action_: 'b=' },\n 'o': { action_: { type_: '- after o/d', option: false }, nextState: '2' },\n 'q': { action_: { type_: '- after o/d', option: false }, nextState: '2' },\n 'd|qd|dq': { action_: { type_: '- after o/d', option: true }, nextState: '2' },\n 'D|qD|p': { action_: ['output', { type_: 'bond', option: \"-\" }], nextState: '3' }\n },\n 'amount2': {\n '1|3': { action_: 'a=', nextState: 'a' }\n },\n 'letters': {\n '0|1|2|3|a|as|b|p|bp|o': { action_: 'o=', nextState: 'o' },\n 'q|dq': { action_: ['output', 'o='], nextState: 'o' },\n 'd|D|qd|qD': { action_: 'o after d', nextState: 'o' }\n },\n 'digits': {\n 'o': { action_: 'q=', nextState: 'q' },\n 'd|D': { action_: 'q=', nextState: 'dq' },\n 'q': { action_: ['output', 'o='], nextState: 'o' },\n 'a': { action_: 'o=', nextState: 'o' }\n },\n 'space A': {\n 'b|p|bp': { action_: [] }\n },\n 'space': {\n 'a': { action_: [], nextState: 'as' },\n '0': { action_: 'sb=false' },\n '1|2': { action_: 'sb=true' },\n 'r|rt|rd|rdt|rdq': { action_: 'output', nextState: '0' },\n '*': { action_: ['output', 'sb=true'], nextState: '1' }\n },\n '1st-level escape': {\n '1|2': { action_: ['output', { type_: 'insert+p1', option: '1st-level escape' }] },\n '*': { action_: ['output', { type_: 'insert+p1', option: '1st-level escape' }], nextState: '0' }\n },\n '[(...)]': {\n 'r|rt': { action_: 'rd=', nextState: 'rd' },\n 'rd|rdt': { action_: 'rq=', nextState: 'rdq' }\n },\n '...': {\n 'o|d|D|dq|qd|qD': { action_: ['output', { type_: 'bond', option: \"...\" }], nextState: '3' },\n '*': { action_: [{ type_: 'output', option: 1 }, { type_: 'insert', option: 'ellipsis' }], nextState: '1' }\n },\n '. __* ': {\n '*': { action_: ['output', { type_: 'insert', option: 'addition compound' }], nextState: '1' }\n },\n 'state of aggregation $': {\n '*': { action_: ['output', 'state of aggregation'], nextState: '1' }\n },\n '{[(': {\n 'a|as|o': { action_: ['o=', 'output', 'parenthesisLevel++'], nextState: '2' },\n '0|1|2|3': { action_: ['o=', 'output', 'parenthesisLevel++'], nextState: '2' },\n '*': { action_: ['output', 'o=', 'output', 'parenthesisLevel++'], nextState: '2' }\n },\n ')]}': {\n '0|1|2|3|b|p|bp|o': { action_: ['o=', 'parenthesisLevel--'], nextState: 'o' },\n 'a|as|d|D|q|qd|qD|dq': { action_: ['output', 'o=', 'parenthesisLevel--'], nextState: 'o' }\n },\n ', ': {\n '*': { action_: ['output', 'comma'], nextState: '0' }\n },\n '^_': {\n '*': { action_: [] }\n },\n '^{(...)}|^($...$)': {\n '0|1|2|as': { action_: 'b=', nextState: 'b' },\n 'p': { action_: 'b=', nextState: 'bp' },\n '3|o': { action_: 'd= kv', nextState: 'D' },\n 'q': { action_: 'd=', nextState: 'qD' },\n 'd|D|qd|qD|dq': { action_: ['output', 'd='], nextState: 'D' }\n },\n '^a|^\\\\x{}{}|^\\\\x{}|^\\\\x|\\'': {\n '0|1|2|as': { action_: 'b=', nextState: 'b' },\n 'p': { action_: 'b=', nextState: 'bp' },\n '3|o': { action_: 'd= kv', nextState: 'd' },\n 'q': { action_: 'd=', nextState: 'qd' },\n 'd|qd|D|qD': { action_: 'd=' },\n 'dq': { action_: ['output', 'd='], nextState: 'd' }\n },\n '_{(state of aggregation)}$': {\n 'd|D|q|qd|qD|dq': { action_: ['output', 'q='], nextState: 'q' }\n },\n '_{(...)}|_($...$)|_9|_\\\\x{}{}|_\\\\x{}|_\\\\x': {\n '0|1|2|as': { action_: 'p=', nextState: 'p' },\n 'b': { action_: 'p=', nextState: 'bp' },\n '3|o': { action_: 'q=', nextState: 'q' },\n 'd|D': { action_: 'q=', nextState: 'dq' },\n 'q|qd|qD|dq': { action_: ['output', 'q='], nextState: 'q' }\n },\n '=<>': {\n '0|1|2|3|a|as|o|q|d|D|qd|qD|dq': { action_: [{ type_: 'output', option: 2 }, 'bond'], nextState: '3' }\n },\n '#': {\n '0|1|2|3|a|as|o': { action_: [{ type_: 'output', option: 2 }, { type_: 'bond', option: \"#\" }], nextState: '3' }\n },\n '{}^': {\n '*': { action_: [{ type_: 'output', option: 1 }, { type_: 'insert', option: 'tinySkip' }], nextState: '1' }\n },\n '{}': {\n '*': { action_: { type_: 'output', option: 1 }, nextState: '1' }\n },\n '{...}': {\n '0|1|2|3|a|as|b|p|bp': { action_: 'o=', nextState: 'o' },\n 'o|d|D|q|qd|qD|dq': { action_: ['output', 'o='], nextState: 'o' }\n },\n '$...$': {\n 'a': { action_: 'a=' },\n '0|1|2|3|as|b|p|bp|o': { action_: 'o=', nextState: 'o' },\n 'as|o': { action_: 'o=' },\n 'q|d|D|qd|qD|dq': { action_: ['output', 'o='], nextState: 'o' }\n },\n '\\\\bond{(...)}': {\n '*': { action_: [{ type_: 'output', option: 2 }, 'bond'], nextState: \"3\" }\n },\n '\\\\frac{(...)}': {\n '*': { action_: [{ type_: 'output', option: 1 }, 'frac-output'], nextState: '3' }\n },\n '\\\\overset{(...)}': {\n '*': { action_: [{ type_: 'output', option: 2 }, 'overset-output'], nextState: '3' }\n },\n '\\\\underset{(...)}': {\n '*': { action_: [{ type_: 'output', option: 2 }, 'underset-output'], nextState: '3' }\n },\n '\\\\underbrace{(...)}': {\n '*': { action_: [{ type_: 'output', option: 2 }, 'underbrace-output'], nextState: '3' }\n },\n '\\\\color{(...)}{(...)}': {\n '*': { action_: [{ type_: 'output', option: 2 }, 'color-output'], nextState: '3' }\n },\n '\\\\color{(...)}': {\n '*': { action_: [{ type_: 'output', option: 2 }, 'color0-output'] }\n },\n '\\\\ce{(...)}': {\n '*': { action_: [{ type_: 'output', option: 2 }, 'ce'], nextState: '3' }\n },\n '\\\\,': {\n '*': { action_: [{ type_: 'output', option: 1 }, 'copy'], nextState: '1' }\n },\n '\\\\pu{(...)}': {\n '*': { action_: ['output', { type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }], nextState: '3' }\n },\n '\\\\x{}{}|\\\\x{}|\\\\x': {\n '0|1|2|3|a|as|b|p|bp|o|c0': { action_: ['o=', 'output'], nextState: '3' },\n '*': { action_: ['output', 'o=', 'output'], nextState: '3' }\n },\n 'others': {\n '*': { action_: [{ type_: 'output', option: 1 }, 'copy'], nextState: '3' }\n },\n 'else2': {\n 'a': { action_: 'a to o', nextState: 'o', revisit: true },\n 'as': { action_: ['output', 'sb=true'], nextState: '1', revisit: true },\n 'r|rt|rd|rdt|rdq': { action_: ['output'], nextState: '0', revisit: true },\n '*': { action_: ['output', 'copy'], nextState: '3' }\n }\n }),\n actions: {\n 'o after d': function (buffer, m) {\n var ret;\n if ((buffer.d || \"\").match(/^[1-9][0-9]*$/)) {\n var tmp = buffer.d;\n buffer.d = undefined;\n ret = this['output'](buffer);\n ret.push({ type_: 'tinySkip' });\n buffer.b = tmp;\n }\n else {\n ret = this['output'](buffer);\n }\n _mhchemParser.actions['o='](buffer, m);\n return ret;\n },\n 'd= kv': function (buffer, m) {\n buffer.d = m;\n buffer.dType = 'kv';\n return undefined;\n },\n 'charge or bond': function (buffer, m) {\n if (buffer['beginsWithBond']) {\n var ret = [];\n _mhchemParser.concatArray(ret, this['output'](buffer));\n _mhchemParser.concatArray(ret, _mhchemParser.actions['bond'](buffer, m, \"-\"));\n return ret;\n }\n else {\n buffer.d = m;\n return undefined;\n }\n },\n '- after o/d': function (buffer, m, isAfterD) {\n var c1 = _mhchemParser.patterns.match_('orbital', buffer.o || \"\");\n var c2 = _mhchemParser.patterns.match_('one lowercase greek letter $', buffer.o || \"\");\n var c3 = _mhchemParser.patterns.match_('one lowercase latin letter $', buffer.o || \"\");\n var c4 = _mhchemParser.patterns.match_('$one lowercase latin letter$ $', buffer.o || \"\");\n var hyphenFollows = m === \"-\" && (c1 && c1.remainder === \"\" || c2 || c3 || c4);\n if (hyphenFollows && !buffer.a && !buffer.b && !buffer.p && !buffer.d && !buffer.q && !c1 && c3) {\n buffer.o = '$' + buffer.o + '$';\n }\n var ret = [];\n if (hyphenFollows) {\n _mhchemParser.concatArray(ret, this['output'](buffer));\n ret.push({ type_: 'hyphen' });\n }\n else {\n c1 = _mhchemParser.patterns.match_('digits', buffer.d || \"\");\n if (isAfterD && c1 && c1.remainder === '') {\n _mhchemParser.concatArray(ret, _mhchemParser.actions['d='](buffer, m));\n _mhchemParser.concatArray(ret, this['output'](buffer));\n }\n else {\n _mhchemParser.concatArray(ret, this['output'](buffer));\n _mhchemParser.concatArray(ret, _mhchemParser.actions['bond'](buffer, m, \"-\"));\n }\n }\n return ret;\n },\n 'a to o': function (buffer) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n return undefined;\n },\n 'sb=true': function (buffer) { buffer.sb = true; return undefined; },\n 'sb=false': function (buffer) { buffer.sb = false; return undefined; },\n 'beginsWithBond=true': function (buffer) { buffer['beginsWithBond'] = true; return undefined; },\n 'beginsWithBond=false': function (buffer) { buffer['beginsWithBond'] = false; return undefined; },\n 'parenthesisLevel++': function (buffer) { buffer['parenthesisLevel']++; return undefined; },\n 'parenthesisLevel--': function (buffer) { buffer['parenthesisLevel']--; return undefined; },\n 'state of aggregation': function (_buffer, m) {\n return { type_: 'state of aggregation', p1: _mhchemParser.go(m, 'o') };\n },\n 'comma': function (buffer, m) {\n var a = m.replace(/\\s*$/, '');\n var withSpace = (a !== m);\n if (withSpace && buffer['parenthesisLevel'] === 0) {\n return { type_: 'comma enumeration L', p1: a };\n }\n else {\n return { type_: 'comma enumeration M', p1: a };\n }\n },\n 'output': function (buffer, _m, entityFollows) {\n var ret;\n if (!buffer.r) {\n ret = [];\n if (!buffer.a && !buffer.b && !buffer.p && !buffer.o && !buffer.q && !buffer.d && !entityFollows) {\n }\n else {\n if (buffer.sb) {\n ret.push({ type_: 'entitySkip' });\n }\n if (!buffer.o && !buffer.q && !buffer.d && !buffer.b && !buffer.p && entityFollows !== 2) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n }\n else if (!buffer.o && !buffer.q && !buffer.d && (buffer.b || buffer.p)) {\n buffer.o = buffer.a;\n buffer.d = buffer.b;\n buffer.q = buffer.p;\n buffer.a = buffer.b = buffer.p = undefined;\n }\n else {\n if (buffer.o && buffer.dType === 'kv' && _mhchemParser.patterns.match_('d-oxidation$', buffer.d || \"\")) {\n buffer.dType = 'oxidation';\n }\n else if (buffer.o && buffer.dType === 'kv' && !buffer.q) {\n buffer.dType = undefined;\n }\n }\n ret.push({\n type_: 'chemfive',\n a: _mhchemParser.go(buffer.a, 'a'),\n b: _mhchemParser.go(buffer.b, 'bd'),\n p: _mhchemParser.go(buffer.p, 'pq'),\n o: _mhchemParser.go(buffer.o, 'o'),\n q: _mhchemParser.go(buffer.q, 'pq'),\n d: _mhchemParser.go(buffer.d, (buffer.dType === 'oxidation' ? 'oxidation' : 'bd')),\n dType: buffer.dType\n });\n }\n }\n else {\n var rd = void 0;\n if (buffer.rdt === 'M') {\n rd = _mhchemParser.go(buffer.rd, 'tex-math');\n }\n else if (buffer.rdt === 'T') {\n rd = [{ type_: 'text', p1: buffer.rd || \"\" }];\n }\n else {\n rd = _mhchemParser.go(buffer.rd, 'ce');\n }\n var rq = void 0;\n if (buffer.rqt === 'M') {\n rq = _mhchemParser.go(buffer.rq, 'tex-math');\n }\n else if (buffer.rqt === 'T') {\n rq = [{ type_: 'text', p1: buffer.rq || \"\" }];\n }\n else {\n rq = _mhchemParser.go(buffer.rq, 'ce');\n }\n ret = {\n type_: 'arrow',\n r: buffer.r,\n rd: rd,\n rq: rq\n };\n }\n for (var p in buffer) {\n if (p !== 'parenthesisLevel' && p !== 'beginsWithBond') {\n delete buffer[p];\n }\n }\n return ret;\n },\n 'oxidation-output': function (_buffer, m) {\n var ret = [\"{\"];\n _mhchemParser.concatArray(ret, _mhchemParser.go(m, 'oxidation'));\n ret.push(\"}\");\n return ret;\n },\n 'frac-output': function (_buffer, m) {\n return { type_: 'frac-ce', p1: _mhchemParser.go(m[0], 'ce'), p2: _mhchemParser.go(m[1], 'ce') };\n },\n 'overset-output': function (_buffer, m) {\n return { type_: 'overset', p1: _mhchemParser.go(m[0], 'ce'), p2: _mhchemParser.go(m[1], 'ce') };\n },\n 'underset-output': function (_buffer, m) {\n return { type_: 'underset', p1: _mhchemParser.go(m[0], 'ce'), p2: _mhchemParser.go(m[1], 'ce') };\n },\n 'underbrace-output': function (_buffer, m) {\n return { type_: 'underbrace', p1: _mhchemParser.go(m[0], 'ce'), p2: _mhchemParser.go(m[1], 'ce') };\n },\n 'color-output': function (_buffer, m) {\n return { type_: 'color', color1: m[0], color2: _mhchemParser.go(m[1], 'ce') };\n },\n 'r=': function (buffer, m) { buffer.r = m; return undefined; },\n 'rdt=': function (buffer, m) { buffer.rdt = m; return undefined; },\n 'rd=': function (buffer, m) { buffer.rd = m; return undefined; },\n 'rqt=': function (buffer, m) { buffer.rqt = m; return undefined; },\n 'rq=': function (buffer, m) { buffer.rq = m; return undefined; },\n 'operator': function (_buffer, m, p1) { return { type_: 'operator', kind_: (p1 || m) }; }\n }\n },\n 'a': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: [] }\n },\n '1/2$': {\n '0': { action_: '1/2' }\n },\n 'else': {\n '0': { action_: [], nextState: '1', revisit: true }\n },\n '${(...)}$__$(...)$': {\n '*': { action_: 'tex-math tight', nextState: '1' }\n },\n ',': {\n '*': { action_: { type_: 'insert', option: 'commaDecimal' } }\n },\n 'else2': {\n '*': { action_: 'copy' }\n }\n }),\n actions: {}\n },\n 'o': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: [] }\n },\n '1/2$': {\n '0': { action_: '1/2' }\n },\n 'else': {\n '0': { action_: [], nextState: '1', revisit: true }\n },\n 'letters': {\n '*': { action_: 'rm' }\n },\n '\\\\ca': {\n '*': { action_: { type_: 'insert', option: 'circa' } }\n },\n '\\\\pu{(...)}': {\n '*': { action_: [{ type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }] }\n },\n '\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'copy' }\n },\n '${(...)}$__$(...)$': {\n '*': { action_: 'tex-math' }\n },\n '{(...)}': {\n '*': { action_: [{ type_: 'write', option: \"{\" }, 'text', { type_: 'write', option: \"}\" }] }\n },\n 'else2': {\n '*': { action_: 'copy' }\n }\n }),\n actions: {}\n },\n 'text': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: 'output' }\n },\n '{...}': {\n '*': { action_: 'text=' }\n },\n '${(...)}$__$(...)$': {\n '*': { action_: 'tex-math' }\n },\n '\\\\greek': {\n '*': { action_: ['output', 'rm'] }\n },\n '\\\\pu{(...)}': {\n '*': { action_: ['output', { type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }] }\n },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: ['output', 'copy'] }\n },\n 'else': {\n '*': { action_: 'text=' }\n }\n }),\n actions: {\n 'output': function (buffer) {\n if (buffer.text_) {\n var ret = { type_: 'text', p1: buffer.text_ };\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n return undefined;\n }\n }\n },\n 'pq': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: [] }\n },\n 'state of aggregation $': {\n '*': { action_: 'state of aggregation' }\n },\n 'i$': {\n '0': { action_: [], nextState: '!f', revisit: true }\n },\n '(KV letters),': {\n '0': { action_: 'rm', nextState: '0' }\n },\n 'formula$': {\n '0': { action_: [], nextState: 'f', revisit: true }\n },\n '1/2$': {\n '0': { action_: '1/2' }\n },\n 'else': {\n '0': { action_: [], nextState: '!f', revisit: true }\n },\n '${(...)}$__$(...)$': {\n '*': { action_: 'tex-math' }\n },\n '{(...)}': {\n '*': { action_: 'text' }\n },\n 'a-z': {\n 'f': { action_: 'tex-math' }\n },\n 'letters': {\n '*': { action_: 'rm' }\n },\n '-9.,9': {\n '*': { action_: '9,9' }\n },\n ',': {\n '*': { action_: { type_: 'insert+p1', option: 'comma enumeration S' } }\n },\n '\\\\color{(...)}{(...)}': {\n '*': { action_: 'color-output' }\n },\n '\\\\color{(...)}': {\n '*': { action_: 'color0-output' }\n },\n '\\\\ce{(...)}': {\n '*': { action_: 'ce' }\n },\n '\\\\pu{(...)}': {\n '*': { action_: [{ type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }] }\n },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'copy' }\n },\n 'else2': {\n '*': { action_: 'copy' }\n }\n }),\n actions: {\n 'state of aggregation': function (_buffer, m) {\n return { type_: 'state of aggregation subscript', p1: _mhchemParser.go(m, 'o') };\n },\n 'color-output': function (_buffer, m) {\n return { type_: 'color', color1: m[0], color2: _mhchemParser.go(m[1], 'pq') };\n }\n }\n },\n 'bd': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: [] }\n },\n 'x$': {\n '0': { action_: [], nextState: '!f', revisit: true }\n },\n 'formula$': {\n '0': { action_: [], nextState: 'f', revisit: true }\n },\n 'else': {\n '0': { action_: [], nextState: '!f', revisit: true }\n },\n '-9.,9 no missing 0': {\n '*': { action_: '9,9' }\n },\n '.': {\n '*': { action_: { type_: 'insert', option: 'electron dot' } }\n },\n 'a-z': {\n 'f': { action_: 'tex-math' }\n },\n 'x': {\n '*': { action_: { type_: 'insert', option: 'KV x' } }\n },\n 'letters': {\n '*': { action_: 'rm' }\n },\n '\\'': {\n '*': { action_: { type_: 'insert', option: 'prime' } }\n },\n '${(...)}$__$(...)$': {\n '*': { action_: 'tex-math' }\n },\n '{(...)}': {\n '*': { action_: 'text' }\n },\n '\\\\color{(...)}{(...)}': {\n '*': { action_: 'color-output' }\n },\n '\\\\color{(...)}': {\n '*': { action_: 'color0-output' }\n },\n '\\\\ce{(...)}': {\n '*': { action_: 'ce' }\n },\n '\\\\pu{(...)}': {\n '*': { action_: [{ type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }] }\n },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'copy' }\n },\n 'else2': {\n '*': { action_: 'copy' }\n }\n }),\n actions: {\n 'color-output': function (_buffer, m) {\n return { type_: 'color', color1: m[0], color2: _mhchemParser.go(m[1], 'bd') };\n }\n }\n },\n 'oxidation': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: 'roman-numeral' }\n },\n 'pm-operator': {\n '*': { action_: { type_: 'o=+p1', option: \"\\\\pm\" } }\n },\n 'else': {\n '*': { action_: 'o=' }\n }\n }),\n actions: {\n 'roman-numeral': function (buffer) { return { type_: 'roman numeral', p1: buffer.o || \"\" }; }\n }\n },\n 'tex-math': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: 'output' }\n },\n '\\\\ce{(...)}': {\n '*': { action_: ['output', 'ce'] }\n },\n '\\\\pu{(...)}': {\n '*': { action_: ['output', { type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }] }\n },\n '{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'o=' }\n },\n 'else': {\n '*': { action_: 'o=' }\n }\n }),\n actions: {\n 'output': function (buffer) {\n if (buffer.o) {\n var ret = { type_: 'tex-math', p1: buffer.o };\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n return undefined;\n }\n }\n },\n 'tex-math tight': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: 'output' }\n },\n '\\\\ce{(...)}': {\n '*': { action_: ['output', 'ce'] }\n },\n '\\\\pu{(...)}': {\n '*': { action_: ['output', { type_: 'write', option: \"{\" }, 'pu', { type_: 'write', option: \"}\" }] }\n },\n '{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'o=' }\n },\n '-|+': {\n '*': { action_: 'tight operator' }\n },\n 'else': {\n '*': { action_: 'o=' }\n }\n }),\n actions: {\n 'tight operator': function (buffer, m) { buffer.o = (buffer.o || \"\") + \"{\" + m + \"}\"; return undefined; },\n 'output': function (buffer) {\n if (buffer.o) {\n var ret = { type_: 'tex-math', p1: buffer.o };\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n return undefined;\n }\n }\n },\n '9,9': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: [] }\n },\n ',': {\n '*': { action_: 'comma' }\n },\n 'else': {\n '*': { action_: 'copy' }\n }\n }),\n actions: {\n 'comma': function () { return { type_: 'commaDecimal' }; }\n }\n },\n 'pu': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: 'output' }\n },\n 'space$': {\n '*': { action_: ['output', 'space'] }\n },\n '{[(|)]}': {\n '0|a': { action_: 'copy' }\n },\n '(-)(9)^(-9)': {\n '0': { action_: 'number^', nextState: 'a' }\n },\n '(-)(9.,9)(e)(99)': {\n '0': { action_: 'enumber', nextState: 'a' }\n },\n 'space': {\n '0|a': { action_: [] }\n },\n 'pm-operator': {\n '0|a': { action_: { type_: 'operator', option: '\\\\pm' }, nextState: '0' }\n },\n 'operator': {\n '0|a': { action_: 'copy', nextState: '0' }\n },\n '//': {\n 'd': { action_: 'o=', nextState: '/' }\n },\n '/': {\n 'd': { action_: 'o=', nextState: '/' }\n },\n '{...}|else': {\n '0|d': { action_: 'd=', nextState: 'd' },\n 'a': { action_: ['space', 'd='], nextState: 'd' },\n '/|q': { action_: 'q=', nextState: 'q' }\n }\n }),\n actions: {\n 'enumber': function (_buffer, m) {\n var ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n }\n else if (m[0]) {\n ret.push(m[0]);\n }\n if (m[1]) {\n _mhchemParser.concatArray(ret, _mhchemParser.go(m[1], 'pu-9,9'));\n if (m[2]) {\n if (m[2].match(/[,.]/)) {\n _mhchemParser.concatArray(ret, _mhchemParser.go(m[2], 'pu-9,9'));\n }\n else {\n ret.push(m[2]);\n }\n }\n if (m[3] || m[4]) {\n if (m[3] === \"e\" || m[4] === \"*\") {\n ret.push({ type_: 'cdot' });\n }\n else {\n ret.push({ type_: 'times' });\n }\n }\n }\n if (m[5]) {\n ret.push(\"10^{\" + m[5] + \"}\");\n }\n return ret;\n },\n 'number^': function (_buffer, m) {\n var ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n }\n else if (m[0]) {\n ret.push(m[0]);\n }\n _mhchemParser.concatArray(ret, _mhchemParser.go(m[1], 'pu-9,9'));\n ret.push(\"^{\" + m[2] + \"}\");\n return ret;\n },\n 'operator': function (_buffer, m, p1) { return { type_: 'operator', kind_: (p1 || m) }; },\n 'space': function () { return { type_: 'pu-space-1' }; },\n 'output': function (buffer) {\n var ret;\n var md = _mhchemParser.patterns.match_('{(...)}', buffer.d || \"\");\n if (md && md.remainder === '') {\n buffer.d = md.match_;\n }\n var mq = _mhchemParser.patterns.match_('{(...)}', buffer.q || \"\");\n if (mq && mq.remainder === '') {\n buffer.q = mq.match_;\n }\n if (buffer.d) {\n buffer.d = buffer.d.replace(/\\u00B0C|\\^oC|\\^{o}C/g, \"{}^{\\\\circ}C\");\n buffer.d = buffer.d.replace(/\\u00B0F|\\^oF|\\^{o}F/g, \"{}^{\\\\circ}F\");\n }\n if (buffer.q) {\n buffer.q = buffer.q.replace(/\\u00B0C|\\^oC|\\^{o}C/g, \"{}^{\\\\circ}C\");\n buffer.q = buffer.q.replace(/\\u00B0F|\\^oF|\\^{o}F/g, \"{}^{\\\\circ}F\");\n var b5 = {\n d: _mhchemParser.go(buffer.d, 'pu'),\n q: _mhchemParser.go(buffer.q, 'pu')\n };\n if (buffer.o === '//') {\n ret = { type_: 'pu-frac', p1: b5.d, p2: b5.q };\n }\n else {\n ret = b5.d;\n if (b5.d.length > 1 || b5.q.length > 1) {\n ret.push({ type_: ' / ' });\n }\n else {\n ret.push({ type_: '/' });\n }\n _mhchemParser.concatArray(ret, b5.q);\n }\n }\n else {\n ret = _mhchemParser.go(buffer.d, 'pu-2');\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n }\n },\n 'pu-2': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '*': { action_: 'output' }\n },\n '*': {\n '*': { action_: ['output', 'cdot'], nextState: '0' }\n },\n '\\\\x': {\n '*': { action_: 'rm=' }\n },\n 'space': {\n '*': { action_: ['output', 'space'], nextState: '0' }\n },\n '^{(...)}|^(-1)': {\n '1': { action_: '^(-1)' }\n },\n '-9.,9': {\n '0': { action_: 'rm=', nextState: '0' },\n '1': { action_: '^(-1)', nextState: '0' }\n },\n '{...}|else': {\n '*': { action_: 'rm=', nextState: '1' }\n }\n }),\n actions: {\n 'cdot': function () { return { type_: 'tight cdot' }; },\n '^(-1)': function (buffer, m) { buffer.rm += \"^{\" + m + \"}\"; return undefined; },\n 'space': function () { return { type_: 'pu-space-2' }; },\n 'output': function (buffer) {\n var ret = [];\n if (buffer.rm) {\n var mrm = _mhchemParser.patterns.match_('{(...)}', buffer.rm || \"\");\n if (mrm && mrm.remainder === '') {\n ret = _mhchemParser.go(mrm.match_, 'pu');\n }\n else {\n ret = { type_: 'rm', p1: buffer.rm };\n }\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n }\n },\n 'pu-9,9': {\n transitions: _mhchemCreateTransitions({\n 'empty': {\n '0': { action_: 'output-0' },\n 'o': { action_: 'output-o' }\n },\n ',': {\n '0': { action_: ['output-0', 'comma'], nextState: 'o' }\n },\n '.': {\n '0': { action_: ['output-0', 'copy'], nextState: 'o' }\n },\n 'else': {\n '*': { action_: 'text=' }\n }\n }),\n actions: {\n 'comma': function () { return { type_: 'commaDecimal' }; },\n 'output-0': function (buffer) {\n var ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n var a = buffer.text_.length % 3;\n if (a === 0) {\n a = 3;\n }\n for (var i = buffer.text_.length - 3; i > 0; i -= 3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({ type_: '1000 separator' });\n }\n ret.push(buffer.text_.substr(0, a));\n ret.reverse();\n }\n else {\n ret.push(buffer.text_);\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n },\n 'output-o': function (buffer) {\n var ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n var a = buffer.text_.length - 3;\n var i = void 0;\n for (i = 0; i < a; i += 3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({ type_: '1000 separator' });\n }\n ret.push(buffer.text_.substr(i));\n }\n else {\n ret.push(buffer.text_);\n }\n for (var p in buffer) {\n delete buffer[p];\n }\n return ret;\n }\n }\n }\n }\n};\nvar _mhchemTexify = {\n go: function (input, addOuterBraces) {\n if (!input) {\n return \"\";\n }\n var res = \"\";\n var cee = false;\n for (var i = 0; i < input.length; i++) {\n var inputi = input[i];\n if (typeof inputi === \"string\") {\n res += inputi;\n }\n else {\n res += _mhchemTexify._go2(inputi);\n if (inputi.type_ === '1st-level escape') {\n cee = true;\n }\n }\n }\n if (addOuterBraces && !cee && res) {\n res = \"{\" + res + \"}\";\n }\n return res;\n },\n _goInner: function (input) {\n return _mhchemTexify.go(input, false);\n },\n _go2: function (buf) {\n var res;\n switch (buf.type_) {\n case 'chemfive':\n res = \"\";\n var b5 = {\n a: _mhchemTexify._goInner(buf.a),\n b: _mhchemTexify._goInner(buf.b),\n p: _mhchemTexify._goInner(buf.p),\n o: _mhchemTexify._goInner(buf.o),\n q: _mhchemTexify._goInner(buf.q),\n d: _mhchemTexify._goInner(buf.d)\n };\n if (b5.a) {\n if (b5.a.match(/^[+\\-]/)) {\n b5.a = \"{\" + b5.a + \"}\";\n }\n res += b5.a + \"\\\\,\";\n }\n if (b5.b || b5.p) {\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\\\\hphantom{\" + (b5.b || \"\") + \"}}_{\\\\hphantom{\" + (b5.p || \"\") + \"}}\";\n res += \"\\\\mkern-1.5mu\";\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\\\\smash[t]{\\\\vphantom{2}}\\\\llap{\" + (b5.b || \"\") + \"}}\";\n res += \"_{\\\\vphantom{2}\\\\llap{\\\\smash[t]{\" + (b5.p || \"\") + \"}}}\";\n }\n if (b5.o) {\n if (b5.o.match(/^[+\\-]/)) {\n b5.o = \"{\" + b5.o + \"}\";\n }\n res += b5.o;\n }\n if (buf.dType === 'kv') {\n if (b5.d || b5.q) {\n res += \"{\\\\vphantom{A}}\";\n }\n if (b5.d) {\n res += \"^{\" + b5.d + \"}\";\n }\n if (b5.q) {\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n }\n else if (buf.dType === 'oxidation') {\n if (b5.d) {\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\" + b5.d + \"}\";\n }\n if (b5.q) {\n res += \"{\\\\vphantom{A}}\";\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n }\n else {\n if (b5.q) {\n res += \"{\\\\vphantom{A}}\";\n res += \"_{\\\\smash[t]{\" + b5.q + \"}}\";\n }\n if (b5.d) {\n res += \"{\\\\vphantom{A}}\";\n res += \"^{\" + b5.d + \"}\";\n }\n }\n break;\n case 'rm':\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n break;\n case 'text':\n if (buf.p1.match(/[\\^_]/)) {\n buf.p1 = buf.p1.replace(\" \", \"~\").replace(\"-\", \"\\\\text{-}\");\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n }\n else {\n res = \"\\\\text{\" + buf.p1 + \"}\";\n }\n break;\n case 'roman numeral':\n res = \"\\\\mathrm{\" + buf.p1 + \"}\";\n break;\n case 'state of aggregation':\n res = \"\\\\mskip2mu \" + _mhchemTexify._goInner(buf.p1);\n break;\n case 'state of aggregation subscript':\n res = \"\\\\mskip1mu \" + _mhchemTexify._goInner(buf.p1);\n break;\n case 'bond':\n res = _mhchemTexify._getBond(buf.kind_);\n if (!res) {\n throw [\"MhchemErrorBond\", \"mhchem Error. Unknown bond type (\" + buf.kind_ + \")\"];\n }\n break;\n case 'frac':\n var c = \"\\\\frac{\" + buf.p1 + \"}{\" + buf.p2 + \"}\";\n res = \"\\\\mathchoice{\\\\textstyle\" + c + \"}{\" + c + \"}{\" + c + \"}{\" + c + \"}\";\n break;\n case 'pu-frac':\n var d = \"\\\\frac{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n res = \"\\\\mathchoice{\\\\textstyle\" + d + \"}{\" + d + \"}{\" + d + \"}{\" + d + \"}\";\n break;\n case 'tex-math':\n res = buf.p1 + \" \";\n break;\n case 'frac-ce':\n res = \"\\\\frac{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'overset':\n res = \"\\\\overset{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'underset':\n res = \"\\\\underset{\" + _mhchemTexify._goInner(buf.p1) + \"}{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'underbrace':\n res = \"\\\\underbrace{\" + _mhchemTexify._goInner(buf.p1) + \"}_{\" + _mhchemTexify._goInner(buf.p2) + \"}\";\n break;\n case 'color':\n res = \"{\\\\color{\" + buf.color1 + \"}{\" + _mhchemTexify._goInner(buf.color2) + \"}}\";\n break;\n case 'color0':\n res = \"\\\\color{\" + buf.color + \"}\";\n break;\n case 'arrow':\n var b6 = {\n rd: _mhchemTexify._goInner(buf.rd),\n rq: _mhchemTexify._goInner(buf.rq)\n };\n var arrow = _mhchemTexify._getArrow(buf.r);\n if (b6.rd || b6.rq) {\n if (buf.r === \"<=>\" || buf.r === \"<=>>\" || buf.r === \"<<=>\" || buf.r === \"<-->\") {\n arrow = \"\\\\long\" + arrow;\n if (b6.rd) {\n arrow = \"\\\\overset{\" + b6.rd + \"}{\" + arrow + \"}\";\n }\n if (b6.rq) {\n if (buf.r === \"<-->\") {\n arrow = \"\\\\underset{\\\\lower2mu{\" + b6.rq + \"}}{\" + arrow + \"}\";\n }\n else {\n arrow = \"\\\\underset{\\\\lower6mu{\" + b6.rq + \"}}{\" + arrow + \"}\";\n }\n }\n arrow = \" {}\\\\mathrel{\" + arrow + \"}{} \";\n }\n else {\n if (b6.rq) {\n arrow += \"[{\" + b6.rq + \"}]\";\n }\n arrow += \"{\" + b6.rd + \"}\";\n arrow = \" {}\\\\mathrel{\\\\x\" + arrow + \"}{} \";\n }\n }\n else {\n arrow = \" {}\\\\mathrel{\\\\long\" + arrow + \"}{} \";\n }\n res = arrow;\n break;\n case 'operator':\n res = _mhchemTexify._getOperator(buf.kind_);\n break;\n case '1st-level escape':\n res = buf.p1 + \" \";\n break;\n case 'space':\n res = \" \";\n break;\n case 'tinySkip':\n res = '\\\\mkern2mu';\n break;\n case 'entitySkip':\n res = \"~\";\n break;\n case 'pu-space-1':\n res = \"~\";\n break;\n case 'pu-space-2':\n res = \"\\\\mkern3mu \";\n break;\n case '1000 separator':\n res = \"\\\\mkern2mu \";\n break;\n case 'commaDecimal':\n res = \"{,}\";\n break;\n case 'comma enumeration L':\n res = \"{\" + buf.p1 + \"}\\\\mkern6mu \";\n break;\n case 'comma enumeration M':\n res = \"{\" + buf.p1 + \"}\\\\mkern3mu \";\n break;\n case 'comma enumeration S':\n res = \"{\" + buf.p1 + \"}\\\\mkern1mu \";\n break;\n case 'hyphen':\n res = \"\\\\text{-}\";\n break;\n case 'addition compound':\n res = \"\\\\,{\\\\cdot}\\\\,\";\n break;\n case 'electron dot':\n res = \"\\\\mkern1mu \\\\bullet\\\\mkern1mu \";\n break;\n case 'KV x':\n res = \"{\\\\times}\";\n break;\n case 'prime':\n res = \"\\\\prime \";\n break;\n case 'cdot':\n res = \"\\\\cdot \";\n break;\n case 'tight cdot':\n res = \"\\\\mkern1mu{\\\\cdot}\\\\mkern1mu \";\n break;\n case 'times':\n res = \"\\\\times \";\n break;\n case 'circa':\n res = \"{\\\\sim}\";\n break;\n case '^':\n res = \"uparrow\";\n break;\n case 'v':\n res = \"downarrow\";\n break;\n case 'ellipsis':\n res = \"\\\\ldots \";\n break;\n case '/':\n res = \"/\";\n break;\n case ' / ':\n res = \"\\\\,/\\\\,\";\n break;\n default:\n assertNever(buf);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n return res;\n },\n _getArrow: function (a) {\n switch (a) {\n case \"->\": return \"rightarrow\";\n case \"\\u2192\": return \"rightarrow\";\n case \"\\u27F6\": return \"rightarrow\";\n case \"<-\": return \"leftarrow\";\n case \"<->\": return \"leftrightarrow\";\n case \"<-->\": return \"leftrightarrows\";\n case \"<=>\": return \"rightleftharpoons\";\n case \"\\u21CC\": return \"rightleftharpoons\";\n case \"<=>>\": return \"Rightleftharpoons\";\n case \"<<=>\": return \"Leftrightharpoons\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getBond: function (a) {\n switch (a) {\n case \"-\": return \"{-}\";\n case \"1\": return \"{-}\";\n case \"=\": return \"{=}\";\n case \"2\": return \"{=}\";\n case \"#\": return \"{\\\\equiv}\";\n case \"3\": return \"{\\\\equiv}\";\n case \"~\": return \"{\\\\tripledash}\";\n case \"~-\": return \"{\\\\rlap{\\\\lower.1em{-}}\\\\raise.1em{\\\\tripledash}}\";\n case \"~=\": return \"{\\\\rlap{\\\\lower.2em{-}}\\\\rlap{\\\\raise.2em{\\\\tripledash}}-}\";\n case \"~--\": return \"{\\\\rlap{\\\\lower.2em{-}}\\\\rlap{\\\\raise.2em{\\\\tripledash}}-}\";\n case \"-~-\": return \"{\\\\rlap{\\\\lower.2em{-}}\\\\rlap{\\\\raise.2em{-}}\\\\tripledash}\";\n case \"...\": return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"....\": return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"->\": return \"{\\\\rightarrow}\";\n case \"<-\": return \"{\\\\leftarrow}\";\n case \"<\": return \"{<}\";\n case \">\": return \"{>}\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getOperator: function (a) {\n switch (a) {\n case \"+\": return \" {}+{} \";\n case \"-\": return \" {}-{} \";\n case \"=\": return \" {}={} \";\n case \"<\": return \" {}<{} \";\n case \">\": return \" {}>{} \";\n case \"<<\": return \" {}\\\\ll{} \";\n case \">>\": return \" {}\\\\gg{} \";\n case \"\\\\pm\": return \" {}\\\\pm{} \";\n case \"\\\\approx\": return \" {}\\\\approx{} \";\n case \"$\\\\approx$\": return \" {}\\\\approx{} \";\n case \"v\": return \" \\\\downarrow{} \";\n case \"(v)\": return \" \\\\downarrow{} \";\n case \"^\": return \" \\\\uparrow{} \";\n case \"(^)\": return \" \\\\uparrow{} \";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n }\n};\nfunction assertNever(a) { }\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
|