From a2f329f0d85bba9932b59c9b72839e51037131e5 Mon Sep 17 00:00:00 2001 From: Marko Ristin Date: Thu, 20 Jun 2024 16:32:47 +0200 Subject: [PATCH] Write a virtual machine for C++ regexes (#502) The C++ standard library comes with a very slow engine for regular expressions in most implementations. For example, it seems that GNU C++ compiler runs in exponential time, see this bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93502 This is impractical for most real-world inputs. Therefore, we implement a virtual machine for matching regular expressions which runs in ``O(m * n)`` time (where ``m`` is the number of instructions in the regular expression and ``n`` is the length of the input). The original approach has been described in: Thompson, K., "Regular expression search algorithm", ACM 11(6) 1968 while we follow this blog post: https://swtch.com/~rsc/regexp/regexp2.html --- aas_core_codegen/cpp/common.py | 82 +- aas_core_codegen/cpp/main.py | 81 + aas_core_codegen/cpp/pattern/__init__.py | 6 + aas_core_codegen/cpp/pattern/_generate.py | 510 + aas_core_codegen/cpp/revm/__init__.py | 6 + aas_core_codegen/cpp/revm/_generate.py | 1149 + .../cpp/verification/_generate.py | 406 +- aas_core_codegen/intermediate/revm.py | 987 + aas_core_codegen/parse/retree/__init__.py | 1 + aas_core_codegen/parse/retree/_render.py | 85 +- .../expected_output/pattern.cpp | 70160 ++++++++++++++++ .../expected_output/pattern.hpp | 192 + .../aas_core_meta.v3/expected_output/revm.cpp | 863 + .../aas_core_meta.v3/expected_output/revm.hpp | 215 + .../expected_output/verification.cpp | 2253 +- .../expected_output/verification.hpp | 1 + .../verification/is_xs_date_time_UTC.cpp | 349 +- .../value_consistent_with_XSD_type.cpp | 52 +- .../char/pattern.regex | 1 + .../char/program.txt | 7 + .../range/pattern.regex | 1 + .../range/program.txt | 7 + .../expected/arbitrary_suffix/pattern.regex | 1 + .../expected/arbitrary_suffix/program.txt | 5 + .../expected/char_and_range/pattern.regex | 1 + .../expected/char_and_range/program.txt | 9 + .../expected/compliment_range/pattern.regex | 1 + .../expected/compliment_range/program.txt | 7 + .../expected/dot/pattern.regex | 1 + .../expected/dot/program.txt | 7 + .../multiple_alterations/pattern.regex | 1 + .../expected/multiple_alterations/program.txt | 16 + .../expected/multiple_chars/pattern.regex | 1 + .../expected/multiple_chars/program.txt | 8 + .../expected/multiple_ranges/pattern.regex | 1 + .../expected/multiple_ranges/program.txt | 7 + .../expected/quantifier/0_0/pattern.regex | 1 + .../expected/quantifier/0_0/program.txt | 10 + .../expected/quantifier/0_1/pattern.regex | 1 + .../expected/quantifier/0_1/program.txt | 11 + .../expected/quantifier/0_2/pattern.regex | 1 + .../expected/quantifier/0_2/program.txt | 13 + .../expected/quantifier/0_inf/pattern.regex | 1 + .../expected/quantifier/0_inf/program.txt | 12 + .../expected/quantifier/1_1/pattern.regex | 1 + .../expected/quantifier/1_1/program.txt | 7 + .../expected/quantifier/1_2/pattern.regex | 1 + .../expected/quantifier/1_2/program.txt | 12 + .../expected/quantifier/1_3/pattern.regex | 1 + .../expected/quantifier/1_3/program.txt | 14 + .../expected/quantifier/1_inf/pattern.regex | 1 + .../expected/quantifier/1_inf/program.txt | 11 + .../expected/quantifier/2_inf/pattern.regex | 1 + .../expected/quantifier/2_inf/program.txt | 12 + .../expected/real_world/base64/pattern.regex | 1 + .../expected/real_world/base64/program.txt | 118 + .../expected/single_alteration/pattern.regex | 1 + .../expected/single_alteration/program.txt | 13 + .../expected/single_char/pattern.regex | 1 + .../expected/single_char/program.txt | 7 + .../expected/single_range/pattern.regex | 1 + .../expected/single_range/program.txt | 7 + .../non_greedy_quantifier/exception.txt | 1 + .../non_greedy_quantifier/pattern.regex | 1 + .../not_anchored_at_end/exception.txt | 3 + .../not_anchored_at_end/pattern.regex | 1 + .../not_anchored_at_start/exception.txt | 3 + .../not_anchored_at_start/pattern.regex | 1 + .../exception.txt | 5 + .../pattern.regex | 1 + tests/cpp/test_main.py | 4 + tests/cpp/test_pattern.py | 188 + tests/intermediate/test_revm.py | 135 + 73 files changed, 75798 insertions(+), 2285 deletions(-) create mode 100644 aas_core_codegen/cpp/pattern/__init__.py create mode 100644 aas_core_codegen/cpp/pattern/_generate.py create mode 100644 aas_core_codegen/cpp/revm/__init__.py create mode 100644 aas_core_codegen/cpp/revm/_generate.py create mode 100644 aas_core_codegen/intermediate/revm.py create mode 100644 test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.cpp create mode 100644 test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.hpp create mode 100644 test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.cpp create mode 100644 test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.hpp create mode 100644 test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/pattern.regex create mode 100644 test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/program.txt create mode 100644 test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/pattern.regex create mode 100644 test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/program.txt create mode 100644 test_data/intermediate_revm/expected/arbitrary_suffix/pattern.regex create mode 100644 test_data/intermediate_revm/expected/arbitrary_suffix/program.txt create mode 100644 test_data/intermediate_revm/expected/char_and_range/pattern.regex create mode 100644 test_data/intermediate_revm/expected/char_and_range/program.txt create mode 100644 test_data/intermediate_revm/expected/compliment_range/pattern.regex create mode 100644 test_data/intermediate_revm/expected/compliment_range/program.txt create mode 100644 test_data/intermediate_revm/expected/dot/pattern.regex create mode 100644 test_data/intermediate_revm/expected/dot/program.txt create mode 100644 test_data/intermediate_revm/expected/multiple_alterations/pattern.regex create mode 100644 test_data/intermediate_revm/expected/multiple_alterations/program.txt create mode 100644 test_data/intermediate_revm/expected/multiple_chars/pattern.regex create mode 100644 test_data/intermediate_revm/expected/multiple_chars/program.txt create mode 100644 test_data/intermediate_revm/expected/multiple_ranges/pattern.regex create mode 100644 test_data/intermediate_revm/expected/multiple_ranges/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/0_0/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/0_0/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/0_1/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/0_1/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/0_2/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/0_2/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/0_inf/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/0_inf/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/1_1/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/1_1/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/1_2/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/1_2/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/1_3/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/1_3/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/1_inf/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/1_inf/program.txt create mode 100644 test_data/intermediate_revm/expected/quantifier/2_inf/pattern.regex create mode 100644 test_data/intermediate_revm/expected/quantifier/2_inf/program.txt create mode 100644 test_data/intermediate_revm/expected/real_world/base64/pattern.regex create mode 100644 test_data/intermediate_revm/expected/real_world/base64/program.txt create mode 100644 test_data/intermediate_revm/expected/single_alteration/pattern.regex create mode 100644 test_data/intermediate_revm/expected/single_alteration/program.txt create mode 100644 test_data/intermediate_revm/expected/single_char/pattern.regex create mode 100644 test_data/intermediate_revm/expected/single_char/program.txt create mode 100644 test_data/intermediate_revm/expected/single_range/pattern.regex create mode 100644 test_data/intermediate_revm/expected/single_range/program.txt create mode 100644 test_data/intermediate_revm/unexpected/non_greedy_quantifier/exception.txt create mode 100644 test_data/intermediate_revm/unexpected/non_greedy_quantifier/pattern.regex create mode 100644 test_data/intermediate_revm/unexpected/not_anchored_at_end/exception.txt create mode 100644 test_data/intermediate_revm/unexpected/not_anchored_at_end/pattern.regex create mode 100644 test_data/intermediate_revm/unexpected/not_anchored_at_start/exception.txt create mode 100644 test_data/intermediate_revm/unexpected/not_anchored_at_start/pattern.regex create mode 100644 test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/exception.txt create mode 100644 test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/pattern.regex create mode 100644 tests/cpp/test_pattern.py create mode 100644 tests/intermediate/test_revm.py diff --git a/aas_core_codegen/cpp/common.py b/aas_core_codegen/cpp/common.py index 5dff11ee4..084691ed8 100644 --- a/aas_core_codegen/cpp/common.py +++ b/aas_core_codegen/cpp/common.py @@ -65,7 +65,13 @@ def wstring_literal(text: str) -> Stripped: elif code_point < 32: # Non-printable ASCII characters escaped.append(f"\\x{ord(character):x}") - elif 255 < code_point < 65536: + elif code_point <= 127: + # ASCII + escaped.append(character) + elif 127 < code_point < 255: + # Above ASCII, but can be encoded as a single byte + escaped.append(f"\\x{ord(character):x}") + elif 255 <= code_point < 65536: # Above ASCII escaped.append(f"\\u{ord(character):04x}") elif code_point >= 65536: @@ -79,6 +85,64 @@ def wstring_literal(text: str) -> Stripped: return Stripped('L"{}"'.format("".join(escaped))) +@require(lambda character: len(character) == 1) +def wchar_literal(character: str) -> Stripped: + """Generate a C++ wide character literal from the ``character``.""" + code_point = ord(character) + + escaped: str + + if character == "\a": + escaped = "L'\\a'" + elif character == "\b": + escaped = "L'\\b'" + elif character == "\f": + escaped = "L'\\f'" + elif character == "\n": + escaped = "L'\\n'" + elif character == "\r": + escaped = "L'\\r'" + elif character == "\t": + escaped = "L'\\t'" + elif character == "\v": + escaped = "L'\\v'" + elif character == "'": + escaped = "L'\\''" + elif character == "\\": + escaped = "L'\\\\'" + elif code_point < 32: + # Non-printable ASCII characters + escaped = f"L'\\x{ord(character):x}'" + elif code_point <= 127: + # ASCII + escaped = f"L'{character}'" + elif 127 < code_point < 255: + # Above ASCII, but can be encoded as a single byte + escaped = f"L'\\x{ord(character):x}'" + elif 0xD800 <= code_point <= 0xDFFF: + # NOTE (mristin): + # These are the surrogate points and can not be represented as wide character + # literals directly as common compilers such as MSVC++ will complain. + # + # We have to fool the compiler at this point as we deliberately want to model + # the surrogate point. + escaped = f"static_cast(0x{ord(character):04x})" + + # NOTE (mristin): + # Mind the intersecting range for surrogate points just above if you ever convert + # this if-elif-else statement into a mapping or pattern matching. + elif 255 <= code_point < 65536: + # Above ASCII + escaped = f"L'\\u{ord(character):04x}'" + elif code_point >= 65536: + # Above Unicode Basic Multilingual Pane + escaped = f"L'\\U{ord(character):08x}'" + else: + raise AssertionError(f"Unexpected unhandled character: {character!r}") + + return Stripped(escaped) + + # fmt: off # NOTE (mristin, 2023-09-24): # We use a pre-condition here to simplify the client code. The client must check @@ -87,7 +151,7 @@ def wstring_literal(text: str) -> Stripped: @require( lambda text: all( - ord(character) <= 255 + ord(character) <= 127 for character in text ), "Only ASCII text can be converted to a C++ string literal, otherwise encoding " @@ -124,7 +188,7 @@ def string_literal(text: str) -> Stripped: elif code_point < 32: # Non-printable ASCII characters escaped.append(f"\\x{ord(character):x}") - elif code_point <= 255: + elif code_point <= 127: escaped.append(character) else: # Above ASCII @@ -159,14 +223,20 @@ def needs_escaping(text: str) -> bool: elif code_point < 32: # Non-printable ASCII characters return True - elif 255 < code_point < 65536: + elif code_point <= 127: + # ASCII + continue + elif 127 < code_point < 255: + # Above ASCII, but can be encoded as a single byte + return True + elif 255 <= code_point < 65536: # Above ASCII return True elif code_point >= 65536: # Above Unicode Binary Multilingual Pane return True else: - pass + raise AssertionError(f"Unexpected unhandled character: {character!r}") return False @@ -286,6 +356,8 @@ def _assert_all_primitive_types_are_mapped() -> None: VERIFICATION_NAMESPACE = Identifier("verification") JSONIZATION_NAMESPACE = Identifier("jsonization") XMLIZATION_NAMESPACE = Identifier("xmlization") +REVM_NAMESPACE = Identifier("revm") +PATTERN_NAMESPACE = Identifier("pattern") def generate_primitive_type(primitive_type: intermediate.PrimitiveType) -> Stripped: diff --git a/aas_core_codegen/cpp/main.py b/aas_core_codegen/cpp/main.py index 5111f6e66..985761987 100644 --- a/aas_core_codegen/cpp/main.py +++ b/aas_core_codegen/cpp/main.py @@ -9,6 +9,8 @@ enhancing as cpp_enhancing, iteration as cpp_iteration, jsonization as cpp_jsonization, + pattern as cpp_pattern, + revm as cpp_revm, stringification as cpp_stringification, structure as cpp_structure, verification as cpp_verification, @@ -320,6 +322,85 @@ def execute(context: run.Context, stdout: TextIO, stderr: TextIO) -> int: return 1 # endregion + # region Pattern + code = cpp_pattern.generate_header( + symbol_table=context.symbol_table, library_namespace=namespace + ) + + pth = context.output_dir / "pattern.hpp" + try: + pth.write_text(code, encoding="utf-8") + except Exception as exception: + run.write_error_report( + message=(f"Failed to write the header for the C++ pattern code to {pth}"), + errors=[str(exception)], + stderr=stderr, + ) + return 1 + + code, errors = cpp_pattern.generate_implementation( + symbol_table=context.symbol_table, + library_namespace=namespace, + ) + + if errors is not None: + run.write_error_report( + message=( + f"Failed to generate the implementation of the C++ pattern code " + f"based on {context.model_path}" + ), + errors=[context.lineno_columner.error_message(error) for error in errors], + stderr=stderr, + ) + return 1 + assert code is not None + + pth = context.output_dir / "pattern.cpp" + try: + pth.write_text(code, encoding="utf-8") + except Exception as exception: + run.write_error_report( + message=( + f"Failed to write the implementation of the C++ pattern code to {pth}" + ), + errors=[str(exception)], + stderr=stderr, + ) + return 1 + # endregion + + # region REVM + code = cpp_revm.generate_header(library_namespace=namespace) + + pth = context.output_dir / "revm.hpp" + try: + pth.write_text(code, encoding="utf-8") + except Exception as exception: + run.write_error_report( + message=(f"Failed to write the header for the C++ REVM code to {pth}"), + errors=[str(exception)], + stderr=stderr, + ) + return 1 + + code = cpp_revm.generate_implementation( + library_namespace=namespace, + ) + + pth = context.output_dir / "revm.cpp" + try: + pth.write_text(code, encoding="utf-8") + except Exception as exception: + run.write_error_report( + message=( + f"Failed to write the implementation of the C++ REVM code to {pth}" + ), + errors=[str(exception)], + stderr=stderr, + ) + return 1 + # endregion + # region Stringification code = cpp_stringification.generate_header( symbol_table=context.symbol_table, library_namespace=namespace diff --git a/aas_core_codegen/cpp/pattern/__init__.py b/aas_core_codegen/cpp/pattern/__init__.py new file mode 100644 index 000000000..71cc5e943 --- /dev/null +++ b/aas_core_codegen/cpp/pattern/__init__.py @@ -0,0 +1,6 @@ +"""Generate instructions for a virtual machine for matching regular expressions.""" + +from aas_core_codegen.cpp.pattern import _generate + +generate_header = _generate.generate_header +generate_implementation = _generate.generate_implementation diff --git a/aas_core_codegen/cpp/pattern/_generate.py b/aas_core_codegen/cpp/pattern/_generate.py new file mode 100644 index 000000000..2938539fd --- /dev/null +++ b/aas_core_codegen/cpp/pattern/_generate.py @@ -0,0 +1,510 @@ +"""Generate C++ code of a virtual machine for matching regular expressions.""" +import io +from typing import Tuple, Optional, Union, List, Mapping, TextIO + +from icontract import ensure, require + +from aas_core_codegen import intermediate +from aas_core_codegen.common import ( + Stripped, + Identifier, + indent_but_first_line, + Error, + assert_never, +) +from aas_core_codegen.cpp import common as cpp_common, naming as cpp_naming +from aas_core_codegen.cpp.common import ( + INDENT as I, + INDENT2 as II, + INDENT3 as III, +) +from aas_core_codegen.intermediate import revm as intermediate_revm +from aas_core_codegen.parse import retree as parse_retree, tree as parse_tree + + +# fmt: off +@ensure( + lambda result: + result.endswith('\n'), + "Trailing newline mandatory for valid end-of-files" +) +# fmt: on +def generate_header( + symbol_table: intermediate.SymbolTable, library_namespace: Stripped +) -> str: + """Generate the C++ header of a virtual machine for matching regexes.""" + namespace = Stripped(f"{library_namespace}::{cpp_common.PATTERN_NAMESPACE}") + + fully_qualified_match_function = Stripped( + f"{library_namespace}::{cpp_common.REVM_NAMESPACE}::Match" + ) + + include_guard_var = cpp_common.include_guard_var(namespace) + + include_prefix_path = cpp_common.generate_include_prefix_path(library_namespace) + + blocks = [ + Stripped( + f"""\ +#ifndef {include_guard_var} +#define {include_guard_var}""" + ), + cpp_common.WARNING, + Stripped( + f"""\ +#include "{include_prefix_path}/revm.hpp" + +#pragma warning(push, 0) +#include +#include +#pragma warning(pop)""" + ), + cpp_common.generate_namespace_opening(library_namespace), + Stripped( + f"""\ +/** + * \\defgroup {cpp_common.PATTERN_NAMESPACE} Provide patterns to be matched using a multi-threaded virtual machine. + * + * The instructions should be supplied to {fully_qualified_match_function}. While + * we could have theoretically included this code in verification, we decided to keep + * it separate for readability. You are not expected to use this module directly. + * @{{ + */ +namespace {cpp_common.PATTERN_NAMESPACE} {{""" + ), + ] + + for verification in symbol_table.verification_functions: + if not isinstance(verification, intermediate.PatternVerification): + continue + + pattern_name = cpp_naming.constant_name( + Identifier(f"{verification.name}_program") + ) + + blocks.append( + Stripped( + f"""\ +extern const std::vector< +{I}std::unique_ptr +> {pattern_name};""" + ) + ) + + blocks.extend( + [ + Stripped( + f"""\ +}} // namespace {cpp_common.PATTERN_NAMESPACE} +/**@}}*/""" + ), + cpp_common.generate_namespace_closing(library_namespace), + cpp_common.WARNING, + Stripped(f"#endif // {include_guard_var}"), + ] + ) + + writer = io.StringIO() + for i, block in enumerate(blocks): + if i > 0: + writer.write("\n\n") + + writer.write(block) + + writer.write("\n") + + return writer.getvalue() + + +class _RegexRenderer(parse_retree.Renderer): + """ + Render the regular expressions for C++ ``std::wregex``. + + In contrast to :py:class:`parse_retree.Renderer`, we also render + the :py:class:`parse_retree.Char` as we need to cover the granularity of a single + character in this module. + """ + + def char_to_str_and_escape_or_encode_if_necessary( + self, node: parse_retree.Char, escaping: Mapping[str, str] + ) -> List[Union[str, parse_tree.FormattedValue]]: + """Convert the ``node`` to a string, and escape and/or encode appropriately.""" + if not node.explicitly_encoded: + escaped = escaping.get(node.character, None) + if escaped is not None: + result: List[Union[str, parse_tree.FormattedValue]] = [escaped] + else: + result = [node.character] + + return result + else: + code = ord(node.character) + + if code <= 255: + return [f"\\x{code:02x}"] + elif code <= 65535: + return [f"\\u{code:04x}"] + else: + return [f"\\U{code:08x}"] + + def transform_char( + self, node: parse_retree.Char + ) -> List[Union[str, parse_tree.FormattedValue]]: + return self.char_to_str_and_escape_or_encode_if_necessary( + node=node, escaping=parse_retree.Renderer._ESCAPING_IN_CHARACTER_LITERALS + ) + + +_REGEX_RENDERER = _RegexRenderer() + + +@ensure(lambda result: not result.endswith("\\")) +def _render_comment_re_node(re_node: parse_retree.Node) -> Stripped: + """Render the pattern as a comment without trailing spaces and line continuation.""" + parts = _REGEX_RENDERER.transform(re_node) + assert all( + isinstance(part, str) for part in parts + ), f"Expected all rendered parts to be strings, but got: {parts}" + + text = "".join(parts) # type: ignore + + if text.endswith(" ") or text.endswith("\t") or text.endswith("\n"): + return Stripped(f"/* {text} */") + + if not text.endswith("\\"): + return Stripped(f"// {text}") + + if "*/" not in text: + return Stripped(f"/* {text} */") + + return Stripped( + f"// {text}" + ) + + +@require(lambda indention: indention >= 0) +def _write_instructions_recursively( + node_or_leaf: intermediate_revm.NodeOrLeaf, indention: int, writer: TextIO +) -> None: + """Write recursively the creation of the program to the ``writer``.""" + whitespace = I * indention + + if isinstance(node_or_leaf, intermediate_revm.Leaf): + maybe_label_comment = ( + "" if node_or_leaf.label is None else f" // {node_or_leaf.label}" + ) + + instruction_code: Stripped + + if isinstance(node_or_leaf.instruction, intermediate_revm.InstructionChar): + char_literal = cpp_common.wchar_literal(node_or_leaf.instruction.character) + instruction_code = Stripped( + f"""\ +program.emplace_back({maybe_label_comment} +{I}std::make_unique({char_literal}) +);""" + ) + + elif isinstance( + node_or_leaf.instruction, + (intermediate_revm.InstructionSet, intermediate_revm.InstructionNotSet), + ): + ranges = [] # type: List[Stripped] + for rng in node_or_leaf.instruction.ranges: + first_literal = cpp_common.wchar_literal(rng.first) + last_literal = cpp_common.wchar_literal(rng.last) + ranges.append(Stripped(f"revm::Range({first_literal}, {last_literal})")) + + ranges_joined = ",\n".join(ranges) + + instruction_cls: Stripped + if isinstance(node_or_leaf.instruction, intermediate_revm.InstructionSet): + instruction_cls = Stripped("InstructionSet") + elif isinstance( + node_or_leaf.instruction, intermediate_revm.InstructionNotSet + ): + instruction_cls = Stripped("InstructionNotSet") + else: + assert_never(node_or_leaf.instruction) + raise AssertionError("Unexpected execution path") + + instruction_code = Stripped( + f"""\ +program.emplace_back({maybe_label_comment} +{I}std::make_unique( +{II}std::vector{{ +{III}{indent_but_first_line(ranges_joined, III)} +{II}}} +{I}) +);""" + ) + + elif isinstance(node_or_leaf.instruction, intermediate_revm.InstructionAny): + instruction_code = Stripped( + f"""\ +program.emplace_back({maybe_label_comment} +{I}std::make_unique() +);""" + ) + + elif isinstance(node_or_leaf.instruction, intermediate_revm.InstructionMatch): + instruction_code = Stripped( + f"""\ +program.emplace_back({maybe_label_comment} +{I}std::make_unique() +);""" + ) + + elif isinstance(node_or_leaf.instruction, intermediate_revm.InstructionJump): + instruction_code = Stripped( + f"""\ +program.emplace_back({maybe_label_comment} +{I}std::make_unique({node_or_leaf.instruction.target}) +);""" + ) + + elif isinstance(node_or_leaf.instruction, intermediate_revm.InstructionSplit): + first_target = node_or_leaf.instruction.first_target + second_target = node_or_leaf.instruction.second_target + instruction_code = Stripped( + f"""\ +program.emplace_back({maybe_label_comment} +{I}std::make_unique({first_target}, {second_target}) +);""" + ) + + elif isinstance(node_or_leaf.instruction, intermediate_revm.InstructionEnd): + instruction_code = Stripped( + f"""\ +program.emplace_back({maybe_label_comment} +{I}std::make_unique() +);""" + ) + + else: + assert_never(node_or_leaf.instruction) + raise AssertionError("Unexpected execution path") + + writer.write( + f"{whitespace}{indent_but_first_line(instruction_code, whitespace)}" + ) + + elif isinstance(node_or_leaf, intermediate_revm.Node): + re_node_comment = _render_comment_re_node(node_or_leaf.re_node) + + if len(node_or_leaf.children) == 0: + writer.write( + f"{whitespace}{{ {re_node_comment}\n" + f"{whitespace}{I}// Intentionally empty\n" + f"{whitespace}}}" + ) + elif len(node_or_leaf.children) == 1 and isinstance( + node_or_leaf.children[0], intermediate_revm.Leaf + ): + writer.write(f"{whitespace}{re_node_comment}\n") + _write_instructions_recursively( + node_or_leaf=node_or_leaf.children[0], + indention=indention, + writer=writer, + ) + else: + writer.write(f"{whitespace}{{ {re_node_comment}\n") + + for child in node_or_leaf.children: + _write_instructions_recursively( + node_or_leaf=child, indention=indention + 1, writer=writer + ) + writer.write("\n") + + writer.write(f"{whitespace}}} {re_node_comment}") + else: + assert_never(node_or_leaf) + + +def _transpile_to_instructions(regex: parse_retree.Regex) -> Stripped: + """ + Transpile the regular expression to instructions of the virtual machine. + + Please see :py:mod:`aas_core_codegen.cpp.revm` for details about the virtual machine + for matching regular expressions. + """ + root = intermediate_revm.translate(regex) + + writer = io.StringIO() + _write_instructions_recursively(node_or_leaf=root, indention=0, writer=writer) + + return Stripped(writer.getvalue()) + + +def _generate_program_definition_for_regex(regex: parse_retree.Regex) -> Stripped: + """ + Generate the REVM program for the given parsed regular expression. + + We split this function from :py:func:`_generate_construct_function` so that we + can manually invoke it or debug it on simpler examples. + + The returned block starts with the initialization of ``program`` variable. + """ + # region Generate everything for the case that wide strings store UTF-32 + + instructions_utf32 = _transpile_to_instructions(regex=regex) + + # endregion + + # region Generate everything for the case that wide strings store UTF-16 + + parse_retree.fix_for_utf16_regex_in_place(regex=regex) + + instructions_utf16 = _transpile_to_instructions(regex=regex) + + # endregion + + body = [ + Stripped( + """\ +std::vector > program;""" + ) + ] + + if instructions_utf32 == instructions_utf16: + body.append(instructions_utf32) + else: + body.append( + Stripped( + f"""\ +#if __WCHAR_MAX__ <= 0x10000 +{I}// The size of wchar is 2 bytes. + +{I}{indent_but_first_line(instructions_utf16, I)} +#else +{I}// The size of wchar is above 2 bytes. + +{I}{indent_but_first_line(instructions_utf32, I)} +#endif""" + ) + ) + + return Stripped("\n\n".join(body)) + + +@ensure(lambda result: (result[0] is not None) ^ (result[1] is not None)) +def _generate_construct_function( + verification: intermediate.PatternVerification, +) -> Tuple[Optional[Stripped], Optional[Error]]: + """Generate the constructor function for the program matching the given pattern.""" + regex, error = parse_retree.parse([verification.pattern]) + if error is not None: + regex_line, pointer_line = parse_retree.render_pointer(error.cursor) + + return None, Error( + verification.parsed.node, + f"Failed to parse the pattern from " + f"the pattern verification function {verification.name!r}:\n" + f"{error.message}\n" + f"{regex_line}\n" + f"{pointer_line}", + ) + + assert regex is not None + + body = [ + _generate_program_definition_for_regex(regex=regex), + Stripped("return program;"), + ] + + body_joined = "\n\n".join(body) + + construct_function = cpp_naming.function_name( + Identifier(f"construct_{verification.name}_program") + ) + + return ( + Stripped( + f"""\ +std::vector< +{I}std::unique_ptr +> {construct_function}() {{ +{I}{indent_but_first_line(body_joined, I)} +}}""" + ), + None, + ) + + +# fmt: off +@ensure( + lambda result: + not (result[0] is not None) or result[0].endswith('\n'), + "Trailing newline mandatory for valid end-of-files" +) +# fmt: on +def generate_implementation( + symbol_table: intermediate.SymbolTable, + library_namespace: Stripped, +) -> Tuple[Optional[str], Optional[List[Error]]]: + """Generate the C++ implementation of a virtual machine for matching regexes.""" + namespace = Stripped(f"{library_namespace}::{cpp_common.PATTERN_NAMESPACE}") + + include_prefix_path = cpp_common.generate_include_prefix_path(library_namespace) + + blocks = [ + cpp_common.WARNING, + Stripped( + f'''\ +#include "{include_prefix_path}/pattern.hpp" +#include "{include_prefix_path}/revm.hpp"''' + ), + cpp_common.generate_namespace_opening(namespace), + ] + + errors = [] # type: List[Error] + + for verification in symbol_table.verification_functions: + if not isinstance(verification, intermediate.PatternVerification): + continue + + block, error = _generate_construct_function(verification=verification) + if error is not None: + errors.append(error) + continue + else: + assert block is not None + blocks.append(block) + + program_name = cpp_naming.constant_name( + Identifier(f"{verification.name}_program") + ) + + construct_function = cpp_naming.function_name( + Identifier(f"construct_{verification.name}_program") + ) + + blocks.append( + Stripped( + f"""\ +const std::vector< +{I}std::unique_ptr +> {program_name} = {construct_function}();""" + ) + ) + + if len(errors) > 0: + return None, errors + + blocks.extend( + [ + cpp_common.generate_namespace_closing(namespace), + cpp_common.WARNING, + ] + ) + + writer = io.StringIO() + for i, block in enumerate(blocks): + if i > 0: + writer.write("\n\n") + + writer.write(block) + + writer.write("\n") + + return writer.getvalue(), None diff --git a/aas_core_codegen/cpp/revm/__init__.py b/aas_core_codegen/cpp/revm/__init__.py new file mode 100644 index 000000000..fc8ed47ed --- /dev/null +++ b/aas_core_codegen/cpp/revm/__init__.py @@ -0,0 +1,6 @@ +"""Generate C++ code of a virtual machine for matching regular expressions.""" + +from aas_core_codegen.cpp.revm import _generate + +generate_header = _generate.generate_header +generate_implementation = _generate.generate_implementation diff --git a/aas_core_codegen/cpp/revm/_generate.py b/aas_core_codegen/cpp/revm/_generate.py new file mode 100644 index 000000000..7d018625f --- /dev/null +++ b/aas_core_codegen/cpp/revm/_generate.py @@ -0,0 +1,1149 @@ +"""Generate C++ code of a virtual machine for matching regular expressions.""" + +import io + +from icontract import ensure + +from aas_core_codegen.common import ( + Stripped, +) +from aas_core_codegen.cpp import common as cpp_common +from aas_core_codegen.cpp.common import ( + INDENT as I, + INDENT2 as II, + INDENT3 as III, + INDENT4 as IIII, + INDENT5 as IIIII, + INDENT6 as IIIIII, + INDENT7 as IIIIIII, + INDENT8 as IIIIIIII, +) + + +# fmt: off +@ensure( + lambda result: + result.endswith('\n'), + "Trailing newline mandatory for valid end-of-files" +) +# fmt: on +def generate_header(library_namespace: Stripped) -> str: + """Generate the C++ header of a virtual machine for matching regexes.""" + namespace = Stripped(f"{library_namespace}::{cpp_common.REVM_NAMESPACE}") + + include_guard_var = cpp_common.include_guard_var(namespace) + + blocks = [ + Stripped( + f"""\ +#ifndef {include_guard_var} +#define {include_guard_var}""" + ), + cpp_common.WARNING, + Stripped( + """\ +#pragma warning(push, 0) +#include +#include +#include +#include +#pragma warning(pop)""" + ), + cpp_common.generate_namespace_opening(library_namespace), + Stripped( + f"""\ +/** + * \\defgroup {cpp_common.REVM_NAMESPACE} Match regular expressions using a multi-threaded virtual machine. + * + * The implementation in the standard library has exponential time complexity, so it was + * a major blocker for most of the practical inputs. For example, see this bug report: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93502 + * + * This implementation is based on Ken Thompson's approach which uses a virtual + * machine to match regular expressions. The original technique has been + * published in: + * Thompson, K., "Regular expression search algorithm", ACM 11(6) (June 1968) + * + * We followed a very clear and concise blog post which described in detail: + * https://swtch.com/~rsc/regexp/regexp2.html + * + * The ideas for additional instructions were taken from: + * https://www.codeproject.com/Articles/5256833/Regex-as-a-Tiny-Threaded-Virtual-Machine + * @{{ + */ +namespace {cpp_common.REVM_NAMESPACE} {{ + +enum class InstructionKind : std::uint8_t {{ +{I}Char, +{I}Set, +{I}NotSet, +{I}Any, +{I}Match, +{I}Jump, +{I}Split, +{I}End +}}; + +/** + * Represent an instruction of the virtual machine. + */ +struct Instruction {{ +{I}// NOTE (mristin): +{I}// We avoid RTTI for performance reasons, and use our own enumerator instead. +{I}virtual InstructionKind kind() const = 0; + +{I}virtual ~Instruction() = default; +}}; + +/** + * Match a single character. + * + * If the character on the String Pointer does not match the `character`, stop this + * thread as it failed. Otherwise, move the String Pointer to the next character, + * and the Program Counter to the next instruction. + */ +struct InstructionChar : Instruction {{ +{I}wchar_t character; + +{I}explicit InstructionChar(wchar_t a_character); +{I}InstructionKind kind() const override; +{I}~InstructionChar() override = default; +}}; + +std::string to_string(const InstructionChar& instruction); + +/** + * Define a character range. + */ +struct Range {{ +{I}wchar_t first; +{I}wchar_t last; + +{I}Range(wchar_t a_first, wchar_t a_last); +}}; + +std::string to_string(const Range& range); + +/** + * Check whether the character is in any of the given character ranges. + * + * @return true if the character is in any of the ranges + */ +bool CharacterInRanges( +{I}const std::vector& ranges, +{I}wchar_t character +); + +/** + * Match a set of characters. + * + * If the character on the String Pointer *is not* in the given set, stop this + * thread as it failed. Otherwise, move the String Pointer to the next character, + * and the Program Counter to the next instruction. + */ +struct InstructionSet : Instruction {{ +{I}std::vector ranges; + +{I}explicit InstructionSet(std::vector a_ranges); +{I}InstructionKind kind() const override; +{I}~InstructionSet() override = default; +}}; + +std::string to_string(const InstructionSet& instruction); + +/** + * Match an out-of-set character. + * + * If the character on the String Pointer *is* in the given set, stop this + * thread as it failed. Otherwise, move the String Pointer to the next character, + * and the Program Counter to the next instruction. + */ +struct InstructionNotSet : Instruction {{ +{I}std::vector ranges; + +{I}explicit InstructionNotSet(std::vector a_ranges); +{I}InstructionKind kind() const override; +{I}~InstructionNotSet() override = default; +}}; + +std::string to_string(const InstructionNotSet& instruction); + +/** + * Match any character. + */ +struct InstructionAny : Instruction {{ +{I}InstructionKind kind() const override; +{I}~InstructionAny() override = default; +}}; + +std::string to_string(const InstructionAny&); + +/** + * Stop this thread and signal that we found a match. + */ +struct InstructionMatch : Instruction {{ +{I}InstructionKind kind() const override; +{I}~InstructionMatch() override = default; +}}; + +std::string to_string(const InstructionMatch&); + +/** + * Jump to the indicated position in the program. + */ +struct InstructionJump : Instruction {{ +{I}size_t target; + +{I}explicit InstructionJump(size_t a_target); +{I}InstructionKind kind() const override; +{I}~InstructionJump() override = default; +}}; + +std::string to_string(const InstructionJump& instruction); + +/** + * Split the program in two threads, both jumping to different locations. The string + * pointer is kept as-is. + */ +struct InstructionSplit : Instruction {{ +{I}size_t first_target; +{I}size_t second_target; + +{I}explicit InstructionSplit(size_t a_first_target, size_t a_second_target); +{I}InstructionKind kind() const override; +{I}~InstructionSplit() override = default; +}}; + +std::string to_string(const InstructionSplit& instruction); + +/** + * Match the end-of-input. + */ +struct InstructionEnd : Instruction {{ +{I}InstructionKind kind() const override; +{I}~InstructionEnd() override = default; +}}; + +std::string to_string(const InstructionEnd&); + +std::string to_string(const Instruction& instruction); + +std::string to_string( +{I}const std::vector >& instructions +); + +/** + * Try to match the program against the text. + * @return true if the text matches + */ +bool Match( +{I}const std::vector >& program, +{I}const std::wstring& text +); + +}} // namespace {cpp_common.REVM_NAMESPACE} +/**@}}*/""" + ), + cpp_common.generate_namespace_closing(library_namespace), + cpp_common.WARNING, + Stripped(f"#endif // {include_guard_var}"), + ] + + writer = io.StringIO() + for i, block in enumerate(blocks): + if i > 0: + writer.write("\n\n") + + writer.write(block) + + writer.write("\n") + + return writer.getvalue() + + +# fmt: off +@ensure( + lambda result: + result.endswith('\n'), + "Trailing newline mandatory for valid end-of-files" +) +# fmt: on +def generate_implementation( + library_namespace: Stripped, +) -> str: + """Generate the C++ implementation of a virtual machine for matching regexes.""" + namespace = Stripped(f"{library_namespace}::{cpp_common.REVM_NAMESPACE}") + + include_prefix_path = cpp_common.generate_include_prefix_path(library_namespace) + + blocks = [ + cpp_common.WARNING, + Stripped( + f"""\ +#include "{include_prefix_path}/common.hpp" +#include "{include_prefix_path}/revm.hpp" + +#pragma warning(push, 0) +#include +#include +#include +#pragma warning(pop)""" + ), + cpp_common.generate_namespace_opening(namespace), + Stripped( + f"""\ +/** + * Represent the character such that it can be printed in the console. + * + * To that end, we escape the character if it is out of the printable ASCII set. + * + * This function is mostly meant for debugging purposes. + */ +std::string RepresentWCharacter(wchar_t character) {{ +{I}switch (character) {{ +{II}case L'\\\\':return "\\\\\\\\"; +{II}case L'"':return "\\\\\\""; +{II}case L'\\'':return "\\\\'"; +{II}case L'\\t':return "\\\\t"; +{II}case L'\\n':return "\\\\n"; +{II}case L'\\r':return "\\\\r"; +{II}default: break; +{I}}} + +{I}if (26 <= character && character <= 126) {{ +{II}return std::string(1, static_cast(character)); +{I}}} + +{I}static const char* digits = "0123456789ABCDEF"; +{I}size_t digit_count = sizeof(wchar_t) * 2; + +{I}std::string result; +{I}result.resize(digit_count + 2); +{I}result[0] = L'\\\\'; +{I}result[1] = L'u'; + +{I}for (size_t i = 0, j = (digit_count - 1) * 4; i < digit_count; ++i, j -= 4) {{ +{II}const size_t digit_i = (character >> j) & 0x0f; +{II}result[i + 2] = digits[digit_i]; +{I}}} + +{I}return result; +}} + +/** + * Represent the wide string for debugging purposes where it is printed to the console. + * + * To that end, we escape the individual characters if they are out of printable ASCII + * set. + */ +std::string RepresentWString(const std::wstring& text) {{ +{I}std::vector parts; +{I}parts.reserve(text.size()); +{I}for (const wchar_t character : text) {{ +{II}parts.emplace_back(RepresentWCharacter(character)); +{I}}} + +{I}size_t size = 0; +{I}for (const std::string& part : parts) {{ +{II}size += part.size(); +{I}}} + +{I}std::string result; +{I}result.reserve(size); +{I}for (const std::string& part : parts) {{ +{II}result.append(part); +{I}}} +{I}return result; +}} + +InstructionChar::InstructionChar( +{I}wchar_t a_character +) : +{I}character(a_character) {{ +{I}// Intentionally empty. +}} + +InstructionKind InstructionChar::kind() const {{ +{I}return InstructionKind::Char; +}} + +std::string to_string(const InstructionChar& instruction) {{ +{I}return common::Concat( +{II}"char '", +{II}RepresentWCharacter(instruction.character), +{II}"'" +{I}); +}} + +Range::Range( +{I}wchar_t a_first, +{I}wchar_t a_last +) : +{I}first(a_first), +{I}last(a_last) {{ +{I}// NOTE (mristin): +{I}// We are aware that exceptions in constructors should be avoided to prevent +{I}// bug related to uninitialized object state. However, in this case, we do not +{I}// see any risk for such a mistake. +{I}if (a_first > a_last) {{ +{II}throw std::invalid_argument( +{III}common::Concat( +{IIII}"The first character in a character range, ", +{IIII}RepresentWCharacter(a_first), +{IIII}", is larger than the last character in the range, ", +{IIII}RepresentWCharacter(a_last) +{III}) +{II}); +{I}}} +}} + +std::string to_string(const Range& range) {{ +{I}if (range.first == range.last) {{ +{II}return RepresentWCharacter(range.first); +{I}}} + +{I}return common::Concat( +{II}RepresentWCharacter(range.first), +{II}"-", +{II}RepresentWCharacter(range.last) +{I}); +}} + +InstructionSet::InstructionSet( +{I}std::vector a_ranges +) : +{I}ranges(std::move(a_ranges)) {{ +{I}// NOTE (mristin): +{I}// We are aware that exceptions in constructors should be avoided to prevent +{I}// bug related to uninitialized object state. However, in this case, we do not +{I}// see any risk for such a mistake. +{I}if (ranges.empty()) {{ +{II}throw std::invalid_argument( +{III}"Unexpected NotSet instruction with empty ranges" +{II}); +{I}}} + +{I}for (size_t i = 1; i < ranges.size(); ++i) {{ +{II}if (ranges[i - 1].last >= ranges[i].first) {{ +{III}throw std::invalid_argument( +{IIII}common::Concat( +{IIIII}"The ranges for an InstructionSet are unexpectedly either " +{IIIII}"not sorted or overlapping. The range at index ", +{IIIII}std::to_string(i - 1), +{IIIII}" is ", +{IIIII}to_string(ranges[i - 1]), +{IIIII}" and the range at index ", +{IIIII}std::to_string(i), +{IIIII}" is ", +{IIIII}to_string(ranges[i]) +{IIII}) +{III}); +{II}}} +{I}}} +}} + +InstructionKind InstructionSet::kind() const {{ +{I}return InstructionKind::Set; +}} + +std::string to_string(const InstructionSet& instruction) {{ +{I}std::stringstream ss; +{I}ss << "set '"; + +{I}for (const auto& range : instruction.ranges) {{ +{II}ss << to_string(range); +{I}}} + +{I}ss << "'"; +{I}return ss.str(); +}} + +InstructionNotSet::InstructionNotSet( +{I}std::vector a_ranges +) : +{I}ranges(std::move(a_ranges)) {{ +{I}// NOTE (mristin): +{I}// We are aware that exceptions in constructors should be avoided to prevent +{I}// bug related to uninitialized object state. However, in this case, we do not +{I}// see any risk for such a mistake. +{I}if (ranges.empty()) {{ +{II}throw std::invalid_argument( +{III}"Unexpected NotSet instruction with empty ranges" +{II}); +{I}}} + +{I}for (size_t i = 1; i < ranges.size(); ++i) {{ +{II}if (ranges[i - 1].last >= ranges[i].first) {{ +{III}throw std::invalid_argument( +{IIII}common::Concat( +{IIIII}"The ranges for an InstructionNotSet are unexpectedly either " +{IIIII}"not sorted or overlapping. The range at index ", +{IIIII}std::to_string(i - 1), +{IIIII}" is ", +{IIIII}to_string(ranges[i - 1]), +{IIIII}" and the range at index ", +{IIIII}std::to_string(i), +{IIIII}" is ", +{IIIII}to_string(ranges[i]) +{IIII}) +{III}); +{II}}} +{I}}} +}} + +InstructionKind InstructionNotSet::kind() const {{ +{I}return InstructionKind::NotSet; +}} + +std::string to_string(const InstructionNotSet& instruction) {{ +{I}std::stringstream ss; +{I}ss << "not-set '"; + +{I}for (const auto& range : instruction.ranges) {{ +{II}ss << to_string(range); +{I}}} + +{I}ss << "'"; +{I}return ss.str(); +}} + +InstructionKind InstructionAny::kind() const {{ +{I}return InstructionKind::Any; +}} + +std::string to_string(const InstructionAny&) {{ +{I}return "any"; +}} + +InstructionKind InstructionMatch::kind() const {{ +{I}return InstructionKind::Match; +}} + +std::string to_string(const InstructionMatch&) {{ +{I}return "match"; +}} + +InstructionJump::InstructionJump( +{I}size_t a_target +) : +{I}target(a_target) {{ +{I}// Intentionally empty. +}} + +InstructionKind InstructionJump::kind() const {{ +{I}return InstructionKind::Jump; +}} + +std::string to_string(const InstructionJump& instruction) {{ +{I}return common::Concat( +{II}"jump ", +{II}std::to_string(instruction.target) +{I}); +}} + +InstructionSplit::InstructionSplit( +{I}size_t a_first_target, +{I}size_t a_second_target +) : +{I}first_target(a_first_target), +{I}second_target(a_second_target) {{ +{I}// Intentionally empty. +}} + +InstructionKind InstructionSplit::kind() const {{ +{I}return InstructionKind::Split; +}} + +std::string to_string(const InstructionSplit& instruction) {{ +{I}return common::Concat( +{II}"split ", +{III}std::to_string(instruction.first_target), +{III}", ", +{III}std::to_string(instruction.second_target) +{I}); +}} + +InstructionKind InstructionEnd::kind() const {{ +{I}return InstructionKind::End; +}} + +std::string to_string(const InstructionEnd&) {{ +{I}return "end"; +}} + +std::string to_string(const Instruction& instruction) {{ +{I}switch (instruction.kind()) {{ +{II}case InstructionKind::Char: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionChar& +{IIII}>(instruction) +{III}); + +{II}case InstructionKind::Set: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionSet& +{IIII}>(instruction) +{III}); + +{II}case InstructionKind::NotSet: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionNotSet& +{IIII}>(instruction) +{III}); + +{II}case InstructionKind::Any: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionAny& +{IIII}>(instruction) +{III}); + +{II}case InstructionKind::Match: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionMatch& +{IIII}>(instruction) +{III}); + +{II}case InstructionKind::Jump: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionJump& +{IIII}>(instruction) +{III}); + +{II}case InstructionKind::Split: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionSplit& +{IIII}>(instruction) +{III}); + +{II}case InstructionKind::End: +{III}return to_string( +{IIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIII}const InstructionEnd& +{IIII}>(instruction) +{III}); + +{II}default: +{III}throw std::logic_error( +{IIII}common::Concat( +{IIIII}"Unhandled instruction kind: ", +{IIIII}std::to_string( +{IIIIII}static_cast(instruction.kind()) +{IIIII}) +{IIII}) +{III}); +{I}}} +}} + +std::string to_string( +{I}const std::vector >& instructions +) {{ +{I}std::stringstream ss; +{I}for (size_t i = 0; i < instructions.size(); ++i) {{ +{II}ss +{III}<< std::setw(4) << i << ": " +{III}<< to_string(*instructions[i]) << std::endl; +{I}}} + +{I}return ss.str(); +}} + +bool CharacterInRanges( +{I}const std::vector& ranges, +{I}wchar_t character +) {{ +{I}if (ranges.empty()) {{ +{II}return false; +{I}}} + +{I}if (ranges.size() == 1) {{ +{II}return (ranges[0].first <= character && character <= ranges[0].last); +{I}}} + +{I}// Binary search +{I}size_t begin = 0; +{I}size_t end = ranges.size(); + +{I}while (true) {{ +{II}if (begin == end) {{ +{III}return false; +{II}}} + +{II}// NOTE (mristin): +{II}// Most implementations of the binary search are buggy, see: +{II}// https://en.wikipedia.org/wiki/Binary_search_algorithm#Implementation_issues. +{II}// +{II}// We try to avert some of the bugs by explicitly handling the case where there +{II}// are at most 3 elements in the segment, so we stop here instead of proceeding +{II}// recursively. +{II}if (end - begin <= 3) {{ +{III}for (size_t i = begin; i < end; ++i) {{ +{IIII}const Range& range = ranges[i]; +{IIII}if (range.first <= character && character <= range.last) {{ +{IIIII}return true; +{IIII}}} +{III}}} +{III}return false; +{II}}} + +{II}const size_t middle = (begin + end) / 2; +{II}const Range& range = ranges[middle]; +{II}if (character < range.first) {{ +{III}end = middle; +{II}}} else if (character > range.last) {{ +{III}begin = middle; +{II}}} else {{ +{III}return true; +{II}}} +{I}}} +}} + +/** + * Keep track of the threads currently being executed. + */ +class ThreadList {{ + public: +{I}explicit ThreadList(size_t program_size) {{ +{II}has_.resize(program_size, false); +{II}items_.reserve(program_size); +{I}}} + +{I}/** +{I} * Add a new thread for the given program counter if it is not already in the list. +{I} */ +{I}void Spawn(size_t program_counter) {{ +{II}#ifdef DEBUG +{II}if (program_counter >= program_size_) {{ +{III}throw std::invalid_argument( +{IIII}common::Concat( +{IIIII}"Unexpected spawning of a thread at the program counter ", +{IIIII}std::to_string(program_counter), +{IIIII}" since the program size was indicated to be ", +{IIIII}std::to_string(program_size_) +{IIII}) +{III}); +{II}}} +{II}#endif + +{II}if (has_[program_counter]) {{ +{III}return; +{II}}} + +{II}has_[program_counter] = true; +{II}items_.push_back(program_counter); +{I}}} + +{I}bool Empty() const {{ +{II}return items_.empty(); +{I}}} + +{I}/** +{I} * Pop the thread from the back, returning its program counter. +{I} * +{I} * The order of the threads is not guaranteed. +{I} */ +{I}size_t Pop() {{ +{II}#ifdef DEBUG +{II}if (items_.empty()) {{ +{III}throw std::logic_error( +{IIII}"You tried to pop from an empty thread list." +{IIII}); +{II}}} +{II}#endif + +{II}const size_t program_counter = items_.back(); +{II}items_.pop_back(); +{II}has_[program_counter] = false; +{II}return program_counter; +{I}}} + +{I}/** +{I} * Clear the thread list, keeping its memory capacity. +{I} */ +{I}void Clear() {{ +{II}std::fill(has_.begin(), has_.end(), false); +{II}items_.clear(); +{I}}} + +{I}/** +{I} * Return the program counters corresponding to the spawned threads. +{I} */ +{I}const std::vector& Items() const {{ +{II}return items_; +{I}}}; + + private: +{I}/** +{I} * Keep track of the program counters corresponding to the threads so that we can +{I} * avoid the duplicate threads. +{I} */ +{I}std::vector has_; + +{I}/** +{I} * Keep track of the active threads. +{I} */ +{I}std::vector items_; +}}; + +std::string to_string(const ThreadList& thread_list) {{ +{I}if (thread_list.Empty()) {{ +{II}return "[]"; +{I}}} + +{I}std::vector items(thread_list.Items()); +{I}std::sort(items.begin(), items.end()); + +{I}std::stringstream ss; +{I}ss << "["; +{I}ss << std::to_string(items[0]); + +{I}for (size_t i = 1; i < items.size(); ++i) {{ +{II}ss << ", " << items[i]; +{I}}} +{I}ss << "]"; + +{I}return ss.str(); +}} + +/** + * Try to match the program against the text. + * + * @return true if the text matches + */ +bool Match( +{I}const std::vector >& program, +{I}const std::wstring& text +) {{ +{I}if (program.empty()) {{ +{II}return false; +{I}}} + +{I}// NOTE (mristin): +{I}// We validate at the beginning so that we can avoid checks in +{I}// the instruction loops. +{I}for (size_t i = 0; i < program.size(); ++i) {{ +{II}const Instruction& instruction = *program[i]; + +{II}switch (instruction.kind()) {{ +{III}case InstructionKind::Jump: {{ +{IIII}const auto& instruction_jump( +{IIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIII}const InstructionJump& +{IIIII}>( +{IIIIII}instruction +{IIIII}) +{IIII}); + +{IIII}if (instruction_jump.target >= program.size()) {{ +{IIIII}throw std::invalid_argument( +{IIIIII}common::Concat( +{IIIIIII}"Unexpected jump beyond the end of the program. Program has ", +{IIIIIII}std::to_string(program.size()), +{IIIIIII}" instruction(s), but the instruction ", +{IIIIIII}std::to_string(i), +{IIIIIII}" wants to jump to ", +{IIIIIII}std::to_string(instruction_jump.target) +{IIIIII}) +{IIIII}); +{IIII}}} +{IIII}break; +{III}}} + +{III}case InstructionKind::Split: {{ +{IIII}const auto& instruction_split( +{IIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIII}const InstructionSplit& +{IIIII}>( +{IIIIII}instruction +{IIIII}) +{IIII}); + +{IIII}if (instruction_split.first_target >= program.size()) {{ +{IIIII}throw std::invalid_argument( +{IIIIII}common::Concat( +{IIIIIII}"Unexpected split & jump beyond the end of the program. Program has ", +{IIIIIII}std::to_string(program.size()), +{IIIIIII}" instruction(s), but the instruction ", +{IIIIIII}std::to_string(i), +{IIIIIII}" wants to split and make the first jump to ", +{IIIIIII}std::to_string(instruction_split.first_target) +{IIIIII}) +{IIIII}); +{IIII}}} + +{IIII}if (instruction_split.second_target >= program.size()) {{ +{IIIII}throw std::invalid_argument( +{IIIIII}common::Concat( +{IIIIIII}"Unexpected split & jump beyond the end of the program. Program has ", +{IIIIIII}std::to_string(program.size()), +{IIIIIII}" instruction(s), but the instruction ", +{IIIIIII}std::to_string(i), +{IIIIIII}" wants to split and make the second jump to ", +{IIIIIII}std::to_string(instruction_split.second_target) +{IIIIII}) +{IIIII}); +{IIII}}} + +{IIII}break; +{III}}} + +{III}default: +{IIII}continue; +{II}}} +{I}}} + +{I}// NOTE (mristin): +{I}// See: https://swtch.com/~rsc/regexp/regexp2.html, +{I}// Section "Thompson's Implementation". + +{I}std::unique_ptr clist(std::make_unique(program.size())); +{I}std::unique_ptr nlist(std::make_unique(program.size())); + +{I}clist->Spawn(0); + +{I}for (const wchar_t character : text) {{ +{II}#ifdef DEBUG +{II}if (!nlist->Empty()) {{ +{III}throw std::logic_error( +{IIII}"Expected the list of next-to-be-executed threads to be empty, " +{IIII}"but it was not." +{III}); +{II}}} +{II}#endif + +{II}while (!clist->Empty()) {{ +{III}const size_t program_counter = clist->Pop(); + +{III}#ifdef DEBUG +{III}if (program_counter >= program.size()) {{ +{IIII}throw std::logic_error( +{IIIII}common::Concat( +{IIIIII}"Unexpected program counter beyond the program. The program size was ", +{IIIIII}std::to_string(program.size()), +{IIIIII}", while the program counter of a thread was ", +{IIIIII}std::to_string(program_counter) +{IIIII}) +{IIII}); +{III}}} +{III}#endif + +{III}const Instruction& instruction = *program[program_counter]; + +{III}switch (instruction.kind()) {{ +{IIII}case InstructionKind::Char: {{ +{IIIII}const auto& instruction_char( +{IIIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIIII}const InstructionChar& +{IIIIII}>(instruction) +{IIIII}); + +{IIIII}if (character != instruction_char.character) {{ +{IIIIII}// The matching failed for this thread. +{IIIIII}break; +{IIIII}}} + +{IIIII}nlist->Spawn(program_counter + 1); +{IIIII}break; +{IIII}}} + +{IIII}case InstructionKind::Set: {{ +{IIIII}const auto& instruction_set( +{IIIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIIII}const InstructionSet& +{IIIIII}>(instruction) +{IIIII}); + +{IIIII}if (!CharacterInRanges(instruction_set.ranges, character)) {{ +{IIIIII}// The matching failed for this thread. +{IIIIII}break; +{IIIII}}} + +{IIIII}nlist->Spawn(program_counter + 1); +{IIIII}break; +{IIII}}} + +{IIII}case InstructionKind::NotSet: {{ +{IIIII}const auto& instruction_not_set( +{IIIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIIII}const InstructionNotSet& +{IIIIII}>(instruction) +{IIIII}); + +{IIIII}if (CharacterInRanges(instruction_not_set.ranges, character)) {{ +{IIIIII}// The matching failed for this thread. +{IIIIII}break; +{IIIII}}} + +{IIIII}nlist->Spawn(program_counter + 1); +{IIIII}break; +{IIII}}} + +{IIII}case InstructionKind::Any: {{ +{IIIII}// NOTE (mristin): +{IIIII}// We simply proceed to the next instruction at the next character without +{IIIII}// any checks. +{IIIII}nlist->Spawn(program_counter + 1); +{IIIII}break; +{IIII}}} + +{IIII}case InstructionKind::Match: +{IIIII}return true; + +{IIII}case InstructionKind::Jump: {{ +{IIIII}const auto& instruction_jump( +{IIIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIIII}const InstructionJump& +{IIIIII}>(instruction) +{IIIII}); + +{IIIII}clist->Spawn(instruction_jump.target); +{IIIII}break; +{IIII}}} + +{IIII}case InstructionKind::Split: {{ +{IIIII}const auto& instruction_split( +{IIIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIIII}const InstructionSplit& +{IIIIII}>(instruction) +{IIIII}); + +{IIIII}clist->Spawn(instruction_split.first_target); +{IIIII}clist->Spawn(instruction_split.second_target); +{IIIII}break; +{IIII}}} + +{IIII}case InstructionKind::End: {{ +{IIIII}// The matching failed for this thread as we have just consumed +{IIIII}// a character. +{IIIII}break; +{IIII}}} + +{IIII}default: +{IIIII}throw std::logic_error( +{IIIIII}common::Concat( +{IIIIIII}"Unhandled instruction kind: ", +{IIIIIII}std::to_string( +{IIIIIIII}static_cast(instruction.kind()) +{IIIIIII}) +{IIIIII}) +{IIIII}); +{III}}} +{II}}} + +{II}std::swap(clist, nlist); +{II}nlist->Clear(); +{I}}} + +{I}// NOTE (mristin): +{I}// We need to process any pending jumps, splits and matches even tough there are +{I}// no more characters to consume. +{I}while (!clist->Empty()) {{ +{II}const size_t program_counter = clist->Pop(); + +{II}#ifdef DEBUG +{II}if (program_counter >= program.size()) {{ +{III}throw std::logic_error( +{IIII}common::Concat( +{IIIII}"Unexpected program counter beyond the program. The program size was ", +{IIIII}std::to_string(program.size()), +{IIIII}", while the program counter of a thread was ", +{IIIII}std::to_string(program_counter) +{IIII}) +{III}); +{II}}} +{II}#endif + +{II}const Instruction& instruction = *program[program_counter]; + +{II}switch (instruction.kind()) {{ +{III}case InstructionKind::Char: {{ // NOLINT(bugprone-branch-clone) +{IIII}// We reached the end-of-input so there are no characters to be matched. +{IIII}// This thread needs therefore to die. +{IIII}break; +{III}}} + +{III}case InstructionKind::Set: {{ +{IIII}// We reached the end-of-input so there are no character sets to be matched. +{IIII}// This thread needs therefore to die. +{IIII}break; +{III}}} + +{III}case InstructionKind::NotSet: {{ +{IIII}// We reached the end-of-input so there are no character sets to be matched. +{IIII}// This thread needs therefore to die. +{IIII}break; +{III}}} + +{III}case InstructionKind::Any: {{ +{IIII}// We reached the end-of-input so there are no characters to be matched. +{IIII}// This thread needs therefore to die. +{IIII}break; +{III}}} + +{III}case InstructionKind::Match: +{IIII}return true; + +{III}case InstructionKind::Jump: {{ +{IIII}const auto& instruction_jump( +{IIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIII}const InstructionJump& +{IIIII}>(instruction) +{IIII}); + +{IIII}clist->Spawn(instruction_jump.target); +{IIII}break; +{III}}} + +{III}case InstructionKind::Split: {{ +{IIII}const auto& instruction_split( +{IIIII}static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) +{IIIIII}const InstructionSplit& +{IIIII}>(instruction) +{IIII}); + +{IIII}clist->Spawn(instruction_split.first_target); +{IIII}clist->Spawn(instruction_split.second_target); +{IIII}break; +{III}}} + +{III}case InstructionKind::End: {{ +{IIII}// We reached the end-of-input so we match and move to the next instruction. +{IIII}clist->Spawn(program_counter + 1); +{IIII}break; +{III}}} + +{III}default: +{IIII}throw std::logic_error( +{IIIII}common::Concat( +{IIIIII}"Unhandled instruction kind: ", +{IIIIII}std::to_string( +{IIIIIII}static_cast(instruction.kind()) +{IIIIII}) +{IIIII}) +{IIII}); +{II}}} +{I}}} + +{I}return false; +}}""" + ), + cpp_common.generate_namespace_closing(namespace), + cpp_common.WARNING, + ] + + writer = io.StringIO() + for i, block in enumerate(blocks): + if i > 0: + writer.write("\n\n") + + writer.write(block) + + writer.write("\n") + + return writer.getvalue() diff --git a/aas_core_codegen/cpp/verification/_generate.py b/aas_core_codegen/cpp/verification/_generate.py index f77d22718..78b93082c 100644 --- a/aas_core_codegen/cpp/verification/_generate.py +++ b/aas_core_codegen/cpp/verification/_generate.py @@ -1,5 +1,4 @@ """Generate the C++ verification functions.""" -import enum import io from typing import ( Optional, @@ -9,7 +8,6 @@ Sequence, Mapping, Final, - Set, ) from icontract import ensure, require @@ -37,10 +35,9 @@ INDENT2 as II, INDENT3 as III, INDENT4 as IIII, - INDENT5 as IIIII, ) from aas_core_codegen.intermediate import type_inference as intermediate_type_inference -from aas_core_codegen.parse import tree as parse_tree, retree as parse_retree +from aas_core_codegen.parse import tree as parse_tree from aas_core_codegen.yielding import flow as yielding_flow @@ -230,6 +227,7 @@ def generate_header( f"""\ #include "{include_prefix_path}/common.hpp" #include "{include_prefix_path}/iteration.hpp" +#include "{include_prefix_path}/pattern.hpp" #include "{include_prefix_path}/types.hpp" #pragma warning(push, 0) @@ -2005,319 +2003,10 @@ class RecursiveVerificator : public impl::IVerificator {{ return blocks -class _RegexRendererForUTF16(parse_retree.Renderer): - """Render the regular expressions for C++ consisting of only 2-byte characters.""" - - def char_to_str_and_escape_or_encode_if_necessary( - self, node: parse_retree.Char, escaping: Mapping[str, str] - ) -> List[Union[str, parse_tree.FormattedValue]]: - """Convert the ``node`` to a string, and escape and/or encode appropriately.""" - if not node.explicitly_encoded: - escaped = escaping.get(node.character, None) - if escaped is not None: - result: List[Union[str, parse_tree.FormattedValue]] = [escaped] - else: - result = [node.character] - - return result - else: - code = ord(node.character) - - if code <= 255: - return [f"\\x{code:02x}"] - elif code <= 65535: - # NOTE (mristin, 2023-10-18): - # We have to escape, i.e., use ``\\u{code}`` instead of ``\u{code}`` - # since the regex engine in C++ can work with it, but the C++ compiler - # complains if we do not supply valid Unicode code points. - return [f"\\u{code:04x}"] - else: - raise AssertionError( - f"No code points expected above 65535, but got: {code} " - f"for character {node.character!r}" - ) - - -_REGEX_RENDERER_FOR_UTF16 = _RegexRendererForUTF16() - - -class _RegexRendererForUTF32(parse_retree.Renderer): - """Render the regular expressions for C++ consisting of 4-byte characters.""" - - def char_to_str_and_escape_or_encode_if_necessary( - self, node: parse_retree.Char, escaping: Mapping[str, str] - ) -> List[Union[str, parse_tree.FormattedValue]]: - """Convert the ``node`` to a string, and escape and/or encode appropriately.""" - if not node.explicitly_encoded: - escaped = escaping.get(node.character, None) - if escaped is not None: - result: List[Union[str, parse_tree.FormattedValue]] = [escaped] - else: - result = [node.character] - - return result - else: - code = ord(node.character) - - if code <= 255: - return [f"\\x{code:02x}"] - else: - # NOTE (mristin, 2023-10-18): - # We assume here that the character will be escaped in the wstring - # literal in ``cpp_common.wstring_literal``. - return [node.character] - - -_REGEX_RENDERER_FOR_UTF32 = _RegexRendererForUTF32() - - -class _WstringEncoding(enum.Enum): - UTF16 = "UTF16" - UTF32 = "UTF32" - - -class _PatternVerificationTranspiler( - parse_tree.RestrictedTransformer[Tuple[Optional[Stripped], Optional[Error]]] -): - """Transpile a statement of a pattern verification into C++.""" - - def __init__(self, wstring_encoding: _WstringEncoding) -> None: - """Initialize with the given values.""" - self.wstring_encoding = wstring_encoding - self.defined_variable_set = set() # type: Set[Identifier] - - def _fix_regex_in_place(self, regex: parse_retree.Regex) -> None: - """Fix the regex in-place to conform to the wstring encoding.""" - if self.wstring_encoding is _WstringEncoding.UTF16: - parse_retree.fix_for_utf16_regex_in_place(regex) - - def _render_regex( - self, regex: parse_retree.Regex - ) -> List[Union[str, parse_tree.FormattedValue]]: - """Render the regular expression to parts of a joined string.""" - if self.wstring_encoding is _WstringEncoding.UTF16: - return parse_retree.render(regex=regex, renderer=_REGEX_RENDERER_FOR_UTF16) - - elif self.wstring_encoding is _WstringEncoding.UTF32: - return parse_retree.render(regex=regex, renderer=_REGEX_RENDERER_FOR_UTF32) - - else: - assert_never(self.wstring_encoding) - - @ensure(lambda result: (result[0] is not None) ^ (result[1] is not None)) - def _transform_joined_str_values( - self, values: Sequence[Union[str, parse_tree.FormattedValue]] - ) -> Tuple[Optional[Stripped], Optional[Error]]: - """Transform the values of a joined string to a Python string literal.""" - # If we do not need interpolation, simply return the string literals - # joined together. - needs_interpolation = any( - isinstance(value, parse_tree.FormattedValue) for value in values - ) - if not needs_interpolation: - return ( - Stripped( - cpp_common.wstring_literal( - "".join(value for value in values) # type: ignore - ) - ), - None, - ) - - args = [] # type: List[Stripped] - - for value in values: - if isinstance(value, str): - args.append(cpp_common.wstring_literal(value)) - - elif isinstance(value, parse_tree.FormattedValue): - code, error = self.transform(value.value) - if error is not None: - return None, error - - assert code is not None - - assert ( - "\n" not in code - ), f"New-lines are not expected in formatted values, but got: {code}" - - args.append(code) - else: - assert_never(value) - - if len(args) == 1: - return args[0], None - - args_joined = ",\n".join(args) - return ( - Stripped( - f"""\ -common::Concat( -{I}{indent_but_first_line(args_joined, I)} -)""" - ), - None, - ) - - @ensure(lambda result: (result[0] is not None) ^ (result[1] is not None)) - def transform_constant( - self, node: parse_tree.Constant - ) -> Tuple[Optional[Stripped], Optional[Error]]: - if isinstance(node.value, str): - # NOTE (mristin, 2023-10-18): - # We assume that all the string constants are valid regular expressions. - - regex, parse_error = parse_retree.parse(values=[node.value]) - if parse_error is not None: - regex_line, pointer_line = parse_retree.render_pointer( - parse_error.cursor - ) - - return ( - None, - Error( - node.original_node, - f"The string constant could not be parsed " - f"as a regular expression: \n" - f"{parse_error.message}\n" - f"{regex_line}\n" - f"{pointer_line}", - ), - ) - - assert regex is not None - self._fix_regex_in_place(regex=regex) - - # NOTE (mristin, 2023-10-18): - # Strictly speaking, this is a joined string with a single value, a string - # literal. - return self._transform_joined_str_values( - values=self._render_regex(regex=regex) - ) - else: - raise AssertionError(f"Unexpected {node=}") - - @ensure(lambda result: (result[0] is not None) ^ (result[1] is not None)) - def transform_name( - self, node: parse_tree.Name - ) -> Tuple[Optional[Stripped], Optional[Error]]: - return Stripped(cpp_naming.variable_name(node.identifier)), None - - @ensure(lambda result: (result[0] is not None) ^ (result[1] is not None)) - def transform_joined_str( - self, node: parse_tree.JoinedStr - ) -> Tuple[Optional[Stripped], Optional[Error]]: - regex, parse_error = parse_retree.parse(values=node.values) - if parse_error is not None: - regex_line, pointer_line = parse_retree.render_pointer(parse_error.cursor) - - return ( - None, - Error( - node.original_node, - f"The joined string could not be parsed " - f"as a regular expression: \n" - f"{parse_error.message}\n" - f"{regex_line}\n" - f"{pointer_line}", - ), - ) - - assert regex is not None - self._fix_regex_in_place(regex=regex) - - return self._transform_joined_str_values(values=self._render_regex(regex=regex)) - - def transform_assignment( - self, node: parse_tree.Assignment - ) -> Tuple[Optional[Stripped], Optional[Error]]: - assert isinstance(node.target, parse_tree.Name) - variable = cpp_naming.variable_name(node.target.identifier) - code, error = self.transform(node.value) - if error is not None: - return None, error - assert code is not None - - if variable in self.defined_variable_set: - return Stripped(f"{variable} = {code};"), None - - self.defined_variable_set.add(variable) - return Stripped(f"std::wstring {variable} = {code};"), None - - -@ensure(lambda result: (result[0] is not None) ^ (result[1] is not None)) def _generate_pattern_verification_implementation( verification: intermediate.PatternVerification, -) -> Tuple[Optional[List[Stripped]], Optional[Error]]: +) -> Stripped: """Generate the implementation of the given pattern verification function.""" - # NOTE (mristin, 2023-10-18): - # We assume that we performed all the checks at the intermediate stage. - - errors = [] # type: List[Error] - - transpiler_utf16 = _PatternVerificationTranspiler( - wstring_encoding=_WstringEncoding.UTF16 - ) - stmts_utf16 = [] # type: List[Stripped] - - for i, stmt in enumerate(verification.parsed.body): - # NOTE (mristin, 2023-10-18): - # We will transpile the return statement separately. - if i == len(verification.parsed.body) - 1: - break - - code, error = transpiler_utf16.transform(stmt) - if error is not None: - errors.append(error) - else: - assert code is not None - stmts_utf16.append(code) - - pattern_expr_utf16, error = transpiler_utf16.transform(verification.pattern_expr) - if error is not None: - errors.append(error) - - transpiler_utf32 = _PatternVerificationTranspiler( - wstring_encoding=_WstringEncoding.UTF32 - ) - stmts_utf32 = [] # type: List[Stripped] - - for i, stmt in enumerate(verification.parsed.body): - # NOTE (mristin, 2023-10-18): - # We will transpile the return statement separately. - if i == len(verification.parsed.body) - 1: - break - - code, error = transpiler_utf32.transform(stmt) - if error is not None: - errors.append(error) - else: - assert code is not None - stmts_utf32.append(code) - - pattern_expr_utf32, error = transpiler_utf32.transform(verification.pattern_expr) - if error is not None: - errors.append(error) - - if len(errors) > 0: - return None, Error( - verification.parsed.node, - f"Failed to transpile verification function {verification.name!r}", - errors, - ) - - assert pattern_expr_utf16 is not None - assert pattern_expr_utf32 is not None - - construct_name = cpp_naming.function_name( - Identifier(f"construct_{verification.name}") - ) - - stmts_utf16_joined = "\n".join(stmts_utf16) - stmts_utf32_joined = "\n".join(stmts_utf32) - - regex_name = cpp_naming.constant_name(Identifier(f"regex_{verification.name}")) - assert len(verification.arguments) == 1 arg = verification.arguments[0] @@ -2328,79 +2017,20 @@ def _generate_pattern_verification_implementation( verification_name = cpp_naming.function_name(verification.name) - blocks: List[Stripped] + program_name = cpp_naming.constant_name(Identifier(f"{verification.name}_program")) - if ( - stmts_utf16_joined == stmts_utf32_joined - and pattern_expr_utf16 == pattern_expr_utf32 - ): - blocks = [ - Stripped( - f"""\ -std::wregex {construct_name}() {{ -{I}{indent_but_first_line(stmts_utf16_joined, I)} -{I}return std::wregex( -{II}{indent_but_first_line(pattern_expr_utf16, II)} -{I}); -}}""" - ) - ] - else: - blocks = [ - Stripped( - f"""\ -std::wregex {construct_name}() {{ -{I}static_assert( -{II}sizeof(wchar_t) == 2 || sizeof(wchar_t) == 4, -{II}"Expected either 2 or 4 bytes for wchar_t, but got something else." -{I}); - -{I}switch (sizeof(wchar_t)) {{ -{II}case 2: {{ -{III}{indent_but_first_line(stmts_utf16_joined, III)} -{III}return std::wregex( -{IIII}{indent_but_first_line(pattern_expr_utf16, IIII)} -{III}); -{II}}} - -{II}case 4: {{ -{III}{indent_but_first_line(stmts_utf32_joined, III)} -{III}return std::wregex( -{IIII}{indent_but_first_line(pattern_expr_utf32, IIII)} -{III}); -{II}}} - -{II}default: -{III}throw std::logic_error( -{IIII}common::Concat( -{IIIII}"Unexpected size of wchar_t: ", -{IIIII}std::to_string(sizeof(wchar_t)) -{IIII}) -{III}); -{I}}} -}}""" - ) - ] - - blocks.extend( - [ - Stripped(f"const std::wregex {regex_name} = {construct_name}();"), - Stripped( - f"""\ + return Stripped( + f"""\ bool {verification_name}( {I}{indent_but_first_line(arg_type, I)} {arg_name} ) {{ -{I}return std::regex_search( -{II}{arg_name}, -{II}{regex_name} +{I}return revm::Match( +{II}pattern::{program_name}, +{II}{arg_name} {I}); }}""" - ), - ] ) - return blocks, None - class _TranspilableVerificationTranspiler(cpp_transpilation.Transpiler): """Transpile the body of a :class:`TranspilableVerification`.""" @@ -3272,11 +2902,12 @@ def generate_implementation( f"""\ #include "{include_prefix_path}/common.hpp" #include "{include_prefix_path}/constants.hpp" +#include "{include_prefix_path}/pattern.hpp" +#include "{include_prefix_path}/revm.hpp" #include "{include_prefix_path}/verification.hpp" #pragma warning(push, 0) #include -#include #include #pragma warning(pop)""" ), @@ -3290,19 +2921,12 @@ def generate_implementation( for verification in symbol_table.verification_functions: if isinstance(verification, intermediate.PatternVerification): - ( - verification_blocks, - error, - ) = _generate_pattern_verification_implementation( - verification=verification + blocks.append( + _generate_pattern_verification_implementation( + verification=verification + ) ) - if error is not None: - errors.append(error) - else: - assert verification_blocks is not None - blocks.extend(verification_blocks) - elif isinstance(verification, intermediate.TranspilableVerification): block, error = _generate_implementation_of_transpilable_verification( verification=verification, diff --git a/aas_core_codegen/intermediate/revm.py b/aas_core_codegen/intermediate/revm.py new file mode 100644 index 000000000..da60f5238 --- /dev/null +++ b/aas_core_codegen/intermediate/revm.py @@ -0,0 +1,987 @@ +""" +Transpile the regular expressions to instructions of a Virtual Machine. + +The implementation in the standard library has exponential time complexity, so it was +a major blocker for most of the practical inputs. For example, see this bug report: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93502 + +The virtual machine is based on Ken Thompson's approach published in: +Thompson, K., "Regular expression search algorithm", ACM 11(6) (June 1968) + +We followed a very clear and concise blog post which described it in detail: +https://swtch.com/~rsc/regexp/regexp2.html + +The ideas for additional instructions were taken from: +https://www.codeproject.com/Articles/5256833/Regex-as-a-Tiny-Threaded-Virtual-Machine +""" +import dataclasses +import io +from typing import ( + Final, + cast, + List, + Optional, + Union, + Tuple, + TextIO, + MutableMapping, + Sequence, +) + +from icontract import require + +from aas_core_codegen.common import assert_never, pairwise +from aas_core_codegen.parse import retree as parse_retree, tree as parse_tree + + +class Character(str): + """Represent a single character.""" + + @require(lambda text: len(text) == 1) + def __new__(cls, text: str) -> "Character": + return cast(Character, text) + + +@dataclasses.dataclass +class InstructionChar: + """Match a single character.""" + + character: Character + + +class Range: + """Define a character range.""" + + first: Final[Character] + last: Final[Character] + + # fmt: off + @require( + lambda first, last: ord(first) <= ord(last), + "Range boundaries must be sorted." + ) + # fmt: on + def __init__(self, first: Character, last: Character) -> None: + """Initialize with the given values.""" + self.first = first + self.last = last + + def __str__(self) -> str: + return f"{self.__class__.__name__}({self.first!r}, {self.last!r})" + + +def check_ranges_sorted_and_non_overlapping(ranges: Sequence[Range]) -> Optional[str]: + """ + Check that the ranges' boundaries are sorted and non-overlapping. + + If there are no errors, return ``None``. Otherwise, return a message explaining + what precisely was not satisfied. + """ + for this_range, next_range in pairwise(ranges): + if ord(this_range.first) >= ord(next_range.last): + return ( + f"The range {this_range} and its next range {next_range} " + f"are not in sorted order." + ) + + if ord(this_range.last) >= ord(next_range.first): + return f"The range {this_range} and its next range {next_range} overlap." + + return None + + +class InstructionSet: + """Match a set of characters.""" + + ranges: Final[Sequence[Range]] + + @require(lambda ranges: check_ranges_sorted_and_non_overlapping(ranges) is None) + def __init__(self, ranges: Sequence[Range]) -> None: + """Initialize with the given values.""" + self.ranges = ranges + + def __str__(self) -> str: + return f"{self.__class__.__name__}({self.ranges!r})" + + +class InstructionNotSet: + """Match an out-of-set character.""" + + ranges: Final[Sequence[Range]] + + @require(lambda ranges: check_ranges_sorted_and_non_overlapping(ranges) is None) + def __init__(self, ranges: Sequence[Range]) -> None: + """Initialize with the given values.""" + self.ranges = ranges + + def __str__(self) -> str: + return f"{self.__class__.__name__}({self.ranges!r})" + + +@dataclasses.dataclass +class InstructionAny: + """Match any character.""" + + +@dataclasses.dataclass +class InstructionMatch: + """Stop the thread and signal that we found a match.""" + + +@dataclasses.dataclass +class InstructionJump: + """Jump to the indicated position in the program.""" + + target: int + + +@dataclasses.dataclass +class InstructionSplit: + """Split the program in two threads, both jumping to different locations.""" + + first_target: int + second_target: int + + +@dataclasses.dataclass +class InstructionEnd: + """Match the end-of-input.""" + + +@dataclasses.dataclass +class _InstructionNoop: + """ + Represent a no-operation instruction which does nothing. + + This is used only as a place-holder during the translation. + """ + + +Instruction = Union[ + InstructionChar, + InstructionSet, + InstructionNotSet, + InstructionAny, + InstructionMatch, + InstructionJump, + InstructionSplit, + InstructionEnd, +] + + +# NOTE (mristin): +# The classes ``_Leaf`` and ``_Node`` correspond to the translation phase, while +# the classes ``Leaf`` and ``Node`` are used to represent the final result. + + +@dataclasses.dataclass +class _Leaf: + """Represent a leaf node in the nested instruction tree during compilation.""" + + instruction: Union[Instruction, _InstructionNoop] + label: Optional[int] = None + + +@dataclasses.dataclass +class _Node: + """Represent nested instructions during compilation.""" + + re_node: parse_retree.Node + children: List["_NodeOrLeaf"] + + +_NodeOrLeaf = Union[_Node, _Leaf] + + +@dataclasses.dataclass +class Leaf: + """Represent a leaf node in the nested instruction tree.""" + + instruction: Instruction + label: Optional[int] = None + + +@dataclasses.dataclass +class Node: + """Represent nested instructions related to a part of the regular expression.""" + + re_node: parse_retree.Node + children: List["NodeOrLeaf"] + + +NodeOrLeaf = Union[Node, Leaf] + + +class _CheckForFormattedValue(parse_retree.PassThroughVisitor): + """Check that no ``FormattedValue`` is contained in a pattern.""" + + def __init__(self) -> None: + self.has_formatted_value = False + + def visit_term(self, node: parse_retree.Term) -> None: + if isinstance(node.value, parse_tree.FormattedValue): + self.has_formatted_value = True + + super().visit_term(node) + + +class _CheckForNonGreedyQuantifiers(parse_retree.PassThroughVisitor): + """Check for presence of non-greedy quantifiers in a pattern.""" + + def __init__(self) -> None: + self.has_non_greedy_quantifiers = False + + def visit_quantifier(self, node: parse_retree.Quantifier) -> None: + if node.non_greedy: + self.has_non_greedy_quantifiers = True + + super().visit_quantifier(node) + + +class _RegexRenderer(parse_retree.Renderer): + """ + Render regex patterns for readable comments. + + In contrast to :py:class:`parse_retree.Renderer`, we also render + the :py:class:`parse_retree.Char` as we need to cover the granularity of a single + character in this module. + """ + + def transform_char( + self, node: parse_retree.Char + ) -> List[Union[str, parse_tree.FormattedValue]]: + return self.char_to_str_and_escape_or_encode_if_necessary( + node=node, escaping=parse_retree.Renderer._ESCAPING_IN_CHARACTER_LITERALS + ) + + +_REGEX_RENDERER = _RegexRenderer() + + +def _render_re_node(re_node: parse_retree.Node) -> str: + """Render the pattern as a string for comments.""" + parts = _REGEX_RENDERER.transform(re_node) + assert all( + isinstance(part, str) for part in parts + ), f"Expected all rendered parts to be strings, but got: {parts}" + + return "".join(parts) # type: ignore + + +class _Translator(parse_retree.Transformer[_Node]): + """Translate the regular expression to nested instructions.""" + + def __init__(self) -> None: + self._next_label = 0 + + def _obtain_label(self) -> int: + """ + Return the current next label, and increment it for the next call. + + Do not fiddle with :py:attr:`_next_label` yourself; use this function. + """ + result = self._next_label + self._next_label += 1 + return result + + def transform_union_expr(self, node: parse_retree.UnionExpr) -> _Node: + if len(node.uniates) == 0: + return _Node(re_node=node, children=[_Leaf(instruction=_InstructionNoop())]) + elif len(node.uniates) == 1: + return self.transform(node.uniates[0]) + else: + pass + + children = [] # type: List[_NodeOrLeaf] + + final_label = self._obtain_label() + + for i, uniate in enumerate(node.uniates): + if i < len(node.uniates) - 1: + l0 = self._obtain_label() + l1 = self._obtain_label() + + children.append( + _Leaf(InstructionSplit(first_target=l0, second_target=l1)) + ) + + children.append(_Leaf(_InstructionNoop(), label=l0)) + + children.append(self.transform(uniate)) + + children.append(_Leaf(InstructionJump(target=final_label))) + + children.append(_Leaf(_InstructionNoop(), label=l1)) + else: + children.append(self.transform(uniate)) + + children.append(_Leaf(_InstructionNoop(), label=final_label)) + + return _Node(re_node=node, children=children) + + def transform_concatenation(self, node: parse_retree.Concatenation) -> _Node: + if len(node.concatenants) == 0: + return _Node(re_node=node, children=[_Leaf(instruction=_InstructionNoop())]) + + elif len(node.concatenants) == 1: + return self.transform(node=node.concatenants[0]) + + else: + return _Node( + re_node=node, + children=[ + self.transform(concatenant) for concatenant in node.concatenants + ], + ) + + def transform_symbol(self, node: parse_retree.Symbol) -> _Node: + if node.kind is parse_retree.SymbolKind.START: + raise AssertionError( + "We expect that the caller skipped the start anchor " + "as we always expect the patterns to be anchored at start, and there " + "is no matching to be done against the start anchor. We decided " + "against introduction of a no-op instruction since that only eats up " + "resources, which we can avoid with a bit of smartness in " + "the transpilation phase." + ) + + elif node.kind is parse_retree.SymbolKind.END: + return _Node(re_node=node, children=[_Leaf(instruction=InstructionEnd())]) + + elif node.kind is parse_retree.SymbolKind.DOT: + return _Node( + re_node=node, + children=[_Leaf(instruction=InstructionAny())], + ) + + else: + assert_never(node.kind) + + def transform_term(self, node: parse_retree.Term) -> _Node: + assert not isinstance(node.value, parse_tree.FormattedValue), ( + "Unexpected formatted value in the regular expression to be " + "transformed into a program for Regex Virtual Machine. " + "This should have been checked before. " + f"The formatted value is: {parse_tree.dump(node.value)}" + ) + + if node.quantifier is not None: + if node.quantifier.non_greedy: + raise AssertionError( + "(mristin, 2024-06-04) Only non-greedy quantifiers are currently " + "translated to a program for a RegEx virtual machine. We did not " + "cover non-greedy quantifiers for simplicity, as we currently have " + "no meta-model where they are required. The presence of non-greedy " + "quantifiers should have been caught before, as we explicitly " + "check for them when transpiling a meta-model. Please report " + "this exception to the developers as a bug." + ) + + if node.quantifier.minimum == 1 and node.quantifier.maximum == 1: + return self.transform(node.value) + + children = [] # type: List[_NodeOrLeaf] + + if node.quantifier.maximum is not None: + for _ in range(0, node.quantifier.minimum): + children.append(self.transform(node.value)) + + optional_count = node.quantifier.maximum - node.quantifier.minimum + if optional_count > 0: + final_label = self._obtain_label() + + for _ in range(optional_count): + l1 = self._obtain_label() + children.append( + _Leaf( + InstructionSplit( + first_target=l1, second_target=final_label + ) + ) + ) + children.append(_Leaf(_InstructionNoop(), label=l1)) + children.append(self.transform(node.value)) + + children.append(_Leaf(_InstructionNoop(), label=final_label)) + else: + if node.quantifier.minimum == 0: + l1 = self._obtain_label() + l2 = self._obtain_label() + final_label = self._obtain_label() + + children.append( + _Leaf( + InstructionSplit( + first_target=l2, second_target=final_label + ), + label=l1, + ) + ) + + children.append(_Leaf(_InstructionNoop(), label=l2)) + children.append(self.transform(node.value)) + children.append(_Leaf(InstructionJump(target=l1))) + + children.append(_Leaf(_InstructionNoop(), label=final_label)) + + else: + # NOTE (mristin): + # The last mandatory repetition will be used for the unbounded loop. + for _ in range(0, node.quantifier.minimum - 1): + children.append(self.transform(node.value)) + + l1 = self._obtain_label() + final_label = self._obtain_label() + + children.append(_Leaf(_InstructionNoop(), label=l1)) + children.append(self.transform(node.value)) + children.append( + _Leaf( + InstructionSplit(first_target=l1, second_target=final_label) + ) + ) + children.append(_Leaf(_InstructionNoop(), label=final_label)) + + return _Node(re_node=node, children=children) + + else: + return self.transform(node.value) + + def transform_group(self, node: parse_retree.Group) -> _Node: + return self.transform(node.union) + + def transform_char(self, node: parse_retree.Char) -> _Node: + return _Node( + re_node=node, + children=[ + _Leaf(instruction=InstructionChar(character=Character(node.character))) + ], + ) + + def transform_quantifier(self, node: parse_retree.Quantifier) -> _Node: + raise AssertionError( + f"Expected the quantifier to be already handled " + f"in {_Translator.transform_term.__name__}. We should have never gotten " + f"here." + ) + + def transform_char_set(self, node: parse_retree.CharSet) -> _Node: + ranges = [ + Range( + first=Character(re_range.start.character), + last=( + Character(re_range.end.character) + if re_range.end is not None + else Character(re_range.start.character) + ), + ) + for re_range in node.ranges + ] + + ranges.sort(key=lambda rng: rng.first) + + if node.complementing: + return _Node( + re_node=node, + children=[_Leaf(instruction=InstructionNotSet(ranges=ranges))], + ) + else: + return _Node( + re_node=node, + children=[_Leaf(instruction=InstructionSet(ranges=ranges))], + ) + + def transform_range(self, node: parse_retree.Range) -> _Node: + raise AssertionError( + "Expected to handle a regex range within the character set" + ) + + def transform_regex(self, node: parse_retree.Regex) -> _Node: + non_anchored_exception_message = ( + "(mristin, 2024-05-31): We expect all the patterns which need " + "to be transpiled to instructions of the RegEx virtual machine " + "to be anchored at the start (``^``) and at the end (``$``). Please " + "consider re-writing your pattern with putting a prefix ``^.*`` if you " + "want to match an arbitrary prefix, and a suffix ``.*$`` if you want to " + "match an arbitrary suffix. " + "If you really need this feature, please contact the developers. " + f"The regular expression was: {_render_re_node(node)}" + ) + + if len(node.union.uniates) == 0 or len(node.union.uniates[0].concatenants) == 0: + raise NotImplementedError(non_anchored_exception_message) + + first_term = node.union.uniates[0].concatenants[0] + last_term = node.union.uniates[0].concatenants[-1] + + first_symbol_is_start = isinstance(first_term.value, parse_retree.Symbol) and ( + first_term.value.kind is parse_retree.SymbolKind.START + ) + last_symbol_is_end = isinstance(last_term.value, parse_retree.Symbol) and ( + last_term.value.kind is parse_retree.SymbolKind.END + ) + + if ( + len(node.union.uniates) != 1 + or not first_symbol_is_start + or not last_symbol_is_end + ): + parts = [non_anchored_exception_message] + if len(node.union.uniates) > 1: + parts.append( + "Expected no alternation in the root group of " + "the pattern (only concatenation), but the pattern starts " + "with an alternation. You can not properly anchor " + "with an alternation." + ) + + if not first_symbol_is_start: + parts.append( + f"Expected the first term of the pattern to be a start anchor, " + f"but it is not. Got: {_render_re_node(first_term)}" + ) + + if not last_symbol_is_end: + parts.append( + f"Expected the last term of the pattern to be an end anchor, " + f"but it is not. Got: {_render_re_node(last_term)}" + ) + + raise NotImplementedError("\n\n".join(parts)) + + check_for_formatted_value = _CheckForFormattedValue() + check_for_formatted_value.visit(node) + if check_for_formatted_value.has_formatted_value: + raise AssertionError( + f"The regex you want to transpile to the instructions of " + f"a RegEx virtual machine contains a formatted value. " + f"The formatted values can only be transpiled into code, " + f"but can not be transpiled into instructions. " + f"Please check your code logic. " + f"The pattern was: {parse_retree.dump(node)}" + ) + + check_for_non_greedy_quantifiers = _CheckForNonGreedyQuantifiers() + check_for_non_greedy_quantifiers.visit(node) + if check_for_non_greedy_quantifiers.has_non_greedy_quantifiers: + raise NotImplementedError( + "(mristin, 2024-05-31): We did not implement the transpilation of " + "non-greedy quantifiers to instructions of a RegEx virtual machine " + "as this is more complex than the transpilation of the greedy ones. " + "If you need this feature, please contact the developers." + ) + + assert len(node.union.uniates) == 1, ( + "Only concatenation expected at the root level since we must anchor " + "at the start and at the end." + ) + + # region Optimize for arbitrary suffix + + # NOTE (mristin): + # We optimize here for the pattern ``.*$`` as we can put an instruction ``Match`` + # just before the arbitrary suffix, and need not the match ``Any`` followed by + # the ``End``. + penultimate_term = ( + node.union.uniates[0].concatenants[-2] + if len(node.union.uniates[0].concatenants) >= 2 + else None + ) + + assert ( + node.union.uniates[0].concatenants[0] is first_term + and isinstance(first_term.value, parse_retree.Symbol) + and first_term.value.kind is parse_retree.SymbolKind.START + ), "Expected the first term to be an anchor at ``^``" + + assert ( + last_term is node.union.uniates[0].concatenants[-1] + and isinstance(last_term.value, parse_retree.Symbol) + and (last_term.value.kind is parse_retree.SymbolKind.END) + ), "Expected the last term to be an anchor at ``$``" + + if ( + penultimate_term is not None + and isinstance(penultimate_term.value, parse_retree.Symbol) + and penultimate_term.value.kind is parse_retree.SymbolKind.DOT + and penultimate_term.quantifier is not None + and penultimate_term.quantifier.minimum == 0 + and penultimate_term.quantifier.maximum is None + ): + # NOTE (mristin): + # We skip the start anchor as it is not transpiled to an instruction. + concatenants = node.union.uniates[0].concatenants[1:-2] + else: + # NOTE (mristin): + # We skip the start anchor as it is not transpiled to an instruction. + concatenants = node.union.uniates[0].concatenants[1:] + + # endregion + + children = [] # type: List[_NodeOrLeaf] + for concatenant in concatenants: + child = self.transform(concatenant) + children.append(child) + + children.append(_Leaf(instruction=InstructionMatch())) + + return _Node( + re_node=node, + children=children, + ) + + +def _recursively_convert_node_for_public(raw_node_or_leaf: _NodeOrLeaf) -> NodeOrLeaf: + """ + Convert the post-processed "raw" node into a node for the public use. + + .. note:: + + All post-processing needs to be performed *before* calling this function. + This function only copy-converts the nodes into structures to be further + used by the downstream clients. No post-processing is performed here. + """ + if isinstance(raw_node_or_leaf, _Leaf): + assert not isinstance( + raw_node_or_leaf.instruction, _InstructionNoop + ), "No no-op instructions expected in public" + + return Leaf( + instruction=raw_node_or_leaf.instruction, label=raw_node_or_leaf.label + ) + + elif isinstance(raw_node_or_leaf, _Node): + children = [] # type: List[NodeOrLeaf] + for raw_child in raw_node_or_leaf.children: + children.append(_recursively_convert_node_for_public(raw_child)) + + return Node(re_node=raw_node_or_leaf.re_node, children=children) + + else: + assert_never(raw_node_or_leaf) + + +def _linearize(node: _Node) -> List[_Leaf]: + """Make recursively a linear list over all the leaves.""" + lst = [] # type: List[_Leaf] + for child in node.children: + if isinstance(child, _Leaf): + lst.append(child) + elif isinstance(child, _Node): + lst.extend(_linearize(child)) + else: + assert_never(child) + + return lst + + +def _relabel_in_place(root: _Node) -> None: + """ + Re-assign labels according to the indices in a linearized sequence of instructions. + + We expect that the no-op instructions will be removed, so they are not assigned + an index. + """ + linearized_leaves = _linearize(root) + + # NOTE (mristin): + # We index all the leaves except for no-op instructions which are going to be + # eventually removed. The indices thus correspond to the instructions *after* + # the no-op instructions are removed. + + next_index = 0 + + # NOTE (mristin): + # We map on the ``id(leaf)`` as the leaves are not hashable. + leaf_to_index = dict() # type: MutableMapping[int, int] + + for leaf in linearized_leaves: + if isinstance(leaf.instruction, _InstructionNoop): + continue + + leaf_to_index[id(leaf)] = next_index + next_index += 1 + + # NOTE (mristin): + # This variable captures the mapping: + # arbitrary labelling 🠒 labeling according to indices. + # + # Only the leaves indicated by new labels will finally have a label at the end. + old_to_new_label = dict() # type: MutableMapping[int, int] + + # NOTE (mristin): + # We iterate in reverse over the leaves so that a single non-no-op instruction + # can accumulate multiple labels for itself. + + leaf_after_noop = None # type: Optional[_Leaf] + for leaf in reversed(linearized_leaves): + if isinstance(leaf.instruction, _InstructionNoop): + if leaf.label is not None: + assert leaf_after_noop is not None, ( + "Expected at least one leaf *after* the no-op instruction. " + "Since the very last instruction must be a ``match`` instruction, " + "this must hold, so something obviously went wrong." + ) + + old_to_new_label[leaf.label] = leaf_to_index[id(leaf_after_noop)] + else: + if leaf.label is not None: + old_to_new_label[leaf.label] = leaf_to_index[id(leaf)] + + leaf_after_noop = leaf + + new_label_set = set(old_to_new_label.values()) + + for leaf in linearized_leaves: + if isinstance(leaf.instruction, _InstructionNoop): + leaf.label = None + continue + + leaf_index = leaf_to_index[id(leaf)] + + if leaf_index in new_label_set: + leaf.label = leaf_index + else: + leaf.label = None + + if isinstance(leaf.instruction, InstructionJump): + leaf.instruction.target = old_to_new_label[leaf.instruction.target] + + elif isinstance(leaf.instruction, InstructionSplit): + leaf.instruction.first_target = old_to_new_label[ + leaf.instruction.first_target + ] + + leaf.instruction.second_target = old_to_new_label[ + leaf.instruction.second_target + ] + else: + # NOTE (mristin): + # Other instruction need not be adapted to the new labels. + pass + + +def _remove_noop_in_place(node: _Node) -> None: + """ + Remove recursively all no-op instructions in place. + + The no-op instructions are expected to have no labels attached to them. + """ + new_children = [] # type: List[_NodeOrLeaf] + for child in node.children: + if isinstance(child, _Leaf): + if isinstance(child.instruction, _InstructionNoop): + assert child.label is None, ( + f"Expected all no-op leaves to have their labels removed " + f"before calling {_remove_noop_in_place.__name__}" + ) + continue + + elif isinstance(child, _Node): + _remove_noop_in_place(child) + + else: + assert_never(child) + + new_children.append(child) + + node.children = new_children + + +def translate(regex: parse_retree.Regex) -> Node: + """Translate the regular expression into a program.""" + # NOTE (mristin): + # We call the nodes "raw" here which still need to be post-processed. + # The post-processing includes removal of no-ops, re-wiring of the labels *etc.* + + translator = _Translator() + raw_root = translator.transform(regex) + + _relabel_in_place(raw_root) + _remove_noop_in_place(raw_root) + + root = _recursively_convert_node_for_public(raw_node_or_leaf=raw_root) + assert isinstance(root, Node), ( + f"Only node and no leaf expected at the root of the regular expression, " + f"but got as root: {root}" + ) + + return root + + +def _determine_min_and_max_label(node_or_leaf: NodeOrLeaf) -> Optional[Tuple[int, int]]: + """ + Iterate recursively over the nodes, and determine the extreme labels in the program. + + If no node contains a label, return ``None``. + """ + if isinstance(node_or_leaf, Leaf): + if node_or_leaf.label is not None: + return node_or_leaf.label, node_or_leaf.label + else: + return None + + elif isinstance(node_or_leaf, Node): + minimum = None # type: Optional[int] + maximum = None # type: Optional[int] + + for child in node_or_leaf.children: + maybe_child_min_max = _determine_min_and_max_label(node_or_leaf=child) + if maybe_child_min_max is not None: + child_min, child_max = maybe_child_min_max + + if minimum is not None: + minimum = min(minimum, child_min) + else: + minimum = child_min + + if maximum is not None: + maximum = max(maximum, child_max) + else: + maximum = child_max + + assert (minimum is not None and maximum is not None) or ( + minimum is None and maximum is None + ), ( + f"Both minimum and maximum must be set or neither, " + f"but got: {minimum=}, {maximum=}" + ) + + if minimum is not None: + assert maximum is not None + return minimum, maximum + else: + assert maximum is None + return None + else: + assert_never(node_or_leaf) + + +@require(lambda indention: indention >= 0) +@require(lambda label_columns: label_columns >= 0) +def _write_recursively( + node_or_leaf: NodeOrLeaf, indention: int, label_columns: int, writer: TextIO +) -> None: + """Write recursively the node or leaf as a human-readable text to the ``writer``.""" + whitespace = " " * indention + + if isinstance(node_or_leaf, Leaf): + if label_columns == 0: + label_prefix = "" + else: + if node_or_leaf.label is None: + label_prefix = " " * (label_columns + 2) + else: + # noinspection PyStringFormat + label_prefix = f"{{:0{label_columns}d}}: ".format(node_or_leaf.label) + + instruction_str: str + + if isinstance(node_or_leaf.instruction, InstructionChar): + instruction_str = f"char {node_or_leaf.instruction.character!r}" + + elif isinstance(node_or_leaf.instruction, (InstructionSet, InstructionNotSet)): + ranges_str = "".join( + f"{rng.first}" if rng.first == rng.last else f"{rng.first}-{rng.last}" + for rng in node_or_leaf.instruction.ranges + ) + + if isinstance(node_or_leaf.instruction, InstructionSet): + instruction_str = f"set {ranges_str!r}" + elif isinstance(node_or_leaf.instruction, InstructionNotSet): + instruction_str = f"not-set {ranges_str!r}" + else: + assert_never(node_or_leaf.instruction) + raise AssertionError("Unexpected execution path") + + elif isinstance(node_or_leaf.instruction, InstructionAny): + instruction_str = "any" + + elif isinstance(node_or_leaf.instruction, InstructionMatch): + instruction_str = "match" + + elif isinstance(node_or_leaf.instruction, InstructionJump): + instruction_str = f"jump {node_or_leaf.instruction.target}" + + elif isinstance(node_or_leaf.instruction, InstructionSplit): + instruction_str = ( + f"split {node_or_leaf.instruction.first_target}, " + f"{node_or_leaf.instruction.second_target}" + ) + + elif isinstance(node_or_leaf.instruction, InstructionEnd): + instruction_str = "end" + + else: + assert_never(node_or_leaf.instruction) + raise AssertionError("Unexpected execution path") + + writer.write(f"{label_prefix}{whitespace}{instruction_str}") + + elif isinstance(node_or_leaf, Node): + if label_columns == 0: + label_prefix = "" + else: + label_prefix = " " * (label_columns + 2) + + re_node_str = _render_re_node(node_or_leaf.re_node) + if len(node_or_leaf.children) == 0: + more_whitespace = " " * (indention + 1) + writer.write( + f"{label_prefix}{whitespace}# {re_node_str}\n" + f"{label_prefix}{whitespace}{{\n" + f"{label_prefix}{more_whitespace}# Nothing\n" + f"{label_prefix}{whitespace}}}" + ) + elif len(node_or_leaf.children) == 1 and isinstance( + node_or_leaf.children[0], Leaf + ): + if not isinstance( + node_or_leaf.children[0].instruction, + (InstructionSet, InstructionNotSet, InstructionAny, InstructionChar), + ): + writer.write(f"{label_prefix}{whitespace}# {re_node_str}\n") + + _write_recursively( + node_or_leaf=node_or_leaf.children[0], + indention=indention, + label_columns=label_columns, + writer=writer, + ) + else: + writer.write( + f"{label_prefix}{whitespace}# {re_node_str}\n" + f"{label_prefix}{whitespace}{{\n" + ) + for child in node_or_leaf.children: + _write_recursively( + node_or_leaf=child, + indention=indention + 1, + label_columns=label_columns, + writer=writer, + ) + + writer.write("\n") + + writer.write(f"{label_prefix}{whitespace}}}") + + else: + assert_never(node_or_leaf) + + +def dump(program: NodeOrLeaf) -> str: + """Write out the program as a readable nested list of instructions.""" + maybe_min_max_label = _determine_min_and_max_label(node_or_leaf=program) + + if maybe_min_max_label is None: + label_columns = 0 + else: + min_label, max_label = maybe_min_max_label + label_columns = max(len(str(min_label)), len(str(max_label))) + + writer = io.StringIO() + _write_recursively( + node_or_leaf=program, indention=0, label_columns=label_columns, writer=writer + ) + + return writer.getvalue() diff --git a/aas_core_codegen/parse/retree/__init__.py b/aas_core_codegen/parse/retree/__init__.py index 95ffb46d7..6343e5118 100644 --- a/aas_core_codegen/parse/retree/__init__.py +++ b/aas_core_codegen/parse/retree/__init__.py @@ -20,6 +20,7 @@ Cursor = _parse.Cursor render_pointer = _parse.render_pointer +Node = _types.Node Char = _types.Char Range = _types.Range Concatenation = _types.Concatenation diff --git a/aas_core_codegen/parse/retree/_render.py b/aas_core_codegen/parse/retree/_render.py index 2806e5c6b..d83cfe182 100644 --- a/aas_core_codegen/parse/retree/_render.py +++ b/aas_core_codegen/parse/retree/_render.py @@ -22,57 +22,50 @@ ) from aas_core_codegen.parse.tree import FormattedValue -_ESCAPING_IN_CHARACTER_LITERALS = { - "\t": "\\t", - "\n": "\\n", - "\r": "\\r", - "\f": "\\f", - "\v": "\\v", - ".": "\\.", - "^": "\\^", - "$": "\\$", - "{": "\\{", - "}": "\\}", - "[": "\\[", - "]": "\\]", - "(": "\\(", - ")": "\\)", - "?": "\\?", - "*": "\\*", - "+": "\\+", - "\\": "\\\\", -} - -_ESCAPING_IN_RANGE = { - "\t": "\\t", - "\n": "\\n", - "\r": "\\r", - "\f": "\\f", - "\v": "\\v", - "[": "\\[", - "]": "\\]", - "\\": "\\\\", - "-": "\\-", -} - - -# fmt: off - class Renderer(Transformer[List[Union[str, FormattedValue]]]): """Render the regular expression back into a joined string.""" + _ESCAPING_IN_CHARACTER_LITERALS = { + "\t": "\\t", + "\n": "\\n", + "\r": "\\r", + "\f": "\\f", + "\v": "\\v", + ".": "\\.", + "^": "\\^", + "$": "\\$", + "{": "\\{", + "}": "\\}", + "[": "\\[", + "]": "\\]", + "(": "\\(", + ")": "\\)", + "?": "\\?", + "*": "\\*", + "+": "\\+", + "\\": "\\\\", + } + + _ESCAPING_IN_RANGE = { + "\t": "\\t", + "\n": "\\n", + "\r": "\\r", + "\f": "\\f", + "\v": "\\v", + "[": "\\[", + "]": "\\]", + "\\": "\\\\", + "-": "\\-", + } + @require( - lambda escaping: - all( - len(key) == 1 - for key in escaping - ), - "The ``escaping`` works only on characters, not on arbitrary text" + lambda escaping: all(len(key) == 1 for key in escaping), + "The ``escaping`` works only on characters, not on arbitrary text", ) # fmt: on def char_to_str_and_escape_or_encode_if_necessary( - self, node: Char, escaping: Mapping[str, str] + self, node: Char, escaping: Mapping[str, str] ) -> List[Union[str, FormattedValue]]: """Convert the ``node`` to a string, and escape and/or encode appropriately.""" if not node.explicitly_encoded: @@ -137,7 +130,7 @@ def transform_term(self, node: Term) -> List[Union[str, FormattedValue]]: elif isinstance(node.value, Char): output.extend( self.char_to_str_and_escape_or_encode_if_necessary( - node=node.value, escaping=_ESCAPING_IN_CHARACTER_LITERALS + node=node.value, escaping=Renderer._ESCAPING_IN_CHARACTER_LITERALS ) ) else: @@ -227,7 +220,7 @@ def transform_char_set(self, node: CharSet) -> List[Union[str, FormattedValue]]: else: output.extend( self.char_to_str_and_escape_or_encode_if_necessary( - node=a_range.start, escaping=_ESCAPING_IN_RANGE + node=a_range.start, escaping=Renderer._ESCAPING_IN_RANGE ) ) @@ -236,7 +229,7 @@ def transform_char_set(self, node: CharSet) -> List[Union[str, FormattedValue]]: output.extend( self.char_to_str_and_escape_or_encode_if_necessary( - node=a_range.end, escaping=_ESCAPING_IN_RANGE + node=a_range.end, escaping=Renderer._ESCAPING_IN_RANGE ) ) diff --git a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.cpp b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.cpp new file mode 100644 index 000000000..0cd9cfdc3 --- /dev/null +++ b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.cpp @@ -0,0 +1,70160 @@ +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. + +#include "aas_core/aas_3_0/pattern.hpp" +#include "aas_core/aas_3_0/revm.hpp" + +namespace aas_core { +namespace aas_3_0 { +namespace pattern { + +std::vector< + std::unique_ptr +> ConstructMatchesIdShortProgram() { + std::vector > program; + + { // ^[a-zA-Z][a-zA-Z0-9_]*$ + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // [a-zA-Z0-9_]* + program.emplace_back( // 1 + std::make_unique(2, 4) + ); + // [a-zA-Z0-9_] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(1) + ); + } // [a-zA-Z0-9_]* + // $ + program.emplace_back( // 4 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[a-zA-Z][a-zA-Z0-9_]*$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesIdShortProgram = ConstructMatchesIdShortProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesVersionTypeProgram() { + std::vector > program; + + { // ^(0|[1-9][0-9]*)$ + { // 0|[1-9][0-9]* + program.emplace_back( + std::make_unique(1, 3) + ); + // 0 + program.emplace_back( // 1 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(7) + ); + { // [1-9][0-9]* + // [1-9] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + { // [0-9]* + program.emplace_back( // 4 + std::make_unique(5, 7) + ); + // [0-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4) + ); + } // [0-9]* + } // [1-9][0-9]* + } // 0|[1-9][0-9]* + // $ + program.emplace_back( // 7 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(0|[1-9][0-9]*)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesVersionTypeProgram = ConstructMatchesVersionTypeProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesRevisionTypeProgram() { + std::vector > program; + + { // ^(0|[1-9][0-9]*)$ + { // 0|[1-9][0-9]* + program.emplace_back( + std::make_unique(1, 3) + ); + // 0 + program.emplace_back( // 1 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(7) + ); + { // [1-9][0-9]* + // [1-9] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + { // [0-9]* + program.emplace_back( // 4 + std::make_unique(5, 7) + ); + // [0-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4) + ); + } // [0-9]* + } // [1-9][0-9]* + } // 0|[1-9][0-9]* + // $ + program.emplace_back( // 7 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(0|[1-9][0-9]*)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesRevisionTypeProgram = ConstructMatchesRevisionTypeProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsDateTimeUtcProgram() { + std::vector > program; + + { // ^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)?)(Z|\+00:00|-00:00)$ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // ([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]) + program.emplace_back( // 2 + std::make_unique(3, 9) + ); + { // [1-9][0-9][0-9][0-9]+ + // [1-9] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 6 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(6, 8) + ); + } // [0-9]+ + } // [1-9][0-9][0-9][0-9]+ + program.emplace_back( // 8 + std::make_unique(13) + ); + { // 0[0-9][0-9][0-9] + // 0 + program.emplace_back( // 9 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9][0-9][0-9] + } // ([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]) + // - + program.emplace_back( // 13 + std::make_unique(L'-') + ); + { // (0[1-9])|(1[0-2]) + program.emplace_back( + std::make_unique(15, 18) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 15 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(20) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 18 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // (0[1-9])|(1[0-2]) + // - + program.emplace_back( // 20 + std::make_unique(L'-') + ); + { // (0[1-9])|([12][0-9])|(3[01]) + program.emplace_back( + std::make_unique(22, 25) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 22 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(31) + ); + program.emplace_back( // 25 + std::make_unique(26, 29) + ); + { // [12][0-9] + // [12] + program.emplace_back( // 26 + std::make_unique( + std::vector{ + revm::Range(L'1', L'1'), + revm::Range(L'2', L'2') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [12][0-9] + program.emplace_back( + std::make_unique(31) + ); + { // 3[01] + // 3 + program.emplace_back( // 29 + std::make_unique(L'3') + ); + // [01] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + } // 3[01] + } // (0[1-9])|([12][0-9])|(3[01]) + // T + program.emplace_back( // 31 + std::make_unique(L'T') + ); + { // ((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)? + program.emplace_back( + std::make_unique(33, 50) + ); + { // (([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)? + { // ([01][0-9])|(2[0-3]) + program.emplace_back( // 33 + std::make_unique(34, 37) + ); + { // [01][0-9] + // [01] + program.emplace_back( // 34 + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [01][0-9] + program.emplace_back( + std::make_unique(39) + ); + { // 2[0-3] + // 2 + program.emplace_back( // 37 + std::make_unique(L'2') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 2[0-3] + } // ([01][0-9])|(2[0-3]) + // : + program.emplace_back( // 39 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-5][0-9] + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-5][0-9] + { // (\.[0-9]+)? + program.emplace_back( + std::make_unique(46, 49) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 46 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 47 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(47, 49) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + } // (([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)? + program.emplace_back( // 49 + std::make_unique(62) + ); + { // 24:00:00(\.0+)? + // 2 + program.emplace_back( // 50 + std::make_unique(L'2') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + { // (\.0+)? + program.emplace_back( + std::make_unique(59, 62) + ); + { // \.0+ + // \. + program.emplace_back( // 59 + std::make_unique(L'.') + ); + { // 0+ + // 0 + program.emplace_back( // 60 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(60, 62) + ); + } // 0+ + } // \.0+ + } // (\.0+)? + } // 24:00:00(\.0+)? + } // ((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)? + { // Z|\+00:00|-00:00 + program.emplace_back( // 62 + std::make_unique(63, 65) + ); + // Z + program.emplace_back( // 63 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(79) + ); + program.emplace_back( // 65 + std::make_unique(66, 73) + ); + { // \+00:00 + // \+ + program.emplace_back( // 66 + std::make_unique(L'+') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // \+00:00 + program.emplace_back( + std::make_unique(79) + ); + { // -00:00 + // - + program.emplace_back( // 73 + std::make_unique(L'-') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // -00:00 + } // Z|\+00:00|-00:00 + // $ + program.emplace_back( // 79 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)?)(Z|\+00:00|-00:00)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsDateTimeUtcProgram = ConstructMatchesXsDateTimeUtcProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesMimeTypeProgram() { + std::vector > program; + + { // ^([!#$%&'*+\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\-.^_`|~0-9a-zA-Z])+([ \t]*;[ \t]*([!#$%&'*+\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*"))*$ + { // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + // [!#$%&'*+\-.^_`|~0-9a-zA-Z] + program.emplace_back( // 0 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'#', L'#'), + revm::Range(L'$', L'$'), + revm::Range(L'%', L'%'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'^', L'^'), + revm::Range(L'_', L'_'), + revm::Range(L'`', L'`'), + revm::Range(L'a', L'z'), + revm::Range(L'|', L'|'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(0, 2) + ); + } // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + // / + program.emplace_back( // 2 + std::make_unique(L'/') + ); + { // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + // [!#$%&'*+\-.^_`|~0-9a-zA-Z] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'#', L'#'), + revm::Range(L'$', L'$'), + revm::Range(L'%', L'%'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'^', L'^'), + revm::Range(L'_', L'_'), + revm::Range(L'`', L'`'), + revm::Range(L'a', L'z'), + revm::Range(L'|', L'|'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(3, 5) + ); + } // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + { // ([ \t]*;[ \t]*([!#$%&'*+\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*"))* + program.emplace_back( // 5 + std::make_unique(6, 36) + ); + { // [ \t]*;[ \t]*([!#$%&'*+\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*") + { // [ \t]* + program.emplace_back( // 6 + std::make_unique(7, 9) + ); + // [ \t] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L' ', L' ') + } + ) + ); + program.emplace_back( + std::make_unique(6) + ); + } // [ \t]* + // ; + program.emplace_back( // 9 + std::make_unique(L';') + ); + { // [ \t]* + program.emplace_back( // 10 + std::make_unique(11, 13) + ); + // [ \t] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L' ', L' ') + } + ) + ); + program.emplace_back( + std::make_unique(10) + ); + } // [ \t]* + { // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + // [!#$%&'*+\-.^_`|~0-9a-zA-Z] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'#', L'#'), + revm::Range(L'$', L'$'), + revm::Range(L'%', L'%'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'^', L'^'), + revm::Range(L'_', L'_'), + revm::Range(L'`', L'`'), + revm::Range(L'a', L'z'), + revm::Range(L'|', L'|'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(13, 15) + ); + } // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + // = + program.emplace_back( // 15 + std::make_unique(L'=') + ); + { // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*" + program.emplace_back( + std::make_unique(17, 20) + ); + { // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + // [!#$%&'*+\-.^_`|~0-9a-zA-Z] + program.emplace_back( // 17 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'#', L'#'), + revm::Range(L'$', L'$'), + revm::Range(L'%', L'%'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'^', L'^'), + revm::Range(L'_', L'_'), + revm::Range(L'`', L'`'), + revm::Range(L'a', L'z'), + revm::Range(L'|', L'|'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(17, 19) + ); + } // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+ + program.emplace_back( // 19 + std::make_unique(35) + ); + { // "(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*" + // " + program.emplace_back( // 20 + std::make_unique(L'"') + ); + { // (([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))* + program.emplace_back( // 21 + std::make_unique(22, 34) + ); + { // ([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]) + program.emplace_back( // 22 + std::make_unique(23, 28) + ); + { // [\t !#-\[\]-~]|[\x80-\xff] + program.emplace_back( // 23 + std::make_unique(24, 26) + ); + // [\t !#-\[\]-~] + program.emplace_back( // 24 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L' ', L' '), + revm::Range(L'!', L'!'), + revm::Range(L'#', L'['), + revm::Range(L']', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(27) + ); + // [\x80-\xff] + program.emplace_back( // 26 + std::make_unique( + std::vector{ + revm::Range(L'\x80', L'\u00ff') + } + ) + ); + } // [\t !#-\[\]-~]|[\x80-\xff] + program.emplace_back( // 27 + std::make_unique(33) + ); + { // \\([\t !-~]|[\x80-\xff]) + /* \\ */ + program.emplace_back( // 28 + std::make_unique(L'\\') + ); + { // [\t !-~]|[\x80-\xff] + program.emplace_back( + std::make_unique(30, 32) + ); + // [\t !-~] + program.emplace_back( // 30 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L' ', L' '), + revm::Range(L'!', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(33) + ); + // [\x80-\xff] + program.emplace_back( // 32 + std::make_unique( + std::vector{ + revm::Range(L'\x80', L'\u00ff') + } + ) + ); + } // [\t !-~]|[\x80-\xff] + } // \\([\t !-~]|[\x80-\xff]) + } // ([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]) + program.emplace_back( // 33 + std::make_unique(21) + ); + } // (([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))* + // " + program.emplace_back( // 34 + std::make_unique(L'"') + ); + } // "(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*" + } // ([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*" + } // [ \t]*;[ \t]*([!#$%&'*+\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*") + program.emplace_back( // 35 + std::make_unique(5) + ); + } // ([ \t]*;[ \t]*([!#$%&'*+\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*"))* + // $ + program.emplace_back( // 36 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^([!#$%&'*+\-.^_`|~0-9a-zA-Z])+/([!#$%&'*+\-.^_`|~0-9a-zA-Z])+([ \t]*;[ \t]*([!#$%&'*+\-.^_`|~0-9a-zA-Z])+=(([!#$%&'*+\-.^_`|~0-9a-zA-Z])+|"(([\t !#-\[\]-~]|[\x80-\xff])|\\([\t !-~]|[\x80-\xff]))*"))*$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesMimeTypeProgram = ConstructMatchesMimeTypeProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesRfc8089PathProgram() { + std::vector > program; + + { // ^file:(//((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))?/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?)$ + // f + program.emplace_back( + std::make_unique(L'f') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // e + program.emplace_back( + std::make_unique(L'e') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // //((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))?/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( + std::make_unique(6, 1319) + ); + { // //((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))?/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + // / + program.emplace_back( // 6 + std::make_unique(L'/') + ); + // / + program.emplace_back( + std::make_unique(L'/') + ); + { // ((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))? + program.emplace_back( + std::make_unique(9, 1286) + ); + { // localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*) + program.emplace_back( // 9 + std::make_unique(10, 20) + ); + { // localhost + // l + program.emplace_back( // 10 + std::make_unique(L'l') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // c + program.emplace_back( + std::make_unique(L'c') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // s + program.emplace_back( + std::make_unique(L's') + ); + // t + program.emplace_back( + std::make_unique(L't') + ); + } // localhost + program.emplace_back( + std::make_unique(1286) + ); + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 20 + std::make_unique(21, 1190) + ); + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + // \[ + program.emplace_back( // 21 + std::make_unique(L'[') + ); + { // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + program.emplace_back( + std::make_unique(23, 1176) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 23 + std::make_unique(24, 173) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 24 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(26, 31) + ); + // [0-9A-Fa-f] + program.emplace_back( // 26 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(28, 31) + ); + // [0-9A-Fa-f] + program.emplace_back( // 28 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(30, 31) + ); + // [0-9A-Fa-f] + program.emplace_back( // 30 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 31 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(34, 39) + ); + // [0-9A-Fa-f] + program.emplace_back( // 34 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(36, 39) + ); + // [0-9A-Fa-f] + program.emplace_back( // 36 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(38, 39) + ); + // [0-9A-Fa-f] + program.emplace_back( // 38 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 39 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(42, 47) + ); + // [0-9A-Fa-f] + program.emplace_back( // 42 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(44, 47) + ); + // [0-9A-Fa-f] + program.emplace_back( // 44 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(46, 47) + ); + // [0-9A-Fa-f] + program.emplace_back( // 46 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 47 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(50, 55) + ); + // [0-9A-Fa-f] + program.emplace_back( // 50 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(52, 55) + ); + // [0-9A-Fa-f] + program.emplace_back( // 52 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(54, 55) + ); + // [0-9A-Fa-f] + program.emplace_back( // 54 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 55 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(58, 63) + ); + // [0-9A-Fa-f] + program.emplace_back( // 58 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(60, 63) + ); + // [0-9A-Fa-f] + program.emplace_back( // 60 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(62, 63) + ); + // [0-9A-Fa-f] + program.emplace_back( // 62 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 63 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(66, 71) + ); + // [0-9A-Fa-f] + program.emplace_back( // 66 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(68, 71) + ); + // [0-9A-Fa-f] + program.emplace_back( // 68 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(70, 71) + ); + // [0-9A-Fa-f] + program.emplace_back( // 70 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 71 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(73, 89) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 73 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(75, 80) + ); + // [0-9A-Fa-f] + program.emplace_back( // 75 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(77, 80) + ); + // [0-9A-Fa-f] + program.emplace_back( // 77 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(79, 80) + ); + // [0-9A-Fa-f] + program.emplace_back( // 79 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 80 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(83, 88) + ); + // [0-9A-Fa-f] + program.emplace_back( // 83 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(85, 88) + ); + // [0-9A-Fa-f] + program.emplace_back( // 85 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(87, 88) + ); + // [0-9A-Fa-f] + program.emplace_back( // 87 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 88 + std::make_unique(172) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 89 + std::make_unique(90, 92) + ); + // [0-9] + program.emplace_back( // 90 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(109) + ); + program.emplace_back( // 92 + std::make_unique(93, 96) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 93 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(109) + ); + program.emplace_back( // 96 + std::make_unique(97, 101) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 97 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(109) + ); + program.emplace_back( // 101 + std::make_unique(102, 106) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 102 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(109) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 106 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 109 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(111, 113) + ); + // [0-9] + program.emplace_back( // 111 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(130) + ); + program.emplace_back( // 113 + std::make_unique(114, 117) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 114 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(130) + ); + program.emplace_back( // 117 + std::make_unique(118, 122) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 118 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(130) + ); + program.emplace_back( // 122 + std::make_unique(123, 127) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 123 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(130) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 127 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 130 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(132, 134) + ); + // [0-9] + program.emplace_back( // 132 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(151) + ); + program.emplace_back( // 134 + std::make_unique(135, 138) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 135 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(151) + ); + program.emplace_back( // 138 + std::make_unique(139, 143) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 139 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(151) + ); + program.emplace_back( // 143 + std::make_unique(144, 148) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 144 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(151) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 148 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 151 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(153, 155) + ); + // [0-9] + program.emplace_back( // 153 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(172) + ); + program.emplace_back( // 155 + std::make_unique(156, 159) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 156 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(172) + ); + program.emplace_back( // 159 + std::make_unique(160, 164) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 160 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(172) + ); + program.emplace_back( // 164 + std::make_unique(165, 169) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 165 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(172) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 169 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 172 + std::make_unique(1175) + ); + program.emplace_back( // 173 + std::make_unique(174, 317) + ); + { // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + // : + program.emplace_back( // 174 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(178, 183) + ); + // [0-9A-Fa-f] + program.emplace_back( // 178 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(180, 183) + ); + // [0-9A-Fa-f] + program.emplace_back( // 180 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(182, 183) + ); + // [0-9A-Fa-f] + program.emplace_back( // 182 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 183 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(186, 191) + ); + // [0-9A-Fa-f] + program.emplace_back( // 186 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(188, 191) + ); + // [0-9A-Fa-f] + program.emplace_back( // 188 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(190, 191) + ); + // [0-9A-Fa-f] + program.emplace_back( // 190 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 191 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(194, 199) + ); + // [0-9A-Fa-f] + program.emplace_back( // 194 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(196, 199) + ); + // [0-9A-Fa-f] + program.emplace_back( // 196 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(198, 199) + ); + // [0-9A-Fa-f] + program.emplace_back( // 198 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 199 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(202, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 202 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(204, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 204 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(206, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 206 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 207 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(210, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 210 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(212, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 212 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(214, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 214 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 215 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(217, 233) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 217 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(219, 224) + ); + // [0-9A-Fa-f] + program.emplace_back( // 219 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(221, 224) + ); + // [0-9A-Fa-f] + program.emplace_back( // 221 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(223, 224) + ); + // [0-9A-Fa-f] + program.emplace_back( // 223 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 224 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(227, 232) + ); + // [0-9A-Fa-f] + program.emplace_back( // 227 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(229, 232) + ); + // [0-9A-Fa-f] + program.emplace_back( // 229 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(231, 232) + ); + // [0-9A-Fa-f] + program.emplace_back( // 231 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 232 + std::make_unique(316) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 233 + std::make_unique(234, 236) + ); + // [0-9] + program.emplace_back( // 234 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(253) + ); + program.emplace_back( // 236 + std::make_unique(237, 240) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 237 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(253) + ); + program.emplace_back( // 240 + std::make_unique(241, 245) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 241 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(253) + ); + program.emplace_back( // 245 + std::make_unique(246, 250) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 246 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(253) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 250 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 253 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(255, 257) + ); + // [0-9] + program.emplace_back( // 255 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(274) + ); + program.emplace_back( // 257 + std::make_unique(258, 261) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 258 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(274) + ); + program.emplace_back( // 261 + std::make_unique(262, 266) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 262 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(274) + ); + program.emplace_back( // 266 + std::make_unique(267, 271) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 267 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(274) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 271 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 274 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(276, 278) + ); + // [0-9] + program.emplace_back( // 276 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(295) + ); + program.emplace_back( // 278 + std::make_unique(279, 282) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 279 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(295) + ); + program.emplace_back( // 282 + std::make_unique(283, 287) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 283 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(295) + ); + program.emplace_back( // 287 + std::make_unique(288, 292) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 288 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(295) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 292 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 295 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(297, 299) + ); + // [0-9] + program.emplace_back( // 297 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(316) + ); + program.emplace_back( // 299 + std::make_unique(300, 303) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 300 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(316) + ); + program.emplace_back( // 303 + std::make_unique(304, 308) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 304 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(316) + ); + program.emplace_back( // 308 + std::make_unique(309, 313) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 309 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(316) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 313 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 316 + std::make_unique(1175) + ); + program.emplace_back( // 317 + std::make_unique(318, 461) + ); + { // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4})? + program.emplace_back( // 318 + std::make_unique(319, 326) + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 319 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(321, 326) + ); + // [0-9A-Fa-f] + program.emplace_back( // 321 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(323, 326) + ); + // [0-9A-Fa-f] + program.emplace_back( // 323 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(325, 326) + ); + // [0-9A-Fa-f] + program.emplace_back( // 325 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 326 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(330, 335) + ); + // [0-9A-Fa-f] + program.emplace_back( // 330 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(332, 335) + ); + // [0-9A-Fa-f] + program.emplace_back( // 332 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(334, 335) + ); + // [0-9A-Fa-f] + program.emplace_back( // 334 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 335 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(338, 343) + ); + // [0-9A-Fa-f] + program.emplace_back( // 338 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(340, 343) + ); + // [0-9A-Fa-f] + program.emplace_back( // 340 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(342, 343) + ); + // [0-9A-Fa-f] + program.emplace_back( // 342 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 343 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(346, 351) + ); + // [0-9A-Fa-f] + program.emplace_back( // 346 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(348, 351) + ); + // [0-9A-Fa-f] + program.emplace_back( // 348 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(350, 351) + ); + // [0-9A-Fa-f] + program.emplace_back( // 350 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 351 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(354, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 354 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(356, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 356 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(358, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 358 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 359 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(361, 377) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 361 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(363, 368) + ); + // [0-9A-Fa-f] + program.emplace_back( // 363 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(365, 368) + ); + // [0-9A-Fa-f] + program.emplace_back( // 365 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(367, 368) + ); + // [0-9A-Fa-f] + program.emplace_back( // 367 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 368 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(371, 376) + ); + // [0-9A-Fa-f] + program.emplace_back( // 371 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(373, 376) + ); + // [0-9A-Fa-f] + program.emplace_back( // 373 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(375, 376) + ); + // [0-9A-Fa-f] + program.emplace_back( // 375 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 376 + std::make_unique(460) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 377 + std::make_unique(378, 380) + ); + // [0-9] + program.emplace_back( // 378 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(397) + ); + program.emplace_back( // 380 + std::make_unique(381, 384) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 381 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(397) + ); + program.emplace_back( // 384 + std::make_unique(385, 389) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 385 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(397) + ); + program.emplace_back( // 389 + std::make_unique(390, 394) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 390 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(397) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 394 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 397 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(399, 401) + ); + // [0-9] + program.emplace_back( // 399 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(418) + ); + program.emplace_back( // 401 + std::make_unique(402, 405) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 402 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(418) + ); + program.emplace_back( // 405 + std::make_unique(406, 410) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 406 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(418) + ); + program.emplace_back( // 410 + std::make_unique(411, 415) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 411 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(418) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 415 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 418 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(420, 422) + ); + // [0-9] + program.emplace_back( // 420 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(439) + ); + program.emplace_back( // 422 + std::make_unique(423, 426) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 423 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(439) + ); + program.emplace_back( // 426 + std::make_unique(427, 431) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 427 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(439) + ); + program.emplace_back( // 431 + std::make_unique(432, 436) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 432 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(439) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 436 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 439 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(441, 443) + ); + // [0-9] + program.emplace_back( // 441 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(460) + ); + program.emplace_back( // 443 + std::make_unique(444, 447) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 444 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(460) + ); + program.emplace_back( // 447 + std::make_unique(448, 452) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 448 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(460) + ); + program.emplace_back( // 452 + std::make_unique(453, 457) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 453 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(460) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 457 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 460 + std::make_unique(1175) + ); + program.emplace_back( // 461 + std::make_unique(462, 606) + ); + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + program.emplace_back( // 462 + std::make_unique(463, 479) + ); + { // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:)? + program.emplace_back( // 463 + std::make_unique(464, 472) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 464 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(466, 471) + ); + // [0-9A-Fa-f] + program.emplace_back( // 466 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(468, 471) + ); + // [0-9A-Fa-f] + program.emplace_back( // 468 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(470, 471) + ); + // [0-9A-Fa-f] + program.emplace_back( // 470 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 471 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:)? + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 472 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(474, 479) + ); + // [0-9A-Fa-f] + program.emplace_back( // 474 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(476, 479) + ); + // [0-9A-Fa-f] + program.emplace_back( // 476 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(478, 479) + ); + // [0-9A-Fa-f] + program.emplace_back( // 478 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 479 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(483, 488) + ); + // [0-9A-Fa-f] + program.emplace_back( // 483 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(485, 488) + ); + // [0-9A-Fa-f] + program.emplace_back( // 485 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(487, 488) + ); + // [0-9A-Fa-f] + program.emplace_back( // 487 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 488 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(491, 496) + ); + // [0-9A-Fa-f] + program.emplace_back( // 491 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(493, 496) + ); + // [0-9A-Fa-f] + program.emplace_back( // 493 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(495, 496) + ); + // [0-9A-Fa-f] + program.emplace_back( // 495 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 496 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(499, 504) + ); + // [0-9A-Fa-f] + program.emplace_back( // 499 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(501, 504) + ); + // [0-9A-Fa-f] + program.emplace_back( // 501 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(503, 504) + ); + // [0-9A-Fa-f] + program.emplace_back( // 503 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 504 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(506, 522) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 506 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(508, 513) + ); + // [0-9A-Fa-f] + program.emplace_back( // 508 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(510, 513) + ); + // [0-9A-Fa-f] + program.emplace_back( // 510 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(512, 513) + ); + // [0-9A-Fa-f] + program.emplace_back( // 512 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 513 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(516, 521) + ); + // [0-9A-Fa-f] + program.emplace_back( // 516 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(518, 521) + ); + // [0-9A-Fa-f] + program.emplace_back( // 518 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(520, 521) + ); + // [0-9A-Fa-f] + program.emplace_back( // 520 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 521 + std::make_unique(605) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 522 + std::make_unique(523, 525) + ); + // [0-9] + program.emplace_back( // 523 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(542) + ); + program.emplace_back( // 525 + std::make_unique(526, 529) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 526 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(542) + ); + program.emplace_back( // 529 + std::make_unique(530, 534) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 530 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(542) + ); + program.emplace_back( // 534 + std::make_unique(535, 539) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 535 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(542) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 539 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 542 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(544, 546) + ); + // [0-9] + program.emplace_back( // 544 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(563) + ); + program.emplace_back( // 546 + std::make_unique(547, 550) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 547 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(563) + ); + program.emplace_back( // 550 + std::make_unique(551, 555) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 551 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(563) + ); + program.emplace_back( // 555 + std::make_unique(556, 560) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 556 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(563) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 560 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 563 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(565, 567) + ); + // [0-9] + program.emplace_back( // 565 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(584) + ); + program.emplace_back( // 567 + std::make_unique(568, 571) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 568 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(584) + ); + program.emplace_back( // 571 + std::make_unique(572, 576) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 572 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(584) + ); + program.emplace_back( // 576 + std::make_unique(577, 581) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 577 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(584) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 581 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 584 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(586, 588) + ); + // [0-9] + program.emplace_back( // 586 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(605) + ); + program.emplace_back( // 588 + std::make_unique(589, 592) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 589 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(605) + ); + program.emplace_back( // 592 + std::make_unique(593, 597) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 593 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(605) + ); + program.emplace_back( // 597 + std::make_unique(598, 602) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 598 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(605) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 602 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 605 + std::make_unique(1175) + ); + program.emplace_back( // 606 + std::make_unique(607, 752) + ); + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 607 + std::make_unique(608, 633) + ); + { // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,2} + program.emplace_back( // 608 + std::make_unique(609, 626) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 609 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(611, 616) + ); + // [0-9A-Fa-f] + program.emplace_back( // 611 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(613, 616) + ); + // [0-9A-Fa-f] + program.emplace_back( // 613 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(615, 616) + ); + // [0-9A-Fa-f] + program.emplace_back( // 615 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 616 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(618, 626) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 618 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(620, 625) + ); + // [0-9A-Fa-f] + program.emplace_back( // 620 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(622, 625) + ); + // [0-9A-Fa-f] + program.emplace_back( // 622 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(624, 625) + ); + // [0-9A-Fa-f] + program.emplace_back( // 624 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 625 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,2} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 626 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(628, 633) + ); + // [0-9A-Fa-f] + program.emplace_back( // 628 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(630, 633) + ); + // [0-9A-Fa-f] + program.emplace_back( // 630 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(632, 633) + ); + // [0-9A-Fa-f] + program.emplace_back( // 632 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 633 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(637, 642) + ); + // [0-9A-Fa-f] + program.emplace_back( // 637 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(639, 642) + ); + // [0-9A-Fa-f] + program.emplace_back( // 639 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(641, 642) + ); + // [0-9A-Fa-f] + program.emplace_back( // 641 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 642 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(645, 650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 645 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(647, 650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 647 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(649, 650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 649 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 650 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(652, 668) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 652 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(654, 659) + ); + // [0-9A-Fa-f] + program.emplace_back( // 654 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(656, 659) + ); + // [0-9A-Fa-f] + program.emplace_back( // 656 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(658, 659) + ); + // [0-9A-Fa-f] + program.emplace_back( // 658 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 659 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(662, 667) + ); + // [0-9A-Fa-f] + program.emplace_back( // 662 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(664, 667) + ); + // [0-9A-Fa-f] + program.emplace_back( // 664 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(666, 667) + ); + // [0-9A-Fa-f] + program.emplace_back( // 666 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 667 + std::make_unique(751) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 668 + std::make_unique(669, 671) + ); + // [0-9] + program.emplace_back( // 669 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(688) + ); + program.emplace_back( // 671 + std::make_unique(672, 675) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 672 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(688) + ); + program.emplace_back( // 675 + std::make_unique(676, 680) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 676 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(688) + ); + program.emplace_back( // 680 + std::make_unique(681, 685) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 681 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(688) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 685 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 688 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(690, 692) + ); + // [0-9] + program.emplace_back( // 690 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(709) + ); + program.emplace_back( // 692 + std::make_unique(693, 696) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 693 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(709) + ); + program.emplace_back( // 696 + std::make_unique(697, 701) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 697 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(709) + ); + program.emplace_back( // 701 + std::make_unique(702, 706) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 702 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(709) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 706 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 709 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(711, 713) + ); + // [0-9] + program.emplace_back( // 711 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(730) + ); + program.emplace_back( // 713 + std::make_unique(714, 717) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 714 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(730) + ); + program.emplace_back( // 717 + std::make_unique(718, 722) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 718 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(730) + ); + program.emplace_back( // 722 + std::make_unique(723, 727) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 723 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(730) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 727 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 730 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(732, 734) + ); + // [0-9] + program.emplace_back( // 732 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(751) + ); + program.emplace_back( // 734 + std::make_unique(735, 738) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 735 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(751) + ); + program.emplace_back( // 738 + std::make_unique(739, 743) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 739 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(751) + ); + program.emplace_back( // 743 + std::make_unique(744, 748) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 744 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(751) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 748 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 751 + std::make_unique(1175) + ); + program.emplace_back( // 752 + std::make_unique(753, 899) + ); + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 753 + std::make_unique(754, 788) + ); + { // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,3} + program.emplace_back( // 754 + std::make_unique(755, 781) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 755 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(757, 762) + ); + // [0-9A-Fa-f] + program.emplace_back( // 757 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(759, 762) + ); + // [0-9A-Fa-f] + program.emplace_back( // 759 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(761, 762) + ); + // [0-9A-Fa-f] + program.emplace_back( // 761 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 762 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(764, 781) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 764 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(766, 771) + ); + // [0-9A-Fa-f] + program.emplace_back( // 766 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(768, 771) + ); + // [0-9A-Fa-f] + program.emplace_back( // 768 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(770, 771) + ); + // [0-9A-Fa-f] + program.emplace_back( // 770 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 771 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(773, 781) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 773 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(775, 780) + ); + // [0-9A-Fa-f] + program.emplace_back( // 775 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(777, 780) + ); + // [0-9A-Fa-f] + program.emplace_back( // 777 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(779, 780) + ); + // [0-9A-Fa-f] + program.emplace_back( // 779 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 780 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,3} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 781 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(783, 788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 783 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(785, 788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 785 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(787, 788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 787 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 788 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(792, 797) + ); + // [0-9A-Fa-f] + program.emplace_back( // 792 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(794, 797) + ); + // [0-9A-Fa-f] + program.emplace_back( // 794 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(796, 797) + ); + // [0-9A-Fa-f] + program.emplace_back( // 796 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 797 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(799, 815) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 799 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(801, 806) + ); + // [0-9A-Fa-f] + program.emplace_back( // 801 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(803, 806) + ); + // [0-9A-Fa-f] + program.emplace_back( // 803 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(805, 806) + ); + // [0-9A-Fa-f] + program.emplace_back( // 805 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 806 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(809, 814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 809 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(811, 814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 811 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(813, 814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 813 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 814 + std::make_unique(898) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 815 + std::make_unique(816, 818) + ); + // [0-9] + program.emplace_back( // 816 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(835) + ); + program.emplace_back( // 818 + std::make_unique(819, 822) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 819 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(835) + ); + program.emplace_back( // 822 + std::make_unique(823, 827) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 823 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(835) + ); + program.emplace_back( // 827 + std::make_unique(828, 832) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 828 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(835) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 832 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 835 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(837, 839) + ); + // [0-9] + program.emplace_back( // 837 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(856) + ); + program.emplace_back( // 839 + std::make_unique(840, 843) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 840 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(856) + ); + program.emplace_back( // 843 + std::make_unique(844, 848) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 844 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(856) + ); + program.emplace_back( // 848 + std::make_unique(849, 853) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 849 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(856) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 853 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 856 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(858, 860) + ); + // [0-9] + program.emplace_back( // 858 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(877) + ); + program.emplace_back( // 860 + std::make_unique(861, 864) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 861 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(877) + ); + program.emplace_back( // 864 + std::make_unique(865, 869) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 865 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(877) + ); + program.emplace_back( // 869 + std::make_unique(870, 874) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 870 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(877) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 874 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 877 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(879, 881) + ); + // [0-9] + program.emplace_back( // 879 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(898) + ); + program.emplace_back( // 881 + std::make_unique(882, 885) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 882 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(898) + ); + program.emplace_back( // 885 + std::make_unique(886, 890) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 886 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(898) + ); + program.emplace_back( // 890 + std::make_unique(891, 895) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 891 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(898) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 895 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 898 + std::make_unique(1175) + ); + program.emplace_back( // 899 + std::make_unique(900, 1047) + ); + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 900 + std::make_unique(901, 944) + ); + { // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,4} + program.emplace_back( // 901 + std::make_unique(902, 937) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 902 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(904, 909) + ); + // [0-9A-Fa-f] + program.emplace_back( // 904 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(906, 909) + ); + // [0-9A-Fa-f] + program.emplace_back( // 906 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(908, 909) + ); + // [0-9A-Fa-f] + program.emplace_back( // 908 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 909 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(911, 937) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 911 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(913, 918) + ); + // [0-9A-Fa-f] + program.emplace_back( // 913 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(915, 918) + ); + // [0-9A-Fa-f] + program.emplace_back( // 915 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(917, 918) + ); + // [0-9A-Fa-f] + program.emplace_back( // 917 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 918 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(920, 937) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 920 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(922, 927) + ); + // [0-9A-Fa-f] + program.emplace_back( // 922 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(924, 927) + ); + // [0-9A-Fa-f] + program.emplace_back( // 924 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(926, 927) + ); + // [0-9A-Fa-f] + program.emplace_back( // 926 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 927 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(929, 937) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 929 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(931, 936) + ); + // [0-9A-Fa-f] + program.emplace_back( // 931 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(933, 936) + ); + // [0-9A-Fa-f] + program.emplace_back( // 933 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(935, 936) + ); + // [0-9A-Fa-f] + program.emplace_back( // 935 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 936 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 937 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(939, 944) + ); + // [0-9A-Fa-f] + program.emplace_back( // 939 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(941, 944) + ); + // [0-9A-Fa-f] + program.emplace_back( // 941 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(943, 944) + ); + // [0-9A-Fa-f] + program.emplace_back( // 943 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 944 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(947, 963) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 947 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(949, 954) + ); + // [0-9A-Fa-f] + program.emplace_back( // 949 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(951, 954) + ); + // [0-9A-Fa-f] + program.emplace_back( // 951 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(953, 954) + ); + // [0-9A-Fa-f] + program.emplace_back( // 953 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 954 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(957, 962) + ); + // [0-9A-Fa-f] + program.emplace_back( // 957 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(959, 962) + ); + // [0-9A-Fa-f] + program.emplace_back( // 959 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(961, 962) + ); + // [0-9A-Fa-f] + program.emplace_back( // 961 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 962 + std::make_unique(1046) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 963 + std::make_unique(964, 966) + ); + // [0-9] + program.emplace_back( // 964 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(983) + ); + program.emplace_back( // 966 + std::make_unique(967, 970) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 967 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(983) + ); + program.emplace_back( // 970 + std::make_unique(971, 975) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 971 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(983) + ); + program.emplace_back( // 975 + std::make_unique(976, 980) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 976 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(983) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 980 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 983 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(985, 987) + ); + // [0-9] + program.emplace_back( // 985 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1004) + ); + program.emplace_back( // 987 + std::make_unique(988, 991) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 988 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1004) + ); + program.emplace_back( // 991 + std::make_unique(992, 996) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 992 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1004) + ); + program.emplace_back( // 996 + std::make_unique(997, 1001) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 997 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1004) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1001 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1004 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1006, 1008) + ); + // [0-9] + program.emplace_back( // 1006 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1025) + ); + program.emplace_back( // 1008 + std::make_unique(1009, 1012) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1009 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1025) + ); + program.emplace_back( // 1012 + std::make_unique(1013, 1017) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1013 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1025) + ); + program.emplace_back( // 1017 + std::make_unique(1018, 1022) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1018 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1025) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1022 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1025 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1027, 1029) + ); + // [0-9] + program.emplace_back( // 1027 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1046) + ); + program.emplace_back( // 1029 + std::make_unique(1030, 1033) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1030 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1046) + ); + program.emplace_back( // 1033 + std::make_unique(1034, 1038) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1034 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1046) + ); + program.emplace_back( // 1038 + std::make_unique(1039, 1043) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1039 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1046) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1043 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 1046 + std::make_unique(1175) + ); + program.emplace_back( // 1047 + std::make_unique(1048, 1111) + ); + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1048 + std::make_unique(1049, 1101) + ); + { // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,5} + program.emplace_back( // 1049 + std::make_unique(1050, 1094) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1050 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1052, 1057) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1052 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1054, 1057) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1054 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1056, 1057) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1056 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1057 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1059, 1094) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1059 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1061, 1066) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1061 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1063, 1066) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1063 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1065, 1066) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1065 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1066 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1068, 1094) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1068 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1070, 1075) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1070 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1072, 1075) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1072 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1074, 1075) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1074 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1075 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1077, 1094) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1077 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1079, 1084) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1079 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1081, 1084) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1081 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1083, 1084) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1083 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1084 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1086, 1094) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1086 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1088, 1093) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1088 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1090, 1093) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1090 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1092, 1093) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1092 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1093 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,5} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1094 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1096, 1101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1096 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1098, 1101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1098 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1100, 1101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1100 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1101 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1105, 1110) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1105 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1107, 1110) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1107 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1109, 1110) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1109 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + program.emplace_back( // 1110 + std::make_unique(1175) + ); + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1111 + std::make_unique(1112, 1173) + ); + { // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,6} + program.emplace_back( // 1112 + std::make_unique(1113, 1166) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1113 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1115, 1120) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1115 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1117, 1120) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1117 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1119, 1120) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1119 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1120 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1122, 1166) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1122 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1124, 1129) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1124 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1126, 1129) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1126 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1128, 1129) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1128 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1129 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1131, 1166) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1131 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1133, 1138) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1133 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1135, 1138) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1135 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1137, 1138) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1137 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1138 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1140, 1166) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1140 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1142, 1147) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1142 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1144, 1147) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1144 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1146, 1147) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1146 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1147 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1149, 1166) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1149 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1151, 1156) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1151 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1153, 1156) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1153 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1155, 1156) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1155 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1156 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1158, 1166) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1158 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1160, 1165) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1160 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1162, 1165) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1162 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1164, 1165) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1164 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1165 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,6} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1166 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1168, 1173) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1168 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1170, 1173) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1170 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1172, 1173) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1172 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1173 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 1175 + std::make_unique(1188) + ); + { // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // [vV] + program.emplace_back( // 1176 + std::make_unique( + std::vector{ + revm::Range(L'V', L'V'), + revm::Range(L'v', L'v') + } + ) + ); + { // [0-9A-Fa-f]+ + // [0-9A-Fa-f] + program.emplace_back( // 1177 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1177, 1179) + ); + } // [0-9A-Fa-f]+ + // \. + program.emplace_back( // 1179 + std::make_unique(L'.') + ); + { // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + { // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 1180 + std::make_unique(1181, 1183) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1181 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1187) + ); + program.emplace_back( // 1183 + std::make_unique(1184, 1186) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1184 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1187) + ); + // : + program.emplace_back( // 1186 + std::make_unique(L':') + ); + } // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 1187 + std::make_unique(1180, 1188) + ); + } // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // \] + program.emplace_back( // 1188 + std::make_unique(L']') + ); + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + program.emplace_back( + std::make_unique(1286) + ); + program.emplace_back( // 1190 + std::make_unique(1191, 1275) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1191 + std::make_unique(1192, 1194) + ); + // [0-9] + program.emplace_back( // 1192 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1211) + ); + program.emplace_back( // 1194 + std::make_unique(1195, 1198) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1195 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1211) + ); + program.emplace_back( // 1198 + std::make_unique(1199, 1203) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1199 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1211) + ); + program.emplace_back( // 1203 + std::make_unique(1204, 1208) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1204 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1211) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1208 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1211 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1213, 1215) + ); + // [0-9] + program.emplace_back( // 1213 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1232) + ); + program.emplace_back( // 1215 + std::make_unique(1216, 1219) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1216 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1232) + ); + program.emplace_back( // 1219 + std::make_unique(1220, 1224) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1220 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1232) + ); + program.emplace_back( // 1224 + std::make_unique(1225, 1229) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1225 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1232) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1229 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1232 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1234, 1236) + ); + // [0-9] + program.emplace_back( // 1234 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1253) + ); + program.emplace_back( // 1236 + std::make_unique(1237, 1240) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1237 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1253) + ); + program.emplace_back( // 1240 + std::make_unique(1241, 1245) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1241 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1253) + ); + program.emplace_back( // 1245 + std::make_unique(1246, 1250) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1246 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1253) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1250 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1253 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1255, 1257) + ); + // [0-9] + program.emplace_back( // 1255 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1274) + ); + program.emplace_back( // 1257 + std::make_unique(1258, 1261) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1258 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1274) + ); + program.emplace_back( // 1261 + std::make_unique(1262, 1266) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1262 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1274) + ); + program.emplace_back( // 1266 + std::make_unique(1267, 1271) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1267 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1274) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1271 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( // 1274 + std::make_unique(1286) + ); + { // ([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 1275 + std::make_unique(1276, 1286) + ); + { // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 1276 + std::make_unique(1277, 1279) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1277 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1285) + ); + program.emplace_back( // 1279 + std::make_unique(1280, 1284) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1280 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1285) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1284 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + } // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 1285 + std::make_unique(1275) + ); + } // ([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + } // localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*) + } // ((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))? + // / + program.emplace_back( // 1286 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( + std::make_unique(1288, 1318) + ); + { // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1288 + std::make_unique(1289, 1291) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1289 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1300) + ); + program.emplace_back( // 1291 + std::make_unique(1292, 1296) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1292 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1300) + ); + program.emplace_back( // 1296 + std::make_unique(1297, 1299) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1297 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1300) + ); + // [:@] + program.emplace_back( // 1299 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1300 + std::make_unique(1288, 1301) + ); + } // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1301 + std::make_unique(1302, 1318) + ); + { // /(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 1302 + std::make_unique(L'/') + ); + { // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1303 + std::make_unique(1304, 1317) + ); + { // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1304 + std::make_unique(1305, 1307) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1305 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1316) + ); + program.emplace_back( // 1307 + std::make_unique(1308, 1312) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1308 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1316) + ); + program.emplace_back( // 1312 + std::make_unique(1313, 1315) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1313 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1316) + ); + // [:@] + program.emplace_back( // 1315 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1316 + std::make_unique(1303) + ); + } // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1317 + std::make_unique(1301) + ); + } // (/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + } // //((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))?/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( // 1318 + std::make_unique(1351) + ); + { // /((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + // / + program.emplace_back( // 1319 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( + std::make_unique(1321, 1351) + ); + { // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1321 + std::make_unique(1322, 1324) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1322 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1333) + ); + program.emplace_back( // 1324 + std::make_unique(1325, 1329) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1325 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1333) + ); + program.emplace_back( // 1329 + std::make_unique(1330, 1332) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1330 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1333) + ); + // [:@] + program.emplace_back( // 1332 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1333 + std::make_unique(1321, 1334) + ); + } // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1334 + std::make_unique(1335, 1351) + ); + { // /(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 1335 + std::make_unique(L'/') + ); + { // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1336 + std::make_unique(1337, 1350) + ); + { // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1337 + std::make_unique(1338, 1340) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1338 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1349) + ); + program.emplace_back( // 1340 + std::make_unique(1341, 1345) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1341 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1349) + ); + program.emplace_back( // 1345 + std::make_unique(1346, 1348) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1346 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1349) + ); + // [:@] + program.emplace_back( // 1348 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // [a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1349 + std::make_unique(1336) + ); + } // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1350 + std::make_unique(1334) + ); + } // (/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + } // /((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + } // //((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))?/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + // $ + program.emplace_back( // 1351 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^file:(//((localhost|(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)))?/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|/((([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/(([a-zA-Z0-9\-._~]|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesRfc8089PathProgram = ConstructMatchesRfc8089PathProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesBcp47Program() { + std::vector > program; + + { // ^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$ + { // ([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)) + program.emplace_back( + std::make_unique(1, 115) + ); + { // ([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)? + { // [a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8} + program.emplace_back( // 1 + std::make_unique(2, 22) + ); + { // [a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})? + { // [a-zA-Z]{2,3} + // [a-zA-Z] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(5, 6) + ); + // [a-zA-Z] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{2,3} + { // (-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})? + program.emplace_back( // 6 + std::make_unique(7, 21) + ); + { // -[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2} + // - + program.emplace_back( // 7 + std::make_unique(L'-') + ); + { // [a-zA-Z]{3} + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{3} + { // (-[a-zA-Z]{3}){0,2} + program.emplace_back( + std::make_unique(12, 21) + ); + { // -[a-zA-Z]{3} + // - + program.emplace_back( // 12 + std::make_unique(L'-') + ); + { // [a-zA-Z]{3} + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{3} + } // -[a-zA-Z]{3} + program.emplace_back( + std::make_unique(17, 21) + ); + { // -[a-zA-Z]{3} + // - + program.emplace_back( // 17 + std::make_unique(L'-') + ); + { // [a-zA-Z]{3} + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{3} + } // -[a-zA-Z]{3} + } // (-[a-zA-Z]{3}){0,2} + } // -[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2} + } // (-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})? + } // [a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})? + program.emplace_back( // 21 + std::make_unique(39) + ); + program.emplace_back( // 22 + std::make_unique(23, 28) + ); + { // [a-zA-Z]{4} + // [a-zA-Z] + program.emplace_back( // 23 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{4} + program.emplace_back( + std::make_unique(39) + ); + { // [a-zA-Z]{5,8} + // [a-zA-Z] + program.emplace_back( // 28 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(34, 39) + ); + // [a-zA-Z] + program.emplace_back( // 34 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(36, 39) + ); + // [a-zA-Z] + program.emplace_back( // 36 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(38, 39) + ); + // [a-zA-Z] + program.emplace_back( // 38 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{5,8} + } // [a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8} + { // (-[a-zA-Z]{4})? + program.emplace_back( // 39 + std::make_unique(40, 45) + ); + { // -[a-zA-Z]{4} + // - + program.emplace_back( // 40 + std::make_unique(L'-') + ); + { // [a-zA-Z]{4} + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{4} + } // -[a-zA-Z]{4} + } // (-[a-zA-Z]{4})? + { // (-([a-zA-Z]{2}|[0-9]{3}))? + program.emplace_back( // 45 + std::make_unique(46, 54) + ); + { // -([a-zA-Z]{2}|[0-9]{3}) + // - + program.emplace_back( // 46 + std::make_unique(L'-') + ); + { // [a-zA-Z]{2}|[0-9]{3} + program.emplace_back( + std::make_unique(48, 51) + ); + { // [a-zA-Z]{2} + // [a-zA-Z] + program.emplace_back( // 48 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [a-zA-Z]{2} + program.emplace_back( + std::make_unique(54) + ); + { // [0-9]{3} + // [0-9] + program.emplace_back( // 51 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{3} + } // [a-zA-Z]{2}|[0-9]{3} + } // -([a-zA-Z]{2}|[0-9]{3}) + } // (-([a-zA-Z]{2}|[0-9]{3}))? + { // (-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))* + program.emplace_back( // 54 + std::make_unique(55, 74) + ); + { // -(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}) + // - + program.emplace_back( // 55 + std::make_unique(L'-') + ); + { // ([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3} + program.emplace_back( + std::make_unique(57, 69) + ); + { // ([a-zA-Z0-9]){5,8} + // [a-zA-Z0-9] + program.emplace_back( // 57 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(63, 68) + ); + // [a-zA-Z0-9] + program.emplace_back( // 63 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(65, 68) + ); + // [a-zA-Z0-9] + program.emplace_back( // 65 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(67, 68) + ); + // [a-zA-Z0-9] + program.emplace_back( // 67 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // ([a-zA-Z0-9]){5,8} + program.emplace_back( // 68 + std::make_unique(73) + ); + { // [0-9]([a-zA-Z0-9]){3} + // [0-9] + program.emplace_back( // 69 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + { // ([a-zA-Z0-9]){3} + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // ([a-zA-Z0-9]){3} + } // [0-9]([a-zA-Z0-9]){3} + } // ([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3} + } // -(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}) + program.emplace_back( // 73 + std::make_unique(54) + ); + } // (-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))* + { // (-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)* + program.emplace_back( // 74 + std::make_unique(75, 94) + ); + { // -[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+ + // - + program.emplace_back( // 75 + std::make_unique(L'-') + ); + // [0-9A-WY-Za-wy-z] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'W'), + revm::Range(L'Y', L'Z'), + revm::Range(L'a', L'w'), + revm::Range(L'y', L'z') + } + ) + ); + { // (-([a-zA-Z0-9]){2,8})+ + { // -([a-zA-Z0-9]){2,8} + // - + program.emplace_back( // 77 + std::make_unique(L'-') + ); + { // ([a-zA-Z0-9]){2,8} + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(81, 92) + ); + // [a-zA-Z0-9] + program.emplace_back( // 81 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(83, 92) + ); + // [a-zA-Z0-9] + program.emplace_back( // 83 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(85, 92) + ); + // [a-zA-Z0-9] + program.emplace_back( // 85 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(87, 92) + ); + // [a-zA-Z0-9] + program.emplace_back( // 87 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(89, 92) + ); + // [a-zA-Z0-9] + program.emplace_back( // 89 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(91, 92) + ); + // [a-zA-Z0-9] + program.emplace_back( // 91 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // ([a-zA-Z0-9]){2,8} + } // -([a-zA-Z0-9]){2,8} + program.emplace_back( // 92 + std::make_unique(77, 93) + ); + } // (-([a-zA-Z0-9]){2,8})+ + } // -[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+ + program.emplace_back( // 93 + std::make_unique(74) + ); + } // (-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)* + { // (-[xX](-([a-zA-Z0-9]){1,8})+)? + program.emplace_back( // 94 + std::make_unique(95, 114) + ); + { // -[xX](-([a-zA-Z0-9]){1,8})+ + // - + program.emplace_back( // 95 + std::make_unique(L'-') + ); + // [xX] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'X', L'X'), + revm::Range(L'x', L'x') + } + ) + ); + { // (-([a-zA-Z0-9]){1,8})+ + { // -([a-zA-Z0-9]){1,8} + // - + program.emplace_back( // 97 + std::make_unique(L'-') + ); + { // ([a-zA-Z0-9]){1,8} + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(100, 113) + ); + // [a-zA-Z0-9] + program.emplace_back( // 100 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(102, 113) + ); + // [a-zA-Z0-9] + program.emplace_back( // 102 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(104, 113) + ); + // [a-zA-Z0-9] + program.emplace_back( // 104 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(106, 113) + ); + // [a-zA-Z0-9] + program.emplace_back( // 106 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(108, 113) + ); + // [a-zA-Z0-9] + program.emplace_back( // 108 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(110, 113) + ); + // [a-zA-Z0-9] + program.emplace_back( // 110 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(112, 113) + ); + // [a-zA-Z0-9] + program.emplace_back( // 112 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // ([a-zA-Z0-9]){1,8} + } // -([a-zA-Z0-9]){1,8} + program.emplace_back( // 113 + std::make_unique(97, 114) + ); + } // (-([a-zA-Z0-9]){1,8})+ + } // -[xX](-([a-zA-Z0-9]){1,8})+ + } // (-[xX](-([a-zA-Z0-9]){1,8})+)? + } // ([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)? + program.emplace_back( // 114 + std::make_unique(377) + ); + program.emplace_back( // 115 + std::make_unique(116, 135) + ); + { // [xX](-([a-zA-Z0-9]){1,8})+ + // [xX] + program.emplace_back( // 116 + std::make_unique( + std::vector{ + revm::Range(L'X', L'X'), + revm::Range(L'x', L'x') + } + ) + ); + { // (-([a-zA-Z0-9]){1,8})+ + { // -([a-zA-Z0-9]){1,8} + // - + program.emplace_back( // 117 + std::make_unique(L'-') + ); + { // ([a-zA-Z0-9]){1,8} + // [a-zA-Z0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(120, 133) + ); + // [a-zA-Z0-9] + program.emplace_back( // 120 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(122, 133) + ); + // [a-zA-Z0-9] + program.emplace_back( // 122 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(124, 133) + ); + // [a-zA-Z0-9] + program.emplace_back( // 124 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(126, 133) + ); + // [a-zA-Z0-9] + program.emplace_back( // 126 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(128, 133) + ); + // [a-zA-Z0-9] + program.emplace_back( // 128 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(130, 133) + ); + // [a-zA-Z0-9] + program.emplace_back( // 130 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(132, 133) + ); + // [a-zA-Z0-9] + program.emplace_back( // 132 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // ([a-zA-Z0-9]){1,8} + } // -([a-zA-Z0-9]){1,8} + program.emplace_back( // 133 + std::make_unique(117, 134) + ); + } // (-([a-zA-Z0-9]){1,8})+ + } // [xX](-([a-zA-Z0-9]){1,8})+ + program.emplace_back( // 134 + std::make_unique(377) + ); + { // (en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang) + program.emplace_back( // 135 + std::make_unique(136, 288) + ); + { // en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE + program.emplace_back( // 136 + std::make_unique(137, 147) + ); + { // en-GB-oed + // e + program.emplace_back( // 137 + std::make_unique(L'e') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // G + program.emplace_back( + std::make_unique(L'G') + ); + // B + program.emplace_back( + std::make_unique(L'B') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // e + program.emplace_back( + std::make_unique(L'e') + ); + // d + program.emplace_back( + std::make_unique(L'd') + ); + } // en-GB-oed + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 147 + std::make_unique(148, 154) + ); + { // i-ami + // i + program.emplace_back( // 148 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // m + program.emplace_back( + std::make_unique(L'm') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + } // i-ami + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 154 + std::make_unique(155, 161) + ); + { // i-bnn + // i + program.emplace_back( // 155 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // b + program.emplace_back( + std::make_unique(L'b') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // i-bnn + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 161 + std::make_unique(162, 172) + ); + { // i-default + // i + program.emplace_back( // 162 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // d + program.emplace_back( + std::make_unique(L'd') + ); + // e + program.emplace_back( + std::make_unique(L'e') + ); + // f + program.emplace_back( + std::make_unique(L'f') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // u + program.emplace_back( + std::make_unique(L'u') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // t + program.emplace_back( + std::make_unique(L't') + ); + } // i-default + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 172 + std::make_unique(173, 184) + ); + { // i-enochian + // i + program.emplace_back( // 173 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // e + program.emplace_back( + std::make_unique(L'e') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // c + program.emplace_back( + std::make_unique(L'c') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // i-enochian + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 184 + std::make_unique(185, 191) + ); + { // i-hak + // i + program.emplace_back( // 185 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // k + program.emplace_back( + std::make_unique(L'k') + ); + } // i-hak + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 191 + std::make_unique(192, 202) + ); + { // i-klingon + // i + program.emplace_back( // 192 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // k + program.emplace_back( + std::make_unique(L'k') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // i-klingon + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 202 + std::make_unique(203, 209) + ); + { // i-lux + // i + program.emplace_back( // 203 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // u + program.emplace_back( + std::make_unique(L'u') + ); + // x + program.emplace_back( + std::make_unique(L'x') + ); + } // i-lux + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 209 + std::make_unique(210, 218) + ); + { // i-mingo + // i + program.emplace_back( // 210 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // m + program.emplace_back( + std::make_unique(L'm') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + } // i-mingo + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 218 + std::make_unique(219, 228) + ); + { // i-navajo + // i + program.emplace_back( // 219 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // v + program.emplace_back( + std::make_unique(L'v') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // j + program.emplace_back( + std::make_unique(L'j') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + } // i-navajo + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 228 + std::make_unique(229, 235) + ); + { // i-pwn + // i + program.emplace_back( // 229 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // p + program.emplace_back( + std::make_unique(L'p') + ); + // w + program.emplace_back( + std::make_unique(L'w') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // i-pwn + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 235 + std::make_unique(236, 242) + ); + { // i-tao + // i + program.emplace_back( // 236 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // t + program.emplace_back( + std::make_unique(L't') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + } // i-tao + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 242 + std::make_unique(243, 249) + ); + { // i-tay + // i + program.emplace_back( // 243 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // t + program.emplace_back( + std::make_unique(L't') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // y + program.emplace_back( + std::make_unique(L'y') + ); + } // i-tay + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 249 + std::make_unique(250, 256) + ); + { // i-tsu + // i + program.emplace_back( // 250 + std::make_unique(L'i') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // t + program.emplace_back( + std::make_unique(L't') + ); + // s + program.emplace_back( + std::make_unique(L's') + ); + // u + program.emplace_back( + std::make_unique(L'u') + ); + } // i-tsu + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 256 + std::make_unique(257, 267) + ); + { // sgn-BE-FR + // s + program.emplace_back( // 257 + std::make_unique(L's') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // B + program.emplace_back( + std::make_unique(L'B') + ); + // E + program.emplace_back( + std::make_unique(L'E') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // F + program.emplace_back( + std::make_unique(L'F') + ); + // R + program.emplace_back( + std::make_unique(L'R') + ); + } // sgn-BE-FR + program.emplace_back( + std::make_unique(287) + ); + program.emplace_back( // 267 + std::make_unique(268, 278) + ); + { // sgn-BE-NL + // s + program.emplace_back( // 268 + std::make_unique(L's') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // B + program.emplace_back( + std::make_unique(L'B') + ); + // E + program.emplace_back( + std::make_unique(L'E') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // N + program.emplace_back( + std::make_unique(L'N') + ); + // L + program.emplace_back( + std::make_unique(L'L') + ); + } // sgn-BE-NL + program.emplace_back( + std::make_unique(287) + ); + { // sgn-CH-DE + // s + program.emplace_back( // 278 + std::make_unique(L's') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // C + program.emplace_back( + std::make_unique(L'C') + ); + // H + program.emplace_back( + std::make_unique(L'H') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // D + program.emplace_back( + std::make_unique(L'D') + ); + // E + program.emplace_back( + std::make_unique(L'E') + ); + } // sgn-CH-DE + } // en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE + program.emplace_back( // 287 + std::make_unique(377) + ); + { // art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang + program.emplace_back( // 288 + std::make_unique(289, 300) + ); + { // art-lojban + // a + program.emplace_back( // 289 + std::make_unique(L'a') + ); + // r + program.emplace_back( + std::make_unique(L'r') + ); + // t + program.emplace_back( + std::make_unique(L't') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // j + program.emplace_back( + std::make_unique(L'j') + ); + // b + program.emplace_back( + std::make_unique(L'b') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // art-lojban + program.emplace_back( + std::make_unique(377) + ); + program.emplace_back( // 300 + std::make_unique(301, 313) + ); + { // cel-gaulish + // c + program.emplace_back( // 301 + std::make_unique(L'c') + ); + // e + program.emplace_back( + std::make_unique(L'e') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // u + program.emplace_back( + std::make_unique(L'u') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // s + program.emplace_back( + std::make_unique(L's') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + } // cel-gaulish + program.emplace_back( + std::make_unique(377) + ); + program.emplace_back( // 313 + std::make_unique(314, 321) + ); + { // no-bok + // n + program.emplace_back( // 314 + std::make_unique(L'n') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // b + program.emplace_back( + std::make_unique(L'b') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // k + program.emplace_back( + std::make_unique(L'k') + ); + } // no-bok + program.emplace_back( + std::make_unique(377) + ); + program.emplace_back( // 321 + std::make_unique(322, 329) + ); + { // no-nyn + // n + program.emplace_back( // 322 + std::make_unique(L'n') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // y + program.emplace_back( + std::make_unique(L'y') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // no-nyn + program.emplace_back( + std::make_unique(377) + ); + program.emplace_back( // 329 + std::make_unique(330, 339) + ); + { // zh-guoyu + // z + program.emplace_back( // 330 + std::make_unique(L'z') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + // u + program.emplace_back( + std::make_unique(L'u') + ); + // o + program.emplace_back( + std::make_unique(L'o') + ); + // y + program.emplace_back( + std::make_unique(L'y') + ); + // u + program.emplace_back( + std::make_unique(L'u') + ); + } // zh-guoyu + program.emplace_back( + std::make_unique(377) + ); + program.emplace_back( // 339 + std::make_unique(340, 349) + ); + { // zh-hakka + // z + program.emplace_back( // 340 + std::make_unique(L'z') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // k + program.emplace_back( + std::make_unique(L'k') + ); + // k + program.emplace_back( + std::make_unique(L'k') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + } // zh-hakka + program.emplace_back( + std::make_unique(377) + ); + program.emplace_back( // 349 + std::make_unique(350, 357) + ); + { // zh-min + // z + program.emplace_back( // 350 + std::make_unique(L'z') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // m + program.emplace_back( + std::make_unique(L'm') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // zh-min + program.emplace_back( + std::make_unique(377) + ); + program.emplace_back( // 357 + std::make_unique(358, 369) + ); + { // zh-min-nan + // z + program.emplace_back( // 358 + std::make_unique(L'z') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // m + program.emplace_back( + std::make_unique(L'm') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // zh-min-nan + program.emplace_back( + std::make_unique(377) + ); + { // zh-xiang + // z + program.emplace_back( // 369 + std::make_unique(L'z') + ); + // h + program.emplace_back( + std::make_unique(L'h') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // x + program.emplace_back( + std::make_unique(L'x') + ); + // i + program.emplace_back( + std::make_unique(L'i') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + // g + program.emplace_back( + std::make_unique(L'g') + ); + } // zh-xiang + } // art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang + } // (en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang) + } // ([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)) + // $ + program.emplace_back( // 377 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(([a-zA-Z]{2,3}(-[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2})?|[a-zA-Z]{4}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-(([a-zA-Z0-9]){5,8}|[0-9]([a-zA-Z0-9]){3}))*(-[0-9A-WY-Za-wy-z](-([a-zA-Z0-9]){2,8})+)*(-[xX](-([a-zA-Z0-9]){1,8})+)?|[xX](-([a-zA-Z0-9]){1,8})+|((en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)))$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesBcp47Program = ConstructMatchesBcp47Program(); + +std::vector< + std::unique_ptr +> ConstructMatchesXmlSerializableStringProgram() { + std::vector > program; + + #if __WCHAR_MAX__ <= 0x10000 + // The size of wchar is 2 bytes. + + { // ^([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])*$ + { // ([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])* + program.emplace_back( // 0 + std::make_unique(1, 15) + ); + { // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff] + program.emplace_back( // 1 + std::make_unique(2, 4) + ); + // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L'\n', L'\n'), + revm::Range(L'\r', L'\r'), + revm::Range(L' ', L'\ud7ff'), + revm::Range(L'\ue000', L'\ufffd') + } + ) + ); + program.emplace_back( + std::make_unique(14) + ); + program.emplace_back( // 4 + std::make_unique(5, 8) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 5 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(14) + ); + program.emplace_back( // 8 + std::make_unique(9, 12) + ); + { // [\ud801-\udbfe][\udc00-\udfff] + // [\ud801-\udbfe] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xdbfe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\udbfe][\udc00-\udfff] + program.emplace_back( + std::make_unique(14) + ); + { // \udbff[\udc00-\udfff] + // \udbff + program.emplace_back( // 12 + std::make_unique(static_cast(0xdbff)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udbff[\udc00-\udfff] + } // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff] + program.emplace_back( // 14 + std::make_unique(0) + ); + } // ([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])* + // $ + program.emplace_back( // 15 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])*$ + #else + // The size of wchar is above 2 bytes. + + { // ^[\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]*$ + { // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]* + program.emplace_back( // 0 + std::make_unique(1, 3) + ); + // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L'\n', L'\n'), + revm::Range(L'\r', L'\r'), + revm::Range(L' ', L'\ud7ff'), + revm::Range(L'\ue000', L'\ufffd'), + revm::Range(L'\U00010000', L'\U0010ffff') + } + ) + ); + program.emplace_back( + std::make_unique(0) + ); + } // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]* + // $ + program.emplace_back( // 3 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]*$ + #endif + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXmlSerializableStringProgram = ConstructMatchesXmlSerializableStringProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsAnyUriProgram() { + std::vector > program; + + #if __WCHAR_MAX__ <= 0x10000 + // The size of wchar is 2 bytes. + + { // ^([a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?)$ + { // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( + std::make_unique(1, 2985) + ); + { // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + // [a-zA-Z] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // [a-zA-Z0-9+\-.]* + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // [a-zA-Z0-9+\-.] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(2) + ); + } // [a-zA-Z0-9+\-.]* + // : + program.emplace_back( // 5 + std::make_unique(L':') + ); + { // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + program.emplace_back( + std::make_unique(7, 1827) + ); + { // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + // / + program.emplace_back( // 7 + std::make_unique(L'/') + ); + // / + program.emplace_back( + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + program.emplace_back( + std::make_unique(10, 196) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + program.emplace_back( // 10 + std::make_unique(11, 195) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 11 + std::make_unique(12, 185) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 12 + std::make_unique(13, 15) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(184) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 15 + std::make_unique(16, 18) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 16 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 18 + std::make_unique(19, 22) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 19 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 22 + std::make_unique(23, 26) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 23 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 26 + std::make_unique(27, 30) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 27 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 30 + std::make_unique(31, 34) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 31 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 34 + std::make_unique(35, 38) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 35 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 38 + std::make_unique(39, 42) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 39 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 42 + std::make_unique(43, 46) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 43 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 46 + std::make_unique(47, 50) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 47 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 50 + std::make_unique(51, 54) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 51 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 54 + std::make_unique(55, 58) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 55 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 58 + std::make_unique(59, 62) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 59 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 62 + std::make_unique(63, 66) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 63 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 66 + std::make_unique(67, 70) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 67 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 70 + std::make_unique(71, 74) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 71 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 74 + std::make_unique(75, 78) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 75 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 78 + std::make_unique(79, 82) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 79 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 82 + std::make_unique(83, 86) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 83 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 86 + std::make_unique(87, 90) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 87 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 90 + std::make_unique(91, 94) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 91 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 94 + std::make_unique(95, 98) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 95 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 98 + std::make_unique(99, 102) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 99 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 102 + std::make_unique(103, 106) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 103 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 106 + std::make_unique(107, 110) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 107 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 110 + std::make_unique(111, 114) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 111 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 114 + std::make_unique(115, 118) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 115 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 118 + std::make_unique(119, 122) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 119 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 122 + std::make_unique(123, 126) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 123 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 126 + std::make_unique(127, 130) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 127 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 130 + std::make_unique(131, 134) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 131 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 134 + std::make_unique(135, 138) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 135 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 138 + std::make_unique(139, 142) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 139 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 142 + std::make_unique(143, 146) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 143 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 146 + std::make_unique(147, 150) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 147 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 150 + std::make_unique(151, 154) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 151 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 154 + std::make_unique(155, 158) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 155 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 158 + std::make_unique(159, 162) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 159 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 162 + std::make_unique(163, 166) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 163 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 166 + std::make_unique(167, 170) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 167 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 170 + std::make_unique(171, 174) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 171 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 174 + std::make_unique(175, 178) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 175 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + program.emplace_back( // 178 + std::make_unique(179, 182) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 179 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(184) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 182 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 184 + std::make_unique(194) + ); + program.emplace_back( // 185 + std::make_unique(186, 190) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 186 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(194) + ); + program.emplace_back( // 190 + std::make_unique(191, 193) + ); + // [!$&'()*+,;=] + program.emplace_back( // 191 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(194) + ); + // : + program.emplace_back( // 193 + std::make_unique(L':') + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 194 + std::make_unique(10) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + // @ + program.emplace_back( // 195 + std::make_unique(L'@') + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 196 + std::make_unique(197, 1366) + ); + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + // \[ + program.emplace_back( // 197 + std::make_unique(L'[') + ); + { // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + program.emplace_back( + std::make_unique(199, 1352) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 199 + std::make_unique(200, 349) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 200 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(202, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 202 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(204, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 204 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(206, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 206 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 207 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(210, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 210 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(212, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 212 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(214, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 214 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 215 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(218, 223) + ); + // [0-9A-Fa-f] + program.emplace_back( // 218 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(220, 223) + ); + // [0-9A-Fa-f] + program.emplace_back( // 220 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(222, 223) + ); + // [0-9A-Fa-f] + program.emplace_back( // 222 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 223 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(226, 231) + ); + // [0-9A-Fa-f] + program.emplace_back( // 226 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(228, 231) + ); + // [0-9A-Fa-f] + program.emplace_back( // 228 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(230, 231) + ); + // [0-9A-Fa-f] + program.emplace_back( // 230 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 231 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(234, 239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 234 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(236, 239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 236 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(238, 239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 238 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 239 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(242, 247) + ); + // [0-9A-Fa-f] + program.emplace_back( // 242 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(244, 247) + ); + // [0-9A-Fa-f] + program.emplace_back( // 244 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(246, 247) + ); + // [0-9A-Fa-f] + program.emplace_back( // 246 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 247 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(249, 265) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 249 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(251, 256) + ); + // [0-9A-Fa-f] + program.emplace_back( // 251 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(253, 256) + ); + // [0-9A-Fa-f] + program.emplace_back( // 253 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(255, 256) + ); + // [0-9A-Fa-f] + program.emplace_back( // 255 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 256 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(259, 264) + ); + // [0-9A-Fa-f] + program.emplace_back( // 259 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(261, 264) + ); + // [0-9A-Fa-f] + program.emplace_back( // 261 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(263, 264) + ); + // [0-9A-Fa-f] + program.emplace_back( // 263 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 264 + std::make_unique(348) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 265 + std::make_unique(266, 268) + ); + // [0-9] + program.emplace_back( // 266 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(285) + ); + program.emplace_back( // 268 + std::make_unique(269, 272) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 269 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(285) + ); + program.emplace_back( // 272 + std::make_unique(273, 277) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 273 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(285) + ); + program.emplace_back( // 277 + std::make_unique(278, 282) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 278 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(285) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 282 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 285 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(287, 289) + ); + // [0-9] + program.emplace_back( // 287 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(306) + ); + program.emplace_back( // 289 + std::make_unique(290, 293) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 290 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(306) + ); + program.emplace_back( // 293 + std::make_unique(294, 298) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 294 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(306) + ); + program.emplace_back( // 298 + std::make_unique(299, 303) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 299 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(306) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 303 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 306 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(308, 310) + ); + // [0-9] + program.emplace_back( // 308 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(327) + ); + program.emplace_back( // 310 + std::make_unique(311, 314) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 311 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(327) + ); + program.emplace_back( // 314 + std::make_unique(315, 319) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 315 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(327) + ); + program.emplace_back( // 319 + std::make_unique(320, 324) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 320 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(327) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 324 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 327 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(329, 331) + ); + // [0-9] + program.emplace_back( // 329 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(348) + ); + program.emplace_back( // 331 + std::make_unique(332, 335) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 332 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(348) + ); + program.emplace_back( // 335 + std::make_unique(336, 340) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 336 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(348) + ); + program.emplace_back( // 340 + std::make_unique(341, 345) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 341 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(348) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 345 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 348 + std::make_unique(1351) + ); + program.emplace_back( // 349 + std::make_unique(350, 493) + ); + { // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + // : + program.emplace_back( // 350 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(354, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 354 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(356, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 356 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(358, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 358 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 359 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(362, 367) + ); + // [0-9A-Fa-f] + program.emplace_back( // 362 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(364, 367) + ); + // [0-9A-Fa-f] + program.emplace_back( // 364 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(366, 367) + ); + // [0-9A-Fa-f] + program.emplace_back( // 366 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 367 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(370, 375) + ); + // [0-9A-Fa-f] + program.emplace_back( // 370 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(372, 375) + ); + // [0-9A-Fa-f] + program.emplace_back( // 372 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(374, 375) + ); + // [0-9A-Fa-f] + program.emplace_back( // 374 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 375 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(378, 383) + ); + // [0-9A-Fa-f] + program.emplace_back( // 378 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(380, 383) + ); + // [0-9A-Fa-f] + program.emplace_back( // 380 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(382, 383) + ); + // [0-9A-Fa-f] + program.emplace_back( // 382 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 383 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(386, 391) + ); + // [0-9A-Fa-f] + program.emplace_back( // 386 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(388, 391) + ); + // [0-9A-Fa-f] + program.emplace_back( // 388 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(390, 391) + ); + // [0-9A-Fa-f] + program.emplace_back( // 390 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 391 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(393, 409) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 393 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(395, 400) + ); + // [0-9A-Fa-f] + program.emplace_back( // 395 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(397, 400) + ); + // [0-9A-Fa-f] + program.emplace_back( // 397 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(399, 400) + ); + // [0-9A-Fa-f] + program.emplace_back( // 399 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 400 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(403, 408) + ); + // [0-9A-Fa-f] + program.emplace_back( // 403 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(405, 408) + ); + // [0-9A-Fa-f] + program.emplace_back( // 405 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(407, 408) + ); + // [0-9A-Fa-f] + program.emplace_back( // 407 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 408 + std::make_unique(492) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 409 + std::make_unique(410, 412) + ); + // [0-9] + program.emplace_back( // 410 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(429) + ); + program.emplace_back( // 412 + std::make_unique(413, 416) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 413 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(429) + ); + program.emplace_back( // 416 + std::make_unique(417, 421) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 417 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(429) + ); + program.emplace_back( // 421 + std::make_unique(422, 426) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 422 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(429) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 426 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 429 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(431, 433) + ); + // [0-9] + program.emplace_back( // 431 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(450) + ); + program.emplace_back( // 433 + std::make_unique(434, 437) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 434 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(450) + ); + program.emplace_back( // 437 + std::make_unique(438, 442) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 438 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(450) + ); + program.emplace_back( // 442 + std::make_unique(443, 447) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 443 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(450) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 447 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 450 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(452, 454) + ); + // [0-9] + program.emplace_back( // 452 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(471) + ); + program.emplace_back( // 454 + std::make_unique(455, 458) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 455 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(471) + ); + program.emplace_back( // 458 + std::make_unique(459, 463) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 459 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(471) + ); + program.emplace_back( // 463 + std::make_unique(464, 468) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 464 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(471) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 468 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 471 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(473, 475) + ); + // [0-9] + program.emplace_back( // 473 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(492) + ); + program.emplace_back( // 475 + std::make_unique(476, 479) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 476 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(492) + ); + program.emplace_back( // 479 + std::make_unique(480, 484) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 480 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(492) + ); + program.emplace_back( // 484 + std::make_unique(485, 489) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 485 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(492) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 489 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 492 + std::make_unique(1351) + ); + program.emplace_back( // 493 + std::make_unique(494, 637) + ); + { // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4})? + program.emplace_back( // 494 + std::make_unique(495, 502) + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 495 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(497, 502) + ); + // [0-9A-Fa-f] + program.emplace_back( // 497 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(499, 502) + ); + // [0-9A-Fa-f] + program.emplace_back( // 499 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(501, 502) + ); + // [0-9A-Fa-f] + program.emplace_back( // 501 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 502 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(506, 511) + ); + // [0-9A-Fa-f] + program.emplace_back( // 506 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(508, 511) + ); + // [0-9A-Fa-f] + program.emplace_back( // 508 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(510, 511) + ); + // [0-9A-Fa-f] + program.emplace_back( // 510 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 511 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(514, 519) + ); + // [0-9A-Fa-f] + program.emplace_back( // 514 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(516, 519) + ); + // [0-9A-Fa-f] + program.emplace_back( // 516 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(518, 519) + ); + // [0-9A-Fa-f] + program.emplace_back( // 518 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 519 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(522, 527) + ); + // [0-9A-Fa-f] + program.emplace_back( // 522 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(524, 527) + ); + // [0-9A-Fa-f] + program.emplace_back( // 524 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(526, 527) + ); + // [0-9A-Fa-f] + program.emplace_back( // 526 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 527 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(530, 535) + ); + // [0-9A-Fa-f] + program.emplace_back( // 530 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(532, 535) + ); + // [0-9A-Fa-f] + program.emplace_back( // 532 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(534, 535) + ); + // [0-9A-Fa-f] + program.emplace_back( // 534 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 535 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(537, 553) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 537 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(539, 544) + ); + // [0-9A-Fa-f] + program.emplace_back( // 539 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(541, 544) + ); + // [0-9A-Fa-f] + program.emplace_back( // 541 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(543, 544) + ); + // [0-9A-Fa-f] + program.emplace_back( // 543 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 544 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(547, 552) + ); + // [0-9A-Fa-f] + program.emplace_back( // 547 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(549, 552) + ); + // [0-9A-Fa-f] + program.emplace_back( // 549 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(551, 552) + ); + // [0-9A-Fa-f] + program.emplace_back( // 551 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 552 + std::make_unique(636) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 553 + std::make_unique(554, 556) + ); + // [0-9] + program.emplace_back( // 554 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(573) + ); + program.emplace_back( // 556 + std::make_unique(557, 560) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 557 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(573) + ); + program.emplace_back( // 560 + std::make_unique(561, 565) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 561 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(573) + ); + program.emplace_back( // 565 + std::make_unique(566, 570) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 566 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(573) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 570 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 573 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(575, 577) + ); + // [0-9] + program.emplace_back( // 575 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(594) + ); + program.emplace_back( // 577 + std::make_unique(578, 581) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 578 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(594) + ); + program.emplace_back( // 581 + std::make_unique(582, 586) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 582 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(594) + ); + program.emplace_back( // 586 + std::make_unique(587, 591) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 587 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(594) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 591 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 594 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(596, 598) + ); + // [0-9] + program.emplace_back( // 596 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(615) + ); + program.emplace_back( // 598 + std::make_unique(599, 602) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 599 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(615) + ); + program.emplace_back( // 602 + std::make_unique(603, 607) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 603 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(615) + ); + program.emplace_back( // 607 + std::make_unique(608, 612) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 608 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(615) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 612 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 615 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(617, 619) + ); + // [0-9] + program.emplace_back( // 617 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(636) + ); + program.emplace_back( // 619 + std::make_unique(620, 623) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 620 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(636) + ); + program.emplace_back( // 623 + std::make_unique(624, 628) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 624 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(636) + ); + program.emplace_back( // 628 + std::make_unique(629, 633) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 629 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(636) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 633 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 636 + std::make_unique(1351) + ); + program.emplace_back( // 637 + std::make_unique(638, 782) + ); + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + program.emplace_back( // 638 + std::make_unique(639, 655) + ); + { // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:)? + program.emplace_back( // 639 + std::make_unique(640, 648) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 640 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(642, 647) + ); + // [0-9A-Fa-f] + program.emplace_back( // 642 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(644, 647) + ); + // [0-9A-Fa-f] + program.emplace_back( // 644 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(646, 647) + ); + // [0-9A-Fa-f] + program.emplace_back( // 646 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 647 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:)? + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 648 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(650, 655) + ); + // [0-9A-Fa-f] + program.emplace_back( // 650 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(652, 655) + ); + // [0-9A-Fa-f] + program.emplace_back( // 652 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(654, 655) + ); + // [0-9A-Fa-f] + program.emplace_back( // 654 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 655 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(659, 664) + ); + // [0-9A-Fa-f] + program.emplace_back( // 659 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(661, 664) + ); + // [0-9A-Fa-f] + program.emplace_back( // 661 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(663, 664) + ); + // [0-9A-Fa-f] + program.emplace_back( // 663 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 664 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(667, 672) + ); + // [0-9A-Fa-f] + program.emplace_back( // 667 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(669, 672) + ); + // [0-9A-Fa-f] + program.emplace_back( // 669 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(671, 672) + ); + // [0-9A-Fa-f] + program.emplace_back( // 671 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 672 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(675, 680) + ); + // [0-9A-Fa-f] + program.emplace_back( // 675 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(677, 680) + ); + // [0-9A-Fa-f] + program.emplace_back( // 677 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(679, 680) + ); + // [0-9A-Fa-f] + program.emplace_back( // 679 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 680 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(682, 698) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 682 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(684, 689) + ); + // [0-9A-Fa-f] + program.emplace_back( // 684 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(686, 689) + ); + // [0-9A-Fa-f] + program.emplace_back( // 686 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(688, 689) + ); + // [0-9A-Fa-f] + program.emplace_back( // 688 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 689 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(692, 697) + ); + // [0-9A-Fa-f] + program.emplace_back( // 692 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(694, 697) + ); + // [0-9A-Fa-f] + program.emplace_back( // 694 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(696, 697) + ); + // [0-9A-Fa-f] + program.emplace_back( // 696 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 697 + std::make_unique(781) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 698 + std::make_unique(699, 701) + ); + // [0-9] + program.emplace_back( // 699 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(718) + ); + program.emplace_back( // 701 + std::make_unique(702, 705) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 702 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(718) + ); + program.emplace_back( // 705 + std::make_unique(706, 710) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 706 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(718) + ); + program.emplace_back( // 710 + std::make_unique(711, 715) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 711 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(718) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 715 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 718 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(720, 722) + ); + // [0-9] + program.emplace_back( // 720 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(739) + ); + program.emplace_back( // 722 + std::make_unique(723, 726) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 723 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(739) + ); + program.emplace_back( // 726 + std::make_unique(727, 731) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 727 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(739) + ); + program.emplace_back( // 731 + std::make_unique(732, 736) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 732 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(739) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 736 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 739 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(741, 743) + ); + // [0-9] + program.emplace_back( // 741 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(760) + ); + program.emplace_back( // 743 + std::make_unique(744, 747) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 744 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(760) + ); + program.emplace_back( // 747 + std::make_unique(748, 752) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 748 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(760) + ); + program.emplace_back( // 752 + std::make_unique(753, 757) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 753 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(760) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 757 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 760 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(762, 764) + ); + // [0-9] + program.emplace_back( // 762 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(781) + ); + program.emplace_back( // 764 + std::make_unique(765, 768) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 765 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(781) + ); + program.emplace_back( // 768 + std::make_unique(769, 773) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 769 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(781) + ); + program.emplace_back( // 773 + std::make_unique(774, 778) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 774 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(781) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 778 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 781 + std::make_unique(1351) + ); + program.emplace_back( // 782 + std::make_unique(783, 928) + ); + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 783 + std::make_unique(784, 809) + ); + { // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,2} + program.emplace_back( // 784 + std::make_unique(785, 802) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 785 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(787, 792) + ); + // [0-9A-Fa-f] + program.emplace_back( // 787 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(789, 792) + ); + // [0-9A-Fa-f] + program.emplace_back( // 789 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(791, 792) + ); + // [0-9A-Fa-f] + program.emplace_back( // 791 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 792 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(794, 802) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 794 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(796, 801) + ); + // [0-9A-Fa-f] + program.emplace_back( // 796 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(798, 801) + ); + // [0-9A-Fa-f] + program.emplace_back( // 798 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(800, 801) + ); + // [0-9A-Fa-f] + program.emplace_back( // 800 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 801 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,2} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 802 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(804, 809) + ); + // [0-9A-Fa-f] + program.emplace_back( // 804 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(806, 809) + ); + // [0-9A-Fa-f] + program.emplace_back( // 806 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(808, 809) + ); + // [0-9A-Fa-f] + program.emplace_back( // 808 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 809 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(813, 818) + ); + // [0-9A-Fa-f] + program.emplace_back( // 813 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(815, 818) + ); + // [0-9A-Fa-f] + program.emplace_back( // 815 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(817, 818) + ); + // [0-9A-Fa-f] + program.emplace_back( // 817 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 818 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(821, 826) + ); + // [0-9A-Fa-f] + program.emplace_back( // 821 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(823, 826) + ); + // [0-9A-Fa-f] + program.emplace_back( // 823 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(825, 826) + ); + // [0-9A-Fa-f] + program.emplace_back( // 825 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 826 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(828, 844) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 828 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(830, 835) + ); + // [0-9A-Fa-f] + program.emplace_back( // 830 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(832, 835) + ); + // [0-9A-Fa-f] + program.emplace_back( // 832 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(834, 835) + ); + // [0-9A-Fa-f] + program.emplace_back( // 834 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 835 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(838, 843) + ); + // [0-9A-Fa-f] + program.emplace_back( // 838 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(840, 843) + ); + // [0-9A-Fa-f] + program.emplace_back( // 840 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(842, 843) + ); + // [0-9A-Fa-f] + program.emplace_back( // 842 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 843 + std::make_unique(927) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 844 + std::make_unique(845, 847) + ); + // [0-9] + program.emplace_back( // 845 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(864) + ); + program.emplace_back( // 847 + std::make_unique(848, 851) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 848 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(864) + ); + program.emplace_back( // 851 + std::make_unique(852, 856) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 852 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(864) + ); + program.emplace_back( // 856 + std::make_unique(857, 861) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 857 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(864) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 861 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 864 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(866, 868) + ); + // [0-9] + program.emplace_back( // 866 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(885) + ); + program.emplace_back( // 868 + std::make_unique(869, 872) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 869 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(885) + ); + program.emplace_back( // 872 + std::make_unique(873, 877) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 873 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(885) + ); + program.emplace_back( // 877 + std::make_unique(878, 882) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 878 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(885) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 882 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 885 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(887, 889) + ); + // [0-9] + program.emplace_back( // 887 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(906) + ); + program.emplace_back( // 889 + std::make_unique(890, 893) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 890 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(906) + ); + program.emplace_back( // 893 + std::make_unique(894, 898) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 894 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(906) + ); + program.emplace_back( // 898 + std::make_unique(899, 903) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 899 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(906) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 903 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 906 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(908, 910) + ); + // [0-9] + program.emplace_back( // 908 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(927) + ); + program.emplace_back( // 910 + std::make_unique(911, 914) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 911 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(927) + ); + program.emplace_back( // 914 + std::make_unique(915, 919) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 915 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(927) + ); + program.emplace_back( // 919 + std::make_unique(920, 924) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 920 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(927) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 924 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 927 + std::make_unique(1351) + ); + program.emplace_back( // 928 + std::make_unique(929, 1075) + ); + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 929 + std::make_unique(930, 964) + ); + { // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,3} + program.emplace_back( // 930 + std::make_unique(931, 957) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 931 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(933, 938) + ); + // [0-9A-Fa-f] + program.emplace_back( // 933 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(935, 938) + ); + // [0-9A-Fa-f] + program.emplace_back( // 935 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(937, 938) + ); + // [0-9A-Fa-f] + program.emplace_back( // 937 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 938 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(940, 957) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 940 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(942, 947) + ); + // [0-9A-Fa-f] + program.emplace_back( // 942 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(944, 947) + ); + // [0-9A-Fa-f] + program.emplace_back( // 944 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(946, 947) + ); + // [0-9A-Fa-f] + program.emplace_back( // 946 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 947 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(949, 957) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 949 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(951, 956) + ); + // [0-9A-Fa-f] + program.emplace_back( // 951 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(953, 956) + ); + // [0-9A-Fa-f] + program.emplace_back( // 953 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(955, 956) + ); + // [0-9A-Fa-f] + program.emplace_back( // 955 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 956 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,3} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 957 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(959, 964) + ); + // [0-9A-Fa-f] + program.emplace_back( // 959 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(961, 964) + ); + // [0-9A-Fa-f] + program.emplace_back( // 961 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(963, 964) + ); + // [0-9A-Fa-f] + program.emplace_back( // 963 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 964 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(968, 973) + ); + // [0-9A-Fa-f] + program.emplace_back( // 968 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(970, 973) + ); + // [0-9A-Fa-f] + program.emplace_back( // 970 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(972, 973) + ); + // [0-9A-Fa-f] + program.emplace_back( // 972 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 973 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(975, 991) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 975 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(977, 982) + ); + // [0-9A-Fa-f] + program.emplace_back( // 977 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(979, 982) + ); + // [0-9A-Fa-f] + program.emplace_back( // 979 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(981, 982) + ); + // [0-9A-Fa-f] + program.emplace_back( // 981 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 982 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(985, 990) + ); + // [0-9A-Fa-f] + program.emplace_back( // 985 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(987, 990) + ); + // [0-9A-Fa-f] + program.emplace_back( // 987 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(989, 990) + ); + // [0-9A-Fa-f] + program.emplace_back( // 989 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 990 + std::make_unique(1074) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 991 + std::make_unique(992, 994) + ); + // [0-9] + program.emplace_back( // 992 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1011) + ); + program.emplace_back( // 994 + std::make_unique(995, 998) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 995 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1011) + ); + program.emplace_back( // 998 + std::make_unique(999, 1003) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 999 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1011) + ); + program.emplace_back( // 1003 + std::make_unique(1004, 1008) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1004 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1011) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1008 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1011 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1013, 1015) + ); + // [0-9] + program.emplace_back( // 1013 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1032) + ); + program.emplace_back( // 1015 + std::make_unique(1016, 1019) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1016 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1032) + ); + program.emplace_back( // 1019 + std::make_unique(1020, 1024) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1020 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1032) + ); + program.emplace_back( // 1024 + std::make_unique(1025, 1029) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1025 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1032) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1029 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1032 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1034, 1036) + ); + // [0-9] + program.emplace_back( // 1034 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1053) + ); + program.emplace_back( // 1036 + std::make_unique(1037, 1040) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1037 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1053) + ); + program.emplace_back( // 1040 + std::make_unique(1041, 1045) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1041 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1053) + ); + program.emplace_back( // 1045 + std::make_unique(1046, 1050) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1046 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1053) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1050 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1053 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1055, 1057) + ); + // [0-9] + program.emplace_back( // 1055 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1074) + ); + program.emplace_back( // 1057 + std::make_unique(1058, 1061) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1058 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1074) + ); + program.emplace_back( // 1061 + std::make_unique(1062, 1066) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1062 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1074) + ); + program.emplace_back( // 1066 + std::make_unique(1067, 1071) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1067 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1074) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1071 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 1074 + std::make_unique(1351) + ); + program.emplace_back( // 1075 + std::make_unique(1076, 1223) + ); + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1076 + std::make_unique(1077, 1120) + ); + { // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,4} + program.emplace_back( // 1077 + std::make_unique(1078, 1113) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1078 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1080, 1085) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1080 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1082, 1085) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1082 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1084, 1085) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1084 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1085 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1087, 1113) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1087 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1089, 1094) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1089 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1091, 1094) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1091 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1093, 1094) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1093 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1094 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1096, 1113) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1096 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1098, 1103) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1098 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1100, 1103) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1100 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1102, 1103) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1102 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1103 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1105, 1113) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1105 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1107, 1112) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1107 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1109, 1112) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1109 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1111, 1112) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1111 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1112 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1113 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1115, 1120) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1115 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1117, 1120) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1117 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1119, 1120) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1119 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1120 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(1123, 1139) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1123 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1125, 1130) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1125 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1127, 1130) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1127 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1129, 1130) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1129 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1130 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1133, 1138) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1133 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1135, 1138) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1135 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1137, 1138) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1137 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 1138 + std::make_unique(1222) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1139 + std::make_unique(1140, 1142) + ); + // [0-9] + program.emplace_back( // 1140 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1159) + ); + program.emplace_back( // 1142 + std::make_unique(1143, 1146) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1143 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1159) + ); + program.emplace_back( // 1146 + std::make_unique(1147, 1151) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1147 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1159) + ); + program.emplace_back( // 1151 + std::make_unique(1152, 1156) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1152 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1159) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1156 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1159 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1161, 1163) + ); + // [0-9] + program.emplace_back( // 1161 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1180) + ); + program.emplace_back( // 1163 + std::make_unique(1164, 1167) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1164 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1180) + ); + program.emplace_back( // 1167 + std::make_unique(1168, 1172) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1168 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1180) + ); + program.emplace_back( // 1172 + std::make_unique(1173, 1177) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1173 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1180) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1177 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1180 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1182, 1184) + ); + // [0-9] + program.emplace_back( // 1182 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1201) + ); + program.emplace_back( // 1184 + std::make_unique(1185, 1188) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1185 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1201) + ); + program.emplace_back( // 1188 + std::make_unique(1189, 1193) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1189 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1201) + ); + program.emplace_back( // 1193 + std::make_unique(1194, 1198) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1194 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1201) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1198 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1201 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1203, 1205) + ); + // [0-9] + program.emplace_back( // 1203 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1222) + ); + program.emplace_back( // 1205 + std::make_unique(1206, 1209) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1206 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1222) + ); + program.emplace_back( // 1209 + std::make_unique(1210, 1214) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1210 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1222) + ); + program.emplace_back( // 1214 + std::make_unique(1215, 1219) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1215 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1222) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1219 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 1222 + std::make_unique(1351) + ); + program.emplace_back( // 1223 + std::make_unique(1224, 1287) + ); + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1224 + std::make_unique(1225, 1277) + ); + { // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,5} + program.emplace_back( // 1225 + std::make_unique(1226, 1270) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1226 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1228, 1233) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1228 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1230, 1233) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1230 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1232, 1233) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1232 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1233 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1235, 1270) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1235 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1237, 1242) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1237 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1239, 1242) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1239 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1241, 1242) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1241 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1242 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1244, 1270) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1244 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1246, 1251) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1246 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1248, 1251) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1248 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1250, 1251) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1250 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1251 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1253, 1270) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1253 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1255, 1260) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1255 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1257, 1260) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1257 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1259, 1260) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1259 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1260 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1262, 1270) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1262 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1264, 1269) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1264 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1266, 1269) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1266 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1268, 1269) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1268 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1269 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,5} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1270 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1272, 1277) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1272 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1274, 1277) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1274 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1276, 1277) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1276 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1277 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1281, 1286) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1281 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1283, 1286) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1283 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1285, 1286) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1285 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + program.emplace_back( // 1286 + std::make_unique(1351) + ); + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1287 + std::make_unique(1288, 1349) + ); + { // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,6} + program.emplace_back( // 1288 + std::make_unique(1289, 1342) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1289 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1291, 1296) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1291 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1293, 1296) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1293 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1295, 1296) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1295 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1296 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1298, 1342) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1298 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1300, 1305) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1300 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1302, 1305) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1302 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1304, 1305) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1304 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1305 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1307, 1342) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1307 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1309, 1314) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1309 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1311, 1314) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1311 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1313, 1314) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1313 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1314 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1316, 1342) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1316 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1318, 1323) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1318 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1320, 1323) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1320 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1322, 1323) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1322 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1323 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1325, 1342) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1325 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1327, 1332) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1327 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1329, 1332) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1329 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1331, 1332) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1331 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1332 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1334, 1342) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1334 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1336, 1341) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1336 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1338, 1341) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1338 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1340, 1341) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1340 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1341 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,6} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1342 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1344, 1349) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1344 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1346, 1349) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1346 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1348, 1349) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1348 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1349 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 1351 + std::make_unique(1364) + ); + { // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // [vV] + program.emplace_back( // 1352 + std::make_unique( + std::vector{ + revm::Range(L'V', L'V'), + revm::Range(L'v', L'v') + } + ) + ); + { // [0-9A-Fa-f]+ + // [0-9A-Fa-f] + program.emplace_back( // 1353 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1353, 1355) + ); + } // [0-9A-Fa-f]+ + // \. + program.emplace_back( // 1355 + std::make_unique(L'.') + ); + { // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + { // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 1356 + std::make_unique(1357, 1359) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1357 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1363) + ); + program.emplace_back( // 1359 + std::make_unique(1360, 1362) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1360 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1363) + ); + // : + program.emplace_back( // 1362 + std::make_unique(L':') + ); + } // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 1363 + std::make_unique(1356, 1364) + ); + } // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // \] + program.emplace_back( // 1364 + std::make_unique(L']') + ); + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + program.emplace_back( + std::make_unique(1633) + ); + program.emplace_back( // 1366 + std::make_unique(1367, 1451) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1367 + std::make_unique(1368, 1370) + ); + // [0-9] + program.emplace_back( // 1368 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1387) + ); + program.emplace_back( // 1370 + std::make_unique(1371, 1374) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1371 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1387) + ); + program.emplace_back( // 1374 + std::make_unique(1375, 1379) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1375 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1387) + ); + program.emplace_back( // 1379 + std::make_unique(1380, 1384) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1380 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1387) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1384 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1387 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1389, 1391) + ); + // [0-9] + program.emplace_back( // 1389 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1408) + ); + program.emplace_back( // 1391 + std::make_unique(1392, 1395) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1392 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1408) + ); + program.emplace_back( // 1395 + std::make_unique(1396, 1400) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1396 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1408) + ); + program.emplace_back( // 1400 + std::make_unique(1401, 1405) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1401 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1408) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1405 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1408 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1410, 1412) + ); + // [0-9] + program.emplace_back( // 1410 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1429) + ); + program.emplace_back( // 1412 + std::make_unique(1413, 1416) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1413 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1429) + ); + program.emplace_back( // 1416 + std::make_unique(1417, 1421) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1417 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1429) + ); + program.emplace_back( // 1421 + std::make_unique(1422, 1426) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1422 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1429) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1426 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1429 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1431, 1433) + ); + // [0-9] + program.emplace_back( // 1431 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1450) + ); + program.emplace_back( // 1433 + std::make_unique(1434, 1437) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1434 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1450) + ); + program.emplace_back( // 1437 + std::make_unique(1438, 1442) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1438 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1450) + ); + program.emplace_back( // 1442 + std::make_unique(1443, 1447) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1443 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1450) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1447 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( // 1450 + std::make_unique(1633) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 1451 + std::make_unique(1452, 1633) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 1452 + std::make_unique(1453, 1626) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 1453 + std::make_unique(1454, 1456) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1454 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1625) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 1456 + std::make_unique(1457, 1459) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 1457 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1459 + std::make_unique(1460, 1463) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 1460 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1463 + std::make_unique(1464, 1467) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 1464 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1467 + std::make_unique(1468, 1471) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 1468 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1471 + std::make_unique(1472, 1475) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 1472 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1475 + std::make_unique(1476, 1479) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 1476 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1479 + std::make_unique(1480, 1483) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 1480 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1483 + std::make_unique(1484, 1487) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 1484 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1487 + std::make_unique(1488, 1491) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 1488 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1491 + std::make_unique(1492, 1495) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 1492 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1495 + std::make_unique(1496, 1499) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 1496 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1499 + std::make_unique(1500, 1503) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 1500 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1503 + std::make_unique(1504, 1507) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 1504 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1507 + std::make_unique(1508, 1511) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 1508 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1511 + std::make_unique(1512, 1515) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 1512 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1515 + std::make_unique(1516, 1519) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 1516 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1519 + std::make_unique(1520, 1523) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 1520 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1523 + std::make_unique(1524, 1527) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 1524 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1527 + std::make_unique(1528, 1531) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 1528 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1531 + std::make_unique(1532, 1535) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 1532 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1535 + std::make_unique(1536, 1539) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 1536 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1539 + std::make_unique(1540, 1543) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 1540 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1543 + std::make_unique(1544, 1547) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 1544 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1547 + std::make_unique(1548, 1551) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 1548 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1551 + std::make_unique(1552, 1555) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 1552 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1555 + std::make_unique(1556, 1559) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 1556 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1559 + std::make_unique(1560, 1563) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 1560 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1563 + std::make_unique(1564, 1567) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 1564 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1567 + std::make_unique(1568, 1571) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 1568 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1571 + std::make_unique(1572, 1575) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 1572 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1575 + std::make_unique(1576, 1579) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 1576 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1579 + std::make_unique(1580, 1583) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 1580 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1583 + std::make_unique(1584, 1587) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 1584 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1587 + std::make_unique(1588, 1591) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 1588 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1591 + std::make_unique(1592, 1595) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 1592 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1595 + std::make_unique(1596, 1599) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 1596 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1599 + std::make_unique(1600, 1603) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 1600 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1603 + std::make_unique(1604, 1607) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 1604 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1607 + std::make_unique(1608, 1611) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 1608 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1611 + std::make_unique(1612, 1615) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 1612 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1615 + std::make_unique(1616, 1619) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 1616 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + program.emplace_back( // 1619 + std::make_unique(1620, 1623) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 1620 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1625) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 1623 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 1625 + std::make_unique(1632) + ); + program.emplace_back( // 1626 + std::make_unique(1627, 1631) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1627 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1632) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1631 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 1632 + std::make_unique(1451) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + { // (:[0-9]*)? + program.emplace_back( // 1633 + std::make_unique(1634, 1638) + ); + { // :[0-9]* + // : + program.emplace_back( // 1634 + std::make_unique(L':') + ); + { // [0-9]* + program.emplace_back( // 1635 + std::make_unique(1636, 1638) + ); + // [0-9] + program.emplace_back( // 1636 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1635) + ); + } // [0-9]* + } // :[0-9]* + } // (:[0-9]*)? + { // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1638 + std::make_unique(1639, 1826) + ); + { // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 1639 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1640 + std::make_unique(1641, 1825) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1641 + std::make_unique(1642, 1815) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 1642 + std::make_unique(1643, 1645) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1643 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1814) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 1645 + std::make_unique(1646, 1648) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 1646 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1648 + std::make_unique(1649, 1652) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 1649 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1652 + std::make_unique(1653, 1656) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 1653 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1656 + std::make_unique(1657, 1660) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 1657 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1660 + std::make_unique(1661, 1664) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 1661 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1664 + std::make_unique(1665, 1668) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 1665 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1668 + std::make_unique(1669, 1672) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 1669 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1672 + std::make_unique(1673, 1676) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 1673 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1676 + std::make_unique(1677, 1680) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 1677 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1680 + std::make_unique(1681, 1684) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 1681 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1684 + std::make_unique(1685, 1688) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 1685 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1688 + std::make_unique(1689, 1692) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 1689 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1692 + std::make_unique(1693, 1696) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 1693 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1696 + std::make_unique(1697, 1700) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 1697 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1700 + std::make_unique(1701, 1704) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 1701 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1704 + std::make_unique(1705, 1708) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 1705 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1708 + std::make_unique(1709, 1712) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 1709 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1712 + std::make_unique(1713, 1716) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 1713 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1716 + std::make_unique(1717, 1720) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 1717 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1720 + std::make_unique(1721, 1724) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 1721 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1724 + std::make_unique(1725, 1728) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 1725 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1728 + std::make_unique(1729, 1732) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 1729 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1732 + std::make_unique(1733, 1736) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 1733 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1736 + std::make_unique(1737, 1740) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 1737 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1740 + std::make_unique(1741, 1744) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 1741 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1744 + std::make_unique(1745, 1748) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 1745 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1748 + std::make_unique(1749, 1752) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 1749 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1752 + std::make_unique(1753, 1756) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 1753 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1756 + std::make_unique(1757, 1760) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 1757 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1760 + std::make_unique(1761, 1764) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 1761 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1764 + std::make_unique(1765, 1768) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 1765 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1768 + std::make_unique(1769, 1772) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 1769 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1772 + std::make_unique(1773, 1776) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 1773 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1776 + std::make_unique(1777, 1780) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 1777 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1780 + std::make_unique(1781, 1784) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 1781 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1784 + std::make_unique(1785, 1788) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 1785 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1788 + std::make_unique(1789, 1792) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 1789 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1792 + std::make_unique(1793, 1796) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 1793 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1796 + std::make_unique(1797, 1800) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 1797 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1800 + std::make_unique(1801, 1804) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 1801 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1804 + std::make_unique(1805, 1808) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 1805 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + program.emplace_back( // 1808 + std::make_unique(1809, 1812) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 1809 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(1814) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 1812 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 1814 + std::make_unique(1824) + ); + program.emplace_back( // 1815 + std::make_unique(1816, 1820) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1816 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1824) + ); + program.emplace_back( // 1820 + std::make_unique(1821, 1823) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1821 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1824) + ); + // [:@] + program.emplace_back( // 1823 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1824 + std::make_unique(1640) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1825 + std::make_unique(1638) + ); + } // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1826 + std::make_unique(2577) + ); + program.emplace_back( // 1827 + std::make_unique(1828, 2203) + ); + { // /(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + // / + program.emplace_back( // 1828 + std::make_unique(L'/') + ); + { // (((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( + std::make_unique(1830, 2202) + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1830 + std::make_unique(1831, 2004) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 1831 + std::make_unique(1832, 1834) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1832 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2003) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 1834 + std::make_unique(1835, 1837) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 1835 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1837 + std::make_unique(1838, 1841) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 1838 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1841 + std::make_unique(1842, 1845) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 1842 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1845 + std::make_unique(1846, 1849) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 1846 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1849 + std::make_unique(1850, 1853) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 1850 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1853 + std::make_unique(1854, 1857) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 1854 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1857 + std::make_unique(1858, 1861) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 1858 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1861 + std::make_unique(1862, 1865) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 1862 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1865 + std::make_unique(1866, 1869) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 1866 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1869 + std::make_unique(1870, 1873) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 1870 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1873 + std::make_unique(1874, 1877) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 1874 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1877 + std::make_unique(1878, 1881) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 1878 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1881 + std::make_unique(1882, 1885) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 1882 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1885 + std::make_unique(1886, 1889) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 1886 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1889 + std::make_unique(1890, 1893) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 1890 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1893 + std::make_unique(1894, 1897) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 1894 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1897 + std::make_unique(1898, 1901) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 1898 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1901 + std::make_unique(1902, 1905) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 1902 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1905 + std::make_unique(1906, 1909) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 1906 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1909 + std::make_unique(1910, 1913) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 1910 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1913 + std::make_unique(1914, 1917) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 1914 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1917 + std::make_unique(1918, 1921) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 1918 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1921 + std::make_unique(1922, 1925) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 1922 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1925 + std::make_unique(1926, 1929) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 1926 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1929 + std::make_unique(1930, 1933) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 1930 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1933 + std::make_unique(1934, 1937) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 1934 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1937 + std::make_unique(1938, 1941) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 1938 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1941 + std::make_unique(1942, 1945) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 1942 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1945 + std::make_unique(1946, 1949) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 1946 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1949 + std::make_unique(1950, 1953) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 1950 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1953 + std::make_unique(1954, 1957) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 1954 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1957 + std::make_unique(1958, 1961) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 1958 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1961 + std::make_unique(1962, 1965) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 1962 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1965 + std::make_unique(1966, 1969) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 1966 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1969 + std::make_unique(1970, 1973) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 1970 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1973 + std::make_unique(1974, 1977) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 1974 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1977 + std::make_unique(1978, 1981) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 1978 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1981 + std::make_unique(1982, 1985) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 1982 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1985 + std::make_unique(1986, 1989) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 1986 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1989 + std::make_unique(1990, 1993) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 1990 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1993 + std::make_unique(1994, 1997) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 1994 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + program.emplace_back( // 1997 + std::make_unique(1998, 2001) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 1998 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2003) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 2001 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2003 + std::make_unique(2013) + ); + program.emplace_back( // 2004 + std::make_unique(2005, 2009) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2005 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2013) + ); + program.emplace_back( // 2009 + std::make_unique(2010, 2012) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2010 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2013) + ); + // [:@] + program.emplace_back( // 2012 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2013 + std::make_unique(1830, 2014) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2014 + std::make_unique(2015, 2202) + ); + { // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 2015 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2016 + std::make_unique(2017, 2201) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2017 + std::make_unique(2018, 2191) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2018 + std::make_unique(2019, 2021) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2019 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2190) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 2021 + std::make_unique(2022, 2024) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 2022 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2024 + std::make_unique(2025, 2028) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 2025 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2028 + std::make_unique(2029, 2032) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 2029 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2032 + std::make_unique(2033, 2036) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 2033 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2036 + std::make_unique(2037, 2040) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 2037 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2040 + std::make_unique(2041, 2044) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 2041 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2044 + std::make_unique(2045, 2048) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 2045 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2048 + std::make_unique(2049, 2052) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 2049 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2052 + std::make_unique(2053, 2056) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 2053 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2056 + std::make_unique(2057, 2060) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 2057 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2060 + std::make_unique(2061, 2064) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 2061 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2064 + std::make_unique(2065, 2068) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 2065 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2068 + std::make_unique(2069, 2072) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 2069 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2072 + std::make_unique(2073, 2076) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 2073 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2076 + std::make_unique(2077, 2080) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 2077 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2080 + std::make_unique(2081, 2084) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 2081 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2084 + std::make_unique(2085, 2088) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 2085 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2088 + std::make_unique(2089, 2092) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 2089 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2092 + std::make_unique(2093, 2096) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 2093 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2096 + std::make_unique(2097, 2100) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 2097 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2100 + std::make_unique(2101, 2104) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 2101 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2104 + std::make_unique(2105, 2108) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 2105 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2108 + std::make_unique(2109, 2112) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 2109 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2112 + std::make_unique(2113, 2116) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 2113 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2116 + std::make_unique(2117, 2120) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 2117 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2120 + std::make_unique(2121, 2124) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 2121 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2124 + std::make_unique(2125, 2128) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 2125 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2128 + std::make_unique(2129, 2132) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 2129 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2132 + std::make_unique(2133, 2136) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 2133 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2136 + std::make_unique(2137, 2140) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 2137 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2140 + std::make_unique(2141, 2144) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 2141 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2144 + std::make_unique(2145, 2148) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 2145 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2148 + std::make_unique(2149, 2152) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 2149 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2152 + std::make_unique(2153, 2156) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 2153 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2156 + std::make_unique(2157, 2160) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 2157 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2160 + std::make_unique(2161, 2164) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 2161 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2164 + std::make_unique(2165, 2168) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 2165 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2168 + std::make_unique(2169, 2172) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 2169 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2172 + std::make_unique(2173, 2176) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 2173 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2176 + std::make_unique(2177, 2180) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 2177 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2180 + std::make_unique(2181, 2184) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 2181 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + program.emplace_back( // 2184 + std::make_unique(2185, 2188) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 2185 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2190) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 2188 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2190 + std::make_unique(2200) + ); + program.emplace_back( // 2191 + std::make_unique(2192, 2196) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2192 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2200) + ); + program.emplace_back( // 2196 + std::make_unique(2197, 2199) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2197 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2200) + ); + // [:@] + program.emplace_back( // 2199 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2200 + std::make_unique(2016) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2201 + std::make_unique(2014) + ); + } // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + } // /(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( // 2202 + std::make_unique(2577) + ); + program.emplace_back( // 2203 + std::make_unique(2204, 2577) + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2204 + std::make_unique(2205, 2378) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2205 + std::make_unique(2206, 2208) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2206 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2377) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 2208 + std::make_unique(2209, 2211) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 2209 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2211 + std::make_unique(2212, 2215) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 2212 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2215 + std::make_unique(2216, 2219) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 2216 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2219 + std::make_unique(2220, 2223) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 2220 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2223 + std::make_unique(2224, 2227) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 2224 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2227 + std::make_unique(2228, 2231) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 2228 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2231 + std::make_unique(2232, 2235) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 2232 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2235 + std::make_unique(2236, 2239) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 2236 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2239 + std::make_unique(2240, 2243) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 2240 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2243 + std::make_unique(2244, 2247) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 2244 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2247 + std::make_unique(2248, 2251) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 2248 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2251 + std::make_unique(2252, 2255) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 2252 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2255 + std::make_unique(2256, 2259) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 2256 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2259 + std::make_unique(2260, 2263) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 2260 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2263 + std::make_unique(2264, 2267) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 2264 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2267 + std::make_unique(2268, 2271) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 2268 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2271 + std::make_unique(2272, 2275) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 2272 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2275 + std::make_unique(2276, 2279) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 2276 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2279 + std::make_unique(2280, 2283) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 2280 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2283 + std::make_unique(2284, 2287) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 2284 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2287 + std::make_unique(2288, 2291) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 2288 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2291 + std::make_unique(2292, 2295) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 2292 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2295 + std::make_unique(2296, 2299) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 2296 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2299 + std::make_unique(2300, 2303) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 2300 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2303 + std::make_unique(2304, 2307) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 2304 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2307 + std::make_unique(2308, 2311) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 2308 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2311 + std::make_unique(2312, 2315) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 2312 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2315 + std::make_unique(2316, 2319) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 2316 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2319 + std::make_unique(2320, 2323) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 2320 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2323 + std::make_unique(2324, 2327) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 2324 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2327 + std::make_unique(2328, 2331) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 2328 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2331 + std::make_unique(2332, 2335) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 2332 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2335 + std::make_unique(2336, 2339) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 2336 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2339 + std::make_unique(2340, 2343) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 2340 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2343 + std::make_unique(2344, 2347) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 2344 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2347 + std::make_unique(2348, 2351) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 2348 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2351 + std::make_unique(2352, 2355) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 2352 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2355 + std::make_unique(2356, 2359) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 2356 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2359 + std::make_unique(2360, 2363) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 2360 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2363 + std::make_unique(2364, 2367) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 2364 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2367 + std::make_unique(2368, 2371) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 2368 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + program.emplace_back( // 2371 + std::make_unique(2372, 2375) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 2372 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2377) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 2375 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2377 + std::make_unique(2387) + ); + program.emplace_back( // 2378 + std::make_unique(2379, 2383) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2379 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2387) + ); + program.emplace_back( // 2383 + std::make_unique(2384, 2386) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2384 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2387) + ); + // [:@] + program.emplace_back( // 2386 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2387 + std::make_unique(2204, 2388) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2388 + std::make_unique(2389, 2576) + ); + { // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 2389 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2390 + std::make_unique(2391, 2575) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2391 + std::make_unique(2392, 2565) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2392 + std::make_unique(2393, 2395) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2393 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2564) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 2395 + std::make_unique(2396, 2398) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 2396 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2398 + std::make_unique(2399, 2402) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 2399 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2402 + std::make_unique(2403, 2406) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 2403 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2406 + std::make_unique(2407, 2410) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 2407 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2410 + std::make_unique(2411, 2414) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 2411 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2414 + std::make_unique(2415, 2418) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 2415 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2418 + std::make_unique(2419, 2422) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 2419 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2422 + std::make_unique(2423, 2426) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 2423 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2426 + std::make_unique(2427, 2430) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 2427 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2430 + std::make_unique(2431, 2434) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 2431 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2434 + std::make_unique(2435, 2438) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 2435 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2438 + std::make_unique(2439, 2442) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 2439 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2442 + std::make_unique(2443, 2446) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 2443 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2446 + std::make_unique(2447, 2450) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 2447 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2450 + std::make_unique(2451, 2454) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 2451 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2454 + std::make_unique(2455, 2458) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 2455 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2458 + std::make_unique(2459, 2462) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 2459 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2462 + std::make_unique(2463, 2466) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 2463 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2466 + std::make_unique(2467, 2470) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 2467 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2470 + std::make_unique(2471, 2474) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 2471 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2474 + std::make_unique(2475, 2478) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 2475 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2478 + std::make_unique(2479, 2482) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 2479 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2482 + std::make_unique(2483, 2486) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 2483 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2486 + std::make_unique(2487, 2490) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 2487 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2490 + std::make_unique(2491, 2494) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 2491 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2494 + std::make_unique(2495, 2498) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 2495 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2498 + std::make_unique(2499, 2502) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 2499 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2502 + std::make_unique(2503, 2506) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 2503 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2506 + std::make_unique(2507, 2510) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 2507 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2510 + std::make_unique(2511, 2514) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 2511 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2514 + std::make_unique(2515, 2518) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 2515 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2518 + std::make_unique(2519, 2522) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 2519 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2522 + std::make_unique(2523, 2526) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 2523 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2526 + std::make_unique(2527, 2530) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 2527 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2530 + std::make_unique(2531, 2534) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 2531 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2534 + std::make_unique(2535, 2538) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 2535 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2538 + std::make_unique(2539, 2542) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 2539 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2542 + std::make_unique(2543, 2546) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 2543 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2546 + std::make_unique(2547, 2550) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 2547 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2550 + std::make_unique(2551, 2554) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 2551 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2554 + std::make_unique(2555, 2558) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 2555 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + program.emplace_back( // 2558 + std::make_unique(2559, 2562) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 2559 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2564) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 2562 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2564 + std::make_unique(2574) + ); + program.emplace_back( // 2565 + std::make_unique(2566, 2570) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2566 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2574) + ); + program.emplace_back( // 2570 + std::make_unique(2571, 2573) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2571 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2574) + ); + // [:@] + program.emplace_back( // 2573 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2574 + std::make_unique(2390) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2575 + std::make_unique(2388) + ); + } // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2576 + std::make_unique(2577) + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + // Intentionally empty + } + } // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + { // (\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)? + program.emplace_back( // 2577 + std::make_unique(2578, 2794) + ); + { // \?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + // \? + program.emplace_back( // 2578 + std::make_unique(L'?') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + program.emplace_back( // 2579 + std::make_unique(2580, 2794) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?] + program.emplace_back( // 2580 + std::make_unique(2581, 2765) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2581 + std::make_unique(2582, 2755) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2582 + std::make_unique(2583, 2585) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2583 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2754) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 2585 + std::make_unique(2586, 2588) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 2586 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2588 + std::make_unique(2589, 2592) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 2589 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2592 + std::make_unique(2593, 2596) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 2593 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2596 + std::make_unique(2597, 2600) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 2597 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2600 + std::make_unique(2601, 2604) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 2601 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2604 + std::make_unique(2605, 2608) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 2605 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2608 + std::make_unique(2609, 2612) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 2609 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2612 + std::make_unique(2613, 2616) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 2613 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2616 + std::make_unique(2617, 2620) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 2617 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2620 + std::make_unique(2621, 2624) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 2621 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2624 + std::make_unique(2625, 2628) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 2625 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2628 + std::make_unique(2629, 2632) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 2629 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2632 + std::make_unique(2633, 2636) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 2633 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2636 + std::make_unique(2637, 2640) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 2637 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2640 + std::make_unique(2641, 2644) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 2641 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2644 + std::make_unique(2645, 2648) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 2645 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2648 + std::make_unique(2649, 2652) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 2649 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2652 + std::make_unique(2653, 2656) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 2653 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2656 + std::make_unique(2657, 2660) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 2657 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2660 + std::make_unique(2661, 2664) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 2661 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2664 + std::make_unique(2665, 2668) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 2665 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2668 + std::make_unique(2669, 2672) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 2669 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2672 + std::make_unique(2673, 2676) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 2673 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2676 + std::make_unique(2677, 2680) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 2677 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2680 + std::make_unique(2681, 2684) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 2681 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2684 + std::make_unique(2685, 2688) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 2685 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2688 + std::make_unique(2689, 2692) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 2689 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2692 + std::make_unique(2693, 2696) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 2693 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2696 + std::make_unique(2697, 2700) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 2697 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2700 + std::make_unique(2701, 2704) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 2701 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2704 + std::make_unique(2705, 2708) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 2705 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2708 + std::make_unique(2709, 2712) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 2709 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2712 + std::make_unique(2713, 2716) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 2713 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2716 + std::make_unique(2717, 2720) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 2717 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2720 + std::make_unique(2721, 2724) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 2721 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2724 + std::make_unique(2725, 2728) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 2725 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2728 + std::make_unique(2729, 2732) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 2729 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2732 + std::make_unique(2733, 2736) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 2733 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2736 + std::make_unique(2737, 2740) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 2737 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2740 + std::make_unique(2741, 2744) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 2741 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2744 + std::make_unique(2745, 2748) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 2745 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + program.emplace_back( // 2748 + std::make_unique(2749, 2752) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 2749 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2754) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 2752 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2754 + std::make_unique(2764) + ); + program.emplace_back( // 2755 + std::make_unique(2756, 2760) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2756 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2764) + ); + program.emplace_back( // 2760 + std::make_unique(2761, 2763) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2761 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2764) + ); + // [:@] + program.emplace_back( // 2763 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2764 + std::make_unique(2793) + ); + program.emplace_back( // 2765 + std::make_unique(2766, 2792) + ); + { // [\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd] + program.emplace_back( // 2766 + std::make_unique(2767, 2769) + ); + // [\ue000-\uf8ff] + program.emplace_back( // 2767 + std::make_unique( + std::vector{ + revm::Range(L'\ue000', L'\uf8ff') + } + ) + ); + program.emplace_back( + std::make_unique(2791) + ); + program.emplace_back( // 2769 + std::make_unique(2770, 2773) + ); + { // \udb80[\udc00-\udfff] + // \udb80 + program.emplace_back( // 2770 + std::make_unique(static_cast(0xdb80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb80[\udc00-\udfff] + program.emplace_back( + std::make_unique(2791) + ); + program.emplace_back( // 2773 + std::make_unique(2774, 2777) + ); + { // [\udb81-\udbbe][\udc00-\udfff] + // [\udb81-\udbbe] + program.emplace_back( // 2774 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb81), static_cast(0xdbbe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb81-\udbbe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2791) + ); + program.emplace_back( // 2777 + std::make_unique(2778, 2781) + ); + { // \udbbf[\udc00-\udffd] + // \udbbf + program.emplace_back( // 2778 + std::make_unique(static_cast(0xdbbf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udbbf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2791) + ); + program.emplace_back( // 2781 + std::make_unique(2782, 2785) + ); + { // \udbc0[\udc00-\udfff] + // \udbc0 + program.emplace_back( // 2782 + std::make_unique(static_cast(0xdbc0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udbc0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2791) + ); + program.emplace_back( // 2785 + std::make_unique(2786, 2789) + ); + { // [\udbc1-\udbfe][\udc00-\udfff] + // [\udbc1-\udbfe] + program.emplace_back( // 2786 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdbc1), static_cast(0xdbfe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udbc1-\udbfe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2791) + ); + { // \udbff[\udc00-\udffd] + // \udbff + program.emplace_back( // 2789 + std::make_unique(static_cast(0xdbff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udbff[\udc00-\udffd] + } // [\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd] + program.emplace_back( // 2791 + std::make_unique(2793) + ); + // [/?] + program.emplace_back( // 2792 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?] + program.emplace_back( // 2793 + std::make_unique(2579) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + } // \?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + } // (\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)? + { // (#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( // 2794 + std::make_unique(2795, 2984) + ); + { // #((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + // # + program.emplace_back( // 2795 + std::make_unique(L'#') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + program.emplace_back( // 2796 + std::make_unique(2797, 2984) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 2797 + std::make_unique(2798, 2982) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2798 + std::make_unique(2799, 2972) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2799 + std::make_unique(2800, 2802) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2800 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2971) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 2802 + std::make_unique(2803, 2805) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 2803 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2805 + std::make_unique(2806, 2809) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 2806 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2809 + std::make_unique(2810, 2813) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 2810 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2813 + std::make_unique(2814, 2817) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 2814 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2817 + std::make_unique(2818, 2821) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 2818 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2821 + std::make_unique(2822, 2825) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 2822 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2825 + std::make_unique(2826, 2829) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 2826 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2829 + std::make_unique(2830, 2833) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 2830 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2833 + std::make_unique(2834, 2837) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 2834 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2837 + std::make_unique(2838, 2841) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 2838 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2841 + std::make_unique(2842, 2845) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 2842 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2845 + std::make_unique(2846, 2849) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 2846 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2849 + std::make_unique(2850, 2853) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 2850 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2853 + std::make_unique(2854, 2857) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 2854 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2857 + std::make_unique(2858, 2861) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 2858 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2861 + std::make_unique(2862, 2865) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 2862 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2865 + std::make_unique(2866, 2869) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 2866 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2869 + std::make_unique(2870, 2873) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 2870 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2873 + std::make_unique(2874, 2877) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 2874 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2877 + std::make_unique(2878, 2881) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 2878 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2881 + std::make_unique(2882, 2885) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 2882 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2885 + std::make_unique(2886, 2889) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 2886 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2889 + std::make_unique(2890, 2893) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 2890 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2893 + std::make_unique(2894, 2897) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 2894 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2897 + std::make_unique(2898, 2901) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 2898 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2901 + std::make_unique(2902, 2905) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 2902 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2905 + std::make_unique(2906, 2909) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 2906 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2909 + std::make_unique(2910, 2913) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 2910 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2913 + std::make_unique(2914, 2917) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 2914 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2917 + std::make_unique(2918, 2921) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 2918 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2921 + std::make_unique(2922, 2925) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 2922 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2925 + std::make_unique(2926, 2929) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 2926 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2929 + std::make_unique(2930, 2933) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 2930 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2933 + std::make_unique(2934, 2937) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 2934 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2937 + std::make_unique(2938, 2941) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 2938 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2941 + std::make_unique(2942, 2945) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 2942 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2945 + std::make_unique(2946, 2949) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 2946 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2949 + std::make_unique(2950, 2953) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 2950 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2953 + std::make_unique(2954, 2957) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 2954 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2957 + std::make_unique(2958, 2961) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 2958 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2961 + std::make_unique(2962, 2965) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 2962 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + program.emplace_back( // 2965 + std::make_unique(2966, 2969) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 2966 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(2971) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 2969 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2971 + std::make_unique(2981) + ); + program.emplace_back( // 2972 + std::make_unique(2973, 2977) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2973 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2981) + ); + program.emplace_back( // 2977 + std::make_unique(2978, 2980) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2978 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2981) + ); + // [:@] + program.emplace_back( // 2980 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2981 + std::make_unique(2983) + ); + // [/?] + program.emplace_back( // 2982 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 2983 + std::make_unique(2796) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // #((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // (#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + } // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( // 2984 + std::make_unique(5963) + ); + { // (//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + { // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + program.emplace_back( // 2985 + std::make_unique(2986, 4806) + ); + { // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + // / + program.emplace_back( // 2986 + std::make_unique(L'/') + ); + // / + program.emplace_back( + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + program.emplace_back( + std::make_unique(2989, 3175) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + program.emplace_back( // 2989 + std::make_unique(2990, 3174) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 2990 + std::make_unique(2991, 3164) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 2991 + std::make_unique(2992, 2994) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2992 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(3163) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 2994 + std::make_unique(2995, 2997) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 2995 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 2997 + std::make_unique(2998, 3001) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 2998 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3001 + std::make_unique(3002, 3005) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 3002 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3005 + std::make_unique(3006, 3009) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 3006 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3009 + std::make_unique(3010, 3013) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 3010 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3013 + std::make_unique(3014, 3017) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 3014 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3017 + std::make_unique(3018, 3021) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 3018 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3021 + std::make_unique(3022, 3025) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 3022 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3025 + std::make_unique(3026, 3029) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 3026 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3029 + std::make_unique(3030, 3033) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 3030 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3033 + std::make_unique(3034, 3037) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 3034 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3037 + std::make_unique(3038, 3041) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 3038 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3041 + std::make_unique(3042, 3045) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 3042 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3045 + std::make_unique(3046, 3049) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 3046 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3049 + std::make_unique(3050, 3053) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 3050 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3053 + std::make_unique(3054, 3057) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 3054 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3057 + std::make_unique(3058, 3061) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 3058 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3061 + std::make_unique(3062, 3065) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 3062 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3065 + std::make_unique(3066, 3069) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 3066 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3069 + std::make_unique(3070, 3073) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 3070 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3073 + std::make_unique(3074, 3077) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 3074 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3077 + std::make_unique(3078, 3081) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 3078 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3081 + std::make_unique(3082, 3085) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 3082 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3085 + std::make_unique(3086, 3089) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 3086 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3089 + std::make_unique(3090, 3093) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 3090 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3093 + std::make_unique(3094, 3097) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 3094 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3097 + std::make_unique(3098, 3101) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 3098 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3101 + std::make_unique(3102, 3105) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 3102 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3105 + std::make_unique(3106, 3109) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 3106 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3109 + std::make_unique(3110, 3113) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 3110 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3113 + std::make_unique(3114, 3117) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 3114 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3117 + std::make_unique(3118, 3121) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 3118 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3121 + std::make_unique(3122, 3125) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 3122 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3125 + std::make_unique(3126, 3129) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 3126 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3129 + std::make_unique(3130, 3133) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 3130 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3133 + std::make_unique(3134, 3137) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 3134 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3137 + std::make_unique(3138, 3141) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 3138 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3141 + std::make_unique(3142, 3145) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 3142 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3145 + std::make_unique(3146, 3149) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 3146 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3149 + std::make_unique(3150, 3153) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 3150 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3153 + std::make_unique(3154, 3157) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 3154 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + program.emplace_back( // 3157 + std::make_unique(3158, 3161) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 3158 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(3163) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 3161 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 3163 + std::make_unique(3173) + ); + program.emplace_back( // 3164 + std::make_unique(3165, 3169) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 3165 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(3173) + ); + program.emplace_back( // 3169 + std::make_unique(3170, 3172) + ); + // [!$&'()*+,;=] + program.emplace_back( // 3170 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(3173) + ); + // : + program.emplace_back( // 3172 + std::make_unique(L':') + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 3173 + std::make_unique(2989) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + // @ + program.emplace_back( // 3174 + std::make_unique(L'@') + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 3175 + std::make_unique(3176, 4345) + ); + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + // \[ + program.emplace_back( // 3176 + std::make_unique(L'[') + ); + { // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + program.emplace_back( + std::make_unique(3178, 4331) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 3178 + std::make_unique(3179, 3328) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3179 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3181, 3186) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3181 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3183, 3186) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3183 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3185, 3186) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3185 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3186 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3189, 3194) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3189 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3191, 3194) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3191 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3193, 3194) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3193 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3194 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3197, 3202) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3197 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3199, 3202) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3199 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3201, 3202) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3201 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3202 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3205, 3210) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3205 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3207, 3210) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3207 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3209, 3210) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3209 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3210 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3213, 3218) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3213 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3215, 3218) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3215 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3217, 3218) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3217 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3218 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3221, 3226) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3221 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3223, 3226) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3223 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3225, 3226) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3225 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3226 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(3228, 3244) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3228 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3230, 3235) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3230 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3232, 3235) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3232 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3234, 3235) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3234 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3235 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3238, 3243) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3238 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3240, 3243) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3240 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3242, 3243) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3242 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 3243 + std::make_unique(3327) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 3244 + std::make_unique(3245, 3247) + ); + // [0-9] + program.emplace_back( // 3245 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3264) + ); + program.emplace_back( // 3247 + std::make_unique(3248, 3251) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3248 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3264) + ); + program.emplace_back( // 3251 + std::make_unique(3252, 3256) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3252 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3264) + ); + program.emplace_back( // 3256 + std::make_unique(3257, 3261) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3257 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3264) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3261 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3264 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3266, 3268) + ); + // [0-9] + program.emplace_back( // 3266 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3285) + ); + program.emplace_back( // 3268 + std::make_unique(3269, 3272) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3269 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3285) + ); + program.emplace_back( // 3272 + std::make_unique(3273, 3277) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3273 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3285) + ); + program.emplace_back( // 3277 + std::make_unique(3278, 3282) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3278 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3285) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3282 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3285 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3287, 3289) + ); + // [0-9] + program.emplace_back( // 3287 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3306) + ); + program.emplace_back( // 3289 + std::make_unique(3290, 3293) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3290 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3306) + ); + program.emplace_back( // 3293 + std::make_unique(3294, 3298) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3294 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3306) + ); + program.emplace_back( // 3298 + std::make_unique(3299, 3303) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3299 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3306) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3303 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3306 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3308, 3310) + ); + // [0-9] + program.emplace_back( // 3308 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3327) + ); + program.emplace_back( // 3310 + std::make_unique(3311, 3314) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3311 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3327) + ); + program.emplace_back( // 3314 + std::make_unique(3315, 3319) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3315 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3327) + ); + program.emplace_back( // 3319 + std::make_unique(3320, 3324) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3320 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3327) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3324 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 3327 + std::make_unique(4330) + ); + program.emplace_back( // 3328 + std::make_unique(3329, 3472) + ); + { // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + // : + program.emplace_back( // 3329 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3333, 3338) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3333 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3335, 3338) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3335 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3337, 3338) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3337 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3338 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3341, 3346) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3341 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3343, 3346) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3343 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3345, 3346) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3345 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3346 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3349, 3354) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3349 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3351, 3354) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3351 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3353, 3354) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3353 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3354 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3357, 3362) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3357 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3359, 3362) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3359 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3361, 3362) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3361 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3362 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3365, 3370) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3365 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3367, 3370) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3367 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3369, 3370) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3369 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3370 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(3372, 3388) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3372 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3374, 3379) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3374 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3376, 3379) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3376 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3378, 3379) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3378 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3379 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3382, 3387) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3382 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3384, 3387) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3384 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3386, 3387) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3386 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 3387 + std::make_unique(3471) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 3388 + std::make_unique(3389, 3391) + ); + // [0-9] + program.emplace_back( // 3389 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3408) + ); + program.emplace_back( // 3391 + std::make_unique(3392, 3395) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3392 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3408) + ); + program.emplace_back( // 3395 + std::make_unique(3396, 3400) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3396 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3408) + ); + program.emplace_back( // 3400 + std::make_unique(3401, 3405) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3401 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3408) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3405 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3408 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3410, 3412) + ); + // [0-9] + program.emplace_back( // 3410 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3429) + ); + program.emplace_back( // 3412 + std::make_unique(3413, 3416) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3413 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3429) + ); + program.emplace_back( // 3416 + std::make_unique(3417, 3421) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3417 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3429) + ); + program.emplace_back( // 3421 + std::make_unique(3422, 3426) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3422 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3429) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3426 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3429 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3431, 3433) + ); + // [0-9] + program.emplace_back( // 3431 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3450) + ); + program.emplace_back( // 3433 + std::make_unique(3434, 3437) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3434 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3450) + ); + program.emplace_back( // 3437 + std::make_unique(3438, 3442) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3438 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3450) + ); + program.emplace_back( // 3442 + std::make_unique(3443, 3447) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3443 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3450) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3447 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3450 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3452, 3454) + ); + // [0-9] + program.emplace_back( // 3452 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3471) + ); + program.emplace_back( // 3454 + std::make_unique(3455, 3458) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3455 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3471) + ); + program.emplace_back( // 3458 + std::make_unique(3459, 3463) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3459 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3471) + ); + program.emplace_back( // 3463 + std::make_unique(3464, 3468) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3464 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3471) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3468 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 3471 + std::make_unique(4330) + ); + program.emplace_back( // 3472 + std::make_unique(3473, 3616) + ); + { // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4})? + program.emplace_back( // 3473 + std::make_unique(3474, 3481) + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3474 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3476, 3481) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3476 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3478, 3481) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3478 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3480, 3481) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3480 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 3481 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3485, 3490) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3485 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3487, 3490) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3487 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3489, 3490) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3489 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3490 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3493, 3498) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3493 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3495, 3498) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3495 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3497, 3498) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3497 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3498 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3501, 3506) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3501 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3503, 3506) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3503 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3505, 3506) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3505 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3506 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3509, 3514) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3509 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3511, 3514) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3511 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3513, 3514) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3513 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3514 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(3516, 3532) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3516 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3518, 3523) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3518 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3520, 3523) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3520 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3522, 3523) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3522 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3523 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3526, 3531) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3526 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3528, 3531) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3528 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3530, 3531) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3530 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 3531 + std::make_unique(3615) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 3532 + std::make_unique(3533, 3535) + ); + // [0-9] + program.emplace_back( // 3533 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3552) + ); + program.emplace_back( // 3535 + std::make_unique(3536, 3539) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3536 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3552) + ); + program.emplace_back( // 3539 + std::make_unique(3540, 3544) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3540 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3552) + ); + program.emplace_back( // 3544 + std::make_unique(3545, 3549) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3545 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3552) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3549 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3552 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3554, 3556) + ); + // [0-9] + program.emplace_back( // 3554 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3573) + ); + program.emplace_back( // 3556 + std::make_unique(3557, 3560) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3557 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3573) + ); + program.emplace_back( // 3560 + std::make_unique(3561, 3565) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3561 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3573) + ); + program.emplace_back( // 3565 + std::make_unique(3566, 3570) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3566 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3573) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3570 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3573 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3575, 3577) + ); + // [0-9] + program.emplace_back( // 3575 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3594) + ); + program.emplace_back( // 3577 + std::make_unique(3578, 3581) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3578 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3594) + ); + program.emplace_back( // 3581 + std::make_unique(3582, 3586) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3582 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3594) + ); + program.emplace_back( // 3586 + std::make_unique(3587, 3591) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3587 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3594) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3591 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3594 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3596, 3598) + ); + // [0-9] + program.emplace_back( // 3596 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3615) + ); + program.emplace_back( // 3598 + std::make_unique(3599, 3602) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3599 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3615) + ); + program.emplace_back( // 3602 + std::make_unique(3603, 3607) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3603 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3615) + ); + program.emplace_back( // 3607 + std::make_unique(3608, 3612) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3608 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3615) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3612 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 3615 + std::make_unique(4330) + ); + program.emplace_back( // 3616 + std::make_unique(3617, 3761) + ); + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + program.emplace_back( // 3617 + std::make_unique(3618, 3634) + ); + { // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:)? + program.emplace_back( // 3618 + std::make_unique(3619, 3627) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3619 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3621, 3626) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3621 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3623, 3626) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3623 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3625, 3626) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3625 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3626 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:)? + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3627 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3629, 3634) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3629 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3631, 3634) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3631 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3633, 3634) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3633 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 3634 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3638, 3643) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3638 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3640, 3643) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3640 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3642, 3643) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3642 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3643 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3646, 3651) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3646 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3648, 3651) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3648 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3650, 3651) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3650 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3651 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3654, 3659) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3654 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3656, 3659) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3656 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3658, 3659) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3658 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3659 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(3661, 3677) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3661 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3663, 3668) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3663 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3665, 3668) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3665 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3667, 3668) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3667 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3668 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3671, 3676) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3671 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3673, 3676) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3673 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3675, 3676) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3675 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 3676 + std::make_unique(3760) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 3677 + std::make_unique(3678, 3680) + ); + // [0-9] + program.emplace_back( // 3678 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3697) + ); + program.emplace_back( // 3680 + std::make_unique(3681, 3684) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3681 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3697) + ); + program.emplace_back( // 3684 + std::make_unique(3685, 3689) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3685 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3697) + ); + program.emplace_back( // 3689 + std::make_unique(3690, 3694) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3690 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3697) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3694 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3697 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3699, 3701) + ); + // [0-9] + program.emplace_back( // 3699 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3718) + ); + program.emplace_back( // 3701 + std::make_unique(3702, 3705) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3702 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3718) + ); + program.emplace_back( // 3705 + std::make_unique(3706, 3710) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3706 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3718) + ); + program.emplace_back( // 3710 + std::make_unique(3711, 3715) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3711 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3718) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3715 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3718 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3720, 3722) + ); + // [0-9] + program.emplace_back( // 3720 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3739) + ); + program.emplace_back( // 3722 + std::make_unique(3723, 3726) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3723 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3739) + ); + program.emplace_back( // 3726 + std::make_unique(3727, 3731) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3727 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3739) + ); + program.emplace_back( // 3731 + std::make_unique(3732, 3736) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3732 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3739) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3736 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3739 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3741, 3743) + ); + // [0-9] + program.emplace_back( // 3741 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3760) + ); + program.emplace_back( // 3743 + std::make_unique(3744, 3747) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3744 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3760) + ); + program.emplace_back( // 3747 + std::make_unique(3748, 3752) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3748 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3760) + ); + program.emplace_back( // 3752 + std::make_unique(3753, 3757) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3753 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3760) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3757 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 3760 + std::make_unique(4330) + ); + program.emplace_back( // 3761 + std::make_unique(3762, 3907) + ); + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 3762 + std::make_unique(3763, 3788) + ); + { // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,2} + program.emplace_back( // 3763 + std::make_unique(3764, 3781) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3764 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3766, 3771) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3766 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3768, 3771) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3768 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3770, 3771) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3770 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3771 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(3773, 3781) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3773 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3775, 3780) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3775 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3777, 3780) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3777 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3779, 3780) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3779 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3780 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,2} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3781 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3783, 3788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3783 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3785, 3788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3785 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3787, 3788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3787 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 3788 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3792, 3797) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3792 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3794, 3797) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3794 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3796, 3797) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3796 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3797 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3800, 3805) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3800 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3802, 3805) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3802 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3804, 3805) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3804 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3805 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(3807, 3823) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3807 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3809, 3814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3809 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3811, 3814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3811 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3813, 3814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3813 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3814 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3817, 3822) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3817 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3819, 3822) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3819 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3821, 3822) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3821 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 3822 + std::make_unique(3906) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 3823 + std::make_unique(3824, 3826) + ); + // [0-9] + program.emplace_back( // 3824 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3843) + ); + program.emplace_back( // 3826 + std::make_unique(3827, 3830) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3827 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3843) + ); + program.emplace_back( // 3830 + std::make_unique(3831, 3835) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3831 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3843) + ); + program.emplace_back( // 3835 + std::make_unique(3836, 3840) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3836 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3843) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3840 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3843 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3845, 3847) + ); + // [0-9] + program.emplace_back( // 3845 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3864) + ); + program.emplace_back( // 3847 + std::make_unique(3848, 3851) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3848 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3864) + ); + program.emplace_back( // 3851 + std::make_unique(3852, 3856) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3852 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3864) + ); + program.emplace_back( // 3856 + std::make_unique(3857, 3861) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3857 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3864) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3861 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3864 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3866, 3868) + ); + // [0-9] + program.emplace_back( // 3866 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3885) + ); + program.emplace_back( // 3868 + std::make_unique(3869, 3872) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3869 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3885) + ); + program.emplace_back( // 3872 + std::make_unique(3873, 3877) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3873 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3885) + ); + program.emplace_back( // 3877 + std::make_unique(3878, 3882) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3878 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3885) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3882 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3885 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3887, 3889) + ); + // [0-9] + program.emplace_back( // 3887 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3906) + ); + program.emplace_back( // 3889 + std::make_unique(3890, 3893) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3890 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3906) + ); + program.emplace_back( // 3893 + std::make_unique(3894, 3898) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3894 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3906) + ); + program.emplace_back( // 3898 + std::make_unique(3899, 3903) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3899 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3906) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3903 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 3906 + std::make_unique(4330) + ); + program.emplace_back( // 3907 + std::make_unique(3908, 4054) + ); + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 3908 + std::make_unique(3909, 3943) + ); + { // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,3} + program.emplace_back( // 3909 + std::make_unique(3910, 3936) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3910 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3912, 3917) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3912 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3914, 3917) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3914 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3916, 3917) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3916 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3917 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(3919, 3936) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3919 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3921, 3926) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3921 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3923, 3926) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3923 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3925, 3926) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3925 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3926 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(3928, 3936) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3928 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3930, 3935) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3930 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3932, 3935) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3932 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3934, 3935) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3934 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3935 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,3} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3936 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3938, 3943) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3938 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3940, 3943) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3940 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3942, 3943) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3942 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 3943 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3947, 3952) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3947 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3949, 3952) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3949 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3951, 3952) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3951 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3952 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(3954, 3970) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 3954 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3956, 3961) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3956 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3958, 3961) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3958 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3960, 3961) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3960 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 3961 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3964, 3969) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3964 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3966, 3969) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3966 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(3968, 3969) + ); + // [0-9A-Fa-f] + program.emplace_back( // 3968 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 3969 + std::make_unique(4053) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 3970 + std::make_unique(3971, 3973) + ); + // [0-9] + program.emplace_back( // 3971 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(3990) + ); + program.emplace_back( // 3973 + std::make_unique(3974, 3977) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3974 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(3990) + ); + program.emplace_back( // 3977 + std::make_unique(3978, 3982) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3978 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(3990) + ); + program.emplace_back( // 3982 + std::make_unique(3983, 3987) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 3983 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(3990) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 3987 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 3990 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(3992, 3994) + ); + // [0-9] + program.emplace_back( // 3992 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4011) + ); + program.emplace_back( // 3994 + std::make_unique(3995, 3998) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 3995 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4011) + ); + program.emplace_back( // 3998 + std::make_unique(3999, 4003) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 3999 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4011) + ); + program.emplace_back( // 4003 + std::make_unique(4004, 4008) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4004 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4011) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4008 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4011 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4013, 4015) + ); + // [0-9] + program.emplace_back( // 4013 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4032) + ); + program.emplace_back( // 4015 + std::make_unique(4016, 4019) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4016 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4032) + ); + program.emplace_back( // 4019 + std::make_unique(4020, 4024) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4020 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4032) + ); + program.emplace_back( // 4024 + std::make_unique(4025, 4029) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4025 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4032) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4029 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4032 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4034, 4036) + ); + // [0-9] + program.emplace_back( // 4034 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4053) + ); + program.emplace_back( // 4036 + std::make_unique(4037, 4040) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4037 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4053) + ); + program.emplace_back( // 4040 + std::make_unique(4041, 4045) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4041 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4053) + ); + program.emplace_back( // 4045 + std::make_unique(4046, 4050) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4046 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4053) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4050 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 4053 + std::make_unique(4330) + ); + program.emplace_back( // 4054 + std::make_unique(4055, 4202) + ); + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 4055 + std::make_unique(4056, 4099) + ); + { // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,4} + program.emplace_back( // 4056 + std::make_unique(4057, 4092) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4057 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4059, 4064) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4059 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4061, 4064) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4061 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4063, 4064) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4063 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4064 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4066, 4092) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4066 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4068, 4073) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4068 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4070, 4073) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4070 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4072, 4073) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4072 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4073 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4075, 4092) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4075 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4077, 4082) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4077 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4079, 4082) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4079 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4081, 4082) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4081 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4082 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4084, 4092) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4084 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4086, 4091) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4086 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4088, 4091) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4088 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4090, 4091) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4090 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4091 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4092 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4094, 4099) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4094 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4096, 4099) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4096 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4098, 4099) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4098 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 4099 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(4102, 4118) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4102 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4104, 4109) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4104 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4106, 4109) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4106 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4108, 4109) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4108 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4109 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4112, 4117) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4112 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4114, 4117) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4114 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4116, 4117) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4116 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 4117 + std::make_unique(4201) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 4118 + std::make_unique(4119, 4121) + ); + // [0-9] + program.emplace_back( // 4119 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4138) + ); + program.emplace_back( // 4121 + std::make_unique(4122, 4125) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4122 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4138) + ); + program.emplace_back( // 4125 + std::make_unique(4126, 4130) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4126 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4138) + ); + program.emplace_back( // 4130 + std::make_unique(4131, 4135) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4131 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4138) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4135 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4138 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4140, 4142) + ); + // [0-9] + program.emplace_back( // 4140 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4159) + ); + program.emplace_back( // 4142 + std::make_unique(4143, 4146) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4143 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4159) + ); + program.emplace_back( // 4146 + std::make_unique(4147, 4151) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4147 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4159) + ); + program.emplace_back( // 4151 + std::make_unique(4152, 4156) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4152 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4159) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4156 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4159 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4161, 4163) + ); + // [0-9] + program.emplace_back( // 4161 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4180) + ); + program.emplace_back( // 4163 + std::make_unique(4164, 4167) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4164 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4180) + ); + program.emplace_back( // 4167 + std::make_unique(4168, 4172) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4168 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4180) + ); + program.emplace_back( // 4172 + std::make_unique(4173, 4177) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4173 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4180) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4177 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4180 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4182, 4184) + ); + // [0-9] + program.emplace_back( // 4182 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4201) + ); + program.emplace_back( // 4184 + std::make_unique(4185, 4188) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4185 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4201) + ); + program.emplace_back( // 4188 + std::make_unique(4189, 4193) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4189 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4201) + ); + program.emplace_back( // 4193 + std::make_unique(4194, 4198) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4194 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4201) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4198 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 4201 + std::make_unique(4330) + ); + program.emplace_back( // 4202 + std::make_unique(4203, 4266) + ); + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 4203 + std::make_unique(4204, 4256) + ); + { // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,5} + program.emplace_back( // 4204 + std::make_unique(4205, 4249) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4205 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4207, 4212) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4207 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4209, 4212) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4209 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4211, 4212) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4211 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4212 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4214, 4249) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4214 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4216, 4221) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4216 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4218, 4221) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4218 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4220, 4221) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4220 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4221 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4223, 4249) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4223 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4225, 4230) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4225 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4227, 4230) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4227 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4229, 4230) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4229 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4230 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4232, 4249) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4232 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4234, 4239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4234 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4236, 4239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4236 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4238, 4239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4238 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4239 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4241, 4249) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4241 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4243, 4248) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4243 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4245, 4248) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4245 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4247, 4248) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4247 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4248 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,5} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4249 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4251, 4256) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4251 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4253, 4256) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4253 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4255, 4256) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4255 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 4256 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4260, 4265) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4260 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4262, 4265) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4262 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4264, 4265) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4264 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + program.emplace_back( // 4265 + std::make_unique(4330) + ); + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 4266 + std::make_unique(4267, 4328) + ); + { // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,6} + program.emplace_back( // 4267 + std::make_unique(4268, 4321) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4268 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4270, 4275) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4270 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4272, 4275) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4272 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4274, 4275) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4274 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4275 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4277, 4321) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4277 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4279, 4284) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4279 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4281, 4284) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4281 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4283, 4284) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4283 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4284 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4286, 4321) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4286 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4288, 4293) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4288 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4290, 4293) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4290 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4292, 4293) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4292 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4293 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4295, 4321) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4295 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4297, 4302) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4297 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4299, 4302) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4299 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4301, 4302) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4301 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4302 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4304, 4321) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4304 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4306, 4311) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4306 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4308, 4311) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4308 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4310, 4311) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4310 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4311 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(4313, 4321) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4313 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4315, 4320) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4315 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4317, 4320) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4317 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4319, 4320) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4319 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 4320 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,6} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 4321 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4323, 4328) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4323 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4325, 4328) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4325 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4327, 4328) + ); + // [0-9A-Fa-f] + program.emplace_back( // 4327 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 4328 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 4330 + std::make_unique(4343) + ); + { // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // [vV] + program.emplace_back( // 4331 + std::make_unique( + std::vector{ + revm::Range(L'V', L'V'), + revm::Range(L'v', L'v') + } + ) + ); + { // [0-9A-Fa-f]+ + // [0-9A-Fa-f] + program.emplace_back( // 4332 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(4332, 4334) + ); + } // [0-9A-Fa-f]+ + // \. + program.emplace_back( // 4334 + std::make_unique(L'.') + ); + { // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + { // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 4335 + std::make_unique(4336, 4338) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 4336 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(4342) + ); + program.emplace_back( // 4338 + std::make_unique(4339, 4341) + ); + // [!$&'()*+,;=] + program.emplace_back( // 4339 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(4342) + ); + // : + program.emplace_back( // 4341 + std::make_unique(L':') + ); + } // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 4342 + std::make_unique(4335, 4343) + ); + } // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // \] + program.emplace_back( // 4343 + std::make_unique(L']') + ); + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + program.emplace_back( + std::make_unique(4612) + ); + program.emplace_back( // 4345 + std::make_unique(4346, 4430) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 4346 + std::make_unique(4347, 4349) + ); + // [0-9] + program.emplace_back( // 4347 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4366) + ); + program.emplace_back( // 4349 + std::make_unique(4350, 4353) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4350 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4366) + ); + program.emplace_back( // 4353 + std::make_unique(4354, 4358) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4354 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4366) + ); + program.emplace_back( // 4358 + std::make_unique(4359, 4363) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4359 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4366) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4363 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4366 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4368, 4370) + ); + // [0-9] + program.emplace_back( // 4368 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4387) + ); + program.emplace_back( // 4370 + std::make_unique(4371, 4374) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4371 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4387) + ); + program.emplace_back( // 4374 + std::make_unique(4375, 4379) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4375 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4387) + ); + program.emplace_back( // 4379 + std::make_unique(4380, 4384) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4380 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4387) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4384 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4387 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4389, 4391) + ); + // [0-9] + program.emplace_back( // 4389 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4408) + ); + program.emplace_back( // 4391 + std::make_unique(4392, 4395) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4392 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4408) + ); + program.emplace_back( // 4395 + std::make_unique(4396, 4400) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4396 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4408) + ); + program.emplace_back( // 4400 + std::make_unique(4401, 4405) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4401 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4408) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4405 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 4408 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(4410, 4412) + ); + // [0-9] + program.emplace_back( // 4410 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4429) + ); + program.emplace_back( // 4412 + std::make_unique(4413, 4416) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 4413 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(4429) + ); + program.emplace_back( // 4416 + std::make_unique(4417, 4421) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 4417 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(4429) + ); + program.emplace_back( // 4421 + std::make_unique(4422, 4426) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 4422 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(4429) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 4426 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( // 4429 + std::make_unique(4612) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 4430 + std::make_unique(4431, 4612) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 4431 + std::make_unique(4432, 4605) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 4432 + std::make_unique(4433, 4435) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 4433 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(4604) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 4435 + std::make_unique(4436, 4438) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 4436 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4438 + std::make_unique(4439, 4442) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 4439 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4442 + std::make_unique(4443, 4446) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 4443 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4446 + std::make_unique(4447, 4450) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 4447 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4450 + std::make_unique(4451, 4454) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 4451 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4454 + std::make_unique(4455, 4458) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 4455 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4458 + std::make_unique(4459, 4462) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 4459 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4462 + std::make_unique(4463, 4466) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 4463 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4466 + std::make_unique(4467, 4470) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 4467 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4470 + std::make_unique(4471, 4474) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 4471 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4474 + std::make_unique(4475, 4478) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 4475 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4478 + std::make_unique(4479, 4482) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 4479 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4482 + std::make_unique(4483, 4486) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 4483 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4486 + std::make_unique(4487, 4490) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 4487 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4490 + std::make_unique(4491, 4494) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 4491 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4494 + std::make_unique(4495, 4498) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 4495 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4498 + std::make_unique(4499, 4502) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 4499 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4502 + std::make_unique(4503, 4506) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 4503 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4506 + std::make_unique(4507, 4510) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 4507 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4510 + std::make_unique(4511, 4514) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 4511 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4514 + std::make_unique(4515, 4518) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 4515 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4518 + std::make_unique(4519, 4522) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 4519 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4522 + std::make_unique(4523, 4526) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 4523 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4526 + std::make_unique(4527, 4530) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 4527 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4530 + std::make_unique(4531, 4534) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 4531 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4534 + std::make_unique(4535, 4538) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 4535 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4538 + std::make_unique(4539, 4542) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 4539 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4542 + std::make_unique(4543, 4546) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 4543 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4546 + std::make_unique(4547, 4550) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 4547 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4550 + std::make_unique(4551, 4554) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 4551 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4554 + std::make_unique(4555, 4558) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 4555 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4558 + std::make_unique(4559, 4562) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 4559 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4562 + std::make_unique(4563, 4566) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 4563 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4566 + std::make_unique(4567, 4570) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 4567 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4570 + std::make_unique(4571, 4574) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 4571 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4574 + std::make_unique(4575, 4578) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 4575 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4578 + std::make_unique(4579, 4582) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 4579 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4582 + std::make_unique(4583, 4586) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 4583 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4586 + std::make_unique(4587, 4590) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 4587 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4590 + std::make_unique(4591, 4594) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 4591 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4594 + std::make_unique(4595, 4598) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 4595 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + program.emplace_back( // 4598 + std::make_unique(4599, 4602) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 4599 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4604) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 4602 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 4604 + std::make_unique(4611) + ); + program.emplace_back( // 4605 + std::make_unique(4606, 4610) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 4606 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(4611) + ); + // [!$&'()*+,;=] + program.emplace_back( // 4610 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 4611 + std::make_unique(4430) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + { // (:[0-9]*)? + program.emplace_back( // 4612 + std::make_unique(4613, 4617) + ); + { // :[0-9]* + // : + program.emplace_back( // 4613 + std::make_unique(L':') + ); + { // [0-9]* + program.emplace_back( // 4614 + std::make_unique(4615, 4617) + ); + // [0-9] + program.emplace_back( // 4615 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(4614) + ); + } // [0-9]* + } // :[0-9]* + } // (:[0-9]*)? + { // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 4617 + std::make_unique(4618, 4805) + ); + { // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 4618 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 4619 + std::make_unique(4620, 4804) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 4620 + std::make_unique(4621, 4794) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 4621 + std::make_unique(4622, 4624) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 4622 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(4793) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 4624 + std::make_unique(4625, 4627) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 4625 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4627 + std::make_unique(4628, 4631) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 4628 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4631 + std::make_unique(4632, 4635) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 4632 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4635 + std::make_unique(4636, 4639) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 4636 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4639 + std::make_unique(4640, 4643) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 4640 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4643 + std::make_unique(4644, 4647) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 4644 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4647 + std::make_unique(4648, 4651) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 4648 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4651 + std::make_unique(4652, 4655) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 4652 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4655 + std::make_unique(4656, 4659) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 4656 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4659 + std::make_unique(4660, 4663) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 4660 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4663 + std::make_unique(4664, 4667) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 4664 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4667 + std::make_unique(4668, 4671) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 4668 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4671 + std::make_unique(4672, 4675) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 4672 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4675 + std::make_unique(4676, 4679) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 4676 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4679 + std::make_unique(4680, 4683) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 4680 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4683 + std::make_unique(4684, 4687) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 4684 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4687 + std::make_unique(4688, 4691) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 4688 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4691 + std::make_unique(4692, 4695) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 4692 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4695 + std::make_unique(4696, 4699) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 4696 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4699 + std::make_unique(4700, 4703) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 4700 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4703 + std::make_unique(4704, 4707) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 4704 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4707 + std::make_unique(4708, 4711) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 4708 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4711 + std::make_unique(4712, 4715) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 4712 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4715 + std::make_unique(4716, 4719) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 4716 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4719 + std::make_unique(4720, 4723) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 4720 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4723 + std::make_unique(4724, 4727) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 4724 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4727 + std::make_unique(4728, 4731) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 4728 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4731 + std::make_unique(4732, 4735) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 4732 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4735 + std::make_unique(4736, 4739) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 4736 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4739 + std::make_unique(4740, 4743) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 4740 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4743 + std::make_unique(4744, 4747) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 4744 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4747 + std::make_unique(4748, 4751) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 4748 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4751 + std::make_unique(4752, 4755) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 4752 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4755 + std::make_unique(4756, 4759) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 4756 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4759 + std::make_unique(4760, 4763) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 4760 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4763 + std::make_unique(4764, 4767) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 4764 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4767 + std::make_unique(4768, 4771) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 4768 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4771 + std::make_unique(4772, 4775) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 4772 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4775 + std::make_unique(4776, 4779) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 4776 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4779 + std::make_unique(4780, 4783) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 4780 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4783 + std::make_unique(4784, 4787) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 4784 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + program.emplace_back( // 4787 + std::make_unique(4788, 4791) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 4788 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4793) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 4791 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 4793 + std::make_unique(4803) + ); + program.emplace_back( // 4794 + std::make_unique(4795, 4799) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 4795 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(4803) + ); + program.emplace_back( // 4799 + std::make_unique(4800, 4802) + ); + // [!$&'()*+,;=] + program.emplace_back( // 4800 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(4803) + ); + // [:@] + program.emplace_back( // 4802 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 4803 + std::make_unique(4619) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 4804 + std::make_unique(4617) + ); + } // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 4805 + std::make_unique(5556) + ); + program.emplace_back( // 4806 + std::make_unique(4807, 5182) + ); + { // /(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + // / + program.emplace_back( // 4807 + std::make_unique(L'/') + ); + { // (((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( + std::make_unique(4809, 5181) + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 4809 + std::make_unique(4810, 4983) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 4810 + std::make_unique(4811, 4813) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 4811 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(4982) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 4813 + std::make_unique(4814, 4816) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 4814 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4816 + std::make_unique(4817, 4820) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 4817 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4820 + std::make_unique(4821, 4824) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 4821 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4824 + std::make_unique(4825, 4828) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 4825 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4828 + std::make_unique(4829, 4832) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 4829 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4832 + std::make_unique(4833, 4836) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 4833 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4836 + std::make_unique(4837, 4840) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 4837 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4840 + std::make_unique(4841, 4844) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 4841 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4844 + std::make_unique(4845, 4848) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 4845 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4848 + std::make_unique(4849, 4852) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 4849 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4852 + std::make_unique(4853, 4856) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 4853 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4856 + std::make_unique(4857, 4860) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 4857 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4860 + std::make_unique(4861, 4864) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 4861 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4864 + std::make_unique(4865, 4868) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 4865 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4868 + std::make_unique(4869, 4872) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 4869 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4872 + std::make_unique(4873, 4876) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 4873 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4876 + std::make_unique(4877, 4880) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 4877 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4880 + std::make_unique(4881, 4884) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 4881 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4884 + std::make_unique(4885, 4888) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 4885 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4888 + std::make_unique(4889, 4892) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 4889 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4892 + std::make_unique(4893, 4896) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 4893 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4896 + std::make_unique(4897, 4900) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 4897 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4900 + std::make_unique(4901, 4904) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 4901 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4904 + std::make_unique(4905, 4908) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 4905 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4908 + std::make_unique(4909, 4912) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 4909 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4912 + std::make_unique(4913, 4916) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 4913 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4916 + std::make_unique(4917, 4920) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 4917 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4920 + std::make_unique(4921, 4924) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 4921 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4924 + std::make_unique(4925, 4928) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 4925 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4928 + std::make_unique(4929, 4932) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 4929 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4932 + std::make_unique(4933, 4936) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 4933 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4936 + std::make_unique(4937, 4940) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 4937 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4940 + std::make_unique(4941, 4944) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 4941 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4944 + std::make_unique(4945, 4948) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 4945 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4948 + std::make_unique(4949, 4952) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 4949 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4952 + std::make_unique(4953, 4956) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 4953 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4956 + std::make_unique(4957, 4960) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 4957 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4960 + std::make_unique(4961, 4964) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 4961 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4964 + std::make_unique(4965, 4968) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 4965 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4968 + std::make_unique(4969, 4972) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 4969 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4972 + std::make_unique(4973, 4976) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 4973 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + program.emplace_back( // 4976 + std::make_unique(4977, 4980) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 4977 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(4982) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 4980 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 4982 + std::make_unique(4992) + ); + program.emplace_back( // 4983 + std::make_unique(4984, 4988) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 4984 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(4992) + ); + program.emplace_back( // 4988 + std::make_unique(4989, 4991) + ); + // [!$&'()*+,;=] + program.emplace_back( // 4989 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(4992) + ); + // [:@] + program.emplace_back( // 4991 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 4992 + std::make_unique(4809, 4993) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 4993 + std::make_unique(4994, 5181) + ); + { // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 4994 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 4995 + std::make_unique(4996, 5180) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 4996 + std::make_unique(4997, 5170) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 4997 + std::make_unique(4998, 5000) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 4998 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(5169) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 5000 + std::make_unique(5001, 5003) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 5001 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5003 + std::make_unique(5004, 5007) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 5004 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5007 + std::make_unique(5008, 5011) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 5008 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5011 + std::make_unique(5012, 5015) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 5012 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5015 + std::make_unique(5016, 5019) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 5016 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5019 + std::make_unique(5020, 5023) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 5020 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5023 + std::make_unique(5024, 5027) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 5024 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5027 + std::make_unique(5028, 5031) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 5028 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5031 + std::make_unique(5032, 5035) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 5032 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5035 + std::make_unique(5036, 5039) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 5036 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5039 + std::make_unique(5040, 5043) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 5040 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5043 + std::make_unique(5044, 5047) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 5044 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5047 + std::make_unique(5048, 5051) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 5048 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5051 + std::make_unique(5052, 5055) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 5052 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5055 + std::make_unique(5056, 5059) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 5056 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5059 + std::make_unique(5060, 5063) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 5060 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5063 + std::make_unique(5064, 5067) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 5064 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5067 + std::make_unique(5068, 5071) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 5068 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5071 + std::make_unique(5072, 5075) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 5072 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5075 + std::make_unique(5076, 5079) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 5076 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5079 + std::make_unique(5080, 5083) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 5080 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5083 + std::make_unique(5084, 5087) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 5084 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5087 + std::make_unique(5088, 5091) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 5088 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5091 + std::make_unique(5092, 5095) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 5092 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5095 + std::make_unique(5096, 5099) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 5096 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5099 + std::make_unique(5100, 5103) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 5100 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5103 + std::make_unique(5104, 5107) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 5104 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5107 + std::make_unique(5108, 5111) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 5108 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5111 + std::make_unique(5112, 5115) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 5112 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5115 + std::make_unique(5116, 5119) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 5116 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5119 + std::make_unique(5120, 5123) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 5120 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5123 + std::make_unique(5124, 5127) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 5124 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5127 + std::make_unique(5128, 5131) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 5128 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5131 + std::make_unique(5132, 5135) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 5132 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5135 + std::make_unique(5136, 5139) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 5136 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5139 + std::make_unique(5140, 5143) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 5140 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5143 + std::make_unique(5144, 5147) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 5144 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5147 + std::make_unique(5148, 5151) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 5148 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5151 + std::make_unique(5152, 5155) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 5152 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5155 + std::make_unique(5156, 5159) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 5156 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5159 + std::make_unique(5160, 5163) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 5160 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + program.emplace_back( // 5163 + std::make_unique(5164, 5167) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 5164 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5169) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 5167 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5169 + std::make_unique(5179) + ); + program.emplace_back( // 5170 + std::make_unique(5171, 5175) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 5171 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(5179) + ); + program.emplace_back( // 5175 + std::make_unique(5176, 5178) + ); + // [!$&'()*+,;=] + program.emplace_back( // 5176 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(5179) + ); + // [:@] + program.emplace_back( // 5178 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 5179 + std::make_unique(4995) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 5180 + std::make_unique(4993) + ); + } // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + } // /(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( // 5181 + std::make_unique(5556) + ); + program.emplace_back( // 5182 + std::make_unique(5183, 5556) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+ + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@ + program.emplace_back( // 5183 + std::make_unique(5184, 5357) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5184 + std::make_unique(5185, 5187) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 5185 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(5356) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 5187 + std::make_unique(5188, 5190) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 5188 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5190 + std::make_unique(5191, 5194) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 5191 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5194 + std::make_unique(5195, 5198) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 5195 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5198 + std::make_unique(5199, 5202) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 5199 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5202 + std::make_unique(5203, 5206) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 5203 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5206 + std::make_unique(5207, 5210) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 5207 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5210 + std::make_unique(5211, 5214) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 5211 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5214 + std::make_unique(5215, 5218) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 5215 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5218 + std::make_unique(5219, 5222) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 5219 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5222 + std::make_unique(5223, 5226) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 5223 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5226 + std::make_unique(5227, 5230) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 5227 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5230 + std::make_unique(5231, 5234) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 5231 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5234 + std::make_unique(5235, 5238) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 5235 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5238 + std::make_unique(5239, 5242) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 5239 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5242 + std::make_unique(5243, 5246) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 5243 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5246 + std::make_unique(5247, 5250) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 5247 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5250 + std::make_unique(5251, 5254) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 5251 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5254 + std::make_unique(5255, 5258) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 5255 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5258 + std::make_unique(5259, 5262) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 5259 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5262 + std::make_unique(5263, 5266) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 5263 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5266 + std::make_unique(5267, 5270) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 5267 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5270 + std::make_unique(5271, 5274) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 5271 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5274 + std::make_unique(5275, 5278) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 5275 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5278 + std::make_unique(5279, 5282) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 5279 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5282 + std::make_unique(5283, 5286) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 5283 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5286 + std::make_unique(5287, 5290) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 5287 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5290 + std::make_unique(5291, 5294) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 5291 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5294 + std::make_unique(5295, 5298) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 5295 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5298 + std::make_unique(5299, 5302) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 5299 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5302 + std::make_unique(5303, 5306) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 5303 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5306 + std::make_unique(5307, 5310) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 5307 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5310 + std::make_unique(5311, 5314) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 5311 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5314 + std::make_unique(5315, 5318) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 5315 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5318 + std::make_unique(5319, 5322) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 5319 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5322 + std::make_unique(5323, 5326) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 5323 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5326 + std::make_unique(5327, 5330) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 5327 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5330 + std::make_unique(5331, 5334) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 5331 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5334 + std::make_unique(5335, 5338) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 5335 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5338 + std::make_unique(5339, 5342) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 5339 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5342 + std::make_unique(5343, 5346) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 5343 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5346 + std::make_unique(5347, 5350) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 5347 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + program.emplace_back( // 5350 + std::make_unique(5351, 5354) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 5351 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5356) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 5354 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5356 + std::make_unique(5366) + ); + program.emplace_back( // 5357 + std::make_unique(5358, 5362) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 5358 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(5366) + ); + program.emplace_back( // 5362 + std::make_unique(5363, 5365) + ); + // [!$&'()*+,;=] + program.emplace_back( // 5363 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(5366) + ); + // @ + program.emplace_back( // 5365 + std::make_unique(L'@') + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@ + program.emplace_back( // 5366 + std::make_unique(5183, 5367) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+ + { // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 5367 + std::make_unique(5368, 5555) + ); + { // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 5368 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 5369 + std::make_unique(5370, 5554) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 5370 + std::make_unique(5371, 5544) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5371 + std::make_unique(5372, 5374) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 5372 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(5543) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 5374 + std::make_unique(5375, 5377) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 5375 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5377 + std::make_unique(5378, 5381) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 5378 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5381 + std::make_unique(5382, 5385) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 5382 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5385 + std::make_unique(5386, 5389) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 5386 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5389 + std::make_unique(5390, 5393) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 5390 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5393 + std::make_unique(5394, 5397) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 5394 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5397 + std::make_unique(5398, 5401) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 5398 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5401 + std::make_unique(5402, 5405) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 5402 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5405 + std::make_unique(5406, 5409) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 5406 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5409 + std::make_unique(5410, 5413) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 5410 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5413 + std::make_unique(5414, 5417) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 5414 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5417 + std::make_unique(5418, 5421) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 5418 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5421 + std::make_unique(5422, 5425) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 5422 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5425 + std::make_unique(5426, 5429) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 5426 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5429 + std::make_unique(5430, 5433) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 5430 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5433 + std::make_unique(5434, 5437) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 5434 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5437 + std::make_unique(5438, 5441) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 5438 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5441 + std::make_unique(5442, 5445) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 5442 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5445 + std::make_unique(5446, 5449) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 5446 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5449 + std::make_unique(5450, 5453) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 5450 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5453 + std::make_unique(5454, 5457) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 5454 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5457 + std::make_unique(5458, 5461) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 5458 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5461 + std::make_unique(5462, 5465) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 5462 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5465 + std::make_unique(5466, 5469) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 5466 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5469 + std::make_unique(5470, 5473) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 5470 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5473 + std::make_unique(5474, 5477) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 5474 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5477 + std::make_unique(5478, 5481) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 5478 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5481 + std::make_unique(5482, 5485) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 5482 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5485 + std::make_unique(5486, 5489) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 5486 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5489 + std::make_unique(5490, 5493) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 5490 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5493 + std::make_unique(5494, 5497) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 5494 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5497 + std::make_unique(5498, 5501) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 5498 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5501 + std::make_unique(5502, 5505) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 5502 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5505 + std::make_unique(5506, 5509) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 5506 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5509 + std::make_unique(5510, 5513) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 5510 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5513 + std::make_unique(5514, 5517) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 5514 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5517 + std::make_unique(5518, 5521) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 5518 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5521 + std::make_unique(5522, 5525) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 5522 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5525 + std::make_unique(5526, 5529) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 5526 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5529 + std::make_unique(5530, 5533) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 5530 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5533 + std::make_unique(5534, 5537) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 5534 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + program.emplace_back( // 5537 + std::make_unique(5538, 5541) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 5538 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5543) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 5541 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5543 + std::make_unique(5553) + ); + program.emplace_back( // 5544 + std::make_unique(5545, 5549) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 5545 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(5553) + ); + program.emplace_back( // 5549 + std::make_unique(5550, 5552) + ); + // [!$&'()*+,;=] + program.emplace_back( // 5550 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(5553) + ); + // [:@] + program.emplace_back( // 5552 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 5553 + std::make_unique(5369) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 5554 + std::make_unique(5367) + ); + } // (/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 5555 + std::make_unique(5556) + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + // Intentionally empty + } + } // //((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + { // (\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)? + program.emplace_back( // 5556 + std::make_unique(5557, 5773) + ); + { // \?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + // \? + program.emplace_back( // 5557 + std::make_unique(L'?') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + program.emplace_back( // 5558 + std::make_unique(5559, 5773) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?] + program.emplace_back( // 5559 + std::make_unique(5560, 5744) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 5560 + std::make_unique(5561, 5734) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5561 + std::make_unique(5562, 5564) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 5562 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(5733) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 5564 + std::make_unique(5565, 5567) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 5565 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5567 + std::make_unique(5568, 5571) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 5568 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5571 + std::make_unique(5572, 5575) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 5572 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5575 + std::make_unique(5576, 5579) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 5576 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5579 + std::make_unique(5580, 5583) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 5580 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5583 + std::make_unique(5584, 5587) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 5584 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5587 + std::make_unique(5588, 5591) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 5588 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5591 + std::make_unique(5592, 5595) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 5592 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5595 + std::make_unique(5596, 5599) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 5596 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5599 + std::make_unique(5600, 5603) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 5600 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5603 + std::make_unique(5604, 5607) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 5604 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5607 + std::make_unique(5608, 5611) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 5608 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5611 + std::make_unique(5612, 5615) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 5612 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5615 + std::make_unique(5616, 5619) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 5616 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5619 + std::make_unique(5620, 5623) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 5620 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5623 + std::make_unique(5624, 5627) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 5624 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5627 + std::make_unique(5628, 5631) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 5628 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5631 + std::make_unique(5632, 5635) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 5632 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5635 + std::make_unique(5636, 5639) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 5636 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5639 + std::make_unique(5640, 5643) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 5640 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5643 + std::make_unique(5644, 5647) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 5644 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5647 + std::make_unique(5648, 5651) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 5648 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5651 + std::make_unique(5652, 5655) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 5652 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5655 + std::make_unique(5656, 5659) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 5656 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5659 + std::make_unique(5660, 5663) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 5660 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5663 + std::make_unique(5664, 5667) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 5664 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5667 + std::make_unique(5668, 5671) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 5668 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5671 + std::make_unique(5672, 5675) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 5672 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5675 + std::make_unique(5676, 5679) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 5676 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5679 + std::make_unique(5680, 5683) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 5680 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5683 + std::make_unique(5684, 5687) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 5684 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5687 + std::make_unique(5688, 5691) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 5688 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5691 + std::make_unique(5692, 5695) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 5692 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5695 + std::make_unique(5696, 5699) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 5696 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5699 + std::make_unique(5700, 5703) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 5700 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5703 + std::make_unique(5704, 5707) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 5704 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5707 + std::make_unique(5708, 5711) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 5708 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5711 + std::make_unique(5712, 5715) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 5712 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5715 + std::make_unique(5716, 5719) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 5716 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5719 + std::make_unique(5720, 5723) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 5720 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5723 + std::make_unique(5724, 5727) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 5724 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + program.emplace_back( // 5727 + std::make_unique(5728, 5731) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 5728 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5733) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 5731 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5733 + std::make_unique(5743) + ); + program.emplace_back( // 5734 + std::make_unique(5735, 5739) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 5735 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(5743) + ); + program.emplace_back( // 5739 + std::make_unique(5740, 5742) + ); + // [!$&'()*+,;=] + program.emplace_back( // 5740 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(5743) + ); + // [:@] + program.emplace_back( // 5742 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 5743 + std::make_unique(5772) + ); + program.emplace_back( // 5744 + std::make_unique(5745, 5771) + ); + { // [\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd] + program.emplace_back( // 5745 + std::make_unique(5746, 5748) + ); + // [\ue000-\uf8ff] + program.emplace_back( // 5746 + std::make_unique( + std::vector{ + revm::Range(L'\ue000', L'\uf8ff') + } + ) + ); + program.emplace_back( + std::make_unique(5770) + ); + program.emplace_back( // 5748 + std::make_unique(5749, 5752) + ); + { // \udb80[\udc00-\udfff] + // \udb80 + program.emplace_back( // 5749 + std::make_unique(static_cast(0xdb80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb80[\udc00-\udfff] + program.emplace_back( + std::make_unique(5770) + ); + program.emplace_back( // 5752 + std::make_unique(5753, 5756) + ); + { // [\udb81-\udbbe][\udc00-\udfff] + // [\udb81-\udbbe] + program.emplace_back( // 5753 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb81), static_cast(0xdbbe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb81-\udbbe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5770) + ); + program.emplace_back( // 5756 + std::make_unique(5757, 5760) + ); + { // \udbbf[\udc00-\udffd] + // \udbbf + program.emplace_back( // 5757 + std::make_unique(static_cast(0xdbbf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udbbf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5770) + ); + program.emplace_back( // 5760 + std::make_unique(5761, 5764) + ); + { // \udbc0[\udc00-\udfff] + // \udbc0 + program.emplace_back( // 5761 + std::make_unique(static_cast(0xdbc0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udbc0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5770) + ); + program.emplace_back( // 5764 + std::make_unique(5765, 5768) + ); + { // [\udbc1-\udbfe][\udc00-\udfff] + // [\udbc1-\udbfe] + program.emplace_back( // 5765 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdbc1), static_cast(0xdbfe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udbc1-\udbfe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5770) + ); + { // \udbff[\udc00-\udffd] + // \udbff + program.emplace_back( // 5768 + std::make_unique(static_cast(0xdbff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udbff[\udc00-\udffd] + } // [\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd] + program.emplace_back( // 5770 + std::make_unique(5772) + ); + // [/?] + program.emplace_back( // 5771 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?] + program.emplace_back( // 5772 + std::make_unique(5558) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + } // \?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])* + } // (\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)? + { // (#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( // 5773 + std::make_unique(5774, 5963) + ); + { // #((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + // # + program.emplace_back( // 5774 + std::make_unique(L'#') + ); + { // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + program.emplace_back( // 5775 + std::make_unique(5776, 5963) + ); + { // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 5776 + std::make_unique(5777, 5961) + ); + { // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 5777 + std::make_unique(5778, 5951) + ); + { // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5778 + std::make_unique(5779, 5781) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 5779 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(5950) + ); + { // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + program.emplace_back( // 5781 + std::make_unique(5782, 5784) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef] + program.emplace_back( // 5782 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef') + } + ) + ); + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5784 + std::make_unique(5785, 5788) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 5785 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5788 + std::make_unique(5789, 5792) + ); + { // [\ud801-\ud83e][\udc00-\udfff] + // [\ud801-\ud83e] + program.emplace_back( // 5789 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xd83e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\ud83e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5792 + std::make_unique(5793, 5796) + ); + { // \ud83f[\udc00-\udffd] + // \ud83f + program.emplace_back( // 5793 + std::make_unique(static_cast(0xd83f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud83f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5796 + std::make_unique(5797, 5800) + ); + { // \ud840[\udc00-\udfff] + // \ud840 + program.emplace_back( // 5797 + std::make_unique(static_cast(0xd840)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud840[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5800 + std::make_unique(5801, 5804) + ); + { // [\ud841-\ud87e][\udc00-\udfff] + // [\ud841-\ud87e] + program.emplace_back( // 5801 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd841), static_cast(0xd87e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud841-\ud87e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5804 + std::make_unique(5805, 5808) + ); + { // \ud87f[\udc00-\udffd] + // \ud87f + program.emplace_back( // 5805 + std::make_unique(static_cast(0xd87f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud87f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5808 + std::make_unique(5809, 5812) + ); + { // \ud880[\udc00-\udfff] + // \ud880 + program.emplace_back( // 5809 + std::make_unique(static_cast(0xd880)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud880[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5812 + std::make_unique(5813, 5816) + ); + { // [\ud881-\ud8be][\udc00-\udfff] + // [\ud881-\ud8be] + program.emplace_back( // 5813 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd881), static_cast(0xd8be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud881-\ud8be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5816 + std::make_unique(5817, 5820) + ); + { // \ud8bf[\udc00-\udffd] + // \ud8bf + program.emplace_back( // 5817 + std::make_unique(static_cast(0xd8bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5820 + std::make_unique(5821, 5824) + ); + { // \ud8c0[\udc00-\udfff] + // \ud8c0 + program.emplace_back( // 5821 + std::make_unique(static_cast(0xd8c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud8c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5824 + std::make_unique(5825, 5828) + ); + { // [\ud8c1-\ud8fe][\udc00-\udfff] + // [\ud8c1-\ud8fe] + program.emplace_back( // 5825 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd8c1), static_cast(0xd8fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud8c1-\ud8fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5828 + std::make_unique(5829, 5832) + ); + { // \ud8ff[\udc00-\udffd] + // \ud8ff + program.emplace_back( // 5829 + std::make_unique(static_cast(0xd8ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud8ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5832 + std::make_unique(5833, 5836) + ); + { // \ud900[\udc00-\udfff] + // \ud900 + program.emplace_back( // 5833 + std::make_unique(static_cast(0xd900)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud900[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5836 + std::make_unique(5837, 5840) + ); + { // [\ud901-\ud93e][\udc00-\udfff] + // [\ud901-\ud93e] + program.emplace_back( // 5837 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd901), static_cast(0xd93e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud901-\ud93e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5840 + std::make_unique(5841, 5844) + ); + { // \ud93f[\udc00-\udffd] + // \ud93f + program.emplace_back( // 5841 + std::make_unique(static_cast(0xd93f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud93f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5844 + std::make_unique(5845, 5848) + ); + { // \ud940[\udc00-\udfff] + // \ud940 + program.emplace_back( // 5845 + std::make_unique(static_cast(0xd940)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud940[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5848 + std::make_unique(5849, 5852) + ); + { // [\ud941-\ud97e][\udc00-\udfff] + // [\ud941-\ud97e] + program.emplace_back( // 5849 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd941), static_cast(0xd97e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud941-\ud97e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5852 + std::make_unique(5853, 5856) + ); + { // \ud97f[\udc00-\udffd] + // \ud97f + program.emplace_back( // 5853 + std::make_unique(static_cast(0xd97f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud97f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5856 + std::make_unique(5857, 5860) + ); + { // \ud980[\udc00-\udfff] + // \ud980 + program.emplace_back( // 5857 + std::make_unique(static_cast(0xd980)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud980[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5860 + std::make_unique(5861, 5864) + ); + { // [\ud981-\ud9be][\udc00-\udfff] + // [\ud981-\ud9be] + program.emplace_back( // 5861 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd981), static_cast(0xd9be)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud981-\ud9be][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5864 + std::make_unique(5865, 5868) + ); + { // \ud9bf[\udc00-\udffd] + // \ud9bf + program.emplace_back( // 5865 + std::make_unique(static_cast(0xd9bf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9bf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5868 + std::make_unique(5869, 5872) + ); + { // \ud9c0[\udc00-\udfff] + // \ud9c0 + program.emplace_back( // 5869 + std::make_unique(static_cast(0xd9c0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud9c0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5872 + std::make_unique(5873, 5876) + ); + { // [\ud9c1-\ud9fe][\udc00-\udfff] + // [\ud9c1-\ud9fe] + program.emplace_back( // 5873 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd9c1), static_cast(0xd9fe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud9c1-\ud9fe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5876 + std::make_unique(5877, 5880) + ); + { // \ud9ff[\udc00-\udffd] + // \ud9ff + program.emplace_back( // 5877 + std::make_unique(static_cast(0xd9ff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \ud9ff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5880 + std::make_unique(5881, 5884) + ); + { // \uda00[\udc00-\udfff] + // \uda00 + program.emplace_back( // 5881 + std::make_unique(static_cast(0xda00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5884 + std::make_unique(5885, 5888) + ); + { // [\uda01-\uda3e][\udc00-\udfff] + // [\uda01-\uda3e] + program.emplace_back( // 5885 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda01), static_cast(0xda3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda01-\uda3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5888 + std::make_unique(5889, 5892) + ); + { // \uda3f[\udc00-\udffd] + // \uda3f + program.emplace_back( // 5889 + std::make_unique(static_cast(0xda3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5892 + std::make_unique(5893, 5896) + ); + { // \uda40[\udc00-\udfff] + // \uda40 + program.emplace_back( // 5893 + std::make_unique(static_cast(0xda40)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda40[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5896 + std::make_unique(5897, 5900) + ); + { // [\uda41-\uda7e][\udc00-\udfff] + // [\uda41-\uda7e] + program.emplace_back( // 5897 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda41), static_cast(0xda7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda41-\uda7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5900 + std::make_unique(5901, 5904) + ); + { // \uda7f[\udc00-\udffd] + // \uda7f + program.emplace_back( // 5901 + std::make_unique(static_cast(0xda7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \uda7f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5904 + std::make_unique(5905, 5908) + ); + { // \uda80[\udc00-\udfff] + // \uda80 + program.emplace_back( // 5905 + std::make_unique(static_cast(0xda80)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \uda80[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5908 + std::make_unique(5909, 5912) + ); + { // [\uda81-\udabe][\udc00-\udfff] + // [\uda81-\udabe] + program.emplace_back( // 5909 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xda81), static_cast(0xdabe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\uda81-\udabe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5912 + std::make_unique(5913, 5916) + ); + { // \udabf[\udc00-\udffd] + // \udabf + program.emplace_back( // 5913 + std::make_unique(static_cast(0xdabf)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udabf[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5916 + std::make_unique(5917, 5920) + ); + { // \udac0[\udc00-\udfff] + // \udac0 + program.emplace_back( // 5917 + std::make_unique(static_cast(0xdac0)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udac0[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5920 + std::make_unique(5921, 5924) + ); + { // [\udac1-\udafe][\udc00-\udfff] + // [\udac1-\udafe] + program.emplace_back( // 5921 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdac1), static_cast(0xdafe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udac1-\udafe][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5924 + std::make_unique(5925, 5928) + ); + { // \udaff[\udc00-\udffd] + // \udaff + program.emplace_back( // 5925 + std::make_unique(static_cast(0xdaff)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udaff[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5928 + std::make_unique(5929, 5932) + ); + { // \udb00[\udc00-\udfff] + // \udb00 + program.emplace_back( // 5929 + std::make_unique(static_cast(0xdb00)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb00[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5932 + std::make_unique(5933, 5936) + ); + { // [\udb01-\udb3e][\udc00-\udfff] + // [\udb01-\udb3e] + program.emplace_back( // 5933 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb01), static_cast(0xdb3e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb01-\udb3e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5936 + std::make_unique(5937, 5940) + ); + { // \udb3f[\udc00-\udffd] + // \udb3f + program.emplace_back( // 5937 + std::make_unique(static_cast(0xdb3f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb3f[\udc00-\udffd] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5940 + std::make_unique(5941, 5944) + ); + { // \udb44[\udc00-\udfff] + // \udb44 + program.emplace_back( // 5941 + std::make_unique(static_cast(0xdb44)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udb44[\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + program.emplace_back( // 5944 + std::make_unique(5945, 5948) + ); + { // [\udb45-\udb7e][\udc00-\udfff] + // [\udb45-\udb7e] + program.emplace_back( // 5945 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdb45), static_cast(0xdb7e)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\udb45-\udb7e][\udc00-\udfff] + program.emplace_back( + std::make_unique(5950) + ); + { // \udb7f[\udc00-\udffd] + // \udb7f + program.emplace_back( // 5948 + std::make_unique(static_cast(0xdb7f)) + ); + // [\udc00-\udffd] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdffd)) + } + ) + ); + } // \udb7f[\udc00-\udffd] + } // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd] + } // [a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]) + program.emplace_back( // 5950 + std::make_unique(5960) + ); + program.emplace_back( // 5951 + std::make_unique(5952, 5956) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 5952 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(5960) + ); + program.emplace_back( // 5956 + std::make_unique(5957, 5959) + ); + // [!$&'()*+,;=] + program.emplace_back( // 5957 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(5960) + ); + // [:@] + program.emplace_back( // 5959 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 5960 + std::make_unique(5962) + ); + // [/?] + program.emplace_back( // 5961 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 5962 + std::make_unique(5775) + ); + } // ((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // #((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // (#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + } // (//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + } // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + // $ + program.emplace_back( // 5963 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^([a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|([\ue000-\uf8ff]|\udb80[\udc00-\udfff]|[\udb81-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|\udbc0[\udc00-\udfff]|[\udbc1-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|[/?])*)?(#((([a-zA-Z0-9\-._~]|([\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef]|\ud800[\udc00-\udfff]|[\ud801-\ud83e][\udc00-\udfff]|\ud83f[\udc00-\udffd]|\ud840[\udc00-\udfff]|[\ud841-\ud87e][\udc00-\udfff]|\ud87f[\udc00-\udffd]|\ud880[\udc00-\udfff]|[\ud881-\ud8be][\udc00-\udfff]|\ud8bf[\udc00-\udffd]|\ud8c0[\udc00-\udfff]|[\ud8c1-\ud8fe][\udc00-\udfff]|\ud8ff[\udc00-\udffd]|\ud900[\udc00-\udfff]|[\ud901-\ud93e][\udc00-\udfff]|\ud93f[\udc00-\udffd]|\ud940[\udc00-\udfff]|[\ud941-\ud97e][\udc00-\udfff]|\ud97f[\udc00-\udffd]|\ud980[\udc00-\udfff]|[\ud981-\ud9be][\udc00-\udfff]|\ud9bf[\udc00-\udffd]|\ud9c0[\udc00-\udfff]|[\ud9c1-\ud9fe][\udc00-\udfff]|\ud9ff[\udc00-\udffd]|\uda00[\udc00-\udfff]|[\uda01-\uda3e][\udc00-\udfff]|\uda3f[\udc00-\udffd]|\uda40[\udc00-\udfff]|[\uda41-\uda7e][\udc00-\udfff]|\uda7f[\udc00-\udffd]|\uda80[\udc00-\udfff]|[\uda81-\udabe][\udc00-\udfff]|\udabf[\udc00-\udffd]|\udac0[\udc00-\udfff]|[\udac1-\udafe][\udc00-\udfff]|\udaff[\udc00-\udffd]|\udb00[\udc00-\udfff]|[\udb01-\udb3e][\udc00-\udfff]|\udb3f[\udc00-\udffd]|\udb44[\udc00-\udfff]|[\udb45-\udb7e][\udc00-\udfff]|\udb7f[\udc00-\udffd]))|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?)$ + #else + // The size of wchar is above 2 bytes. + + { // ^([a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?)$ + { // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( + std::make_unique(1, 1449) + ); + { // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + // [a-zA-Z] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // [a-zA-Z0-9+\-.]* + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // [a-zA-Z0-9+\-.] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + program.emplace_back( + std::make_unique(2) + ); + } // [a-zA-Z0-9+\-.]* + // : + program.emplace_back( // 5 + std::make_unique(L':') + ); + { // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + program.emplace_back( + std::make_unique(7, 1323) + ); + { // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + // / + program.emplace_back( // 7 + std::make_unique(L'/') + ); + // / + program.emplace_back( + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + program.emplace_back( + std::make_unique(10, 28) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + program.emplace_back( // 10 + std::make_unique(11, 27) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 11 + std::make_unique(12, 17) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 12 + std::make_unique(13, 15) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(16) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 15 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 16 + std::make_unique(26) + ); + program.emplace_back( // 17 + std::make_unique(18, 22) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 18 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(26) + ); + program.emplace_back( // 22 + std::make_unique(23, 25) + ); + // [!$&'()*+,;=] + program.emplace_back( // 23 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(26) + ); + // : + program.emplace_back( // 25 + std::make_unique(L':') + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 26 + std::make_unique(10) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + // @ + program.emplace_back( // 27 + std::make_unique(L'@') + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 28 + std::make_unique(29, 1198) + ); + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + // \[ + program.emplace_back( // 29 + std::make_unique(L'[') + ); + { // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + program.emplace_back( + std::make_unique(31, 1184) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 31 + std::make_unique(32, 181) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 32 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(34, 39) + ); + // [0-9A-Fa-f] + program.emplace_back( // 34 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(36, 39) + ); + // [0-9A-Fa-f] + program.emplace_back( // 36 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(38, 39) + ); + // [0-9A-Fa-f] + program.emplace_back( // 38 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 39 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(42, 47) + ); + // [0-9A-Fa-f] + program.emplace_back( // 42 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(44, 47) + ); + // [0-9A-Fa-f] + program.emplace_back( // 44 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(46, 47) + ); + // [0-9A-Fa-f] + program.emplace_back( // 46 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 47 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(50, 55) + ); + // [0-9A-Fa-f] + program.emplace_back( // 50 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(52, 55) + ); + // [0-9A-Fa-f] + program.emplace_back( // 52 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(54, 55) + ); + // [0-9A-Fa-f] + program.emplace_back( // 54 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 55 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(58, 63) + ); + // [0-9A-Fa-f] + program.emplace_back( // 58 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(60, 63) + ); + // [0-9A-Fa-f] + program.emplace_back( // 60 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(62, 63) + ); + // [0-9A-Fa-f] + program.emplace_back( // 62 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 63 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(66, 71) + ); + // [0-9A-Fa-f] + program.emplace_back( // 66 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(68, 71) + ); + // [0-9A-Fa-f] + program.emplace_back( // 68 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(70, 71) + ); + // [0-9A-Fa-f] + program.emplace_back( // 70 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 71 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(74, 79) + ); + // [0-9A-Fa-f] + program.emplace_back( // 74 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(76, 79) + ); + // [0-9A-Fa-f] + program.emplace_back( // 76 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(78, 79) + ); + // [0-9A-Fa-f] + program.emplace_back( // 78 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 79 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(81, 97) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 81 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(83, 88) + ); + // [0-9A-Fa-f] + program.emplace_back( // 83 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(85, 88) + ); + // [0-9A-Fa-f] + program.emplace_back( // 85 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(87, 88) + ); + // [0-9A-Fa-f] + program.emplace_back( // 87 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 88 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(91, 96) + ); + // [0-9A-Fa-f] + program.emplace_back( // 91 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(93, 96) + ); + // [0-9A-Fa-f] + program.emplace_back( // 93 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(95, 96) + ); + // [0-9A-Fa-f] + program.emplace_back( // 95 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 96 + std::make_unique(180) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 97 + std::make_unique(98, 100) + ); + // [0-9] + program.emplace_back( // 98 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(117) + ); + program.emplace_back( // 100 + std::make_unique(101, 104) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 101 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(117) + ); + program.emplace_back( // 104 + std::make_unique(105, 109) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 105 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(117) + ); + program.emplace_back( // 109 + std::make_unique(110, 114) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 110 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(117) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 114 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 117 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(119, 121) + ); + // [0-9] + program.emplace_back( // 119 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(138) + ); + program.emplace_back( // 121 + std::make_unique(122, 125) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 122 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(138) + ); + program.emplace_back( // 125 + std::make_unique(126, 130) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 126 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(138) + ); + program.emplace_back( // 130 + std::make_unique(131, 135) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 131 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(138) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 135 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 138 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(140, 142) + ); + // [0-9] + program.emplace_back( // 140 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(159) + ); + program.emplace_back( // 142 + std::make_unique(143, 146) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 143 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(159) + ); + program.emplace_back( // 146 + std::make_unique(147, 151) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 147 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(159) + ); + program.emplace_back( // 151 + std::make_unique(152, 156) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 152 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(159) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 156 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 159 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(161, 163) + ); + // [0-9] + program.emplace_back( // 161 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(180) + ); + program.emplace_back( // 163 + std::make_unique(164, 167) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 164 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(180) + ); + program.emplace_back( // 167 + std::make_unique(168, 172) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 168 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(180) + ); + program.emplace_back( // 172 + std::make_unique(173, 177) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 173 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(180) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 177 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 180 + std::make_unique(1183) + ); + program.emplace_back( // 181 + std::make_unique(182, 325) + ); + { // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + // : + program.emplace_back( // 182 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(186, 191) + ); + // [0-9A-Fa-f] + program.emplace_back( // 186 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(188, 191) + ); + // [0-9A-Fa-f] + program.emplace_back( // 188 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(190, 191) + ); + // [0-9A-Fa-f] + program.emplace_back( // 190 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 191 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(194, 199) + ); + // [0-9A-Fa-f] + program.emplace_back( // 194 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(196, 199) + ); + // [0-9A-Fa-f] + program.emplace_back( // 196 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(198, 199) + ); + // [0-9A-Fa-f] + program.emplace_back( // 198 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 199 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(202, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 202 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(204, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 204 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(206, 207) + ); + // [0-9A-Fa-f] + program.emplace_back( // 206 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 207 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(210, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 210 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(212, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 212 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(214, 215) + ); + // [0-9A-Fa-f] + program.emplace_back( // 214 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 215 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(218, 223) + ); + // [0-9A-Fa-f] + program.emplace_back( // 218 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(220, 223) + ); + // [0-9A-Fa-f] + program.emplace_back( // 220 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(222, 223) + ); + // [0-9A-Fa-f] + program.emplace_back( // 222 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 223 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(225, 241) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 225 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(227, 232) + ); + // [0-9A-Fa-f] + program.emplace_back( // 227 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(229, 232) + ); + // [0-9A-Fa-f] + program.emplace_back( // 229 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(231, 232) + ); + // [0-9A-Fa-f] + program.emplace_back( // 231 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 232 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(235, 240) + ); + // [0-9A-Fa-f] + program.emplace_back( // 235 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(237, 240) + ); + // [0-9A-Fa-f] + program.emplace_back( // 237 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(239, 240) + ); + // [0-9A-Fa-f] + program.emplace_back( // 239 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 240 + std::make_unique(324) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 241 + std::make_unique(242, 244) + ); + // [0-9] + program.emplace_back( // 242 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(261) + ); + program.emplace_back( // 244 + std::make_unique(245, 248) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 245 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(261) + ); + program.emplace_back( // 248 + std::make_unique(249, 253) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 249 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(261) + ); + program.emplace_back( // 253 + std::make_unique(254, 258) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 254 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(261) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 258 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 261 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(263, 265) + ); + // [0-9] + program.emplace_back( // 263 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(282) + ); + program.emplace_back( // 265 + std::make_unique(266, 269) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 266 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(282) + ); + program.emplace_back( // 269 + std::make_unique(270, 274) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 270 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(282) + ); + program.emplace_back( // 274 + std::make_unique(275, 279) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 275 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(282) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 279 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 282 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(284, 286) + ); + // [0-9] + program.emplace_back( // 284 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(303) + ); + program.emplace_back( // 286 + std::make_unique(287, 290) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 287 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(303) + ); + program.emplace_back( // 290 + std::make_unique(291, 295) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 291 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(303) + ); + program.emplace_back( // 295 + std::make_unique(296, 300) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 296 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(303) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 300 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 303 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(305, 307) + ); + // [0-9] + program.emplace_back( // 305 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(324) + ); + program.emplace_back( // 307 + std::make_unique(308, 311) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 308 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(324) + ); + program.emplace_back( // 311 + std::make_unique(312, 316) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 312 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(324) + ); + program.emplace_back( // 316 + std::make_unique(317, 321) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 317 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(324) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 321 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 324 + std::make_unique(1183) + ); + program.emplace_back( // 325 + std::make_unique(326, 469) + ); + { // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4})? + program.emplace_back( // 326 + std::make_unique(327, 334) + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 327 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(329, 334) + ); + // [0-9A-Fa-f] + program.emplace_back( // 329 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(331, 334) + ); + // [0-9A-Fa-f] + program.emplace_back( // 331 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(333, 334) + ); + // [0-9A-Fa-f] + program.emplace_back( // 333 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 334 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(338, 343) + ); + // [0-9A-Fa-f] + program.emplace_back( // 338 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(340, 343) + ); + // [0-9A-Fa-f] + program.emplace_back( // 340 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(342, 343) + ); + // [0-9A-Fa-f] + program.emplace_back( // 342 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 343 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(346, 351) + ); + // [0-9A-Fa-f] + program.emplace_back( // 346 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(348, 351) + ); + // [0-9A-Fa-f] + program.emplace_back( // 348 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(350, 351) + ); + // [0-9A-Fa-f] + program.emplace_back( // 350 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 351 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(354, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 354 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(356, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 356 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(358, 359) + ); + // [0-9A-Fa-f] + program.emplace_back( // 358 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 359 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(362, 367) + ); + // [0-9A-Fa-f] + program.emplace_back( // 362 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(364, 367) + ); + // [0-9A-Fa-f] + program.emplace_back( // 364 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(366, 367) + ); + // [0-9A-Fa-f] + program.emplace_back( // 366 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 367 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(369, 385) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 369 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(371, 376) + ); + // [0-9A-Fa-f] + program.emplace_back( // 371 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(373, 376) + ); + // [0-9A-Fa-f] + program.emplace_back( // 373 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(375, 376) + ); + // [0-9A-Fa-f] + program.emplace_back( // 375 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 376 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(379, 384) + ); + // [0-9A-Fa-f] + program.emplace_back( // 379 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(381, 384) + ); + // [0-9A-Fa-f] + program.emplace_back( // 381 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(383, 384) + ); + // [0-9A-Fa-f] + program.emplace_back( // 383 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 384 + std::make_unique(468) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 385 + std::make_unique(386, 388) + ); + // [0-9] + program.emplace_back( // 386 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(405) + ); + program.emplace_back( // 388 + std::make_unique(389, 392) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 389 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(405) + ); + program.emplace_back( // 392 + std::make_unique(393, 397) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 393 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(405) + ); + program.emplace_back( // 397 + std::make_unique(398, 402) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 398 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(405) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 402 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 405 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(407, 409) + ); + // [0-9] + program.emplace_back( // 407 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(426) + ); + program.emplace_back( // 409 + std::make_unique(410, 413) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 410 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(426) + ); + program.emplace_back( // 413 + std::make_unique(414, 418) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 414 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(426) + ); + program.emplace_back( // 418 + std::make_unique(419, 423) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 419 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(426) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 423 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 426 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(428, 430) + ); + // [0-9] + program.emplace_back( // 428 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(447) + ); + program.emplace_back( // 430 + std::make_unique(431, 434) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 431 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(447) + ); + program.emplace_back( // 434 + std::make_unique(435, 439) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 435 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(447) + ); + program.emplace_back( // 439 + std::make_unique(440, 444) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 440 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(447) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 444 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 447 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(449, 451) + ); + // [0-9] + program.emplace_back( // 449 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(468) + ); + program.emplace_back( // 451 + std::make_unique(452, 455) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 452 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(468) + ); + program.emplace_back( // 455 + std::make_unique(456, 460) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 456 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(468) + ); + program.emplace_back( // 460 + std::make_unique(461, 465) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 461 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(468) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 465 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 468 + std::make_unique(1183) + ); + program.emplace_back( // 469 + std::make_unique(470, 614) + ); + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + program.emplace_back( // 470 + std::make_unique(471, 487) + ); + { // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:)? + program.emplace_back( // 471 + std::make_unique(472, 480) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 472 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(474, 479) + ); + // [0-9A-Fa-f] + program.emplace_back( // 474 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(476, 479) + ); + // [0-9A-Fa-f] + program.emplace_back( // 476 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(478, 479) + ); + // [0-9A-Fa-f] + program.emplace_back( // 478 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 479 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:)? + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 480 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(482, 487) + ); + // [0-9A-Fa-f] + program.emplace_back( // 482 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(484, 487) + ); + // [0-9A-Fa-f] + program.emplace_back( // 484 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(486, 487) + ); + // [0-9A-Fa-f] + program.emplace_back( // 486 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 487 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(491, 496) + ); + // [0-9A-Fa-f] + program.emplace_back( // 491 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(493, 496) + ); + // [0-9A-Fa-f] + program.emplace_back( // 493 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(495, 496) + ); + // [0-9A-Fa-f] + program.emplace_back( // 495 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 496 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(499, 504) + ); + // [0-9A-Fa-f] + program.emplace_back( // 499 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(501, 504) + ); + // [0-9A-Fa-f] + program.emplace_back( // 501 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(503, 504) + ); + // [0-9A-Fa-f] + program.emplace_back( // 503 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 504 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(507, 512) + ); + // [0-9A-Fa-f] + program.emplace_back( // 507 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(509, 512) + ); + // [0-9A-Fa-f] + program.emplace_back( // 509 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(511, 512) + ); + // [0-9A-Fa-f] + program.emplace_back( // 511 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 512 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(514, 530) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 514 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(516, 521) + ); + // [0-9A-Fa-f] + program.emplace_back( // 516 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(518, 521) + ); + // [0-9A-Fa-f] + program.emplace_back( // 518 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(520, 521) + ); + // [0-9A-Fa-f] + program.emplace_back( // 520 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 521 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(524, 529) + ); + // [0-9A-Fa-f] + program.emplace_back( // 524 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(526, 529) + ); + // [0-9A-Fa-f] + program.emplace_back( // 526 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(528, 529) + ); + // [0-9A-Fa-f] + program.emplace_back( // 528 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 529 + std::make_unique(613) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 530 + std::make_unique(531, 533) + ); + // [0-9] + program.emplace_back( // 531 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(550) + ); + program.emplace_back( // 533 + std::make_unique(534, 537) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 534 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(550) + ); + program.emplace_back( // 537 + std::make_unique(538, 542) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 538 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(550) + ); + program.emplace_back( // 542 + std::make_unique(543, 547) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 543 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(550) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 547 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 550 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(552, 554) + ); + // [0-9] + program.emplace_back( // 552 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(571) + ); + program.emplace_back( // 554 + std::make_unique(555, 558) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 555 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(571) + ); + program.emplace_back( // 558 + std::make_unique(559, 563) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 559 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(571) + ); + program.emplace_back( // 563 + std::make_unique(564, 568) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 564 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(571) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 568 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 571 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(573, 575) + ); + // [0-9] + program.emplace_back( // 573 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(592) + ); + program.emplace_back( // 575 + std::make_unique(576, 579) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 576 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(592) + ); + program.emplace_back( // 579 + std::make_unique(580, 584) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 580 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(592) + ); + program.emplace_back( // 584 + std::make_unique(585, 589) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 585 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(592) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 589 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 592 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(594, 596) + ); + // [0-9] + program.emplace_back( // 594 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(613) + ); + program.emplace_back( // 596 + std::make_unique(597, 600) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 597 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(613) + ); + program.emplace_back( // 600 + std::make_unique(601, 605) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 601 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(613) + ); + program.emplace_back( // 605 + std::make_unique(606, 610) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 606 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(613) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 610 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 613 + std::make_unique(1183) + ); + program.emplace_back( // 614 + std::make_unique(615, 760) + ); + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 615 + std::make_unique(616, 641) + ); + { // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,2} + program.emplace_back( // 616 + std::make_unique(617, 634) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 617 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(619, 624) + ); + // [0-9A-Fa-f] + program.emplace_back( // 619 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(621, 624) + ); + // [0-9A-Fa-f] + program.emplace_back( // 621 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(623, 624) + ); + // [0-9A-Fa-f] + program.emplace_back( // 623 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 624 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(626, 634) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 626 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(628, 633) + ); + // [0-9A-Fa-f] + program.emplace_back( // 628 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(630, 633) + ); + // [0-9A-Fa-f] + program.emplace_back( // 630 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(632, 633) + ); + // [0-9A-Fa-f] + program.emplace_back( // 632 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 633 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,2} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 634 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(636, 641) + ); + // [0-9A-Fa-f] + program.emplace_back( // 636 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(638, 641) + ); + // [0-9A-Fa-f] + program.emplace_back( // 638 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(640, 641) + ); + // [0-9A-Fa-f] + program.emplace_back( // 640 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 641 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(645, 650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 645 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(647, 650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 647 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(649, 650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 649 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 650 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(653, 658) + ); + // [0-9A-Fa-f] + program.emplace_back( // 653 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(655, 658) + ); + // [0-9A-Fa-f] + program.emplace_back( // 655 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(657, 658) + ); + // [0-9A-Fa-f] + program.emplace_back( // 657 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 658 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(660, 676) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 660 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(662, 667) + ); + // [0-9A-Fa-f] + program.emplace_back( // 662 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(664, 667) + ); + // [0-9A-Fa-f] + program.emplace_back( // 664 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(666, 667) + ); + // [0-9A-Fa-f] + program.emplace_back( // 666 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 667 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(670, 675) + ); + // [0-9A-Fa-f] + program.emplace_back( // 670 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(672, 675) + ); + // [0-9A-Fa-f] + program.emplace_back( // 672 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(674, 675) + ); + // [0-9A-Fa-f] + program.emplace_back( // 674 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 675 + std::make_unique(759) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 676 + std::make_unique(677, 679) + ); + // [0-9] + program.emplace_back( // 677 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(696) + ); + program.emplace_back( // 679 + std::make_unique(680, 683) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 680 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(696) + ); + program.emplace_back( // 683 + std::make_unique(684, 688) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 684 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(696) + ); + program.emplace_back( // 688 + std::make_unique(689, 693) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 689 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(696) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 693 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 696 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(698, 700) + ); + // [0-9] + program.emplace_back( // 698 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(717) + ); + program.emplace_back( // 700 + std::make_unique(701, 704) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 701 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(717) + ); + program.emplace_back( // 704 + std::make_unique(705, 709) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 705 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(717) + ); + program.emplace_back( // 709 + std::make_unique(710, 714) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 710 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(717) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 714 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 717 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(719, 721) + ); + // [0-9] + program.emplace_back( // 719 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(738) + ); + program.emplace_back( // 721 + std::make_unique(722, 725) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 722 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(738) + ); + program.emplace_back( // 725 + std::make_unique(726, 730) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 726 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(738) + ); + program.emplace_back( // 730 + std::make_unique(731, 735) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 731 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(738) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 735 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 738 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(740, 742) + ); + // [0-9] + program.emplace_back( // 740 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(759) + ); + program.emplace_back( // 742 + std::make_unique(743, 746) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 743 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(759) + ); + program.emplace_back( // 746 + std::make_unique(747, 751) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 747 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(759) + ); + program.emplace_back( // 751 + std::make_unique(752, 756) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 752 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(759) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 756 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 759 + std::make_unique(1183) + ); + program.emplace_back( // 760 + std::make_unique(761, 907) + ); + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 761 + std::make_unique(762, 796) + ); + { // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,3} + program.emplace_back( // 762 + std::make_unique(763, 789) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 763 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(765, 770) + ); + // [0-9A-Fa-f] + program.emplace_back( // 765 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(767, 770) + ); + // [0-9A-Fa-f] + program.emplace_back( // 767 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(769, 770) + ); + // [0-9A-Fa-f] + program.emplace_back( // 769 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 770 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(772, 789) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 772 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(774, 779) + ); + // [0-9A-Fa-f] + program.emplace_back( // 774 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(776, 779) + ); + // [0-9A-Fa-f] + program.emplace_back( // 776 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(778, 779) + ); + // [0-9A-Fa-f] + program.emplace_back( // 778 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 779 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(781, 789) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 781 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(783, 788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 783 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(785, 788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 785 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(787, 788) + ); + // [0-9A-Fa-f] + program.emplace_back( // 787 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 788 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,3} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 789 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(791, 796) + ); + // [0-9A-Fa-f] + program.emplace_back( // 791 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(793, 796) + ); + // [0-9A-Fa-f] + program.emplace_back( // 793 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(795, 796) + ); + // [0-9A-Fa-f] + program.emplace_back( // 795 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 796 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(800, 805) + ); + // [0-9A-Fa-f] + program.emplace_back( // 800 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(802, 805) + ); + // [0-9A-Fa-f] + program.emplace_back( // 802 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(804, 805) + ); + // [0-9A-Fa-f] + program.emplace_back( // 804 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 805 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(807, 823) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 807 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(809, 814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 809 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(811, 814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 811 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(813, 814) + ); + // [0-9A-Fa-f] + program.emplace_back( // 813 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 814 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(817, 822) + ); + // [0-9A-Fa-f] + program.emplace_back( // 817 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(819, 822) + ); + // [0-9A-Fa-f] + program.emplace_back( // 819 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(821, 822) + ); + // [0-9A-Fa-f] + program.emplace_back( // 821 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 822 + std::make_unique(906) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 823 + std::make_unique(824, 826) + ); + // [0-9] + program.emplace_back( // 824 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(843) + ); + program.emplace_back( // 826 + std::make_unique(827, 830) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 827 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(843) + ); + program.emplace_back( // 830 + std::make_unique(831, 835) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 831 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(843) + ); + program.emplace_back( // 835 + std::make_unique(836, 840) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 836 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(843) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 840 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 843 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(845, 847) + ); + // [0-9] + program.emplace_back( // 845 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(864) + ); + program.emplace_back( // 847 + std::make_unique(848, 851) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 848 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(864) + ); + program.emplace_back( // 851 + std::make_unique(852, 856) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 852 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(864) + ); + program.emplace_back( // 856 + std::make_unique(857, 861) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 857 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(864) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 861 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 864 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(866, 868) + ); + // [0-9] + program.emplace_back( // 866 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(885) + ); + program.emplace_back( // 868 + std::make_unique(869, 872) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 869 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(885) + ); + program.emplace_back( // 872 + std::make_unique(873, 877) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 873 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(885) + ); + program.emplace_back( // 877 + std::make_unique(878, 882) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 878 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(885) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 882 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 885 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(887, 889) + ); + // [0-9] + program.emplace_back( // 887 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(906) + ); + program.emplace_back( // 889 + std::make_unique(890, 893) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 890 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(906) + ); + program.emplace_back( // 893 + std::make_unique(894, 898) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 894 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(906) + ); + program.emplace_back( // 898 + std::make_unique(899, 903) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 899 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(906) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 903 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 906 + std::make_unique(1183) + ); + program.emplace_back( // 907 + std::make_unique(908, 1055) + ); + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 908 + std::make_unique(909, 952) + ); + { // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,4} + program.emplace_back( // 909 + std::make_unique(910, 945) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 910 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(912, 917) + ); + // [0-9A-Fa-f] + program.emplace_back( // 912 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(914, 917) + ); + // [0-9A-Fa-f] + program.emplace_back( // 914 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(916, 917) + ); + // [0-9A-Fa-f] + program.emplace_back( // 916 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 917 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(919, 945) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 919 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(921, 926) + ); + // [0-9A-Fa-f] + program.emplace_back( // 921 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(923, 926) + ); + // [0-9A-Fa-f] + program.emplace_back( // 923 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(925, 926) + ); + // [0-9A-Fa-f] + program.emplace_back( // 925 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 926 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(928, 945) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 928 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(930, 935) + ); + // [0-9A-Fa-f] + program.emplace_back( // 930 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(932, 935) + ); + // [0-9A-Fa-f] + program.emplace_back( // 932 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(934, 935) + ); + // [0-9A-Fa-f] + program.emplace_back( // 934 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 935 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(937, 945) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 937 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(939, 944) + ); + // [0-9A-Fa-f] + program.emplace_back( // 939 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(941, 944) + ); + // [0-9A-Fa-f] + program.emplace_back( // 941 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(943, 944) + ); + // [0-9A-Fa-f] + program.emplace_back( // 943 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 944 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 945 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(947, 952) + ); + // [0-9A-Fa-f] + program.emplace_back( // 947 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(949, 952) + ); + // [0-9A-Fa-f] + program.emplace_back( // 949 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(951, 952) + ); + // [0-9A-Fa-f] + program.emplace_back( // 951 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 952 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(955, 971) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 955 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(957, 962) + ); + // [0-9A-Fa-f] + program.emplace_back( // 957 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(959, 962) + ); + // [0-9A-Fa-f] + program.emplace_back( // 959 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(961, 962) + ); + // [0-9A-Fa-f] + program.emplace_back( // 961 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 962 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(965, 970) + ); + // [0-9A-Fa-f] + program.emplace_back( // 965 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(967, 970) + ); + // [0-9A-Fa-f] + program.emplace_back( // 967 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(969, 970) + ); + // [0-9A-Fa-f] + program.emplace_back( // 969 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 970 + std::make_unique(1054) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 971 + std::make_unique(972, 974) + ); + // [0-9] + program.emplace_back( // 972 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(991) + ); + program.emplace_back( // 974 + std::make_unique(975, 978) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 975 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(991) + ); + program.emplace_back( // 978 + std::make_unique(979, 983) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 979 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(991) + ); + program.emplace_back( // 983 + std::make_unique(984, 988) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 984 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(991) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 988 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 991 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(993, 995) + ); + // [0-9] + program.emplace_back( // 993 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1012) + ); + program.emplace_back( // 995 + std::make_unique(996, 999) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 996 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1012) + ); + program.emplace_back( // 999 + std::make_unique(1000, 1004) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1000 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1012) + ); + program.emplace_back( // 1004 + std::make_unique(1005, 1009) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1005 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1012) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1009 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1012 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1014, 1016) + ); + // [0-9] + program.emplace_back( // 1014 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1033) + ); + program.emplace_back( // 1016 + std::make_unique(1017, 1020) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1017 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1033) + ); + program.emplace_back( // 1020 + std::make_unique(1021, 1025) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1021 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1033) + ); + program.emplace_back( // 1025 + std::make_unique(1026, 1030) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1026 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1033) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1030 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1033 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1035, 1037) + ); + // [0-9] + program.emplace_back( // 1035 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1054) + ); + program.emplace_back( // 1037 + std::make_unique(1038, 1041) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1038 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1054) + ); + program.emplace_back( // 1041 + std::make_unique(1042, 1046) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1042 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1054) + ); + program.emplace_back( // 1046 + std::make_unique(1047, 1051) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1047 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1054) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1051 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 1054 + std::make_unique(1183) + ); + program.emplace_back( // 1055 + std::make_unique(1056, 1119) + ); + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1056 + std::make_unique(1057, 1109) + ); + { // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,5} + program.emplace_back( // 1057 + std::make_unique(1058, 1102) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1058 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1060, 1065) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1060 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1062, 1065) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1062 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1064, 1065) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1064 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1065 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1067, 1102) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1067 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1069, 1074) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1069 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1071, 1074) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1071 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1073, 1074) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1073 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1074 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1076, 1102) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1076 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1078, 1083) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1078 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1080, 1083) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1080 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1082, 1083) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1082 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1083 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1085, 1102) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1085 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1087, 1092) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1087 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1089, 1092) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1089 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1091, 1092) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1091 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1092 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1094, 1102) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1094 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1096, 1101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1096 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1098, 1101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1098 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1100, 1101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1100 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1101 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,5} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1102 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1104, 1109) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1104 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1106, 1109) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1106 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1108, 1109) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1108 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1109 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1113, 1118) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1113 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1115, 1118) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1115 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1117, 1118) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1117 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + program.emplace_back( // 1118 + std::make_unique(1183) + ); + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1119 + std::make_unique(1120, 1181) + ); + { // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,6} + program.emplace_back( // 1120 + std::make_unique(1121, 1174) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1121 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1123, 1128) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1123 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1125, 1128) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1125 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1127, 1128) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1127 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1128 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1130, 1174) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1130 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1132, 1137) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1132 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1134, 1137) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1134 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1136, 1137) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1136 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1137 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1139, 1174) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1139 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1141, 1146) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1141 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1143, 1146) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1143 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1145, 1146) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1145 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1146 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1148, 1174) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1148 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1150, 1155) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1150 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1152, 1155) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1152 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1154, 1155) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1154 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1155 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1157, 1174) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1157 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1159, 1164) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1159 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1161, 1164) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1161 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1163, 1164) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1163 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1164 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(1166, 1174) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1166 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1168, 1173) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1168 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1170, 1173) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1170 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1172, 1173) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1172 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1173 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,6} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1174 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1176, 1181) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1176 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1178, 1181) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1178 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1180, 1181) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1180 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1181 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 1183 + std::make_unique(1196) + ); + { // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // [vV] + program.emplace_back( // 1184 + std::make_unique( + std::vector{ + revm::Range(L'V', L'V'), + revm::Range(L'v', L'v') + } + ) + ); + { // [0-9A-Fa-f]+ + // [0-9A-Fa-f] + program.emplace_back( // 1185 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1185, 1187) + ); + } // [0-9A-Fa-f]+ + // \. + program.emplace_back( // 1187 + std::make_unique(L'.') + ); + { // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + { // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 1188 + std::make_unique(1189, 1191) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1189 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1195) + ); + program.emplace_back( // 1191 + std::make_unique(1192, 1194) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1192 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1195) + ); + // : + program.emplace_back( // 1194 + std::make_unique(L':') + ); + } // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 1195 + std::make_unique(1188, 1196) + ); + } // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // \] + program.emplace_back( // 1196 + std::make_unique(L']') + ); + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + program.emplace_back( + std::make_unique(1297) + ); + program.emplace_back( // 1198 + std::make_unique(1199, 1283) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1199 + std::make_unique(1200, 1202) + ); + // [0-9] + program.emplace_back( // 1200 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1219) + ); + program.emplace_back( // 1202 + std::make_unique(1203, 1206) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1203 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1219) + ); + program.emplace_back( // 1206 + std::make_unique(1207, 1211) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1207 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1219) + ); + program.emplace_back( // 1211 + std::make_unique(1212, 1216) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1212 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1219) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1216 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1219 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1221, 1223) + ); + // [0-9] + program.emplace_back( // 1221 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1240) + ); + program.emplace_back( // 1223 + std::make_unique(1224, 1227) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1224 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1240) + ); + program.emplace_back( // 1227 + std::make_unique(1228, 1232) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1228 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1240) + ); + program.emplace_back( // 1232 + std::make_unique(1233, 1237) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1233 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1240) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1237 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1240 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1242, 1244) + ); + // [0-9] + program.emplace_back( // 1242 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1261) + ); + program.emplace_back( // 1244 + std::make_unique(1245, 1248) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1245 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1261) + ); + program.emplace_back( // 1248 + std::make_unique(1249, 1253) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1249 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1261) + ); + program.emplace_back( // 1253 + std::make_unique(1254, 1258) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1254 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1261) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1258 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1261 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1263, 1265) + ); + // [0-9] + program.emplace_back( // 1263 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1282) + ); + program.emplace_back( // 1265 + std::make_unique(1266, 1269) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1266 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1282) + ); + program.emplace_back( // 1269 + std::make_unique(1270, 1274) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1270 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1282) + ); + program.emplace_back( // 1274 + std::make_unique(1275, 1279) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1275 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1282) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1279 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( // 1282 + std::make_unique(1297) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 1283 + std::make_unique(1284, 1297) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 1284 + std::make_unique(1285, 1290) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1285 + std::make_unique(1286, 1288) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1286 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1289) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1288 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1289 + std::make_unique(1296) + ); + program.emplace_back( // 1290 + std::make_unique(1291, 1295) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1291 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1296) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1295 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 1296 + std::make_unique(1283) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + { // (:[0-9]*)? + program.emplace_back( // 1297 + std::make_unique(1298, 1302) + ); + { // :[0-9]* + // : + program.emplace_back( // 1298 + std::make_unique(L':') + ); + { // [0-9]* + program.emplace_back( // 1299 + std::make_unique(1300, 1302) + ); + // [0-9] + program.emplace_back( // 1300 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1299) + ); + } // [0-9]* + } // :[0-9]* + } // (:[0-9]*)? + { // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1302 + std::make_unique(1303, 1322) + ); + { // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 1303 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1304 + std::make_unique(1305, 1321) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1305 + std::make_unique(1306, 1311) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1306 + std::make_unique(1307, 1309) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1307 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1310) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1309 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1310 + std::make_unique(1320) + ); + program.emplace_back( // 1311 + std::make_unique(1312, 1316) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1312 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1320) + ); + program.emplace_back( // 1316 + std::make_unique(1317, 1319) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1317 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1320) + ); + // [:@] + program.emplace_back( // 1319 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1320 + std::make_unique(1304) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1321 + std::make_unique(1302) + ); + } // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1322 + std::make_unique(1401) + ); + program.emplace_back( // 1323 + std::make_unique(1324, 1363) + ); + { // /(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + // / + program.emplace_back( // 1324 + std::make_unique(L'/') + ); + { // (((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( + std::make_unique(1326, 1362) + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1326 + std::make_unique(1327, 1332) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1327 + std::make_unique(1328, 1330) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1328 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1331) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1330 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1331 + std::make_unique(1341) + ); + program.emplace_back( // 1332 + std::make_unique(1333, 1337) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1333 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1341) + ); + program.emplace_back( // 1337 + std::make_unique(1338, 1340) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1338 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1341) + ); + // [:@] + program.emplace_back( // 1340 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1341 + std::make_unique(1326, 1342) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1342 + std::make_unique(1343, 1362) + ); + { // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 1343 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1344 + std::make_unique(1345, 1361) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1345 + std::make_unique(1346, 1351) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1346 + std::make_unique(1347, 1349) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1347 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1350) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1349 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1350 + std::make_unique(1360) + ); + program.emplace_back( // 1351 + std::make_unique(1352, 1356) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1352 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1360) + ); + program.emplace_back( // 1356 + std::make_unique(1357, 1359) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1357 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1360) + ); + // [:@] + program.emplace_back( // 1359 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1360 + std::make_unique(1344) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1361 + std::make_unique(1342) + ); + } // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + } // /(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( // 1362 + std::make_unique(1401) + ); + program.emplace_back( // 1363 + std::make_unique(1364, 1401) + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1364 + std::make_unique(1365, 1370) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1365 + std::make_unique(1366, 1368) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1366 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1369) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1368 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1369 + std::make_unique(1379) + ); + program.emplace_back( // 1370 + std::make_unique(1371, 1375) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1371 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1379) + ); + program.emplace_back( // 1375 + std::make_unique(1376, 1378) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1376 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1379) + ); + // [:@] + program.emplace_back( // 1378 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1379 + std::make_unique(1364, 1380) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1380 + std::make_unique(1381, 1400) + ); + { // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 1381 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1382 + std::make_unique(1383, 1399) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1383 + std::make_unique(1384, 1389) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1384 + std::make_unique(1385, 1387) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1385 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1388) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1387 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1388 + std::make_unique(1398) + ); + program.emplace_back( // 1389 + std::make_unique(1390, 1394) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1390 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1398) + ); + program.emplace_back( // 1394 + std::make_unique(1395, 1397) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1395 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1398) + ); + // [:@] + program.emplace_back( // 1397 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1398 + std::make_unique(1382) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 1399 + std::make_unique(1380) + ); + } // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 1400 + std::make_unique(1401) + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + // Intentionally empty + } + } // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + { // (\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)? + program.emplace_back( // 1401 + std::make_unique(1402, 1426) + ); + { // \?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + // \? + program.emplace_back( // 1402 + std::make_unique(L'?') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + program.emplace_back( // 1403 + std::make_unique(1404, 1426) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?] + program.emplace_back( // 1404 + std::make_unique(1405, 1421) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1405 + std::make_unique(1406, 1411) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1406 + std::make_unique(1407, 1409) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1407 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1410) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1409 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1410 + std::make_unique(1420) + ); + program.emplace_back( // 1411 + std::make_unique(1412, 1416) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1412 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1420) + ); + program.emplace_back( // 1416 + std::make_unique(1417, 1419) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1417 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1420) + ); + // [:@] + program.emplace_back( // 1419 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1420 + std::make_unique(1425) + ); + program.emplace_back( // 1421 + std::make_unique(1422, 1424) + ); + // [\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd] + program.emplace_back( // 1422 + std::make_unique( + std::vector{ + revm::Range(L'\ue000', L'\uf8ff'), + revm::Range(L'\U000f0000', L'\U000ffffd'), + revm::Range(L'\U00100000', L'\U0010fffd') + } + ) + ); + program.emplace_back( + std::make_unique(1425) + ); + // [/?] + program.emplace_back( // 1424 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?] + program.emplace_back( // 1425 + std::make_unique(1403) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + } // \?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + } // (\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)? + { // (#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( // 1426 + std::make_unique(1427, 1448) + ); + { // #((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + // # + program.emplace_back( // 1427 + std::make_unique(L'#') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + program.emplace_back( // 1428 + std::make_unique(1429, 1448) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 1429 + std::make_unique(1430, 1446) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1430 + std::make_unique(1431, 1436) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1431 + std::make_unique(1432, 1434) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1432 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1435) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1434 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1435 + std::make_unique(1445) + ); + program.emplace_back( // 1436 + std::make_unique(1437, 1441) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1437 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1445) + ); + program.emplace_back( // 1441 + std::make_unique(1442, 1444) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1442 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1445) + ); + // [:@] + program.emplace_back( // 1444 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 1445 + std::make_unique(1447) + ); + // [/?] + program.emplace_back( // 1446 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 1447 + std::make_unique(1428) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // #((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // (#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + } // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( // 1448 + std::make_unique(2891) + ); + { // (//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + { // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + program.emplace_back( // 1449 + std::make_unique(1450, 2766) + ); + { // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + // / + program.emplace_back( // 1450 + std::make_unique(L'/') + ); + // / + program.emplace_back( + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + program.emplace_back( + std::make_unique(1453, 1471) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + program.emplace_back( // 1453 + std::make_unique(1454, 1470) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 1454 + std::make_unique(1455, 1460) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1455 + std::make_unique(1456, 1458) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 1456 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(1459) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1458 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 1459 + std::make_unique(1469) + ); + program.emplace_back( // 1460 + std::make_unique(1461, 1465) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 1461 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(1469) + ); + program.emplace_back( // 1465 + std::make_unique(1466, 1468) + ); + // [!$&'()*+,;=] + program.emplace_back( // 1466 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(1469) + ); + // : + program.emplace_back( // 1468 + std::make_unique(L':') + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|: + program.emplace_back( // 1469 + std::make_unique(1453) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)* + // @ + program.emplace_back( // 1470 + std::make_unique(L'@') + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@ + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)? + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 1471 + std::make_unique(1472, 2641) + ); + { // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + // \[ + program.emplace_back( // 1472 + std::make_unique(L'[') + ); + { // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + program.emplace_back( + std::make_unique(1474, 2627) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 1474 + std::make_unique(1475, 1624) + ); + { // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1475 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1477, 1482) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1477 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1479, 1482) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1479 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1481, 1482) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1481 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1482 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1485, 1490) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1485 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1487, 1490) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1487 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1489, 1490) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1489 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1490 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1493, 1498) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1493 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1495, 1498) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1495 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1497, 1498) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1497 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1498 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1501, 1506) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1501 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1503, 1506) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1503 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1505, 1506) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1505 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1506 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1509, 1514) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1509 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1511, 1514) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1511 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1513, 1514) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1513 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1514 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1517, 1522) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1517 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1519, 1522) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1519 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1521, 1522) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1521 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1522 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){6} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(1524, 1540) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1524 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1526, 1531) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1526 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1528, 1531) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1528 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1530, 1531) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1530 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1531 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1534, 1539) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1534 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1536, 1539) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1536 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1538, 1539) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1538 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 1539 + std::make_unique(1623) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1540 + std::make_unique(1541, 1543) + ); + // [0-9] + program.emplace_back( // 1541 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1560) + ); + program.emplace_back( // 1543 + std::make_unique(1544, 1547) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1544 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1560) + ); + program.emplace_back( // 1547 + std::make_unique(1548, 1552) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1548 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1560) + ); + program.emplace_back( // 1552 + std::make_unique(1553, 1557) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1553 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1560) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1557 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1560 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1562, 1564) + ); + // [0-9] + program.emplace_back( // 1562 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1581) + ); + program.emplace_back( // 1564 + std::make_unique(1565, 1568) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1565 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1581) + ); + program.emplace_back( // 1568 + std::make_unique(1569, 1573) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1569 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1581) + ); + program.emplace_back( // 1573 + std::make_unique(1574, 1578) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1574 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1581) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1578 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1581 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1583, 1585) + ); + // [0-9] + program.emplace_back( // 1583 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1602) + ); + program.emplace_back( // 1585 + std::make_unique(1586, 1589) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1586 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1602) + ); + program.emplace_back( // 1589 + std::make_unique(1590, 1594) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1590 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1602) + ); + program.emplace_back( // 1594 + std::make_unique(1595, 1599) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1595 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1602) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1599 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1602 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1604, 1606) + ); + // [0-9] + program.emplace_back( // 1604 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1623) + ); + program.emplace_back( // 1606 + std::make_unique(1607, 1610) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1607 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1623) + ); + program.emplace_back( // 1610 + std::make_unique(1611, 1615) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1611 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1623) + ); + program.emplace_back( // 1615 + std::make_unique(1616, 1620) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1616 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1623) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1620 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 1623 + std::make_unique(2626) + ); + program.emplace_back( // 1624 + std::make_unique(1625, 1768) + ); + { // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + // : + program.emplace_back( // 1625 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1629, 1634) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1629 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1631, 1634) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1631 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1633, 1634) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1633 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1634 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1637, 1642) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1637 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1639, 1642) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1639 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1641, 1642) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1641 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1642 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1645, 1650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1645 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1647, 1650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1647 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1649, 1650) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1649 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1650 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1653, 1658) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1653 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1655, 1658) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1655 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1657, 1658) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1657 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1658 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1661, 1666) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1661 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1663, 1666) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1663 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1665, 1666) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1665 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1666 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){5} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(1668, 1684) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1668 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1670, 1675) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1670 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1672, 1675) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1672 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1674, 1675) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1674 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1675 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1678, 1683) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1678 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1680, 1683) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1680 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1682, 1683) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1682 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 1683 + std::make_unique(1767) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1684 + std::make_unique(1685, 1687) + ); + // [0-9] + program.emplace_back( // 1685 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1704) + ); + program.emplace_back( // 1687 + std::make_unique(1688, 1691) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1688 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1704) + ); + program.emplace_back( // 1691 + std::make_unique(1692, 1696) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1692 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1704) + ); + program.emplace_back( // 1696 + std::make_unique(1697, 1701) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1697 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1704) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1701 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1704 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1706, 1708) + ); + // [0-9] + program.emplace_back( // 1706 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1725) + ); + program.emplace_back( // 1708 + std::make_unique(1709, 1712) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1709 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1725) + ); + program.emplace_back( // 1712 + std::make_unique(1713, 1717) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1713 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1725) + ); + program.emplace_back( // 1717 + std::make_unique(1718, 1722) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1718 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1725) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1722 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1725 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1727, 1729) + ); + // [0-9] + program.emplace_back( // 1727 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1746) + ); + program.emplace_back( // 1729 + std::make_unique(1730, 1733) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1730 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1746) + ); + program.emplace_back( // 1733 + std::make_unique(1734, 1738) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1734 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1746) + ); + program.emplace_back( // 1738 + std::make_unique(1739, 1743) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1739 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1746) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1743 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1746 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1748, 1750) + ); + // [0-9] + program.emplace_back( // 1748 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1767) + ); + program.emplace_back( // 1750 + std::make_unique(1751, 1754) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1751 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1767) + ); + program.emplace_back( // 1754 + std::make_unique(1755, 1759) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1755 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1767) + ); + program.emplace_back( // 1759 + std::make_unique(1760, 1764) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1760 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1767) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1764 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 1767 + std::make_unique(2626) + ); + program.emplace_back( // 1768 + std::make_unique(1769, 1912) + ); + { // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // ([0-9A-Fa-f]{1,4})? + program.emplace_back( // 1769 + std::make_unique(1770, 1777) + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1770 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1772, 1777) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1772 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1774, 1777) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1774 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1776, 1777) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1776 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1777 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1781, 1786) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1781 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1783, 1786) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1783 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1785, 1786) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1785 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1786 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1789, 1794) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1789 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1791, 1794) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1791 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1793, 1794) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1793 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1794 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1797, 1802) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1797 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1799, 1802) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1799 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1801, 1802) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1801 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1802 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1805, 1810) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1805 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1807, 1810) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1807 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1809, 1810) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1809 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1810 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){4} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(1812, 1828) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1812 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1814, 1819) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1814 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1816, 1819) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1816 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1818, 1819) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1818 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1819 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1822, 1827) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1822 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1824, 1827) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1824 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1826, 1827) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1826 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 1827 + std::make_unique(1911) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1828 + std::make_unique(1829, 1831) + ); + // [0-9] + program.emplace_back( // 1829 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1848) + ); + program.emplace_back( // 1831 + std::make_unique(1832, 1835) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1832 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1848) + ); + program.emplace_back( // 1835 + std::make_unique(1836, 1840) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1836 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1848) + ); + program.emplace_back( // 1840 + std::make_unique(1841, 1845) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1841 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1848) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1845 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1848 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1850, 1852) + ); + // [0-9] + program.emplace_back( // 1850 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1869) + ); + program.emplace_back( // 1852 + std::make_unique(1853, 1856) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1853 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1869) + ); + program.emplace_back( // 1856 + std::make_unique(1857, 1861) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1857 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1869) + ); + program.emplace_back( // 1861 + std::make_unique(1862, 1866) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1862 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1869) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1866 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1869 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1871, 1873) + ); + // [0-9] + program.emplace_back( // 1871 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1890) + ); + program.emplace_back( // 1873 + std::make_unique(1874, 1877) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1874 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1890) + ); + program.emplace_back( // 1877 + std::make_unique(1878, 1882) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1878 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1890) + ); + program.emplace_back( // 1882 + std::make_unique(1883, 1887) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1883 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1890) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1887 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1890 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1892, 1894) + ); + // [0-9] + program.emplace_back( // 1892 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1911) + ); + program.emplace_back( // 1894 + std::make_unique(1895, 1898) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1895 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1911) + ); + program.emplace_back( // 1898 + std::make_unique(1899, 1903) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1899 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1911) + ); + program.emplace_back( // 1903 + std::make_unique(1904, 1908) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1904 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1911) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1908 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // ([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 1911 + std::make_unique(2626) + ); + program.emplace_back( // 1912 + std::make_unique(1913, 2057) + ); + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + program.emplace_back( // 1913 + std::make_unique(1914, 1930) + ); + { // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:)? + program.emplace_back( // 1914 + std::make_unique(1915, 1923) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1915 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1917, 1922) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1917 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1919, 1922) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1919 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1921, 1922) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1921 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1922 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:)? + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1923 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1925, 1930) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1925 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1927, 1930) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1927 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1929, 1930) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1929 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 1930 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1934, 1939) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1934 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1936, 1939) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1936 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1938, 1939) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1938 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1939 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1942, 1947) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1942 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1944, 1947) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1944 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1946, 1947) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1946 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1947 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1950, 1955) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1950 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1952, 1955) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1952 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1954, 1955) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1954 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1955 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){3} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(1957, 1973) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 1957 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1959, 1964) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1959 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1961, 1964) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1961 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1963, 1964) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1963 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 1964 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1967, 1972) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1967 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1969, 1972) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1969 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(1971, 1972) + ); + // [0-9A-Fa-f] + program.emplace_back( // 1971 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 1972 + std::make_unique(2056) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 1973 + std::make_unique(1974, 1976) + ); + // [0-9] + program.emplace_back( // 1974 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(1993) + ); + program.emplace_back( // 1976 + std::make_unique(1977, 1980) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1977 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(1993) + ); + program.emplace_back( // 1980 + std::make_unique(1981, 1985) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 1981 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(1993) + ); + program.emplace_back( // 1985 + std::make_unique(1986, 1990) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 1986 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(1993) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 1990 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 1993 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(1995, 1997) + ); + // [0-9] + program.emplace_back( // 1995 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2014) + ); + program.emplace_back( // 1997 + std::make_unique(1998, 2001) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 1998 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2014) + ); + program.emplace_back( // 2001 + std::make_unique(2002, 2006) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2002 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2014) + ); + program.emplace_back( // 2006 + std::make_unique(2007, 2011) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2007 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2014) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2011 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2014 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2016, 2018) + ); + // [0-9] + program.emplace_back( // 2016 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2035) + ); + program.emplace_back( // 2018 + std::make_unique(2019, 2022) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2019 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2035) + ); + program.emplace_back( // 2022 + std::make_unique(2023, 2027) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2023 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2035) + ); + program.emplace_back( // 2027 + std::make_unique(2028, 2032) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2028 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2035) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2032 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2035 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2037, 2039) + ); + // [0-9] + program.emplace_back( // 2037 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2056) + ); + program.emplace_back( // 2039 + std::make_unique(2040, 2043) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2040 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2056) + ); + program.emplace_back( // 2043 + std::make_unique(2044, 2048) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2044 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2056) + ); + program.emplace_back( // 2048 + std::make_unique(2049, 2053) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2049 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2056) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2053 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 2056 + std::make_unique(2626) + ); + program.emplace_back( // 2057 + std::make_unique(2058, 2203) + ); + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 2058 + std::make_unique(2059, 2084) + ); + { // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,2} + program.emplace_back( // 2059 + std::make_unique(2060, 2077) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2060 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2062, 2067) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2062 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2064, 2067) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2064 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2066, 2067) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2066 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2067 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2069, 2077) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2069 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2071, 2076) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2071 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2073, 2076) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2073 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2075, 2076) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2075 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2076 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,2} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2077 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2079, 2084) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2079 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2081, 2084) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2081 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2083, 2084) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2083 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 2084 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2088, 2093) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2088 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2090, 2093) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2090 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2092, 2093) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2092 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2093 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2096, 2101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2096 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2098, 2101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2098 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2100, 2101) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2100 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2101 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){2} + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(2103, 2119) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2103 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2105, 2110) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2105 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2107, 2110) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2107 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2109, 2110) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2109 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2110 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2113, 2118) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2113 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2115, 2118) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2115 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2117, 2118) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2117 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 2118 + std::make_unique(2202) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 2119 + std::make_unique(2120, 2122) + ); + // [0-9] + program.emplace_back( // 2120 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2139) + ); + program.emplace_back( // 2122 + std::make_unique(2123, 2126) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2123 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2139) + ); + program.emplace_back( // 2126 + std::make_unique(2127, 2131) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2127 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2139) + ); + program.emplace_back( // 2131 + std::make_unique(2132, 2136) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2132 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2139) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2136 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2139 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2141, 2143) + ); + // [0-9] + program.emplace_back( // 2141 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2160) + ); + program.emplace_back( // 2143 + std::make_unique(2144, 2147) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2144 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2160) + ); + program.emplace_back( // 2147 + std::make_unique(2148, 2152) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2148 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2160) + ); + program.emplace_back( // 2152 + std::make_unique(2153, 2157) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2153 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2160) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2157 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2160 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2162, 2164) + ); + // [0-9] + program.emplace_back( // 2162 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2181) + ); + program.emplace_back( // 2164 + std::make_unique(2165, 2168) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2165 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2181) + ); + program.emplace_back( // 2168 + std::make_unique(2169, 2173) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2169 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2181) + ); + program.emplace_back( // 2173 + std::make_unique(2174, 2178) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2174 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2181) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2178 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2181 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2183, 2185) + ); + // [0-9] + program.emplace_back( // 2183 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2202) + ); + program.emplace_back( // 2185 + std::make_unique(2186, 2189) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2186 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2202) + ); + program.emplace_back( // 2189 + std::make_unique(2190, 2194) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2190 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2202) + ); + program.emplace_back( // 2194 + std::make_unique(2195, 2199) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2195 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2202) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2199 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 2202 + std::make_unique(2626) + ); + program.emplace_back( // 2203 + std::make_unique(2204, 2350) + ); + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 2204 + std::make_unique(2205, 2239) + ); + { // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,3} + program.emplace_back( // 2205 + std::make_unique(2206, 2232) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2206 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2208, 2213) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2208 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2210, 2213) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2210 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2212, 2213) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2212 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2213 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2215, 2232) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2215 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2217, 2222) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2217 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2219, 2222) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2219 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2221, 2222) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2221 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2222 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2224, 2232) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2224 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2226, 2231) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2226 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2228, 2231) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2228 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2230, 2231) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2230 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2231 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,3} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2232 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2234, 2239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2234 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2236, 2239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2236 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2238, 2239) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2238 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 2239 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2243, 2248) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2243 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2245, 2248) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2245 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2247, 2248) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2247 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2248 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(2250, 2266) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2250 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2252, 2257) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2252 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2254, 2257) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2254 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2256, 2257) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2256 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2257 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2260, 2265) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2260 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2262, 2265) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2262 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2264, 2265) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2264 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 2265 + std::make_unique(2349) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 2266 + std::make_unique(2267, 2269) + ); + // [0-9] + program.emplace_back( // 2267 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2286) + ); + program.emplace_back( // 2269 + std::make_unique(2270, 2273) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2270 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2286) + ); + program.emplace_back( // 2273 + std::make_unique(2274, 2278) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2274 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2286) + ); + program.emplace_back( // 2278 + std::make_unique(2279, 2283) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2279 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2286) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2283 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2286 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2288, 2290) + ); + // [0-9] + program.emplace_back( // 2288 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2307) + ); + program.emplace_back( // 2290 + std::make_unique(2291, 2294) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2291 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2307) + ); + program.emplace_back( // 2294 + std::make_unique(2295, 2299) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2295 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2307) + ); + program.emplace_back( // 2299 + std::make_unique(2300, 2304) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2300 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2307) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2304 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2307 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2309, 2311) + ); + // [0-9] + program.emplace_back( // 2309 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2328) + ); + program.emplace_back( // 2311 + std::make_unique(2312, 2315) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2312 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2328) + ); + program.emplace_back( // 2315 + std::make_unique(2316, 2320) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2316 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2328) + ); + program.emplace_back( // 2320 + std::make_unique(2321, 2325) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2321 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2328) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2325 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2328 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2330, 2332) + ); + // [0-9] + program.emplace_back( // 2330 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2349) + ); + program.emplace_back( // 2332 + std::make_unique(2333, 2336) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2333 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2349) + ); + program.emplace_back( // 2336 + std::make_unique(2337, 2341) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2337 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2349) + ); + program.emplace_back( // 2341 + std::make_unique(2342, 2346) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2342 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2349) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2346 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 2349 + std::make_unique(2626) + ); + program.emplace_back( // 2350 + std::make_unique(2351, 2498) + ); + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + { // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 2351 + std::make_unique(2352, 2395) + ); + { // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,4} + program.emplace_back( // 2352 + std::make_unique(2353, 2388) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2353 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2355, 2360) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2355 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2357, 2360) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2357 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2359, 2360) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2359 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2360 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2362, 2388) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2362 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2364, 2369) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2364 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2366, 2369) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2366 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2368, 2369) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2368 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2369 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2371, 2388) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2371 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2373, 2378) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2373 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2375, 2378) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2375 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2377, 2378) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2377 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2378 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2380, 2388) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2380 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2382, 2387) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2382 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2384, 2387) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2384 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2386, 2387) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2386 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2387 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2388 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2390, 2395) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2390 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2392, 2395) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2392 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2394, 2395) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2394 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 2395 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( + std::make_unique(2398, 2414) + ); + { // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2398 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2400, 2405) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2400 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2402, 2405) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2402 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2404, 2405) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2404 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2405 + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2408, 2413) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2408 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2410, 2413) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2410 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2412, 2413) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2412 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4} + program.emplace_back( // 2413 + std::make_unique(2497) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 2414 + std::make_unique(2415, 2417) + ); + // [0-9] + program.emplace_back( // 2415 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2434) + ); + program.emplace_back( // 2417 + std::make_unique(2418, 2421) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2418 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2434) + ); + program.emplace_back( // 2421 + std::make_unique(2422, 2426) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2422 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2434) + ); + program.emplace_back( // 2426 + std::make_unique(2427, 2431) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2427 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2434) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2431 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2434 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2436, 2438) + ); + // [0-9] + program.emplace_back( // 2436 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2455) + ); + program.emplace_back( // 2438 + std::make_unique(2439, 2442) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2439 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2455) + ); + program.emplace_back( // 2442 + std::make_unique(2443, 2447) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2443 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2455) + ); + program.emplace_back( // 2447 + std::make_unique(2448, 2452) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2448 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2455) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2452 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2455 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2457, 2459) + ); + // [0-9] + program.emplace_back( // 2457 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2476) + ); + program.emplace_back( // 2459 + std::make_unique(2460, 2463) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2460 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2476) + ); + program.emplace_back( // 2463 + std::make_unique(2464, 2468) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2464 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2476) + ); + program.emplace_back( // 2468 + std::make_unique(2469, 2473) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2469 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2476) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2473 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2476 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2478, 2480) + ); + // [0-9] + program.emplace_back( // 2478 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2497) + ); + program.emplace_back( // 2480 + std::make_unique(2481, 2484) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2481 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2497) + ); + program.emplace_back( // 2484 + std::make_unique(2485, 2489) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2485 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2497) + ); + program.emplace_back( // 2489 + std::make_unique(2490, 2494) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2490 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2497) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2494 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // [0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + } // (([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) + program.emplace_back( // 2497 + std::make_unique(2626) + ); + program.emplace_back( // 2498 + std::make_unique(2499, 2562) + ); + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + { // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 2499 + std::make_unique(2500, 2552) + ); + { // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,5} + program.emplace_back( // 2500 + std::make_unique(2501, 2545) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2501 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2503, 2508) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2503 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2505, 2508) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2505 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2507, 2508) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2507 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2508 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2510, 2545) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2510 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2512, 2517) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2512 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2514, 2517) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2514 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2516, 2517) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2516 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2517 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2519, 2545) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2519 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2521, 2526) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2521 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2523, 2526) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2523 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2525, 2526) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2525 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2526 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2528, 2545) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2528 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2530, 2535) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2530 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2532, 2535) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2532 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2534, 2535) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2534 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2535 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2537, 2545) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2537 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2539, 2544) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2539 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2541, 2544) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2541 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2543, 2544) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2543 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2544 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,5} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2545 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2547, 2552) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2547 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2549, 2552) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2549 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2551, 2552) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2551 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 2552 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2556, 2561) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2556 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2558, 2561) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2558 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2560, 2561) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2560 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4} + program.emplace_back( // 2561 + std::make_unique(2626) + ); + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + { // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + program.emplace_back( // 2562 + std::make_unique(2563, 2624) + ); + { // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + { // ([0-9A-Fa-f]{1,4}:){0,6} + program.emplace_back( // 2563 + std::make_unique(2564, 2617) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2564 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2566, 2571) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2566 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2568, 2571) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2568 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2570, 2571) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2570 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2571 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2573, 2617) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2573 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2575, 2580) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2575 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2577, 2580) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2577 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2579, 2580) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2579 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2580 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2582, 2617) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2582 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2584, 2589) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2584 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2586, 2589) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2586 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2588, 2589) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2588 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2589 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2591, 2617) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2591 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2593, 2598) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2593 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2595, 2598) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2595 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2597, 2598) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2597 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2598 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2600, 2617) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2600 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2602, 2607) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2602 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2604, 2607) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2604 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2606, 2607) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2606 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2607 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + program.emplace_back( + std::make_unique(2609, 2617) + ); + { // [0-9A-Fa-f]{1,4}: + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2609 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2611, 2616) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2611 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2613, 2616) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2613 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2615, 2616) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2615 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + // : + program.emplace_back( // 2616 + std::make_unique(L':') + ); + } // [0-9A-Fa-f]{1,4}: + } // ([0-9A-Fa-f]{1,4}:){0,6} + { // [0-9A-Fa-f]{1,4} + // [0-9A-Fa-f] + program.emplace_back( // 2617 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2619, 2624) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2619 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2621, 2624) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2621 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2623, 2624) + ); + // [0-9A-Fa-f] + program.emplace_back( // 2623 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9A-Fa-f]{1,4} + } // ([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4} + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})? + // : + program.emplace_back( // 2624 + std::make_unique(L':') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + } // (([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + } // ([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?:: + program.emplace_back( // 2626 + std::make_unique(2639) + ); + { // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // [vV] + program.emplace_back( // 2627 + std::make_unique( + std::vector{ + revm::Range(L'V', L'V'), + revm::Range(L'v', L'v') + } + ) + ); + { // [0-9A-Fa-f]+ + // [0-9A-Fa-f] + program.emplace_back( // 2628 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + program.emplace_back( + std::make_unique(2628, 2630) + ); + } // [0-9A-Fa-f]+ + // \. + program.emplace_back( // 2630 + std::make_unique(L'.') + ); + { // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + { // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 2631 + std::make_unique(2632, 2634) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2632 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2638) + ); + program.emplace_back( // 2634 + std::make_unique(2635, 2637) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2635 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2638) + ); + // : + program.emplace_back( // 2637 + std::make_unique(L':') + ); + } // [a-zA-Z0-9\-._~]|[!$&'()*+,;=]|: + program.emplace_back( // 2638 + std::make_unique(2631, 2639) + ); + } // ([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // [vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + } // (([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+ + // \] + program.emplace_back( // 2639 + std::make_unique(L']') + ); + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\] + program.emplace_back( + std::make_unique(2740) + ); + program.emplace_back( // 2641 + std::make_unique(2642, 2726) + ); + { // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( // 2642 + std::make_unique(2643, 2645) + ); + // [0-9] + program.emplace_back( // 2643 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2662) + ); + program.emplace_back( // 2645 + std::make_unique(2646, 2649) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2646 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2662) + ); + program.emplace_back( // 2649 + std::make_unique(2650, 2654) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2650 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2662) + ); + program.emplace_back( // 2654 + std::make_unique(2655, 2659) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2655 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2662) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2659 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2662 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2664, 2666) + ); + // [0-9] + program.emplace_back( // 2664 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2683) + ); + program.emplace_back( // 2666 + std::make_unique(2667, 2670) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2667 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2683) + ); + program.emplace_back( // 2670 + std::make_unique(2671, 2675) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2671 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2683) + ); + program.emplace_back( // 2675 + std::make_unique(2676, 2680) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2676 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2683) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2680 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2683 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2685, 2687) + ); + // [0-9] + program.emplace_back( // 2685 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2704) + ); + program.emplace_back( // 2687 + std::make_unique(2688, 2691) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2688 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2704) + ); + program.emplace_back( // 2691 + std::make_unique(2692, 2696) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2692 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2704) + ); + program.emplace_back( // 2696 + std::make_unique(2697, 2701) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2697 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2704) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2701 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + // \. + program.emplace_back( // 2704 + std::make_unique(L'.') + ); + { // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + program.emplace_back( + std::make_unique(2706, 2708) + ); + // [0-9] + program.emplace_back( // 2706 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2725) + ); + program.emplace_back( // 2708 + std::make_unique(2709, 2712) + ); + { // [1-9][0-9] + // [1-9] + program.emplace_back( // 2709 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [1-9][0-9] + program.emplace_back( + std::make_unique(2725) + ); + program.emplace_back( // 2712 + std::make_unique(2713, 2717) + ); + { // 1[0-9]{2} + // 1 + program.emplace_back( // 2713 + std::make_unique(L'1') + ); + { // [0-9]{2} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{2} + } // 1[0-9]{2} + program.emplace_back( + std::make_unique(2725) + ); + program.emplace_back( // 2717 + std::make_unique(2718, 2722) + ); + { // 2[0-4][0-9] + // 2 + program.emplace_back( // 2718 + std::make_unique(L'2') + ); + // [0-4] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'4') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-4][0-9] + program.emplace_back( + std::make_unique(2725) + ); + { // 25[0-5] + // 2 + program.emplace_back( // 2722 + std::make_unique(L'2') + ); + // 5 + program.emplace_back( + std::make_unique(L'5') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + } // 25[0-5] + } // [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5] + } // ([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) + program.emplace_back( // 2725 + std::make_unique(2740) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + program.emplace_back( // 2726 + std::make_unique(2727, 2740) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 2727 + std::make_unique(2728, 2733) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2728 + std::make_unique(2729, 2731) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2729 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2732) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2731 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2732 + std::make_unique(2739) + ); + program.emplace_back( // 2733 + std::make_unique(2734, 2738) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2734 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2739) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2738 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=] + program.emplace_back( // 2739 + std::make_unique(2726) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + } // \[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])* + { // (:[0-9]*)? + program.emplace_back( // 2740 + std::make_unique(2741, 2745) + ); + { // :[0-9]* + // : + program.emplace_back( // 2741 + std::make_unique(L':') + ); + { // [0-9]* + program.emplace_back( // 2742 + std::make_unique(2743, 2745) + ); + // [0-9] + program.emplace_back( // 2743 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2742) + ); + } // [0-9]* + } // :[0-9]* + } // (:[0-9]*)? + { // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2745 + std::make_unique(2746, 2765) + ); + { // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 2746 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2747 + std::make_unique(2748, 2764) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2748 + std::make_unique(2749, 2754) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2749 + std::make_unique(2750, 2752) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2750 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2753) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2752 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2753 + std::make_unique(2763) + ); + program.emplace_back( // 2754 + std::make_unique(2755, 2759) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2755 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2763) + ); + program.emplace_back( // 2759 + std::make_unique(2760, 2762) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2760 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2763) + ); + // [:@] + program.emplace_back( // 2762 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2763 + std::make_unique(2747) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2764 + std::make_unique(2745) + ); + } // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2765 + std::make_unique(2844) + ); + program.emplace_back( // 2766 + std::make_unique(2767, 2806) + ); + { // /(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + // / + program.emplace_back( // 2767 + std::make_unique(L'/') + ); + { // (((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( + std::make_unique(2769, 2805) + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2769 + std::make_unique(2770, 2775) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2770 + std::make_unique(2771, 2773) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2771 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2774) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2773 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2774 + std::make_unique(2784) + ); + program.emplace_back( // 2775 + std::make_unique(2776, 2780) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2776 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2784) + ); + program.emplace_back( // 2780 + std::make_unique(2781, 2783) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2781 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2784) + ); + // [:@] + program.emplace_back( // 2783 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2784 + std::make_unique(2769, 2785) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+ + { // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2785 + std::make_unique(2786, 2805) + ); + { // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 2786 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2787 + std::make_unique(2788, 2804) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2788 + std::make_unique(2789, 2794) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2789 + std::make_unique(2790, 2792) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2790 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2793) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2792 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2793 + std::make_unique(2803) + ); + program.emplace_back( // 2794 + std::make_unique(2795, 2799) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2795 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2803) + ); + program.emplace_back( // 2799 + std::make_unique(2800, 2802) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2800 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2803) + ); + // [:@] + program.emplace_back( // 2802 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2803 + std::make_unique(2787) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2804 + std::make_unique(2785) + ); + } // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + } // /(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)? + program.emplace_back( // 2805 + std::make_unique(2844) + ); + program.emplace_back( // 2806 + std::make_unique(2807, 2844) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+ + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@ + program.emplace_back( // 2807 + std::make_unique(2808, 2813) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2808 + std::make_unique(2809, 2811) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2809 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2812) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2811 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2812 + std::make_unique(2822) + ); + program.emplace_back( // 2813 + std::make_unique(2814, 2818) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2814 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2822) + ); + program.emplace_back( // 2818 + std::make_unique(2819, 2821) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2819 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2822) + ); + // @ + program.emplace_back( // 2821 + std::make_unique(L'@') + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@ + program.emplace_back( // 2822 + std::make_unique(2807, 2823) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+ + { // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2823 + std::make_unique(2824, 2843) + ); + { // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + // / + program.emplace_back( // 2824 + std::make_unique(L'/') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2825 + std::make_unique(2826, 2842) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2826 + std::make_unique(2827, 2832) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2827 + std::make_unique(2828, 2830) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2828 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2831) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2830 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2831 + std::make_unique(2841) + ); + program.emplace_back( // 2832 + std::make_unique(2833, 2837) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2833 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2841) + ); + program.emplace_back( // 2837 + std::make_unique(2838, 2840) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2838 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2841) + ); + // [:@] + program.emplace_back( // 2840 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2841 + std::make_unique(2825) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + } // /((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))* + program.emplace_back( // 2842 + std::make_unique(2823) + ); + } // (/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)* + program.emplace_back( // 2843 + std::make_unique(2844) + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + // Intentionally empty + } + } // //((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0} + { // (\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)? + program.emplace_back( // 2844 + std::make_unique(2845, 2869) + ); + { // \?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + // \? + program.emplace_back( // 2845 + std::make_unique(L'?') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + program.emplace_back( // 2846 + std::make_unique(2847, 2869) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?] + program.emplace_back( // 2847 + std::make_unique(2848, 2864) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2848 + std::make_unique(2849, 2854) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2849 + std::make_unique(2850, 2852) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2850 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2853) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2852 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2853 + std::make_unique(2863) + ); + program.emplace_back( // 2854 + std::make_unique(2855, 2859) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2855 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2863) + ); + program.emplace_back( // 2859 + std::make_unique(2860, 2862) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2860 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2863) + ); + // [:@] + program.emplace_back( // 2862 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2863 + std::make_unique(2868) + ); + program.emplace_back( // 2864 + std::make_unique(2865, 2867) + ); + // [\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd] + program.emplace_back( // 2865 + std::make_unique( + std::vector{ + revm::Range(L'\ue000', L'\uf8ff'), + revm::Range(L'\U000f0000', L'\U000ffffd'), + revm::Range(L'\U00100000', L'\U0010fffd') + } + ) + ); + program.emplace_back( + std::make_unique(2868) + ); + // [/?] + program.emplace_back( // 2867 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?] + program.emplace_back( // 2868 + std::make_unique(2846) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + } // \?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])* + } // (\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)? + { // (#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + program.emplace_back( // 2869 + std::make_unique(2870, 2891) + ); + { // #((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + // # + program.emplace_back( // 2870 + std::make_unique(L'#') + ); + { // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + program.emplace_back( // 2871 + std::make_unique(2872, 2891) + ); + { // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 2872 + std::make_unique(2873, 2889) + ); + { // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2873 + std::make_unique(2874, 2879) + ); + { // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2874 + std::make_unique(2875, 2877) + ); + // [a-zA-Z0-9\-._~] + program.emplace_back( // 2875 + std::make_unique( + std::vector{ + revm::Range(L'-', L'-'), + revm::Range(L'.', L'.'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'_', L'_'), + revm::Range(L'a', L'z'), + revm::Range(L'~', L'~') + } + ) + ); + program.emplace_back( + std::make_unique(2878) + ); + // [\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2877 + std::make_unique( + std::vector{ + revm::Range(L'\xa0', L'\ud7ff'), + revm::Range(L'\uf900', L'\ufdcf'), + revm::Range(L'\ufdf0', L'\uffef'), + revm::Range(L'\U00010000', L'\U0001fffd'), + revm::Range(L'\U00020000', L'\U0002fffd'), + revm::Range(L'\U00030000', L'\U0003fffd'), + revm::Range(L'\U00040000', L'\U0004fffd'), + revm::Range(L'\U00050000', L'\U0005fffd'), + revm::Range(L'\U00060000', L'\U0006fffd'), + revm::Range(L'\U00070000', L'\U0007fffd'), + revm::Range(L'\U00080000', L'\U0008fffd'), + revm::Range(L'\U00090000', L'\U0009fffd'), + revm::Range(L'\U000a0000', L'\U000afffd'), + revm::Range(L'\U000b0000', L'\U000bfffd'), + revm::Range(L'\U000c0000', L'\U000cfffd'), + revm::Range(L'\U000d0000', L'\U000dfffd'), + revm::Range(L'\U000e1000', L'\U000efffd') + } + ) + ); + } // [a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd] + program.emplace_back( // 2878 + std::make_unique(2888) + ); + program.emplace_back( // 2879 + std::make_unique(2880, 2884) + ); + { // %[0-9A-Fa-f][0-9A-Fa-f] + // % + program.emplace_back( // 2880 + std::make_unique(L'%') + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9A-Fa-f] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // %[0-9A-Fa-f][0-9A-Fa-f] + program.emplace_back( + std::make_unique(2888) + ); + program.emplace_back( // 2884 + std::make_unique(2885, 2887) + ); + // [!$&'()*+,;=] + program.emplace_back( // 2885 + std::make_unique( + std::vector{ + revm::Range(L'!', L'!'), + revm::Range(L'$', L'$'), + revm::Range(L'&', L'&'), + revm::Range(L'\'', L'\''), + revm::Range(L'(', L'('), + revm::Range(L')', L')'), + revm::Range(L'*', L'*'), + revm::Range(L'+', L'+'), + revm::Range(L',', L','), + revm::Range(L';', L';'), + revm::Range(L'=', L'=') + } + ) + ); + program.emplace_back( + std::make_unique(2888) + ); + // [:@] + program.emplace_back( // 2887 + std::make_unique( + std::vector{ + revm::Range(L':', L':'), + revm::Range(L'@', L'@') + } + ) + ); + } // ([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@] + program.emplace_back( // 2888 + std::make_unique(2890) + ); + // [/?] + program.emplace_back( // 2889 + std::make_unique( + std::vector{ + revm::Range(L'/', L'/'), + revm::Range(L'?', L'?') + } + ) + ); + } // (([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?] + program.emplace_back( // 2890 + std::make_unique(2871) + ); + } // ((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // #((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])* + } // (#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + } // (//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + } // [a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)? + // $ + program.emplace_back( // 2891 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^([a-zA-Z][a-zA-Z0-9+\-.]*:(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?|(//((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|:)*@)?(\[((([0-9A-Fa-f]{1,4}:){6}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|::([0-9A-Fa-f]{1,4}:){5}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|([0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){4}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){3}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:){2}([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}:([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})?::([0-9A-Fa-f]{1,4}:[0-9A-Fa-f]{1,4}|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})?::[0-9A-Fa-f]{1,4}|(([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})?::)|[vV][0-9A-Fa-f]+\.([a-zA-Z0-9\-._~]|[!$&'()*+,;=]|:)+)\]|([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=])*)(:[0-9]*)?(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|/(((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*)?|(([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|@)+(/((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@]))*)*|((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])){0})(\?((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]|[/?])*)?(#((([a-zA-Z0-9\-._~]|[\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd])|%[0-9A-Fa-f][0-9A-Fa-f]|[!$&'()*+,;=]|[:@])|[/?])*)?)$ + #endif + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsAnyUriProgram = ConstructMatchesXsAnyUriProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsBase64BinaryProgram() { + std::vector > program; + + { // ^(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=))?$ + { // (([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=))? + program.emplace_back( + std::make_unique(1, 49) + ); + { // ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=) + { // ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)* + program.emplace_back( // 1 + std::make_unique(2, 15) + ); + { // [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20? + // [A-Za-z0-9+/] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(4, 5) + ); + // \x20 + program.emplace_back( // 4 + std::make_unique(L' ') + ); + } // \x20? + // [A-Za-z0-9+/] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(7, 8) + ); + // \x20 + program.emplace_back( // 7 + std::make_unique(L' ') + ); + } // \x20? + // [A-Za-z0-9+/] + program.emplace_back( // 8 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(10, 11) + ); + // \x20 + program.emplace_back( // 10 + std::make_unique(L' ') + ); + } // \x20? + // [A-Za-z0-9+/] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(13, 14) + ); + // \x20 + program.emplace_back( // 13 + std::make_unique(L' ') + ); + } // \x20? + } // [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20? + program.emplace_back( // 14 + std::make_unique(1) + ); + } // ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)* + { // ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?= + program.emplace_back( // 15 + std::make_unique(16, 27) + ); + { // [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/] + // [A-Za-z0-9+/] + program.emplace_back( // 16 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(18, 19) + ); + // \x20 + program.emplace_back( // 18 + std::make_unique(L' ') + ); + } // \x20? + // [A-Za-z0-9+/] + program.emplace_back( // 19 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(21, 22) + ); + // \x20 + program.emplace_back( // 21 + std::make_unique(L' ') + ); + } // \x20? + // [A-Za-z0-9+/] + program.emplace_back( // 22 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(24, 25) + ); + // \x20 + program.emplace_back( // 24 + std::make_unique(L' ') + ); + } // \x20? + // [A-Za-z0-9+/] + program.emplace_back( // 25 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + } // [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/] + program.emplace_back( + std::make_unique(49) + ); + program.emplace_back( // 27 + std::make_unique(28, 39) + ); + { // [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?= + // [A-Za-z0-9+/] + program.emplace_back( // 28 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(30, 31) + ); + // \x20 + program.emplace_back( // 30 + std::make_unique(L' ') + ); + } // \x20? + // [A-Za-z0-9+/] + program.emplace_back( // 31 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(33, 34) + ); + // \x20 + program.emplace_back( // 33 + std::make_unique(L' ') + ); + } // \x20? + // [AEIMQUYcgkosw048] + program.emplace_back( // 34 + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'4', L'4'), + revm::Range(L'8', L'8'), + revm::Range(L'A', L'A'), + revm::Range(L'E', L'E'), + revm::Range(L'I', L'I'), + revm::Range(L'M', L'M'), + revm::Range(L'Q', L'Q'), + revm::Range(L'U', L'U'), + revm::Range(L'Y', L'Y'), + revm::Range(L'c', L'c'), + revm::Range(L'g', L'g'), + revm::Range(L'k', L'k'), + revm::Range(L'o', L'o'), + revm::Range(L's', L's'), + revm::Range(L'w', L'w') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(36, 37) + ); + // \x20 + program.emplace_back( // 36 + std::make_unique(L' ') + ); + } // \x20? + // = + program.emplace_back( // 37 + std::make_unique(L'=') + ); + } // [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?= + program.emplace_back( + std::make_unique(49) + ); + { // [A-Za-z0-9+/]\x20?[AQgw]\x20?= ?= + // [A-Za-z0-9+/] + program.emplace_back( // 39 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'/', L'/'), + revm::Range(L'0', L'9'), + revm::Range(L'A', L'Z'), + revm::Range(L'a', L'z') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(41, 42) + ); + // \x20 + program.emplace_back( // 41 + std::make_unique(L' ') + ); + } // \x20? + // [AQgw] + program.emplace_back( // 42 + std::make_unique( + std::vector{ + revm::Range(L'A', L'A'), + revm::Range(L'Q', L'Q'), + revm::Range(L'g', L'g'), + revm::Range(L'w', L'w') + } + ) + ); + { // \x20? + program.emplace_back( + std::make_unique(44, 45) + ); + // \x20 + program.emplace_back( // 44 + std::make_unique(L' ') + ); + } // \x20? + // = + program.emplace_back( // 45 + std::make_unique(L'=') + ); + { // ? + program.emplace_back( + std::make_unique(47, 48) + ); + /* */ + program.emplace_back( // 47 + std::make_unique(L' ') + ); + } // ? + // = + program.emplace_back( // 48 + std::make_unique(L'=') + ); + } // [A-Za-z0-9+/]\x20?[AQgw]\x20?= ?= + } // ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?= + } // ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=) + } // (([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=))? + // $ + program.emplace_back( // 49 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsBase64BinaryProgram = ConstructMatchesXsBase64BinaryProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsBooleanProgram() { + std::vector > program; + + { // ^(true|false|1|0)$ + { // true|false|1|0 + program.emplace_back( + std::make_unique(1, 6) + ); + { // true + // t + program.emplace_back( // 1 + std::make_unique(L't') + ); + // r + program.emplace_back( + std::make_unique(L'r') + ); + // u + program.emplace_back( + std::make_unique(L'u') + ); + // e + program.emplace_back( + std::make_unique(L'e') + ); + } // true + program.emplace_back( + std::make_unique(17) + ); + program.emplace_back( // 6 + std::make_unique(7, 13) + ); + { // false + // f + program.emplace_back( // 7 + std::make_unique(L'f') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // l + program.emplace_back( + std::make_unique(L'l') + ); + // s + program.emplace_back( + std::make_unique(L's') + ); + // e + program.emplace_back( + std::make_unique(L'e') + ); + } // false + program.emplace_back( + std::make_unique(17) + ); + program.emplace_back( // 13 + std::make_unique(14, 16) + ); + // 1 + program.emplace_back( // 14 + std::make_unique(L'1') + ); + program.emplace_back( + std::make_unique(17) + ); + // 0 + program.emplace_back( // 16 + std::make_unique(L'0') + ); + } // true|false|1|0 + // $ + program.emplace_back( // 17 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(true|false|1|0)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsBooleanProgram = ConstructMatchesXsBooleanProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsDateProgram() { + std::vector > program; + + { // ^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // ([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]) + program.emplace_back( // 2 + std::make_unique(3, 9) + ); + { // [1-9][0-9][0-9][0-9]+ + // [1-9] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 6 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(6, 8) + ); + } // [0-9]+ + } // [1-9][0-9][0-9][0-9]+ + program.emplace_back( // 8 + std::make_unique(13) + ); + { // 0[0-9][0-9][0-9] + // 0 + program.emplace_back( // 9 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9][0-9][0-9] + } // ([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]) + // - + program.emplace_back( // 13 + std::make_unique(L'-') + ); + { // (0[1-9])|(1[0-2]) + program.emplace_back( + std::make_unique(15, 18) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 15 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(20) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 18 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // (0[1-9])|(1[0-2]) + // - + program.emplace_back( // 20 + std::make_unique(L'-') + ); + { // (0[1-9])|([12][0-9])|(3[01]) + program.emplace_back( + std::make_unique(22, 25) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 22 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(31) + ); + program.emplace_back( // 25 + std::make_unique(26, 29) + ); + { // [12][0-9] + // [12] + program.emplace_back( // 26 + std::make_unique( + std::vector{ + revm::Range(L'1', L'1'), + revm::Range(L'2', L'2') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [12][0-9] + program.emplace_back( + std::make_unique(31) + ); + { // 3[01] + // 3 + program.emplace_back( // 29 + std::make_unique(L'3') + ); + // [01] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + } // 3[01] + } // (0[1-9])|([12][0-9])|(3[01]) + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 31 + std::make_unique(32, 55) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 32 + std::make_unique(33, 35) + ); + // Z + program.emplace_back( // 33 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(55) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 35 + std::make_unique(36, 38) + ); + // \+ + program.emplace_back( // 36 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(39) + ); + // - + program.emplace_back( // 38 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 39 + std::make_unique(40, 50) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 40 + std::make_unique(41, 44) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 41 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(46) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 44 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 46 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(55) + ); + { // 14:00 + // 1 + program.emplace_back( // 50 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 55 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsDateProgram = ConstructMatchesXsDateProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsDateTimeProgram() { + std::vector > program; + + { // ^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)?)(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // ([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]) + program.emplace_back( // 2 + std::make_unique(3, 9) + ); + { // [1-9][0-9][0-9][0-9]+ + // [1-9] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 6 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(6, 8) + ); + } // [0-9]+ + } // [1-9][0-9][0-9][0-9]+ + program.emplace_back( // 8 + std::make_unique(13) + ); + { // 0[0-9][0-9][0-9] + // 0 + program.emplace_back( // 9 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9][0-9][0-9] + } // ([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]) + // - + program.emplace_back( // 13 + std::make_unique(L'-') + ); + { // (0[1-9])|(1[0-2]) + program.emplace_back( + std::make_unique(15, 18) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 15 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(20) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 18 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // (0[1-9])|(1[0-2]) + // - + program.emplace_back( // 20 + std::make_unique(L'-') + ); + { // (0[1-9])|([12][0-9])|(3[01]) + program.emplace_back( + std::make_unique(22, 25) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 22 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(31) + ); + program.emplace_back( // 25 + std::make_unique(26, 29) + ); + { // [12][0-9] + // [12] + program.emplace_back( // 26 + std::make_unique( + std::vector{ + revm::Range(L'1', L'1'), + revm::Range(L'2', L'2') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [12][0-9] + program.emplace_back( + std::make_unique(31) + ); + { // 3[01] + // 3 + program.emplace_back( // 29 + std::make_unique(L'3') + ); + // [01] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + } // 3[01] + } // (0[1-9])|([12][0-9])|(3[01]) + // T + program.emplace_back( // 31 + std::make_unique(L'T') + ); + { // ((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)? + program.emplace_back( + std::make_unique(33, 50) + ); + { // (([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)? + { // ([01][0-9])|(2[0-3]) + program.emplace_back( // 33 + std::make_unique(34, 37) + ); + { // [01][0-9] + // [01] + program.emplace_back( // 34 + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [01][0-9] + program.emplace_back( + std::make_unique(39) + ); + { // 2[0-3] + // 2 + program.emplace_back( // 37 + std::make_unique(L'2') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 2[0-3] + } // ([01][0-9])|(2[0-3]) + // : + program.emplace_back( // 39 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + { // [0-5][0-9] + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-5][0-9] + { // (\.[0-9]+)? + program.emplace_back( + std::make_unique(46, 49) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 46 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 47 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(47, 49) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + } // (([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)? + program.emplace_back( // 49 + std::make_unique(62) + ); + { // 24:00:00(\.0+)? + // 2 + program.emplace_back( // 50 + std::make_unique(L'2') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + { // (\.0+)? + program.emplace_back( + std::make_unique(59, 62) + ); + { // \.0+ + // \. + program.emplace_back( // 59 + std::make_unique(L'.') + ); + { // 0+ + // 0 + program.emplace_back( // 60 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(60, 62) + ); + } // 0+ + } // \.0+ + } // (\.0+)? + } // 24:00:00(\.0+)? + } // ((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)? + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 62 + std::make_unique(63, 86) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 63 + std::make_unique(64, 66) + ); + // Z + program.emplace_back( // 64 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(86) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 66 + std::make_unique(67, 69) + ); + // \+ + program.emplace_back( // 67 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(70) + ); + // - + program.emplace_back( // 69 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 70 + std::make_unique(71, 81) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 71 + std::make_unique(72, 75) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 72 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(77) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 75 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 77 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(86) + ); + { // 14:00 + // 1 + program.emplace_back( // 81 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 86 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^-?(([1-9][0-9][0-9][0-9]+)|(0[0-9][0-9][0-9]))-((0[1-9])|(1[0-2]))-((0[1-9])|([12][0-9])|(3[01]))T(((([01][0-9])|(2[0-3])):[0-5][0-9]:([0-5][0-9])(\.[0-9]+)?)|24:00:00(\.0+)?)(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsDateTimeProgram = ConstructMatchesXsDateTimeProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsDecimalProgram() { + std::vector > program; + + { // ^((\+|-)?([0-9]+\.[0-9]+|\.[0-9]+)|(\+|-)?[0-9]+)$ + { // (\+|-)?([0-9]+\.[0-9]+|\.[0-9]+)|(\+|-)?[0-9]+ + program.emplace_back( + std::make_unique(1, 17) + ); + { // (\+|-)?([0-9]+\.[0-9]+|\.[0-9]+) + { // (\+|-)? + program.emplace_back( // 1 + std::make_unique(2, 6) + ); + { // \+|- + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // \+ + program.emplace_back( // 3 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(6) + ); + // - + program.emplace_back( // 5 + std::make_unique(L'-') + ); + } // \+|- + } // (\+|-)? + { // [0-9]+\.[0-9]+|\.[0-9]+ + program.emplace_back( // 6 + std::make_unique(7, 13) + ); + { // [0-9]+\.[0-9]+ + { // [0-9]+ + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(7, 9) + ); + } // [0-9]+ + // \. + program.emplace_back( // 9 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 10 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(10, 12) + ); + } // [0-9]+ + } // [0-9]+\.[0-9]+ + program.emplace_back( // 12 + std::make_unique(16) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 13 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 14 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(14, 16) + ); + } // [0-9]+ + } // \.[0-9]+ + } // [0-9]+\.[0-9]+|\.[0-9]+ + } // (\+|-)?([0-9]+\.[0-9]+|\.[0-9]+) + program.emplace_back( // 16 + std::make_unique(24) + ); + { // (\+|-)?[0-9]+ + { // (\+|-)? + program.emplace_back( // 17 + std::make_unique(18, 22) + ); + { // \+|- + program.emplace_back( // 18 + std::make_unique(19, 21) + ); + // \+ + program.emplace_back( // 19 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(22) + ); + // - + program.emplace_back( // 21 + std::make_unique(L'-') + ); + } // \+|- + } // (\+|-)? + { // [0-9]+ + // [0-9] + program.emplace_back( // 22 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(22, 24) + ); + } // [0-9]+ + } // (\+|-)?[0-9]+ + } // (\+|-)?([0-9]+\.[0-9]+|\.[0-9]+)|(\+|-)?[0-9]+ + // $ + program.emplace_back( // 24 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^((\+|-)?([0-9]+\.[0-9]+|\.[0-9]+)|(\+|-)?[0-9]+)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsDecimalProgram = ConstructMatchesXsDecimalProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsDoubleProgram() { + std::vector > program; + + { // ^((\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN)$ + { // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN + program.emplace_back( + std::make_unique(1, 28) + ); + { // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)? + { // (\+|-)? + program.emplace_back( // 1 + std::make_unique(2, 6) + ); + { // \+|- + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // \+ + program.emplace_back( // 3 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(6) + ); + // - + program.emplace_back( // 5 + std::make_unique(L'-') + ); + } // \+|- + } // (\+|-)? + { // [0-9]+(\.[0-9]*)?|\.[0-9]+ + program.emplace_back( // 6 + std::make_unique(7, 15) + ); + { // [0-9]+(\.[0-9]*)? + { // [0-9]+ + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(7, 9) + ); + } // [0-9]+ + { // (\.[0-9]*)? + program.emplace_back( // 9 + std::make_unique(10, 14) + ); + { // \.[0-9]* + // \. + program.emplace_back( // 10 + std::make_unique(L'.') + ); + { // [0-9]* + program.emplace_back( // 11 + std::make_unique(12, 14) + ); + // [0-9] + program.emplace_back( // 12 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11) + ); + } // [0-9]* + } // \.[0-9]* + } // (\.[0-9]*)? + } // [0-9]+(\.[0-9]*)? + program.emplace_back( // 14 + std::make_unique(18) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 15 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 16 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(16, 18) + ); + } // [0-9]+ + } // \.[0-9]+ + } // [0-9]+(\.[0-9]*)?|\.[0-9]+ + { // ([Ee](\+|-)?[0-9]+)? + program.emplace_back( // 18 + std::make_unique(19, 27) + ); + { // [Ee](\+|-)?[0-9]+ + // [Ee] + program.emplace_back( // 19 + std::make_unique( + std::vector{ + revm::Range(L'E', L'E'), + revm::Range(L'e', L'e') + } + ) + ); + { // (\+|-)? + program.emplace_back( + std::make_unique(21, 25) + ); + { // \+|- + program.emplace_back( // 21 + std::make_unique(22, 24) + ); + // \+ + program.emplace_back( // 22 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(25) + ); + // - + program.emplace_back( // 24 + std::make_unique(L'-') + ); + } // \+|- + } // (\+|-)? + { // [0-9]+ + // [0-9] + program.emplace_back( // 25 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(25, 27) + ); + } // [0-9]+ + } // [Ee](\+|-)?[0-9]+ + } // ([Ee](\+|-)?[0-9]+)? + } // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)? + program.emplace_back( // 27 + std::make_unique(38) + ); + program.emplace_back( // 28 + std::make_unique(29, 35) + ); + { // -?INF + { // -? + program.emplace_back( // 29 + std::make_unique(30, 31) + ); + // - + program.emplace_back( // 30 + std::make_unique(L'-') + ); + } // -? + // I + program.emplace_back( // 31 + std::make_unique(L'I') + ); + // N + program.emplace_back( + std::make_unique(L'N') + ); + // F + program.emplace_back( + std::make_unique(L'F') + ); + } // -?INF + program.emplace_back( + std::make_unique(38) + ); + { // NaN + // N + program.emplace_back( // 35 + std::make_unique(L'N') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // N + program.emplace_back( + std::make_unique(L'N') + ); + } // NaN + } // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN + // $ + program.emplace_back( // 38 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^((\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsDoubleProgram = ConstructMatchesXsDoubleProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsDurationProgram() { + std::vector > program; + + { // ^-?P((([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S))))$ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + // P + program.emplace_back( // 2 + std::make_unique(L'P') + ); + { // (([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S))) + program.emplace_back( + std::make_unique(4, 69) + ); + { // ([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))? + { // [0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D) + program.emplace_back( // 4 + std::make_unique(5, 17) + ); + { // [0-9]+Y([0-9]+M)?([0-9]+D)? + { // [0-9]+ + // [0-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(5, 7) + ); + } // [0-9]+ + // Y + program.emplace_back( // 7 + std::make_unique(L'Y') + ); + { // ([0-9]+M)? + program.emplace_back( + std::make_unique(9, 12) + ); + { // [0-9]+M + { // [0-9]+ + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(9, 11) + ); + } // [0-9]+ + // M + program.emplace_back( // 11 + std::make_unique(L'M') + ); + } // [0-9]+M + } // ([0-9]+M)? + { // ([0-9]+D)? + program.emplace_back( // 12 + std::make_unique(13, 16) + ); + { // [0-9]+D + { // [0-9]+ + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 15) + ); + } // [0-9]+ + // D + program.emplace_back( // 15 + std::make_unique(L'D') + ); + } // [0-9]+D + } // ([0-9]+D)? + } // [0-9]+Y([0-9]+M)?([0-9]+D)? + program.emplace_back( // 16 + std::make_unique(29) + ); + program.emplace_back( // 17 + std::make_unique(18, 26) + ); + { // ([0-9]+M)([0-9]+D)? + { // [0-9]+M + { // [0-9]+ + // [0-9] + program.emplace_back( // 18 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(18, 20) + ); + } // [0-9]+ + // M + program.emplace_back( // 20 + std::make_unique(L'M') + ); + } // [0-9]+M + { // ([0-9]+D)? + program.emplace_back( + std::make_unique(22, 25) + ); + { // [0-9]+D + { // [0-9]+ + // [0-9] + program.emplace_back( // 22 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(22, 24) + ); + } // [0-9]+ + // D + program.emplace_back( // 24 + std::make_unique(L'D') + ); + } // [0-9]+D + } // ([0-9]+D)? + } // ([0-9]+M)([0-9]+D)? + program.emplace_back( // 25 + std::make_unique(29) + ); + { // [0-9]+D + { // [0-9]+ + // [0-9] + program.emplace_back( // 26 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(26, 28) + ); + } // [0-9]+ + // D + program.emplace_back( // 28 + std::make_unique(L'D') + ); + } // [0-9]+D + } // [0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D) + { // (T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))? + program.emplace_back( // 29 + std::make_unique(30, 68) + ); + { // T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)) + // T + program.emplace_back( // 30 + std::make_unique(L'T') + ); + { // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S) + program.emplace_back( + std::make_unique(32, 48) + ); + { // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)? + { // [0-9]+H + { // [0-9]+ + // [0-9] + program.emplace_back( // 32 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(32, 34) + ); + } // [0-9]+ + // H + program.emplace_back( // 34 + std::make_unique(L'H') + ); + } // [0-9]+H + { // ([0-9]+M)? + program.emplace_back( + std::make_unique(36, 39) + ); + { // [0-9]+M + { // [0-9]+ + // [0-9] + program.emplace_back( // 36 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(36, 38) + ); + } // [0-9]+ + // M + program.emplace_back( // 38 + std::make_unique(L'M') + ); + } // [0-9]+M + } // ([0-9]+M)? + { // ([0-9]+(\.[0-9]+)?S)? + program.emplace_back( // 39 + std::make_unique(40, 47) + ); + { // [0-9]+(\.[0-9]+)?S + { // [0-9]+ + // [0-9] + program.emplace_back( // 40 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(40, 42) + ); + } // [0-9]+ + { // (\.[0-9]+)? + program.emplace_back( // 42 + std::make_unique(43, 46) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 43 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 44 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(44, 46) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + // S + program.emplace_back( // 46 + std::make_unique(L'S') + ); + } // [0-9]+(\.[0-9]+)?S + } // ([0-9]+(\.[0-9]+)?S)? + } // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)? + program.emplace_back( // 47 + std::make_unique(68) + ); + program.emplace_back( // 48 + std::make_unique(49, 61) + ); + { // ([0-9]+M)([0-9]+(\.[0-9]+)?S)? + { // [0-9]+M + { // [0-9]+ + // [0-9] + program.emplace_back( // 49 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(49, 51) + ); + } // [0-9]+ + // M + program.emplace_back( // 51 + std::make_unique(L'M') + ); + } // [0-9]+M + { // ([0-9]+(\.[0-9]+)?S)? + program.emplace_back( + std::make_unique(53, 60) + ); + { // [0-9]+(\.[0-9]+)?S + { // [0-9]+ + // [0-9] + program.emplace_back( // 53 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(53, 55) + ); + } // [0-9]+ + { // (\.[0-9]+)? + program.emplace_back( // 55 + std::make_unique(56, 59) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 56 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 57 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(57, 59) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + // S + program.emplace_back( // 59 + std::make_unique(L'S') + ); + } // [0-9]+(\.[0-9]+)?S + } // ([0-9]+(\.[0-9]+)?S)? + } // ([0-9]+M)([0-9]+(\.[0-9]+)?S)? + program.emplace_back( // 60 + std::make_unique(68) + ); + { // [0-9]+(\.[0-9]+)?S + { // [0-9]+ + // [0-9] + program.emplace_back( // 61 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(61, 63) + ); + } // [0-9]+ + { // (\.[0-9]+)? + program.emplace_back( // 63 + std::make_unique(64, 67) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 64 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 65 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(65, 67) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + // S + program.emplace_back( // 67 + std::make_unique(L'S') + ); + } // [0-9]+(\.[0-9]+)?S + } // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S) + } // T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)) + } // (T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))? + } // ([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))? + program.emplace_back( // 68 + std::make_unique(107) + ); + { // T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)) + // T + program.emplace_back( // 69 + std::make_unique(L'T') + ); + { // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S) + program.emplace_back( + std::make_unique(71, 87) + ); + { // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)? + { // [0-9]+H + { // [0-9]+ + // [0-9] + program.emplace_back( // 71 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(71, 73) + ); + } // [0-9]+ + // H + program.emplace_back( // 73 + std::make_unique(L'H') + ); + } // [0-9]+H + { // ([0-9]+M)? + program.emplace_back( + std::make_unique(75, 78) + ); + { // [0-9]+M + { // [0-9]+ + // [0-9] + program.emplace_back( // 75 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(75, 77) + ); + } // [0-9]+ + // M + program.emplace_back( // 77 + std::make_unique(L'M') + ); + } // [0-9]+M + } // ([0-9]+M)? + { // ([0-9]+(\.[0-9]+)?S)? + program.emplace_back( // 78 + std::make_unique(79, 86) + ); + { // [0-9]+(\.[0-9]+)?S + { // [0-9]+ + // [0-9] + program.emplace_back( // 79 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(79, 81) + ); + } // [0-9]+ + { // (\.[0-9]+)? + program.emplace_back( // 81 + std::make_unique(82, 85) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 82 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 83 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(83, 85) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + // S + program.emplace_back( // 85 + std::make_unique(L'S') + ); + } // [0-9]+(\.[0-9]+)?S + } // ([0-9]+(\.[0-9]+)?S)? + } // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)? + program.emplace_back( // 86 + std::make_unique(107) + ); + program.emplace_back( // 87 + std::make_unique(88, 100) + ); + { // ([0-9]+M)([0-9]+(\.[0-9]+)?S)? + { // [0-9]+M + { // [0-9]+ + // [0-9] + program.emplace_back( // 88 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(88, 90) + ); + } // [0-9]+ + // M + program.emplace_back( // 90 + std::make_unique(L'M') + ); + } // [0-9]+M + { // ([0-9]+(\.[0-9]+)?S)? + program.emplace_back( + std::make_unique(92, 99) + ); + { // [0-9]+(\.[0-9]+)?S + { // [0-9]+ + // [0-9] + program.emplace_back( // 92 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(92, 94) + ); + } // [0-9]+ + { // (\.[0-9]+)? + program.emplace_back( // 94 + std::make_unique(95, 98) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 95 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 96 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(96, 98) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + // S + program.emplace_back( // 98 + std::make_unique(L'S') + ); + } // [0-9]+(\.[0-9]+)?S + } // ([0-9]+(\.[0-9]+)?S)? + } // ([0-9]+M)([0-9]+(\.[0-9]+)?S)? + program.emplace_back( // 99 + std::make_unique(107) + ); + { // [0-9]+(\.[0-9]+)?S + { // [0-9]+ + // [0-9] + program.emplace_back( // 100 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(100, 102) + ); + } // [0-9]+ + { // (\.[0-9]+)? + program.emplace_back( // 102 + std::make_unique(103, 106) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 103 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 104 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(104, 106) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + // S + program.emplace_back( // 106 + std::make_unique(L'S') + ); + } // [0-9]+(\.[0-9]+)?S + } // ([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S) + } // T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)) + } // (([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S))) + // $ + program.emplace_back( // 107 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^-?P((([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\.[0-9]+)?S)?|([0-9]+(\.[0-9]+)?S))))$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsDurationProgram = ConstructMatchesXsDurationProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsFloatProgram() { + std::vector > program; + + { // ^((\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN)$ + { // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN + program.emplace_back( + std::make_unique(1, 28) + ); + { // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)? + { // (\+|-)? + program.emplace_back( // 1 + std::make_unique(2, 6) + ); + { // \+|- + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // \+ + program.emplace_back( // 3 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(6) + ); + // - + program.emplace_back( // 5 + std::make_unique(L'-') + ); + } // \+|- + } // (\+|-)? + { // [0-9]+(\.[0-9]*)?|\.[0-9]+ + program.emplace_back( // 6 + std::make_unique(7, 15) + ); + { // [0-9]+(\.[0-9]*)? + { // [0-9]+ + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(7, 9) + ); + } // [0-9]+ + { // (\.[0-9]*)? + program.emplace_back( // 9 + std::make_unique(10, 14) + ); + { // \.[0-9]* + // \. + program.emplace_back( // 10 + std::make_unique(L'.') + ); + { // [0-9]* + program.emplace_back( // 11 + std::make_unique(12, 14) + ); + // [0-9] + program.emplace_back( // 12 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11) + ); + } // [0-9]* + } // \.[0-9]* + } // (\.[0-9]*)? + } // [0-9]+(\.[0-9]*)? + program.emplace_back( // 14 + std::make_unique(18) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 15 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 16 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(16, 18) + ); + } // [0-9]+ + } // \.[0-9]+ + } // [0-9]+(\.[0-9]*)?|\.[0-9]+ + { // ([Ee](\+|-)?[0-9]+)? + program.emplace_back( // 18 + std::make_unique(19, 27) + ); + { // [Ee](\+|-)?[0-9]+ + // [Ee] + program.emplace_back( // 19 + std::make_unique( + std::vector{ + revm::Range(L'E', L'E'), + revm::Range(L'e', L'e') + } + ) + ); + { // (\+|-)? + program.emplace_back( + std::make_unique(21, 25) + ); + { // \+|- + program.emplace_back( // 21 + std::make_unique(22, 24) + ); + // \+ + program.emplace_back( // 22 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(25) + ); + // - + program.emplace_back( // 24 + std::make_unique(L'-') + ); + } // \+|- + } // (\+|-)? + { // [0-9]+ + // [0-9] + program.emplace_back( // 25 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(25, 27) + ); + } // [0-9]+ + } // [Ee](\+|-)?[0-9]+ + } // ([Ee](\+|-)?[0-9]+)? + } // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)? + program.emplace_back( // 27 + std::make_unique(38) + ); + program.emplace_back( // 28 + std::make_unique(29, 35) + ); + { // -?INF + { // -? + program.emplace_back( // 29 + std::make_unique(30, 31) + ); + // - + program.emplace_back( // 30 + std::make_unique(L'-') + ); + } // -? + // I + program.emplace_back( // 31 + std::make_unique(L'I') + ); + // N + program.emplace_back( + std::make_unique(L'N') + ); + // F + program.emplace_back( + std::make_unique(L'F') + ); + } // -?INF + program.emplace_back( + std::make_unique(38) + ); + { // NaN + // N + program.emplace_back( // 35 + std::make_unique(L'N') + ); + // a + program.emplace_back( + std::make_unique(L'a') + ); + // N + program.emplace_back( + std::make_unique(L'N') + ); + } // NaN + } // (\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN + // $ + program.emplace_back( // 38 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^((\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|-?INF|NaN)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsFloatProgram = ConstructMatchesXsFloatProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsGDayProgram() { + std::vector > program; + + { // ^---(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + // - + program.emplace_back( + std::make_unique(L'-') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + { // 0[1-9]|[12][0-9]|3[01] + program.emplace_back( + std::make_unique(4, 7) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 4 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(13) + ); + program.emplace_back( // 7 + std::make_unique(8, 11) + ); + { // [12][0-9] + // [12] + program.emplace_back( // 8 + std::make_unique( + std::vector{ + revm::Range(L'1', L'1'), + revm::Range(L'2', L'2') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [12][0-9] + program.emplace_back( + std::make_unique(13) + ); + { // 3[01] + // 3 + program.emplace_back( // 11 + std::make_unique(L'3') + ); + // [01] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + } // 3[01] + } // 0[1-9]|[12][0-9]|3[01] + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 13 + std::make_unique(14, 37) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 14 + std::make_unique(15, 17) + ); + // Z + program.emplace_back( // 15 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(37) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 17 + std::make_unique(18, 20) + ); + // \+ + program.emplace_back( // 18 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(21) + ); + // - + program.emplace_back( // 20 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 21 + std::make_unique(22, 32) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 22 + std::make_unique(23, 26) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 23 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(28) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 26 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 28 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(37) + ); + { // 14:00 + // 1 + program.emplace_back( // 32 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 37 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^---(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsGDayProgram = ConstructMatchesXsGDayProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsGMonthProgram() { + std::vector > program; + + { // ^--(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + // - + program.emplace_back( + std::make_unique(L'-') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + { // 0[1-9]|1[0-2] + program.emplace_back( + std::make_unique(3, 6) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 3 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(8) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 6 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // 0[1-9]|1[0-2] + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 8 + std::make_unique(9, 32) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 9 + std::make_unique(10, 12) + ); + // Z + program.emplace_back( // 10 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(32) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 12 + std::make_unique(13, 15) + ); + // \+ + program.emplace_back( // 13 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(16) + ); + // - + program.emplace_back( // 15 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 16 + std::make_unique(17, 27) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 17 + std::make_unique(18, 21) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 18 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(23) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 21 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 23 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(32) + ); + { // 14:00 + // 1 + program.emplace_back( // 27 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 32 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^--(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsGMonthProgram = ConstructMatchesXsGMonthProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsGMonthDayProgram() { + std::vector > program; + + { // ^--(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + // - + program.emplace_back( + std::make_unique(L'-') + ); + // - + program.emplace_back( + std::make_unique(L'-') + ); + { // 0[1-9]|1[0-2] + program.emplace_back( + std::make_unique(3, 6) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 3 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(8) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 6 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // 0[1-9]|1[0-2] + // - + program.emplace_back( // 8 + std::make_unique(L'-') + ); + { // 0[1-9]|[12][0-9]|3[01] + program.emplace_back( + std::make_unique(10, 13) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 10 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(19) + ); + program.emplace_back( // 13 + std::make_unique(14, 17) + ); + { // [12][0-9] + // [12] + program.emplace_back( // 14 + std::make_unique( + std::vector{ + revm::Range(L'1', L'1'), + revm::Range(L'2', L'2') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [12][0-9] + program.emplace_back( + std::make_unique(19) + ); + { // 3[01] + // 3 + program.emplace_back( // 17 + std::make_unique(L'3') + ); + // [01] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + } // 3[01] + } // 0[1-9]|[12][0-9]|3[01] + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 19 + std::make_unique(20, 43) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 20 + std::make_unique(21, 23) + ); + // Z + program.emplace_back( // 21 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(43) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 23 + std::make_unique(24, 26) + ); + // \+ + program.emplace_back( // 24 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(27) + ); + // - + program.emplace_back( // 26 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 27 + std::make_unique(28, 38) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 28 + std::make_unique(29, 32) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 29 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(34) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 32 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 34 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(43) + ); + { // 14:00 + // 1 + program.emplace_back( // 38 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 43 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^--(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsGMonthDayProgram = ConstructMatchesXsGMonthDayProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsGYearProgram() { + std::vector > program; + + { // ^-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // [1-9][0-9]{3,}|0[0-9]{3} + program.emplace_back( // 2 + std::make_unique(3, 9) + ); + { // [1-9][0-9]{3,} + // [1-9] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + { // [0-9]{3,} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( // 6 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(6, 8) + ); + } // [0-9]{3,} + } // [1-9][0-9]{3,} + program.emplace_back( // 8 + std::make_unique(13) + ); + { // 0[0-9]{3} + // 0 + program.emplace_back( // 9 + std::make_unique(L'0') + ); + { // [0-9]{3} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{3} + } // 0[0-9]{3} + } // [1-9][0-9]{3,}|0[0-9]{3} + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 13 + std::make_unique(14, 37) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 14 + std::make_unique(15, 17) + ); + // Z + program.emplace_back( // 15 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(37) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 17 + std::make_unique(18, 20) + ); + // \+ + program.emplace_back( // 18 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(21) + ); + // - + program.emplace_back( // 20 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 21 + std::make_unique(22, 32) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 22 + std::make_unique(23, 26) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 23 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(28) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 26 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 28 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(37) + ); + { // 14:00 + // 1 + program.emplace_back( // 32 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 37 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsGYearProgram = ConstructMatchesXsGYearProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsGYearMonthProgram() { + std::vector > program; + + { // ^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // [1-9][0-9]{3,}|0[0-9]{3} + program.emplace_back( // 2 + std::make_unique(3, 9) + ); + { // [1-9][0-9]{3,} + // [1-9] + program.emplace_back( // 3 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + { // [0-9]{3,} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( // 6 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(6, 8) + ); + } // [0-9]{3,} + } // [1-9][0-9]{3,} + program.emplace_back( // 8 + std::make_unique(13) + ); + { // 0[0-9]{3} + // 0 + program.emplace_back( // 9 + std::make_unique(L'0') + ); + { // [0-9]{3} + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{3} + } // 0[0-9]{3} + } // [1-9][0-9]{3,}|0[0-9]{3} + // - + program.emplace_back( // 13 + std::make_unique(L'-') + ); + { // 0[1-9]|1[0-2] + program.emplace_back( + std::make_unique(15, 18) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 15 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(20) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 18 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // 0[1-9]|1[0-2] + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 20 + std::make_unique(21, 44) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 21 + std::make_unique(22, 24) + ); + // Z + program.emplace_back( // 22 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(44) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 24 + std::make_unique(25, 27) + ); + // \+ + program.emplace_back( // 25 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(28) + ); + // - + program.emplace_back( // 27 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 28 + std::make_unique(29, 39) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 29 + std::make_unique(30, 33) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 30 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(35) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 33 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 35 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(44) + ); + { // 14:00 + // 1 + program.emplace_back( // 39 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 44 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsGYearMonthProgram = ConstructMatchesXsGYearMonthProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsHexBinaryProgram() { + std::vector > program; + + { // ^([0-9a-fA-F]{2})*$ + { // ([0-9a-fA-F]{2})* + program.emplace_back( // 0 + std::make_unique(1, 4) + ); + { // [0-9a-fA-F]{2} + // [0-9a-fA-F] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + // [0-9a-fA-F] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9'), + revm::Range(L'A', L'F'), + revm::Range(L'a', L'f') + } + ) + ); + } // [0-9a-fA-F]{2} + program.emplace_back( + std::make_unique(0) + ); + } // ([0-9a-fA-F]{2})* + // $ + program.emplace_back( // 4 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^([0-9a-fA-F]{2})*$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsHexBinaryProgram = ConstructMatchesXsHexBinaryProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsTimeProgram() { + std::vector > program; + + { // ^(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + { // ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?) + program.emplace_back( + std::make_unique(1, 18) + ); + { // ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)? + { // [01][0-9]|2[0-3] + program.emplace_back( // 1 + std::make_unique(2, 5) + ); + { // [01][0-9] + // [01] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'0', L'0'), + revm::Range(L'1', L'1') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [01][0-9] + program.emplace_back( + std::make_unique(7) + ); + { // 2[0-3] + // 2 + program.emplace_back( // 5 + std::make_unique(L'2') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 2[0-3] + } // [01][0-9]|2[0-3] + // : + program.emplace_back( // 7 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + { // (\.[0-9]+)? + program.emplace_back( + std::make_unique(14, 17) + ); + { // \.[0-9]+ + // \. + program.emplace_back( // 14 + std::make_unique(L'.') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 15 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(15, 17) + ); + } // [0-9]+ + } // \.[0-9]+ + } // (\.[0-9]+)? + } // ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)? + program.emplace_back( // 17 + std::make_unique(30) + ); + { // 24:00:00(\.0+)? + // 2 + program.emplace_back( // 18 + std::make_unique(L'2') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + { // (\.0+)? + program.emplace_back( + std::make_unique(27, 30) + ); + { // \.0+ + // \. + program.emplace_back( // 27 + std::make_unique(L'.') + ); + { // 0+ + // 0 + program.emplace_back( // 28 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(28, 30) + ); + } // 0+ + } // \.0+ + } // (\.0+)? + } // 24:00:00(\.0+)? + } // ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?) + { // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + program.emplace_back( // 30 + std::make_unique(31, 54) + ); + { // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + program.emplace_back( // 31 + std::make_unique(32, 34) + ); + // Z + program.emplace_back( // 32 + std::make_unique(L'Z') + ); + program.emplace_back( + std::make_unique(54) + ); + { // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + { // \+|- + program.emplace_back( // 34 + std::make_unique(35, 37) + ); + // \+ + program.emplace_back( // 35 + std::make_unique(L'+') + ); + program.emplace_back( + std::make_unique(38) + ); + // - + program.emplace_back( // 37 + std::make_unique(L'-') + ); + } // \+|- + { // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + program.emplace_back( // 38 + std::make_unique(39, 49) + ); + { // (0[0-9]|1[0-3]):[0-5][0-9] + { // 0[0-9]|1[0-3] + program.emplace_back( // 39 + std::make_unique(40, 43) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 40 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(45) + ); + { // 1[0-3] + // 1 + program.emplace_back( // 43 + std::make_unique(L'1') + ); + // [0-3] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'3') + } + ) + ); + } // 1[0-3] + } // 0[0-9]|1[0-3] + // : + program.emplace_back( // 45 + std::make_unique(L':') + ); + // [0-5] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'5') + } + ) + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // (0[0-9]|1[0-3]):[0-5][0-9] + program.emplace_back( + std::make_unique(54) + ); + { // 14:00 + // 1 + program.emplace_back( // 49 + std::make_unique(L'1') + ); + // 4 + program.emplace_back( + std::make_unique(L'4') + ); + // : + program.emplace_back( + std::make_unique(L':') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 14:00 + } // (0[0-9]|1[0-3]):[0-5][0-9]|14:00 + } // (\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00) + } // (Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))? + // $ + program.emplace_back( // 54 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsTimeProgram = ConstructMatchesXsTimeProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsIntegerProgram() { + std::vector > program; + + { // ^[-+]?[0-9]+$ + { // [-+]? + program.emplace_back( + std::make_unique(1, 2) + ); + // [-+] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-') + } + ) + ); + } // [-+]? + { // [0-9]+ + // [0-9] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2, 4) + ); + } // [0-9]+ + // $ + program.emplace_back( // 4 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[-+]?[0-9]+$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsIntegerProgram = ConstructMatchesXsIntegerProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsLongProgram() { + std::vector > program; + + { // ^[-+]?0*[0-9]{1,20}$ + { // [-+]? + program.emplace_back( + std::make_unique(1, 2) + ); + // [-+] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-') + } + ) + ); + } // [-+]? + { // 0* + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // 0 + program.emplace_back( // 3 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(2) + ); + } // 0* + { // [0-9]{1,20} + // [0-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(7, 44) + ); + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(9, 44) + ); + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11, 44) + ); + // [0-9] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 44) + ); + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(15, 44) + ); + // [0-9] + program.emplace_back( // 15 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(17, 44) + ); + // [0-9] + program.emplace_back( // 17 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(19, 44) + ); + // [0-9] + program.emplace_back( // 19 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(21, 44) + ); + // [0-9] + program.emplace_back( // 21 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(23, 44) + ); + // [0-9] + program.emplace_back( // 23 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(25, 44) + ); + // [0-9] + program.emplace_back( // 25 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(27, 44) + ); + // [0-9] + program.emplace_back( // 27 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(29, 44) + ); + // [0-9] + program.emplace_back( // 29 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(31, 44) + ); + // [0-9] + program.emplace_back( // 31 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(33, 44) + ); + // [0-9] + program.emplace_back( // 33 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(35, 44) + ); + // [0-9] + program.emplace_back( // 35 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(37, 44) + ); + // [0-9] + program.emplace_back( // 37 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(39, 44) + ); + // [0-9] + program.emplace_back( // 39 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(41, 44) + ); + // [0-9] + program.emplace_back( // 41 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(43, 44) + ); + // [0-9] + program.emplace_back( // 43 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,20} + // $ + program.emplace_back( // 44 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[-+]?0*[0-9]{1,20}$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsLongProgram = ConstructMatchesXsLongProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsIntProgram() { + std::vector > program; + + { // ^[-+]?0*[0-9]{1,10}$ + { // [-+]? + program.emplace_back( + std::make_unique(1, 2) + ); + // [-+] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-') + } + ) + ); + } // [-+]? + { // 0* + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // 0 + program.emplace_back( // 3 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(2) + ); + } // 0* + { // [0-9]{1,10} + // [0-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(7, 24) + ); + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(9, 24) + ); + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11, 24) + ); + // [0-9] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 24) + ); + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(15, 24) + ); + // [0-9] + program.emplace_back( // 15 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(17, 24) + ); + // [0-9] + program.emplace_back( // 17 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(19, 24) + ); + // [0-9] + program.emplace_back( // 19 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(21, 24) + ); + // [0-9] + program.emplace_back( // 21 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(23, 24) + ); + // [0-9] + program.emplace_back( // 23 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,10} + // $ + program.emplace_back( // 24 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[-+]?0*[0-9]{1,10}$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsIntProgram = ConstructMatchesXsIntProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsShortProgram() { + std::vector > program; + + { // ^[-+]?0*[0-9]{1,5}$ + { // [-+]? + program.emplace_back( + std::make_unique(1, 2) + ); + // [-+] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-') + } + ) + ); + } // [-+]? + { // 0* + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // 0 + program.emplace_back( // 3 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(2) + ); + } // 0* + { // [0-9]{1,5} + // [0-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(7, 14) + ); + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(9, 14) + ); + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11, 14) + ); + // [0-9] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 14) + ); + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,5} + // $ + program.emplace_back( // 14 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[-+]?0*[0-9]{1,5}$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsShortProgram = ConstructMatchesXsShortProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsByteProgram() { + std::vector > program; + + { // ^[-+]?0*[0-9]{1,3}$ + { // [-+]? + program.emplace_back( + std::make_unique(1, 2) + ); + // [-+] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'+', L'+'), + revm::Range(L'-', L'-') + } + ) + ); + } // [-+]? + { // 0* + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // 0 + program.emplace_back( // 3 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(2) + ); + } // 0* + { // [0-9]{1,3} + // [0-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(7, 10) + ); + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(9, 10) + ); + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,3} + // $ + program.emplace_back( // 10 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[-+]?0*[0-9]{1,3}$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsByteProgram = ConstructMatchesXsByteProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsNonNegativeIntegerProgram() { + std::vector > program; + + { // ^(-0|\+?[0-9]+)$ + { // -0|\+?[0-9]+ + program.emplace_back( + std::make_unique(1, 4) + ); + { // -0 + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // -0 + program.emplace_back( + std::make_unique(8) + ); + { // \+?[0-9]+ + { // \+? + program.emplace_back( // 4 + std::make_unique(5, 6) + ); + // \+ + program.emplace_back( // 5 + std::make_unique(L'+') + ); + } // \+? + { // [0-9]+ + // [0-9] + program.emplace_back( // 6 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(6, 8) + ); + } // [0-9]+ + } // \+?[0-9]+ + } // -0|\+?[0-9]+ + // $ + program.emplace_back( // 8 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(-0|\+?[0-9]+)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsNonNegativeIntegerProgram = ConstructMatchesXsNonNegativeIntegerProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsPositiveIntegerProgram() { + std::vector > program; + + { // ^\+?0*[1-9][0-9]*$ + { // \+? + program.emplace_back( + std::make_unique(1, 2) + ); + // \+ + program.emplace_back( // 1 + std::make_unique(L'+') + ); + } // \+? + { // 0* + program.emplace_back( // 2 + std::make_unique(3, 5) + ); + // 0 + program.emplace_back( // 3 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(2) + ); + } // 0* + // [1-9] + program.emplace_back( // 5 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + { // [0-9]* + program.emplace_back( // 6 + std::make_unique(7, 9) + ); + // [0-9] + program.emplace_back( // 7 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(6) + ); + } // [0-9]* + // $ + program.emplace_back( // 9 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^\+?0*[1-9][0-9]*$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsPositiveIntegerProgram = ConstructMatchesXsPositiveIntegerProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsUnsignedLongProgram() { + std::vector > program; + + { // ^(-0|\+?0*[0-9]{1,20})$ + { // -0|\+?0*[0-9]{1,20} + program.emplace_back( + std::make_unique(1, 4) + ); + { // -0 + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // -0 + program.emplace_back( + std::make_unique(48) + ); + { // \+?0*[0-9]{1,20} + { // \+? + program.emplace_back( // 4 + std::make_unique(5, 6) + ); + // \+ + program.emplace_back( // 5 + std::make_unique(L'+') + ); + } // \+? + { // 0* + program.emplace_back( // 6 + std::make_unique(7, 9) + ); + // 0 + program.emplace_back( // 7 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(6) + ); + } // 0* + { // [0-9]{1,20} + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11, 48) + ); + // [0-9] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 48) + ); + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(15, 48) + ); + // [0-9] + program.emplace_back( // 15 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(17, 48) + ); + // [0-9] + program.emplace_back( // 17 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(19, 48) + ); + // [0-9] + program.emplace_back( // 19 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(21, 48) + ); + // [0-9] + program.emplace_back( // 21 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(23, 48) + ); + // [0-9] + program.emplace_back( // 23 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(25, 48) + ); + // [0-9] + program.emplace_back( // 25 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(27, 48) + ); + // [0-9] + program.emplace_back( // 27 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(29, 48) + ); + // [0-9] + program.emplace_back( // 29 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(31, 48) + ); + // [0-9] + program.emplace_back( // 31 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(33, 48) + ); + // [0-9] + program.emplace_back( // 33 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(35, 48) + ); + // [0-9] + program.emplace_back( // 35 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(37, 48) + ); + // [0-9] + program.emplace_back( // 37 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(39, 48) + ); + // [0-9] + program.emplace_back( // 39 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(41, 48) + ); + // [0-9] + program.emplace_back( // 41 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(43, 48) + ); + // [0-9] + program.emplace_back( // 43 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(45, 48) + ); + // [0-9] + program.emplace_back( // 45 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(47, 48) + ); + // [0-9] + program.emplace_back( // 47 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,20} + } // \+?0*[0-9]{1,20} + } // -0|\+?0*[0-9]{1,20} + // $ + program.emplace_back( // 48 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(-0|\+?0*[0-9]{1,20})$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsUnsignedLongProgram = ConstructMatchesXsUnsignedLongProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsUnsignedIntProgram() { + std::vector > program; + + { // ^(-0|\+?0*[0-9]{1,10})$ + { // -0|\+?0*[0-9]{1,10} + program.emplace_back( + std::make_unique(1, 4) + ); + { // -0 + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // -0 + program.emplace_back( + std::make_unique(28) + ); + { // \+?0*[0-9]{1,10} + { // \+? + program.emplace_back( // 4 + std::make_unique(5, 6) + ); + // \+ + program.emplace_back( // 5 + std::make_unique(L'+') + ); + } // \+? + { // 0* + program.emplace_back( // 6 + std::make_unique(7, 9) + ); + // 0 + program.emplace_back( // 7 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(6) + ); + } // 0* + { // [0-9]{1,10} + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11, 28) + ); + // [0-9] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 28) + ); + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(15, 28) + ); + // [0-9] + program.emplace_back( // 15 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(17, 28) + ); + // [0-9] + program.emplace_back( // 17 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(19, 28) + ); + // [0-9] + program.emplace_back( // 19 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(21, 28) + ); + // [0-9] + program.emplace_back( // 21 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(23, 28) + ); + // [0-9] + program.emplace_back( // 23 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(25, 28) + ); + // [0-9] + program.emplace_back( // 25 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(27, 28) + ); + // [0-9] + program.emplace_back( // 27 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,10} + } // \+?0*[0-9]{1,10} + } // -0|\+?0*[0-9]{1,10} + // $ + program.emplace_back( // 28 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(-0|\+?0*[0-9]{1,10})$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsUnsignedIntProgram = ConstructMatchesXsUnsignedIntProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsUnsignedShortProgram() { + std::vector > program; + + { // ^(-0|\+?0*[0-9]{1,5})$ + { // -0|\+?0*[0-9]{1,5} + program.emplace_back( + std::make_unique(1, 4) + ); + { // -0 + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // -0 + program.emplace_back( + std::make_unique(18) + ); + { // \+?0*[0-9]{1,5} + { // \+? + program.emplace_back( // 4 + std::make_unique(5, 6) + ); + // \+ + program.emplace_back( // 5 + std::make_unique(L'+') + ); + } // \+? + { // 0* + program.emplace_back( // 6 + std::make_unique(7, 9) + ); + // 0 + program.emplace_back( // 7 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(6) + ); + } // 0* + { // [0-9]{1,5} + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11, 18) + ); + // [0-9] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 18) + ); + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(15, 18) + ); + // [0-9] + program.emplace_back( // 15 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(17, 18) + ); + // [0-9] + program.emplace_back( // 17 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,5} + } // \+?0*[0-9]{1,5} + } // -0|\+?0*[0-9]{1,5} + // $ + program.emplace_back( // 18 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(-0|\+?0*[0-9]{1,5})$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsUnsignedShortProgram = ConstructMatchesXsUnsignedShortProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsUnsignedByteProgram() { + std::vector > program; + + { // ^(-0|\+?0*[0-9]{1,3})$ + { // -0|\+?0*[0-9]{1,3} + program.emplace_back( + std::make_unique(1, 4) + ); + { // -0 + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // -0 + program.emplace_back( + std::make_unique(14) + ); + { // \+?0*[0-9]{1,3} + { // \+? + program.emplace_back( // 4 + std::make_unique(5, 6) + ); + // \+ + program.emplace_back( // 5 + std::make_unique(L'+') + ); + } // \+? + { // 0* + program.emplace_back( // 6 + std::make_unique(7, 9) + ); + // 0 + program.emplace_back( // 7 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(6) + ); + } // 0* + { // [0-9]{1,3} + // [0-9] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(11, 14) + ); + // [0-9] + program.emplace_back( // 11 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(13, 14) + ); + // [0-9] + program.emplace_back( // 13 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // [0-9]{1,3} + } // \+?0*[0-9]{1,3} + } // -0|\+?0*[0-9]{1,3} + // $ + program.emplace_back( // 14 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(-0|\+?0*[0-9]{1,3})$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsUnsignedByteProgram = ConstructMatchesXsUnsignedByteProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsNonPositiveIntegerProgram() { + std::vector > program; + + { // ^(\+0|0|-[0-9]+)$ + { // \+0|0|-[0-9]+ + program.emplace_back( + std::make_unique(1, 4) + ); + { // \+0 + // \+ + program.emplace_back( // 1 + std::make_unique(L'+') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // \+0 + program.emplace_back( + std::make_unique(10) + ); + program.emplace_back( // 4 + std::make_unique(5, 7) + ); + // 0 + program.emplace_back( // 5 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(10) + ); + { // -[0-9]+ + // - + program.emplace_back( // 7 + std::make_unique(L'-') + ); + { // [0-9]+ + // [0-9] + program.emplace_back( // 8 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(8, 10) + ); + } // [0-9]+ + } // -[0-9]+ + } // \+0|0|-[0-9]+ + // $ + program.emplace_back( // 10 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(\+0|0|-[0-9]+)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsNonPositiveIntegerProgram = ConstructMatchesXsNonPositiveIntegerProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsNegativeIntegerProgram() { + std::vector > program; + + { // ^(-0*[1-9][0-9]*)$ + { // -0*[1-9][0-9]* + // - + program.emplace_back( + std::make_unique(L'-') + ); + { // 0* + program.emplace_back( // 1 + std::make_unique(2, 4) + ); + // 0 + program.emplace_back( // 2 + std::make_unique(L'0') + ); + program.emplace_back( + std::make_unique(1) + ); + } // 0* + // [1-9] + program.emplace_back( // 4 + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + { // [0-9]* + program.emplace_back( // 5 + std::make_unique(6, 8) + ); + // [0-9] + program.emplace_back( // 6 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(5) + ); + } // [0-9]* + } // -0*[1-9][0-9]* + // $ + program.emplace_back( // 8 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(-0*[1-9][0-9]*)$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsNegativeIntegerProgram = ConstructMatchesXsNegativeIntegerProgram(); + +std::vector< + std::unique_ptr +> ConstructMatchesXsStringProgram() { + std::vector > program; + + #if __WCHAR_MAX__ <= 0x10000 + // The size of wchar is 2 bytes. + + { // ^([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])*$ + { // ([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])* + program.emplace_back( // 0 + std::make_unique(1, 15) + ); + { // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff] + program.emplace_back( // 1 + std::make_unique(2, 4) + ); + // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L'\n', L'\n'), + revm::Range(L'\r', L'\r'), + revm::Range(L' ', L'\ud7ff'), + revm::Range(L'\ue000', L'\ufffd') + } + ) + ); + program.emplace_back( + std::make_unique(14) + ); + program.emplace_back( // 4 + std::make_unique(5, 8) + ); + { // \ud800[\udc00-\udfff] + // \ud800 + program.emplace_back( // 5 + std::make_unique(static_cast(0xd800)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \ud800[\udc00-\udfff] + program.emplace_back( + std::make_unique(14) + ); + program.emplace_back( // 8 + std::make_unique(9, 12) + ); + { // [\ud801-\udbfe][\udc00-\udfff] + // [\ud801-\udbfe] + program.emplace_back( // 9 + std::make_unique( + std::vector{ + revm::Range(static_cast(0xd801), static_cast(0xdbfe)) + } + ) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // [\ud801-\udbfe][\udc00-\udfff] + program.emplace_back( + std::make_unique(14) + ); + { // \udbff[\udc00-\udfff] + // \udbff + program.emplace_back( // 12 + std::make_unique(static_cast(0xdbff)) + ); + // [\udc00-\udfff] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(static_cast(0xdc00), static_cast(0xdfff)) + } + ) + ); + } // \udbff[\udc00-\udfff] + } // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff] + program.emplace_back( // 14 + std::make_unique(0) + ); + } // ([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])* + // $ + program.emplace_back( // 15 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^([\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd]|\ud800[\udc00-\udfff]|[\ud801-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udfff])*$ + #else + // The size of wchar is above 2 bytes. + + { // ^[\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]*$ + { // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]* + program.emplace_back( // 0 + std::make_unique(1, 3) + ); + // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff] + program.emplace_back( // 1 + std::make_unique( + std::vector{ + revm::Range(L'\t', L'\t'), + revm::Range(L'\n', L'\n'), + revm::Range(L'\r', L'\r'), + revm::Range(L' ', L'\ud7ff'), + revm::Range(L'\ue000', L'\ufffd'), + revm::Range(L'\U00010000', L'\U0010ffff') + } + ) + ); + program.emplace_back( + std::make_unique(0) + ); + } // [\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]* + // $ + program.emplace_back( // 3 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^[\x09\x0a\x0d\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]*$ + #endif + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsStringProgram = ConstructMatchesXsStringProgram(); + +std::vector< + std::unique_ptr +> ConstructIsBcp47ForEnglishProgram() { + std::vector > program; + + { // ^(en|EN)(-.*)?$ + { // en|EN + program.emplace_back( + std::make_unique(1, 4) + ); + { // en + // e + program.emplace_back( // 1 + std::make_unique(L'e') + ); + // n + program.emplace_back( + std::make_unique(L'n') + ); + } // en + program.emplace_back( + std::make_unique(6) + ); + { // EN + // E + program.emplace_back( // 4 + std::make_unique(L'E') + ); + // N + program.emplace_back( + std::make_unique(L'N') + ); + } // EN + } // en|EN + { // (-.*)? + program.emplace_back( // 6 + std::make_unique(7, 11) + ); + { // -.* + // - + program.emplace_back( // 7 + std::make_unique(L'-') + ); + { // .* + program.emplace_back( // 8 + std::make_unique(9, 11) + ); + // . + program.emplace_back( // 9 + std::make_unique() + ); + program.emplace_back( + std::make_unique(8) + ); + } // .* + } // -.* + } // (-.*)? + // $ + program.emplace_back( // 11 + std::make_unique() + ); + program.emplace_back( + std::make_unique() + ); + } // ^(en|EN)(-.*)?$ + + return program; +} + +const std::vector< + std::unique_ptr +> kIsBcp47ForEnglishProgram = ConstructIsBcp47ForEnglishProgram(); + +} // namespace pattern +} // namespace aas_3_0 +} // namespace aas_core + +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. diff --git a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.hpp b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.hpp new file mode 100644 index 000000000..3a181b6a5 --- /dev/null +++ b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/pattern.hpp @@ -0,0 +1,192 @@ +#ifndef AAS_CORE_AAS_3_0_PATTERN_GUARD_ +#define AAS_CORE_AAS_3_0_PATTERN_GUARD_ + +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. + +#include "aas_core/aas_3_0/revm.hpp" + +#pragma warning(push, 0) +#include +#include +#pragma warning(pop) + +namespace aas_core { +namespace aas_3_0 { + +/** + * \defgroup pattern Provide patterns to be matched using a multi-threaded virtual machine. + * + * The instructions should be supplied to aas_core::aas_3_0::revm::Match. While + * we could have theoretically included this code in verification, we decided to keep + * it separate for readability. You are not expected to use this module directly. + * @{ + */ +namespace pattern { + +extern const std::vector< + std::unique_ptr +> kMatchesIdShortProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesVersionTypeProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesRevisionTypeProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsDateTimeUtcProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesMimeTypeProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesRfc8089PathProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesBcp47Program; + +extern const std::vector< + std::unique_ptr +> kMatchesXmlSerializableStringProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsAnyUriProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsBase64BinaryProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsBooleanProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsDateProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsDateTimeProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsDecimalProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsDoubleProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsDurationProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsFloatProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsGDayProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsGMonthProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsGMonthDayProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsGYearProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsGYearMonthProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsHexBinaryProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsTimeProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsIntegerProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsLongProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsIntProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsShortProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsByteProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsNonNegativeIntegerProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsPositiveIntegerProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsUnsignedLongProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsUnsignedIntProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsUnsignedShortProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsUnsignedByteProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsNonPositiveIntegerProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsNegativeIntegerProgram; + +extern const std::vector< + std::unique_ptr +> kMatchesXsStringProgram; + +extern const std::vector< + std::unique_ptr +> kIsBcp47ForEnglishProgram; + +} // namespace pattern +/**@}*/ + +} // namespace aas_3_0 +} // namespace aas_core + +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. + +#endif // AAS_CORE_AAS_3_0_PATTERN_GUARD_ diff --git a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.cpp b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.cpp new file mode 100644 index 000000000..a0e62e26b --- /dev/null +++ b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.cpp @@ -0,0 +1,863 @@ +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. + +#include "aas_core/aas_3_0/common.hpp" +#include "aas_core/aas_3_0/revm.hpp" + +#pragma warning(push, 0) +#include +#include +#include +#pragma warning(pop) + +namespace aas_core { +namespace aas_3_0 { +namespace revm { + +/** + * Represent the character such that it can be printed in the console. + * + * To that end, we escape the character if it is out of the printable ASCII set. + * + * This function is mostly meant for debugging purposes. + */ +std::string RepresentWCharacter(wchar_t character) { + switch (character) { + case L'\\':return "\\\\"; + case L'"':return "\\\""; + case L'\'':return "\\'"; + case L'\t':return "\\t"; + case L'\n':return "\\n"; + case L'\r':return "\\r"; + default: break; + } + + if (26 <= character && character <= 126) { + return std::string(1, static_cast(character)); + } + + static const char* digits = "0123456789ABCDEF"; + size_t digit_count = sizeof(wchar_t) * 2; + + std::string result; + result.resize(digit_count + 2); + result[0] = L'\\'; + result[1] = L'u'; + + for (size_t i = 0, j = (digit_count - 1) * 4; i < digit_count; ++i, j -= 4) { + const size_t digit_i = (character >> j) & 0x0f; + result[i + 2] = digits[digit_i]; + } + + return result; +} + +/** + * Represent the wide string for debugging purposes where it is printed to the console. + * + * To that end, we escape the individual characters if they are out of printable ASCII + * set. + */ +std::string RepresentWString(const std::wstring& text) { + std::vector parts; + parts.reserve(text.size()); + for (const wchar_t character : text) { + parts.emplace_back(RepresentWCharacter(character)); + } + + size_t size = 0; + for (const std::string& part : parts) { + size += part.size(); + } + + std::string result; + result.reserve(size); + for (const std::string& part : parts) { + result.append(part); + } + return result; +} + +InstructionChar::InstructionChar( + wchar_t a_character +) : + character(a_character) { + // Intentionally empty. +} + +InstructionKind InstructionChar::kind() const { + return InstructionKind::Char; +} + +std::string to_string(const InstructionChar& instruction) { + return common::Concat( + "char '", + RepresentWCharacter(instruction.character), + "'" + ); +} + +Range::Range( + wchar_t a_first, + wchar_t a_last +) : + first(a_first), + last(a_last) { + // NOTE (mristin): + // We are aware that exceptions in constructors should be avoided to prevent + // bug related to uninitialized object state. However, in this case, we do not + // see any risk for such a mistake. + if (a_first > a_last) { + throw std::invalid_argument( + common::Concat( + "The first character in a character range, ", + RepresentWCharacter(a_first), + ", is larger than the last character in the range, ", + RepresentWCharacter(a_last) + ) + ); + } +} + +std::string to_string(const Range& range) { + if (range.first == range.last) { + return RepresentWCharacter(range.first); + } + + return common::Concat( + RepresentWCharacter(range.first), + "-", + RepresentWCharacter(range.last) + ); +} + +InstructionSet::InstructionSet( + std::vector a_ranges +) : + ranges(std::move(a_ranges)) { + // NOTE (mristin): + // We are aware that exceptions in constructors should be avoided to prevent + // bug related to uninitialized object state. However, in this case, we do not + // see any risk for such a mistake. + if (ranges.empty()) { + throw std::invalid_argument( + "Unexpected NotSet instruction with empty ranges" + ); + } + + for (size_t i = 1; i < ranges.size(); ++i) { + if (ranges[i - 1].last >= ranges[i].first) { + throw std::invalid_argument( + common::Concat( + "The ranges for an InstructionSet are unexpectedly either " + "not sorted or overlapping. The range at index ", + std::to_string(i - 1), + " is ", + to_string(ranges[i - 1]), + " and the range at index ", + std::to_string(i), + " is ", + to_string(ranges[i]) + ) + ); + } + } +} + +InstructionKind InstructionSet::kind() const { + return InstructionKind::Set; +} + +std::string to_string(const InstructionSet& instruction) { + std::stringstream ss; + ss << "set '"; + + for (const auto& range : instruction.ranges) { + ss << to_string(range); + } + + ss << "'"; + return ss.str(); +} + +InstructionNotSet::InstructionNotSet( + std::vector a_ranges +) : + ranges(std::move(a_ranges)) { + // NOTE (mristin): + // We are aware that exceptions in constructors should be avoided to prevent + // bug related to uninitialized object state. However, in this case, we do not + // see any risk for such a mistake. + if (ranges.empty()) { + throw std::invalid_argument( + "Unexpected NotSet instruction with empty ranges" + ); + } + + for (size_t i = 1; i < ranges.size(); ++i) { + if (ranges[i - 1].last >= ranges[i].first) { + throw std::invalid_argument( + common::Concat( + "The ranges for an InstructionNotSet are unexpectedly either " + "not sorted or overlapping. The range at index ", + std::to_string(i - 1), + " is ", + to_string(ranges[i - 1]), + " and the range at index ", + std::to_string(i), + " is ", + to_string(ranges[i]) + ) + ); + } + } +} + +InstructionKind InstructionNotSet::kind() const { + return InstructionKind::NotSet; +} + +std::string to_string(const InstructionNotSet& instruction) { + std::stringstream ss; + ss << "not-set '"; + + for (const auto& range : instruction.ranges) { + ss << to_string(range); + } + + ss << "'"; + return ss.str(); +} + +InstructionKind InstructionAny::kind() const { + return InstructionKind::Any; +} + +std::string to_string(const InstructionAny&) { + return "any"; +} + +InstructionKind InstructionMatch::kind() const { + return InstructionKind::Match; +} + +std::string to_string(const InstructionMatch&) { + return "match"; +} + +InstructionJump::InstructionJump( + size_t a_target +) : + target(a_target) { + // Intentionally empty. +} + +InstructionKind InstructionJump::kind() const { + return InstructionKind::Jump; +} + +std::string to_string(const InstructionJump& instruction) { + return common::Concat( + "jump ", + std::to_string(instruction.target) + ); +} + +InstructionSplit::InstructionSplit( + size_t a_first_target, + size_t a_second_target +) : + first_target(a_first_target), + second_target(a_second_target) { + // Intentionally empty. +} + +InstructionKind InstructionSplit::kind() const { + return InstructionKind::Split; +} + +std::string to_string(const InstructionSplit& instruction) { + return common::Concat( + "split ", + std::to_string(instruction.first_target), + ", ", + std::to_string(instruction.second_target) + ); +} + +InstructionKind InstructionEnd::kind() const { + return InstructionKind::End; +} + +std::string to_string(const InstructionEnd&) { + return "end"; +} + +std::string to_string(const Instruction& instruction) { + switch (instruction.kind()) { + case InstructionKind::Char: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionChar& + >(instruction) + ); + + case InstructionKind::Set: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionSet& + >(instruction) + ); + + case InstructionKind::NotSet: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionNotSet& + >(instruction) + ); + + case InstructionKind::Any: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionAny& + >(instruction) + ); + + case InstructionKind::Match: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionMatch& + >(instruction) + ); + + case InstructionKind::Jump: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionJump& + >(instruction) + ); + + case InstructionKind::Split: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionSplit& + >(instruction) + ); + + case InstructionKind::End: + return to_string( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionEnd& + >(instruction) + ); + + default: + throw std::logic_error( + common::Concat( + "Unhandled instruction kind: ", + std::to_string( + static_cast(instruction.kind()) + ) + ) + ); + } +} + +std::string to_string( + const std::vector >& instructions +) { + std::stringstream ss; + for (size_t i = 0; i < instructions.size(); ++i) { + ss + << std::setw(4) << i << ": " + << to_string(*instructions[i]) << std::endl; + } + + return ss.str(); +} + +bool CharacterInRanges( + const std::vector& ranges, + wchar_t character +) { + if (ranges.empty()) { + return false; + } + + if (ranges.size() == 1) { + return (ranges[0].first <= character && character <= ranges[0].last); + } + + // Binary search + size_t begin = 0; + size_t end = ranges.size(); + + while (true) { + if (begin == end) { + return false; + } + + // NOTE (mristin): + // Most implementations of the binary search are buggy, see: + // https://en.wikipedia.org/wiki/Binary_search_algorithm#Implementation_issues. + // + // We try to avert some of the bugs by explicitly handling the case where there + // are at most 3 elements in the segment, so we stop here instead of proceeding + // recursively. + if (end - begin <= 3) { + for (size_t i = begin; i < end; ++i) { + const Range& range = ranges[i]; + if (range.first <= character && character <= range.last) { + return true; + } + } + return false; + } + + const size_t middle = (begin + end) / 2; + const Range& range = ranges[middle]; + if (character < range.first) { + end = middle; + } else if (character > range.last) { + begin = middle; + } else { + return true; + } + } +} + +/** + * Keep track of the threads currently being executed. + */ +class ThreadList { + public: + explicit ThreadList(size_t program_size) { + has_.resize(program_size, false); + items_.reserve(program_size); + } + + /** + * Add a new thread for the given program counter if it is not already in the list. + */ + void Spawn(size_t program_counter) { + #ifdef DEBUG + if (program_counter >= program_size_) { + throw std::invalid_argument( + common::Concat( + "Unexpected spawning of a thread at the program counter ", + std::to_string(program_counter), + " since the program size was indicated to be ", + std::to_string(program_size_) + ) + ); + } + #endif + + if (has_[program_counter]) { + return; + } + + has_[program_counter] = true; + items_.push_back(program_counter); + } + + bool Empty() const { + return items_.empty(); + } + + /** + * Pop the thread from the back, returning its program counter. + * + * The order of the threads is not guaranteed. + */ + size_t Pop() { + #ifdef DEBUG + if (items_.empty()) { + throw std::logic_error( + "You tried to pop from an empty thread list." + ); + } + #endif + + const size_t program_counter = items_.back(); + items_.pop_back(); + has_[program_counter] = false; + return program_counter; + } + + /** + * Clear the thread list, keeping its memory capacity. + */ + void Clear() { + std::fill(has_.begin(), has_.end(), false); + items_.clear(); + } + + /** + * Return the program counters corresponding to the spawned threads. + */ + const std::vector& Items() const { + return items_; + }; + + private: + /** + * Keep track of the program counters corresponding to the threads so that we can + * avoid the duplicate threads. + */ + std::vector has_; + + /** + * Keep track of the active threads. + */ + std::vector items_; +}; + +std::string to_string(const ThreadList& thread_list) { + if (thread_list.Empty()) { + return "[]"; + } + + std::vector items(thread_list.Items()); + std::sort(items.begin(), items.end()); + + std::stringstream ss; + ss << "["; + ss << std::to_string(items[0]); + + for (size_t i = 1; i < items.size(); ++i) { + ss << ", " << items[i]; + } + ss << "]"; + + return ss.str(); +} + +/** + * Try to match the program against the text. + * + * @return true if the text matches + */ +bool Match( + const std::vector >& program, + const std::wstring& text +) { + if (program.empty()) { + return false; + } + + // NOTE (mristin): + // We validate at the beginning so that we can avoid checks in + // the instruction loops. + for (size_t i = 0; i < program.size(); ++i) { + const Instruction& instruction = *program[i]; + + switch (instruction.kind()) { + case InstructionKind::Jump: { + const auto& instruction_jump( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionJump& + >( + instruction + ) + ); + + if (instruction_jump.target >= program.size()) { + throw std::invalid_argument( + common::Concat( + "Unexpected jump beyond the end of the program. Program has ", + std::to_string(program.size()), + " instruction(s), but the instruction ", + std::to_string(i), + " wants to jump to ", + std::to_string(instruction_jump.target) + ) + ); + } + break; + } + + case InstructionKind::Split: { + const auto& instruction_split( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionSplit& + >( + instruction + ) + ); + + if (instruction_split.first_target >= program.size()) { + throw std::invalid_argument( + common::Concat( + "Unexpected split & jump beyond the end of the program. Program has ", + std::to_string(program.size()), + " instruction(s), but the instruction ", + std::to_string(i), + " wants to split and make the first jump to ", + std::to_string(instruction_split.first_target) + ) + ); + } + + if (instruction_split.second_target >= program.size()) { + throw std::invalid_argument( + common::Concat( + "Unexpected split & jump beyond the end of the program. Program has ", + std::to_string(program.size()), + " instruction(s), but the instruction ", + std::to_string(i), + " wants to split and make the second jump to ", + std::to_string(instruction_split.second_target) + ) + ); + } + + break; + } + + default: + continue; + } + } + + // NOTE (mristin): + // See: https://swtch.com/~rsc/regexp/regexp2.html, + // Section "Thompson's Implementation". + + std::unique_ptr clist(std::make_unique(program.size())); + std::unique_ptr nlist(std::make_unique(program.size())); + + clist->Spawn(0); + + for (const wchar_t character : text) { + #ifdef DEBUG + if (!nlist->Empty()) { + throw std::logic_error( + "Expected the list of next-to-be-executed threads to be empty, " + "but it was not." + ); + } + #endif + + while (!clist->Empty()) { + const size_t program_counter = clist->Pop(); + + #ifdef DEBUG + if (program_counter >= program.size()) { + throw std::logic_error( + common::Concat( + "Unexpected program counter beyond the program. The program size was ", + std::to_string(program.size()), + ", while the program counter of a thread was ", + std::to_string(program_counter) + ) + ); + } + #endif + + const Instruction& instruction = *program[program_counter]; + + switch (instruction.kind()) { + case InstructionKind::Char: { + const auto& instruction_char( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionChar& + >(instruction) + ); + + if (character != instruction_char.character) { + // The matching failed for this thread. + break; + } + + nlist->Spawn(program_counter + 1); + break; + } + + case InstructionKind::Set: { + const auto& instruction_set( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionSet& + >(instruction) + ); + + if (!CharacterInRanges(instruction_set.ranges, character)) { + // The matching failed for this thread. + break; + } + + nlist->Spawn(program_counter + 1); + break; + } + + case InstructionKind::NotSet: { + const auto& instruction_not_set( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionNotSet& + >(instruction) + ); + + if (CharacterInRanges(instruction_not_set.ranges, character)) { + // The matching failed for this thread. + break; + } + + nlist->Spawn(program_counter + 1); + break; + } + + case InstructionKind::Any: { + // NOTE (mristin): + // We simply proceed to the next instruction at the next character without + // any checks. + nlist->Spawn(program_counter + 1); + break; + } + + case InstructionKind::Match: + return true; + + case InstructionKind::Jump: { + const auto& instruction_jump( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionJump& + >(instruction) + ); + + clist->Spawn(instruction_jump.target); + break; + } + + case InstructionKind::Split: { + const auto& instruction_split( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionSplit& + >(instruction) + ); + + clist->Spawn(instruction_split.first_target); + clist->Spawn(instruction_split.second_target); + break; + } + + case InstructionKind::End: { + // The matching failed for this thread as we have just consumed + // a character. + break; + } + + default: + throw std::logic_error( + common::Concat( + "Unhandled instruction kind: ", + std::to_string( + static_cast(instruction.kind()) + ) + ) + ); + } + } + + std::swap(clist, nlist); + nlist->Clear(); + } + + // NOTE (mristin): + // We need to process any pending jumps, splits and matches even tough there are + // no more characters to consume. + while (!clist->Empty()) { + const size_t program_counter = clist->Pop(); + + #ifdef DEBUG + if (program_counter >= program.size()) { + throw std::logic_error( + common::Concat( + "Unexpected program counter beyond the program. The program size was ", + std::to_string(program.size()), + ", while the program counter of a thread was ", + std::to_string(program_counter) + ) + ); + } + #endif + + const Instruction& instruction = *program[program_counter]; + + switch (instruction.kind()) { + case InstructionKind::Char: { // NOLINT(bugprone-branch-clone) + // We reached the end-of-input so there are no characters to be matched. + // This thread needs therefore to die. + break; + } + + case InstructionKind::Set: { + // We reached the end-of-input so there are no character sets to be matched. + // This thread needs therefore to die. + break; + } + + case InstructionKind::NotSet: { + // We reached the end-of-input so there are no character sets to be matched. + // This thread needs therefore to die. + break; + } + + case InstructionKind::Any: { + // We reached the end-of-input so there are no characters to be matched. + // This thread needs therefore to die. + break; + } + + case InstructionKind::Match: + return true; + + case InstructionKind::Jump: { + const auto& instruction_jump( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionJump& + >(instruction) + ); + + clist->Spawn(instruction_jump.target); + break; + } + + case InstructionKind::Split: { + const auto& instruction_split( + static_cast< // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast) + const InstructionSplit& + >(instruction) + ); + + clist->Spawn(instruction_split.first_target); + clist->Spawn(instruction_split.second_target); + break; + } + + case InstructionKind::End: { + // We reached the end-of-input so we match and move to the next instruction. + clist->Spawn(program_counter + 1); + break; + } + + default: + throw std::logic_error( + common::Concat( + "Unhandled instruction kind: ", + std::to_string( + static_cast(instruction.kind()) + ) + ) + ); + } + } + + return false; +} + +} // namespace revm +} // namespace aas_3_0 +} // namespace aas_core + +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. diff --git a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.hpp b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.hpp new file mode 100644 index 000000000..8ff9a99a9 --- /dev/null +++ b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/revm.hpp @@ -0,0 +1,215 @@ +#ifndef AAS_CORE_AAS_3_0_REVM_GUARD_ +#define AAS_CORE_AAS_3_0_REVM_GUARD_ + +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. + +#pragma warning(push, 0) +#include +#include +#include +#include +#pragma warning(pop) + +namespace aas_core { +namespace aas_3_0 { + +/** + * \defgroup revm Match regular expressions using a multi-threaded virtual machine. + * + * The implementation in the standard library has exponential time complexity, so it was + * a major blocker for most of the practical inputs. For example, see this bug report: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93502 + * + * This implementation is based on Ken Thompson's approach which uses a virtual + * machine to match regular expressions. The original technique has been + * published in: + * Thompson, K., "Regular expression search algorithm", ACM 11(6) (June 1968) + * + * We followed a very clear and concise blog post which described in detail: + * https://swtch.com/~rsc/regexp/regexp2.html + * + * The ideas for additional instructions were taken from: + * https://www.codeproject.com/Articles/5256833/Regex-as-a-Tiny-Threaded-Virtual-Machine + * @{ + */ +namespace revm { + +enum class InstructionKind : std::uint8_t { + Char, + Set, + NotSet, + Any, + Match, + Jump, + Split, + End +}; + +/** + * Represent an instruction of the virtual machine. + */ +struct Instruction { + // NOTE (mristin): + // We avoid RTTI for performance reasons, and use our own enumerator instead. + virtual InstructionKind kind() const = 0; + + virtual ~Instruction() = default; +}; + +/** + * Match a single character. + * + * If the character on the String Pointer does not match the `character`, stop this + * thread as it failed. Otherwise, move the String Pointer to the next character, + * and the Program Counter to the next instruction. + */ +struct InstructionChar : Instruction { + wchar_t character; + + explicit InstructionChar(wchar_t a_character); + InstructionKind kind() const override; + ~InstructionChar() override = default; +}; + +std::string to_string(const InstructionChar& instruction); + +/** + * Define a character range. + */ +struct Range { + wchar_t first; + wchar_t last; + + Range(wchar_t a_first, wchar_t a_last); +}; + +std::string to_string(const Range& range); + +/** + * Check whether the character is in any of the given character ranges. + * + * @return true if the character is in any of the ranges + */ +bool CharacterInRanges( + const std::vector& ranges, + wchar_t character +); + +/** + * Match a set of characters. + * + * If the character on the String Pointer *is not* in the given set, stop this + * thread as it failed. Otherwise, move the String Pointer to the next character, + * and the Program Counter to the next instruction. + */ +struct InstructionSet : Instruction { + std::vector ranges; + + explicit InstructionSet(std::vector a_ranges); + InstructionKind kind() const override; + ~InstructionSet() override = default; +}; + +std::string to_string(const InstructionSet& instruction); + +/** + * Match an out-of-set character. + * + * If the character on the String Pointer *is* in the given set, stop this + * thread as it failed. Otherwise, move the String Pointer to the next character, + * and the Program Counter to the next instruction. + */ +struct InstructionNotSet : Instruction { + std::vector ranges; + + explicit InstructionNotSet(std::vector a_ranges); + InstructionKind kind() const override; + ~InstructionNotSet() override = default; +}; + +std::string to_string(const InstructionNotSet& instruction); + +/** + * Match any character. + */ +struct InstructionAny : Instruction { + InstructionKind kind() const override; + ~InstructionAny() override = default; +}; + +std::string to_string(const InstructionAny&); + +/** + * Stop this thread and signal that we found a match. + */ +struct InstructionMatch : Instruction { + InstructionKind kind() const override; + ~InstructionMatch() override = default; +}; + +std::string to_string(const InstructionMatch&); + +/** + * Jump to the indicated position in the program. + */ +struct InstructionJump : Instruction { + size_t target; + + explicit InstructionJump(size_t a_target); + InstructionKind kind() const override; + ~InstructionJump() override = default; +}; + +std::string to_string(const InstructionJump& instruction); + +/** + * Split the program in two threads, both jumping to different locations. The string + * pointer is kept as-is. + */ +struct InstructionSplit : Instruction { + size_t first_target; + size_t second_target; + + explicit InstructionSplit(size_t a_first_target, size_t a_second_target); + InstructionKind kind() const override; + ~InstructionSplit() override = default; +}; + +std::string to_string(const InstructionSplit& instruction); + +/** + * Match the end-of-input. + */ +struct InstructionEnd : Instruction { + InstructionKind kind() const override; + ~InstructionEnd() override = default; +}; + +std::string to_string(const InstructionEnd&); + +std::string to_string(const Instruction& instruction); + +std::string to_string( + const std::vector >& instructions +); + +/** + * Try to match the program against the text. + * @return true if the text matches + */ +bool Match( + const std::vector >& program, + const std::wstring& text +); + +} // namespace revm +/**@}*/ + +} // namespace aas_3_0 +} // namespace aas_core + +// This code has been automatically generated by aas-core-codegen. +// Do NOT edit or append. + +#endif // AAS_CORE_AAS_3_0_REVM_GUARD_ diff --git a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.cpp b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.cpp index f871c0820..da2c34a66 100644 --- a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.cpp +++ b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.cpp @@ -3,11 +3,12 @@ #include "aas_core/aas_3_0/common.hpp" #include "aas_core/aas_3_0/constants.hpp" +#include "aas_core/aas_3_0/pattern.hpp" +#include "aas_core/aas_3_0/revm.hpp" #include "aas_core/aas_3_0/verification.hpp" #pragma warning(push, 0) #include -#include #include #pragma warning(pop) @@ -91,138 +92,369 @@ std::unique_ptr AlwaysDoneVerificator::Clone() const { // region Verification functions -std::wregex ConstructMatchesIdShort() { - std::wstring pattern = L"^[a-zA-Z][a-zA-Z0-9_]*$"; - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesIdShort = ConstructMatchesIdShort(); - bool MatchesIdShort( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesIdShort + return revm::Match( + pattern::kMatchesIdShortProgram, + text ); } -std::wregex ConstructMatchesVersionType() { - std::wstring pattern = L"^(0|[1-9][0-9]*)$"; - return std::wregex( - pattern +bool MatchesVersionType( + const std::wstring& text +) { + return revm::Match( + pattern::kMatchesVersionTypeProgram, + text ); } -const std::wregex kRegexMatchesVersionType = ConstructMatchesVersionType(); - -bool MatchesVersionType( +bool MatchesRevisionType( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesVersionType + return revm::Match( + pattern::kMatchesRevisionTypeProgram, + text ); } -std::wregex ConstructMatchesRevisionType() { - std::wstring pattern = L"^(0|[1-9][0-9]*)$"; - return std::wregex( - pattern +bool MatchesXsDateTimeUtc( + const std::wstring& text +) { + return revm::Match( + pattern::kMatchesXsDateTimeUtcProgram, + text ); } -const std::wregex kRegexMatchesRevisionType = ConstructMatchesRevisionType(); +std::vector< + std::unique_ptr +> ConstructMatchesXsDatePrefixProgram() { + std::vector > program; + + { // ^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31).*$ + { // -?[0-9]+ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // [0-9]+ + // [0-9] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2, 4) + ); + } // [0-9]+ + } // -?[0-9]+ + // - + program.emplace_back( // 4 + std::make_unique(L'-') + ); + { // 0[1-9]|1[0-2] + program.emplace_back( + std::make_unique(6, 9) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 6 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(11) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 9 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // 0[1-9]|1[0-2] + // - + program.emplace_back( // 11 + std::make_unique(L'-') + ); + { // 0[0-9]|1[0-9]|2[0-9]|30|31 + program.emplace_back( + std::make_unique(13, 16) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 13 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 16 + std::make_unique(17, 20) + ); + { // 1[0-9] + // 1 + program.emplace_back( // 17 + std::make_unique(L'1') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 1[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 20 + std::make_unique(21, 24) + ); + { // 2[0-9] + // 2 + program.emplace_back( // 21 + std::make_unique(L'2') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 24 + std::make_unique(25, 28) + ); + { // 30 + // 3 + program.emplace_back( // 25 + std::make_unique(L'3') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 30 + program.emplace_back( + std::make_unique(30) + ); + { // 31 + // 3 + program.emplace_back( // 28 + std::make_unique(L'3') + ); + // 1 + program.emplace_back( + std::make_unique(L'1') + ); + } // 31 + } // 0[0-9]|1[0-9]|2[0-9]|30|31 + program.emplace_back( // 30 + std::make_unique() + ); + } // ^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31).*$ -bool MatchesRevisionType( - const std::wstring& text -) { - return std::regex_search( - text, - kRegexMatchesRevisionType - ); -} - -std::wregex ConstructMatchesXsDateTimeUtc() { - std::wstring digit = L"[0-9]"; - std::wstring year_frag = common::Concat( - L"-?(([1-9]", - digit, - digit, - digit, - L"+)|(0", - digit, - digit, - digit, - L"))" - ); - std::wstring month_frag = L"((0[1-9])|(1[0-2]))"; - std::wstring day_frag = common::Concat( - L"((0[1-9])|([12]", - digit, - L")|(3[01]))" - ); - std::wstring hour_frag = common::Concat( - L"(([01]", - digit, - L")|(2[0-3]))" - ); - std::wstring minute_frag = common::Concat( - L"[0-5]", - digit - ); - std::wstring second_frag = common::Concat( - L"([0-5]", - digit, - L")(\\.", - digit, - L"+)?" - ); - std::wstring end_of_day_frag = L"24:00:00(\\.0+)?"; - std::wstring timezone_frag = L"(Z|\\+00:00|-00:00)"; - std::wstring date_time_lexical_rep = common::Concat( - year_frag, - L"-", - month_frag, - L"-", - day_frag, - L"T((", - hour_frag, - L":", - minute_frag, - L":", - second_frag, - L")|", - end_of_day_frag, - L")", - timezone_frag - ); - std::wstring pattern = common::Concat( - L"^", - date_time_lexical_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsDateTimeUtc = ConstructMatchesXsDateTimeUtc(); + return program; +} -bool MatchesXsDateTimeUtc( +const std::vector< + std::unique_ptr +> kMatchesXsDatePrefixProgram = ConstructMatchesXsDatePrefixProgram(); + +bool MatchesXsDatePrefix( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsDateTimeUtc + return revm::Match( + kMatchesXsDatePrefixProgram, + text ); } -const std::wregex kRegexDatePrefix( - L"^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31)" -); +/** + * Represent a parsed date from a date string where we ignore the offset. + */ +struct MatchedDatePrefix { + std::wstring year; + std::wstring month; + std::wstring day; + + MatchedDatePrefix( + std::wstring a_year, + std::wstring a_month, + std::wstring a_day + ) : + year(std::move(a_year)), + month(std::move(a_month)), + day(std::move(a_day)) { + // Intentionally empty. + } +}; // MatchedDatePrefix + +/** + * Parse the date from the given text where the text is supposed to be an xs:date or + * an xs:dateTime. + */ +MatchedDatePrefix ParseXsDatePrefix(const std::wstring& text) { + size_t year_end = 0; + if (text.size() < 5) { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not: ", + text + ) + ) + ); + } + + if (text[0] == L'-') { + ++year_end; + } + + while (true) { + if (year_end >= text.size()) { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not: ", + text + ) + ) + ); + } + + if (std::isdigit(text[year_end])) { + ++year_end; + } else if (text[year_end] == '-') { + break; + } else { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not. ", + L"We encountered an unexpected character while parsing the year: ", + std::wstring(text[year_end], 1), + L"; the text was: ", + text + ) + ) + ); + } + } + + const std::wstring year_str = text.substr(0, year_end); + + size_t month_end = year_end + 1; + while (true) { + if (month_end >= text.size()) { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not: ", + text + ) + ) + ); + } + + if (std::isdigit(text[month_end])) { + ++month_end; + } else if (text[month_end] == '-') { + break; + } else { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not. ", + L"We encountered an unexpected character while parsing the month: ", + std::wstring(text[month_end], 1), + L"; the text was: ", + text + ) + ) + ); + } + } + + std::wstring month_str = text.substr(year_end + 1, month_end - year_end - 1); + + size_t day_end = month_end + 1; + + while (true) { + if (day_end == text.size()) { + break; + } + + if (std::isdigit(text[day_end])) { + ++day_end; + } else if( + text[day_end] == L'-' + || text[day_end] == L'+' + || text[day_end] == L'Z' + || text[day_end] == L'T' + ) { + // We encountered a valid suffix for xs:date offset or time in xs::dateTime. + break; + } else { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not. ", + L"We encountered an unexpected character while parsing the day: ", + std::wstring(text[day_end], 1), + L"; the text was: ", + text + ) + ) + ); + } + } + + std::wstring day_str = text.substr(month_end + 1, day_end - month_end - 1); + + return MatchedDatePrefix(year_str, month_str, day_str); +} /** * Determine the sign of the given year as text. @@ -295,16 +527,13 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { // We can not use date functions from the operation system as they do not // handle years BCE (*e.g.*, `-0003-01-02`). - std::wsmatch match; - const bool matched = std::regex_match(text, match, kRegexDatePrefix); - - if (!matched) { + if (!MatchesXsDatePrefix(text)) { return false; } // NOTE (mristin): // We need to match the prefix as zone offsets are allowed in the dates. Optimally, - // we would re-use the pattern matching from `MatchesXsDate`, but this + // we would re-use the pattern matching from `MatchesXsDatePrefix`, but this // would make the code generation and constraint inference for schemas much more // difficult. Hence, we sacrifice the efficiency a bit for the clearer code & code // generation. @@ -315,9 +544,9 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { // we simply clip the year to the last four relevant digits for the computation of // leap years. - const std::wstring year_str = match[1].str(); + const MatchedDatePrefix match = ParseXsDatePrefix(text); - const int era = DetermineEra(year_str); + const int era = DetermineEra(match.year); // NOTE (mristin): // We do not accept year zero, see the note at: @@ -329,14 +558,14 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { std::wstring last_four_year_digits; const size_t year_start = (era < 0) ? 1 : 0; - const size_t end = year_str.size(); + const size_t end = match.year.size(); size_t start = end - 4; if (start < year_start) { start = year_start; } const std::wstring at_most_last_four_year_digits( - year_str.substr(start, 4) + match.year.substr(start, 4) ); int year_suffix = era * std::stoi(at_most_last_four_year_digits); @@ -362,8 +591,8 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { is_leap_year = false; } - const int month = std::stoi(match[2].str()); - const int day = std::stoi(match[3].str()); + const int month = std::stoi(match.month); + const int day = std::stoi(match.day); if (day <= 0) { return false; @@ -414,334 +643,30 @@ bool IsXsDateTimeUtc( return IsXsDateWithoutOffset(date); } -std::wregex ConstructMatchesMimeType() { - std::wstring tchar = L"[!#$%&'*+\\-.^_`|~0-9a-zA-Z]"; - std::wstring token = common::Concat( - L"(", - tchar, - L")+" - ); - std::wstring type = token; - std::wstring subtype = token; - std::wstring ows = L"[ \\t]*"; - std::wstring obs_text = L"[\\x80-\\xff]"; - std::wstring qd_text = common::Concat( - L"([\\t !#-\\[\\]-~]|", - obs_text, - L")" - ); - std::wstring quoted_pair = common::Concat( - L"\\\\([\\t !-~]|", - obs_text, - L")" - ); - std::wstring quoted_string = common::Concat( - L"\"(", - qd_text, - L"|", - quoted_pair, - L")*\"" - ); - std::wstring parameter = common::Concat( - token, - L"=(", - token, - L"|", - quoted_string, - L")" - ); - std::wstring media_type = common::Concat( - L"^", - type, - L"/", - subtype, - L"(", - ows, - L";", - ows, - parameter, - L")*$" - ); - return std::wregex( - media_type - ); -} - -const std::wregex kRegexMatchesMimeType = ConstructMatchesMimeType(); - bool MatchesMimeType( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesMimeType - ); -} - -std::wregex ConstructMatchesRfc8089Path() { - std::wstring h16 = L"[0-9A-Fa-f]{1,4}"; - std::wstring dec_octet = L"([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"; - std::wstring ipv4address = common::Concat( - dec_octet, - L"\\.", - dec_octet, - L"\\.", - dec_octet, - L"\\.", - dec_octet - ); - std::wstring ls32 = common::Concat( - L"(", - h16, - L":", - h16, - L"|", - ipv4address, - L")" - ); - std::wstring ipv6address = common::Concat( - L"((", - h16, - L":){6}", - ls32, - L"|::(", - h16, - L":){5}", - ls32, - L"|(", - h16, - L")?::(", - h16, - L":){4}", - ls32, - L"|((", - h16, - L":)?", - h16, - L")?::(", - h16, - L":){3}", - ls32, - L"|((", - h16, - L":){0,2}", - h16, - L")?::(", - h16, - L":){2}", - ls32, - L"|((", - h16, - L":){0,3}", - h16, - L")?::", - h16, - L":", - ls32, - L"|((", - h16, - L":){0,4}", - h16, - L")?::", - ls32, - L"|((", - h16, - L":){0,5}", - h16, - L")?::", - h16, - L"|((", - h16, - L":){0,6}", - h16, - L")?::)" - ); - std::wstring unreserved = L"[a-zA-Z0-9\\-._~]"; - std::wstring sub_delims = L"[!$&'()*+,;=]"; - std::wstring ipvfuture = common::Concat( - L"[vV][0-9A-Fa-f]+\\.(", - unreserved, - L"|", - sub_delims, - L"|:)+" - ); - std::wstring ip_literal = common::Concat( - L"\\[(", - ipv6address, - L"|", - ipvfuture, - L")\\]" - ); - std::wstring pct_encoded = L"%[0-9A-Fa-f][0-9A-Fa-f]"; - std::wstring reg_name = common::Concat( - L"(", - unreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L")*" - ); - std::wstring host = common::Concat( - L"(", - ip_literal, - L"|", - ipv4address, - L"|", - reg_name, - L")" - ); - std::wstring file_auth = common::Concat( - L"(localhost|", - host, - L")" - ); - std::wstring pchar = common::Concat( - L"(", - unreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L"|[:@])" - ); - std::wstring segment_nz = common::Concat( - L"(", - pchar, - L")+" - ); - std::wstring segment = common::Concat( - L"(", - pchar, - L")*" - ); - std::wstring path_absolute = common::Concat( - L"/(", - segment_nz, - L"(/", - segment, - L")*)?" - ); - std::wstring auth_path = common::Concat( - L"(", - file_auth, - L")?", - path_absolute - ); - std::wstring local_path = path_absolute; - std::wstring file_hier_part = common::Concat( - L"(//", - auth_path, - L"|", - local_path, - L")" - ); - std::wstring file_scheme = L"file"; - std::wstring file_uri = common::Concat( - file_scheme, - L":", - file_hier_part - ); - std::wstring pattern = common::Concat( - L"^", - file_uri, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesRfc8089Path = ConstructMatchesRfc8089Path(); + return revm::Match( + pattern::kMatchesMimeTypeProgram, + text + ); +} bool MatchesRfc8089Path( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesRfc8089Path - ); -} - -std::wregex ConstructMatchesBcp47() { - std::wstring alphanum = L"[a-zA-Z0-9]"; - std::wstring singleton = L"[0-9A-WY-Za-wy-z]"; - std::wstring extension = common::Concat( - singleton, - L"(-(", - alphanum, - L"){2,8})+" - ); - std::wstring extlang = L"[a-zA-Z]{3}(-[a-zA-Z]{3}){0,2}"; - std::wstring irregular = L"(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)"; - std::wstring regular = L"(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)"; - std::wstring grandfathered = common::Concat( - L"(", - irregular, - L"|", - regular, - L")" - ); - std::wstring language = common::Concat( - L"([a-zA-Z]{2,3}(-", - extlang, - L")?|[a-zA-Z]{4}|[a-zA-Z]{5,8})" - ); - std::wstring script = L"[a-zA-Z]{4}"; - std::wstring region = L"([a-zA-Z]{2}|[0-9]{3})"; - std::wstring variant = common::Concat( - L"((", - alphanum, - L"){5,8}|[0-9](", - alphanum, - L"){3})" - ); - std::wstring privateuse = common::Concat( - L"[xX](-(", - alphanum, - L"){1,8})+" - ); - std::wstring langtag = common::Concat( - language, - L"(-", - script, - L")?(-", - region, - L")?(-", - variant, - L")*(-", - extension, - L")*(-", - privateuse, - L")?" - ); - std::wstring language_tag = common::Concat( - L"(", - langtag, - L"|", - privateuse, - L"|", - grandfathered, - L")" - ); - std::wstring pattern = common::Concat( - L"^", - language_tag, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesBcp47 = ConstructMatchesBcp47(); + return revm::Match( + pattern::kMatchesRfc8089PathProgram, + text + ); +} bool MatchesBcp47( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesBcp47 + return revm::Match( + pattern::kMatchesBcp47Program, + text ); } @@ -764,849 +689,57 @@ bool QualifierTypesAreUnique( return true; } -std::wregex ConstructMatchesXmlSerializableString() { - static_assert( - sizeof(wchar_t) == 2 || sizeof(wchar_t) == 4, - "Expected either 2 or 4 bytes for wchar_t, but got something else." - ); - - switch (sizeof(wchar_t)) { - case 2: { - std::wstring pattern = L"^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"; - return std::wregex( - pattern - ); - } - - case 4: { - std::wstring pattern = L"^[\\x09\\x0a\\x0d\\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]*$"; - return std::wregex( - pattern - ); - } - - default: - throw std::logic_error( - common::Concat( - "Unexpected size of wchar_t: ", - std::to_string(sizeof(wchar_t)) - ) - ); - } -} - -const std::wregex kRegexMatchesXmlSerializableString = ConstructMatchesXmlSerializableString(); - bool MatchesXmlSerializableString( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXmlSerializableString + return revm::Match( + pattern::kMatchesXmlSerializableStringProgram, + text ); } -std::wregex ConstructMatchesXsAnyUri() { - static_assert( - sizeof(wchar_t) == 2 || sizeof(wchar_t) == 4, - "Expected either 2 or 4 bytes for wchar_t, but got something else." - ); - - switch (sizeof(wchar_t)) { - case 2: { - std::wstring scheme = L"[a-zA-Z][a-zA-Z0-9+\\-.]*"; - std::wstring ucschar = L"([\\xa0-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\uffef]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\ud83e][\\udc00-\\udfff]|\\ud83f[\\udc00-\\udffd]|\\ud840[\\udc00-\\udfff]|[\\ud841-\\ud87e][\\udc00-\\udfff]|\\ud87f[\\udc00-\\udffd]|\\ud880[\\udc00-\\udfff]|[\\ud881-\\ud8be][\\udc00-\\udfff]|\\ud8bf[\\udc00-\\udffd]|\\ud8c0[\\udc00-\\udfff]|[\\ud8c1-\\ud8fe][\\udc00-\\udfff]|\\ud8ff[\\udc00-\\udffd]|\\ud900[\\udc00-\\udfff]|[\\ud901-\\ud93e][\\udc00-\\udfff]|\\ud93f[\\udc00-\\udffd]|\\ud940[\\udc00-\\udfff]|[\\ud941-\\ud97e][\\udc00-\\udfff]|\\ud97f[\\udc00-\\udffd]|\\ud980[\\udc00-\\udfff]|[\\ud981-\\ud9be][\\udc00-\\udfff]|\\ud9bf[\\udc00-\\udffd]|\\ud9c0[\\udc00-\\udfff]|[\\ud9c1-\\ud9fe][\\udc00-\\udfff]|\\ud9ff[\\udc00-\\udffd]|\\uda00[\\udc00-\\udfff]|[\\uda01-\\uda3e][\\udc00-\\udfff]|\\uda3f[\\udc00-\\udffd]|\\uda40[\\udc00-\\udfff]|[\\uda41-\\uda7e][\\udc00-\\udfff]|\\uda7f[\\udc00-\\udffd]|\\uda80[\\udc00-\\udfff]|[\\uda81-\\udabe][\\udc00-\\udfff]|\\udabf[\\udc00-\\udffd]|\\udac0[\\udc00-\\udfff]|[\\udac1-\\udafe][\\udc00-\\udfff]|\\udaff[\\udc00-\\udffd]|\\udb00[\\udc00-\\udfff]|[\\udb01-\\udb3e][\\udc00-\\udfff]|\\udb3f[\\udc00-\\udffd]|\\udb44[\\udc00-\\udfff]|[\\udb45-\\udb7e][\\udc00-\\udfff]|\\udb7f[\\udc00-\\udffd])"; - std::wstring iunreserved = common::Concat( - L"([a-zA-Z0-9\\-._~]|", - ucschar, - L")" - ); - std::wstring pct_encoded = L"%[0-9A-Fa-f][0-9A-Fa-f]"; - std::wstring sub_delims = L"[!$&'()*+,;=]"; - std::wstring iuserinfo = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L"|:)*" - ); - std::wstring h16 = L"[0-9A-Fa-f]{1,4}"; - std::wstring dec_octet = L"([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"; - std::wstring ipv4address = common::Concat( - dec_octet, - L"\\.", - dec_octet, - L"\\.", - dec_octet, - L"\\.", - dec_octet - ); - std::wstring ls32 = common::Concat( - L"(", - h16, - L":", - h16, - L"|", - ipv4address, - L")" - ); - std::wstring ipv6address = common::Concat( - L"((", - h16, - L":){6}", - ls32, - L"|::(", - h16, - L":){5}", - ls32, - L"|(", - h16, - L")?::(", - h16, - L":){4}", - ls32, - L"|((", - h16, - L":)?", - h16, - L")?::(", - h16, - L":){3}", - ls32, - L"|((", - h16, - L":){0,2}", - h16, - L")?::(", - h16, - L":){2}", - ls32, - L"|((", - h16, - L":){0,3}", - h16, - L")?::", - h16, - L":", - ls32, - L"|((", - h16, - L":){0,4}", - h16, - L")?::", - ls32, - L"|((", - h16, - L":){0,5}", - h16, - L")?::", - h16, - L"|((", - h16, - L":){0,6}", - h16, - L")?::)" - ); - std::wstring unreserved = L"[a-zA-Z0-9\\-._~]"; - std::wstring ipvfuture = common::Concat( - L"[vV][0-9A-Fa-f]+\\.(", - unreserved, - L"|", - sub_delims, - L"|:)+" - ); - std::wstring ip_literal = common::Concat( - L"\\[(", - ipv6address, - L"|", - ipvfuture, - L")\\]" - ); - std::wstring ireg_name = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L")*" - ); - std::wstring ihost = common::Concat( - L"(", - ip_literal, - L"|", - ipv4address, - L"|", - ireg_name, - L")" - ); - std::wstring port = L"[0-9]*"; - std::wstring iauthority = common::Concat( - L"(", - iuserinfo, - L"@)?", - ihost, - L"(:", - port, - L")?" - ); - std::wstring ipchar = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L"|[:@])" - ); - std::wstring isegment = common::Concat( - L"(", - ipchar, - L")*" - ); - std::wstring ipath_abempty = common::Concat( - L"(/", - isegment, - L")*" - ); - std::wstring isegment_nz = common::Concat( - L"(", - ipchar, - L")+" - ); - std::wstring ipath_absolute = common::Concat( - L"/(", - isegment_nz, - L"(/", - isegment, - L")*)?" - ); - std::wstring ipath_rootless = common::Concat( - isegment_nz, - L"(/", - isegment, - L")*" - ); - std::wstring ipath_empty = common::Concat( - L"(", - ipchar, - L"){0}" - ); - std::wstring ihier_part = common::Concat( - L"(//", - iauthority, - ipath_abempty, - L"|", - ipath_absolute, - L"|", - ipath_rootless, - L"|", - ipath_empty, - L")" - ); - std::wstring iprivate = L"([\\ue000-\\uf8ff]|\\udb80[\\udc00-\\udfff]|[\\udb81-\\udbbe][\\udc00-\\udfff]|\\udbbf[\\udc00-\\udffd]|\\udbc0[\\udc00-\\udfff]|[\\udbc1-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udffd])"; - std::wstring iquery = common::Concat( - L"(", - ipchar, - L"|", - iprivate, - L"|[/?])*" - ); - std::wstring ifragment = common::Concat( - L"(", - ipchar, - L"|[/?])*" - ); - std::wstring isegment_nz_nc = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L"|@)+" - ); - std::wstring ipath_noscheme = common::Concat( - isegment_nz_nc, - L"(/", - isegment, - L")*" - ); - std::wstring irelative_part = common::Concat( - L"(//", - iauthority, - ipath_abempty, - L"|", - ipath_absolute, - L"|", - ipath_noscheme, - L"|", - ipath_empty, - L")" - ); - std::wstring irelative_ref = common::Concat( - irelative_part, - L"(\\?", - iquery, - L")?(#", - ifragment, - L")?" - ); - std::wstring iri = common::Concat( - scheme, - L":", - ihier_part, - L"(\\?", - iquery, - L")?(#", - ifragment, - L")?" - ); - std::wstring iri_reference = common::Concat( - L"(", - iri, - L"|", - irelative_ref, - L")" - ); - std::wstring pattern = common::Concat( - L"^", - iri_reference, - L"$" - ); - return std::wregex( - pattern - ); - } - - case 4: { - std::wstring scheme = L"[a-zA-Z][a-zA-Z0-9+\\-.]*"; - std::wstring ucschar = L"[\\xa0-\ud7ff\uf900-\ufdcf\ufdf0-\uffef\U00010000-\U0001fffd\U00020000-\U0002fffd\U00030000-\U0003fffd\U00040000-\U0004fffd\U00050000-\U0005fffd\U00060000-\U0006fffd\U00070000-\U0007fffd\U00080000-\U0008fffd\U00090000-\U0009fffd\U000a0000-\U000afffd\U000b0000-\U000bfffd\U000c0000-\U000cfffd\U000d0000-\U000dfffd\U000e1000-\U000efffd]"; - std::wstring iunreserved = common::Concat( - L"([a-zA-Z0-9\\-._~]|", - ucschar, - L")" - ); - std::wstring pct_encoded = L"%[0-9A-Fa-f][0-9A-Fa-f]"; - std::wstring sub_delims = L"[!$&'()*+,;=]"; - std::wstring iuserinfo = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L"|:)*" - ); - std::wstring h16 = L"[0-9A-Fa-f]{1,4}"; - std::wstring dec_octet = L"([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"; - std::wstring ipv4address = common::Concat( - dec_octet, - L"\\.", - dec_octet, - L"\\.", - dec_octet, - L"\\.", - dec_octet - ); - std::wstring ls32 = common::Concat( - L"(", - h16, - L":", - h16, - L"|", - ipv4address, - L")" - ); - std::wstring ipv6address = common::Concat( - L"((", - h16, - L":){6}", - ls32, - L"|::(", - h16, - L":){5}", - ls32, - L"|(", - h16, - L")?::(", - h16, - L":){4}", - ls32, - L"|((", - h16, - L":)?", - h16, - L")?::(", - h16, - L":){3}", - ls32, - L"|((", - h16, - L":){0,2}", - h16, - L")?::(", - h16, - L":){2}", - ls32, - L"|((", - h16, - L":){0,3}", - h16, - L")?::", - h16, - L":", - ls32, - L"|((", - h16, - L":){0,4}", - h16, - L")?::", - ls32, - L"|((", - h16, - L":){0,5}", - h16, - L")?::", - h16, - L"|((", - h16, - L":){0,6}", - h16, - L")?::)" - ); - std::wstring unreserved = L"[a-zA-Z0-9\\-._~]"; - std::wstring ipvfuture = common::Concat( - L"[vV][0-9A-Fa-f]+\\.(", - unreserved, - L"|", - sub_delims, - L"|:)+" - ); - std::wstring ip_literal = common::Concat( - L"\\[(", - ipv6address, - L"|", - ipvfuture, - L")\\]" - ); - std::wstring ireg_name = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L")*" - ); - std::wstring ihost = common::Concat( - L"(", - ip_literal, - L"|", - ipv4address, - L"|", - ireg_name, - L")" - ); - std::wstring port = L"[0-9]*"; - std::wstring iauthority = common::Concat( - L"(", - iuserinfo, - L"@)?", - ihost, - L"(:", - port, - L")?" - ); - std::wstring ipchar = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L"|[:@])" - ); - std::wstring isegment = common::Concat( - L"(", - ipchar, - L")*" - ); - std::wstring ipath_abempty = common::Concat( - L"(/", - isegment, - L")*" - ); - std::wstring isegment_nz = common::Concat( - L"(", - ipchar, - L")+" - ); - std::wstring ipath_absolute = common::Concat( - L"/(", - isegment_nz, - L"(/", - isegment, - L")*)?" - ); - std::wstring ipath_rootless = common::Concat( - isegment_nz, - L"(/", - isegment, - L")*" - ); - std::wstring ipath_empty = common::Concat( - L"(", - ipchar, - L"){0}" - ); - std::wstring ihier_part = common::Concat( - L"(//", - iauthority, - ipath_abempty, - L"|", - ipath_absolute, - L"|", - ipath_rootless, - L"|", - ipath_empty, - L")" - ); - std::wstring iprivate = L"[\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd]"; - std::wstring iquery = common::Concat( - L"(", - ipchar, - L"|", - iprivate, - L"|[/?])*" - ); - std::wstring ifragment = common::Concat( - L"(", - ipchar, - L"|[/?])*" - ); - std::wstring isegment_nz_nc = common::Concat( - L"(", - iunreserved, - L"|", - pct_encoded, - L"|", - sub_delims, - L"|@)+" - ); - std::wstring ipath_noscheme = common::Concat( - isegment_nz_nc, - L"(/", - isegment, - L")*" - ); - std::wstring irelative_part = common::Concat( - L"(//", - iauthority, - ipath_abempty, - L"|", - ipath_absolute, - L"|", - ipath_noscheme, - L"|", - ipath_empty, - L")" - ); - std::wstring irelative_ref = common::Concat( - irelative_part, - L"(\\?", - iquery, - L")?(#", - ifragment, - L")?" - ); - std::wstring iri = common::Concat( - scheme, - L":", - ihier_part, - L"(\\?", - iquery, - L")?(#", - ifragment, - L")?" - ); - std::wstring iri_reference = common::Concat( - L"(", - iri, - L"|", - irelative_ref, - L")" - ); - std::wstring pattern = common::Concat( - L"^", - iri_reference, - L"$" - ); - return std::wregex( - pattern - ); - } - - default: - throw std::logic_error( - common::Concat( - "Unexpected size of wchar_t: ", - std::to_string(sizeof(wchar_t)) - ) - ); - } -} - -const std::wregex kRegexMatchesXsAnyUri = ConstructMatchesXsAnyUri(); - bool MatchesXsAnyUri( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsAnyUri - ); -} - -std::wregex ConstructMatchesXsBase64Binary() { - std::wstring b04_char = L"[AQgw]"; - std::wstring b04 = common::Concat( - b04_char, - L"\\x20?" - ); - std::wstring b16_char = L"[AEIMQUYcgkosw048]"; - std::wstring b16 = common::Concat( - b16_char, - L"\\x20?" - ); - std::wstring b64_char = L"[A-Za-z0-9+/]"; - std::wstring b64 = common::Concat( - b64_char, - L"\\x20?" - ); - std::wstring b64quad = common::Concat( - L"(", - b64, - b64, - b64, - b64, - L")" - ); - std::wstring b64_final_quad = common::Concat( - L"(", - b64, - b64, - b64, - b64_char, - L")" - ); - std::wstring padded_8 = common::Concat( - b64, - b04, - L"= ?=" - ); - std::wstring padded_16 = common::Concat( - b64, - b64, - b16, - L"=" - ); - std::wstring b64final = common::Concat( - L"(", - b64_final_quad, - L"|", - padded_16, - L"|", - padded_8, - L")" - ); - std::wstring base64_binary = common::Concat( - L"(", - b64quad, - L"*", - b64final, - L")?" - ); - std::wstring pattern = common::Concat( - L"^", - base64_binary, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsBase64Binary = ConstructMatchesXsBase64Binary(); + return revm::Match( + pattern::kMatchesXsAnyUriProgram, + text + ); +} bool MatchesXsBase64Binary( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsBase64Binary + return revm::Match( + pattern::kMatchesXsBase64BinaryProgram, + text ); } -std::wregex ConstructMatchesXsBoolean() { - std::wstring pattern = L"^(true|false|1|0)$"; - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsBoolean = ConstructMatchesXsBoolean(); - bool MatchesXsBoolean( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsBoolean + return revm::Match( + pattern::kMatchesXsBooleanProgram, + text ); } -std::wregex ConstructMatchesXsDate() { - std::wstring digit = L"[0-9]"; - std::wstring year_frag = common::Concat( - L"-?(([1-9]", - digit, - digit, - digit, - L"+)|(0", - digit, - digit, - digit, - L"))" - ); - std::wstring month_frag = L"((0[1-9])|(1[0-2]))"; - std::wstring day_frag = common::Concat( - L"((0[1-9])|([12]", - digit, - L")|(3[01]))" - ); - std::wstring minute_frag = common::Concat( - L"[0-5]", - digit - ); - std::wstring timezone_frag = common::Concat( - L"(Z|(\\+|-)((0", - digit, - L"|1[0-3]):", - minute_frag, - L"|14:00))" - ); - std::wstring date_lexical_rep = common::Concat( - year_frag, - L"-", - month_frag, - L"-", - day_frag, - timezone_frag, - L"?" - ); - std::wstring pattern = common::Concat( - L"^", - date_lexical_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsDate = ConstructMatchesXsDate(); - bool MatchesXsDate( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsDate - ); -} - -std::wregex ConstructMatchesXsDateTime() { - std::wstring digit = L"[0-9]"; - std::wstring year_frag = common::Concat( - L"-?(([1-9]", - digit, - digit, - digit, - L"+)|(0", - digit, - digit, - digit, - L"))" - ); - std::wstring month_frag = L"((0[1-9])|(1[0-2]))"; - std::wstring day_frag = common::Concat( - L"((0[1-9])|([12]", - digit, - L")|(3[01]))" - ); - std::wstring hour_frag = common::Concat( - L"(([01]", - digit, - L")|(2[0-3]))" - ); - std::wstring minute_frag = common::Concat( - L"[0-5]", - digit - ); - std::wstring second_frag = common::Concat( - L"([0-5]", - digit, - L")(\\.", - digit, - L"+)?" - ); - std::wstring end_of_day_frag = L"24:00:00(\\.0+)?"; - std::wstring timezone_frag = common::Concat( - L"(Z|(\\+|-)((0", - digit, - L"|1[0-3]):", - minute_frag, - L"|14:00))" - ); - std::wstring date_time_lexical_rep = common::Concat( - year_frag, - L"-", - month_frag, - L"-", - day_frag, - L"T((", - hour_frag, - L":", - minute_frag, - L":", - second_frag, - L")|", - end_of_day_frag, - L")", - timezone_frag, - L"?" - ); - std::wstring pattern = common::Concat( - L"^", - date_time_lexical_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsDateTime = ConstructMatchesXsDateTime(); + return revm::Match( + pattern::kMatchesXsDateProgram, + text + ); +} bool MatchesXsDateTime( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsDateTime + return revm::Match( + pattern::kMatchesXsDateTimeProgram, + text ); } @@ -1638,682 +771,243 @@ bool IsXsDateTime( return IsXsDateWithoutOffset(date); } -std::wregex ConstructMatchesXsDecimal() { - std::wstring digit = L"[0-9]"; - std::wstring unsigned_no_decimal_pt_numeral = common::Concat( - digit, - L"+" - ); - std::wstring no_decimal_pt_numeral = common::Concat( - L"(\\+|-)?", - unsigned_no_decimal_pt_numeral - ); - std::wstring frac_frag = common::Concat( - digit, - L"+" - ); - std::wstring unsigned_decimal_pt_numeral = common::Concat( - L"(", - unsigned_no_decimal_pt_numeral, - L"\\.", - frac_frag, - L"|\\.", - frac_frag, - L")" - ); - std::wstring decimal_pt_numeral = common::Concat( - L"(\\+|-)?", - unsigned_decimal_pt_numeral - ); - std::wstring decimal_lexical_rep = common::Concat( - L"(", - decimal_pt_numeral, - L"|", - no_decimal_pt_numeral, - L")" - ); - std::wstring pattern = common::Concat( - L"^", - decimal_lexical_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsDecimal = ConstructMatchesXsDecimal(); - bool MatchesXsDecimal( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsDecimal + return revm::Match( + pattern::kMatchesXsDecimalProgram, + text ); } -std::wregex ConstructMatchesXsDouble() { - std::wstring double_rep = L"((\\+|-)?([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([Ee](\\+|-)?[0-9]+)?|-?INF|NaN)"; - std::wstring pattern = common::Concat( - L"^", - double_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsDouble = ConstructMatchesXsDouble(); - bool MatchesXsDouble( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsDouble - ); -} - -std::wregex ConstructMatchesXsDuration() { - std::wstring duration_rep = L"-?P((([0-9]+Y([0-9]+M)?([0-9]+D)?|([0-9]+M)([0-9]+D)?|([0-9]+D))(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S)))?)|(T(([0-9]+H)([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?|([0-9]+M)([0-9]+(\\.[0-9]+)?S)?|([0-9]+(\\.[0-9]+)?S))))"; - std::wstring pattern = common::Concat( - L"^", - duration_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsDoubleProgram, + text ); } -const std::wregex kRegexMatchesXsDuration = ConstructMatchesXsDuration(); - bool MatchesXsDuration( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsDuration - ); -} - -std::wregex ConstructMatchesXsFloat() { - std::wstring float_rep = L"((\\+|-)?([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([Ee](\\+|-)?[0-9]+)?|-?INF|NaN)"; - std::wstring pattern = common::Concat( - L"^", - float_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsDurationProgram, + text ); } -const std::wregex kRegexMatchesXsFloat = ConstructMatchesXsFloat(); - bool MatchesXsFloat( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsFloat - ); -} - -std::wregex ConstructMatchesXsGDay() { - std::wstring g_day_lexical_rep = L"---(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"; - std::wstring pattern = common::Concat( - L"^", - g_day_lexical_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsFloatProgram, + text ); } -const std::wregex kRegexMatchesXsGDay = ConstructMatchesXsGDay(); - bool MatchesXsGDay( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsGDay + return revm::Match( + pattern::kMatchesXsGDayProgram, + text ); } -std::wregex ConstructMatchesXsGMonth() { - std::wstring g_month_lexical_rep = L"--(0[1-9]|1[0-2])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"; - std::wstring pattern = common::Concat( - L"^", - g_month_lexical_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsGMonth = ConstructMatchesXsGMonth(); - bool MatchesXsGMonth( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsGMonth + return revm::Match( + pattern::kMatchesXsGMonthProgram, + text ); } -std::wregex ConstructMatchesXsGMonthDay() { - std::wstring g_month_day_rep = L"--(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"; - std::wstring pattern = common::Concat( - L"^", - g_month_day_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsGMonthDay = ConstructMatchesXsGMonthDay(); - bool MatchesXsGMonthDay( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsGMonthDay - ); -} - -std::wregex ConstructMatchesXsGYear() { - std::wstring g_year_rep = L"-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"; - std::wstring pattern = common::Concat( - L"^", - g_year_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsGMonthDayProgram, + text ); } -const std::wregex kRegexMatchesXsGYear = ConstructMatchesXsGYear(); - bool MatchesXsGYear( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsGYear + return revm::Match( + pattern::kMatchesXsGYearProgram, + text ); } -std::wregex ConstructMatchesXsGYearMonth() { - std::wstring g_year_month_rep = L"-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"; - std::wstring pattern = common::Concat( - L"^", - g_year_month_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsGYearMonth = ConstructMatchesXsGYearMonth(); - bool MatchesXsGYearMonth( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsGYearMonth + return revm::Match( + pattern::kMatchesXsGYearMonthProgram, + text ); } -std::wregex ConstructMatchesXsHexBinary() { - std::wstring hex_binary = L"([0-9a-fA-F]{2})*"; - std::wstring pattern = common::Concat( - L"^", - hex_binary, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsHexBinary = ConstructMatchesXsHexBinary(); - bool MatchesXsHexBinary( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsHexBinary - ); -} - -std::wregex ConstructMatchesXsTime() { - std::wstring time_rep = L"(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"; - std::wstring pattern = common::Concat( - L"^", - time_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsHexBinaryProgram, + text ); } -const std::wregex kRegexMatchesXsTime = ConstructMatchesXsTime(); - bool MatchesXsTime( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsTime - ); -} - -std::wregex ConstructMatchesXsInteger() { - std::wstring integer_rep = L"[-+]?[0-9]+"; - std::wstring pattern = common::Concat( - L"^", - integer_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsTimeProgram, + text ); } -const std::wregex kRegexMatchesXsInteger = ConstructMatchesXsInteger(); - bool MatchesXsInteger( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsInteger - ); -} - -std::wregex ConstructMatchesXsLong() { - std::wstring long_rep = L"[-+]?0*[0-9]{1,20}"; - std::wstring pattern = common::Concat( - L"^", - long_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsIntegerProgram, + text ); } -const std::wregex kRegexMatchesXsLong = ConstructMatchesXsLong(); - bool MatchesXsLong( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsLong + return revm::Match( + pattern::kMatchesXsLongProgram, + text ); } -std::wregex ConstructMatchesXsInt() { - std::wstring int_rep = L"[-+]?0*[0-9]{1,10}"; - std::wstring pattern = common::Concat( - L"^", - int_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsInt = ConstructMatchesXsInt(); - bool MatchesXsInt( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsInt + return revm::Match( + pattern::kMatchesXsIntProgram, + text ); } -std::wregex ConstructMatchesXsShort() { - std::wstring short_rep = L"[-+]?0*[0-9]{1,5}"; - std::wstring pattern = common::Concat( - L"^", - short_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsShort = ConstructMatchesXsShort(); - bool MatchesXsShort( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsShort - ); -} - -std::wregex ConstructMatchesXsByte() { - std::wstring byte_rep = L"[-+]?0*[0-9]{1,3}"; - std::wstring pattern = common::Concat( - L"^", - byte_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsShortProgram, + text ); } -const std::wregex kRegexMatchesXsByte = ConstructMatchesXsByte(); - bool MatchesXsByte( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsByte - ); -} - -std::wregex ConstructMatchesXsNonNegativeInteger() { - std::wstring non_negative_integer_rep = L"(-0|\\+?[0-9]+)"; - std::wstring pattern = common::Concat( - L"^", - non_negative_integer_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsByteProgram, + text ); } -const std::wregex kRegexMatchesXsNonNegativeInteger = ConstructMatchesXsNonNegativeInteger(); - bool MatchesXsNonNegativeInteger( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsNonNegativeInteger - ); -} - -std::wregex ConstructMatchesXsPositiveInteger() { - std::wstring positive_integer_rep = L"\\+?0*[1-9][0-9]*"; - std::wstring pattern = common::Concat( - L"^", - positive_integer_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsNonNegativeIntegerProgram, + text ); } -const std::wregex kRegexMatchesXsPositiveInteger = ConstructMatchesXsPositiveInteger(); - bool MatchesXsPositiveInteger( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsPositiveInteger - ); -} - -std::wregex ConstructMatchesXsUnsignedLong() { - std::wstring unsigned_long_rep = L"(-0|\\+?0*[0-9]{1,20})"; - std::wstring pattern = common::Concat( - L"^", - unsigned_long_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsPositiveIntegerProgram, + text ); } -const std::wregex kRegexMatchesXsUnsignedLong = ConstructMatchesXsUnsignedLong(); - bool MatchesXsUnsignedLong( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsUnsignedLong - ); -} - -std::wregex ConstructMatchesXsUnsignedInt() { - std::wstring unsigned_int_rep = L"(-0|\\+?0*[0-9]{1,10})"; - std::wstring pattern = common::Concat( - L"^", - unsigned_int_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsUnsignedLongProgram, + text ); } -const std::wregex kRegexMatchesXsUnsignedInt = ConstructMatchesXsUnsignedInt(); - bool MatchesXsUnsignedInt( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsUnsignedInt + return revm::Match( + pattern::kMatchesXsUnsignedIntProgram, + text ); } -std::wregex ConstructMatchesXsUnsignedShort() { - std::wstring unsigned_short_rep = L"(-0|\\+?0*[0-9]{1,5})"; - std::wstring pattern = common::Concat( - L"^", - unsigned_short_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsUnsignedShort = ConstructMatchesXsUnsignedShort(); - bool MatchesXsUnsignedShort( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsUnsignedShort - ); -} - -std::wregex ConstructMatchesXsUnsignedByte() { - std::wstring unsigned_byte_rep = L"(-0|\\+?0*[0-9]{1,3})"; - std::wstring pattern = common::Concat( - L"^", - unsigned_byte_rep, - L"$" - ); - return std::wregex( - pattern + return revm::Match( + pattern::kMatchesXsUnsignedShortProgram, + text ); } -const std::wregex kRegexMatchesXsUnsignedByte = ConstructMatchesXsUnsignedByte(); - bool MatchesXsUnsignedByte( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsUnsignedByte + return revm::Match( + pattern::kMatchesXsUnsignedByteProgram, + text ); } -std::wregex ConstructMatchesXsNonPositiveInteger() { - std::wstring non_positive_integer_rep = L"(\\+0|0|-[0-9]+)"; - std::wstring pattern = common::Concat( - L"^", - non_positive_integer_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsNonPositiveInteger = ConstructMatchesXsNonPositiveInteger(); - bool MatchesXsNonPositiveInteger( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsNonPositiveInteger + return revm::Match( + pattern::kMatchesXsNonPositiveIntegerProgram, + text ); } -std::wregex ConstructMatchesXsNegativeInteger() { - std::wstring negative_integer_rep = L"(-0*[1-9][0-9]*)"; - std::wstring pattern = common::Concat( - L"^", - negative_integer_rep, - L"$" - ); - return std::wregex( - pattern - ); -} - -const std::wregex kRegexMatchesXsNegativeInteger = ConstructMatchesXsNegativeInteger(); - bool MatchesXsNegativeInteger( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsNegativeInteger + return revm::Match( + pattern::kMatchesXsNegativeIntegerProgram, + text ); } -std::wregex ConstructMatchesXsString() { - static_assert( - sizeof(wchar_t) == 2 || sizeof(wchar_t) == 4, - "Expected either 2 or 4 bytes for wchar_t, but got something else." - ); - - switch (sizeof(wchar_t)) { - case 2: { - std::wstring pattern = L"^([\\x09\\x0a\\x0d\\x20-\\ud7ff\\ue000-\\ufffd]|\\ud800[\\udc00-\\udfff]|[\\ud801-\\udbfe][\\udc00-\\udfff]|\\udbff[\\udc00-\\udfff])*$"; - return std::wregex( - pattern - ); - } - - case 4: { - std::wstring pattern = L"^[\\x09\\x0a\\x0d\\x20-\ud7ff\ue000-\ufffd\U00010000-\U0010ffff]*$"; - return std::wregex( - pattern - ); - } - - default: - throw std::logic_error( - common::Concat( - "Unexpected size of wchar_t: ", - std::to_string(sizeof(wchar_t)) - ) - ); - } -} - -const std::wregex kRegexMatchesXsString = ConstructMatchesXsString(); - bool MatchesXsString( const std::wstring& text ) { - return std::regex_search( - text, - kRegexMatchesXsString + return revm::Match( + pattern::kMatchesXsStringProgram, + text ); } bool IsXsDate(const std::wstring& text) { - std::wsmatch match; - const bool matched = std::regex_match(text, match, kRegexMatchesXsDate); + // NOTE (mristin): + // Optimally, we would re-use the parts of `MatchesXsDate` program and + // `IsXsDateWithoutOffset`, but this would make the implementation much more + // difficult to read and maintain. Hence, we opt here for simplicity of implementation + // to computational performance. - if (!matched) { + if (!MatchesXsDate(text)) { return false; } - size_t cursor = 0; - if (text[0] == L'-') { - cursor = 1; - } - - while (std::isdigit(text[cursor])) { - ++cursor; - } - - if (text[cursor] != L'-') { - throw std::logic_error( - common::Concat( - "Expected a dash after a year, but got the date text: ", - common::WstringToUtf8(text) - ) - ); - } - ++cursor; - - while (std::isdigit(text[cursor])) { - ++cursor; - } - - if (text[cursor] != L'-') { - throw std::logic_error( - common::Concat( - "Expected a dash after a month, but got the date text: ", - common::WstringToUtf8(text) - ) - ); - } - ++cursor; - - while (std::isdigit(text[cursor])) { - ++cursor; - } - - const std::wstring date_without_offset( - text.substr(0, cursor) - ); - - return IsXsDateWithoutOffset(date_without_offset); + return IsXsDateWithoutOffset(text); } bool IsXsDouble(const std::wstring& value) { @@ -3588,21 +2282,12 @@ bool DataSpecificationIec61360sHaveDefinitionAtLeastInEnglish( return true; } -std::wregex ConstructIsBcp47ForEnglish() { - std::wstring pattern = L"^(en|EN)(-.*)?$"; - return std::wregex( - pattern - ); -} - -const std::wregex kRegexIsBcp47ForEnglish = ConstructIsBcp47ForEnglish(); - bool IsBcp47ForEnglish( const std::wstring& text ) { - return std::regex_search( - text, - kRegexIsBcp47ForEnglish + return revm::Match( + pattern::kIsBcp47ForEnglishProgram, + text ); } diff --git a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.hpp b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.hpp index 63f7b43d3..69fc3ee2e 100644 --- a/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.hpp +++ b/test_data/cpp/test_main/aas_core_meta.v3/expected_output/verification.hpp @@ -6,6 +6,7 @@ #include "aas_core/aas_3_0/common.hpp" #include "aas_core/aas_3_0/iteration.hpp" +#include "aas_core/aas_3_0/pattern.hpp" #include "aas_core/aas_3_0/types.hpp" #pragma warning(push, 0) diff --git a/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/is_xs_date_time_UTC.cpp b/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/is_xs_date_time_UTC.cpp index a022e07bc..90819be31 100644 --- a/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/is_xs_date_time_UTC.cpp +++ b/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/is_xs_date_time_UTC.cpp @@ -1,6 +1,330 @@ -const std::wregex kRegexDatePrefix( - L"^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31)" -); +std::vector< + std::unique_ptr +> ConstructMatchesXsDatePrefixProgram() { + std::vector > program; + + { // ^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31).*$ + { // -?[0-9]+ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // [0-9]+ + // [0-9] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2, 4) + ); + } // [0-9]+ + } // -?[0-9]+ + // - + program.emplace_back( // 4 + std::make_unique(L'-') + ); + { // 0[1-9]|1[0-2] + program.emplace_back( + std::make_unique(6, 9) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 6 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(11) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 9 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // 0[1-9]|1[0-2] + // - + program.emplace_back( // 11 + std::make_unique(L'-') + ); + { // 0[0-9]|1[0-9]|2[0-9]|30|31 + program.emplace_back( + std::make_unique(13, 16) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 13 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 16 + std::make_unique(17, 20) + ); + { // 1[0-9] + // 1 + program.emplace_back( // 17 + std::make_unique(L'1') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 1[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 20 + std::make_unique(21, 24) + ); + { // 2[0-9] + // 2 + program.emplace_back( // 21 + std::make_unique(L'2') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 24 + std::make_unique(25, 28) + ); + { // 30 + // 3 + program.emplace_back( // 25 + std::make_unique(L'3') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 30 + program.emplace_back( + std::make_unique(30) + ); + { // 31 + // 3 + program.emplace_back( // 28 + std::make_unique(L'3') + ); + // 1 + program.emplace_back( + std::make_unique(L'1') + ); + } // 31 + } // 0[0-9]|1[0-9]|2[0-9]|30|31 + program.emplace_back( // 30 + std::make_unique() + ); + } // ^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31).*$ + + return program; +} + +const std::vector< + std::unique_ptr +> kMatchesXsDatePrefixProgram = ConstructMatchesXsDatePrefixProgram(); + +bool MatchesXsDatePrefix( + const std::wstring& text +) { + return revm::Match( + kMatchesXsDatePrefixProgram, + text + ); +} + +/** + * Represent a parsed date from a date string where we ignore the offset. + */ +struct MatchedDatePrefix { + std::wstring year; + std::wstring month; + std::wstring day; + + MatchedDatePrefix( + std::wstring a_year, + std::wstring a_month, + std::wstring a_day + ) : + year(std::move(a_year)), + month(std::move(a_month)), + day(std::move(a_day)) { + // Intentionally empty. + } +}; // MatchedDatePrefix + +/** + * Parse the date from the given text where the text is supposed to be an xs:date or + * an xs:dateTime. + */ +MatchedDatePrefix ParseXsDatePrefix(const std::wstring& text) { + size_t year_end = 0; + if (text.size() < 5) { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not: ", + text + ) + ) + ); + } + + if (text[0] == L'-') { + ++year_end; + } + + while (true) { + if (year_end >= text.size()) { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not: ", + text + ) + ) + ); + } + + if (std::isdigit(text[year_end])) { + ++year_end; + } else if (text[year_end] == '-') { + break; + } else { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not. ", + L"We encountered an unexpected character while parsing the year: ", + std::wstring(text[year_end], 1), + L"; the text was: ", + text + ) + ) + ); + } + } + + const std::wstring year_str = text.substr(0, year_end); + + size_t month_end = year_end + 1; + while (true) { + if (month_end >= text.size()) { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not: ", + text + ) + ) + ); + } + + if (std::isdigit(text[month_end])) { + ++month_end; + } else if (text[month_end] == '-') { + break; + } else { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not. ", + L"We encountered an unexpected character while parsing the month: ", + std::wstring(text[month_end], 1), + L"; the text was: ", + text + ) + ) + ); + } + } + + std::wstring month_str = text.substr(year_end + 1, month_end - year_end - 1); + + size_t day_end = month_end + 1; + + while (true) { + if (day_end == text.size()) { + break; + } + + if (std::isdigit(text[day_end])) { + ++day_end; + } else if( + text[day_end] == L'-' + || text[day_end] == L'+' + || text[day_end] == L'Z' + || text[day_end] == L'T' + ) { + // We encountered a valid suffix for xs:date offset or time in xs::dateTime. + break; + } else { + throw std::logic_error( + common::WstringToUtf8( + common::Concat( + L"Expected text to be prefixed with a valid xs:date, but it was not. ", + L"We encountered an unexpected character while parsing the day: ", + std::wstring(text[day_end], 1), + L"; the text was: ", + text + ) + ) + ); + } + } + + std::wstring day_str = text.substr(month_end + 1, day_end - month_end - 1); + + return MatchedDatePrefix(year_str, month_str, day_str); +} /** * Determine the sign of the given year as text. @@ -73,16 +397,13 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { // We can not use date functions from the operation system as they do not // handle years BCE (*e.g.*, `-0003-01-02`). - std::wsmatch match; - const bool matched = std::regex_match(text, match, kRegexDatePrefix); - - if (!matched) { + if (!MatchesXsDatePrefix(text)) { return false; } // NOTE (mristin): // We need to match the prefix as zone offsets are allowed in the dates. Optimally, - // we would re-use the pattern matching from `MatchesXsDate`, but this + // we would re-use the pattern matching from `MatchesXsDatePrefix`, but this // would make the code generation and constraint inference for schemas much more // difficult. Hence, we sacrifice the efficiency a bit for the clearer code & code // generation. @@ -93,9 +414,9 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { // we simply clip the year to the last four relevant digits for the computation of // leap years. - const std::wstring year_str = match[1].str(); + const MatchedDatePrefix match = ParseXsDatePrefix(text); - const int era = DetermineEra(year_str); + const int era = DetermineEra(match.year); // NOTE (mristin): // We do not accept year zero, see the note at: @@ -107,14 +428,14 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { std::wstring last_four_year_digits; const size_t year_start = (era < 0) ? 1 : 0; - const size_t end = year_str.size(); + const size_t end = match.year.size(); size_t start = end - 4; if (start < year_start) { start = year_start; } const std::wstring at_most_last_four_year_digits( - year_str.substr(start, 4) + match.year.substr(start, 4) ); int year_suffix = era * std::stoi(at_most_last_four_year_digits); @@ -140,8 +461,8 @@ bool IsXsDateWithoutOffset(const std::wstring& text) { is_leap_year = false; } - const int month = std::stoi(match[2].str()); - const int day = std::stoi(match[3].str()); + const int month = std::stoi(match.month); + const int day = std::stoi(match.day); if (day <= 0) { return false; diff --git a/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/value_consistent_with_XSD_type.cpp b/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/value_consistent_with_XSD_type.cpp index 58e74d31f..ab8e48c30 100644 --- a/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/value_consistent_with_XSD_type.cpp +++ b/test_data/cpp/test_main/aas_core_meta.v3/input/snippets/verification/value_consistent_with_XSD_type.cpp @@ -1,53 +1,15 @@ bool IsXsDate(const std::wstring& text) { - std::wsmatch match; - const bool matched = std::regex_match(text, match, kRegexMatchesXsDate); + // NOTE (mristin): + // Optimally, we would re-use the parts of `MatchesXsDate` program and + // `IsXsDateWithoutOffset`, but this would make the implementation much more + // difficult to read and maintain. Hence, we opt here for simplicity of implementation + // to computational performance. - if (!matched) { + if (!MatchesXsDate(text)) { return false; } - size_t cursor = 0; - if (text[0] == L'-') { - cursor = 1; - } - - while (std::isdigit(text[cursor])) { - ++cursor; - } - - if (text[cursor] != L'-') { - throw std::logic_error( - common::Concat( - "Expected a dash after a year, but got the date text: ", - common::WstringToUtf8(text) - ) - ); - } - ++cursor; - - while (std::isdigit(text[cursor])) { - ++cursor; - } - - if (text[cursor] != L'-') { - throw std::logic_error( - common::Concat( - "Expected a dash after a month, but got the date text: ", - common::WstringToUtf8(text) - ) - ); - } - ++cursor; - - while (std::isdigit(text[cursor])) { - ++cursor; - } - - const std::wstring date_without_offset( - text.substr(0, cursor) - ); - - return IsXsDateWithoutOffset(date_without_offset); + return IsXsDateWithoutOffset(text); } bool IsXsDouble(const std::wstring& value) { diff --git a/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/pattern.regex b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/pattern.regex new file mode 100644 index 000000000..5fb2bc31b --- /dev/null +++ b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/pattern.regex @@ -0,0 +1 @@ +^\U0001F600$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/program.txt b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/program.txt new file mode 100644 index 000000000..b30b91a6c --- /dev/null +++ b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/char/program.txt @@ -0,0 +1,7 @@ +# ^\U0001f600$ +{ + char '😀' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/pattern.regex b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/pattern.regex new file mode 100644 index 000000000..d0ac1caa9 --- /dev/null +++ b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/pattern.regex @@ -0,0 +1 @@ +^[\U0001F600-\U0001F603]$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/program.txt b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/program.txt new file mode 100644 index 000000000..37768a03c --- /dev/null +++ b/test_data/intermediate_revm/expected/above_basic_multilanguage_plane/range/program.txt @@ -0,0 +1,7 @@ +# ^[\U0001f600-\U0001f603]$ +{ + set '😀-😃' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/arbitrary_suffix/pattern.regex b/test_data/intermediate_revm/expected/arbitrary_suffix/pattern.regex new file mode 100644 index 000000000..06264dc79 --- /dev/null +++ b/test_data/intermediate_revm/expected/arbitrary_suffix/pattern.regex @@ -0,0 +1 @@ +^a.*$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/arbitrary_suffix/program.txt b/test_data/intermediate_revm/expected/arbitrary_suffix/program.txt new file mode 100644 index 000000000..de11928dd --- /dev/null +++ b/test_data/intermediate_revm/expected/arbitrary_suffix/program.txt @@ -0,0 +1,5 @@ +# ^a.*$ +{ + char 'a' + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/char_and_range/pattern.regex b/test_data/intermediate_revm/expected/char_and_range/pattern.regex new file mode 100644 index 000000000..300fa0313 --- /dev/null +++ b/test_data/intermediate_revm/expected/char_and_range/pattern.regex @@ -0,0 +1 @@ +^0x[A-Fa-f0-9]$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/char_and_range/program.txt b/test_data/intermediate_revm/expected/char_and_range/program.txt new file mode 100644 index 000000000..9955daf24 --- /dev/null +++ b/test_data/intermediate_revm/expected/char_and_range/program.txt @@ -0,0 +1,9 @@ +# ^0x[A-Fa-f0-9]$ +{ + char '0' + char 'x' + set '0-9A-Fa-f' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/compliment_range/pattern.regex b/test_data/intermediate_revm/expected/compliment_range/pattern.regex new file mode 100644 index 000000000..8277eda45 --- /dev/null +++ b/test_data/intermediate_revm/expected/compliment_range/pattern.regex @@ -0,0 +1 @@ +^[^a-b]$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/compliment_range/program.txt b/test_data/intermediate_revm/expected/compliment_range/program.txt new file mode 100644 index 000000000..5eee2f275 --- /dev/null +++ b/test_data/intermediate_revm/expected/compliment_range/program.txt @@ -0,0 +1,7 @@ +# ^[^a-b]$ +{ + not-set 'a-b' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/dot/pattern.regex b/test_data/intermediate_revm/expected/dot/pattern.regex new file mode 100644 index 000000000..f5d9c727e --- /dev/null +++ b/test_data/intermediate_revm/expected/dot/pattern.regex @@ -0,0 +1 @@ +^.$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/dot/program.txt b/test_data/intermediate_revm/expected/dot/program.txt new file mode 100644 index 000000000..fa8f1cb23 --- /dev/null +++ b/test_data/intermediate_revm/expected/dot/program.txt @@ -0,0 +1,7 @@ +# ^.$ +{ + any + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/multiple_alterations/pattern.regex b/test_data/intermediate_revm/expected/multiple_alterations/pattern.regex new file mode 100644 index 000000000..ec3a39347 --- /dev/null +++ b/test_data/intermediate_revm/expected/multiple_alterations/pattern.regex @@ -0,0 +1 @@ +^(a|b|c)$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/multiple_alterations/program.txt b/test_data/intermediate_revm/expected/multiple_alterations/program.txt new file mode 100644 index 000000000..406f81aba --- /dev/null +++ b/test_data/intermediate_revm/expected/multiple_alterations/program.txt @@ -0,0 +1,16 @@ + # ^(a|b|c)$ + { + # a|b|c + { + split 1, 3 +1: char 'a' + jump 7 +3: split 4, 6 +4: char 'b' + jump 7 +6: char 'c' + } + # $ +7: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/multiple_chars/pattern.regex b/test_data/intermediate_revm/expected/multiple_chars/pattern.regex new file mode 100644 index 000000000..ff0568302 --- /dev/null +++ b/test_data/intermediate_revm/expected/multiple_chars/pattern.regex @@ -0,0 +1 @@ +^ab$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/multiple_chars/program.txt b/test_data/intermediate_revm/expected/multiple_chars/program.txt new file mode 100644 index 000000000..d82a7f416 --- /dev/null +++ b/test_data/intermediate_revm/expected/multiple_chars/program.txt @@ -0,0 +1,8 @@ +# ^ab$ +{ + char 'a' + char 'b' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/multiple_ranges/pattern.regex b/test_data/intermediate_revm/expected/multiple_ranges/pattern.regex new file mode 100644 index 000000000..2e49b4066 --- /dev/null +++ b/test_data/intermediate_revm/expected/multiple_ranges/pattern.regex @@ -0,0 +1 @@ +^[A-Fa-f0-9]$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/multiple_ranges/program.txt b/test_data/intermediate_revm/expected/multiple_ranges/program.txt new file mode 100644 index 000000000..84ea4aa1e --- /dev/null +++ b/test_data/intermediate_revm/expected/multiple_ranges/program.txt @@ -0,0 +1,7 @@ +# ^[A-Fa-f0-9]$ +{ + set '0-9A-Fa-f' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_0/pattern.regex b/test_data/intermediate_revm/expected/quantifier/0_0/pattern.regex new file mode 100644 index 000000000..47be13af5 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_0/pattern.regex @@ -0,0 +1 @@ +^a{0,0}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_0/program.txt b/test_data/intermediate_revm/expected/quantifier/0_0/program.txt new file mode 100644 index 000000000..55ab74d3b --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_0/program.txt @@ -0,0 +1,10 @@ +# ^a{0}$ +{ + # a{0} + { + # Nothing + } + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_1/pattern.regex b/test_data/intermediate_revm/expected/quantifier/0_1/pattern.regex new file mode 100644 index 000000000..d320397b5 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_1/pattern.regex @@ -0,0 +1 @@ +^a{0,1}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_1/program.txt b/test_data/intermediate_revm/expected/quantifier/0_1/program.txt new file mode 100644 index 000000000..5ad4e46e0 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_1/program.txt @@ -0,0 +1,11 @@ + # ^a?$ + { + # a? + { + split 1, 2 +1: char 'a' + } + # $ +2: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_2/pattern.regex b/test_data/intermediate_revm/expected/quantifier/0_2/pattern.regex new file mode 100644 index 000000000..e443cebeb --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_2/pattern.regex @@ -0,0 +1 @@ +^a{0,2}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_2/program.txt b/test_data/intermediate_revm/expected/quantifier/0_2/program.txt new file mode 100644 index 000000000..4342c45c4 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_2/program.txt @@ -0,0 +1,13 @@ + # ^a{0,2}$ + { + # a{0,2} + { + split 1, 4 +1: char 'a' + split 3, 4 +3: char 'a' + } + # $ +4: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_inf/pattern.regex b/test_data/intermediate_revm/expected/quantifier/0_inf/pattern.regex new file mode 100644 index 000000000..5ea12bd31 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_inf/pattern.regex @@ -0,0 +1 @@ +^a*$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/0_inf/program.txt b/test_data/intermediate_revm/expected/quantifier/0_inf/program.txt new file mode 100644 index 000000000..f8237c5bd --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/0_inf/program.txt @@ -0,0 +1,12 @@ + # ^a*$ + { + # a* + { +0: split 1, 3 +1: char 'a' + jump 0 + } + # $ +3: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_1/pattern.regex b/test_data/intermediate_revm/expected/quantifier/1_1/pattern.regex new file mode 100644 index 000000000..1ee44a041 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_1/pattern.regex @@ -0,0 +1 @@ +^a{1,1}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_1/program.txt b/test_data/intermediate_revm/expected/quantifier/1_1/program.txt new file mode 100644 index 000000000..c1b0692c8 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_1/program.txt @@ -0,0 +1,7 @@ +# ^a{1}$ +{ + char 'a' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_2/pattern.regex b/test_data/intermediate_revm/expected/quantifier/1_2/pattern.regex new file mode 100644 index 000000000..2af831be2 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_2/pattern.regex @@ -0,0 +1 @@ +^a{1,2}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_2/program.txt b/test_data/intermediate_revm/expected/quantifier/1_2/program.txt new file mode 100644 index 000000000..851a31165 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_2/program.txt @@ -0,0 +1,12 @@ + # ^a{1,2}$ + { + # a{1,2} + { + char 'a' + split 2, 3 +2: char 'a' + } + # $ +3: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_3/pattern.regex b/test_data/intermediate_revm/expected/quantifier/1_3/pattern.regex new file mode 100644 index 000000000..bd219f896 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_3/pattern.regex @@ -0,0 +1 @@ +^a{1,3}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_3/program.txt b/test_data/intermediate_revm/expected/quantifier/1_3/program.txt new file mode 100644 index 000000000..2d57d7aef --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_3/program.txt @@ -0,0 +1,14 @@ + # ^a{1,3}$ + { + # a{1,3} + { + char 'a' + split 2, 5 +2: char 'a' + split 4, 5 +4: char 'a' + } + # $ +5: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_inf/pattern.regex b/test_data/intermediate_revm/expected/quantifier/1_inf/pattern.regex new file mode 100644 index 000000000..43dbfe0d4 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_inf/pattern.regex @@ -0,0 +1 @@ +^a{1,}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/1_inf/program.txt b/test_data/intermediate_revm/expected/quantifier/1_inf/program.txt new file mode 100644 index 000000000..df542c496 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/1_inf/program.txt @@ -0,0 +1,11 @@ + # ^a+$ + { + # a+ + { +0: char 'a' + split 0, 2 + } + # $ +2: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/2_inf/pattern.regex b/test_data/intermediate_revm/expected/quantifier/2_inf/pattern.regex new file mode 100644 index 000000000..94ca7641c --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/2_inf/pattern.regex @@ -0,0 +1 @@ +^a{2,}$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/quantifier/2_inf/program.txt b/test_data/intermediate_revm/expected/quantifier/2_inf/program.txt new file mode 100644 index 000000000..bbb33f9d5 --- /dev/null +++ b/test_data/intermediate_revm/expected/quantifier/2_inf/program.txt @@ -0,0 +1,12 @@ + # ^a{2,}$ + { + # a{2,} + { + char 'a' +1: char 'a' + split 1, 3 + } + # $ +3: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/real_world/base64/pattern.regex b/test_data/intermediate_revm/expected/real_world/base64/pattern.regex new file mode 100644 index 000000000..635ae0fce --- /dev/null +++ b/test_data/intermediate_revm/expected/real_world/base64/pattern.regex @@ -0,0 +1 @@ +^(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=))?$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/real_world/base64/program.txt b/test_data/intermediate_revm/expected/real_world/base64/program.txt new file mode 100644 index 000000000..5dc0a97df --- /dev/null +++ b/test_data/intermediate_revm/expected/real_world/base64/program.txt @@ -0,0 +1,118 @@ + # ^(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=))?$ + { + # (([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=))? + { + split 1, 49 + # ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)*(([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?=) + { + # ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?)* + { +01: split 2, 15 + # [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20? + { +02: set '+/0-9A-Za-z' + # \x20? + { + split 4, 5 +04: char ' ' + } +05: set '+/0-9A-Za-z' + # \x20? + { + split 7, 8 +07: char ' ' + } +08: set '+/0-9A-Za-z' + # \x20? + { + split 10, 11 +10: char ' ' + } +11: set '+/0-9A-Za-z' + # \x20? + { + split 13, 14 +13: char ' ' + } + } +14: jump 1 + } + # ([A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/])|[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?=|[A-Za-z0-9+/]\x20?[AQgw]\x20?= ?= + { +15: split 16, 27 + # [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[A-Za-z0-9+/] + { +16: set '+/0-9A-Za-z' + # \x20? + { + split 18, 19 +18: char ' ' + } +19: set '+/0-9A-Za-z' + # \x20? + { + split 21, 22 +21: char ' ' + } +22: set '+/0-9A-Za-z' + # \x20? + { + split 24, 25 +24: char ' ' + } +25: set '+/0-9A-Za-z' + } + jump 49 +27: split 28, 39 + # [A-Za-z0-9+/]\x20?[A-Za-z0-9+/]\x20?[AEIMQUYcgkosw048]\x20?= + { +28: set '+/0-9A-Za-z' + # \x20? + { + split 30, 31 +30: char ' ' + } +31: set '+/0-9A-Za-z' + # \x20? + { + split 33, 34 +33: char ' ' + } +34: set '048AEIMQUYcgkosw' + # \x20? + { + split 36, 37 +36: char ' ' + } +37: char '=' + } + jump 49 + # [A-Za-z0-9+/]\x20?[AQgw]\x20?= ?= + { +39: set '+/0-9A-Za-z' + # \x20? + { + split 41, 42 +41: char ' ' + } +42: set 'AQgw' + # \x20? + { + split 44, 45 +44: char ' ' + } +45: char '=' + # ? + { + split 47, 48 +47: char ' ' + } +48: char '=' + } + } + } + } + # $ +49: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/single_alteration/pattern.regex b/test_data/intermediate_revm/expected/single_alteration/pattern.regex new file mode 100644 index 000000000..f6e014adc --- /dev/null +++ b/test_data/intermediate_revm/expected/single_alteration/pattern.regex @@ -0,0 +1 @@ +^(a|b)$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/single_alteration/program.txt b/test_data/intermediate_revm/expected/single_alteration/program.txt new file mode 100644 index 000000000..d3f98419d --- /dev/null +++ b/test_data/intermediate_revm/expected/single_alteration/program.txt @@ -0,0 +1,13 @@ + # ^(a|b)$ + { + # a|b + { + split 1, 3 +1: char 'a' + jump 4 +3: char 'b' + } + # $ +4: end + match + } \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/single_char/pattern.regex b/test_data/intermediate_revm/expected/single_char/pattern.regex new file mode 100644 index 000000000..25081a78c --- /dev/null +++ b/test_data/intermediate_revm/expected/single_char/pattern.regex @@ -0,0 +1 @@ +^a$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/single_char/program.txt b/test_data/intermediate_revm/expected/single_char/program.txt new file mode 100644 index 000000000..9cb838659 --- /dev/null +++ b/test_data/intermediate_revm/expected/single_char/program.txt @@ -0,0 +1,7 @@ +# ^a$ +{ + char 'a' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/single_range/pattern.regex b/test_data/intermediate_revm/expected/single_range/pattern.regex new file mode 100644 index 000000000..fbb61d4d5 --- /dev/null +++ b/test_data/intermediate_revm/expected/single_range/pattern.regex @@ -0,0 +1 @@ +^[a-b]$ \ No newline at end of file diff --git a/test_data/intermediate_revm/expected/single_range/program.txt b/test_data/intermediate_revm/expected/single_range/program.txt new file mode 100644 index 000000000..c96960b54 --- /dev/null +++ b/test_data/intermediate_revm/expected/single_range/program.txt @@ -0,0 +1,7 @@ +# ^[a-b]$ +{ + set 'a-b' + # $ + end + match +} \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/non_greedy_quantifier/exception.txt b/test_data/intermediate_revm/unexpected/non_greedy_quantifier/exception.txt new file mode 100644 index 000000000..2f88f87aa --- /dev/null +++ b/test_data/intermediate_revm/unexpected/non_greedy_quantifier/exception.txt @@ -0,0 +1 @@ +(mristin, 2024-05-31): We did not implement the transpilation of non-greedy quantifiers to instructions of a RegEx virtual machine as this is more complex than the transpilation of the greedy ones. If you need this feature, please contact the developers. \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/non_greedy_quantifier/pattern.regex b/test_data/intermediate_revm/unexpected/non_greedy_quantifier/pattern.regex new file mode 100644 index 000000000..2af30dafb --- /dev/null +++ b/test_data/intermediate_revm/unexpected/non_greedy_quantifier/pattern.regex @@ -0,0 +1 @@ +^a+?$ \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/not_anchored_at_end/exception.txt b/test_data/intermediate_revm/unexpected/not_anchored_at_end/exception.txt new file mode 100644 index 000000000..e2235fe17 --- /dev/null +++ b/test_data/intermediate_revm/unexpected/not_anchored_at_end/exception.txt @@ -0,0 +1,3 @@ +(mristin, 2024-05-31): We expect all the patterns which need to be transpiled to instructions of the RegEx virtual machine to be anchored at the start (``^``) and at the end (``$``). Please consider re-writing your pattern with putting a prefix ``^.*`` if you want to match an arbitrary prefix, and a suffix ``.*$`` if you want to match an arbitrary suffix. If you really need this feature, please contact the developers. The regular expression was: ^ab + +Expected the last term of the pattern to be an end anchor, but it is not. Got: b \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/not_anchored_at_end/pattern.regex b/test_data/intermediate_revm/unexpected/not_anchored_at_end/pattern.regex new file mode 100644 index 000000000..8f615606a --- /dev/null +++ b/test_data/intermediate_revm/unexpected/not_anchored_at_end/pattern.regex @@ -0,0 +1 @@ +^ab \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/not_anchored_at_start/exception.txt b/test_data/intermediate_revm/unexpected/not_anchored_at_start/exception.txt new file mode 100644 index 000000000..dbb332036 --- /dev/null +++ b/test_data/intermediate_revm/unexpected/not_anchored_at_start/exception.txt @@ -0,0 +1,3 @@ +(mristin, 2024-05-31): We expect all the patterns which need to be transpiled to instructions of the RegEx virtual machine to be anchored at the start (``^``) and at the end (``$``). Please consider re-writing your pattern with putting a prefix ``^.*`` if you want to match an arbitrary prefix, and a suffix ``.*$`` if you want to match an arbitrary suffix. If you really need this feature, please contact the developers. The regular expression was: ab$ + +Expected the first term of the pattern to be a start anchor, but it is not. Got: a \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/not_anchored_at_start/pattern.regex b/test_data/intermediate_revm/unexpected/not_anchored_at_start/pattern.regex new file mode 100644 index 000000000..3a7167976 --- /dev/null +++ b/test_data/intermediate_revm/unexpected/not_anchored_at_start/pattern.regex @@ -0,0 +1 @@ +ab$ \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/exception.txt b/test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/exception.txt new file mode 100644 index 000000000..57f012425 --- /dev/null +++ b/test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/exception.txt @@ -0,0 +1,5 @@ +(mristin, 2024-05-31): We expect all the patterns which need to be transpiled to instructions of the RegEx virtual machine to be anchored at the start (``^``) and at the end (``$``). Please consider re-writing your pattern with putting a prefix ``^.*`` if you want to match an arbitrary prefix, and a suffix ``.*$`` if you want to match an arbitrary suffix. If you really need this feature, please contact the developers. The regular expression was: ab + +Expected the first term of the pattern to be a start anchor, but it is not. Got: a + +Expected the last term of the pattern to be an end anchor, but it is not. Got: b \ No newline at end of file diff --git a/test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/pattern.regex b/test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/pattern.regex new file mode 100644 index 000000000..9ae9e86b7 --- /dev/null +++ b/test_data/intermediate_revm/unexpected/not_anchored_at_start_and_at_end/pattern.regex @@ -0,0 +1 @@ +ab \ No newline at end of file diff --git a/tests/cpp/test_main.py b/tests/cpp/test_main.py index 92f625bc5..d05f72680 100644 --- a/tests/cpp/test_main.py +++ b/tests/cpp/test_main.py @@ -98,6 +98,10 @@ def test_cases(self) -> None: pathlib.Path("iteration.cpp"), pathlib.Path("jsonization.hpp"), pathlib.Path("jsonization.cpp"), + pathlib.Path("pattern.hpp"), + pathlib.Path("pattern.cpp"), + pathlib.Path("revm.hpp"), + pathlib.Path("revm.cpp"), pathlib.Path("stringification.hpp"), pathlib.Path("stringification.cpp"), pathlib.Path("types.hpp"), diff --git a/tests/cpp/test_pattern.py b/tests/cpp/test_pattern.py new file mode 100644 index 000000000..51ab83c0c --- /dev/null +++ b/tests/cpp/test_pattern.py @@ -0,0 +1,188 @@ +# pylint: disable=missing-docstring + +import unittest + +from aas_core_codegen.parse import retree as parse_retree +from aas_core_codegen.cpp import pattern as cpp_pattern + + +class TestForRealWorldPatterns(unittest.TestCase): + def test_for_xs_date_prefix(self) -> None: + pattern = "^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31).*$" + + regex, error = parse_retree.parse([pattern]) + assert error is None, f"{error=}" + assert regex is not None + + code = cpp_pattern._generate._generate_program_definition_for_regex(regex=regex) + self.assertEqual( + """\ +std::vector > program; + +{ // ^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31).*$ + { // -?[0-9]+ + { // -? + program.emplace_back( + std::make_unique(1, 2) + ); + // - + program.emplace_back( // 1 + std::make_unique(L'-') + ); + } // -? + { // [0-9]+ + // [0-9] + program.emplace_back( // 2 + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + program.emplace_back( + std::make_unique(2, 4) + ); + } // [0-9]+ + } // -?[0-9]+ + // - + program.emplace_back( // 4 + std::make_unique(L'-') + ); + { // 0[1-9]|1[0-2] + program.emplace_back( + std::make_unique(6, 9) + ); + { // 0[1-9] + // 0 + program.emplace_back( // 6 + std::make_unique(L'0') + ); + // [1-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'1', L'9') + } + ) + ); + } // 0[1-9] + program.emplace_back( + std::make_unique(11) + ); + { // 1[0-2] + // 1 + program.emplace_back( // 9 + std::make_unique(L'1') + ); + // [0-2] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'2') + } + ) + ); + } // 1[0-2] + } // 0[1-9]|1[0-2] + // - + program.emplace_back( // 11 + std::make_unique(L'-') + ); + { // 0[0-9]|1[0-9]|2[0-9]|30|31 + program.emplace_back( + std::make_unique(13, 16) + ); + { // 0[0-9] + // 0 + program.emplace_back( // 13 + std::make_unique(L'0') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 0[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 16 + std::make_unique(17, 20) + ); + { // 1[0-9] + // 1 + program.emplace_back( // 17 + std::make_unique(L'1') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 1[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 20 + std::make_unique(21, 24) + ); + { // 2[0-9] + // 2 + program.emplace_back( // 21 + std::make_unique(L'2') + ); + // [0-9] + program.emplace_back( + std::make_unique( + std::vector{ + revm::Range(L'0', L'9') + } + ) + ); + } // 2[0-9] + program.emplace_back( + std::make_unique(30) + ); + program.emplace_back( // 24 + std::make_unique(25, 28) + ); + { // 30 + // 3 + program.emplace_back( // 25 + std::make_unique(L'3') + ); + // 0 + program.emplace_back( + std::make_unique(L'0') + ); + } // 30 + program.emplace_back( + std::make_unique(30) + ); + { // 31 + // 3 + program.emplace_back( // 28 + std::make_unique(L'3') + ); + // 1 + program.emplace_back( + std::make_unique(L'1') + ); + } // 31 + } // 0[0-9]|1[0-9]|2[0-9]|30|31 + program.emplace_back( // 30 + std::make_unique() + ); +} // ^(-?[0-9]+)-(0[1-9]|1[0-2])-(0[0-9]|1[0-9]|2[0-9]|30|31).*$""", + code, + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/intermediate/test_revm.py b/tests/intermediate/test_revm.py new file mode 100644 index 000000000..14d07540e --- /dev/null +++ b/tests/intermediate/test_revm.py @@ -0,0 +1,135 @@ +# pylint: disable=missing-docstring + +import os +import pathlib +import unittest +from typing import List, Tuple, Optional + +from aas_core_codegen.parse import retree as parse_retree +from aas_core_codegen.intermediate import revm as intermediate_revm + +import tests.common + + +class Test_against_recorded(unittest.TestCase): + def test_cases(self) -> None: + this_dir = pathlib.Path(os.path.realpath(__file__)).parent + repo_root = this_dir.parent.parent + test_cases_dir = repo_root / "test_data/intermediate_revm" + + assert test_cases_dir.exists(), f"{test_cases_dir=}" + assert test_cases_dir.is_dir(), f"{test_cases_dir=}" + + # The expected cases should have no errors. + expected_pths = sorted((test_cases_dir / "expected").glob("**/pattern.regex")) + regex_pths_expected_exception = [ + (pth, False) for pth in expected_pths + ] # type: List[Tuple[pathlib.Path, bool]] + + unexpected_pths = sorted( + (test_cases_dir / "unexpected").glob("**/pattern.regex") + ) + regex_pths_expected_exception.extend((pth, True) for pth in unexpected_pths) + + for regex_pth, expected_exception in regex_pths_expected_exception: + case_dir = regex_pth.parent + + try: + regex_text = regex_pth.read_text(encoding="utf-8") + except Exception as exception: + raise AssertionError( + f"Unexpected exception when reading " + f"from {regex_pth.relative_to(repo_root)}" + ) from exception + + try: + regex, error = parse_retree.parse([regex_text]) + except Exception as exception: + raise AssertionError( + f"Unexpected exception in parsing " + f"the regex pattern {regex_text!r} " + f"from {regex_pth.relative_to(repo_root)}" + ) from exception + + if error is not None: + regex_line, pointer_line = parse_retree.render_pointer(error.cursor) + raise AssertionError( + f"Unexpected error in parsing " + f"the regex pattern " + f"from {regex_pth.relative_to(repo_root)}:\n" + f"{error.message}:\n" + f"{regex_line}\n" + f"{pointer_line}" + ) + + assert regex is not None + + program = None # type: Optional[intermediate_revm.NodeOrLeaf] + caught = None # type: Optional[Exception] + + try: + program = intermediate_revm.translate(regex=regex) + except Exception as exception: + caught = exception + + if not expected_exception and caught is not None: + raise AssertionError( + f"Expected no errors in the test " + f"case {case_dir.relative_to(test_cases_dir)}, but got:\n" + f"{caught}" + ) from caught + + elif expected_exception and caught is None: + raise AssertionError( + f"Expected exception in the test " + f"case {case_dir.relative_to(test_cases_dir)}, but got none." + ) + + else: + pass + + expected_program_pth = case_dir / "program.txt" + expected_exception_pth = case_dir / "exception.txt" + + if expected_exception: + assert program is None + assert caught is not None + + caught_str = str(caught) + + if tests.common.RERECORD: + expected_program_pth.unlink(missing_ok=True) + expected_exception_pth.write_text(caught_str, encoding="utf-8") + else: + assert not expected_program_pth.exists(), ( + f"Unexpected program stored in the test case " + f"where we expect an exception: {expected_program_pth}" + ) + expected_caught_str = expected_exception_pth.read_text( + encoding="utf-8" + ) + self.assertEqual(expected_caught_str, caught_str, f"{case_dir=}") + + else: + assert program is not None + assert caught is None + + program_str = intermediate_revm.dump(program) + + if tests.common.RERECORD: + expected_program_pth.write_text(program_str, encoding="utf-8") + expected_exception_pth.unlink(missing_ok=True) + else: + assert not expected_exception_pth.exists(), ( + f"Unexpected exception stored in the test case " + f"where we expect a program: {expected_exception_pth}" + ) + + expected_program_str = expected_program_pth.read_text( + encoding="utf-8" + ) + self.assertEqual(expected_program_str, program_str, f"{case_dir=}") + + +if __name__ == "__main__": + unittest.main()