UNPKG

@aws/pdk

Version:

All documentation is located at: https://aws.github.io/aws-pdk

1,739 lines (1,720 loc) 148 kB
'use strict'; var index_js = require('../utils/index.cjs'); var index_js$1 = require('../common/index.cjs'); class Builder { options; getLocation() { return this.options?.locationFunction?.() ?? null; } constructor(options) { this.options = options; } createElement(type, props, children = []) { return { location: this.getLocation(), ...props, type, children, }; } } const createElement = Builder.prototype.createElement.bind(new Builder()); const EOL = /\r?\n/; function joinBy(sep) { return (value) => value.join(sep); } function wrapWith(wrapper) { return (value) => wrapper + value + wrapper; } function wrapByPair(l, r) { return (value) => l + value + r; } function leftPadWith(left) { return (value) => left + value; } const escape = (value) => value.replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/"/g, '\\"'); const splitByLine = (value) => value.split(EOL); const indent = (style, size, eol) => index_js.pipe(splitByLine, index_js.map(leftPadWith(style === 'space' ? ' '.repeat(size) : '\n')), joinBy(eol)); const endOfLine = (eol) => { switch (eol) { case 'crlf': return '\r\n'; case 'lf': return '\n'; } }; const AttributeListPrintPlugin = { match(ast) { return ast.type === 'AttributeList'; }, print(context, ast) { if (ast.children.length === 0) { return `${ast.kind.toLocaleLowerCase()} [];`; } const eol = endOfLine(context.endOfLine); return index_js.pipe( index_js.map(context.print), joinBy(eol), indent(context.indentStyle, context.indentSize, eol), wrapByPair(`${ast.kind.toLocaleLowerCase()} [${eol}`, `${eol}];`), )(ast.children); }, }; const AttributePrintPlugin = { match(ast) { return ast.type === 'Attribute'; }, print(context, ast) { return `${context.print(ast.key)} = ${context.print(ast.value)};`; }, }; const CommentPrintPlugin = { match(ast) { return ast.type === 'Comment'; }, print(context, ast) { const eol = endOfLine(context.endOfLine); switch (ast.kind) { case 'Block': return index_js.pipe( splitByLine, index_js.map(leftPadWith(' * ')), joinBy(eol), wrapByPair(`/**${eol}`, `${eol} */`), )(ast.value); case 'Macro': return index_js.pipe(splitByLine, index_js.map(leftPadWith('# ')), joinBy(eol))(ast.value); case 'Slash': default: return index_js.pipe(splitByLine, index_js.map(leftPadWith('// ')), joinBy(eol))(ast.value); } }, }; const DotPrintPlugin = { match(ast) { return ast.type === 'Dot'; }, print(context, ast) { return ast.children.map(context.print).join(endOfLine(context.endOfLine)); }, }; const EdgePrintPlugin = { match(ast) { return ast.type === 'Edge'; }, print(context, ast) { const targets = index_js.pipe(index_js.map(context.print), joinBy(context.directed ? ' -> ' : ' -- '))(ast.targets); if (ast.children.length === 0) { return `${targets};`; } const eol = endOfLine(context.endOfLine); const contents = index_js.pipe( index_js.map(context.print), joinBy(eol), indent(context.indentStyle, context.indentSize, eol), wrapByPair(`[${eol}`, `${eol}];`), )(ast.children); return `${targets} ${contents}`; }, }; const GraphPrintPlugin = { match(ast) { return ast.type === 'Graph'; }, print(context, ast) { context.directed = ast.directed; const parts = []; if (ast.strict) { parts.push('strict'); } parts.push(ast.directed ? 'digraph' : 'graph'); if (ast.id) { parts.push(context.print(ast.id)); } if (ast.children.length === 0) { return `${parts.join(' ')} {}`; } const eol = endOfLine(context.endOfLine); const contents = index_js.pipe( index_js.map(context.print), joinBy(eol), indent(context.indentStyle, context.indentSize, eol), wrapByPair(`{${eol}`, `${eol}}`), )(ast.children); return `${parts.join(' ')} ${contents}`; }, }; const quoteLiteralValue = index_js.pipe(escape, wrapWith('"')); const quoteHTMLLikeLiteralValue = wrapByPair('<', '>'); const LiteralPrintPlugin = { match(ast) { return ast.type === 'Literal'; }, print(context, ast) { switch (ast.quoted) { case 'html': return quoteHTMLLikeLiteralValue(ast.value); case true: return quoteLiteralValue(ast.value); case false: default: return escape(ast.value); } }, }; const NodePrintPlugin = { match(ast) { return ast.type === 'Node'; }, print(context, ast) { const id = context.print(ast.id); if (ast.children.length === 0) { return `${id};`; } const eol = endOfLine(context.endOfLine); const contents = index_js.pipe( index_js.map(context.print), joinBy(eol), indent(context.indentStyle, context.indentSize, eol), wrapByPair(`[${eol}`, `${eol}];`), )(ast.children); return `${id} ${contents}`; }, }; const NodeRefGroupPrintPlugin = { match(ast) { return ast.type === 'NodeRefGroup'; }, print(context, ast) { return index_js.pipe(index_js.map(context.print), joinBy(' '), wrapByPair('{', '}'))(ast.children); }, }; const NodeRefPrintPlugin = { match(ast) { return ast.type === 'NodeRef'; }, print(context, ast) { const parts = [context.print(ast.id)]; if (ast.port) { parts.push(context.print(ast.port)); } if (ast.compass) { parts.push(context.print(ast.compass)); } return parts.join(':'); }, }; const SubgraphPrintPlugin = { match(ast) { return ast.type === 'Subgraph'; }, print(context, ast) { const parts = ['subgraph']; if (ast.id) { parts.push(context.print(ast.id)); } if (ast.children.length === 0) { return `${parts.join(' ')} {}`; } const eol = endOfLine(context.endOfLine); const contents = index_js.pipe( index_js.map(context.print), joinBy(eol), indent(context.indentStyle, context.indentSize, eol), wrapByPair(`{${eol}`, `${eol}}`), )(ast.children); return `${parts.join(' ')} ${contents}`; }, }; const defaultPlugins$2 = [ AttributeListPrintPlugin, AttributePrintPlugin, CommentPrintPlugin, DotPrintPlugin, EdgePrintPlugin, GraphPrintPlugin, LiteralPrintPlugin, NodePrintPlugin, NodeRefGroupPrintPlugin, NodeRefPrintPlugin, SubgraphPrintPlugin, ]; class Printer { options; #plugins = [...defaultPlugins$2]; constructor(options = {}) { this.options = options; } print(ast) { const plugins = [...this.#plugins]; const { indentSize = 2, indentStyle = 'space', endOfLine = 'lf' } = this.options; const context = { directed: true, indentSize, indentStyle, endOfLine, print(a) { for (const plugin of plugins) { if (plugin.match(a)) { return plugin.print(context, a); } } throw Error(); }, }; return context.print(ast); } } function stringify(ast, options) { const result = new Printer(options).print(ast); if (!result) { throw new Error(); } return result; } function peg$padEnd(str, targetLength, padString) { padString = padString || ' '; if (str.length > targetLength) { return str; } targetLength -= str.length; padString += padString.repeat(targetLength); return str + padString.slice(0, targetLength); } let DotSyntaxError$1 = class DotSyntaxError extends Error { static buildMessage(expected, found) { function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); } function literalEscape(s) { return s .replace(/\\/g, '\\\\') .replace(/"/g, '\\"') .replace(/\0/g, '\\0') .replace(/\t/g, '\\t') .replace(/\n/g, '\\n') .replace(/\r/g, '\\r') .replace(/[\x00-\x0F]/g, (ch) => '\\x0' + hex(ch)) .replace(/[\x10-\x1F\x7F-\x9F]/g, (ch) => '\\x' + hex(ch)); } function classEscape(s) { return s .replace(/\\/g, '\\\\') .replace(/\]/g, '\\]') .replace(/\^/g, '\\^') .replace(/-/g, '\\-') .replace(/\0/g, '\\0') .replace(/\t/g, '\\t') .replace(/\n/g, '\\n') .replace(/\r/g, '\\r') .replace(/[\x00-\x0F]/g, (ch) => '\\x0' + hex(ch)) .replace(/[\x10-\x1F\x7F-\x9F]/g, (ch) => '\\x' + hex(ch)); } function describeExpectation(expectation) { switch (expectation.type) { case 'literal': return '"' + literalEscape(expectation.text) + '"'; case 'class': const escapedParts = expectation.parts.map((part) => { return Array.isArray(part) ? classEscape(part[0]) + '-' + classEscape(part[1]) : classEscape(part); }); return '[' + (expectation.inverted ? '^' : '') + escapedParts + ']'; case 'any': return 'any character'; case 'end': return 'end of input'; case 'other': return expectation.description; } } function describeExpected(expected1) { const descriptions = expected1.map(describeExpectation); let i; let j; descriptions.sort(); if (descriptions.length > 0) { for (i = 1, j = 1; i < descriptions.length; i++) { if (descriptions[i - 1] !== descriptions[i]) { descriptions[j] = descriptions[i]; j++; } } descriptions.length = j; } switch (descriptions.length) { case 1: return descriptions[0]; case 2: return descriptions[0] + ' or ' + descriptions[1]; default: return descriptions.slice(0, -1).join(', ') + ', or ' + descriptions[descriptions.length - 1]; } } function describeFound(found1) { return found1 ? '"' + literalEscape(found1) + '"' : 'end of input'; } return 'Expected ' + describeExpected(expected) + ' but ' + describeFound(found) + ' found.'; } message; expected; found; location; name; constructor(message, expected, found, location) { super(); this.message = message; this.expected = expected; this.found = found; this.location = location; this.name = 'DotSyntaxError'; if (typeof Object.setPrototypeOf === 'function') { Object.setPrototypeOf(this, DotSyntaxError$1.prototype); } else { this.__proto__ = DotSyntaxError$1.prototype; } if (typeof Error.captureStackTrace === 'function') { Error.captureStackTrace(this, DotSyntaxError$1); } } format(sources) { let str = 'Error: ' + this.message; if (this.location) { let src = null; let k; for (k = 0; k < sources.length; k++) { if (sources[k].grammarSource === this.location.source) { src = sources[k].text.split(/\r\n|\n|\r/g); break; } } let s = this.location.start; let loc = this.location.source + ':' + s.line + ':' + s.column; if (src) { let e = this.location.end; let filler = peg$padEnd('', s.line.toString().length, ' '); let line = src[s.line - 1]; let last = s.line === e.line ? e.column : line.length + 1; str += '\n --> ' + loc + '\n' + filler + ' |\n' + s.line + ' | ' + line + '\n' + filler + ' | ' + peg$padEnd('', s.column - 1, ' ') + peg$padEnd('', last - s.column, '^'); } else { str += '\n at ' + loc; } } return str; } }; function peg$parse(input, options) { options = options !== undefined ? options : {}; const peg$FAILED = {}; const peg$source = options.grammarSource; const peg$startRuleFunctions = { Dot: peg$parseDot, Graph: peg$parseGraph, Subgraph: peg$parseSubgraph, Node: peg$parseNode, Edge: peg$parseEdge, AttributeList: peg$parseAttributeList, Attribute: peg$parseAttribute, ClusterStatements: peg$parseClusterStatements, }; let peg$startRuleFunction = peg$parseDot; const peg$c0 = function (v) { return v; }; const peg$c1 = function (c1, graph, c2) { return b.createElement('Dot', {}, [...c1, graph, ...c2]); }; const peg$c2 = 'strict'; const peg$c3 = peg$literalExpectation('strict', true); const peg$c4 = 'graph'; const peg$c5 = peg$literalExpectation('graph', true); const peg$c6 = 'digraph'; const peg$c7 = peg$literalExpectation('digraph', true); const peg$c8 = '{'; const peg$c9 = peg$literalExpectation('{', false); const peg$c10 = '}'; const peg$c11 = peg$literalExpectation('}', false); const peg$c12 = function (_strict, _kind, id, children) { const strict = !!_strict; const kind = _kind.toLowerCase(); const directed = kind === 'digraph'; for (const edgeop of edgeops) { if (directed) { if (edgeop.operator !== '->') { error(`In digraph, it's necessary to describe with "->" operator to create edge.`, edgeop.location); } } else { if (edgeop.operator !== '--') { error(`In graph, it's necessary to describe with "--" operator to create edge.`, edgeop.location); } } } return b.createElement( 'Graph', id !== null ? { id, directed, strict, } : { directed, strict, }, children, ); }; const peg$c13 = ';'; const peg$c14 = peg$literalExpectation(';', false); const peg$c15 = function (keyValue) { return b.createElement( 'Attribute', { ...keyValue, }, [], ); }; const peg$c16 = 'node'; const peg$c17 = peg$literalExpectation('node', true); const peg$c18 = 'edge'; const peg$c19 = peg$literalExpectation('edge', true); const peg$c20 = function (_kind, children) { return b.createElement( 'AttributeList', { kind: `${_kind.slice(0, 1).toUpperCase()}${_kind.slice(1).toLowerCase()}`, }, children, ); }; const peg$c21 = function (id, rhs, _children) { return b.createElement( 'Edge', { targets: [id, ...rhs], }, _children ?? [], ); }; const peg$c22 = function (id, _children) { return b.createElement( 'Node', { id, }, _children ?? [], ); }; const peg$c23 = '='; const peg$c24 = peg$literalExpectation('=', false); const peg$c25 = function (key, value) { return { key, value }; }; const peg$c26 = ','; const peg$c27 = peg$literalExpectation(',', false); const peg$c28 = function (kv) { return b.createElement( 'Attribute', { ...kv, location: location(), }, [], ); }; const peg$c29 = '['; const peg$c30 = peg$literalExpectation('[', false); const peg$c31 = ']'; const peg$c32 = peg$literalExpectation(']', false); const peg$c33 = function (list) { return list; }; const peg$c34 = function (id, v) { return v; }; const peg$c35 = function (id, rest) { return b.createElement('NodeRefGroup', {}, [id, ...rest]); }; const peg$c36 = '->'; const peg$c37 = peg$literalExpectation('->', false); const peg$c38 = '--'; const peg$c39 = peg$literalExpectation('--', false); const peg$c40 = function (operator) { return { operator, location: location() }; }; const peg$c41 = function (edgeop, id, rest) { edgeops.push(edgeop); return [id].concat(rest || []); }; const peg$c42 = function (id, port) { return b.createElement( 'NodeRef', { id, ...port, }, [], ); }; const peg$c43 = peg$otherExpectation('port'); const peg$c44 = ':'; const peg$c45 = peg$literalExpectation(':', false); const peg$c46 = function (port, compass) { return compass; }; const peg$c47 = function (port, compass) { if (['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'].includes(port)) { return { compass: port }; } else if (compass) { return { port, compass }; } return { port }; }; const peg$c48 = 'subgraph'; const peg$c49 = peg$literalExpectation('subgraph', true); const peg$c50 = function (id) { return id; }; const peg$c51 = function (id, _children) { const children = _children ?? []; return b.createElement('Subgraph', id ? { id } : {}, children); }; const peg$c52 = 'n'; const peg$c53 = peg$literalExpectation('n', false); const peg$c54 = 'ne'; const peg$c55 = peg$literalExpectation('ne', false); const peg$c56 = 'e'; const peg$c57 = peg$literalExpectation('e', false); const peg$c58 = 'se'; const peg$c59 = peg$literalExpectation('se', false); const peg$c60 = 's'; const peg$c61 = peg$literalExpectation('s', false); const peg$c62 = 'sw'; const peg$c63 = peg$literalExpectation('sw', false); const peg$c64 = 'w'; const peg$c65 = peg$literalExpectation('w', false); const peg$c66 = 'nw'; const peg$c67 = peg$literalExpectation('nw', false); const peg$c68 = function (value) { return { value, quoted: false }; }; const peg$c69 = '"'; const peg$c70 = peg$literalExpectation('"', false); const peg$c71 = function (value) { return { value, quoted: true }; }; const peg$c72 = function (v) { return b.createElement( 'Literal', { ...v, }, [], ); }; const peg$c73 = function (value) { return b.createElement( 'Literal', { value, quoted: false, }, [], ); }; const peg$c74 = '/*'; const peg$c75 = peg$literalExpectation('/*', false); const peg$c76 = '*/'; const peg$c77 = peg$literalExpectation('*/', false); const peg$c78 = peg$anyExpectation(); const peg$c79 = function (v) { return b.createElement( 'Comment', { kind: 'Block', value: dedent(v.join('').replace(/[ \t]*\*/g, '')), }, [], ); }; const peg$c80 = function (lines) { return b.createElement( 'Comment', { kind: 'Slash', value: dedent(lines.join('\n')), }, [], ); }; const peg$c81 = '//'; const peg$c82 = peg$literalExpectation('//', false); const peg$c83 = function (v) { return v.join(''); }; const peg$c84 = function (lines) { return b.createElement( 'Comment', { kind: 'Macro', value: dedent(lines.join('\n')), }, [], ); }; const peg$c85 = '#'; const peg$c86 = peg$literalExpectation('#', false); const peg$c87 = peg$otherExpectation('UNICODE_STRING'); const peg$c88 = function (first, rest) { return first + rest.join(''); }; const peg$c89 = function (first, rest) { return first + rest; }; const peg$c90 = '$'; const peg$c91 = peg$literalExpectation('$', false); const peg$c92 = '_'; const peg$c93 = peg$literalExpectation('_', false); const peg$c94 = peg$otherExpectation('NUMBER'); const peg$c95 = '-'; const peg$c96 = peg$literalExpectation('-', false); const peg$c97 = '.'; const peg$c98 = peg$literalExpectation('.', false); const peg$c99 = /^[0-9]/; const peg$c100 = peg$classExpectation([['0', '9']], false, false); const peg$c101 = function (n) { return text(); }; const peg$c102 = function (v) { return b.createElement( 'Literal', { value: v.slice(1, v.length - 1), quoted: 'html', }, [], ); }; const peg$c103 = '<'; const peg$c104 = peg$literalExpectation('<', false); const peg$c105 = '>'; const peg$c106 = peg$literalExpectation('>', false); const peg$c107 = function (v) { return '<' + v.join('') + '>'; }; const peg$c108 = function (chars) { return b.createElement( 'Literal', { value: chars.join(''), quoted: true, }, [], ); }; const peg$c109 = function () { return text(); }; const peg$c110 = '\\'; const peg$c111 = peg$literalExpectation('\\', false); const peg$c112 = function (v) { return v[1] === '"' ? '"' : v[0] + v[1]; }; const peg$c113 = function () { return ''; }; const peg$c114 = /^[\n\r\u2028\u2029]/; const peg$c115 = peg$classExpectation(['\n', '\r', '\u2028', '\u2029'], false, false); const peg$c116 = peg$otherExpectation('end of line'); const peg$c117 = '\n'; const peg$c118 = peg$literalExpectation('\n', false); const peg$c119 = '\r\n'; const peg$c120 = peg$literalExpectation('\r\n', false); const peg$c121 = '\r'; const peg$c122 = peg$literalExpectation('\r', false); const peg$c123 = '\u2028'; const peg$c124 = peg$literalExpectation('\u2028', false); const peg$c125 = '\u2029'; const peg$c126 = peg$literalExpectation('\u2029', false); const peg$c134 = peg$otherExpectation('whitespace'); const peg$c135 = peg$otherExpectation('WHITESPACE'); const peg$c136 = /^[\n\r]/; const peg$c137 = peg$classExpectation(['\n', '\r'], false, false); const peg$c138 = /^[ \t]/; const peg$c139 = peg$classExpectation([' ', '\t'], false, false); const peg$c140 = /^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0561-\u0587\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7FA\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/; const peg$c141 = peg$classExpectation( [ ['a', 'z'], '\xB5', ['\xDF', '\xF6'], ['\xF8', '\xFF'], '\u0101', '\u0103', '\u0105', '\u0107', '\u0109', '\u010B', '\u010D', '\u010F', '\u0111', '\u0113', '\u0115', '\u0117', '\u0119', '\u011B', '\u011D', '\u011F', '\u0121', '\u0123', '\u0125', '\u0127', '\u0129', '\u012B', '\u012D', '\u012F', '\u0131', '\u0133', '\u0135', ['\u0137', '\u0138'], '\u013A', '\u013C', '\u013E', '\u0140', '\u0142', '\u0144', '\u0146', ['\u0148', '\u0149'], '\u014B', '\u014D', '\u014F', '\u0151', '\u0153', '\u0155', '\u0157', '\u0159', '\u015B', '\u015D', '\u015F', '\u0161', '\u0163', '\u0165', '\u0167', '\u0169', '\u016B', '\u016D', '\u016F', '\u0171', '\u0173', '\u0175', '\u0177', '\u017A', '\u017C', ['\u017E', '\u0180'], '\u0183', '\u0185', '\u0188', ['\u018C', '\u018D'], '\u0192', '\u0195', ['\u0199', '\u019B'], '\u019E', '\u01A1', '\u01A3', '\u01A5', '\u01A8', ['\u01AA', '\u01AB'], '\u01AD', '\u01B0', '\u01B4', '\u01B6', ['\u01B9', '\u01BA'], ['\u01BD', '\u01BF'], '\u01C6', '\u01C9', '\u01CC', '\u01CE', '\u01D0', '\u01D2', '\u01D4', '\u01D6', '\u01D8', '\u01DA', ['\u01DC', '\u01DD'], '\u01DF', '\u01E1', '\u01E3', '\u01E5', '\u01E7', '\u01E9', '\u01EB', '\u01ED', ['\u01EF', '\u01F0'], '\u01F3', '\u01F5', '\u01F9', '\u01FB', '\u01FD', '\u01FF', '\u0201', '\u0203', '\u0205', '\u0207', '\u0209', '\u020B', '\u020D', '\u020F', '\u0211', '\u0213', '\u0215', '\u0217', '\u0219', '\u021B', '\u021D', '\u021F', '\u0221', '\u0223', '\u0225', '\u0227', '\u0229', '\u022B', '\u022D', '\u022F', '\u0231', ['\u0233', '\u0239'], '\u023C', ['\u023F', '\u0240'], '\u0242', '\u0247', '\u0249', '\u024B', '\u024D', ['\u024F', '\u0293'], ['\u0295', '\u02AF'], '\u0371', '\u0373', '\u0377', ['\u037B', '\u037D'], '\u0390', ['\u03AC', '\u03CE'], ['\u03D0', '\u03D1'], ['\u03D5', '\u03D7'], '\u03D9', '\u03DB', '\u03DD', '\u03DF', '\u03E1', '\u03E3', '\u03E5', '\u03E7', '\u03E9', '\u03EB', '\u03ED', ['\u03EF', '\u03F3'], '\u03F5', '\u03F8', ['\u03FB', '\u03FC'], ['\u0430', '\u045F'], '\u0461', '\u0463', '\u0465', '\u0467', '\u0469', '\u046B', '\u046D', '\u046F', '\u0471', '\u0473', '\u0475', '\u0477', '\u0479', '\u047B', '\u047D', '\u047F', '\u0481', '\u048B', '\u048D', '\u048F', '\u0491', '\u0493', '\u0495', '\u0497', '\u0499', '\u049B', '\u049D', '\u049F', '\u04A1', '\u04A3', '\u04A5', '\u04A7', '\u04A9', '\u04AB', '\u04AD', '\u04AF', '\u04B1', '\u04B3', '\u04B5', '\u04B7', '\u04B9', '\u04BB', '\u04BD', '\u04BF', '\u04C2', '\u04C4', '\u04C6', '\u04C8', '\u04CA', '\u04CC', ['\u04CE', '\u04CF'], '\u04D1', '\u04D3', '\u04D5', '\u04D7', '\u04D9', '\u04DB', '\u04DD', '\u04DF', '\u04E1', '\u04E3', '\u04E5', '\u04E7', '\u04E9', '\u04EB', '\u04ED', '\u04EF', '\u04F1', '\u04F3', '\u04F5', '\u04F7', '\u04F9', '\u04FB', '\u04FD', '\u04FF', '\u0501', '\u0503', '\u0505', '\u0507', '\u0509', '\u050B', '\u050D', '\u050F', '\u0511', '\u0513', '\u0515', '\u0517', '\u0519', '\u051B', '\u051D', '\u051F', '\u0521', '\u0523', '\u0525', '\u0527', ['\u0561', '\u0587'], ['\u1D00', '\u1D2B'], ['\u1D6B', '\u1D77'], ['\u1D79', '\u1D9A'], '\u1E01', '\u1E03', '\u1E05', '\u1E07', '\u1E09', '\u1E0B', '\u1E0D', '\u1E0F', '\u1E11', '\u1E13', '\u1E15', '\u1E17', '\u1E19', '\u1E1B', '\u1E1D', '\u1E1F', '\u1E21', '\u1E23', '\u1E25', '\u1E27', '\u1E29', '\u1E2B', '\u1E2D', '\u1E2F', '\u1E31', '\u1E33', '\u1E35', '\u1E37', '\u1E39', '\u1E3B', '\u1E3D', '\u1E3F', '\u1E41', '\u1E43', '\u1E45', '\u1E47', '\u1E49', '\u1E4B', '\u1E4D', '\u1E4F', '\u1E51', '\u1E53', '\u1E55', '\u1E57', '\u1E59', '\u1E5B', '\u1E5D', '\u1E5F', '\u1E61', '\u1E63', '\u1E65', '\u1E67', '\u1E69', '\u1E6B', '\u1E6D', '\u1E6F', '\u1E71', '\u1E73', '\u1E75', '\u1E77', '\u1E79', '\u1E7B', '\u1E7D', '\u1E7F', '\u1E81', '\u1E83', '\u1E85', '\u1E87', '\u1E89', '\u1E8B', '\u1E8D', '\u1E8F', '\u1E91', '\u1E93', ['\u1E95', '\u1E9D'], '\u1E9F', '\u1EA1', '\u1EA3', '\u1EA5', '\u1EA7', '\u1EA9', '\u1EAB', '\u1EAD', '\u1EAF', '\u1EB1', '\u1EB3', '\u1EB5', '\u1EB7', '\u1EB9', '\u1EBB', '\u1EBD', '\u1EBF', '\u1EC1', '\u1EC3', '\u1EC5', '\u1EC7', '\u1EC9', '\u1ECB', '\u1ECD', '\u1ECF', '\u1ED1', '\u1ED3', '\u1ED5', '\u1ED7', '\u1ED9', '\u1EDB', '\u1EDD', '\u1EDF', '\u1EE1', '\u1EE3', '\u1EE5', '\u1EE7', '\u1EE9', '\u1EEB', '\u1EED', '\u1EEF', '\u1EF1', '\u1EF3', '\u1EF5', '\u1EF7', '\u1EF9', '\u1EFB', '\u1EFD', ['\u1EFF', '\u1F07'], ['\u1F10', '\u1F15'], ['\u1F20', '\u1F27'], ['\u1F30', '\u1F37'], ['\u1F40', '\u1F45'], ['\u1F50', '\u1F57'], ['\u1F60', '\u1F67'], ['\u1F70', '\u1F7D'], ['\u1F80', '\u1F87'], ['\u1F90', '\u1F97'], ['\u1FA0', '\u1FA7'], ['\u1FB0', '\u1FB4'], ['\u1FB6', '\u1FB7'], '\u1FBE', ['\u1FC2', '\u1FC4'], ['\u1FC6', '\u1FC7'], ['\u1FD0', '\u1FD3'], ['\u1FD6', '\u1FD7'], ['\u1FE0', '\u1FE7'], ['\u1FF2', '\u1FF4'], ['\u1FF6', '\u1FF7'], '\u210A', ['\u210E', '\u210F'], '\u2113', '\u212F', '\u2134', '\u2139', ['\u213C', '\u213D'], ['\u2146', '\u2149'], '\u214E', '\u2184', ['\u2C30', '\u2C5E'], '\u2C61', ['\u2C65', '\u2C66'], '\u2C68', '\u2C6A', '\u2C6C', '\u2C71', ['\u2C73', '\u2C74'], ['\u2C76', '\u2C7B'], '\u2C81', '\u2C83', '\u2C85', '\u2C87', '\u2C89', '\u2C8B', '\u2C8D', '\u2C8F', '\u2C91', '\u2C93', '\u2C95', '\u2C97', '\u2C99', '\u2C9B', '\u2C9D', '\u2C9F', '\u2CA1', '\u2CA3', '\u2CA5', '\u2CA7', '\u2CA9', '\u2CAB', '\u2CAD', '\u2CAF', '\u2CB1', '\u2CB3', '\u2CB5', '\u2CB7', '\u2CB9', '\u2CBB', '\u2CBD', '\u2CBF', '\u2CC1', '\u2CC3', '\u2CC5', '\u2CC7', '\u2CC9', '\u2CCB', '\u2CCD', '\u2CCF', '\u2CD1', '\u2CD3', '\u2CD5', '\u2CD7', '\u2CD9', '\u2CDB', '\u2CDD', '\u2CDF', '\u2CE1', ['\u2CE3', '\u2CE4'], '\u2CEC', '\u2CEE', '\u2CF3', ['\u2D00', '\u2D25'], '\u2D27', '\u2D2D', '\uA641', '\uA643', '\uA645', '\uA647', '\uA649', '\uA64B', '\uA64D', '\uA64F', '\uA651', '\uA653', '\uA655', '\uA657', '\uA659', '\uA65B', '\uA65D', '\uA65F', '\uA661', '\uA663', '\uA665', '\uA667', '\uA669', '\uA66B', '\uA66D', '\uA681', '\uA683', '\uA685', '\uA687', '\uA689', '\uA68B', '\uA68D', '\uA68F', '\uA691', '\uA693', '\uA695', '\uA697', '\uA723', '\uA725', '\uA727', '\uA729', '\uA72B', '\uA72D', ['\uA72F', '\uA731'], '\uA733', '\uA735', '\uA737', '\uA739', '\uA73B', '\uA73D', '\uA73F', '\uA741', '\uA743', '\uA745', '\uA747', '\uA749', '\uA74B', '\uA74D', '\uA74F', '\uA751', '\uA753', '\uA755', '\uA757', '\uA759', '\uA75B', '\uA75D', '\uA75F', '\uA761', '\uA763', '\uA765', '\uA767', '\uA769', '\uA76B', '\uA76D', '\uA76F', ['\uA771', '\uA778'], '\uA77A', '\uA77C', '\uA77F', '\uA781', '\uA783', '\uA785', '\uA787', '\uA78C', '\uA78E', '\uA791', '\uA793', '\uA7A1', '\uA7A3', '\uA7A5', '\uA7A7', '\uA7A9', '\uA7FA', ['\uFB00', '\uFB06'], ['\uFB13', '\uFB17'], ['\uFF41', '\uFF5A'], ], false, false, ); const peg$c142 = /^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uAA70\uAADD\uAAF3-\uAAF4\uFF70\uFF9E-\uFF9F]/; const peg$c143 = peg$classExpectation( [ ['\u02B0', '\u02C1'], ['\u02C6', '\u02D1'], ['\u02E0', '\u02E4'], '\u02EC', '\u02EE', '\u0374', '\u037A', '\u0559', '\u0640', ['\u06E5', '\u06E6'], ['\u07F4', '\u07F5'], '\u07FA', '\u081A', '\u0824', '\u0828', '\u0971', '\u0E46', '\u0EC6', '\u10FC', '\u17D7', '\u1843', '\u1AA7', ['\u1C78', '\u1C7D'], ['\u1D2C', '\u1D6A'], '\u1D78', ['\u1D9B', '\u1DBF'], '\u2071', '\u207F', ['\u2090', '\u209C'], ['\u2C7C', '\u2C7D'], '\u2D6F', '\u2E2F', '\u3005', ['\u3031', '\u3035'], '\u303B', ['\u309D', '\u309E'], ['\u30FC', '\u30FE'], '\uA015', ['\uA4F8', '\uA4FD'], '\uA60C', '\uA67F', ['\uA717', '\uA71F'], '\uA770', '\uA788', ['\uA7F8', '\uA7F9'], '\uA9CF', '\uAA70', '\uAADD', ['\uAAF3', '\uAAF4'], '\uFF70', ['\uFF9E', '\uFF9F'], ], false, false, ); const peg$c144 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0977\u0979-\u097F\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58-\u0C59\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/; const peg$c145 = peg$classExpectation( [ '\xAA', '\xBA', '\u01BB', ['\u01C0', '\u01C3'], '\u0294', ['\u05D0', '\u05EA'], ['\u05F0', '\u05F2'], ['\u0620', '\u063F'], ['\u0641', '\u064A'], ['\u066E', '\u066F'], ['\u0671', '\u06D3'], '\u06D5', ['\u06EE', '\u06EF'], ['\u06FA', '\u06FC'], '\u06FF', '\u0710', ['\u0712', '\u072F'], ['\u074D', '\u07A5'], '\u07B1', ['\u07CA', '\u07EA'], ['\u0800', '\u0815'], ['\u0840', '\u0858'], '\u08A0', ['\u08A2', '\u08AC'], ['\u0904', '\u0939'], '\u093D', '\u0950', ['\u0958', '\u0961'], ['\u0972', '\u0977'], ['\u0979', '\u097F'], ['\u0985', '\u098C'], ['\u098F', '\u0990'], ['\u0993', '\u09A8'], ['\u09AA', '\u09B0'], '\u09B2', ['\u09B6', '\u09B9'], '\u09BD', '\u09CE', ['\u09DC', '\u09DD'], ['\u09DF', '\u09E1'], ['\u09F0', '\u09F1'], ['\u0A05', '\u0A0A'], ['\u0A0F', '\u0A10'], ['\u0A13', '\u0A28'], ['\u0A2A', '\u0A30'], ['\u0A32', '\u0A33'], ['\u0A35', '\u0A36'], ['\u0A38', '\u0A39'], ['\u0A59', '\u0A5C'], '\u0A5E', ['\u0A72', '\u0A74'], ['\u0A85', '\u0A8D'], ['\u0A8F', '\u0A91'], ['\u0A93', '\u0AA8'], ['\u0AAA', '\u0AB0'], ['\u0AB2', '\u0AB3'], ['\u0AB5', '\u0AB9'], '\u0ABD', '\u0AD0', ['\u0AE0', '\u0AE1'], ['\u0B05', '\u0B0C'], ['\u0B0F', '\u0B10'], ['\u0B13', '\u0B28'], ['\u0B2A', '\u0B30'], ['\u0B32', '\u0B33'], ['\u0B35', '\u0B39'], '\u0B3D', ['\u0B5C', '\u0B5D'], ['\u0B5F', '\u0B61'], '\u0B71', '\u0B83', ['\u0B85', '\u0B8A'], ['\u0B8E', '\u0B90'], ['\u0B92', '\u0B95'], ['\u0B99', '\u0B9A'], '\u0B9C', ['\u0B9E', '\u0B9F'], ['\u0BA3', '\u0BA4'], ['\u0BA8', '\u0BAA'], ['\u0BAE', '\u0BB9'], '\u0BD0', ['\u0C05', '\u0C0C'], ['\u0C0E', '\u0C10'], ['\u0C12', '\u0C28'], ['\u0C2A', '\u0C33'], ['\u0C35', '\u0C39'], '\u0C3D', ['\u0C58', '\u0C59'], ['\u0C60', '\u0C61'], ['\u0C85', '\u0C8C'], ['\u0C8E', '\u0C90'], ['\u0C92', '\u0CA8'], ['\u0CAA', '\u0CB3'], ['\u0CB5', '\u0CB9'], '\u0CBD', '\u0CDE', ['\u0CE0', '\u0CE1'], ['\u0CF1', '\u0CF2'], ['\u0D05', '\u0D0C'], ['\u0D0E', '\u0D10'], ['\u0D12', '\u0D3A'], '\u0D3D', '\u0D4E', ['\u0D60', '\u0D61'], ['\u0D7A', '\u0D7F'], ['\u0D85', '\u0D96'], ['\u0D9A', '\u0DB1'], ['\u0DB3', '\u0DBB'], '\u0DBD', ['\u0DC0', '\u0DC6'], ['\u0E01', '\u0E30'], ['\u0E32', '\u0E33'], ['\u0E40', '\u0E45'], ['\u0E81', '\u0E82'], '\u0E84', ['\u0E87', '\u0E88'], '\u0E8A', '\u0E8D', ['\u0E94', '\u0E97'], ['\u0E99', '\u0E9F'], ['\u0EA1', '\u0EA3'], '\u0EA5', '\u0EA7', ['\u0EAA', '\u0EAB'], ['\u0EAD', '\u0EB0'], ['\u0EB2', '\u0EB3'], '\u0EBD', ['\u0EC0', '\u0EC4'], ['\u0EDC', '\u0EDF'], '\u0F00', ['\u0F40', '\u0F47'], ['\u0F49', '\u0F6C'], ['\u0F88', '\u0F8C'], ['\u1000', '\u102A'], '\u103F', ['\u1050', '\u1055'], ['\u105A', '\u105D'], '\u1061', ['\u1065', '\u1066'], ['\u106E', '\u1070'], ['\u1075', '\u1081'], '\u108E', ['\u10D0', '\u10FA'], ['\u10FD', '\u1248'], ['\u124A', '\u124D'], ['\u1250', '\u1256'], '\u1258', ['\u125A', '\u125D'], ['\u1260', '\u1288'], ['\u128A', '\u128D'], ['\u1290', '\u12B0'], ['\u12B2', '\u12B5'], ['\u12B8', '\u12BE'], '\u12C0', ['\u12C2', '\u12C5'], ['\u12C8', '\u12D6'], ['\u12D8', '\u1310'], ['\u1312', '\u1315'], ['\u1318', '\u135A'], ['\u1380', '\u138F'], ['\u13A0', '\u13F4'], ['\u1401', '\u166C'], ['\u166F', '\u167F'], ['\u1681', '\u169A'], ['\u16A0', '\u16EA'], ['\u1700', '\u170C'], ['\u170E', '\u1711'], ['\u1720', '\u1731'], ['\u1740', '\u1751'], ['\u1760', '\u176C'], ['\u176E', '\u1770'], ['\u1780', '\u17B3'], '\u17DC', ['\u1820', '\u1842'], ['\u1844', '\u1877'], ['\u1880', '\u18A8'], '\u18AA', ['\u18B0', '\u18F5'], ['\u1900', '\u191C'], ['\u1950', '\u196D'], ['\u1970', '\u1974'], ['\u1980', '\u19AB'], ['\u19C1', '\u19C7'], ['\u1A00', '\u1A16'], ['\u1A20', '\u1A54'], ['\u1B05', '\u1B33'], ['\u1B45', '\u1B4B'], ['\u1B83', '\u1BA0'], ['\u1BAE', '\u1BAF'], ['\u1BBA', '\u1BE5'], ['\u1C00', '\u1C23'], ['\u1C4D', '\u1C4F'], ['\u1C5A', '\u1C77'], ['\u1CE9', '\u1CEC'], ['\u1CEE', '\u1CF1'], ['\u1CF5', '\u1CF6'], ['\u2135', '\u2138'], ['\u2D30', '\u2D67'], ['\u2D80', '\u2D96'], ['\u2DA0', '\u2DA6'], ['\u2DA8', '\u2DAE'], ['\u2DB0', '\u2DB6'], ['\u2DB8', '\u2DBE'], ['\u2DC0', '\u2DC6'], ['\u2DC8', '\u2DCE'], ['\u2DD0', '\u2DD6'], ['\u2DD8', '\u2DDE'], '\u3006', '\u303C', ['\u3041', '\u3096'], '\u309F', ['\u30A1', '\u30FA'], '\u30FF', ['\u3105', '\u312D'], ['\u3131', '\u318E'], ['\u31A0', '\u31BA'], ['\u31F0', '\u31FF'], ['\u3400', '\u4DB5'], ['\u4E00', '\u9FCC'], ['\uA000', '\uA014'], ['\uA016', '\uA48C'], ['\uA4D0', '\uA4F7'], ['\uA500', '\uA60B'], ['\uA610', '\uA61F'], ['\uA62A', '\uA62B'], '\uA66E', ['\uA6A0', '\uA6E5'], ['\uA7FB', '\uA801'], ['\uA803', '\uA805'], ['\uA807', '\uA80A'], ['\uA80C', '\uA822'], ['\uA840', '\uA873'], ['\uA882', '\uA8B3'], ['\uA8F2', '\uA8F7'], '\uA8FB', ['\uA90A', '\uA925'], ['\uA930', '\uA946'], ['\uA960', '\uA97C'], ['\uA984', '\uA9B2'], ['\uAA00', '\uAA28'], ['\uAA40', '\uAA42'], ['\uAA44', '\uAA4B'], ['\uAA60', '\uAA6F'], ['\uAA71', '\uAA76'], '\uAA7A', ['\uAA80', '\uAAAF'], '\uAAB1', ['\uAAB5', '\uAAB6'], ['\uAAB9', '\uAABD'], '\uAAC0', '\uAAC2', ['\uAADB', '\uAADC'], ['\uAAE0', '\uAAEA'], '\uAAF2', ['\uAB01', '\uAB06'], ['\uAB09', '\uAB0E'], ['\uAB11', '\uAB16'], ['\uAB20', '\uAB26'], ['\uAB28', '\uAB2E'], ['\uABC0', '\uABE2'], ['\uAC00', '\uD7A3'], ['\uD7B0', '\uD7C6'], ['\uD7CB', '\uD7FB'], ['\uF900', '\uFA6D'], ['\uFA70', '\uFAD9'], '\uFB1D', ['\uFB1F', '\uFB28'], ['\uFB2A', '\uFB36'], ['\uFB38', '\uFB3C'], '\uFB3E', ['\uFB40', '\uFB41'], ['\uFB43', '\uFB44'], ['\uFB46', '\uFBB1'], ['\uFBD3', '\uFD3D'], ['\uFD50', '\uFD8F'], ['\uFD92', '\uFDC7'], ['\uFDF0', '\uFDFB'], ['\uFE70', '\uFE74'], ['\uFE76', '\uFEFC'], ['\uFF66', '\uFF6F'], ['\uFF71', '\uFF9D'], ['\uFFA0', '\uFFBE'], ['\uFFC2', '\uFFC7'], ['\uFFCA', '\uFFCF'], ['\uFFD2', '\uFFD7'], ['\uFFDA', '\uFFDC'], ], false, false, ); const peg$c146 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/; const peg$c147 = peg$classExpectation( [ '\u01C5', '\u01C8', '\u01CB', '\u01F2', ['\u1F88', '\u1F8F'], ['\u1F98', '\u1F9F'], ['\u1FA8', '\u1FAF'], '\u1FBC', '\u1FCC', '\u1FFC', ], false, false, ); const peg$c148 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E