summaryrefslogtreecommitdiff
path: root/vendor/unicode-script
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/unicode-script')
-rw-r--r--vendor/unicode-script/.cargo-checksum.json1
-rw-r--r--vendor/unicode-script/Cargo.toml67
-rw-r--r--vendor/unicode-script/LICENSE-APACHE201
-rw-r--r--vendor/unicode-script/LICENSE-MIT27
-rw-r--r--vendor/unicode-script/README.md7
-rw-r--r--vendor/unicode-script/scripts/unicode.py402
-rw-r--r--vendor/unicode-script/src/lib.rs560
-rw-r--r--vendor/unicode-script/src/tables.rs3497
8 files changed, 4762 insertions, 0 deletions
diff --git a/vendor/unicode-script/.cargo-checksum.json b/vendor/unicode-script/.cargo-checksum.json
new file mode 100644
index 00000000..aa4331e5
--- /dev/null
+++ b/vendor/unicode-script/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{"Cargo.toml":"9a3d68d2142bd01d5b8e8f805d9052412f29b9a80a3eb64eee311b67e703f32e","LICENSE-APACHE":"7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737","LICENSE-MIT":"7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c","README.md":"9d922b2906be36f007f89c6f4eae8976d90a01be8181928698a121b154bbb016","scripts/unicode.py":"a72c10b89ec8c7bf4d563231c3a761756b3f6b4fe7fd47ad56644e8c6fd1c719","src/lib.rs":"c7fe2550b1ed36de32f898d6102859481a31e4484d7264a3cc41f1399843537e","src/tables.rs":"41cdc49fee0da1ec70307915ac0ff2aec5f3c0ad51dce83d7adf5aa4d1aa7f61"},"package":"9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f"} \ No newline at end of file
diff --git a/vendor/unicode-script/Cargo.toml b/vendor/unicode-script/Cargo.toml
new file mode 100644
index 00000000..cd5dab29
--- /dev/null
+++ b/vendor/unicode-script/Cargo.toml
@@ -0,0 +1,67 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2018"
+name = "unicode-script"
+version = "0.5.7"
+authors = ["Manish Goregaokar <manishsmail@gmail.com>"]
+build = false
+exclude = [
+ "target/*",
+ "Cargo.lock",
+ "scripts/tmp",
+ "*.txt",
+]
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
+description = """
+This crate exposes the Unicode `Script` and `Script_Extension` properties from [UAX #24](http://www.unicode.org/reports/tr24/)
+"""
+homepage = "https://github.com/unicode-rs/unicode-script"
+documentation = "https://docs.rs/unicode-script"
+readme = "README.md"
+keywords = [
+ "text",
+ "unicode",
+ "script",
+ "language",
+]
+license = "MIT OR Apache-2.0"
+repository = "https://github.com/unicode-rs/unicode-script"
+
+[lib]
+name = "unicode_script"
+path = "src/lib.rs"
+
+[dependencies.compiler_builtins]
+version = "0.1"
+optional = true
+
+[dependencies.core]
+version = "1.0"
+optional = true
+package = "rustc-std-workspace-core"
+
+[dependencies.std]
+version = "1.0"
+optional = true
+package = "rustc-std-workspace-std"
+
+[features]
+bench = []
+rustc-dep-of-std = [
+ "std",
+ "core",
+ "compiler_builtins",
+]
diff --git a/vendor/unicode-script/LICENSE-APACHE b/vendor/unicode-script/LICENSE-APACHE
new file mode 100644
index 00000000..aa718b55
--- /dev/null
+++ b/vendor/unicode-script/LICENSE-APACHE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright 2021 The Unicode-rs Developers
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/vendor/unicode-script/LICENSE-MIT b/vendor/unicode-script/LICENSE-MIT
new file mode 100644
index 00000000..20c28a2c
--- /dev/null
+++ b/vendor/unicode-script/LICENSE-MIT
@@ -0,0 +1,27 @@
+MIT License
+
+Copyright (c) 2019 Manish Goregaokar
+
+Permission is hereby granted, free of charge, to any
+person obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the
+Software without restriction, including without
+limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice
+shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/vendor/unicode-script/README.md b/vendor/unicode-script/README.md
new file mode 100644
index 00000000..0afbce69
--- /dev/null
+++ b/vendor/unicode-script/README.md
@@ -0,0 +1,7 @@
+# unicode-script
+
+[![Build Status](https://github.com/unicode-rs/unicode-script/workflows/Tests/badge.svg)](https://github.com/unicode-rs/unicode-script/actions)
+[![Current Version](https://img.shields.io/crates/v/unicode-script.svg)](https://crates.io/crates/unicode-script)
+[![License: MIT/Apache-2.0](https://img.shields.io/crates/l/unicode-script.svg)](#license)
+
+This crate exposes the Unicode `Script` and `Script_Extension` properties from [UAX #24](http://www.unicode.org/reports/tr24/)
diff --git a/vendor/unicode-script/scripts/unicode.py b/vendor/unicode-script/scripts/unicode.py
new file mode 100644
index 00000000..cb3e2c74
--- /dev/null
+++ b/vendor/unicode-script/scripts/unicode.py
@@ -0,0 +1,402 @@
+#!/usr/bin/env python
+#
+# Copyright 2011-2015 The Rust Project Developers. See the COPYRIGHT
+# file at the top-level directory of this distribution and at
+# http://rust-lang.org/COPYRIGHT.
+#
+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+# option. This file may not be copied, modified, or distributed
+# except according to those terms.
+
+# This script uses the following Unicode tables:
+# - PropertyValueAliases.txt
+# - ScriptExtensions.txt
+# - Scripts.txt
+#
+# Since this should not require frequent updates, we just store this
+# out-of-line and check the unicode.rs file into git.
+
+import fileinput, re, os, sys
+
+preamble = '''// Copyright 2012-2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly
+
+#![allow(missing_docs, non_upper_case_globals, non_snake_case)]
+
+pub use tables_impl::*;
+
+#[rustfmt::skip]
+mod tables_impl {
+use crate::ScriptExtension;
+'''
+
+# Close `mod impl {`
+ending='''
+}
+'''
+
+UNICODE_VERSION = (16, 0, 0)
+
+UNICODE_VERSION_NUMBER = "%s.%s.%s" %UNICODE_VERSION
+
+def escape_char(c):
+ return "'\\u{%x}'" % c
+
+def fetch(f):
+ if not os.path.exists(os.path.basename(f)):
+ if "emoji" in f:
+ os.system("curl -O https://www.unicode.org/Public/emoji/%s.%s/%s"
+ % (UNICODE_VERSION[0], UNICODE_VERSION[1], f))
+ else:
+ os.system("curl -O https://www.unicode.org/Public/%s/ucd/%s"
+ % (UNICODE_VERSION_NUMBER, f))
+
+ if not os.path.exists(os.path.basename(f)):
+ sys.stderr.write("cannot load %s" % f)
+ exit(1)
+
+def group_cats(cats):
+ cats_out = {}
+ for cat in cats:
+ cats_out[cat] = group_cat(cats[cat])
+ return cats_out
+
+def aliases():
+ """
+ Fetch the shorthand aliases for each longhand Script name
+ """
+ fetch("PropertyValueAliases.txt")
+ longforms = {}
+ shortforms = {}
+ re1 = re.compile(r"^ *sc *; *(\w+) *; *(\w+)")
+ for line in fileinput.input(os.path.basename("PropertyValueAliases.txt")):
+ m = re1.match(line)
+ if m:
+ l = m.group(2).strip()
+ s = m.group(1).strip()
+ assert(s not in longforms)
+ assert(l not in shortforms)
+ longforms[s] = l
+ shortforms[l] = s
+ else:
+ continue
+
+ return (longforms, shortforms)
+
+def format_table_content(f, content, indent):
+ line = " "*indent
+ first = True
+ for chunk in content.split(","):
+ if len(line) + len(chunk) < 98:
+ if first:
+ line += chunk
+ else:
+ line += ", " + chunk
+ first = False
+ else:
+ f.write(line + ",\n")
+ line = " "*indent + chunk
+ f.write(line)
+
+# Implementation from unicode-segmentation
+def load_properties(f, interestingprops):
+ fetch(f)
+ props = {}
+ # Note: these regexes are different from those in unicode-segmentation,
+ # becase we need to handle spaces here
+ re1 = re.compile(r"^ *([0-9A-F]+) *; *([^#]+) *#")
+ re2 = re.compile(r"^ *([0-9A-F]+)\.\.([0-9A-F]+) *; *([^#]+) *#")
+
+ for line in fileinput.input(os.path.basename(f)):
+ prop = None
+ d_lo = 0
+ d_hi = 0
+ m = re1.match(line)
+ if m:
+ d_lo = m.group(1)
+ d_hi = m.group(1)
+ prop = m.group(2).strip()
+ else:
+ m = re2.match(line)
+ if m:
+ d_lo = m.group(1)
+ d_hi = m.group(2)
+ prop = m.group(3).strip()
+ else:
+ continue
+ if interestingprops and prop not in interestingprops:
+ continue
+ d_lo = int(d_lo, 16)
+ d_hi = int(d_hi, 16)
+ if prop not in props:
+ props[prop] = []
+ props[prop].append((d_lo, d_hi))
+
+ return props
+
+# Implementation from unicode-segmentation
+def emit_table(f, name, t_data, t_type = "&'static [(char, char)]", is_pub=True,
+ pfun=lambda x: "(%s,%s)" % (escape_char(x[0]), escape_char(x[1])), is_const=True):
+ pub_string = "const"
+ if not is_const:
+ pub_string = "let"
+ if is_pub:
+ pub_string = "pub " + pub_string
+ f.write(" %s %s: %s = &[\n" % (pub_string, name, t_type))
+ data = ""
+ first = True
+ for dat in t_data:
+ if not first:
+ data += ","
+ first = False
+ data += pfun(dat)
+ format_table_content(f, data, 8)
+ f.write("\n ];\n\n")
+
+def emit_search(f):
+ f.write("""
+pub fn bsearch_range_value_table<T: Copy>(c: char, r: &'static [(char, char, T)]) -> Option<T> {
+ use core::cmp::Ordering::{Equal, Less, Greater};
+ match r.binary_search_by(|&(lo, hi, _)| {
+ if lo <= c && c <= hi { Equal }
+ else if hi < c { Less }
+ else { Greater }
+ }) {
+ Ok(idx) => {
+ let (_, _, cat) = r[idx];
+ Some(cat)
+ }
+ Err(_) => None
+ }
+}
+
+#[inline]
+pub fn get_script(c: char) -> Option<Script> {
+ bsearch_range_value_table(c, SCRIPTS)
+}
+
+#[inline]
+pub fn get_script_extension(c: char) -> Option<ScriptExtension> {
+ bsearch_range_value_table(c, SCRIPT_EXTENSIONS)
+}
+""")
+
+def emit_enums(f, script_list, extension_list, longforms):
+ """
+ Emit the Script and ScriptExtension enums as well as any related utility functions
+ """
+
+ f.write("""
+#[derive(Clone, Copy, PartialEq, Eq, Debug, Hash)]
+#[non_exhaustive]
+#[allow(non_camel_case_types)]
+#[repr(u8)]
+/// A value of the `Script` property
+pub enum Script {
+ /// Unknown script
+ Unknown = 0xFF,
+ /// Zyyy
+ Common = 0xFE,
+ /// Zinh,
+ Inherited = 0xFD,
+""")
+ for (i, script) in enumerate(script_list):
+ f.write(" /// %s\n %s = %s,\n" % (script, longforms[script], i))
+ f.write("}\n")
+ f.write("pub const NEXT_SCRIPT: u8 = %s;" % len(script_list))
+ f.write("""
+
+pub mod script_extensions {
+ use crate::ScriptExtension;
+ pub const COMMON: ScriptExtension = ScriptExtension::new_common();
+ pub const INHERITED: ScriptExtension = ScriptExtension::new_inherited();
+ pub const UNKNOWN: ScriptExtension = ScriptExtension::new_unknown();
+""")
+ for (i, script) in enumerate(script_list):
+ first = 0
+ second = 0
+ third = 0
+ # need to replace L because `hex()` will spit out an L suffix for larger numbers
+ if i < 64:
+ first = hex(1 << i).replace("L", "")
+ elif i < 128:
+ second = hex(1 << (i - 64)).replace("L", "")
+ else:
+ third = hex(1 << (i - 128)).replace("L", "")
+ f.write(" /// %s\n pub const %s: ScriptExtension = ScriptExtension::new(%s, %s, %s);\n" %
+ (longforms[script], longforms[script].upper(), first, second, third))
+ if script != longforms[script]:
+ f.write(" /// %s\n pub const %s: ScriptExtension = %s;\n" %
+ (longforms[script], script.upper(), longforms[script].upper()))
+ for ext in extension_list:
+ longform = ", ".join([longforms[s] for s in ext])
+ name = "_".join([s.upper() for s in ext])
+ expr = ext[0].upper()
+ for e in ext[1:]:
+ expr = "%s.union(%s)" % (expr, e.upper())
+ f.write(" /// %s\n pub const %s: ScriptExtension = %s;\n" % (longform, name, expr))
+ f.write("""}
+
+""")
+
+ # Generate implementation for the `Script`
+ generate_script_impl(f)
+
+
+def generate_script_impl(f):
+ """Generates an `impl Script { ... }` section with all the required functions"""
+
+ # Open `impl Script` section.
+ f.write("""impl Script {
+""")
+
+ # Generate impl of `inner_full_name`.
+ f.write("""
+ #[inline]
+ pub(crate) fn inner_full_name(self) -> &'static str {
+ match self {
+ Script::Unknown => "Unknown",
+ Script::Common => "Common",
+ Script::Inherited => "Inherited",
+""")
+ for script in script_list:
+ f.write(" Script::%s => \"%s\",\n" % (longforms[script], longforms[script]))
+ f.write(""" }
+ }
+""")
+
+ # Generate impl of `inner_from_full_name`.
+ f.write("""
+ #[inline]
+ pub(crate) fn inner_from_full_name(input: &str) -> Option<Self> {
+ match input {
+ "Unknown" => Some(Script::Unknown),
+ "Common" => Some(Script::Common),
+ "Inherited" => Some(Script::Inherited),
+""")
+ for script in script_list:
+ f.write(" \"%s\" => Some(Script::%s),\n" % (longforms[script], longforms[script]))
+ f.write(" _ => None,\n" )
+ f.write(""" }
+ }
+""")
+
+ # Generate impl of `inner_short_name`
+ f.write("""
+ #[inline]
+ pub(crate) fn inner_short_name(self) -> &'static str {
+ match self {
+ Script::Unknown => "",
+ Script::Common => "Zyyy",
+ Script::Inherited => "Zinh",
+""")
+ for script in script_list:
+ f.write(" Script::%s => \"%s\",\n" % (longforms[script], script))
+ f.write(""" }
+ }
+""")
+
+ # Generate impl of `inner_from_short_name`
+ f.write("""
+ #[inline]
+ pub(crate) fn inner_from_short_name(input: &str) -> Option<Self> {
+ match input {
+ "Zyyy" => Some(Script::Common),
+ "Zinh" => Some(Script::Inherited),
+""")
+ for script in script_list:
+ f.write(" \"%s\" => Some(Script::%s),\n" % (script, longforms[script]))
+ f.write(""" _ => None,\n""")
+ f.write(""" }
+ }
+""")
+
+ # Generate impl of `for_integer`
+ f.write("""
+ #[inline]
+ pub(crate) fn for_integer(value: u8) -> Self {
+ match value {
+""")
+ for (i, script) in enumerate(script_list):
+ f.write(" %s => Script::%s,\n" % (i, longforms[script]))
+ f.write(""" _ => unreachable!(),
+ }
+ }
+""")
+
+ # Close `impl Script` section
+ f.write("""
+}
+""")
+
+def extension_name(ext):
+ """Get the rust source for a given ScriptExtension"""
+ return "script_extensions::%s" % "_".join([e.upper() for e in ext])
+
+
+if __name__ == "__main__":
+ r = "tables.rs"
+ if os.path.exists(r):
+ os.remove(r)
+ with open(r, "w") as rf:
+ # write the file's preamble
+ rf.write(preamble)
+ rf.write("""
+/// The version of [Unicode](http://www.unicode.org/)
+/// that this version of unicode-script is based on.
+pub const UNICODE_VERSION: (u64, u64, u64) = (%s, %s, %s);
+""" % UNICODE_VERSION)
+
+
+ (longforms, shortforms) = aliases()
+
+ scripts = load_properties("Scripts.txt", [])
+
+ script_table = []
+ script_list = []
+
+ for script in scripts:
+ if script not in ["Common", "Unknown", "Inherited"]:
+ script_list.append(shortforms[script])
+ script_table.extend([(x, y, shortforms[script]) for (x, y) in scripts[script]])
+ script_list.sort()
+ script_table.sort(key=lambda w: w[0])
+
+
+ extensions = load_properties("ScriptExtensions.txt", [])
+ extension_table = []
+ extension_list = []
+
+ for ext in extensions:
+ split = ext.split(" ")
+ split.sort()
+ output_ext = [ext]
+ if len(split) > 1:
+ extension_list.append(split)
+ output_ext = split
+ extension_table.extend([(x, y, output_ext) for (x, y) in extensions[ext]])
+ extension_table.sort(key=lambda w: w[0])
+
+
+ emit_enums(rf, script_list, extension_list, longforms)
+ emit_search(rf)
+
+ emit_table(rf, "SCRIPTS", script_table, t_type = "&'static [(char, char, Script)]",
+ is_pub=False , pfun=lambda x: "(%s,%s, Script::%s)" % (escape_char(x[0]), escape_char(x[1]), longforms[x[2]]))
+ emit_table(rf, "SCRIPT_EXTENSIONS", extension_table, t_type = "&'static [(char, char, ScriptExtension)]",
+ is_pub=False , pfun=lambda x: "(%s,%s,%s)" % (escape_char(x[0]), escape_char(x[1]), extension_name(x[2])))
+
+ # emit_table(rf, "FOObar", properties)
+
+ rf.write(ending)
diff --git a/vendor/unicode-script/src/lib.rs b/vendor/unicode-script/src/lib.rs
new file mode 100644
index 00000000..a8e3026b
--- /dev/null
+++ b/vendor/unicode-script/src/lib.rs
@@ -0,0 +1,560 @@
+//! This crate exposes the Unicode `Script` and `Script_Extension`
+//! properties from [UAX #24](http://www.unicode.org/reports/tr24/)
+
+#![cfg_attr(not(test), no_std)]
+#![cfg_attr(feature = "bench", feature(test))]
+
+mod tables;
+
+use core::convert::TryFrom;
+use core::fmt;
+use core::u64;
+pub use tables::script_extensions;
+use tables::{get_script, get_script_extension, NEXT_SCRIPT};
+pub use tables::{Script, UNICODE_VERSION};
+
+impl Script {
+ /// Get the full name of a script.
+ pub fn full_name(self) -> &'static str {
+ self.inner_full_name()
+ }
+
+ /// Attempts to parse script name from the provided string.
+ /// Returns `None` if the provided string does not represent a valid
+ /// script full name.
+ pub fn from_full_name(input: &str) -> Option<Self> {
+ Self::inner_from_full_name(input)
+ }
+
+ /// Get the four-character short name of a script.
+ pub fn short_name(self) -> &'static str {
+ self.inner_short_name()
+ }
+
+ /// Attempts to parse script name from the provided string.
+ /// Returns `None` if the provided string does not represent a valid
+ /// script four-character short name.
+ pub fn from_short_name(input: &str) -> Option<Self> {
+ Self::inner_from_short_name(input)
+ }
+
+ /// Is this script "Recommended" according to
+ /// [UAX #31](www.unicode.org/reports/tr31/#Table_Recommended_Scripts)?
+ pub fn is_recommended(self) -> bool {
+ use Script::*;
+ match self {
+ Common | Inherited | Arabic | Armenian | Bengali | Bopomofo | Cyrillic | Devanagari
+ | Ethiopic | Georgian | Greek | Gujarati | Gurmukhi | Han | Hangul | Hebrew
+ | Hiragana | Kannada | Katakana | Khmer | Lao | Latin | Malayalam | Myanmar | Oriya
+ | Sinhala | Tamil | Telugu | Thaana | Thai | Tibetan => true,
+ _ => false,
+ }
+ }
+}
+
+impl From<Script> for ScriptExtension {
+ fn from(script: Script) -> Self {
+ if script == Script::Common {
+ ScriptExtension::new_common()
+ } else if script == Script::Inherited {
+ ScriptExtension::new_inherited()
+ } else if script == Script::Unknown {
+ ScriptExtension::new_unknown()
+ } else {
+ let mut first = 0;
+ let mut second = 0;
+ let mut third = 0;
+ let bit = script as u8;
+ // Find out which field it's in, and set the appropriate bit there
+ if bit < 64 {
+ first = 1 << bit as u64;
+ } else if bit < 128 {
+ // offset by 64 since `bit` is an absolute number,
+ // not relative to the chunk
+ second = 1 << (bit - 64) as u64;
+ } else {
+ third = 1 << (bit - 128) as u32;
+ }
+ ScriptExtension::new(first, second, third)
+ }
+ }
+}
+
+impl TryFrom<ScriptExtension> for Script {
+ type Error = ();
+ fn try_from(ext: ScriptExtension) -> Result<Self, ()> {
+ if ext.is_common_or_inherited() {
+ if ext.common {
+ Ok(Script::Common)
+ } else {
+ Ok(Script::Inherited)
+ }
+ } else if ext.is_empty() {
+ Ok(Script::Unknown)
+ } else {
+ // filled elements will have set ones
+ let fo = ext.first.count_ones();
+ let so = ext.second.count_ones();
+ let to = ext.third.count_ones();
+ // only one bit set, in the first chunk
+ if fo == 1 && so == 0 && to == 0 {
+ // use trailing_zeroes() to figure out which bit it is
+ Ok(Script::for_integer(ext.first.trailing_zeros() as u8))
+ // only one bit set, in the second chunk
+ } else if fo == 0 && so == 1 && to == 0 {
+ Ok(Script::for_integer(64 + ext.second.trailing_zeros() as u8))
+ // only one bit set, in the third chunk
+ } else if fo == 0 && so == 0 && to == 1 {
+ Ok(Script::for_integer(128 + ext.third.trailing_zeros() as u8))
+ } else {
+ Err(())
+ }
+ }
+ }
+}
+
+impl Default for Script {
+ fn default() -> Self {
+ Script::Common
+ }
+}
+
+impl From<char> for Script {
+ fn from(o: char) -> Self {
+ o.script()
+ }
+}
+
+impl fmt::Display for Script {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ write!(f, "{}", self.full_name())
+ }
+}
+
+#[derive(Clone, Copy, PartialEq, Eq, Hash)]
+#[non_exhaustive]
+/// A value for the `Script_Extension` property
+///
+/// [`ScriptExtension`] is one or more [`Script`]
+///
+/// This is essentially an optimized version of `Vec<Script>` that uses bitfields
+pub struct ScriptExtension {
+ // A bitset for the first 64 scripts
+ first: u64,
+ // A bitset for the scripts 65-128
+ second: u64,
+ // A bitset for scripts after 128
+ third: u64,
+ // Both Common and Inherited are represented by all used bits being set,
+ // this flag lets us distinguish the two.
+ common: bool,
+}
+
+impl ScriptExtension {
+ // We don't use the complete u64 of `third`, so the "all" value is not just u32::MAX
+ // Instead, we take the number of the next (unused) script bit, subtract 128 to bring
+ // it in the range of `third`, create a u64 with just that bit set, and subtract 1
+ // to create one with all the lower bits set.
+ const THIRD_MAX: u64 = ((1 << (NEXT_SCRIPT - 128)) - 1);
+
+ pub(crate) const fn new(first: u64, second: u64, third: u64) -> Self {
+ ScriptExtension {
+ first,
+ second,
+ third,
+ common: false,
+ }
+ }
+
+ pub(crate) const fn new_common() -> Self {
+ ScriptExtension {
+ first: u64::MAX,
+ second: u64::MAX,
+ third: Self::THIRD_MAX,
+ common: true,
+ }
+ }
+
+ pub(crate) const fn new_inherited() -> Self {
+ ScriptExtension {
+ first: u64::MAX,
+ second: u64::MAX,
+ third: Self::THIRD_MAX,
+ common: false,
+ }
+ }
+
+ pub(crate) const fn new_unknown() -> Self {
+ ScriptExtension {
+ first: 0,
+ second: 0,
+ third: 0,
+ common: false,
+ }
+ }
+
+ const fn is_common_or_inherited(self) -> bool {
+ (self.first == u64::MAX) & (self.second == u64::MAX) & (self.third == Self::THIRD_MAX)
+ }
+
+ /// Checks if the script extension is Common
+ pub const fn is_common(self) -> bool {
+ self.is_common_or_inherited() & self.common
+ }
+
+ /// Checks if the script extension is Inherited
+ pub const fn is_inherited(self) -> bool {
+ self.is_common_or_inherited() & !self.common
+ }
+
+ /// Checks if the script extension is empty (unknown)
+ pub const fn is_empty(self) -> bool {
+ (self.first == 0) & (self.second == 0) & (self.third == 0)
+ }
+
+ /// Returns the number of scripts in the script extension
+ pub fn len(self) -> usize {
+ if self.is_common_or_inherited() {
+ 1
+ } else {
+ (self.first.count_ones() + self.second.count_ones() + self.third.count_ones()) as usize
+ }
+ }
+
+ /// Intersect this `ScriptExtension` with another `ScriptExtension`. Produces `Unknown` if things
+ /// do not intersect. This is equivalent to [`ScriptExtension::intersection`] but it stores the result
+ /// in `self`
+ ///
+ /// "Common" (`Zyyy`) and "Inherited" (`Zinh`) are considered as intersecting
+ /// everything, the intersection of `Common` and `Inherited` is `Inherited`
+ pub fn intersect_with(&mut self, other: Self) {
+ *self = self.intersection(other)
+ }
+
+ /// Find the intersection between two ScriptExtensions. Returns Unknown if things
+ /// do not intersect.
+ ///
+ /// "Common" (`Zyyy`) and "Inherited" (`Zinh`) are considered as intersecting
+ /// everything, the intersection of `Common` and `Inherited` is `Inherited`
+ pub const fn intersection(self, other: Self) -> Self {
+ let first = self.first & other.first;
+ let second = self.second & other.second;
+ let third = self.third & other.third;
+ let common = self.common & other.common;
+ ScriptExtension {
+ first,
+ second,
+ third,
+ common,
+ }
+ }
+
+ /// Find the union between two ScriptExtensions.
+ ///
+ /// "Common" (`Zyyy`) and "Inherited" (`Zinh`) are considered as intersecting
+ /// everything, the union of `Common` and `Inherited` is `Common`
+ pub const fn union(self, other: Self) -> Self {
+ let first = self.first | other.first;
+ let second = self.second | other.second;
+ let third = self.third | other.third;
+ let common = self.common | other.common;
+ ScriptExtension {
+ first,
+ second,
+ third,
+ common,
+ }
+ }
+
+ /// Check if this ScriptExtension contains the given script
+ ///
+ /// Should be used with specific scripts only, this will
+ /// return `true` if `self` is not `Unknown` and `script` is
+ /// `Common` or `Inherited`
+ pub fn contains_script(self, script: Script) -> bool {
+ !self.intersection(script.into()).is_empty()
+ }
+
+ /// Get the intersection of script extensions of all characters
+ /// in a string.
+ pub fn for_str(x: &str) -> Self {
+ let mut ext = ScriptExtension::default();
+ for ch in x.chars() {
+ ext.intersect_with(ch.into());
+ }
+ ext
+ }
+
+ /// Iterate over the scripts in this script extension
+ ///
+ /// Will never yield Script::Unknown
+ pub fn iter(self) -> ScriptIterator {
+ ScriptIterator { ext: self }
+ }
+}
+
+impl Default for ScriptExtension {
+ fn default() -> Self {
+ ScriptExtension::new_common()
+ }
+}
+
+impl From<char> for ScriptExtension {
+ fn from(o: char) -> Self {
+ o.script_extension()
+ }
+}
+
+impl From<&'_ str> for ScriptExtension {
+ fn from(o: &'_ str) -> Self {
+ Self::for_str(o)
+ }
+}
+
+impl fmt::Debug for ScriptExtension {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ write!(f, "ScriptExtension(")?;
+ fmt::Display::fmt(self, f)?;
+ write!(f, ")")
+ }
+}
+
+impl fmt::Display for ScriptExtension {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ if self.is_common() {
+ write!(f, "Common")?;
+ } else if self.is_inherited() {
+ write!(f, "Inherited")?;
+ } else if self.is_empty() {
+ write!(f, "Unknown")?;
+ } else {
+ let mut first = true;
+ for script in self.iter() {
+ if !first {
+ write!(f, " + ")?;
+ first = false;
+ }
+ script.full_name().fmt(f)?;
+ }
+ }
+ Ok(())
+ }
+}
+
+/// Extension trait on `char` for calculating script properties
+pub trait UnicodeScript {
+ /// Get the script for a given character
+ fn script(&self) -> Script;
+ /// Get the Script_Extension for a given character
+ fn script_extension(&self) -> ScriptExtension;
+}
+
+impl UnicodeScript for char {
+ fn script(&self) -> Script {
+ get_script(*self).unwrap_or(Script::Unknown)
+ }
+
+ fn script_extension(&self) -> ScriptExtension {
+ get_script_extension(*self).unwrap_or_else(|| self.script().into())
+ }
+}
+
+/// Iterator over scripts in a [ScriptExtension].
+///
+/// Can be obtained ia [ScriptExtension::iter()]
+pub struct ScriptIterator {
+ ext: ScriptExtension,
+}
+
+impl Iterator for ScriptIterator {
+ type Item = Script;
+
+ fn next(&mut self) -> Option<Script> {
+ if self.ext.is_common_or_inherited() {
+ let common = self.ext.common;
+ self.ext = ScriptExtension::new_unknown();
+ if common {
+ Some(Script::Common)
+ } else {
+ Some(Script::Inherited)
+ }
+ // Are there bits left in the first chunk?
+ } else if self.ext.first != 0 {
+ // Find the next bit
+ let bit = self.ext.first.trailing_zeros();
+ // unset just that bit
+ self.ext.first &= !(1 << bit);
+ Some(Script::for_integer(bit as u8))
+ // Are there bits left in the second chunk?
+ } else if self.ext.second != 0 {
+ let bit = self.ext.second.trailing_zeros();
+ self.ext.second &= !(1 << bit);
+ Some(Script::for_integer(64 + bit as u8))
+ // Are there bits left in the third chunk?
+ } else if self.ext.third != 0 {
+ let bit = self.ext.third.trailing_zeros();
+ self.ext.third &= !(1 << bit);
+ Some(Script::for_integer(128 + bit as u8))
+ } else {
+ // Script::Unknown
+ None
+ }
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use crate::*;
+ use std::collections::HashSet;
+ use std::convert::TryInto;
+
+ #[cfg(feature = "bench")]
+ use test::bench::Bencher;
+ #[cfg(feature = "bench")]
+ extern crate test;
+
+ #[test]
+ fn test_conversion() {
+ let mut seen_scripts = HashSet::new();
+ let mut seen_exts = HashSet::new();
+ for bit in 0..NEXT_SCRIPT {
+ let script = Script::for_integer(bit);
+ let ext = script.into();
+ if seen_scripts.contains(&script) {
+ panic!("Found script {:?} twice!", script)
+ }
+ if seen_exts.contains(&ext) {
+ panic!("Found extension {:?} twice!", ext)
+ }
+ seen_scripts.insert(script);
+ seen_exts.insert(ext);
+ assert_eq!(script as u8, bit);
+ assert!(!ScriptExtension::new_common().intersection(ext).is_empty());
+ assert!(!ScriptExtension::new_inherited()
+ .intersection(ext)
+ .is_empty());
+ assert!(ScriptExtension::new_unknown().intersection(ext).is_empty());
+ assert_eq!(ext.iter().collect::<Vec<_>>(), vec![script]);
+ assert_eq!(Ok(script), ext.try_into());
+ }
+ }
+
+ #[test]
+ fn test_specific() {
+ let s = "सवव मानवी व्यद्क् जन्मतःच स्वतींत्र आहेत व त्ाींना समान प्रवतष्ठा व समान अविकार आहेत. त्ाींना ववचारशद्क् व सवविे कबुद्द्धलाभलेली आहे. व त्ाींनी एकमेकाींशी बींिुत्वाचाभावनेने आचरण करावे.";
+ let ext = ScriptExtension::for_str(s);
+ assert_eq!(ext, script_extensions::DEVA);
+ println!(
+ "{:?}",
+ script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH
+ );
+ println!(
+ "{:?}",
+ ext.intersection(
+ script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH
+ )
+ );
+ assert!(!ext
+ .intersection(script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH)
+ .is_empty());
+
+ let u = ext.union(Script::Dogra.into());
+ assert_eq!(
+ u.intersection(
+ script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH
+ ),
+ u
+ );
+ }
+
+ #[test]
+ fn test_specific_ext() {
+ let ext = script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH;
+
+ let all: HashSet<_> = ext.iter().collect();
+
+ for bit in 0..NEXT_SCRIPT {
+ let script = Script::for_integer(bit);
+
+ if all.contains(&script) {
+ assert!(ext.contains_script(script))
+ } else {
+ assert!(!ext.contains_script(script))
+ }
+ }
+
+ assert!(ext.contains_script(Script::Devanagari));
+ assert!(ext.contains_script(Script::Dogra));
+ assert!(ext.contains_script(Script::Gujarati));
+ assert!(ext.contains_script(Script::Gurmukhi));
+ assert!(ext.contains_script(Script::Khojki));
+ assert!(ext.contains_script(Script::Kaithi));
+ assert!(ext.contains_script(Script::Mahajani));
+ assert!(ext.contains_script(Script::Modi));
+ assert!(ext.contains_script(Script::Khudawadi));
+ assert!(ext.contains_script(Script::Takri));
+ assert!(ext.contains_script(Script::Tirhuta));
+
+ let scr: Result<Script, _> = ext.try_into();
+ assert!(scr.is_err());
+ }
+
+ #[cfg(feature = "bench")]
+ #[bench]
+ fn bench_script_intersection(b: &mut Bencher) {
+ b.iter(|| {
+ let script = test::black_box(Script::Devanagari);
+ let ext = test::black_box(script_extensions::BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH);
+ test::black_box(ext.intersection(script.into()));
+ })
+ }
+
+ #[cfg(feature = "bench")]
+ #[bench]
+ fn bench_ext_to_script(b: &mut Bencher) {
+ let ext: ScriptExtension = Script::Devanagari.into();
+ b.iter(|| {
+ let ext = test::black_box(ext);
+ let script: Result<Script, _> = ext.try_into();
+ let _ = test::black_box(script);
+ })
+ }
+
+ #[cfg(feature = "bench")]
+ #[bench]
+ fn bench_script_to_ext(b: &mut Bencher) {
+ b.iter(|| {
+ let script = test::black_box(Script::Devanagari);
+ let ext: ScriptExtension = script.into();
+ test::black_box(ext);
+ })
+ }
+
+ #[cfg(feature = "bench")]
+ #[bench]
+ fn bench_ext_intersection(b: &mut Bencher) {
+ b.iter(|| {
+ let e1 = test::black_box(script_extensions::ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI);
+ let e2 = test::black_box(script_extensions::BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH);
+ test::black_box(e2.intersection(e1));
+ })
+ }
+
+ #[cfg(feature = "bench")]
+ #[bench]
+ fn bench_to_vec(b: &mut Bencher) {
+ b.iter(|| {
+ let ext = test::black_box(script_extensions::BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH);
+ test::black_box(ext.iter().collect::<Vec<_>>());
+ })
+ }
+
+ #[cfg(feature = "bench")]
+ #[bench]
+ fn bench_string_ext(b: &mut Bencher) {
+ b.iter(|| {
+ let s = test::black_box("सवव मानवी व्यद्क् जन्मतःच स्वतींत्र आहेत व त्ाींना समान प्रवतष्ठा व समान अविकार आहेत. त्ाींना ववचारशद्क् व सवविे कबुद्द्धलाभलेली आहे. व त्ाींनी एकमेकाींशी बींिुत्वाचाभावनेने आचरण करावे.");
+ test::black_box(ScriptExtension::for_str(s));
+ })
+ }
+}
diff --git a/vendor/unicode-script/src/tables.rs b/vendor/unicode-script/src/tables.rs
new file mode 100644
index 00000000..d8c082ba
--- /dev/null
+++ b/vendor/unicode-script/src/tables.rs
@@ -0,0 +1,3497 @@
+// Copyright 2012-2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly
+
+#![allow(missing_docs, non_upper_case_globals, non_snake_case)]
+
+pub use tables_impl::*;
+
+#[rustfmt::skip]
+mod tables_impl {
+use crate::ScriptExtension;
+
+/// The version of [Unicode](http://www.unicode.org/)
+/// that this version of unicode-script is based on.
+pub const UNICODE_VERSION: (u64, u64, u64) = (16, 0, 0);
+
+#[derive(Clone, Copy, PartialEq, Eq, Debug, Hash)]
+#[non_exhaustive]
+#[allow(non_camel_case_types)]
+#[repr(u8)]
+/// A value of the `Script` property
+pub enum Script {
+ /// Unknown script
+ Unknown = 0xFF,
+ /// Zyyy
+ Common = 0xFE,
+ /// Zinh,
+ Inherited = 0xFD,
+ /// Adlm
+ Adlam = 0,
+ /// Aghb
+ Caucasian_Albanian = 1,
+ /// Ahom
+ Ahom = 2,
+ /// Arab
+ Arabic = 3,
+ /// Armi
+ Imperial_Aramaic = 4,
+ /// Armn
+ Armenian = 5,
+ /// Avst
+ Avestan = 6,
+ /// Bali
+ Balinese = 7,
+ /// Bamu
+ Bamum = 8,
+ /// Bass
+ Bassa_Vah = 9,
+ /// Batk
+ Batak = 10,
+ /// Beng
+ Bengali = 11,
+ /// Bhks
+ Bhaiksuki = 12,
+ /// Bopo
+ Bopomofo = 13,
+ /// Brah
+ Brahmi = 14,
+ /// Brai
+ Braille = 15,
+ /// Bugi
+ Buginese = 16,
+ /// Buhd
+ Buhid = 17,
+ /// Cakm
+ Chakma = 18,
+ /// Cans
+ Canadian_Aboriginal = 19,
+ /// Cari
+ Carian = 20,
+ /// Cham
+ Cham = 21,
+ /// Cher
+ Cherokee = 22,
+ /// Chrs
+ Chorasmian = 23,
+ /// Copt
+ Coptic = 24,
+ /// Cpmn
+ Cypro_Minoan = 25,
+ /// Cprt
+ Cypriot = 26,
+ /// Cyrl
+ Cyrillic = 27,
+ /// Deva
+ Devanagari = 28,
+ /// Diak
+ Dives_Akuru = 29,
+ /// Dogr
+ Dogra = 30,
+ /// Dsrt
+ Deseret = 31,
+ /// Dupl
+ Duployan = 32,
+ /// Egyp
+ Egyptian_Hieroglyphs = 33,
+ /// Elba
+ Elbasan = 34,
+ /// Elym
+ Elymaic = 35,
+ /// Ethi
+ Ethiopic = 36,
+ /// Gara
+ Garay = 37,
+ /// Geor
+ Georgian = 38,
+ /// Glag
+ Glagolitic = 39,
+ /// Gong
+ Gunjala_Gondi = 40,
+ /// Gonm
+ Masaram_Gondi = 41,
+ /// Goth
+ Gothic = 42,
+ /// Gran
+ Grantha = 43,
+ /// Grek
+ Greek = 44,
+ /// Gujr
+ Gujarati = 45,
+ /// Gukh
+ Gurung_Khema = 46,
+ /// Guru
+ Gurmukhi = 47,
+ /// Hang
+ Hangul = 48,
+ /// Hani
+ Han = 49,
+ /// Hano
+ Hanunoo = 50,
+ /// Hatr
+ Hatran = 51,
+ /// Hebr
+ Hebrew = 52,
+ /// Hira
+ Hiragana = 53,
+ /// Hluw
+ Anatolian_Hieroglyphs = 54,
+ /// Hmng
+ Pahawh_Hmong = 55,
+ /// Hmnp
+ Nyiakeng_Puachue_Hmong = 56,
+ /// Hung
+ Old_Hungarian = 57,
+ /// Ital
+ Old_Italic = 58,
+ /// Java
+ Javanese = 59,
+ /// Kali
+ Kayah_Li = 60,
+ /// Kana
+ Katakana = 61,
+ /// Kawi
+ Kawi = 62,
+ /// Khar
+ Kharoshthi = 63,
+ /// Khmr
+ Khmer = 64,
+ /// Khoj
+ Khojki = 65,
+ /// Kits
+ Khitan_Small_Script = 66,
+ /// Knda
+ Kannada = 67,
+ /// Krai
+ Kirat_Rai = 68,
+ /// Kthi
+ Kaithi = 69,
+ /// Lana
+ Tai_Tham = 70,
+ /// Laoo
+ Lao = 71,
+ /// Latn
+ Latin = 72,
+ /// Lepc
+ Lepcha = 73,
+ /// Limb
+ Limbu = 74,
+ /// Lina
+ Linear_A = 75,
+ /// Linb
+ Linear_B = 76,
+ /// Lisu
+ Lisu = 77,
+ /// Lyci
+ Lycian = 78,
+ /// Lydi
+ Lydian = 79,
+ /// Mahj
+ Mahajani = 80,
+ /// Maka
+ Makasar = 81,
+ /// Mand
+ Mandaic = 82,
+ /// Mani
+ Manichaean = 83,
+ /// Marc
+ Marchen = 84,
+ /// Medf
+ Medefaidrin = 85,
+ /// Mend
+ Mende_Kikakui = 86,
+ /// Merc
+ Meroitic_Cursive = 87,
+ /// Mero
+ Meroitic_Hieroglyphs = 88,
+ /// Mlym
+ Malayalam = 89,
+ /// Modi
+ Modi = 90,
+ /// Mong
+ Mongolian = 91,
+ /// Mroo
+ Mro = 92,
+ /// Mtei
+ Meetei_Mayek = 93,
+ /// Mult
+ Multani = 94,
+ /// Mymr
+ Myanmar = 95,
+ /// Nagm
+ Nag_Mundari = 96,
+ /// Nand
+ Nandinagari = 97,
+ /// Narb
+ Old_North_Arabian = 98,
+ /// Nbat
+ Nabataean = 99,
+ /// Newa
+ Newa = 100,
+ /// Nkoo
+ Nko = 101,
+ /// Nshu
+ Nushu = 102,
+ /// Ogam
+ Ogham = 103,
+ /// Olck
+ Ol_Chiki = 104,
+ /// Onao
+ Ol_Onal = 105,
+ /// Orkh
+ Old_Turkic = 106,
+ /// Orya
+ Oriya = 107,
+ /// Osge
+ Osage = 108,
+ /// Osma
+ Osmanya = 109,
+ /// Ougr
+ Old_Uyghur = 110,
+ /// Palm
+ Palmyrene = 111,
+ /// Pauc
+ Pau_Cin_Hau = 112,
+ /// Perm
+ Old_Permic = 113,
+ /// Phag
+ Phags_Pa = 114,
+ /// Phli
+ Inscriptional_Pahlavi = 115,
+ /// Phlp
+ Psalter_Pahlavi = 116,
+ /// Phnx
+ Phoenician = 117,
+ /// Plrd
+ Miao = 118,
+ /// Prti
+ Inscriptional_Parthian = 119,
+ /// Rjng
+ Rejang = 120,
+ /// Rohg
+ Hanifi_Rohingya = 121,
+ /// Runr
+ Runic = 122,
+ /// Samr
+ Samaritan = 123,
+ /// Sarb
+ Old_South_Arabian = 124,
+ /// Saur
+ Saurashtra = 125,
+ /// Sgnw
+ SignWriting = 126,
+ /// Shaw
+ Shavian = 127,
+ /// Shrd
+ Sharada = 128,
+ /// Sidd
+ Siddham = 129,
+ /// Sind
+ Khudawadi = 130,
+ /// Sinh
+ Sinhala = 131,
+ /// Sogd
+ Sogdian = 132,
+ /// Sogo
+ Old_Sogdian = 133,
+ /// Sora
+ Sora_Sompeng = 134,
+ /// Soyo
+ Soyombo = 135,
+ /// Sund
+ Sundanese = 136,
+ /// Sunu
+ Sunuwar = 137,
+ /// Sylo
+ Syloti_Nagri = 138,
+ /// Syrc
+ Syriac = 139,
+ /// Tagb
+ Tagbanwa = 140,
+ /// Takr
+ Takri = 141,
+ /// Tale
+ Tai_Le = 142,
+ /// Talu
+ New_Tai_Lue = 143,
+ /// Taml
+ Tamil = 144,
+ /// Tang
+ Tangut = 145,
+ /// Tavt
+ Tai_Viet = 146,
+ /// Telu
+ Telugu = 147,
+ /// Tfng
+ Tifinagh = 148,
+ /// Tglg
+ Tagalog = 149,
+ /// Thaa
+ Thaana = 150,
+ /// Thai
+ Thai = 151,
+ /// Tibt
+ Tibetan = 152,
+ /// Tirh
+ Tirhuta = 153,
+ /// Tnsa
+ Tangsa = 154,
+ /// Todr
+ Todhri = 155,
+ /// Toto
+ Toto = 156,
+ /// Tutg
+ Tulu_Tigalari = 157,
+ /// Ugar
+ Ugaritic = 158,
+ /// Vaii
+ Vai = 159,
+ /// Vith
+ Vithkuqi = 160,
+ /// Wara
+ Warang_Citi = 161,
+ /// Wcho
+ Wancho = 162,
+ /// Xpeo
+ Old_Persian = 163,
+ /// Xsux
+ Cuneiform = 164,
+ /// Yezi
+ Yezidi = 165,
+ /// Yiii
+ Yi = 166,
+ /// Zanb
+ Zanabazar_Square = 167,
+}
+pub const NEXT_SCRIPT: u8 = 168;
+
+pub mod script_extensions {
+ use crate::ScriptExtension;
+ pub const COMMON: ScriptExtension = ScriptExtension::new_common();
+ pub const INHERITED: ScriptExtension = ScriptExtension::new_inherited();
+ pub const UNKNOWN: ScriptExtension = ScriptExtension::new_unknown();
+ /// Adlam
+ pub const ADLAM: ScriptExtension = ScriptExtension::new(0x1, 0, 0);
+ /// Adlam
+ pub const ADLM: ScriptExtension = ADLAM;
+ /// Caucasian_Albanian
+ pub const CAUCASIAN_ALBANIAN: ScriptExtension = ScriptExtension::new(0x2, 0, 0);
+ /// Caucasian_Albanian
+ pub const AGHB: ScriptExtension = CAUCASIAN_ALBANIAN;
+ /// Ahom
+ pub const AHOM: ScriptExtension = ScriptExtension::new(0x4, 0, 0);
+ /// Arabic
+ pub const ARABIC: ScriptExtension = ScriptExtension::new(0x8, 0, 0);
+ /// Arabic
+ pub const ARAB: ScriptExtension = ARABIC;
+ /// Imperial_Aramaic
+ pub const IMPERIAL_ARAMAIC: ScriptExtension = ScriptExtension::new(0x10, 0, 0);
+ /// Imperial_Aramaic
+ pub const ARMI: ScriptExtension = IMPERIAL_ARAMAIC;
+ /// Armenian
+ pub const ARMENIAN: ScriptExtension = ScriptExtension::new(0x20, 0, 0);
+ /// Armenian
+ pub const ARMN: ScriptExtension = ARMENIAN;
+ /// Avestan
+ pub const AVESTAN: ScriptExtension = ScriptExtension::new(0x40, 0, 0);
+ /// Avestan
+ pub const AVST: ScriptExtension = AVESTAN;
+ /// Balinese
+ pub const BALINESE: ScriptExtension = ScriptExtension::new(0x80, 0, 0);
+ /// Balinese
+ pub const BALI: ScriptExtension = BALINESE;
+ /// Bamum
+ pub const BAMUM: ScriptExtension = ScriptExtension::new(0x100, 0, 0);
+ /// Bamum
+ pub const BAMU: ScriptExtension = BAMUM;
+ /// Bassa_Vah
+ pub const BASSA_VAH: ScriptExtension = ScriptExtension::new(0x200, 0, 0);
+ /// Bassa_Vah
+ pub const BASS: ScriptExtension = BASSA_VAH;
+ /// Batak
+ pub const BATAK: ScriptExtension = ScriptExtension::new(0x400, 0, 0);
+ /// Batak
+ pub const BATK: ScriptExtension = BATAK;
+ /// Bengali
+ pub const BENGALI: ScriptExtension = ScriptExtension::new(0x800, 0, 0);
+ /// Bengali
+ pub const BENG: ScriptExtension = BENGALI;
+ /// Bhaiksuki
+ pub const BHAIKSUKI: ScriptExtension = ScriptExtension::new(0x1000, 0, 0);
+ /// Bhaiksuki
+ pub const BHKS: ScriptExtension = BHAIKSUKI;
+ /// Bopomofo
+ pub const BOPOMOFO: ScriptExtension = ScriptExtension::new(0x2000, 0, 0);
+ /// Bopomofo
+ pub const BOPO: ScriptExtension = BOPOMOFO;
+ /// Brahmi
+ pub const BRAHMI: ScriptExtension = ScriptExtension::new(0x4000, 0, 0);
+ /// Brahmi
+ pub const BRAH: ScriptExtension = BRAHMI;
+ /// Braille
+ pub const BRAILLE: ScriptExtension = ScriptExtension::new(0x8000, 0, 0);
+ /// Braille
+ pub const BRAI: ScriptExtension = BRAILLE;
+ /// Buginese
+ pub const BUGINESE: ScriptExtension = ScriptExtension::new(0x10000, 0, 0);
+ /// Buginese
+ pub const BUGI: ScriptExtension = BUGINESE;
+ /// Buhid
+ pub const BUHID: ScriptExtension = ScriptExtension::new(0x20000, 0, 0);
+ /// Buhid
+ pub const BUHD: ScriptExtension = BUHID;
+ /// Chakma
+ pub const CHAKMA: ScriptExtension = ScriptExtension::new(0x40000, 0, 0);
+ /// Chakma
+ pub const CAKM: ScriptExtension = CHAKMA;
+ /// Canadian_Aboriginal
+ pub const CANADIAN_ABORIGINAL: ScriptExtension = ScriptExtension::new(0x80000, 0, 0);
+ /// Canadian_Aboriginal
+ pub const CANS: ScriptExtension = CANADIAN_ABORIGINAL;
+ /// Carian
+ pub const CARIAN: ScriptExtension = ScriptExtension::new(0x100000, 0, 0);
+ /// Carian
+ pub const CARI: ScriptExtension = CARIAN;
+ /// Cham
+ pub const CHAM: ScriptExtension = ScriptExtension::new(0x200000, 0, 0);
+ /// Cherokee
+ pub const CHEROKEE: ScriptExtension = ScriptExtension::new(0x400000, 0, 0);
+ /// Cherokee
+ pub const CHER: ScriptExtension = CHEROKEE;
+ /// Chorasmian
+ pub const CHORASMIAN: ScriptExtension = ScriptExtension::new(0x800000, 0, 0);
+ /// Chorasmian
+ pub const CHRS: ScriptExtension = CHORASMIAN;
+ /// Coptic
+ pub const COPTIC: ScriptExtension = ScriptExtension::new(0x1000000, 0, 0);
+ /// Coptic
+ pub const COPT: ScriptExtension = COPTIC;
+ /// Cypro_Minoan
+ pub const CYPRO_MINOAN: ScriptExtension = ScriptExtension::new(0x2000000, 0, 0);
+ /// Cypro_Minoan
+ pub const CPMN: ScriptExtension = CYPRO_MINOAN;
+ /// Cypriot
+ pub const CYPRIOT: ScriptExtension = ScriptExtension::new(0x4000000, 0, 0);
+ /// Cypriot
+ pub const CPRT: ScriptExtension = CYPRIOT;
+ /// Cyrillic
+ pub const CYRILLIC: ScriptExtension = ScriptExtension::new(0x8000000, 0, 0);
+ /// Cyrillic
+ pub const CYRL: ScriptExtension = CYRILLIC;
+ /// Devanagari
+ pub const DEVANAGARI: ScriptExtension = ScriptExtension::new(0x10000000, 0, 0);
+ /// Devanagari
+ pub const DEVA: ScriptExtension = DEVANAGARI;
+ /// Dives_Akuru
+ pub const DIVES_AKURU: ScriptExtension = ScriptExtension::new(0x20000000, 0, 0);
+ /// Dives_Akuru
+ pub const DIAK: ScriptExtension = DIVES_AKURU;
+ /// Dogra
+ pub const DOGRA: ScriptExtension = ScriptExtension::new(0x40000000, 0, 0);
+ /// Dogra
+ pub const DOGR: ScriptExtension = DOGRA;
+ /// Deseret
+ pub const DESERET: ScriptExtension = ScriptExtension::new(0x80000000, 0, 0);
+ /// Deseret
+ pub const DSRT: ScriptExtension = DESERET;
+ /// Duployan
+ pub const DUPLOYAN: ScriptExtension = ScriptExtension::new(0x100000000, 0, 0);
+ /// Duployan
+ pub const DUPL: ScriptExtension = DUPLOYAN;
+ /// Egyptian_Hieroglyphs
+ pub const EGYPTIAN_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0x200000000, 0, 0);
+ /// Egyptian_Hieroglyphs
+ pub const EGYP: ScriptExtension = EGYPTIAN_HIEROGLYPHS;
+ /// Elbasan
+ pub const ELBASAN: ScriptExtension = ScriptExtension::new(0x400000000, 0, 0);
+ /// Elbasan
+ pub const ELBA: ScriptExtension = ELBASAN;
+ /// Elymaic
+ pub const ELYMAIC: ScriptExtension = ScriptExtension::new(0x800000000, 0, 0);
+ /// Elymaic
+ pub const ELYM: ScriptExtension = ELYMAIC;
+ /// Ethiopic
+ pub const ETHIOPIC: ScriptExtension = ScriptExtension::new(0x1000000000, 0, 0);
+ /// Ethiopic
+ pub const ETHI: ScriptExtension = ETHIOPIC;
+ /// Garay
+ pub const GARAY: ScriptExtension = ScriptExtension::new(0x2000000000, 0, 0);
+ /// Garay
+ pub const GARA: ScriptExtension = GARAY;
+ /// Georgian
+ pub const GEORGIAN: ScriptExtension = ScriptExtension::new(0x4000000000, 0, 0);
+ /// Georgian
+ pub const GEOR: ScriptExtension = GEORGIAN;
+ /// Glagolitic
+ pub const GLAGOLITIC: ScriptExtension = ScriptExtension::new(0x8000000000, 0, 0);
+ /// Glagolitic
+ pub const GLAG: ScriptExtension = GLAGOLITIC;
+ /// Gunjala_Gondi
+ pub const GUNJALA_GONDI: ScriptExtension = ScriptExtension::new(0x10000000000, 0, 0);
+ /// Gunjala_Gondi
+ pub const GONG: ScriptExtension = GUNJALA_GONDI;
+ /// Masaram_Gondi
+ pub const MASARAM_GONDI: ScriptExtension = ScriptExtension::new(0x20000000000, 0, 0);
+ /// Masaram_Gondi
+ pub const GONM: ScriptExtension = MASARAM_GONDI;
+ /// Gothic
+ pub const GOTHIC: ScriptExtension = ScriptExtension::new(0x40000000000, 0, 0);
+ /// Gothic
+ pub const GOTH: ScriptExtension = GOTHIC;
+ /// Grantha
+ pub const GRANTHA: ScriptExtension = ScriptExtension::new(0x80000000000, 0, 0);
+ /// Grantha
+ pub const GRAN: ScriptExtension = GRANTHA;
+ /// Greek
+ pub const GREEK: ScriptExtension = ScriptExtension::new(0x100000000000, 0, 0);
+ /// Greek
+ pub const GREK: ScriptExtension = GREEK;
+ /// Gujarati
+ pub const GUJARATI: ScriptExtension = ScriptExtension::new(0x200000000000, 0, 0);
+ /// Gujarati
+ pub const GUJR: ScriptExtension = GUJARATI;
+ /// Gurung_Khema
+ pub const GURUNG_KHEMA: ScriptExtension = ScriptExtension::new(0x400000000000, 0, 0);
+ /// Gurung_Khema
+ pub const GUKH: ScriptExtension = GURUNG_KHEMA;
+ /// Gurmukhi
+ pub const GURMUKHI: ScriptExtension = ScriptExtension::new(0x800000000000, 0, 0);
+ /// Gurmukhi
+ pub const GURU: ScriptExtension = GURMUKHI;
+ /// Hangul
+ pub const HANGUL: ScriptExtension = ScriptExtension::new(0x1000000000000, 0, 0);
+ /// Hangul
+ pub const HANG: ScriptExtension = HANGUL;
+ /// Han
+ pub const HAN: ScriptExtension = ScriptExtension::new(0x2000000000000, 0, 0);
+ /// Han
+ pub const HANI: ScriptExtension = HAN;
+ /// Hanunoo
+ pub const HANUNOO: ScriptExtension = ScriptExtension::new(0x4000000000000, 0, 0);
+ /// Hanunoo
+ pub const HANO: ScriptExtension = HANUNOO;
+ /// Hatran
+ pub const HATRAN: ScriptExtension = ScriptExtension::new(0x8000000000000, 0, 0);
+ /// Hatran
+ pub const HATR: ScriptExtension = HATRAN;
+ /// Hebrew
+ pub const HEBREW: ScriptExtension = ScriptExtension::new(0x10000000000000, 0, 0);
+ /// Hebrew
+ pub const HEBR: ScriptExtension = HEBREW;
+ /// Hiragana
+ pub const HIRAGANA: ScriptExtension = ScriptExtension::new(0x20000000000000, 0, 0);
+ /// Hiragana
+ pub const HIRA: ScriptExtension = HIRAGANA;
+ /// Anatolian_Hieroglyphs
+ pub const ANATOLIAN_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0x40000000000000, 0, 0);
+ /// Anatolian_Hieroglyphs
+ pub const HLUW: ScriptExtension = ANATOLIAN_HIEROGLYPHS;
+ /// Pahawh_Hmong
+ pub const PAHAWH_HMONG: ScriptExtension = ScriptExtension::new(0x80000000000000, 0, 0);
+ /// Pahawh_Hmong
+ pub const HMNG: ScriptExtension = PAHAWH_HMONG;
+ /// Nyiakeng_Puachue_Hmong
+ pub const NYIAKENG_PUACHUE_HMONG: ScriptExtension = ScriptExtension::new(0x100000000000000, 0, 0);
+ /// Nyiakeng_Puachue_Hmong
+ pub const HMNP: ScriptExtension = NYIAKENG_PUACHUE_HMONG;
+ /// Old_Hungarian
+ pub const OLD_HUNGARIAN: ScriptExtension = ScriptExtension::new(0x200000000000000, 0, 0);
+ /// Old_Hungarian
+ pub const HUNG: ScriptExtension = OLD_HUNGARIAN;
+ /// Old_Italic
+ pub const OLD_ITALIC: ScriptExtension = ScriptExtension::new(0x400000000000000, 0, 0);
+ /// Old_Italic
+ pub const ITAL: ScriptExtension = OLD_ITALIC;
+ /// Javanese
+ pub const JAVANESE: ScriptExtension = ScriptExtension::new(0x800000000000000, 0, 0);
+ /// Javanese
+ pub const JAVA: ScriptExtension = JAVANESE;
+ /// Kayah_Li
+ pub const KAYAH_LI: ScriptExtension = ScriptExtension::new(0x1000000000000000, 0, 0);
+ /// Kayah_Li
+ pub const KALI: ScriptExtension = KAYAH_LI;
+ /// Katakana
+ pub const KATAKANA: ScriptExtension = ScriptExtension::new(0x2000000000000000, 0, 0);
+ /// Katakana
+ pub const KANA: ScriptExtension = KATAKANA;
+ /// Kawi
+ pub const KAWI: ScriptExtension = ScriptExtension::new(0x4000000000000000, 0, 0);
+ /// Kharoshthi
+ pub const KHAROSHTHI: ScriptExtension = ScriptExtension::new(0x8000000000000000, 0, 0);
+ /// Kharoshthi
+ pub const KHAR: ScriptExtension = KHAROSHTHI;
+ /// Khmer
+ pub const KHMER: ScriptExtension = ScriptExtension::new(0, 0x1, 0);
+ /// Khmer
+ pub const KHMR: ScriptExtension = KHMER;
+ /// Khojki
+ pub const KHOJKI: ScriptExtension = ScriptExtension::new(0, 0x2, 0);
+ /// Khojki
+ pub const KHOJ: ScriptExtension = KHOJKI;
+ /// Khitan_Small_Script
+ pub const KHITAN_SMALL_SCRIPT: ScriptExtension = ScriptExtension::new(0, 0x4, 0);
+ /// Khitan_Small_Script
+ pub const KITS: ScriptExtension = KHITAN_SMALL_SCRIPT;
+ /// Kannada
+ pub const KANNADA: ScriptExtension = ScriptExtension::new(0, 0x8, 0);
+ /// Kannada
+ pub const KNDA: ScriptExtension = KANNADA;
+ /// Kirat_Rai
+ pub const KIRAT_RAI: ScriptExtension = ScriptExtension::new(0, 0x10, 0);
+ /// Kirat_Rai
+ pub const KRAI: ScriptExtension = KIRAT_RAI;
+ /// Kaithi
+ pub const KAITHI: ScriptExtension = ScriptExtension::new(0, 0x20, 0);
+ /// Kaithi
+ pub const KTHI: ScriptExtension = KAITHI;
+ /// Tai_Tham
+ pub const TAI_THAM: ScriptExtension = ScriptExtension::new(0, 0x40, 0);
+ /// Tai_Tham
+ pub const LANA: ScriptExtension = TAI_THAM;
+ /// Lao
+ pub const LAO: ScriptExtension = ScriptExtension::new(0, 0x80, 0);
+ /// Lao
+ pub const LAOO: ScriptExtension = LAO;
+ /// Latin
+ pub const LATIN: ScriptExtension = ScriptExtension::new(0, 0x100, 0);
+ /// Latin
+ pub const LATN: ScriptExtension = LATIN;
+ /// Lepcha
+ pub const LEPCHA: ScriptExtension = ScriptExtension::new(0, 0x200, 0);
+ /// Lepcha
+ pub const LEPC: ScriptExtension = LEPCHA;
+ /// Limbu
+ pub const LIMBU: ScriptExtension = ScriptExtension::new(0, 0x400, 0);
+ /// Limbu
+ pub const LIMB: ScriptExtension = LIMBU;
+ /// Linear_A
+ pub const LINEAR_A: ScriptExtension = ScriptExtension::new(0, 0x800, 0);
+ /// Linear_A
+ pub const LINA: ScriptExtension = LINEAR_A;
+ /// Linear_B
+ pub const LINEAR_B: ScriptExtension = ScriptExtension::new(0, 0x1000, 0);
+ /// Linear_B
+ pub const LINB: ScriptExtension = LINEAR_B;
+ /// Lisu
+ pub const LISU: ScriptExtension = ScriptExtension::new(0, 0x2000, 0);
+ /// Lycian
+ pub const LYCIAN: ScriptExtension = ScriptExtension::new(0, 0x4000, 0);
+ /// Lycian
+ pub const LYCI: ScriptExtension = LYCIAN;
+ /// Lydian
+ pub const LYDIAN: ScriptExtension = ScriptExtension::new(0, 0x8000, 0);
+ /// Lydian
+ pub const LYDI: ScriptExtension = LYDIAN;
+ /// Mahajani
+ pub const MAHAJANI: ScriptExtension = ScriptExtension::new(0, 0x10000, 0);
+ /// Mahajani
+ pub const MAHJ: ScriptExtension = MAHAJANI;
+ /// Makasar
+ pub const MAKASAR: ScriptExtension = ScriptExtension::new(0, 0x20000, 0);
+ /// Makasar
+ pub const MAKA: ScriptExtension = MAKASAR;
+ /// Mandaic
+ pub const MANDAIC: ScriptExtension = ScriptExtension::new(0, 0x40000, 0);
+ /// Mandaic
+ pub const MAND: ScriptExtension = MANDAIC;
+ /// Manichaean
+ pub const MANICHAEAN: ScriptExtension = ScriptExtension::new(0, 0x80000, 0);
+ /// Manichaean
+ pub const MANI: ScriptExtension = MANICHAEAN;
+ /// Marchen
+ pub const MARCHEN: ScriptExtension = ScriptExtension::new(0, 0x100000, 0);
+ /// Marchen
+ pub const MARC: ScriptExtension = MARCHEN;
+ /// Medefaidrin
+ pub const MEDEFAIDRIN: ScriptExtension = ScriptExtension::new(0, 0x200000, 0);
+ /// Medefaidrin
+ pub const MEDF: ScriptExtension = MEDEFAIDRIN;
+ /// Mende_Kikakui
+ pub const MENDE_KIKAKUI: ScriptExtension = ScriptExtension::new(0, 0x400000, 0);
+ /// Mende_Kikakui
+ pub const MEND: ScriptExtension = MENDE_KIKAKUI;
+ /// Meroitic_Cursive
+ pub const MEROITIC_CURSIVE: ScriptExtension = ScriptExtension::new(0, 0x800000, 0);
+ /// Meroitic_Cursive
+ pub const MERC: ScriptExtension = MEROITIC_CURSIVE;
+ /// Meroitic_Hieroglyphs
+ pub const MEROITIC_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0, 0x1000000, 0);
+ /// Meroitic_Hieroglyphs
+ pub const MERO: ScriptExtension = MEROITIC_HIEROGLYPHS;
+ /// Malayalam
+ pub const MALAYALAM: ScriptExtension = ScriptExtension::new(0, 0x2000000, 0);
+ /// Malayalam
+ pub const MLYM: ScriptExtension = MALAYALAM;
+ /// Modi
+ pub const MODI: ScriptExtension = ScriptExtension::new(0, 0x4000000, 0);
+ /// Mongolian
+ pub const MONGOLIAN: ScriptExtension = ScriptExtension::new(0, 0x8000000, 0);
+ /// Mongolian
+ pub const MONG: ScriptExtension = MONGOLIAN;
+ /// Mro
+ pub const MRO: ScriptExtension = ScriptExtension::new(0, 0x10000000, 0);
+ /// Mro
+ pub const MROO: ScriptExtension = MRO;
+ /// Meetei_Mayek
+ pub const MEETEI_MAYEK: ScriptExtension = ScriptExtension::new(0, 0x20000000, 0);
+ /// Meetei_Mayek
+ pub const MTEI: ScriptExtension = MEETEI_MAYEK;
+ /// Multani
+ pub const MULTANI: ScriptExtension = ScriptExtension::new(0, 0x40000000, 0);
+ /// Multani
+ pub const MULT: ScriptExtension = MULTANI;
+ /// Myanmar
+ pub const MYANMAR: ScriptExtension = ScriptExtension::new(0, 0x80000000, 0);
+ /// Myanmar
+ pub const MYMR: ScriptExtension = MYANMAR;
+ /// Nag_Mundari
+ pub const NAG_MUNDARI: ScriptExtension = ScriptExtension::new(0, 0x100000000, 0);
+ /// Nag_Mundari
+ pub const NAGM: ScriptExtension = NAG_MUNDARI;
+ /// Nandinagari
+ pub const NANDINAGARI: ScriptExtension = ScriptExtension::new(0, 0x200000000, 0);
+ /// Nandinagari
+ pub const NAND: ScriptExtension = NANDINAGARI;
+ /// Old_North_Arabian
+ pub const OLD_NORTH_ARABIAN: ScriptExtension = ScriptExtension::new(0, 0x400000000, 0);
+ /// Old_North_Arabian
+ pub const NARB: ScriptExtension = OLD_NORTH_ARABIAN;
+ /// Nabataean
+ pub const NABATAEAN: ScriptExtension = ScriptExtension::new(0, 0x800000000, 0);
+ /// Nabataean
+ pub const NBAT: ScriptExtension = NABATAEAN;
+ /// Newa
+ pub const NEWA: ScriptExtension = ScriptExtension::new(0, 0x1000000000, 0);
+ /// Nko
+ pub const NKO: ScriptExtension = ScriptExtension::new(0, 0x2000000000, 0);
+ /// Nko
+ pub const NKOO: ScriptExtension = NKO;
+ /// Nushu
+ pub const NUSHU: ScriptExtension = ScriptExtension::new(0, 0x4000000000, 0);
+ /// Nushu
+ pub const NSHU: ScriptExtension = NUSHU;
+ /// Ogham
+ pub const OGHAM: ScriptExtension = ScriptExtension::new(0, 0x8000000000, 0);
+ /// Ogham
+ pub const OGAM: ScriptExtension = OGHAM;
+ /// Ol_Chiki
+ pub const OL_CHIKI: ScriptExtension = ScriptExtension::new(0, 0x10000000000, 0);
+ /// Ol_Chiki
+ pub const OLCK: ScriptExtension = OL_CHIKI;
+ /// Ol_Onal
+ pub const OL_ONAL: ScriptExtension = ScriptExtension::new(0, 0x20000000000, 0);
+ /// Ol_Onal
+ pub const ONAO: ScriptExtension = OL_ONAL;
+ /// Old_Turkic
+ pub const OLD_TURKIC: ScriptExtension = ScriptExtension::new(0, 0x40000000000, 0);
+ /// Old_Turkic
+ pub const ORKH: ScriptExtension = OLD_TURKIC;
+ /// Oriya
+ pub const ORIYA: ScriptExtension = ScriptExtension::new(0, 0x80000000000, 0);
+ /// Oriya
+ pub const ORYA: ScriptExtension = ORIYA;
+ /// Osage
+ pub const OSAGE: ScriptExtension = ScriptExtension::new(0, 0x100000000000, 0);
+ /// Osage
+ pub const OSGE: ScriptExtension = OSAGE;
+ /// Osmanya
+ pub const OSMANYA: ScriptExtension = ScriptExtension::new(0, 0x200000000000, 0);
+ /// Osmanya
+ pub const OSMA: ScriptExtension = OSMANYA;
+ /// Old_Uyghur
+ pub const OLD_UYGHUR: ScriptExtension = ScriptExtension::new(0, 0x400000000000, 0);
+ /// Old_Uyghur
+ pub const OUGR: ScriptExtension = OLD_UYGHUR;
+ /// Palmyrene
+ pub const PALMYRENE: ScriptExtension = ScriptExtension::new(0, 0x800000000000, 0);
+ /// Palmyrene
+ pub const PALM: ScriptExtension = PALMYRENE;
+ /// Pau_Cin_Hau
+ pub const PAU_CIN_HAU: ScriptExtension = ScriptExtension::new(0, 0x1000000000000, 0);
+ /// Pau_Cin_Hau
+ pub const PAUC: ScriptExtension = PAU_CIN_HAU;
+ /// Old_Permic
+ pub const OLD_PERMIC: ScriptExtension = ScriptExtension::new(0, 0x2000000000000, 0);
+ /// Old_Permic
+ pub const PERM: ScriptExtension = OLD_PERMIC;
+ /// Phags_Pa
+ pub const PHAGS_PA: ScriptExtension = ScriptExtension::new(0, 0x4000000000000, 0);
+ /// Phags_Pa
+ pub const PHAG: ScriptExtension = PHAGS_PA;
+ /// Inscriptional_Pahlavi
+ pub const INSCRIPTIONAL_PAHLAVI: ScriptExtension = ScriptExtension::new(0, 0x8000000000000, 0);
+ /// Inscriptional_Pahlavi
+ pub const PHLI: ScriptExtension = INSCRIPTIONAL_PAHLAVI;
+ /// Psalter_Pahlavi
+ pub const PSALTER_PAHLAVI: ScriptExtension = ScriptExtension::new(0, 0x10000000000000, 0);
+ /// Psalter_Pahlavi
+ pub const PHLP: ScriptExtension = PSALTER_PAHLAVI;
+ /// Phoenician
+ pub const PHOENICIAN: ScriptExtension = ScriptExtension::new(0, 0x20000000000000, 0);
+ /// Phoenician
+ pub const PHNX: ScriptExtension = PHOENICIAN;
+ /// Miao
+ pub const MIAO: ScriptExtension = ScriptExtension::new(0, 0x40000000000000, 0);
+ /// Miao
+ pub const PLRD: ScriptExtension = MIAO;
+ /// Inscriptional_Parthian
+ pub const INSCRIPTIONAL_PARTHIAN: ScriptExtension = ScriptExtension::new(0, 0x80000000000000, 0);
+ /// Inscriptional_Parthian
+ pub const PRTI: ScriptExtension = INSCRIPTIONAL_PARTHIAN;
+ /// Rejang
+ pub const REJANG: ScriptExtension = ScriptExtension::new(0, 0x100000000000000, 0);
+ /// Rejang
+ pub const RJNG: ScriptExtension = REJANG;
+ /// Hanifi_Rohingya
+ pub const HANIFI_ROHINGYA: ScriptExtension = ScriptExtension::new(0, 0x200000000000000, 0);
+ /// Hanifi_Rohingya
+ pub const ROHG: ScriptExtension = HANIFI_ROHINGYA;
+ /// Runic
+ pub const RUNIC: ScriptExtension = ScriptExtension::new(0, 0x400000000000000, 0);
+ /// Runic
+ pub const RUNR: ScriptExtension = RUNIC;
+ /// Samaritan
+ pub const SAMARITAN: ScriptExtension = ScriptExtension::new(0, 0x800000000000000, 0);
+ /// Samaritan
+ pub const SAMR: ScriptExtension = SAMARITAN;
+ /// Old_South_Arabian
+ pub const OLD_SOUTH_ARABIAN: ScriptExtension = ScriptExtension::new(0, 0x1000000000000000, 0);
+ /// Old_South_Arabian
+ pub const SARB: ScriptExtension = OLD_SOUTH_ARABIAN;
+ /// Saurashtra
+ pub const SAURASHTRA: ScriptExtension = ScriptExtension::new(0, 0x2000000000000000, 0);
+ /// Saurashtra
+ pub const SAUR: ScriptExtension = SAURASHTRA;
+ /// SignWriting
+ pub const SIGNWRITING: ScriptExtension = ScriptExtension::new(0, 0x4000000000000000, 0);
+ /// SignWriting
+ pub const SGNW: ScriptExtension = SIGNWRITING;
+ /// Shavian
+ pub const SHAVIAN: ScriptExtension = ScriptExtension::new(0, 0x8000000000000000, 0);
+ /// Shavian
+ pub const SHAW: ScriptExtension = SHAVIAN;
+ /// Sharada
+ pub const SHARADA: ScriptExtension = ScriptExtension::new(0, 0, 0x1);
+ /// Sharada
+ pub const SHRD: ScriptExtension = SHARADA;
+ /// Siddham
+ pub const SIDDHAM: ScriptExtension = ScriptExtension::new(0, 0, 0x2);
+ /// Siddham
+ pub const SIDD: ScriptExtension = SIDDHAM;
+ /// Khudawadi
+ pub const KHUDAWADI: ScriptExtension = ScriptExtension::new(0, 0, 0x4);
+ /// Khudawadi
+ pub const SIND: ScriptExtension = KHUDAWADI;
+ /// Sinhala
+ pub const SINHALA: ScriptExtension = ScriptExtension::new(0, 0, 0x8);
+ /// Sinhala
+ pub const SINH: ScriptExtension = SINHALA;
+ /// Sogdian
+ pub const SOGDIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x10);
+ /// Sogdian
+ pub const SOGD: ScriptExtension = SOGDIAN;
+ /// Old_Sogdian
+ pub const OLD_SOGDIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x20);
+ /// Old_Sogdian
+ pub const SOGO: ScriptExtension = OLD_SOGDIAN;
+ /// Sora_Sompeng
+ pub const SORA_SOMPENG: ScriptExtension = ScriptExtension::new(0, 0, 0x40);
+ /// Sora_Sompeng
+ pub const SORA: ScriptExtension = SORA_SOMPENG;
+ /// Soyombo
+ pub const SOYOMBO: ScriptExtension = ScriptExtension::new(0, 0, 0x80);
+ /// Soyombo
+ pub const SOYO: ScriptExtension = SOYOMBO;
+ /// Sundanese
+ pub const SUNDANESE: ScriptExtension = ScriptExtension::new(0, 0, 0x100);
+ /// Sundanese
+ pub const SUND: ScriptExtension = SUNDANESE;
+ /// Sunuwar
+ pub const SUNUWAR: ScriptExtension = ScriptExtension::new(0, 0, 0x200);
+ /// Sunuwar
+ pub const SUNU: ScriptExtension = SUNUWAR;
+ /// Syloti_Nagri
+ pub const SYLOTI_NAGRI: ScriptExtension = ScriptExtension::new(0, 0, 0x400);
+ /// Syloti_Nagri
+ pub const SYLO: ScriptExtension = SYLOTI_NAGRI;
+ /// Syriac
+ pub const SYRIAC: ScriptExtension = ScriptExtension::new(0, 0, 0x800);
+ /// Syriac
+ pub const SYRC: ScriptExtension = SYRIAC;
+ /// Tagbanwa
+ pub const TAGBANWA: ScriptExtension = ScriptExtension::new(0, 0, 0x1000);
+ /// Tagbanwa
+ pub const TAGB: ScriptExtension = TAGBANWA;
+ /// Takri
+ pub const TAKRI: ScriptExtension = ScriptExtension::new(0, 0, 0x2000);
+ /// Takri
+ pub const TAKR: ScriptExtension = TAKRI;
+ /// Tai_Le
+ pub const TAI_LE: ScriptExtension = ScriptExtension::new(0, 0, 0x4000);
+ /// Tai_Le
+ pub const TALE: ScriptExtension = TAI_LE;
+ /// New_Tai_Lue
+ pub const NEW_TAI_LUE: ScriptExtension = ScriptExtension::new(0, 0, 0x8000);
+ /// New_Tai_Lue
+ pub const TALU: ScriptExtension = NEW_TAI_LUE;
+ /// Tamil
+ pub const TAMIL: ScriptExtension = ScriptExtension::new(0, 0, 0x10000);
+ /// Tamil
+ pub const TAML: ScriptExtension = TAMIL;
+ /// Tangut
+ pub const TANGUT: ScriptExtension = ScriptExtension::new(0, 0, 0x20000);
+ /// Tangut
+ pub const TANG: ScriptExtension = TANGUT;
+ /// Tai_Viet
+ pub const TAI_VIET: ScriptExtension = ScriptExtension::new(0, 0, 0x40000);
+ /// Tai_Viet
+ pub const TAVT: ScriptExtension = TAI_VIET;
+ /// Telugu
+ pub const TELUGU: ScriptExtension = ScriptExtension::new(0, 0, 0x80000);
+ /// Telugu
+ pub const TELU: ScriptExtension = TELUGU;
+ /// Tifinagh
+ pub const TIFINAGH: ScriptExtension = ScriptExtension::new(0, 0, 0x100000);
+ /// Tifinagh
+ pub const TFNG: ScriptExtension = TIFINAGH;
+ /// Tagalog
+ pub const TAGALOG: ScriptExtension = ScriptExtension::new(0, 0, 0x200000);
+ /// Tagalog
+ pub const TGLG: ScriptExtension = TAGALOG;
+ /// Thaana
+ pub const THAANA: ScriptExtension = ScriptExtension::new(0, 0, 0x400000);
+ /// Thaana
+ pub const THAA: ScriptExtension = THAANA;
+ /// Thai
+ pub const THAI: ScriptExtension = ScriptExtension::new(0, 0, 0x800000);
+ /// Tibetan
+ pub const TIBETAN: ScriptExtension = ScriptExtension::new(0, 0, 0x1000000);
+ /// Tibetan
+ pub const TIBT: ScriptExtension = TIBETAN;
+ /// Tirhuta
+ pub const TIRHUTA: ScriptExtension = ScriptExtension::new(0, 0, 0x2000000);
+ /// Tirhuta
+ pub const TIRH: ScriptExtension = TIRHUTA;
+ /// Tangsa
+ pub const TANGSA: ScriptExtension = ScriptExtension::new(0, 0, 0x4000000);
+ /// Tangsa
+ pub const TNSA: ScriptExtension = TANGSA;
+ /// Todhri
+ pub const TODHRI: ScriptExtension = ScriptExtension::new(0, 0, 0x8000000);
+ /// Todhri
+ pub const TODR: ScriptExtension = TODHRI;
+ /// Toto
+ pub const TOTO: ScriptExtension = ScriptExtension::new(0, 0, 0x10000000);
+ /// Tulu_Tigalari
+ pub const TULU_TIGALARI: ScriptExtension = ScriptExtension::new(0, 0, 0x20000000);
+ /// Tulu_Tigalari
+ pub const TUTG: ScriptExtension = TULU_TIGALARI;
+ /// Ugaritic
+ pub const UGARITIC: ScriptExtension = ScriptExtension::new(0, 0, 0x40000000);
+ /// Ugaritic
+ pub const UGAR: ScriptExtension = UGARITIC;
+ /// Vai
+ pub const VAI: ScriptExtension = ScriptExtension::new(0, 0, 0x80000000);
+ /// Vai
+ pub const VAII: ScriptExtension = VAI;
+ /// Vithkuqi
+ pub const VITHKUQI: ScriptExtension = ScriptExtension::new(0, 0, 0x100000000);
+ /// Vithkuqi
+ pub const VITH: ScriptExtension = VITHKUQI;
+ /// Warang_Citi
+ pub const WARANG_CITI: ScriptExtension = ScriptExtension::new(0, 0, 0x200000000);
+ /// Warang_Citi
+ pub const WARA: ScriptExtension = WARANG_CITI;
+ /// Wancho
+ pub const WANCHO: ScriptExtension = ScriptExtension::new(0, 0, 0x400000000);
+ /// Wancho
+ pub const WCHO: ScriptExtension = WANCHO;
+ /// Old_Persian
+ pub const OLD_PERSIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x800000000);
+ /// Old_Persian
+ pub const XPEO: ScriptExtension = OLD_PERSIAN;
+ /// Cuneiform
+ pub const CUNEIFORM: ScriptExtension = ScriptExtension::new(0, 0, 0x1000000000);
+ /// Cuneiform
+ pub const XSUX: ScriptExtension = CUNEIFORM;
+ /// Yezidi
+ pub const YEZIDI: ScriptExtension = ScriptExtension::new(0, 0, 0x2000000000);
+ /// Yezidi
+ pub const YEZI: ScriptExtension = YEZIDI;
+ /// Yi
+ pub const YI: ScriptExtension = ScriptExtension::new(0, 0, 0x4000000000);
+ /// Yi
+ pub const YIII: ScriptExtension = YI;
+ /// Zanabazar_Square
+ pub const ZANABAZAR_SQUARE: ScriptExtension = ScriptExtension::new(0, 0, 0x8000000000);
+ /// Zanabazar_Square
+ pub const ZANB: ScriptExtension = ZANABAZAR_SQUARE;
+ /// Avestan, Carian, Coptic, Duployan, Elbasan, Georgian, Glagolitic, Gunjala_Gondi, Gothic, Greek, Han, Latin, Lydian, Mahajani, Old_Permic, Shavian
+ pub const AVST_CARI_COPT_DUPL_ELBA_GEOR_GLAG_GONG_GOTH_GREK_HANI_LATN_LYDI_MAHJ_PERM_SHAW: ScriptExtension = AVST.union(CARI).union(COPT).union(DUPL).union(ELBA).union(GEOR).union(GLAG).union(GONG).union(GOTH).union(GREK).union(HANI).union(LATN).union(LYDI).union(MAHJ).union(PERM).union(SHAW);
+ /// Bengali, Cyrillic, Devanagari, Latin, Lisu, Thai, Toto
+ pub const BENG_CYRL_DEVA_LATN_LISU_THAI_TOTO: ScriptExtension = BENG.union(CYRL).union(DEVA).union(LATN).union(LISU).union(THAI).union(TOTO);
+ /// Bopomofo, Latin
+ pub const BOPO_LATN: ScriptExtension = BOPO.union(LATN);
+ /// Latin, Lisu
+ pub const LATN_LISU: ScriptExtension = LATN.union(LISU);
+ /// Latin, Thai
+ pub const LATN_THAI: ScriptExtension = LATN.union(THAI);
+ /// Cherokee, Coptic, Cyrillic, Greek, Latin, Old_Permic, Sunuwar, Tai_Le
+ pub const CHER_COPT_CYRL_GREK_LATN_PERM_SUNU_TALE: ScriptExtension = CHER.union(COPT).union(CYRL).union(GREK).union(LATN).union(PERM).union(SUNU).union(TALE);
+ /// Cherokee, Cyrillic, Greek, Latin, Osage, Sunuwar, Tai_Le, Todhri
+ pub const CHER_CYRL_GREK_LATN_OSGE_SUNU_TALE_TODR: ScriptExtension = CHER.union(CYRL).union(GREK).union(LATN).union(OSGE).union(SUNU).union(TALE).union(TODR);
+ /// Cherokee, Cyrillic, Latin, Tifinagh
+ pub const CHER_CYRL_LATN_TFNG: ScriptExtension = CHER.union(CYRL).union(LATN).union(TFNG);
+ /// Glagolitic, Latin, Sunuwar, Syriac, Thai
+ pub const GLAG_LATN_SUNU_SYRC_THAI: ScriptExtension = GLAG.union(LATN).union(SUNU).union(SYRC).union(THAI);
+ /// Caucasian_Albanian, Cherokee, Coptic, Cyrillic, Gothic, Greek, Latin, Osage, Syriac, Tifinagh, Todhri
+ pub const AGHB_CHER_COPT_CYRL_GOTH_GREK_LATN_OSGE_SYRC_TFNG_TODR: ScriptExtension = AGHB.union(CHER).union(COPT).union(CYRL).union(GOTH).union(GREK).union(LATN).union(OSGE).union(SYRC).union(TFNG).union(TODR);
+ /// Coptic, Elbasan, Glagolitic, Gothic, Katakana, Latin
+ pub const COPT_ELBA_GLAG_GOTH_KANA_LATN: ScriptExtension = COPT.union(ELBA).union(GLAG).union(GOTH).union(KANA).union(LATN);
+ /// Cyrillic, Greek, Latin, Old_Permic
+ pub const CYRL_GREK_LATN_PERM: ScriptExtension = CYRL.union(GREK).union(LATN).union(PERM);
+ /// Coptic, Duployan, Hebrew, Latin, Old_Permic, Syriac, Tai_Le, Tifinagh, Todhri
+ pub const COPT_DUPL_HEBR_LATN_PERM_SYRC_TALE_TFNG_TODR: ScriptExtension = COPT.union(DUPL).union(HEBR).union(LATN).union(PERM).union(SYRC).union(TALE).union(TFNG).union(TODR);
+ /// Armenian, Cyrillic, Duployan, Gothic, Greek, Hebrew, Latin, Old_Permic, Syriac, Tai_Le
+ pub const ARMN_CYRL_DUPL_GOTH_GREK_HEBR_LATN_PERM_SYRC_TALE: ScriptExtension = ARMN.union(CYRL).union(DUPL).union(GOTH).union(GREK).union(HEBR).union(LATN).union(PERM).union(SYRC).union(TALE);
+ /// Latin, Tifinagh
+ pub const LATN_TFNG: ScriptExtension = LATN.union(TFNG);
+ /// Duployan, Latin, Syriac
+ pub const DUPL_LATN_SYRC: ScriptExtension = DUPL.union(LATN).union(SYRC);
+ /// Cherokee, Cyrillic, Latin, Osage
+ pub const CHER_CYRL_LATN_OSGE: ScriptExtension = CHER.union(CYRL).union(LATN).union(OSGE);
+ /// Cherokee, Latin, Tai_Le
+ pub const CHER_LATN_TALE: ScriptExtension = CHER.union(LATN).union(TALE);
+ /// Latin, Sunuwar
+ pub const LATN_SUNU: ScriptExtension = LATN.union(SUNU);
+ /// Ethiopic, Latin
+ pub const ETHI_LATN: ScriptExtension = ETHI.union(LATN);
+ /// Cyrillic, Latin, Todhri
+ pub const CYRL_LATN_TODR: ScriptExtension = CYRL.union(LATN).union(TODR);
+ /// Greek, Latin, Old_Permic, Todhri
+ pub const GREK_LATN_PERM_TODR: ScriptExtension = GREK.union(LATN).union(PERM).union(TODR);
+ /// Latin, Syriac
+ pub const LATN_SYRC: ScriptExtension = LATN.union(SYRC);
+ /// Cherokee, Duployan, Katakana, Latin, Syriac
+ pub const CHER_DUPL_KANA_LATN_SYRC: ScriptExtension = CHER.union(DUPL).union(KANA).union(LATN).union(SYRC);
+ /// Cherokee, Duployan, Latin, Syriac
+ pub const CHER_DUPL_LATN_SYRC: ScriptExtension = CHER.union(DUPL).union(LATN).union(SYRC);
+ /// Latin, Sunuwar, Syriac
+ pub const LATN_SUNU_SYRC: ScriptExtension = LATN.union(SUNU).union(SYRC);
+ /// Cherokee, Latin, Syriac
+ pub const CHER_LATN_SYRC: ScriptExtension = CHER.union(LATN).union(SYRC);
+ /// Caucasian_Albanian, Cherokee, Gothic, Latin, Sunuwar, Thai
+ pub const AGHB_CHER_GOTH_LATN_SUNU_THAI: ScriptExtension = AGHB.union(CHER).union(GOTH).union(LATN).union(SUNU).union(THAI);
+ /// Latin, Osage
+ pub const LATN_OSGE: ScriptExtension = LATN.union(OSGE);
+ /// Caucasian_Albanian, Latin, Todhri
+ pub const AGHB_LATN_TODR: ScriptExtension = AGHB.union(LATN).union(TODR);
+ /// Coptic, Greek
+ pub const COPT_GREK: ScriptExtension = COPT.union(GREK);
+ /// Cyrillic, Old_Permic
+ pub const CYRL_PERM: ScriptExtension = CYRL.union(PERM);
+ /// Cyrillic, Glagolitic
+ pub const CYRL_GLAG: ScriptExtension = CYRL.union(GLAG);
+ /// Cyrillic, Latin
+ pub const CYRL_LATN: ScriptExtension = CYRL.union(LATN);
+ /// Armenian, Georgian, Glagolitic
+ pub const ARMN_GEOR_GLAG: ScriptExtension = ARMN.union(GEOR).union(GLAG);
+ /// Arabic, Garay, Nko, Hanifi_Rohingya, Syriac, Thaana, Yezidi
+ pub const ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI: ScriptExtension = ARAB.union(GARA).union(NKOO).union(ROHG).union(SYRC).union(THAA).union(YEZI);
+ /// Arabic, Syriac, Thaana
+ pub const ARAB_SYRC_THAA: ScriptExtension = ARAB.union(SYRC).union(THAA);
+ /// Adlam, Arabic, Garay, Nko, Hanifi_Rohingya, Syriac, Thaana, Yezidi
+ pub const ADLM_ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI: ScriptExtension = ADLM.union(ARAB).union(GARA).union(NKOO).union(ROHG).union(SYRC).union(THAA).union(YEZI);
+ /// Adlam, Arabic, Mandaic, Manichaean, Old_Uyghur, Psalter_Pahlavi, Hanifi_Rohingya, Sogdian, Syriac
+ pub const ADLM_ARAB_MAND_MANI_OUGR_PHLP_ROHG_SOGD_SYRC: ScriptExtension = ADLM.union(ARAB).union(MAND).union(MANI).union(OUGR).union(PHLP).union(ROHG).union(SOGD).union(SYRC);
+ /// Arabic, Syriac
+ pub const ARAB_SYRC: ScriptExtension = ARAB.union(SYRC);
+ /// Arabic, Thaana, Yezidi
+ pub const ARAB_THAA_YEZI: ScriptExtension = ARAB.union(THAA).union(YEZI);
+ /// Arabic, Hanifi_Rohingya
+ pub const ARAB_ROHG: ScriptExtension = ARAB.union(ROHG);
+ /// Bengali, Devanagari, Grantha, Gujarati, Gurmukhi, Kannada, Latin, Malayalam, Oriya, Sharada, Tamil, Telugu, Tirhuta
+ pub const BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_ORYA_SHRD_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(LATN).union(MLYM).union(ORYA).union(SHRD).union(TAML).union(TELU).union(TIRH);
+ /// Bengali, Devanagari, Grantha, Gujarati, Gurmukhi, Kannada, Latin, Malayalam, Oriya, Tamil, Telugu, Tirhuta
+ pub const BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_ORYA_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(LATN).union(MLYM).union(ORYA).union(TAML).union(TELU).union(TIRH);
+ /// Bengali, Devanagari, Dogra, Gunjala_Gondi, Masaram_Gondi, Grantha, Gujarati, Gurmukhi, Kannada, Mahajani, Malayalam, Nandinagari, Ol_Onal, Oriya, Khudawadi, Sinhala, Syloti_Nagri, Takri, Tamil, Telugu, Tirhuta
+ pub const BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(DOGR).union(GONG).union(GONM).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(MAHJ).union(MLYM).union(NAND).union(ONAO).union(ORYA).union(SIND).union(SINH).union(SYLO).union(TAKR).union(TAML).union(TELU).union(TIRH);
+ /// Bengali, Devanagari, Dogra, Gunjala_Gondi, Masaram_Gondi, Grantha, Gujarati, Gurung_Khema, Gurmukhi, Kannada, Limbu, Mahajani, Malayalam, Nandinagari, Ol_Onal, Oriya, Khudawadi, Sinhala, Syloti_Nagri, Takri, Tamil, Telugu, Tirhuta
+ pub const BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GUKH_GURU_KNDA_LIMB_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(DOGR).union(GONG).union(GONM).union(GRAN).union(GUJR).union(GUKH).union(GURU).union(KNDA).union(LIMB).union(MAHJ).union(MLYM).union(NAND).union(ONAO).union(ORYA).union(SIND).union(SINH).union(SYLO).union(TAKR).union(TAML).union(TELU).union(TIRH);
+ /// Devanagari, Dogra, Kaithi, Mahajani
+ pub const DEVA_DOGR_KTHI_MAHJ: ScriptExtension = DEVA.union(DOGR).union(KTHI).union(MAHJ);
+ /// Bengali, Chakma, Syloti_Nagri
+ pub const BENG_CAKM_SYLO: ScriptExtension = BENG.union(CAKM).union(SYLO);
+ /// Gurmukhi, Multani
+ pub const GURU_MULT: ScriptExtension = GURU.union(MULT);
+ /// Gujarati, Khojki
+ pub const GUJR_KHOJ: ScriptExtension = GUJR.union(KHOJ);
+ /// Grantha, Tamil
+ pub const GRAN_TAML: ScriptExtension = GRAN.union(TAML);
+ /// Kannada, Nandinagari, Tulu_Tigalari
+ pub const KNDA_NAND_TUTG: ScriptExtension = KNDA.union(NAND).union(TUTG);
+ /// Chakma, Myanmar, Tai_Le
+ pub const CAKM_MYMR_TALE: ScriptExtension = CAKM.union(MYMR).union(TALE);
+ /// Georgian, Glagolitic, Latin
+ pub const GEOR_GLAG_LATN: ScriptExtension = GEOR.union(GLAG).union(LATN);
+ /// Buhid, Hanunoo, Tagbanwa, Tagalog
+ pub const BUHD_HANO_TAGB_TGLG: ScriptExtension = BUHD.union(HANO).union(TAGB).union(TGLG);
+ /// Mongolian, Phags_Pa
+ pub const MONG_PHAG: ScriptExtension = MONG.union(PHAG);
+ /// Bengali, Devanagari, Grantha, Kannada
+ pub const BENG_DEVA_GRAN_KNDA: ScriptExtension = BENG.union(DEVA).union(GRAN).union(KNDA);
+ /// Devanagari, Grantha, Kannada
+ pub const DEVA_GRAN_KNDA: ScriptExtension = DEVA.union(GRAN).union(KNDA);
+ /// Bengali, Devanagari
+ pub const BENG_DEVA: ScriptExtension = BENG.union(DEVA);
+ /// Devanagari, Sharada
+ pub const DEVA_SHRD: ScriptExtension = DEVA.union(SHRD);
+ /// Devanagari, Kannada, Malayalam, Oriya, Tamil, Telugu
+ pub const DEVA_KNDA_MLYM_ORYA_TAML_TELU: ScriptExtension = DEVA.union(KNDA).union(MLYM).union(ORYA).union(TAML).union(TELU);
+ /// Devanagari, Nandinagari
+ pub const DEVA_NAND: ScriptExtension = DEVA.union(NAND);
+ /// Bengali, Devanagari, Grantha, Kannada, Malayalam, Nandinagari, Oriya, Sinhala, Telugu, Tirhuta, Tulu_Tigalari
+ pub const BENG_DEVA_GRAN_KNDA_MLYM_NAND_ORYA_SINH_TELU_TIRH_TUTG: ScriptExtension = BENG.union(DEVA).union(GRAN).union(KNDA).union(MLYM).union(NAND).union(ORYA).union(SINH).union(TELU).union(TIRH).union(TUTG);
+ /// Devanagari, Grantha
+ pub const DEVA_GRAN: ScriptExtension = DEVA.union(GRAN);
+ /// Devanagari, Grantha, Kannada, Tulu_Tigalari
+ pub const DEVA_GRAN_KNDA_TUTG: ScriptExtension = DEVA.union(GRAN).union(KNDA).union(TUTG);
+ /// Cyrillic, Latin, Syriac
+ pub const CYRL_LATN_SYRC: ScriptExtension = CYRL.union(LATN).union(SYRC);
+ /// Latin, Mongolian, Phags_Pa
+ pub const LATN_MONG_PHAG: ScriptExtension = LATN.union(MONG).union(PHAG);
+ /// Adlam, Arabic
+ pub const ADLM_ARAB: ScriptExtension = ADLM.union(ARAB);
+ /// Carian, Georgian, Glagolitic, Old_Hungarian, Lycian, Old_Turkic
+ pub const CARI_GEOR_GLAG_HUNG_LYCI_ORKH: ScriptExtension = CARI.union(GEOR).union(GLAG).union(HUNG).union(LYCI).union(ORKH);
+ /// Carian, Greek, Old_Hungarian, Meroitic_Hieroglyphs
+ pub const CARI_GREK_HUNG_MERO: ScriptExtension = CARI.union(GREK).union(HUNG).union(MERO);
+ /// Devanagari, Grantha, Latin
+ pub const DEVA_GRAN_LATN: ScriptExtension = DEVA.union(GRAN).union(LATN);
+ /// Coptic, Latin
+ pub const COPT_LATN: ScriptExtension = COPT.union(LATN);
+ /// Avestan, Old_Turkic
+ pub const AVST_ORKH: ScriptExtension = AVST.union(ORKH);
+ /// Avestan, Carian, Georgian, Old_Hungarian, Kaithi, Lydian, Samaritan
+ pub const AVST_CARI_GEOR_HUNG_KTHI_LYDI_SAMR: ScriptExtension = AVST.union(CARI).union(GEOR).union(HUNG).union(KTHI).union(LYDI).union(SAMR);
+ /// Adlam, Arabic, Old_Hungarian
+ pub const ADLM_ARAB_HUNG: ScriptExtension = ADLM.union(ARAB).union(HUNG);
+ /// Han, Tangut
+ pub const HANI_TANG: ScriptExtension = HANI.union(TANG);
+ /// Bopomofo, Hangul, Han, Hiragana, Katakana, Mongolian, Yi
+ pub const BOPO_HANG_HANI_HIRA_KANA_MONG_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(MONG).union(YIII);
+ /// Bopomofo, Hangul, Han, Hiragana, Katakana, Mongolian, Phags_Pa, Yi
+ pub const BOPO_HANG_HANI_HIRA_KANA_MONG_PHAG_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(MONG).union(PHAG).union(YIII);
+ /// Bopomofo, Hangul, Han, Hiragana, Katakana
+ pub const BOPO_HANG_HANI_HIRA_KANA: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA);
+ /// Bopomofo, Hangul, Han, Hiragana, Katakana, Mongolian, Tibetan, Yi
+ pub const BOPO_HANG_HANI_HIRA_KANA_MONG_TIBT_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(MONG).union(TIBT).union(YIII);
+ /// Bopomofo, Hangul, Han, Hiragana, Katakana, Lisu, Mongolian, Tibetan, Yi
+ pub const BOPO_HANG_HANI_HIRA_KANA_LISU_MONG_TIBT_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(LISU).union(MONG).union(TIBT).union(YIII);
+ /// Bopomofo, Hangul, Han, Hiragana, Katakana, Yi
+ pub const BOPO_HANG_HANI_HIRA_KANA_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(YIII);
+ /// Bopomofo, Han
+ pub const BOPO_HANI: ScriptExtension = BOPO.union(HANI);
+ /// Hiragana, Katakana
+ pub const HIRA_KANA: ScriptExtension = HIRA.union(KANA);
+ /// Han, Hiragana, Katakana
+ pub const HANI_HIRA_KANA: ScriptExtension = HANI.union(HIRA).union(KANA);
+ /// Han, Latin
+ pub const HANI_LATN: ScriptExtension = HANI.union(LATN);
+ /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kannada, Kaithi, Mahajani, Malayalam, Modi, Nandinagari, Sharada, Khudawadi, Takri, Tirhuta, Tulu_Tigalari
+ pub const DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MLYM_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KNDA).union(KTHI).union(MAHJ).union(MLYM).union(MODI).union(NAND).union(SHRD).union(SIND).union(TAKR).union(TIRH).union(TUTG);
+ /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kannada, Kaithi, Mahajani, Modi, Nandinagari, Sharada, Khudawadi, Takri, Tirhuta, Tulu_Tigalari
+ pub const DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KNDA).union(KTHI).union(MAHJ).union(MODI).union(NAND).union(SHRD).union(SIND).union(TAKR).union(TIRH).union(TUTG);
+ /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kaithi, Mahajani, Modi, Khudawadi, Takri, Tirhuta
+ pub const DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KTHI).union(MAHJ).union(MODI).union(SIND).union(TAKR).union(TIRH);
+ /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kaithi, Mahajani, Modi, Sharada, Khudawadi, Takri, Tirhuta
+ pub const DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SHRD_SIND_TAKR_TIRH: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KTHI).union(MAHJ).union(MODI).union(SHRD).union(SIND).union(TAKR).union(TIRH);
+ /// Bengali, Devanagari, Tulu_Tigalari
+ pub const BENG_DEVA_TUTG: ScriptExtension = BENG.union(DEVA).union(TUTG);
+ /// Devanagari, Tamil
+ pub const DEVA_TAML: ScriptExtension = DEVA.union(TAML);
+ /// Kayah_Li, Latin, Myanmar
+ pub const KALI_LATN_MYMR: ScriptExtension = KALI.union(LATN).union(MYMR);
+ /// Buginese, Javanese
+ pub const BUGI_JAVA: ScriptExtension = BUGI.union(JAVA);
+ /// Arabic, Nko
+ pub const ARAB_NKOO: ScriptExtension = ARAB.union(NKOO);
+ /// Arabic, Thaana
+ pub const ARAB_THAA: ScriptExtension = ARAB.union(THAA);
+ /// Cypro_Minoan, Cypriot, Linear_B
+ pub const CPMN_CPRT_LINB: ScriptExtension = CPMN.union(CPRT).union(LINB);
+ /// Cypriot, Linear_B
+ pub const CPRT_LINB: ScriptExtension = CPRT.union(LINB);
+ /// Cypriot, Linear_A, Linear_B
+ pub const CPRT_LINA_LINB: ScriptExtension = CPRT.union(LINA).union(LINB);
+ /// Arabic, Coptic
+ pub const ARAB_COPT: ScriptExtension = ARAB.union(COPT);
+ /// Manichaean, Old_Uyghur
+ pub const MANI_OUGR: ScriptExtension = MANI.union(OUGR);
+}
+
+impl Script {
+
+ #[inline]
+ pub(crate) fn inner_full_name(self) -> &'static str {
+ match self {
+ Script::Unknown => "Unknown",
+ Script::Common => "Common",
+ Script::Inherited => "Inherited",
+ Script::Adlam => "Adlam",
+ Script::Caucasian_Albanian => "Caucasian_Albanian",
+ Script::Ahom => "Ahom",
+ Script::Arabic => "Arabic",
+ Script::Imperial_Aramaic => "Imperial_Aramaic",
+ Script::Armenian => "Armenian",
+ Script::Avestan => "Avestan",
+ Script::Balinese => "Balinese",
+ Script::Bamum => "Bamum",
+ Script::Bassa_Vah => "Bassa_Vah",
+ Script::Batak => "Batak",
+ Script::Bengali => "Bengali",
+ Script::Bhaiksuki => "Bhaiksuki",
+ Script::Bopomofo => "Bopomofo",
+ Script::Brahmi => "Brahmi",
+ Script::Braille => "Braille",
+ Script::Buginese => "Buginese",
+ Script::Buhid => "Buhid",
+ Script::Chakma => "Chakma",
+ Script::Canadian_Aboriginal => "Canadian_Aboriginal",
+ Script::Carian => "Carian",
+ Script::Cham => "Cham",
+ Script::Cherokee => "Cherokee",
+ Script::Chorasmian => "Chorasmian",
+ Script::Coptic => "Coptic",
+ Script::Cypro_Minoan => "Cypro_Minoan",
+ Script::Cypriot => "Cypriot",
+ Script::Cyrillic => "Cyrillic",
+ Script::Devanagari => "Devanagari",
+ Script::Dives_Akuru => "Dives_Akuru",
+ Script::Dogra => "Dogra",
+ Script::Deseret => "Deseret",
+ Script::Duployan => "Duployan",
+ Script::Egyptian_Hieroglyphs => "Egyptian_Hieroglyphs",
+ Script::Elbasan => "Elbasan",
+ Script::Elymaic => "Elymaic",
+ Script::Ethiopic => "Ethiopic",
+ Script::Garay => "Garay",
+ Script::Georgian => "Georgian",
+ Script::Glagolitic => "Glagolitic",
+ Script::Gunjala_Gondi => "Gunjala_Gondi",
+ Script::Masaram_Gondi => "Masaram_Gondi",
+ Script::Gothic => "Gothic",
+ Script::Grantha => "Grantha",
+ Script::Greek => "Greek",
+ Script::Gujarati => "Gujarati",
+ Script::Gurung_Khema => "Gurung_Khema",
+ Script::Gurmukhi => "Gurmukhi",
+ Script::Hangul => "Hangul",
+ Script::Han => "Han",
+ Script::Hanunoo => "Hanunoo",
+ Script::Hatran => "Hatran",
+ Script::Hebrew => "Hebrew",
+ Script::Hiragana => "Hiragana",
+ Script::Anatolian_Hieroglyphs => "Anatolian_Hieroglyphs",
+ Script::Pahawh_Hmong => "Pahawh_Hmong",
+ Script::Nyiakeng_Puachue_Hmong => "Nyiakeng_Puachue_Hmong",
+ Script::Old_Hungarian => "Old_Hungarian",
+ Script::Old_Italic => "Old_Italic",
+ Script::Javanese => "Javanese",
+ Script::Kayah_Li => "Kayah_Li",
+ Script::Katakana => "Katakana",
+ Script::Kawi => "Kawi",
+ Script::Kharoshthi => "Kharoshthi",
+ Script::Khmer => "Khmer",
+ Script::Khojki => "Khojki",
+ Script::Khitan_Small_Script => "Khitan_Small_Script",
+ Script::Kannada => "Kannada",
+ Script::Kirat_Rai => "Kirat_Rai",
+ Script::Kaithi => "Kaithi",
+ Script::Tai_Tham => "Tai_Tham",
+ Script::Lao => "Lao",
+ Script::Latin => "Latin",
+ Script::Lepcha => "Lepcha",
+ Script::Limbu => "Limbu",
+ Script::Linear_A => "Linear_A",
+ Script::Linear_B => "Linear_B",
+ Script::Lisu => "Lisu",
+ Script::Lycian => "Lycian",
+ Script::Lydian => "Lydian",
+ Script::Mahajani => "Mahajani",
+ Script::Makasar => "Makasar",
+ Script::Mandaic => "Mandaic",
+ Script::Manichaean => "Manichaean",
+ Script::Marchen => "Marchen",
+ Script::Medefaidrin => "Medefaidrin",
+ Script::Mende_Kikakui => "Mende_Kikakui",
+ Script::Meroitic_Cursive => "Meroitic_Cursive",
+ Script::Meroitic_Hieroglyphs => "Meroitic_Hieroglyphs",
+ Script::Malayalam => "Malayalam",
+ Script::Modi => "Modi",
+ Script::Mongolian => "Mongolian",
+ Script::Mro => "Mro",
+ Script::Meetei_Mayek => "Meetei_Mayek",
+ Script::Multani => "Multani",
+ Script::Myanmar => "Myanmar",
+ Script::Nag_Mundari => "Nag_Mundari",
+ Script::Nandinagari => "Nandinagari",
+ Script::Old_North_Arabian => "Old_North_Arabian",
+ Script::Nabataean => "Nabataean",
+ Script::Newa => "Newa",
+ Script::Nko => "Nko",
+ Script::Nushu => "Nushu",
+ Script::Ogham => "Ogham",
+ Script::Ol_Chiki => "Ol_Chiki",
+ Script::Ol_Onal => "Ol_Onal",
+ Script::Old_Turkic => "Old_Turkic",
+ Script::Oriya => "Oriya",
+ Script::Osage => "Osage",
+ Script::Osmanya => "Osmanya",
+ Script::Old_Uyghur => "Old_Uyghur",
+ Script::Palmyrene => "Palmyrene",
+ Script::Pau_Cin_Hau => "Pau_Cin_Hau",
+ Script::Old_Permic => "Old_Permic",
+ Script::Phags_Pa => "Phags_Pa",
+ Script::Inscriptional_Pahlavi => "Inscriptional_Pahlavi",
+ Script::Psalter_Pahlavi => "Psalter_Pahlavi",
+ Script::Phoenician => "Phoenician",
+ Script::Miao => "Miao",
+ Script::Inscriptional_Parthian => "Inscriptional_Parthian",
+ Script::Rejang => "Rejang",
+ Script::Hanifi_Rohingya => "Hanifi_Rohingya",
+ Script::Runic => "Runic",
+ Script::Samaritan => "Samaritan",
+ Script::Old_South_Arabian => "Old_South_Arabian",
+ Script::Saurashtra => "Saurashtra",
+ Script::SignWriting => "SignWriting",
+ Script::Shavian => "Shavian",
+ Script::Sharada => "Sharada",
+ Script::Siddham => "Siddham",
+ Script::Khudawadi => "Khudawadi",
+ Script::Sinhala => "Sinhala",
+ Script::Sogdian => "Sogdian",
+ Script::Old_Sogdian => "Old_Sogdian",
+ Script::Sora_Sompeng => "Sora_Sompeng",
+ Script::Soyombo => "Soyombo",
+ Script::Sundanese => "Sundanese",
+ Script::Sunuwar => "Sunuwar",
+ Script::Syloti_Nagri => "Syloti_Nagri",
+ Script::Syriac => "Syriac",
+ Script::Tagbanwa => "Tagbanwa",
+ Script::Takri => "Takri",
+ Script::Tai_Le => "Tai_Le",
+ Script::New_Tai_Lue => "New_Tai_Lue",
+ Script::Tamil => "Tamil",
+ Script::Tangut => "Tangut",
+ Script::Tai_Viet => "Tai_Viet",
+ Script::Telugu => "Telugu",
+ Script::Tifinagh => "Tifinagh",
+ Script::Tagalog => "Tagalog",
+ Script::Thaana => "Thaana",
+ Script::Thai => "Thai",
+ Script::Tibetan => "Tibetan",
+ Script::Tirhuta => "Tirhuta",
+ Script::Tangsa => "Tangsa",
+ Script::Todhri => "Todhri",
+ Script::Toto => "Toto",
+ Script::Tulu_Tigalari => "Tulu_Tigalari",
+ Script::Ugaritic => "Ugaritic",
+ Script::Vai => "Vai",
+ Script::Vithkuqi => "Vithkuqi",
+ Script::Warang_Citi => "Warang_Citi",
+ Script::Wancho => "Wancho",
+ Script::Old_Persian => "Old_Persian",
+ Script::Cuneiform => "Cuneiform",
+ Script::Yezidi => "Yezidi",
+ Script::Yi => "Yi",
+ Script::Zanabazar_Square => "Zanabazar_Square",
+ }
+ }
+
+ #[inline]
+ pub(crate) fn inner_from_full_name(input: &str) -> Option<Self> {
+ match input {
+ "Unknown" => Some(Script::Unknown),
+ "Common" => Some(Script::Common),
+ "Inherited" => Some(Script::Inherited),
+ "Adlam" => Some(Script::Adlam),
+ "Caucasian_Albanian" => Some(Script::Caucasian_Albanian),
+ "Ahom" => Some(Script::Ahom),
+ "Arabic" => Some(Script::Arabic),
+ "Imperial_Aramaic" => Some(Script::Imperial_Aramaic),
+ "Armenian" => Some(Script::Armenian),
+ "Avestan" => Some(Script::Avestan),
+ "Balinese" => Some(Script::Balinese),
+ "Bamum" => Some(Script::Bamum),
+ "Bassa_Vah" => Some(Script::Bassa_Vah),
+ "Batak" => Some(Script::Batak),
+ "Bengali" => Some(Script::Bengali),
+ "Bhaiksuki" => Some(Script::Bhaiksuki),
+ "Bopomofo" => Some(Script::Bopomofo),
+ "Brahmi" => Some(Script::Brahmi),
+ "Braille" => Some(Script::Braille),
+ "Buginese" => Some(Script::Buginese),
+ "Buhid" => Some(Script::Buhid),
+ "Chakma" => Some(Script::Chakma),
+ "Canadian_Aboriginal" => Some(Script::Canadian_Aboriginal),
+ "Carian" => Some(Script::Carian),
+ "Cham" => Some(Script::Cham),
+ "Cherokee" => Some(Script::Cherokee),
+ "Chorasmian" => Some(Script::Chorasmian),
+ "Coptic" => Some(Script::Coptic),
+ "Cypro_Minoan" => Some(Script::Cypro_Minoan),
+ "Cypriot" => Some(Script::Cypriot),
+ "Cyrillic" => Some(Script::Cyrillic),
+ "Devanagari" => Some(Script::Devanagari),
+ "Dives_Akuru" => Some(Script::Dives_Akuru),
+ "Dogra" => Some(Script::Dogra),
+ "Deseret" => Some(Script::Deseret),
+ "Duployan" => Some(Script::Duployan),
+ "Egyptian_Hieroglyphs" => Some(Script::Egyptian_Hieroglyphs),
+ "Elbasan" => Some(Script::Elbasan),
+ "Elymaic" => Some(Script::Elymaic),
+ "Ethiopic" => Some(Script::Ethiopic),
+ "Garay" => Some(Script::Garay),
+ "Georgian" => Some(Script::Georgian),
+ "Glagolitic" => Some(Script::Glagolitic),
+ "Gunjala_Gondi" => Some(Script::Gunjala_Gondi),
+ "Masaram_Gondi" => Some(Script::Masaram_Gondi),
+ "Gothic" => Some(Script::Gothic),
+ "Grantha" => Some(Script::Grantha),
+ "Greek" => Some(Script::Greek),
+ "Gujarati" => Some(Script::Gujarati),
+ "Gurung_Khema" => Some(Script::Gurung_Khema),
+ "Gurmukhi" => Some(Script::Gurmukhi),
+ "Hangul" => Some(Script::Hangul),
+ "Han" => Some(Script::Han),
+ "Hanunoo" => Some(Script::Hanunoo),
+ "Hatran" => Some(Script::Hatran),
+ "Hebrew" => Some(Script::Hebrew),
+ "Hiragana" => Some(Script::Hiragana),
+ "Anatolian_Hieroglyphs" => Some(Script::Anatolian_Hieroglyphs),
+ "Pahawh_Hmong" => Some(Script::Pahawh_Hmong),
+ "Nyiakeng_Puachue_Hmong" => Some(Script::Nyiakeng_Puachue_Hmong),
+ "Old_Hungarian" => Some(Script::Old_Hungarian),
+ "Old_Italic" => Some(Script::Old_Italic),
+ "Javanese" => Some(Script::Javanese),
+ "Kayah_Li" => Some(Script::Kayah_Li),
+ "Katakana" => Some(Script::Katakana),
+ "Kawi" => Some(Script::Kawi),
+ "Kharoshthi" => Some(Script::Kharoshthi),
+ "Khmer" => Some(Script::Khmer),
+ "Khojki" => Some(Script::Khojki),
+ "Khitan_Small_Script" => Some(Script::Khitan_Small_Script),
+ "Kannada" => Some(Script::Kannada),
+ "Kirat_Rai" => Some(Script::Kirat_Rai),
+ "Kaithi" => Some(Script::Kaithi),
+ "Tai_Tham" => Some(Script::Tai_Tham),
+ "Lao" => Some(Script::Lao),
+ "Latin" => Some(Script::Latin),
+ "Lepcha" => Some(Script::Lepcha),
+ "Limbu" => Some(Script::Limbu),
+ "Linear_A" => Some(Script::Linear_A),
+ "Linear_B" => Some(Script::Linear_B),
+ "Lisu" => Some(Script::Lisu),
+ "Lycian" => Some(Script::Lycian),
+ "Lydian" => Some(Script::Lydian),
+ "Mahajani" => Some(Script::Mahajani),
+ "Makasar" => Some(Script::Makasar),
+ "Mandaic" => Some(Script::Mandaic),
+ "Manichaean" => Some(Script::Manichaean),
+ "Marchen" => Some(Script::Marchen),
+ "Medefaidrin" => Some(Script::Medefaidrin),
+ "Mende_Kikakui" => Some(Script::Mende_Kikakui),
+ "Meroitic_Cursive" => Some(Script::Meroitic_Cursive),
+ "Meroitic_Hieroglyphs" => Some(Script::Meroitic_Hieroglyphs),
+ "Malayalam" => Some(Script::Malayalam),
+ "Modi" => Some(Script::Modi),
+ "Mongolian" => Some(Script::Mongolian),
+ "Mro" => Some(Script::Mro),
+ "Meetei_Mayek" => Some(Script::Meetei_Mayek),
+ "Multani" => Some(Script::Multani),
+ "Myanmar" => Some(Script::Myanmar),
+ "Nag_Mundari" => Some(Script::Nag_Mundari),
+ "Nandinagari" => Some(Script::Nandinagari),
+ "Old_North_Arabian" => Some(Script::Old_North_Arabian),
+ "Nabataean" => Some(Script::Nabataean),
+ "Newa" => Some(Script::Newa),
+ "Nko" => Some(Script::Nko),
+ "Nushu" => Some(Script::Nushu),
+ "Ogham" => Some(Script::Ogham),
+ "Ol_Chiki" => Some(Script::Ol_Chiki),
+ "Ol_Onal" => Some(Script::Ol_Onal),
+ "Old_Turkic" => Some(Script::Old_Turkic),
+ "Oriya" => Some(Script::Oriya),
+ "Osage" => Some(Script::Osage),
+ "Osmanya" => Some(Script::Osmanya),
+ "Old_Uyghur" => Some(Script::Old_Uyghur),
+ "Palmyrene" => Some(Script::Palmyrene),
+ "Pau_Cin_Hau" => Some(Script::Pau_Cin_Hau),
+ "Old_Permic" => Some(Script::Old_Permic),
+ "Phags_Pa" => Some(Script::Phags_Pa),
+ "Inscriptional_Pahlavi" => Some(Script::Inscriptional_Pahlavi),
+ "Psalter_Pahlavi" => Some(Script::Psalter_Pahlavi),
+ "Phoenician" => Some(Script::Phoenician),
+ "Miao" => Some(Script::Miao),
+ "Inscriptional_Parthian" => Some(Script::Inscriptional_Parthian),
+ "Rejang" => Some(Script::Rejang),
+ "Hanifi_Rohingya" => Some(Script::Hanifi_Rohingya),
+ "Runic" => Some(Script::Runic),
+ "Samaritan" => Some(Script::Samaritan),
+ "Old_South_Arabian" => Some(Script::Old_South_Arabian),
+ "Saurashtra" => Some(Script::Saurashtra),
+ "SignWriting" => Some(Script::SignWriting),
+ "Shavian" => Some(Script::Shavian),
+ "Sharada" => Some(Script::Sharada),
+ "Siddham" => Some(Script::Siddham),
+ "Khudawadi" => Some(Script::Khudawadi),
+ "Sinhala" => Some(Script::Sinhala),
+ "Sogdian" => Some(Script::Sogdian),
+ "Old_Sogdian" => Some(Script::Old_Sogdian),
+ "Sora_Sompeng" => Some(Script::Sora_Sompeng),
+ "Soyombo" => Some(Script::Soyombo),
+ "Sundanese" => Some(Script::Sundanese),
+ "Sunuwar" => Some(Script::Sunuwar),
+ "Syloti_Nagri" => Some(Script::Syloti_Nagri),
+ "Syriac" => Some(Script::Syriac),
+ "Tagbanwa" => Some(Script::Tagbanwa),
+ "Takri" => Some(Script::Takri),
+ "Tai_Le" => Some(Script::Tai_Le),
+ "New_Tai_Lue" => Some(Script::New_Tai_Lue),
+ "Tamil" => Some(Script::Tamil),
+ "Tangut" => Some(Script::Tangut),
+ "Tai_Viet" => Some(Script::Tai_Viet),
+ "Telugu" => Some(Script::Telugu),
+ "Tifinagh" => Some(Script::Tifinagh),
+ "Tagalog" => Some(Script::Tagalog),
+ "Thaana" => Some(Script::Thaana),
+ "Thai" => Some(Script::Thai),
+ "Tibetan" => Some(Script::Tibetan),
+ "Tirhuta" => Some(Script::Tirhuta),
+ "Tangsa" => Some(Script::Tangsa),
+ "Todhri" => Some(Script::Todhri),
+ "Toto" => Some(Script::Toto),
+ "Tulu_Tigalari" => Some(Script::Tulu_Tigalari),
+ "Ugaritic" => Some(Script::Ugaritic),
+ "Vai" => Some(Script::Vai),
+ "Vithkuqi" => Some(Script::Vithkuqi),
+ "Warang_Citi" => Some(Script::Warang_Citi),
+ "Wancho" => Some(Script::Wancho),
+ "Old_Persian" => Some(Script::Old_Persian),
+ "Cuneiform" => Some(Script::Cuneiform),
+ "Yezidi" => Some(Script::Yezidi),
+ "Yi" => Some(Script::Yi),
+ "Zanabazar_Square" => Some(Script::Zanabazar_Square),
+ _ => None,
+ }
+ }
+
+ #[inline]
+ pub(crate) fn inner_short_name(self) -> &'static str {
+ match self {
+ Script::Unknown => "",
+ Script::Common => "Zyyy",
+ Script::Inherited => "Zinh",
+ Script::Adlam => "Adlm",
+ Script::Caucasian_Albanian => "Aghb",
+ Script::Ahom => "Ahom",
+ Script::Arabic => "Arab",
+ Script::Imperial_Aramaic => "Armi",
+ Script::Armenian => "Armn",
+ Script::Avestan => "Avst",
+ Script::Balinese => "Bali",
+ Script::Bamum => "Bamu",
+ Script::Bassa_Vah => "Bass",
+ Script::Batak => "Batk",
+ Script::Bengali => "Beng",
+ Script::Bhaiksuki => "Bhks",
+ Script::Bopomofo => "Bopo",
+ Script::Brahmi => "Brah",
+ Script::Braille => "Brai",
+ Script::Buginese => "Bugi",
+ Script::Buhid => "Buhd",
+ Script::Chakma => "Cakm",
+ Script::Canadian_Aboriginal => "Cans",
+ Script::Carian => "Cari",
+ Script::Cham => "Cham",
+ Script::Cherokee => "Cher",
+ Script::Chorasmian => "Chrs",
+ Script::Coptic => "Copt",
+ Script::Cypro_Minoan => "Cpmn",
+ Script::Cypriot => "Cprt",
+ Script::Cyrillic => "Cyrl",
+ Script::Devanagari => "Deva",
+ Script::Dives_Akuru => "Diak",
+ Script::Dogra => "Dogr",
+ Script::Deseret => "Dsrt",
+ Script::Duployan => "Dupl",
+ Script::Egyptian_Hieroglyphs => "Egyp",
+ Script::Elbasan => "Elba",
+ Script::Elymaic => "Elym",
+ Script::Ethiopic => "Ethi",
+ Script::Garay => "Gara",
+ Script::Georgian => "Geor",
+ Script::Glagolitic => "Glag",
+ Script::Gunjala_Gondi => "Gong",
+ Script::Masaram_Gondi => "Gonm",
+ Script::Gothic => "Goth",
+ Script::Grantha => "Gran",
+ Script::Greek => "Grek",
+ Script::Gujarati => "Gujr",
+ Script::Gurung_Khema => "Gukh",
+ Script::Gurmukhi => "Guru",
+ Script::Hangul => "Hang",
+ Script::Han => "Hani",
+ Script::Hanunoo => "Hano",
+ Script::Hatran => "Hatr",
+ Script::Hebrew => "Hebr",
+ Script::Hiragana => "Hira",
+ Script::Anatolian_Hieroglyphs => "Hluw",
+ Script::Pahawh_Hmong => "Hmng",
+ Script::Nyiakeng_Puachue_Hmong => "Hmnp",
+ Script::Old_Hungarian => "Hung",
+ Script::Old_Italic => "Ital",
+ Script::Javanese => "Java",
+ Script::Kayah_Li => "Kali",
+ Script::Katakana => "Kana",
+ Script::Kawi => "Kawi",
+ Script::Kharoshthi => "Khar",
+ Script::Khmer => "Khmr",
+ Script::Khojki => "Khoj",
+ Script::Khitan_Small_Script => "Kits",
+ Script::Kannada => "Knda",
+ Script::Kirat_Rai => "Krai",
+ Script::Kaithi => "Kthi",
+ Script::Tai_Tham => "Lana",
+ Script::Lao => "Laoo",
+ Script::Latin => "Latn",
+ Script::Lepcha => "Lepc",
+ Script::Limbu => "Limb",
+ Script::Linear_A => "Lina",
+ Script::Linear_B => "Linb",
+ Script::Lisu => "Lisu",
+ Script::Lycian => "Lyci",
+ Script::Lydian => "Lydi",
+ Script::Mahajani => "Mahj",
+ Script::Makasar => "Maka",
+ Script::Mandaic => "Mand",
+ Script::Manichaean => "Mani",
+ Script::Marchen => "Marc",
+ Script::Medefaidrin => "Medf",
+ Script::Mende_Kikakui => "Mend",
+ Script::Meroitic_Cursive => "Merc",
+ Script::Meroitic_Hieroglyphs => "Mero",
+ Script::Malayalam => "Mlym",
+ Script::Modi => "Modi",
+ Script::Mongolian => "Mong",
+ Script::Mro => "Mroo",
+ Script::Meetei_Mayek => "Mtei",
+ Script::Multani => "Mult",
+ Script::Myanmar => "Mymr",
+ Script::Nag_Mundari => "Nagm",
+ Script::Nandinagari => "Nand",
+ Script::Old_North_Arabian => "Narb",
+ Script::Nabataean => "Nbat",
+ Script::Newa => "Newa",
+ Script::Nko => "Nkoo",
+ Script::Nushu => "Nshu",
+ Script::Ogham => "Ogam",
+ Script::Ol_Chiki => "Olck",
+ Script::Ol_Onal => "Onao",
+ Script::Old_Turkic => "Orkh",
+ Script::Oriya => "Orya",
+ Script::Osage => "Osge",
+ Script::Osmanya => "Osma",
+ Script::Old_Uyghur => "Ougr",
+ Script::Palmyrene => "Palm",
+ Script::Pau_Cin_Hau => "Pauc",
+ Script::Old_Permic => "Perm",
+ Script::Phags_Pa => "Phag",
+ Script::Inscriptional_Pahlavi => "Phli",
+ Script::Psalter_Pahlavi => "Phlp",
+ Script::Phoenician => "Phnx",
+ Script::Miao => "Plrd",
+ Script::Inscriptional_Parthian => "Prti",
+ Script::Rejang => "Rjng",
+ Script::Hanifi_Rohingya => "Rohg",
+ Script::Runic => "Runr",
+ Script::Samaritan => "Samr",
+ Script::Old_South_Arabian => "Sarb",
+ Script::Saurashtra => "Saur",
+ Script::SignWriting => "Sgnw",
+ Script::Shavian => "Shaw",
+ Script::Sharada => "Shrd",
+ Script::Siddham => "Sidd",
+ Script::Khudawadi => "Sind",
+ Script::Sinhala => "Sinh",
+ Script::Sogdian => "Sogd",
+ Script::Old_Sogdian => "Sogo",
+ Script::Sora_Sompeng => "Sora",
+ Script::Soyombo => "Soyo",
+ Script::Sundanese => "Sund",
+ Script::Sunuwar => "Sunu",
+ Script::Syloti_Nagri => "Sylo",
+ Script::Syriac => "Syrc",
+ Script::Tagbanwa => "Tagb",
+ Script::Takri => "Takr",
+ Script::Tai_Le => "Tale",
+ Script::New_Tai_Lue => "Talu",
+ Script::Tamil => "Taml",
+ Script::Tangut => "Tang",
+ Script::Tai_Viet => "Tavt",
+ Script::Telugu => "Telu",
+ Script::Tifinagh => "Tfng",
+ Script::Tagalog => "Tglg",
+ Script::Thaana => "Thaa",
+ Script::Thai => "Thai",
+ Script::Tibetan => "Tibt",
+ Script::Tirhuta => "Tirh",
+ Script::Tangsa => "Tnsa",
+ Script::Todhri => "Todr",
+ Script::Toto => "Toto",
+ Script::Tulu_Tigalari => "Tutg",
+ Script::Ugaritic => "Ugar",
+ Script::Vai => "Vaii",
+ Script::Vithkuqi => "Vith",
+ Script::Warang_Citi => "Wara",
+ Script::Wancho => "Wcho",
+ Script::Old_Persian => "Xpeo",
+ Script::Cuneiform => "Xsux",
+ Script::Yezidi => "Yezi",
+ Script::Yi => "Yiii",
+ Script::Zanabazar_Square => "Zanb",
+ }
+ }
+
+ #[inline]
+ pub(crate) fn inner_from_short_name(input: &str) -> Option<Self> {
+ match input {
+ "Zyyy" => Some(Script::Common),
+ "Zinh" => Some(Script::Inherited),
+ "Adlm" => Some(Script::Adlam),
+ "Aghb" => Some(Script::Caucasian_Albanian),
+ "Ahom" => Some(Script::Ahom),
+ "Arab" => Some(Script::Arabic),
+ "Armi" => Some(Script::Imperial_Aramaic),
+ "Armn" => Some(Script::Armenian),
+ "Avst" => Some(Script::Avestan),
+ "Bali" => Some(Script::Balinese),
+ "Bamu" => Some(Script::Bamum),
+ "Bass" => Some(Script::Bassa_Vah),
+ "Batk" => Some(Script::Batak),
+ "Beng" => Some(Script::Bengali),
+ "Bhks" => Some(Script::Bhaiksuki),
+ "Bopo" => Some(Script::Bopomofo),
+ "Brah" => Some(Script::Brahmi),
+ "Brai" => Some(Script::Braille),
+ "Bugi" => Some(Script::Buginese),
+ "Buhd" => Some(Script::Buhid),
+ "Cakm" => Some(Script::Chakma),
+ "Cans" => Some(Script::Canadian_Aboriginal),
+ "Cari" => Some(Script::Carian),
+ "Cham" => Some(Script::Cham),
+ "Cher" => Some(Script::Cherokee),
+ "Chrs" => Some(Script::Chorasmian),
+ "Copt" => Some(Script::Coptic),
+ "Cpmn" => Some(Script::Cypro_Minoan),
+ "Cprt" => Some(Script::Cypriot),
+ "Cyrl" => Some(Script::Cyrillic),
+ "Deva" => Some(Script::Devanagari),
+ "Diak" => Some(Script::Dives_Akuru),
+ "Dogr" => Some(Script::Dogra),
+ "Dsrt" => Some(Script::Deseret),
+ "Dupl" => Some(Script::Duployan),
+ "Egyp" => Some(Script::Egyptian_Hieroglyphs),
+ "Elba" => Some(Script::Elbasan),
+ "Elym" => Some(Script::Elymaic),
+ "Ethi" => Some(Script::Ethiopic),
+ "Gara" => Some(Script::Garay),
+ "Geor" => Some(Script::Georgian),
+ "Glag" => Some(Script::Glagolitic),
+ "Gong" => Some(Script::Gunjala_Gondi),
+ "Gonm" => Some(Script::Masaram_Gondi),
+ "Goth" => Some(Script::Gothic),
+ "Gran" => Some(Script::Grantha),
+ "Grek" => Some(Script::Greek),
+ "Gujr" => Some(Script::Gujarati),
+ "Gukh" => Some(Script::Gurung_Khema),
+ "Guru" => Some(Script::Gurmukhi),
+ "Hang" => Some(Script::Hangul),
+ "Hani" => Some(Script::Han),
+ "Hano" => Some(Script::Hanunoo),
+ "Hatr" => Some(Script::Hatran),
+ "Hebr" => Some(Script::Hebrew),
+ "Hira" => Some(Script::Hiragana),
+ "Hluw" => Some(Script::Anatolian_Hieroglyphs),
+ "Hmng" => Some(Script::Pahawh_Hmong),
+ "Hmnp" => Some(Script::Nyiakeng_Puachue_Hmong),
+ "Hung" => Some(Script::Old_Hungarian),
+ "Ital" => Some(Script::Old_Italic),
+ "Java" => Some(Script::Javanese),
+ "Kali" => Some(Script::Kayah_Li),
+ "Kana" => Some(Script::Katakana),
+ "Kawi" => Some(Script::Kawi),
+ "Khar" => Some(Script::Kharoshthi),
+ "Khmr" => Some(Script::Khmer),
+ "Khoj" => Some(Script::Khojki),
+ "Kits" => Some(Script::Khitan_Small_Script),
+ "Knda" => Some(Script::Kannada),
+ "Krai" => Some(Script::Kirat_Rai),
+ "Kthi" => Some(Script::Kaithi),
+ "Lana" => Some(Script::Tai_Tham),
+ "Laoo" => Some(Script::Lao),
+ "Latn" => Some(Script::Latin),
+ "Lepc" => Some(Script::Lepcha),
+ "Limb" => Some(Script::Limbu),
+ "Lina" => Some(Script::Linear_A),
+ "Linb" => Some(Script::Linear_B),
+ "Lisu" => Some(Script::Lisu),
+ "Lyci" => Some(Script::Lycian),
+ "Lydi" => Some(Script::Lydian),
+ "Mahj" => Some(Script::Mahajani),
+ "Maka" => Some(Script::Makasar),
+ "Mand" => Some(Script::Mandaic),
+ "Mani" => Some(Script::Manichaean),
+ "Marc" => Some(Script::Marchen),
+ "Medf" => Some(Script::Medefaidrin),
+ "Mend" => Some(Script::Mende_Kikakui),
+ "Merc" => Some(Script::Meroitic_Cursive),
+ "Mero" => Some(Script::Meroitic_Hieroglyphs),
+ "Mlym" => Some(Script::Malayalam),
+ "Modi" => Some(Script::Modi),
+ "Mong" => Some(Script::Mongolian),
+ "Mroo" => Some(Script::Mro),
+ "Mtei" => Some(Script::Meetei_Mayek),
+ "Mult" => Some(Script::Multani),
+ "Mymr" => Some(Script::Myanmar),
+ "Nagm" => Some(Script::Nag_Mundari),
+ "Nand" => Some(Script::Nandinagari),
+ "Narb" => Some(Script::Old_North_Arabian),
+ "Nbat" => Some(Script::Nabataean),
+ "Newa" => Some(Script::Newa),
+ "Nkoo" => Some(Script::Nko),
+ "Nshu" => Some(Script::Nushu),
+ "Ogam" => Some(Script::Ogham),
+ "Olck" => Some(Script::Ol_Chiki),
+ "Onao" => Some(Script::Ol_Onal),
+ "Orkh" => Some(Script::Old_Turkic),
+ "Orya" => Some(Script::Oriya),
+ "Osge" => Some(Script::Osage),
+ "Osma" => Some(Script::Osmanya),
+ "Ougr" => Some(Script::Old_Uyghur),
+ "Palm" => Some(Script::Palmyrene),
+ "Pauc" => Some(Script::Pau_Cin_Hau),
+ "Perm" => Some(Script::Old_Permic),
+ "Phag" => Some(Script::Phags_Pa),
+ "Phli" => Some(Script::Inscriptional_Pahlavi),
+ "Phlp" => Some(Script::Psalter_Pahlavi),
+ "Phnx" => Some(Script::Phoenician),
+ "Plrd" => Some(Script::Miao),
+ "Prti" => Some(Script::Inscriptional_Parthian),
+ "Rjng" => Some(Script::Rejang),
+ "Rohg" => Some(Script::Hanifi_Rohingya),
+ "Runr" => Some(Script::Runic),
+ "Samr" => Some(Script::Samaritan),
+ "Sarb" => Some(Script::Old_South_Arabian),
+ "Saur" => Some(Script::Saurashtra),
+ "Sgnw" => Some(Script::SignWriting),
+ "Shaw" => Some(Script::Shavian),
+ "Shrd" => Some(Script::Sharada),
+ "Sidd" => Some(Script::Siddham),
+ "Sind" => Some(Script::Khudawadi),
+ "Sinh" => Some(Script::Sinhala),
+ "Sogd" => Some(Script::Sogdian),
+ "Sogo" => Some(Script::Old_Sogdian),
+ "Sora" => Some(Script::Sora_Sompeng),
+ "Soyo" => Some(Script::Soyombo),
+ "Sund" => Some(Script::Sundanese),
+ "Sunu" => Some(Script::Sunuwar),
+ "Sylo" => Some(Script::Syloti_Nagri),
+ "Syrc" => Some(Script::Syriac),
+ "Tagb" => Some(Script::Tagbanwa),
+ "Takr" => Some(Script::Takri),
+ "Tale" => Some(Script::Tai_Le),
+ "Talu" => Some(Script::New_Tai_Lue),
+ "Taml" => Some(Script::Tamil),
+ "Tang" => Some(Script::Tangut),
+ "Tavt" => Some(Script::Tai_Viet),
+ "Telu" => Some(Script::Telugu),
+ "Tfng" => Some(Script::Tifinagh),
+ "Tglg" => Some(Script::Tagalog),
+ "Thaa" => Some(Script::Thaana),
+ "Thai" => Some(Script::Thai),
+ "Tibt" => Some(Script::Tibetan),
+ "Tirh" => Some(Script::Tirhuta),
+ "Tnsa" => Some(Script::Tangsa),
+ "Todr" => Some(Script::Todhri),
+ "Toto" => Some(Script::Toto),
+ "Tutg" => Some(Script::Tulu_Tigalari),
+ "Ugar" => Some(Script::Ugaritic),
+ "Vaii" => Some(Script::Vai),
+ "Vith" => Some(Script::Vithkuqi),
+ "Wara" => Some(Script::Warang_Citi),
+ "Wcho" => Some(Script::Wancho),
+ "Xpeo" => Some(Script::Old_Persian),
+ "Xsux" => Some(Script::Cuneiform),
+ "Yezi" => Some(Script::Yezidi),
+ "Yiii" => Some(Script::Yi),
+ "Zanb" => Some(Script::Zanabazar_Square),
+ _ => None,
+ }
+ }
+
+ #[inline]
+ pub(crate) fn for_integer(value: u8) -> Self {
+ match value {
+ 0 => Script::Adlam,
+ 1 => Script::Caucasian_Albanian,
+ 2 => Script::Ahom,
+ 3 => Script::Arabic,
+ 4 => Script::Imperial_Aramaic,
+ 5 => Script::Armenian,
+ 6 => Script::Avestan,
+ 7 => Script::Balinese,
+ 8 => Script::Bamum,
+ 9 => Script::Bassa_Vah,
+ 10 => Script::Batak,
+ 11 => Script::Bengali,
+ 12 => Script::Bhaiksuki,
+ 13 => Script::Bopomofo,
+ 14 => Script::Brahmi,
+ 15 => Script::Braille,
+ 16 => Script::Buginese,
+ 17 => Script::Buhid,
+ 18 => Script::Chakma,
+ 19 => Script::Canadian_Aboriginal,
+ 20 => Script::Carian,
+ 21 => Script::Cham,
+ 22 => Script::Cherokee,
+ 23 => Script::Chorasmian,
+ 24 => Script::Coptic,
+ 25 => Script::Cypro_Minoan,
+ 26 => Script::Cypriot,
+ 27 => Script::Cyrillic,
+ 28 => Script::Devanagari,
+ 29 => Script::Dives_Akuru,
+ 30 => Script::Dogra,
+ 31 => Script::Deseret,
+ 32 => Script::Duployan,
+ 33 => Script::Egyptian_Hieroglyphs,
+ 34 => Script::Elbasan,
+ 35 => Script::Elymaic,
+ 36 => Script::Ethiopic,
+ 37 => Script::Garay,
+ 38 => Script::Georgian,
+ 39 => Script::Glagolitic,
+ 40 => Script::Gunjala_Gondi,
+ 41 => Script::Masaram_Gondi,
+ 42 => Script::Gothic,
+ 43 => Script::Grantha,
+ 44 => Script::Greek,
+ 45 => Script::Gujarati,
+ 46 => Script::Gurung_Khema,
+ 47 => Script::Gurmukhi,
+ 48 => Script::Hangul,
+ 49 => Script::Han,
+ 50 => Script::Hanunoo,
+ 51 => Script::Hatran,
+ 52 => Script::Hebrew,
+ 53 => Script::Hiragana,
+ 54 => Script::Anatolian_Hieroglyphs,
+ 55 => Script::Pahawh_Hmong,
+ 56 => Script::Nyiakeng_Puachue_Hmong,
+ 57 => Script::Old_Hungarian,
+ 58 => Script::Old_Italic,
+ 59 => Script::Javanese,
+ 60 => Script::Kayah_Li,
+ 61 => Script::Katakana,
+ 62 => Script::Kawi,
+ 63 => Script::Kharoshthi,
+ 64 => Script::Khmer,
+ 65 => Script::Khojki,
+ 66 => Script::Khitan_Small_Script,
+ 67 => Script::Kannada,
+ 68 => Script::Kirat_Rai,
+ 69 => Script::Kaithi,
+ 70 => Script::Tai_Tham,
+ 71 => Script::Lao,
+ 72 => Script::Latin,
+ 73 => Script::Lepcha,
+ 74 => Script::Limbu,
+ 75 => Script::Linear_A,
+ 76 => Script::Linear_B,
+ 77 => Script::Lisu,
+ 78 => Script::Lycian,
+ 79 => Script::Lydian,
+ 80 => Script::Mahajani,
+ 81 => Script::Makasar,
+ 82 => Script::Mandaic,
+ 83 => Script::Manichaean,
+ 84 => Script::Marchen,
+ 85 => Script::Medefaidrin,
+ 86 => Script::Mende_Kikakui,
+ 87 => Script::Meroitic_Cursive,
+ 88 => Script::Meroitic_Hieroglyphs,
+ 89 => Script::Malayalam,
+ 90 => Script::Modi,
+ 91 => Script::Mongolian,
+ 92 => Script::Mro,
+ 93 => Script::Meetei_Mayek,
+ 94 => Script::Multani,
+ 95 => Script::Myanmar,
+ 96 => Script::Nag_Mundari,
+ 97 => Script::Nandinagari,
+ 98 => Script::Old_North_Arabian,
+ 99 => Script::Nabataean,
+ 100 => Script::Newa,
+ 101 => Script::Nko,
+ 102 => Script::Nushu,
+ 103 => Script::Ogham,
+ 104 => Script::Ol_Chiki,
+ 105 => Script::Ol_Onal,
+ 106 => Script::Old_Turkic,
+ 107 => Script::Oriya,
+ 108 => Script::Osage,
+ 109 => Script::Osmanya,
+ 110 => Script::Old_Uyghur,
+ 111 => Script::Palmyrene,
+ 112 => Script::Pau_Cin_Hau,
+ 113 => Script::Old_Permic,
+ 114 => Script::Phags_Pa,
+ 115 => Script::Inscriptional_Pahlavi,
+ 116 => Script::Psalter_Pahlavi,
+ 117 => Script::Phoenician,
+ 118 => Script::Miao,
+ 119 => Script::Inscriptional_Parthian,
+ 120 => Script::Rejang,
+ 121 => Script::Hanifi_Rohingya,
+ 122 => Script::Runic,
+ 123 => Script::Samaritan,
+ 124 => Script::Old_South_Arabian,
+ 125 => Script::Saurashtra,
+ 126 => Script::SignWriting,
+ 127 => Script::Shavian,
+ 128 => Script::Sharada,
+ 129 => Script::Siddham,
+ 130 => Script::Khudawadi,
+ 131 => Script::Sinhala,
+ 132 => Script::Sogdian,
+ 133 => Script::Old_Sogdian,
+ 134 => Script::Sora_Sompeng,
+ 135 => Script::Soyombo,
+ 136 => Script::Sundanese,
+ 137 => Script::Sunuwar,
+ 138 => Script::Syloti_Nagri,
+ 139 => Script::Syriac,
+ 140 => Script::Tagbanwa,
+ 141 => Script::Takri,
+ 142 => Script::Tai_Le,
+ 143 => Script::New_Tai_Lue,
+ 144 => Script::Tamil,
+ 145 => Script::Tangut,
+ 146 => Script::Tai_Viet,
+ 147 => Script::Telugu,
+ 148 => Script::Tifinagh,
+ 149 => Script::Tagalog,
+ 150 => Script::Thaana,
+ 151 => Script::Thai,
+ 152 => Script::Tibetan,
+ 153 => Script::Tirhuta,
+ 154 => Script::Tangsa,
+ 155 => Script::Todhri,
+ 156 => Script::Toto,
+ 157 => Script::Tulu_Tigalari,
+ 158 => Script::Ugaritic,
+ 159 => Script::Vai,
+ 160 => Script::Vithkuqi,
+ 161 => Script::Warang_Citi,
+ 162 => Script::Wancho,
+ 163 => Script::Old_Persian,
+ 164 => Script::Cuneiform,
+ 165 => Script::Yezidi,
+ 166 => Script::Yi,
+ 167 => Script::Zanabazar_Square,
+ _ => unreachable!(),
+ }
+ }
+
+}
+
+pub fn bsearch_range_value_table<T: Copy>(c: char, r: &'static [(char, char, T)]) -> Option<T> {
+ use core::cmp::Ordering::{Equal, Less, Greater};
+ match r.binary_search_by(|&(lo, hi, _)| {
+ if lo <= c && c <= hi { Equal }
+ else if hi < c { Less }
+ else { Greater }
+ }) {
+ Ok(idx) => {
+ let (_, _, cat) = r[idx];
+ Some(cat)
+ }
+ Err(_) => None
+ }
+}
+
+#[inline]
+pub fn get_script(c: char) -> Option<Script> {
+ bsearch_range_value_table(c, SCRIPTS)
+}
+
+#[inline]
+pub fn get_script_extension(c: char) -> Option<ScriptExtension> {
+ bsearch_range_value_table(c, SCRIPT_EXTENSIONS)
+}
+ const SCRIPTS: &'static [(char, char, Script)] = &[
+ ('\u{0}', '\u{1f}', Script::Common), ('\u{20}', '\u{20}', Script::Common), ('\u{21}',
+ '\u{23}', Script::Common), ('\u{24}', '\u{24}', Script::Common), ('\u{25}', '\u{27}',
+ Script::Common), ('\u{28}', '\u{28}', Script::Common), ('\u{29}', '\u{29}',
+ Script::Common), ('\u{2a}', '\u{2a}', Script::Common), ('\u{2b}', '\u{2b}',
+ Script::Common), ('\u{2c}', '\u{2c}', Script::Common), ('\u{2d}', '\u{2d}',
+ Script::Common), ('\u{2e}', '\u{2f}', Script::Common), ('\u{30}', '\u{39}',
+ Script::Common), ('\u{3a}', '\u{3b}', Script::Common), ('\u{3c}', '\u{3e}',
+ Script::Common), ('\u{3f}', '\u{40}', Script::Common), ('\u{41}', '\u{5a}',
+ Script::Latin), ('\u{5b}', '\u{5b}', Script::Common), ('\u{5c}', '\u{5c}',
+ Script::Common), ('\u{5d}', '\u{5d}', Script::Common), ('\u{5e}', '\u{5e}',
+ Script::Common), ('\u{5f}', '\u{5f}', Script::Common), ('\u{60}', '\u{60}',
+ Script::Common), ('\u{61}', '\u{7a}', Script::Latin), ('\u{7b}', '\u{7b}',
+ Script::Common), ('\u{7c}', '\u{7c}', Script::Common), ('\u{7d}', '\u{7d}',
+ Script::Common), ('\u{7e}', '\u{7e}', Script::Common), ('\u{7f}', '\u{9f}',
+ Script::Common), ('\u{a0}', '\u{a0}', Script::Common), ('\u{a1}', '\u{a1}',
+ Script::Common), ('\u{a2}', '\u{a5}', Script::Common), ('\u{a6}', '\u{a6}',
+ Script::Common), ('\u{a7}', '\u{a7}', Script::Common), ('\u{a8}', '\u{a8}',
+ Script::Common), ('\u{a9}', '\u{a9}', Script::Common), ('\u{aa}', '\u{aa}',
+ Script::Latin), ('\u{ab}', '\u{ab}', Script::Common), ('\u{ac}', '\u{ac}',
+ Script::Common), ('\u{ad}', '\u{ad}', Script::Common), ('\u{ae}', '\u{ae}',
+ Script::Common), ('\u{af}', '\u{af}', Script::Common), ('\u{b0}', '\u{b0}',
+ Script::Common), ('\u{b1}', '\u{b1}', Script::Common), ('\u{b2}', '\u{b3}',
+ Script::Common), ('\u{b4}', '\u{b4}', Script::Common), ('\u{b5}', '\u{b5}',
+ Script::Common), ('\u{b6}', '\u{b7}', Script::Common), ('\u{b8}', '\u{b8}',
+ Script::Common), ('\u{b9}', '\u{b9}', Script::Common), ('\u{ba}', '\u{ba}',
+ Script::Latin), ('\u{bb}', '\u{bb}', Script::Common), ('\u{bc}', '\u{be}',
+ Script::Common), ('\u{bf}', '\u{bf}', Script::Common), ('\u{c0}', '\u{d6}',
+ Script::Latin), ('\u{d7}', '\u{d7}', Script::Common), ('\u{d8}', '\u{f6}',
+ Script::Latin), ('\u{f7}', '\u{f7}', Script::Common), ('\u{f8}', '\u{1ba}',
+ Script::Latin), ('\u{1bb}', '\u{1bb}', Script::Latin), ('\u{1bc}', '\u{1bf}',
+ Script::Latin), ('\u{1c0}', '\u{1c3}', Script::Latin), ('\u{1c4}', '\u{293}',
+ Script::Latin), ('\u{294}', '\u{294}', Script::Latin), ('\u{295}', '\u{2af}',
+ Script::Latin), ('\u{2b0}', '\u{2b8}', Script::Latin), ('\u{2b9}', '\u{2c1}',
+ Script::Common), ('\u{2c2}', '\u{2c5}', Script::Common), ('\u{2c6}', '\u{2d1}',
+ Script::Common), ('\u{2d2}', '\u{2df}', Script::Common), ('\u{2e0}', '\u{2e4}',
+ Script::Latin), ('\u{2e5}', '\u{2e9}', Script::Common), ('\u{2ea}', '\u{2eb}',
+ Script::Bopomofo), ('\u{2ec}', '\u{2ec}', Script::Common), ('\u{2ed}', '\u{2ed}',
+ Script::Common), ('\u{2ee}', '\u{2ee}', Script::Common), ('\u{2ef}', '\u{2ff}',
+ Script::Common), ('\u{300}', '\u{36f}', Script::Inherited), ('\u{370}', '\u{373}',
+ Script::Greek), ('\u{374}', '\u{374}', Script::Common), ('\u{375}', '\u{375}',
+ Script::Greek), ('\u{376}', '\u{377}', Script::Greek), ('\u{37a}', '\u{37a}',
+ Script::Greek), ('\u{37b}', '\u{37d}', Script::Greek), ('\u{37e}', '\u{37e}',
+ Script::Common), ('\u{37f}', '\u{37f}', Script::Greek), ('\u{384}', '\u{384}',
+ Script::Greek), ('\u{385}', '\u{385}', Script::Common), ('\u{386}', '\u{386}',
+ Script::Greek), ('\u{387}', '\u{387}', Script::Common), ('\u{388}', '\u{38a}',
+ Script::Greek), ('\u{38c}', '\u{38c}', Script::Greek), ('\u{38e}', '\u{3a1}',
+ Script::Greek), ('\u{3a3}', '\u{3e1}', Script::Greek), ('\u{3e2}', '\u{3ef}',
+ Script::Coptic), ('\u{3f0}', '\u{3f5}', Script::Greek), ('\u{3f6}', '\u{3f6}',
+ Script::Greek), ('\u{3f7}', '\u{3ff}', Script::Greek), ('\u{400}', '\u{481}',
+ Script::Cyrillic), ('\u{482}', '\u{482}', Script::Cyrillic), ('\u{483}', '\u{484}',
+ Script::Cyrillic), ('\u{485}', '\u{486}', Script::Inherited), ('\u{487}', '\u{487}',
+ Script::Cyrillic), ('\u{488}', '\u{489}', Script::Cyrillic), ('\u{48a}', '\u{52f}',
+ Script::Cyrillic), ('\u{531}', '\u{556}', Script::Armenian), ('\u{559}', '\u{559}',
+ Script::Armenian), ('\u{55a}', '\u{55f}', Script::Armenian), ('\u{560}', '\u{588}',
+ Script::Armenian), ('\u{589}', '\u{589}', Script::Armenian), ('\u{58a}', '\u{58a}',
+ Script::Armenian), ('\u{58d}', '\u{58e}', Script::Armenian), ('\u{58f}', '\u{58f}',
+ Script::Armenian), ('\u{591}', '\u{5bd}', Script::Hebrew), ('\u{5be}', '\u{5be}',
+ Script::Hebrew), ('\u{5bf}', '\u{5bf}', Script::Hebrew), ('\u{5c0}', '\u{5c0}',
+ Script::Hebrew), ('\u{5c1}', '\u{5c2}', Script::Hebrew), ('\u{5c3}', '\u{5c3}',
+ Script::Hebrew), ('\u{5c4}', '\u{5c5}', Script::Hebrew), ('\u{5c6}', '\u{5c6}',
+ Script::Hebrew), ('\u{5c7}', '\u{5c7}', Script::Hebrew), ('\u{5d0}', '\u{5ea}',
+ Script::Hebrew), ('\u{5ef}', '\u{5f2}', Script::Hebrew), ('\u{5f3}', '\u{5f4}',
+ Script::Hebrew), ('\u{600}', '\u{604}', Script::Arabic), ('\u{605}', '\u{605}',
+ Script::Common), ('\u{606}', '\u{608}', Script::Arabic), ('\u{609}', '\u{60a}',
+ Script::Arabic), ('\u{60b}', '\u{60b}', Script::Arabic), ('\u{60c}', '\u{60c}',
+ Script::Common), ('\u{60d}', '\u{60d}', Script::Arabic), ('\u{60e}', '\u{60f}',
+ Script::Arabic), ('\u{610}', '\u{61a}', Script::Arabic), ('\u{61b}', '\u{61b}',
+ Script::Common), ('\u{61c}', '\u{61c}', Script::Arabic), ('\u{61d}', '\u{61e}',
+ Script::Arabic), ('\u{61f}', '\u{61f}', Script::Common), ('\u{620}', '\u{63f}',
+ Script::Arabic), ('\u{640}', '\u{640}', Script::Common), ('\u{641}', '\u{64a}',
+ Script::Arabic), ('\u{64b}', '\u{655}', Script::Inherited), ('\u{656}', '\u{65f}',
+ Script::Arabic), ('\u{660}', '\u{669}', Script::Arabic), ('\u{66a}', '\u{66d}',
+ Script::Arabic), ('\u{66e}', '\u{66f}', Script::Arabic), ('\u{670}', '\u{670}',
+ Script::Inherited), ('\u{671}', '\u{6d3}', Script::Arabic), ('\u{6d4}', '\u{6d4}',
+ Script::Arabic), ('\u{6d5}', '\u{6d5}', Script::Arabic), ('\u{6d6}', '\u{6dc}',
+ Script::Arabic), ('\u{6dd}', '\u{6dd}', Script::Common), ('\u{6de}', '\u{6de}',
+ Script::Arabic), ('\u{6df}', '\u{6e4}', Script::Arabic), ('\u{6e5}', '\u{6e6}',
+ Script::Arabic), ('\u{6e7}', '\u{6e8}', Script::Arabic), ('\u{6e9}', '\u{6e9}',
+ Script::Arabic), ('\u{6ea}', '\u{6ed}', Script::Arabic), ('\u{6ee}', '\u{6ef}',
+ Script::Arabic), ('\u{6f0}', '\u{6f9}', Script::Arabic), ('\u{6fa}', '\u{6fc}',
+ Script::Arabic), ('\u{6fd}', '\u{6fe}', Script::Arabic), ('\u{6ff}', '\u{6ff}',
+ Script::Arabic), ('\u{700}', '\u{70d}', Script::Syriac), ('\u{70f}', '\u{70f}',
+ Script::Syriac), ('\u{710}', '\u{710}', Script::Syriac), ('\u{711}', '\u{711}',
+ Script::Syriac), ('\u{712}', '\u{72f}', Script::Syriac), ('\u{730}', '\u{74a}',
+ Script::Syriac), ('\u{74d}', '\u{74f}', Script::Syriac), ('\u{750}', '\u{77f}',
+ Script::Arabic), ('\u{780}', '\u{7a5}', Script::Thaana), ('\u{7a6}', '\u{7b0}',
+ Script::Thaana), ('\u{7b1}', '\u{7b1}', Script::Thaana), ('\u{7c0}', '\u{7c9}',
+ Script::Nko), ('\u{7ca}', '\u{7ea}', Script::Nko), ('\u{7eb}', '\u{7f3}', Script::Nko),
+ ('\u{7f4}', '\u{7f5}', Script::Nko), ('\u{7f6}', '\u{7f6}', Script::Nko), ('\u{7f7}',
+ '\u{7f9}', Script::Nko), ('\u{7fa}', '\u{7fa}', Script::Nko), ('\u{7fd}', '\u{7fd}',
+ Script::Nko), ('\u{7fe}', '\u{7ff}', Script::Nko), ('\u{800}', '\u{815}',
+ Script::Samaritan), ('\u{816}', '\u{819}', Script::Samaritan), ('\u{81a}', '\u{81a}',
+ Script::Samaritan), ('\u{81b}', '\u{823}', Script::Samaritan), ('\u{824}', '\u{824}',
+ Script::Samaritan), ('\u{825}', '\u{827}', Script::Samaritan), ('\u{828}', '\u{828}',
+ Script::Samaritan), ('\u{829}', '\u{82d}', Script::Samaritan), ('\u{830}', '\u{83e}',
+ Script::Samaritan), ('\u{840}', '\u{858}', Script::Mandaic), ('\u{859}', '\u{85b}',
+ Script::Mandaic), ('\u{85e}', '\u{85e}', Script::Mandaic), ('\u{860}', '\u{86a}',
+ Script::Syriac), ('\u{870}', '\u{887}', Script::Arabic), ('\u{888}', '\u{888}',
+ Script::Arabic), ('\u{889}', '\u{88e}', Script::Arabic), ('\u{890}', '\u{891}',
+ Script::Arabic), ('\u{897}', '\u{89f}', Script::Arabic), ('\u{8a0}', '\u{8c8}',
+ Script::Arabic), ('\u{8c9}', '\u{8c9}', Script::Arabic), ('\u{8ca}', '\u{8e1}',
+ Script::Arabic), ('\u{8e2}', '\u{8e2}', Script::Common), ('\u{8e3}', '\u{8ff}',
+ Script::Arabic), ('\u{900}', '\u{902}', Script::Devanagari), ('\u{903}', '\u{903}',
+ Script::Devanagari), ('\u{904}', '\u{939}', Script::Devanagari), ('\u{93a}', '\u{93a}',
+ Script::Devanagari), ('\u{93b}', '\u{93b}', Script::Devanagari), ('\u{93c}', '\u{93c}',
+ Script::Devanagari), ('\u{93d}', '\u{93d}', Script::Devanagari), ('\u{93e}', '\u{940}',
+ Script::Devanagari), ('\u{941}', '\u{948}', Script::Devanagari), ('\u{949}', '\u{94c}',
+ Script::Devanagari), ('\u{94d}', '\u{94d}', Script::Devanagari), ('\u{94e}', '\u{94f}',
+ Script::Devanagari), ('\u{950}', '\u{950}', Script::Devanagari), ('\u{951}', '\u{954}',
+ Script::Inherited), ('\u{955}', '\u{957}', Script::Devanagari), ('\u{958}', '\u{961}',
+ Script::Devanagari), ('\u{962}', '\u{963}', Script::Devanagari), ('\u{964}', '\u{965}',
+ Script::Common), ('\u{966}', '\u{96f}', Script::Devanagari), ('\u{970}', '\u{970}',
+ Script::Devanagari), ('\u{971}', '\u{971}', Script::Devanagari), ('\u{972}', '\u{97f}',
+ Script::Devanagari), ('\u{980}', '\u{980}', Script::Bengali), ('\u{981}', '\u{981}',
+ Script::Bengali), ('\u{982}', '\u{983}', Script::Bengali), ('\u{985}', '\u{98c}',
+ Script::Bengali), ('\u{98f}', '\u{990}', Script::Bengali), ('\u{993}', '\u{9a8}',
+ Script::Bengali), ('\u{9aa}', '\u{9b0}', Script::Bengali), ('\u{9b2}', '\u{9b2}',
+ Script::Bengali), ('\u{9b6}', '\u{9b9}', Script::Bengali), ('\u{9bc}', '\u{9bc}',
+ Script::Bengali), ('\u{9bd}', '\u{9bd}', Script::Bengali), ('\u{9be}', '\u{9c0}',
+ Script::Bengali), ('\u{9c1}', '\u{9c4}', Script::Bengali), ('\u{9c7}', '\u{9c8}',
+ Script::Bengali), ('\u{9cb}', '\u{9cc}', Script::Bengali), ('\u{9cd}', '\u{9cd}',
+ Script::Bengali), ('\u{9ce}', '\u{9ce}', Script::Bengali), ('\u{9d7}', '\u{9d7}',
+ Script::Bengali), ('\u{9dc}', '\u{9dd}', Script::Bengali), ('\u{9df}', '\u{9e1}',
+ Script::Bengali), ('\u{9e2}', '\u{9e3}', Script::Bengali), ('\u{9e6}', '\u{9ef}',
+ Script::Bengali), ('\u{9f0}', '\u{9f1}', Script::Bengali), ('\u{9f2}', '\u{9f3}',
+ Script::Bengali), ('\u{9f4}', '\u{9f9}', Script::Bengali), ('\u{9fa}', '\u{9fa}',
+ Script::Bengali), ('\u{9fb}', '\u{9fb}', Script::Bengali), ('\u{9fc}', '\u{9fc}',
+ Script::Bengali), ('\u{9fd}', '\u{9fd}', Script::Bengali), ('\u{9fe}', '\u{9fe}',
+ Script::Bengali), ('\u{a01}', '\u{a02}', Script::Gurmukhi), ('\u{a03}', '\u{a03}',
+ Script::Gurmukhi), ('\u{a05}', '\u{a0a}', Script::Gurmukhi), ('\u{a0f}', '\u{a10}',
+ Script::Gurmukhi), ('\u{a13}', '\u{a28}', Script::Gurmukhi), ('\u{a2a}', '\u{a30}',
+ Script::Gurmukhi), ('\u{a32}', '\u{a33}', Script::Gurmukhi), ('\u{a35}', '\u{a36}',
+ Script::Gurmukhi), ('\u{a38}', '\u{a39}', Script::Gurmukhi), ('\u{a3c}', '\u{a3c}',
+ Script::Gurmukhi), ('\u{a3e}', '\u{a40}', Script::Gurmukhi), ('\u{a41}', '\u{a42}',
+ Script::Gurmukhi), ('\u{a47}', '\u{a48}', Script::Gurmukhi), ('\u{a4b}', '\u{a4d}',
+ Script::Gurmukhi), ('\u{a51}', '\u{a51}', Script::Gurmukhi), ('\u{a59}', '\u{a5c}',
+ Script::Gurmukhi), ('\u{a5e}', '\u{a5e}', Script::Gurmukhi), ('\u{a66}', '\u{a6f}',
+ Script::Gurmukhi), ('\u{a70}', '\u{a71}', Script::Gurmukhi), ('\u{a72}', '\u{a74}',
+ Script::Gurmukhi), ('\u{a75}', '\u{a75}', Script::Gurmukhi), ('\u{a76}', '\u{a76}',
+ Script::Gurmukhi), ('\u{a81}', '\u{a82}', Script::Gujarati), ('\u{a83}', '\u{a83}',
+ Script::Gujarati), ('\u{a85}', '\u{a8d}', Script::Gujarati), ('\u{a8f}', '\u{a91}',
+ Script::Gujarati), ('\u{a93}', '\u{aa8}', Script::Gujarati), ('\u{aaa}', '\u{ab0}',
+ Script::Gujarati), ('\u{ab2}', '\u{ab3}', Script::Gujarati), ('\u{ab5}', '\u{ab9}',
+ Script::Gujarati), ('\u{abc}', '\u{abc}', Script::Gujarati), ('\u{abd}', '\u{abd}',
+ Script::Gujarati), ('\u{abe}', '\u{ac0}', Script::Gujarati), ('\u{ac1}', '\u{ac5}',
+ Script::Gujarati), ('\u{ac7}', '\u{ac8}', Script::Gujarati), ('\u{ac9}', '\u{ac9}',
+ Script::Gujarati), ('\u{acb}', '\u{acc}', Script::Gujarati), ('\u{acd}', '\u{acd}',
+ Script::Gujarati), ('\u{ad0}', '\u{ad0}', Script::Gujarati), ('\u{ae0}', '\u{ae1}',
+ Script::Gujarati), ('\u{ae2}', '\u{ae3}', Script::Gujarati), ('\u{ae6}', '\u{aef}',
+ Script::Gujarati), ('\u{af0}', '\u{af0}', Script::Gujarati), ('\u{af1}', '\u{af1}',
+ Script::Gujarati), ('\u{af9}', '\u{af9}', Script::Gujarati), ('\u{afa}', '\u{aff}',
+ Script::Gujarati), ('\u{b01}', '\u{b01}', Script::Oriya), ('\u{b02}', '\u{b03}',
+ Script::Oriya), ('\u{b05}', '\u{b0c}', Script::Oriya), ('\u{b0f}', '\u{b10}',
+ Script::Oriya), ('\u{b13}', '\u{b28}', Script::Oriya), ('\u{b2a}', '\u{b30}',
+ Script::Oriya), ('\u{b32}', '\u{b33}', Script::Oriya), ('\u{b35}', '\u{b39}',
+ Script::Oriya), ('\u{b3c}', '\u{b3c}', Script::Oriya), ('\u{b3d}', '\u{b3d}',
+ Script::Oriya), ('\u{b3e}', '\u{b3e}', Script::Oriya), ('\u{b3f}', '\u{b3f}',
+ Script::Oriya), ('\u{b40}', '\u{b40}', Script::Oriya), ('\u{b41}', '\u{b44}',
+ Script::Oriya), ('\u{b47}', '\u{b48}', Script::Oriya), ('\u{b4b}', '\u{b4c}',
+ Script::Oriya), ('\u{b4d}', '\u{b4d}', Script::Oriya), ('\u{b55}', '\u{b56}',
+ Script::Oriya), ('\u{b57}', '\u{b57}', Script::Oriya), ('\u{b5c}', '\u{b5d}',
+ Script::Oriya), ('\u{b5f}', '\u{b61}', Script::Oriya), ('\u{b62}', '\u{b63}',
+ Script::Oriya), ('\u{b66}', '\u{b6f}', Script::Oriya), ('\u{b70}', '\u{b70}',
+ Script::Oriya), ('\u{b71}', '\u{b71}', Script::Oriya), ('\u{b72}', '\u{b77}',
+ Script::Oriya), ('\u{b82}', '\u{b82}', Script::Tamil), ('\u{b83}', '\u{b83}',
+ Script::Tamil), ('\u{b85}', '\u{b8a}', Script::Tamil), ('\u{b8e}', '\u{b90}',
+ Script::Tamil), ('\u{b92}', '\u{b95}', Script::Tamil), ('\u{b99}', '\u{b9a}',
+ Script::Tamil), ('\u{b9c}', '\u{b9c}', Script::Tamil), ('\u{b9e}', '\u{b9f}',
+ Script::Tamil), ('\u{ba3}', '\u{ba4}', Script::Tamil), ('\u{ba8}', '\u{baa}',
+ Script::Tamil), ('\u{bae}', '\u{bb9}', Script::Tamil), ('\u{bbe}', '\u{bbf}',
+ Script::Tamil), ('\u{bc0}', '\u{bc0}', Script::Tamil), ('\u{bc1}', '\u{bc2}',
+ Script::Tamil), ('\u{bc6}', '\u{bc8}', Script::Tamil), ('\u{bca}', '\u{bcc}',
+ Script::Tamil), ('\u{bcd}', '\u{bcd}', Script::Tamil), ('\u{bd0}', '\u{bd0}',
+ Script::Tamil), ('\u{bd7}', '\u{bd7}', Script::Tamil), ('\u{be6}', '\u{bef}',
+ Script::Tamil), ('\u{bf0}', '\u{bf2}', Script::Tamil), ('\u{bf3}', '\u{bf8}',
+ Script::Tamil), ('\u{bf9}', '\u{bf9}', Script::Tamil), ('\u{bfa}', '\u{bfa}',
+ Script::Tamil), ('\u{c00}', '\u{c00}', Script::Telugu), ('\u{c01}', '\u{c03}',
+ Script::Telugu), ('\u{c04}', '\u{c04}', Script::Telugu), ('\u{c05}', '\u{c0c}',
+ Script::Telugu), ('\u{c0e}', '\u{c10}', Script::Telugu), ('\u{c12}', '\u{c28}',
+ Script::Telugu), ('\u{c2a}', '\u{c39}', Script::Telugu), ('\u{c3c}', '\u{c3c}',
+ Script::Telugu), ('\u{c3d}', '\u{c3d}', Script::Telugu), ('\u{c3e}', '\u{c40}',
+ Script::Telugu), ('\u{c41}', '\u{c44}', Script::Telugu), ('\u{c46}', '\u{c48}',
+ Script::Telugu), ('\u{c4a}', '\u{c4d}', Script::Telugu), ('\u{c55}', '\u{c56}',
+ Script::Telugu), ('\u{c58}', '\u{c5a}', Script::Telugu), ('\u{c5d}', '\u{c5d}',
+ Script::Telugu), ('\u{c60}', '\u{c61}', Script::Telugu), ('\u{c62}', '\u{c63}',
+ Script::Telugu), ('\u{c66}', '\u{c6f}', Script::Telugu), ('\u{c77}', '\u{c77}',
+ Script::Telugu), ('\u{c78}', '\u{c7e}', Script::Telugu), ('\u{c7f}', '\u{c7f}',
+ Script::Telugu), ('\u{c80}', '\u{c80}', Script::Kannada), ('\u{c81}', '\u{c81}',
+ Script::Kannada), ('\u{c82}', '\u{c83}', Script::Kannada), ('\u{c84}', '\u{c84}',
+ Script::Kannada), ('\u{c85}', '\u{c8c}', Script::Kannada), ('\u{c8e}', '\u{c90}',
+ Script::Kannada), ('\u{c92}', '\u{ca8}', Script::Kannada), ('\u{caa}', '\u{cb3}',
+ Script::Kannada), ('\u{cb5}', '\u{cb9}', Script::Kannada), ('\u{cbc}', '\u{cbc}',
+ Script::Kannada), ('\u{cbd}', '\u{cbd}', Script::Kannada), ('\u{cbe}', '\u{cbe}',
+ Script::Kannada), ('\u{cbf}', '\u{cbf}', Script::Kannada), ('\u{cc0}', '\u{cc4}',
+ Script::Kannada), ('\u{cc6}', '\u{cc6}', Script::Kannada), ('\u{cc7}', '\u{cc8}',
+ Script::Kannada), ('\u{cca}', '\u{ccb}', Script::Kannada), ('\u{ccc}', '\u{ccd}',
+ Script::Kannada), ('\u{cd5}', '\u{cd6}', Script::Kannada), ('\u{cdd}', '\u{cde}',
+ Script::Kannada), ('\u{ce0}', '\u{ce1}', Script::Kannada), ('\u{ce2}', '\u{ce3}',
+ Script::Kannada), ('\u{ce6}', '\u{cef}', Script::Kannada), ('\u{cf1}', '\u{cf2}',
+ Script::Kannada), ('\u{cf3}', '\u{cf3}', Script::Kannada), ('\u{d00}', '\u{d01}',
+ Script::Malayalam), ('\u{d02}', '\u{d03}', Script::Malayalam), ('\u{d04}', '\u{d0c}',
+ Script::Malayalam), ('\u{d0e}', '\u{d10}', Script::Malayalam), ('\u{d12}', '\u{d3a}',
+ Script::Malayalam), ('\u{d3b}', '\u{d3c}', Script::Malayalam), ('\u{d3d}', '\u{d3d}',
+ Script::Malayalam), ('\u{d3e}', '\u{d40}', Script::Malayalam), ('\u{d41}', '\u{d44}',
+ Script::Malayalam), ('\u{d46}', '\u{d48}', Script::Malayalam), ('\u{d4a}', '\u{d4c}',
+ Script::Malayalam), ('\u{d4d}', '\u{d4d}', Script::Malayalam), ('\u{d4e}', '\u{d4e}',
+ Script::Malayalam), ('\u{d4f}', '\u{d4f}', Script::Malayalam), ('\u{d54}', '\u{d56}',
+ Script::Malayalam), ('\u{d57}', '\u{d57}', Script::Malayalam), ('\u{d58}', '\u{d5e}',
+ Script::Malayalam), ('\u{d5f}', '\u{d61}', Script::Malayalam), ('\u{d62}', '\u{d63}',
+ Script::Malayalam), ('\u{d66}', '\u{d6f}', Script::Malayalam), ('\u{d70}', '\u{d78}',
+ Script::Malayalam), ('\u{d79}', '\u{d79}', Script::Malayalam), ('\u{d7a}', '\u{d7f}',
+ Script::Malayalam), ('\u{d81}', '\u{d81}', Script::Sinhala), ('\u{d82}', '\u{d83}',
+ Script::Sinhala), ('\u{d85}', '\u{d96}', Script::Sinhala), ('\u{d9a}', '\u{db1}',
+ Script::Sinhala), ('\u{db3}', '\u{dbb}', Script::Sinhala), ('\u{dbd}', '\u{dbd}',
+ Script::Sinhala), ('\u{dc0}', '\u{dc6}', Script::Sinhala), ('\u{dca}', '\u{dca}',
+ Script::Sinhala), ('\u{dcf}', '\u{dd1}', Script::Sinhala), ('\u{dd2}', '\u{dd4}',
+ Script::Sinhala), ('\u{dd6}', '\u{dd6}', Script::Sinhala), ('\u{dd8}', '\u{ddf}',
+ Script::Sinhala), ('\u{de6}', '\u{def}', Script::Sinhala), ('\u{df2}', '\u{df3}',
+ Script::Sinhala), ('\u{df4}', '\u{df4}', Script::Sinhala), ('\u{e01}', '\u{e30}',
+ Script::Thai), ('\u{e31}', '\u{e31}', Script::Thai), ('\u{e32}', '\u{e33}',
+ Script::Thai), ('\u{e34}', '\u{e3a}', Script::Thai), ('\u{e3f}', '\u{e3f}',
+ Script::Common), ('\u{e40}', '\u{e45}', Script::Thai), ('\u{e46}', '\u{e46}',
+ Script::Thai), ('\u{e47}', '\u{e4e}', Script::Thai), ('\u{e4f}', '\u{e4f}',
+ Script::Thai), ('\u{e50}', '\u{e59}', Script::Thai), ('\u{e5a}', '\u{e5b}',
+ Script::Thai), ('\u{e81}', '\u{e82}', Script::Lao), ('\u{e84}', '\u{e84}', Script::Lao),
+ ('\u{e86}', '\u{e8a}', Script::Lao), ('\u{e8c}', '\u{ea3}', Script::Lao), ('\u{ea5}',
+ '\u{ea5}', Script::Lao), ('\u{ea7}', '\u{eb0}', Script::Lao), ('\u{eb1}', '\u{eb1}',
+ Script::Lao), ('\u{eb2}', '\u{eb3}', Script::Lao), ('\u{eb4}', '\u{ebc}', Script::Lao),
+ ('\u{ebd}', '\u{ebd}', Script::Lao), ('\u{ec0}', '\u{ec4}', Script::Lao), ('\u{ec6}',
+ '\u{ec6}', Script::Lao), ('\u{ec8}', '\u{ece}', Script::Lao), ('\u{ed0}', '\u{ed9}',
+ Script::Lao), ('\u{edc}', '\u{edf}', Script::Lao), ('\u{f00}', '\u{f00}',
+ Script::Tibetan), ('\u{f01}', '\u{f03}', Script::Tibetan), ('\u{f04}', '\u{f12}',
+ Script::Tibetan), ('\u{f13}', '\u{f13}', Script::Tibetan), ('\u{f14}', '\u{f14}',
+ Script::Tibetan), ('\u{f15}', '\u{f17}', Script::Tibetan), ('\u{f18}', '\u{f19}',
+ Script::Tibetan), ('\u{f1a}', '\u{f1f}', Script::Tibetan), ('\u{f20}', '\u{f29}',
+ Script::Tibetan), ('\u{f2a}', '\u{f33}', Script::Tibetan), ('\u{f34}', '\u{f34}',
+ Script::Tibetan), ('\u{f35}', '\u{f35}', Script::Tibetan), ('\u{f36}', '\u{f36}',
+ Script::Tibetan), ('\u{f37}', '\u{f37}', Script::Tibetan), ('\u{f38}', '\u{f38}',
+ Script::Tibetan), ('\u{f39}', '\u{f39}', Script::Tibetan), ('\u{f3a}', '\u{f3a}',
+ Script::Tibetan), ('\u{f3b}', '\u{f3b}', Script::Tibetan), ('\u{f3c}', '\u{f3c}',
+ Script::Tibetan), ('\u{f3d}', '\u{f3d}', Script::Tibetan), ('\u{f3e}', '\u{f3f}',
+ Script::Tibetan), ('\u{f40}', '\u{f47}', Script::Tibetan), ('\u{f49}', '\u{f6c}',
+ Script::Tibetan), ('\u{f71}', '\u{f7e}', Script::Tibetan), ('\u{f7f}', '\u{f7f}',
+ Script::Tibetan), ('\u{f80}', '\u{f84}', Script::Tibetan), ('\u{f85}', '\u{f85}',
+ Script::Tibetan), ('\u{f86}', '\u{f87}', Script::Tibetan), ('\u{f88}', '\u{f8c}',
+ Script::Tibetan), ('\u{f8d}', '\u{f97}', Script::Tibetan), ('\u{f99}', '\u{fbc}',
+ Script::Tibetan), ('\u{fbe}', '\u{fc5}', Script::Tibetan), ('\u{fc6}', '\u{fc6}',
+ Script::Tibetan), ('\u{fc7}', '\u{fcc}', Script::Tibetan), ('\u{fce}', '\u{fcf}',
+ Script::Tibetan), ('\u{fd0}', '\u{fd4}', Script::Tibetan), ('\u{fd5}', '\u{fd8}',
+ Script::Common), ('\u{fd9}', '\u{fda}', Script::Tibetan), ('\u{1000}', '\u{102a}',
+ Script::Myanmar), ('\u{102b}', '\u{102c}', Script::Myanmar), ('\u{102d}', '\u{1030}',
+ Script::Myanmar), ('\u{1031}', '\u{1031}', Script::Myanmar), ('\u{1032}', '\u{1037}',
+ Script::Myanmar), ('\u{1038}', '\u{1038}', Script::Myanmar), ('\u{1039}', '\u{103a}',
+ Script::Myanmar), ('\u{103b}', '\u{103c}', Script::Myanmar), ('\u{103d}', '\u{103e}',
+ Script::Myanmar), ('\u{103f}', '\u{103f}', Script::Myanmar), ('\u{1040}', '\u{1049}',
+ Script::Myanmar), ('\u{104a}', '\u{104f}', Script::Myanmar), ('\u{1050}', '\u{1055}',
+ Script::Myanmar), ('\u{1056}', '\u{1057}', Script::Myanmar), ('\u{1058}', '\u{1059}',
+ Script::Myanmar), ('\u{105a}', '\u{105d}', Script::Myanmar), ('\u{105e}', '\u{1060}',
+ Script::Myanmar), ('\u{1061}', '\u{1061}', Script::Myanmar), ('\u{1062}', '\u{1064}',
+ Script::Myanmar), ('\u{1065}', '\u{1066}', Script::Myanmar), ('\u{1067}', '\u{106d}',
+ Script::Myanmar), ('\u{106e}', '\u{1070}', Script::Myanmar), ('\u{1071}', '\u{1074}',
+ Script::Myanmar), ('\u{1075}', '\u{1081}', Script::Myanmar), ('\u{1082}', '\u{1082}',
+ Script::Myanmar), ('\u{1083}', '\u{1084}', Script::Myanmar), ('\u{1085}', '\u{1086}',
+ Script::Myanmar), ('\u{1087}', '\u{108c}', Script::Myanmar), ('\u{108d}', '\u{108d}',
+ Script::Myanmar), ('\u{108e}', '\u{108e}', Script::Myanmar), ('\u{108f}', '\u{108f}',
+ Script::Myanmar), ('\u{1090}', '\u{1099}', Script::Myanmar), ('\u{109a}', '\u{109c}',
+ Script::Myanmar), ('\u{109d}', '\u{109d}', Script::Myanmar), ('\u{109e}', '\u{109f}',
+ Script::Myanmar), ('\u{10a0}', '\u{10c5}', Script::Georgian), ('\u{10c7}', '\u{10c7}',
+ Script::Georgian), ('\u{10cd}', '\u{10cd}', Script::Georgian), ('\u{10d0}', '\u{10fa}',
+ Script::Georgian), ('\u{10fb}', '\u{10fb}', Script::Common), ('\u{10fc}', '\u{10fc}',
+ Script::Georgian), ('\u{10fd}', '\u{10ff}', Script::Georgian), ('\u{1100}', '\u{11ff}',
+ Script::Hangul), ('\u{1200}', '\u{1248}', Script::Ethiopic), ('\u{124a}', '\u{124d}',
+ Script::Ethiopic), ('\u{1250}', '\u{1256}', Script::Ethiopic), ('\u{1258}', '\u{1258}',
+ Script::Ethiopic), ('\u{125a}', '\u{125d}', Script::Ethiopic), ('\u{1260}', '\u{1288}',
+ Script::Ethiopic), ('\u{128a}', '\u{128d}', Script::Ethiopic), ('\u{1290}', '\u{12b0}',
+ Script::Ethiopic), ('\u{12b2}', '\u{12b5}', Script::Ethiopic), ('\u{12b8}', '\u{12be}',
+ Script::Ethiopic), ('\u{12c0}', '\u{12c0}', Script::Ethiopic), ('\u{12c2}', '\u{12c5}',
+ Script::Ethiopic), ('\u{12c8}', '\u{12d6}', Script::Ethiopic), ('\u{12d8}', '\u{1310}',
+ Script::Ethiopic), ('\u{1312}', '\u{1315}', Script::Ethiopic), ('\u{1318}', '\u{135a}',
+ Script::Ethiopic), ('\u{135d}', '\u{135f}', Script::Ethiopic), ('\u{1360}', '\u{1368}',
+ Script::Ethiopic), ('\u{1369}', '\u{137c}', Script::Ethiopic), ('\u{1380}', '\u{138f}',
+ Script::Ethiopic), ('\u{1390}', '\u{1399}', Script::Ethiopic), ('\u{13a0}', '\u{13f5}',
+ Script::Cherokee), ('\u{13f8}', '\u{13fd}', Script::Cherokee), ('\u{1400}', '\u{1400}',
+ Script::Canadian_Aboriginal), ('\u{1401}', '\u{166c}', Script::Canadian_Aboriginal),
+ ('\u{166d}', '\u{166d}', Script::Canadian_Aboriginal), ('\u{166e}', '\u{166e}',
+ Script::Canadian_Aboriginal), ('\u{166f}', '\u{167f}', Script::Canadian_Aboriginal),
+ ('\u{1680}', '\u{1680}', Script::Ogham), ('\u{1681}', '\u{169a}', Script::Ogham),
+ ('\u{169b}', '\u{169b}', Script::Ogham), ('\u{169c}', '\u{169c}', Script::Ogham),
+ ('\u{16a0}', '\u{16ea}', Script::Runic), ('\u{16eb}', '\u{16ed}', Script::Common),
+ ('\u{16ee}', '\u{16f0}', Script::Runic), ('\u{16f1}', '\u{16f8}', Script::Runic),
+ ('\u{1700}', '\u{1711}', Script::Tagalog), ('\u{1712}', '\u{1714}', Script::Tagalog),
+ ('\u{1715}', '\u{1715}', Script::Tagalog), ('\u{171f}', '\u{171f}', Script::Tagalog),
+ ('\u{1720}', '\u{1731}', Script::Hanunoo), ('\u{1732}', '\u{1733}', Script::Hanunoo),
+ ('\u{1734}', '\u{1734}', Script::Hanunoo), ('\u{1735}', '\u{1736}', Script::Common),
+ ('\u{1740}', '\u{1751}', Script::Buhid), ('\u{1752}', '\u{1753}', Script::Buhid),
+ ('\u{1760}', '\u{176c}', Script::Tagbanwa), ('\u{176e}', '\u{1770}', Script::Tagbanwa),
+ ('\u{1772}', '\u{1773}', Script::Tagbanwa), ('\u{1780}', '\u{17b3}', Script::Khmer),
+ ('\u{17b4}', '\u{17b5}', Script::Khmer), ('\u{17b6}', '\u{17b6}', Script::Khmer),
+ ('\u{17b7}', '\u{17bd}', Script::Khmer), ('\u{17be}', '\u{17c5}', Script::Khmer),
+ ('\u{17c6}', '\u{17c6}', Script::Khmer), ('\u{17c7}', '\u{17c8}', Script::Khmer),
+ ('\u{17c9}', '\u{17d3}', Script::Khmer), ('\u{17d4}', '\u{17d6}', Script::Khmer),
+ ('\u{17d7}', '\u{17d7}', Script::Khmer), ('\u{17d8}', '\u{17da}', Script::Khmer),
+ ('\u{17db}', '\u{17db}', Script::Khmer), ('\u{17dc}', '\u{17dc}', Script::Khmer),
+ ('\u{17dd}', '\u{17dd}', Script::Khmer), ('\u{17e0}', '\u{17e9}', Script::Khmer),
+ ('\u{17f0}', '\u{17f9}', Script::Khmer), ('\u{1800}', '\u{1801}', Script::Mongolian),
+ ('\u{1802}', '\u{1803}', Script::Common), ('\u{1804}', '\u{1804}', Script::Mongolian),
+ ('\u{1805}', '\u{1805}', Script::Common), ('\u{1806}', '\u{1806}', Script::Mongolian),
+ ('\u{1807}', '\u{180a}', Script::Mongolian), ('\u{180b}', '\u{180d}', Script::Mongolian),
+ ('\u{180e}', '\u{180e}', Script::Mongolian), ('\u{180f}', '\u{180f}', Script::Mongolian),
+ ('\u{1810}', '\u{1819}', Script::Mongolian), ('\u{1820}', '\u{1842}', Script::Mongolian),
+ ('\u{1843}', '\u{1843}', Script::Mongolian), ('\u{1844}', '\u{1878}', Script::Mongolian),
+ ('\u{1880}', '\u{1884}', Script::Mongolian), ('\u{1885}', '\u{1886}', Script::Mongolian),
+ ('\u{1887}', '\u{18a8}', Script::Mongolian), ('\u{18a9}', '\u{18a9}', Script::Mongolian),
+ ('\u{18aa}', '\u{18aa}', Script::Mongolian), ('\u{18b0}', '\u{18f5}',
+ Script::Canadian_Aboriginal), ('\u{1900}', '\u{191e}', Script::Limbu), ('\u{1920}',
+ '\u{1922}', Script::Limbu), ('\u{1923}', '\u{1926}', Script::Limbu), ('\u{1927}',
+ '\u{1928}', Script::Limbu), ('\u{1929}', '\u{192b}', Script::Limbu), ('\u{1930}',
+ '\u{1931}', Script::Limbu), ('\u{1932}', '\u{1932}', Script::Limbu), ('\u{1933}',
+ '\u{1938}', Script::Limbu), ('\u{1939}', '\u{193b}', Script::Limbu), ('\u{1940}',
+ '\u{1940}', Script::Limbu), ('\u{1944}', '\u{1945}', Script::Limbu), ('\u{1946}',
+ '\u{194f}', Script::Limbu), ('\u{1950}', '\u{196d}', Script::Tai_Le), ('\u{1970}',
+ '\u{1974}', Script::Tai_Le), ('\u{1980}', '\u{19ab}', Script::New_Tai_Lue), ('\u{19b0}',
+ '\u{19c9}', Script::New_Tai_Lue), ('\u{19d0}', '\u{19d9}', Script::New_Tai_Lue),
+ ('\u{19da}', '\u{19da}', Script::New_Tai_Lue), ('\u{19de}', '\u{19df}',
+ Script::New_Tai_Lue), ('\u{19e0}', '\u{19ff}', Script::Khmer), ('\u{1a00}', '\u{1a16}',
+ Script::Buginese), ('\u{1a17}', '\u{1a18}', Script::Buginese), ('\u{1a19}', '\u{1a1a}',
+ Script::Buginese), ('\u{1a1b}', '\u{1a1b}', Script::Buginese), ('\u{1a1e}', '\u{1a1f}',
+ Script::Buginese), ('\u{1a20}', '\u{1a54}', Script::Tai_Tham), ('\u{1a55}', '\u{1a55}',
+ Script::Tai_Tham), ('\u{1a56}', '\u{1a56}', Script::Tai_Tham), ('\u{1a57}', '\u{1a57}',
+ Script::Tai_Tham), ('\u{1a58}', '\u{1a5e}', Script::Tai_Tham), ('\u{1a60}', '\u{1a60}',
+ Script::Tai_Tham), ('\u{1a61}', '\u{1a61}', Script::Tai_Tham), ('\u{1a62}', '\u{1a62}',
+ Script::Tai_Tham), ('\u{1a63}', '\u{1a64}', Script::Tai_Tham), ('\u{1a65}', '\u{1a6c}',
+ Script::Tai_Tham), ('\u{1a6d}', '\u{1a72}', Script::Tai_Tham), ('\u{1a73}', '\u{1a7c}',
+ Script::Tai_Tham), ('\u{1a7f}', '\u{1a7f}', Script::Tai_Tham), ('\u{1a80}', '\u{1a89}',
+ Script::Tai_Tham), ('\u{1a90}', '\u{1a99}', Script::Tai_Tham), ('\u{1aa0}', '\u{1aa6}',
+ Script::Tai_Tham), ('\u{1aa7}', '\u{1aa7}', Script::Tai_Tham), ('\u{1aa8}', '\u{1aad}',
+ Script::Tai_Tham), ('\u{1ab0}', '\u{1abd}', Script::Inherited), ('\u{1abe}', '\u{1abe}',
+ Script::Inherited), ('\u{1abf}', '\u{1ace}', Script::Inherited), ('\u{1b00}', '\u{1b03}',
+ Script::Balinese), ('\u{1b04}', '\u{1b04}', Script::Balinese), ('\u{1b05}', '\u{1b33}',
+ Script::Balinese), ('\u{1b34}', '\u{1b34}', Script::Balinese), ('\u{1b35}', '\u{1b35}',
+ Script::Balinese), ('\u{1b36}', '\u{1b3a}', Script::Balinese), ('\u{1b3b}', '\u{1b3b}',
+ Script::Balinese), ('\u{1b3c}', '\u{1b3c}', Script::Balinese), ('\u{1b3d}', '\u{1b41}',
+ Script::Balinese), ('\u{1b42}', '\u{1b42}', Script::Balinese), ('\u{1b43}', '\u{1b44}',
+ Script::Balinese), ('\u{1b45}', '\u{1b4c}', Script::Balinese), ('\u{1b4e}', '\u{1b4f}',
+ Script::Balinese), ('\u{1b50}', '\u{1b59}', Script::Balinese), ('\u{1b5a}', '\u{1b60}',
+ Script::Balinese), ('\u{1b61}', '\u{1b6a}', Script::Balinese), ('\u{1b6b}', '\u{1b73}',
+ Script::Balinese), ('\u{1b74}', '\u{1b7c}', Script::Balinese), ('\u{1b7d}', '\u{1b7f}',
+ Script::Balinese), ('\u{1b80}', '\u{1b81}', Script::Sundanese), ('\u{1b82}', '\u{1b82}',
+ Script::Sundanese), ('\u{1b83}', '\u{1ba0}', Script::Sundanese), ('\u{1ba1}', '\u{1ba1}',
+ Script::Sundanese), ('\u{1ba2}', '\u{1ba5}', Script::Sundanese), ('\u{1ba6}', '\u{1ba7}',
+ Script::Sundanese), ('\u{1ba8}', '\u{1ba9}', Script::Sundanese), ('\u{1baa}', '\u{1baa}',
+ Script::Sundanese), ('\u{1bab}', '\u{1bad}', Script::Sundanese), ('\u{1bae}', '\u{1baf}',
+ Script::Sundanese), ('\u{1bb0}', '\u{1bb9}', Script::Sundanese), ('\u{1bba}', '\u{1bbf}',
+ Script::Sundanese), ('\u{1bc0}', '\u{1be5}', Script::Batak), ('\u{1be6}', '\u{1be6}',
+ Script::Batak), ('\u{1be7}', '\u{1be7}', Script::Batak), ('\u{1be8}', '\u{1be9}',
+ Script::Batak), ('\u{1bea}', '\u{1bec}', Script::Batak), ('\u{1bed}', '\u{1bed}',
+ Script::Batak), ('\u{1bee}', '\u{1bee}', Script::Batak), ('\u{1bef}', '\u{1bf1}',
+ Script::Batak), ('\u{1bf2}', '\u{1bf3}', Script::Batak), ('\u{1bfc}', '\u{1bff}',
+ Script::Batak), ('\u{1c00}', '\u{1c23}', Script::Lepcha), ('\u{1c24}', '\u{1c2b}',
+ Script::Lepcha), ('\u{1c2c}', '\u{1c33}', Script::Lepcha), ('\u{1c34}', '\u{1c35}',
+ Script::Lepcha), ('\u{1c36}', '\u{1c37}', Script::Lepcha), ('\u{1c3b}', '\u{1c3f}',
+ Script::Lepcha), ('\u{1c40}', '\u{1c49}', Script::Lepcha), ('\u{1c4d}', '\u{1c4f}',
+ Script::Lepcha), ('\u{1c50}', '\u{1c59}', Script::Ol_Chiki), ('\u{1c5a}', '\u{1c77}',
+ Script::Ol_Chiki), ('\u{1c78}', '\u{1c7d}', Script::Ol_Chiki), ('\u{1c7e}', '\u{1c7f}',
+ Script::Ol_Chiki), ('\u{1c80}', '\u{1c8a}', Script::Cyrillic), ('\u{1c90}', '\u{1cba}',
+ Script::Georgian), ('\u{1cbd}', '\u{1cbf}', Script::Georgian), ('\u{1cc0}', '\u{1cc7}',
+ Script::Sundanese), ('\u{1cd0}', '\u{1cd2}', Script::Inherited), ('\u{1cd3}', '\u{1cd3}',
+ Script::Common), ('\u{1cd4}', '\u{1ce0}', Script::Inherited), ('\u{1ce1}', '\u{1ce1}',
+ Script::Common), ('\u{1ce2}', '\u{1ce8}', Script::Inherited), ('\u{1ce9}', '\u{1cec}',
+ Script::Common), ('\u{1ced}', '\u{1ced}', Script::Inherited), ('\u{1cee}', '\u{1cf3}',
+ Script::Common), ('\u{1cf4}', '\u{1cf4}', Script::Inherited), ('\u{1cf5}', '\u{1cf6}',
+ Script::Common), ('\u{1cf7}', '\u{1cf7}', Script::Common), ('\u{1cf8}', '\u{1cf9}',
+ Script::Inherited), ('\u{1cfa}', '\u{1cfa}', Script::Common), ('\u{1d00}', '\u{1d25}',
+ Script::Latin), ('\u{1d26}', '\u{1d2a}', Script::Greek), ('\u{1d2b}', '\u{1d2b}',
+ Script::Cyrillic), ('\u{1d2c}', '\u{1d5c}', Script::Latin), ('\u{1d5d}', '\u{1d61}',
+ Script::Greek), ('\u{1d62}', '\u{1d65}', Script::Latin), ('\u{1d66}', '\u{1d6a}',
+ Script::Greek), ('\u{1d6b}', '\u{1d77}', Script::Latin), ('\u{1d78}', '\u{1d78}',
+ Script::Cyrillic), ('\u{1d79}', '\u{1d9a}', Script::Latin), ('\u{1d9b}', '\u{1dbe}',
+ Script::Latin), ('\u{1dbf}', '\u{1dbf}', Script::Greek), ('\u{1dc0}', '\u{1dff}',
+ Script::Inherited), ('\u{1e00}', '\u{1eff}', Script::Latin), ('\u{1f00}', '\u{1f15}',
+ Script::Greek), ('\u{1f18}', '\u{1f1d}', Script::Greek), ('\u{1f20}', '\u{1f45}',
+ Script::Greek), ('\u{1f48}', '\u{1f4d}', Script::Greek), ('\u{1f50}', '\u{1f57}',
+ Script::Greek), ('\u{1f59}', '\u{1f59}', Script::Greek), ('\u{1f5b}', '\u{1f5b}',
+ Script::Greek), ('\u{1f5d}', '\u{1f5d}', Script::Greek), ('\u{1f5f}', '\u{1f7d}',
+ Script::Greek), ('\u{1f80}', '\u{1fb4}', Script::Greek), ('\u{1fb6}', '\u{1fbc}',
+ Script::Greek), ('\u{1fbd}', '\u{1fbd}', Script::Greek), ('\u{1fbe}', '\u{1fbe}',
+ Script::Greek), ('\u{1fbf}', '\u{1fc1}', Script::Greek), ('\u{1fc2}', '\u{1fc4}',
+ Script::Greek), ('\u{1fc6}', '\u{1fcc}', Script::Greek), ('\u{1fcd}', '\u{1fcf}',
+ Script::Greek), ('\u{1fd0}', '\u{1fd3}', Script::Greek), ('\u{1fd6}', '\u{1fdb}',
+ Script::Greek), ('\u{1fdd}', '\u{1fdf}', Script::Greek), ('\u{1fe0}', '\u{1fec}',
+ Script::Greek), ('\u{1fed}', '\u{1fef}', Script::Greek), ('\u{1ff2}', '\u{1ff4}',
+ Script::Greek), ('\u{1ff6}', '\u{1ffc}', Script::Greek), ('\u{1ffd}', '\u{1ffe}',
+ Script::Greek), ('\u{2000}', '\u{200a}', Script::Common), ('\u{200b}', '\u{200b}',
+ Script::Common), ('\u{200c}', '\u{200d}', Script::Inherited), ('\u{200e}', '\u{200f}',
+ Script::Common), ('\u{2010}', '\u{2015}', Script::Common), ('\u{2016}', '\u{2017}',
+ Script::Common), ('\u{2018}', '\u{2018}', Script::Common), ('\u{2019}', '\u{2019}',
+ Script::Common), ('\u{201a}', '\u{201a}', Script::Common), ('\u{201b}', '\u{201c}',
+ Script::Common), ('\u{201d}', '\u{201d}', Script::Common), ('\u{201e}', '\u{201e}',
+ Script::Common), ('\u{201f}', '\u{201f}', Script::Common), ('\u{2020}', '\u{2027}',
+ Script::Common), ('\u{2028}', '\u{2028}', Script::Common), ('\u{2029}', '\u{2029}',
+ Script::Common), ('\u{202a}', '\u{202e}', Script::Common), ('\u{202f}', '\u{202f}',
+ Script::Common), ('\u{2030}', '\u{2038}', Script::Common), ('\u{2039}', '\u{2039}',
+ Script::Common), ('\u{203a}', '\u{203a}', Script::Common), ('\u{203b}', '\u{203e}',
+ Script::Common), ('\u{203f}', '\u{2040}', Script::Common), ('\u{2041}', '\u{2043}',
+ Script::Common), ('\u{2044}', '\u{2044}', Script::Common), ('\u{2045}', '\u{2045}',
+ Script::Common), ('\u{2046}', '\u{2046}', Script::Common), ('\u{2047}', '\u{2051}',
+ Script::Common), ('\u{2052}', '\u{2052}', Script::Common), ('\u{2053}', '\u{2053}',
+ Script::Common), ('\u{2054}', '\u{2054}', Script::Common), ('\u{2055}', '\u{205e}',
+ Script::Common), ('\u{205f}', '\u{205f}', Script::Common), ('\u{2060}', '\u{2064}',
+ Script::Common), ('\u{2066}', '\u{206f}', Script::Common), ('\u{2070}', '\u{2070}',
+ Script::Common), ('\u{2071}', '\u{2071}', Script::Latin), ('\u{2074}', '\u{2079}',
+ Script::Common), ('\u{207a}', '\u{207c}', Script::Common), ('\u{207d}', '\u{207d}',
+ Script::Common), ('\u{207e}', '\u{207e}', Script::Common), ('\u{207f}', '\u{207f}',
+ Script::Latin), ('\u{2080}', '\u{2089}', Script::Common), ('\u{208a}', '\u{208c}',
+ Script::Common), ('\u{208d}', '\u{208d}', Script::Common), ('\u{208e}', '\u{208e}',
+ Script::Common), ('\u{2090}', '\u{209c}', Script::Latin), ('\u{20a0}', '\u{20c0}',
+ Script::Common), ('\u{20d0}', '\u{20dc}', Script::Inherited), ('\u{20dd}', '\u{20e0}',
+ Script::Inherited), ('\u{20e1}', '\u{20e1}', Script::Inherited), ('\u{20e2}', '\u{20e4}',
+ Script::Inherited), ('\u{20e5}', '\u{20f0}', Script::Inherited), ('\u{2100}', '\u{2101}',
+ Script::Common), ('\u{2102}', '\u{2102}', Script::Common), ('\u{2103}', '\u{2106}',
+ Script::Common), ('\u{2107}', '\u{2107}', Script::Common), ('\u{2108}', '\u{2109}',
+ Script::Common), ('\u{210a}', '\u{2113}', Script::Common), ('\u{2114}', '\u{2114}',
+ Script::Common), ('\u{2115}', '\u{2115}', Script::Common), ('\u{2116}', '\u{2117}',
+ Script::Common), ('\u{2118}', '\u{2118}', Script::Common), ('\u{2119}', '\u{211d}',
+ Script::Common), ('\u{211e}', '\u{2123}', Script::Common), ('\u{2124}', '\u{2124}',
+ Script::Common), ('\u{2125}', '\u{2125}', Script::Common), ('\u{2126}', '\u{2126}',
+ Script::Greek), ('\u{2127}', '\u{2127}', Script::Common), ('\u{2128}', '\u{2128}',
+ Script::Common), ('\u{2129}', '\u{2129}', Script::Common), ('\u{212a}', '\u{212b}',
+ Script::Latin), ('\u{212c}', '\u{212d}', Script::Common), ('\u{212e}', '\u{212e}',
+ Script::Common), ('\u{212f}', '\u{2131}', Script::Common), ('\u{2132}', '\u{2132}',
+ Script::Latin), ('\u{2133}', '\u{2134}', Script::Common), ('\u{2135}', '\u{2138}',
+ Script::Common), ('\u{2139}', '\u{2139}', Script::Common), ('\u{213a}', '\u{213b}',
+ Script::Common), ('\u{213c}', '\u{213f}', Script::Common), ('\u{2140}', '\u{2144}',
+ Script::Common), ('\u{2145}', '\u{2149}', Script::Common), ('\u{214a}', '\u{214a}',
+ Script::Common), ('\u{214b}', '\u{214b}', Script::Common), ('\u{214c}', '\u{214d}',
+ Script::Common), ('\u{214e}', '\u{214e}', Script::Latin), ('\u{214f}', '\u{214f}',
+ Script::Common), ('\u{2150}', '\u{215f}', Script::Common), ('\u{2160}', '\u{2182}',
+ Script::Latin), ('\u{2183}', '\u{2184}', Script::Latin), ('\u{2185}', '\u{2188}',
+ Script::Latin), ('\u{2189}', '\u{2189}', Script::Common), ('\u{218a}', '\u{218b}',
+ Script::Common), ('\u{2190}', '\u{2194}', Script::Common), ('\u{2195}', '\u{2199}',
+ Script::Common), ('\u{219a}', '\u{219b}', Script::Common), ('\u{219c}', '\u{219f}',
+ Script::Common), ('\u{21a0}', '\u{21a0}', Script::Common), ('\u{21a1}', '\u{21a2}',
+ Script::Common), ('\u{21a3}', '\u{21a3}', Script::Common), ('\u{21a4}', '\u{21a5}',
+ Script::Common), ('\u{21a6}', '\u{21a6}', Script::Common), ('\u{21a7}', '\u{21ad}',
+ Script::Common), ('\u{21ae}', '\u{21ae}', Script::Common), ('\u{21af}', '\u{21cd}',
+ Script::Common), ('\u{21ce}', '\u{21cf}', Script::Common), ('\u{21d0}', '\u{21d1}',
+ Script::Common), ('\u{21d2}', '\u{21d2}', Script::Common), ('\u{21d3}', '\u{21d3}',
+ Script::Common), ('\u{21d4}', '\u{21d4}', Script::Common), ('\u{21d5}', '\u{21f3}',
+ Script::Common), ('\u{21f4}', '\u{22ff}', Script::Common), ('\u{2300}', '\u{2307}',
+ Script::Common), ('\u{2308}', '\u{2308}', Script::Common), ('\u{2309}', '\u{2309}',
+ Script::Common), ('\u{230a}', '\u{230a}', Script::Common), ('\u{230b}', '\u{230b}',
+ Script::Common), ('\u{230c}', '\u{231f}', Script::Common), ('\u{2320}', '\u{2321}',
+ Script::Common), ('\u{2322}', '\u{2328}', Script::Common), ('\u{2329}', '\u{2329}',
+ Script::Common), ('\u{232a}', '\u{232a}', Script::Common), ('\u{232b}', '\u{237b}',
+ Script::Common), ('\u{237c}', '\u{237c}', Script::Common), ('\u{237d}', '\u{239a}',
+ Script::Common), ('\u{239b}', '\u{23b3}', Script::Common), ('\u{23b4}', '\u{23db}',
+ Script::Common), ('\u{23dc}', '\u{23e1}', Script::Common), ('\u{23e2}', '\u{2429}',
+ Script::Common), ('\u{2440}', '\u{244a}', Script::Common), ('\u{2460}', '\u{249b}',
+ Script::Common), ('\u{249c}', '\u{24e9}', Script::Common), ('\u{24ea}', '\u{24ff}',
+ Script::Common), ('\u{2500}', '\u{25b6}', Script::Common), ('\u{25b7}', '\u{25b7}',
+ Script::Common), ('\u{25b8}', '\u{25c0}', Script::Common), ('\u{25c1}', '\u{25c1}',
+ Script::Common), ('\u{25c2}', '\u{25f7}', Script::Common), ('\u{25f8}', '\u{25ff}',
+ Script::Common), ('\u{2600}', '\u{266e}', Script::Common), ('\u{266f}', '\u{266f}',
+ Script::Common), ('\u{2670}', '\u{2767}', Script::Common), ('\u{2768}', '\u{2768}',
+ Script::Common), ('\u{2769}', '\u{2769}', Script::Common), ('\u{276a}', '\u{276a}',
+ Script::Common), ('\u{276b}', '\u{276b}', Script::Common), ('\u{276c}', '\u{276c}',
+ Script::Common), ('\u{276d}', '\u{276d}', Script::Common), ('\u{276e}', '\u{276e}',
+ Script::Common), ('\u{276f}', '\u{276f}', Script::Common), ('\u{2770}', '\u{2770}',
+ Script::Common), ('\u{2771}', '\u{2771}', Script::Common), ('\u{2772}', '\u{2772}',
+ Script::Common), ('\u{2773}', '\u{2773}', Script::Common), ('\u{2774}', '\u{2774}',
+ Script::Common), ('\u{2775}', '\u{2775}', Script::Common), ('\u{2776}', '\u{2793}',
+ Script::Common), ('\u{2794}', '\u{27bf}', Script::Common), ('\u{27c0}', '\u{27c4}',
+ Script::Common), ('\u{27c5}', '\u{27c5}', Script::Common), ('\u{27c6}', '\u{27c6}',
+ Script::Common), ('\u{27c7}', '\u{27e5}', Script::Common), ('\u{27e6}', '\u{27e6}',
+ Script::Common), ('\u{27e7}', '\u{27e7}', Script::Common), ('\u{27e8}', '\u{27e8}',
+ Script::Common), ('\u{27e9}', '\u{27e9}', Script::Common), ('\u{27ea}', '\u{27ea}',
+ Script::Common), ('\u{27eb}', '\u{27eb}', Script::Common), ('\u{27ec}', '\u{27ec}',
+ Script::Common), ('\u{27ed}', '\u{27ed}', Script::Common), ('\u{27ee}', '\u{27ee}',
+ Script::Common), ('\u{27ef}', '\u{27ef}', Script::Common), ('\u{27f0}', '\u{27ff}',
+ Script::Common), ('\u{2800}', '\u{28ff}', Script::Braille), ('\u{2900}', '\u{2982}',
+ Script::Common), ('\u{2983}', '\u{2983}', Script::Common), ('\u{2984}', '\u{2984}',
+ Script::Common), ('\u{2985}', '\u{2985}', Script::Common), ('\u{2986}', '\u{2986}',
+ Script::Common), ('\u{2987}', '\u{2987}', Script::Common), ('\u{2988}', '\u{2988}',
+ Script::Common), ('\u{2989}', '\u{2989}', Script::Common), ('\u{298a}', '\u{298a}',
+ Script::Common), ('\u{298b}', '\u{298b}', Script::Common), ('\u{298c}', '\u{298c}',
+ Script::Common), ('\u{298d}', '\u{298d}', Script::Common), ('\u{298e}', '\u{298e}',
+ Script::Common), ('\u{298f}', '\u{298f}', Script::Common), ('\u{2990}', '\u{2990}',
+ Script::Common), ('\u{2991}', '\u{2991}', Script::Common), ('\u{2992}', '\u{2992}',
+ Script::Common), ('\u{2993}', '\u{2993}', Script::Common), ('\u{2994}', '\u{2994}',
+ Script::Common), ('\u{2995}', '\u{2995}', Script::Common), ('\u{2996}', '\u{2996}',
+ Script::Common), ('\u{2997}', '\u{2997}', Script::Common), ('\u{2998}', '\u{2998}',
+ Script::Common), ('\u{2999}', '\u{29d7}', Script::Common), ('\u{29d8}', '\u{29d8}',
+ Script::Common), ('\u{29d9}', '\u{29d9}', Script::Common), ('\u{29da}', '\u{29da}',
+ Script::Common), ('\u{29db}', '\u{29db}', Script::Common), ('\u{29dc}', '\u{29fb}',
+ Script::Common), ('\u{29fc}', '\u{29fc}', Script::Common), ('\u{29fd}', '\u{29fd}',
+ Script::Common), ('\u{29fe}', '\u{2aff}', Script::Common), ('\u{2b00}', '\u{2b2f}',
+ Script::Common), ('\u{2b30}', '\u{2b44}', Script::Common), ('\u{2b45}', '\u{2b46}',
+ Script::Common), ('\u{2b47}', '\u{2b4c}', Script::Common), ('\u{2b4d}', '\u{2b73}',
+ Script::Common), ('\u{2b76}', '\u{2b95}', Script::Common), ('\u{2b97}', '\u{2bff}',
+ Script::Common), ('\u{2c00}', '\u{2c5f}', Script::Glagolitic), ('\u{2c60}', '\u{2c7b}',
+ Script::Latin), ('\u{2c7c}', '\u{2c7d}', Script::Latin), ('\u{2c7e}', '\u{2c7f}',
+ Script::Latin), ('\u{2c80}', '\u{2ce4}', Script::Coptic), ('\u{2ce5}', '\u{2cea}',
+ Script::Coptic), ('\u{2ceb}', '\u{2cee}', Script::Coptic), ('\u{2cef}', '\u{2cf1}',
+ Script::Coptic), ('\u{2cf2}', '\u{2cf3}', Script::Coptic), ('\u{2cf9}', '\u{2cfc}',
+ Script::Coptic), ('\u{2cfd}', '\u{2cfd}', Script::Coptic), ('\u{2cfe}', '\u{2cff}',
+ Script::Coptic), ('\u{2d00}', '\u{2d25}', Script::Georgian), ('\u{2d27}', '\u{2d27}',
+ Script::Georgian), ('\u{2d2d}', '\u{2d2d}', Script::Georgian), ('\u{2d30}', '\u{2d67}',
+ Script::Tifinagh), ('\u{2d6f}', '\u{2d6f}', Script::Tifinagh), ('\u{2d70}', '\u{2d70}',
+ Script::Tifinagh), ('\u{2d7f}', '\u{2d7f}', Script::Tifinagh), ('\u{2d80}', '\u{2d96}',
+ Script::Ethiopic), ('\u{2da0}', '\u{2da6}', Script::Ethiopic), ('\u{2da8}', '\u{2dae}',
+ Script::Ethiopic), ('\u{2db0}', '\u{2db6}', Script::Ethiopic), ('\u{2db8}', '\u{2dbe}',
+ Script::Ethiopic), ('\u{2dc0}', '\u{2dc6}', Script::Ethiopic), ('\u{2dc8}', '\u{2dce}',
+ Script::Ethiopic), ('\u{2dd0}', '\u{2dd6}', Script::Ethiopic), ('\u{2dd8}', '\u{2dde}',
+ Script::Ethiopic), ('\u{2de0}', '\u{2dff}', Script::Cyrillic), ('\u{2e00}', '\u{2e01}',
+ Script::Common), ('\u{2e02}', '\u{2e02}', Script::Common), ('\u{2e03}', '\u{2e03}',
+ Script::Common), ('\u{2e04}', '\u{2e04}', Script::Common), ('\u{2e05}', '\u{2e05}',
+ Script::Common), ('\u{2e06}', '\u{2e08}', Script::Common), ('\u{2e09}', '\u{2e09}',
+ Script::Common), ('\u{2e0a}', '\u{2e0a}', Script::Common), ('\u{2e0b}', '\u{2e0b}',
+ Script::Common), ('\u{2e0c}', '\u{2e0c}', Script::Common), ('\u{2e0d}', '\u{2e0d}',
+ Script::Common), ('\u{2e0e}', '\u{2e16}', Script::Common), ('\u{2e17}', '\u{2e17}',
+ Script::Common), ('\u{2e18}', '\u{2e19}', Script::Common), ('\u{2e1a}', '\u{2e1a}',
+ Script::Common), ('\u{2e1b}', '\u{2e1b}', Script::Common), ('\u{2e1c}', '\u{2e1c}',
+ Script::Common), ('\u{2e1d}', '\u{2e1d}', Script::Common), ('\u{2e1e}', '\u{2e1f}',
+ Script::Common), ('\u{2e20}', '\u{2e20}', Script::Common), ('\u{2e21}', '\u{2e21}',
+ Script::Common), ('\u{2e22}', '\u{2e22}', Script::Common), ('\u{2e23}', '\u{2e23}',
+ Script::Common), ('\u{2e24}', '\u{2e24}', Script::Common), ('\u{2e25}', '\u{2e25}',
+ Script::Common), ('\u{2e26}', '\u{2e26}', Script::Common), ('\u{2e27}', '\u{2e27}',
+ Script::Common), ('\u{2e28}', '\u{2e28}', Script::Common), ('\u{2e29}', '\u{2e29}',
+ Script::Common), ('\u{2e2a}', '\u{2e2e}', Script::Common), ('\u{2e2f}', '\u{2e2f}',
+ Script::Common), ('\u{2e30}', '\u{2e39}', Script::Common), ('\u{2e3a}', '\u{2e3b}',
+ Script::Common), ('\u{2e3c}', '\u{2e3f}', Script::Common), ('\u{2e40}', '\u{2e40}',
+ Script::Common), ('\u{2e41}', '\u{2e41}', Script::Common), ('\u{2e42}', '\u{2e42}',
+ Script::Common), ('\u{2e43}', '\u{2e4f}', Script::Common), ('\u{2e50}', '\u{2e51}',
+ Script::Common), ('\u{2e52}', '\u{2e54}', Script::Common), ('\u{2e55}', '\u{2e55}',
+ Script::Common), ('\u{2e56}', '\u{2e56}', Script::Common), ('\u{2e57}', '\u{2e57}',
+ Script::Common), ('\u{2e58}', '\u{2e58}', Script::Common), ('\u{2e59}', '\u{2e59}',
+ Script::Common), ('\u{2e5a}', '\u{2e5a}', Script::Common), ('\u{2e5b}', '\u{2e5b}',
+ Script::Common), ('\u{2e5c}', '\u{2e5c}', Script::Common), ('\u{2e5d}', '\u{2e5d}',
+ Script::Common), ('\u{2e80}', '\u{2e99}', Script::Han), ('\u{2e9b}', '\u{2ef3}',
+ Script::Han), ('\u{2f00}', '\u{2fd5}', Script::Han), ('\u{2ff0}', '\u{2fff}',
+ Script::Common), ('\u{3000}', '\u{3000}', Script::Common), ('\u{3001}', '\u{3003}',
+ Script::Common), ('\u{3004}', '\u{3004}', Script::Common), ('\u{3005}', '\u{3005}',
+ Script::Han), ('\u{3006}', '\u{3006}', Script::Common), ('\u{3007}', '\u{3007}',
+ Script::Han), ('\u{3008}', '\u{3008}', Script::Common), ('\u{3009}', '\u{3009}',
+ Script::Common), ('\u{300a}', '\u{300a}', Script::Common), ('\u{300b}', '\u{300b}',
+ Script::Common), ('\u{300c}', '\u{300c}', Script::Common), ('\u{300d}', '\u{300d}',
+ Script::Common), ('\u{300e}', '\u{300e}', Script::Common), ('\u{300f}', '\u{300f}',
+ Script::Common), ('\u{3010}', '\u{3010}', Script::Common), ('\u{3011}', '\u{3011}',
+ Script::Common), ('\u{3012}', '\u{3013}', Script::Common), ('\u{3014}', '\u{3014}',
+ Script::Common), ('\u{3015}', '\u{3015}', Script::Common), ('\u{3016}', '\u{3016}',
+ Script::Common), ('\u{3017}', '\u{3017}', Script::Common), ('\u{3018}', '\u{3018}',
+ Script::Common), ('\u{3019}', '\u{3019}', Script::Common), ('\u{301a}', '\u{301a}',
+ Script::Common), ('\u{301b}', '\u{301b}', Script::Common), ('\u{301c}', '\u{301c}',
+ Script::Common), ('\u{301d}', '\u{301d}', Script::Common), ('\u{301e}', '\u{301f}',
+ Script::Common), ('\u{3020}', '\u{3020}', Script::Common), ('\u{3021}', '\u{3029}',
+ Script::Han), ('\u{302a}', '\u{302d}', Script::Inherited), ('\u{302e}', '\u{302f}',
+ Script::Hangul), ('\u{3030}', '\u{3030}', Script::Common), ('\u{3031}', '\u{3035}',
+ Script::Common), ('\u{3036}', '\u{3037}', Script::Common), ('\u{3038}', '\u{303a}',
+ Script::Han), ('\u{303b}', '\u{303b}', Script::Han), ('\u{303c}', '\u{303c}',
+ Script::Common), ('\u{303d}', '\u{303d}', Script::Common), ('\u{303e}', '\u{303f}',
+ Script::Common), ('\u{3041}', '\u{3096}', Script::Hiragana), ('\u{3099}', '\u{309a}',
+ Script::Inherited), ('\u{309b}', '\u{309c}', Script::Common), ('\u{309d}', '\u{309e}',
+ Script::Hiragana), ('\u{309f}', '\u{309f}', Script::Hiragana), ('\u{30a0}', '\u{30a0}',
+ Script::Common), ('\u{30a1}', '\u{30fa}', Script::Katakana), ('\u{30fb}', '\u{30fb}',
+ Script::Common), ('\u{30fc}', '\u{30fc}', Script::Common), ('\u{30fd}', '\u{30fe}',
+ Script::Katakana), ('\u{30ff}', '\u{30ff}', Script::Katakana), ('\u{3105}', '\u{312f}',
+ Script::Bopomofo), ('\u{3131}', '\u{318e}', Script::Hangul), ('\u{3190}', '\u{3191}',
+ Script::Common), ('\u{3192}', '\u{3195}', Script::Common), ('\u{3196}', '\u{319f}',
+ Script::Common), ('\u{31a0}', '\u{31bf}', Script::Bopomofo), ('\u{31c0}', '\u{31e5}',
+ Script::Common), ('\u{31ef}', '\u{31ef}', Script::Common), ('\u{31f0}', '\u{31ff}',
+ Script::Katakana), ('\u{3200}', '\u{321e}', Script::Hangul), ('\u{3220}', '\u{3229}',
+ Script::Common), ('\u{322a}', '\u{3247}', Script::Common), ('\u{3248}', '\u{324f}',
+ Script::Common), ('\u{3250}', '\u{3250}', Script::Common), ('\u{3251}', '\u{325f}',
+ Script::Common), ('\u{3260}', '\u{327e}', Script::Hangul), ('\u{327f}', '\u{327f}',
+ Script::Common), ('\u{3280}', '\u{3289}', Script::Common), ('\u{328a}', '\u{32b0}',
+ Script::Common), ('\u{32b1}', '\u{32bf}', Script::Common), ('\u{32c0}', '\u{32cf}',
+ Script::Common), ('\u{32d0}', '\u{32fe}', Script::Katakana), ('\u{32ff}', '\u{32ff}',
+ Script::Common), ('\u{3300}', '\u{3357}', Script::Katakana), ('\u{3358}', '\u{33ff}',
+ Script::Common), ('\u{3400}', '\u{4dbf}', Script::Han), ('\u{4dc0}', '\u{4dff}',
+ Script::Common), ('\u{4e00}', '\u{9fff}', Script::Han), ('\u{a000}', '\u{a014}',
+ Script::Yi), ('\u{a015}', '\u{a015}', Script::Yi), ('\u{a016}', '\u{a48c}', Script::Yi),
+ ('\u{a490}', '\u{a4c6}', Script::Yi), ('\u{a4d0}', '\u{a4f7}', Script::Lisu), ('\u{a4f8}',
+ '\u{a4fd}', Script::Lisu), ('\u{a4fe}', '\u{a4ff}', Script::Lisu), ('\u{a500}',
+ '\u{a60b}', Script::Vai), ('\u{a60c}', '\u{a60c}', Script::Vai), ('\u{a60d}', '\u{a60f}',
+ Script::Vai), ('\u{a610}', '\u{a61f}', Script::Vai), ('\u{a620}', '\u{a629}',
+ Script::Vai), ('\u{a62a}', '\u{a62b}', Script::Vai), ('\u{a640}', '\u{a66d}',
+ Script::Cyrillic), ('\u{a66e}', '\u{a66e}', Script::Cyrillic), ('\u{a66f}', '\u{a66f}',
+ Script::Cyrillic), ('\u{a670}', '\u{a672}', Script::Cyrillic), ('\u{a673}', '\u{a673}',
+ Script::Cyrillic), ('\u{a674}', '\u{a67d}', Script::Cyrillic), ('\u{a67e}', '\u{a67e}',
+ Script::Cyrillic), ('\u{a67f}', '\u{a67f}', Script::Cyrillic), ('\u{a680}', '\u{a69b}',
+ Script::Cyrillic), ('\u{a69c}', '\u{a69d}', Script::Cyrillic), ('\u{a69e}', '\u{a69f}',
+ Script::Cyrillic), ('\u{a6a0}', '\u{a6e5}', Script::Bamum), ('\u{a6e6}', '\u{a6ef}',
+ Script::Bamum), ('\u{a6f0}', '\u{a6f1}', Script::Bamum), ('\u{a6f2}', '\u{a6f7}',
+ Script::Bamum), ('\u{a700}', '\u{a716}', Script::Common), ('\u{a717}', '\u{a71f}',
+ Script::Common), ('\u{a720}', '\u{a721}', Script::Common), ('\u{a722}', '\u{a76f}',
+ Script::Latin), ('\u{a770}', '\u{a770}', Script::Latin), ('\u{a771}', '\u{a787}',
+ Script::Latin), ('\u{a788}', '\u{a788}', Script::Common), ('\u{a789}', '\u{a78a}',
+ Script::Common), ('\u{a78b}', '\u{a78e}', Script::Latin), ('\u{a78f}', '\u{a78f}',
+ Script::Latin), ('\u{a790}', '\u{a7cd}', Script::Latin), ('\u{a7d0}', '\u{a7d1}',
+ Script::Latin), ('\u{a7d3}', '\u{a7d3}', Script::Latin), ('\u{a7d5}', '\u{a7dc}',
+ Script::Latin), ('\u{a7f2}', '\u{a7f4}', Script::Latin), ('\u{a7f5}', '\u{a7f6}',
+ Script::Latin), ('\u{a7f7}', '\u{a7f7}', Script::Latin), ('\u{a7f8}', '\u{a7f9}',
+ Script::Latin), ('\u{a7fa}', '\u{a7fa}', Script::Latin), ('\u{a7fb}', '\u{a7ff}',
+ Script::Latin), ('\u{a800}', '\u{a801}', Script::Syloti_Nagri), ('\u{a802}', '\u{a802}',
+ Script::Syloti_Nagri), ('\u{a803}', '\u{a805}', Script::Syloti_Nagri), ('\u{a806}',
+ '\u{a806}', Script::Syloti_Nagri), ('\u{a807}', '\u{a80a}', Script::Syloti_Nagri),
+ ('\u{a80b}', '\u{a80b}', Script::Syloti_Nagri), ('\u{a80c}', '\u{a822}',
+ Script::Syloti_Nagri), ('\u{a823}', '\u{a824}', Script::Syloti_Nagri), ('\u{a825}',
+ '\u{a826}', Script::Syloti_Nagri), ('\u{a827}', '\u{a827}', Script::Syloti_Nagri),
+ ('\u{a828}', '\u{a82b}', Script::Syloti_Nagri), ('\u{a82c}', '\u{a82c}',
+ Script::Syloti_Nagri), ('\u{a830}', '\u{a835}', Script::Common), ('\u{a836}', '\u{a837}',
+ Script::Common), ('\u{a838}', '\u{a838}', Script::Common), ('\u{a839}', '\u{a839}',
+ Script::Common), ('\u{a840}', '\u{a873}', Script::Phags_Pa), ('\u{a874}', '\u{a877}',
+ Script::Phags_Pa), ('\u{a880}', '\u{a881}', Script::Saurashtra), ('\u{a882}', '\u{a8b3}',
+ Script::Saurashtra), ('\u{a8b4}', '\u{a8c3}', Script::Saurashtra), ('\u{a8c4}',
+ '\u{a8c5}', Script::Saurashtra), ('\u{a8ce}', '\u{a8cf}', Script::Saurashtra),
+ ('\u{a8d0}', '\u{a8d9}', Script::Saurashtra), ('\u{a8e0}', '\u{a8f1}',
+ Script::Devanagari), ('\u{a8f2}', '\u{a8f7}', Script::Devanagari), ('\u{a8f8}',
+ '\u{a8fa}', Script::Devanagari), ('\u{a8fb}', '\u{a8fb}', Script::Devanagari),
+ ('\u{a8fc}', '\u{a8fc}', Script::Devanagari), ('\u{a8fd}', '\u{a8fe}',
+ Script::Devanagari), ('\u{a8ff}', '\u{a8ff}', Script::Devanagari), ('\u{a900}',
+ '\u{a909}', Script::Kayah_Li), ('\u{a90a}', '\u{a925}', Script::Kayah_Li), ('\u{a926}',
+ '\u{a92d}', Script::Kayah_Li), ('\u{a92e}', '\u{a92e}', Script::Common), ('\u{a92f}',
+ '\u{a92f}', Script::Kayah_Li), ('\u{a930}', '\u{a946}', Script::Rejang), ('\u{a947}',
+ '\u{a951}', Script::Rejang), ('\u{a952}', '\u{a953}', Script::Rejang), ('\u{a95f}',
+ '\u{a95f}', Script::Rejang), ('\u{a960}', '\u{a97c}', Script::Hangul), ('\u{a980}',
+ '\u{a982}', Script::Javanese), ('\u{a983}', '\u{a983}', Script::Javanese), ('\u{a984}',
+ '\u{a9b2}', Script::Javanese), ('\u{a9b3}', '\u{a9b3}', Script::Javanese), ('\u{a9b4}',
+ '\u{a9b5}', Script::Javanese), ('\u{a9b6}', '\u{a9b9}', Script::Javanese), ('\u{a9ba}',
+ '\u{a9bb}', Script::Javanese), ('\u{a9bc}', '\u{a9bd}', Script::Javanese), ('\u{a9be}',
+ '\u{a9c0}', Script::Javanese), ('\u{a9c1}', '\u{a9cd}', Script::Javanese), ('\u{a9cf}',
+ '\u{a9cf}', Script::Common), ('\u{a9d0}', '\u{a9d9}', Script::Javanese), ('\u{a9de}',
+ '\u{a9df}', Script::Javanese), ('\u{a9e0}', '\u{a9e4}', Script::Myanmar), ('\u{a9e5}',
+ '\u{a9e5}', Script::Myanmar), ('\u{a9e6}', '\u{a9e6}', Script::Myanmar), ('\u{a9e7}',
+ '\u{a9ef}', Script::Myanmar), ('\u{a9f0}', '\u{a9f9}', Script::Myanmar), ('\u{a9fa}',
+ '\u{a9fe}', Script::Myanmar), ('\u{aa00}', '\u{aa28}', Script::Cham), ('\u{aa29}',
+ '\u{aa2e}', Script::Cham), ('\u{aa2f}', '\u{aa30}', Script::Cham), ('\u{aa31}',
+ '\u{aa32}', Script::Cham), ('\u{aa33}', '\u{aa34}', Script::Cham), ('\u{aa35}',
+ '\u{aa36}', Script::Cham), ('\u{aa40}', '\u{aa42}', Script::Cham), ('\u{aa43}',
+ '\u{aa43}', Script::Cham), ('\u{aa44}', '\u{aa4b}', Script::Cham), ('\u{aa4c}',
+ '\u{aa4c}', Script::Cham), ('\u{aa4d}', '\u{aa4d}', Script::Cham), ('\u{aa50}',
+ '\u{aa59}', Script::Cham), ('\u{aa5c}', '\u{aa5f}', Script::Cham), ('\u{aa60}',
+ '\u{aa6f}', Script::Myanmar), ('\u{aa70}', '\u{aa70}', Script::Myanmar), ('\u{aa71}',
+ '\u{aa76}', Script::Myanmar), ('\u{aa77}', '\u{aa79}', Script::Myanmar), ('\u{aa7a}',
+ '\u{aa7a}', Script::Myanmar), ('\u{aa7b}', '\u{aa7b}', Script::Myanmar), ('\u{aa7c}',
+ '\u{aa7c}', Script::Myanmar), ('\u{aa7d}', '\u{aa7d}', Script::Myanmar), ('\u{aa7e}',
+ '\u{aa7f}', Script::Myanmar), ('\u{aa80}', '\u{aaaf}', Script::Tai_Viet), ('\u{aab0}',
+ '\u{aab0}', Script::Tai_Viet), ('\u{aab1}', '\u{aab1}', Script::Tai_Viet), ('\u{aab2}',
+ '\u{aab4}', Script::Tai_Viet), ('\u{aab5}', '\u{aab6}', Script::Tai_Viet), ('\u{aab7}',
+ '\u{aab8}', Script::Tai_Viet), ('\u{aab9}', '\u{aabd}', Script::Tai_Viet), ('\u{aabe}',
+ '\u{aabf}', Script::Tai_Viet), ('\u{aac0}', '\u{aac0}', Script::Tai_Viet), ('\u{aac1}',
+ '\u{aac1}', Script::Tai_Viet), ('\u{aac2}', '\u{aac2}', Script::Tai_Viet), ('\u{aadb}',
+ '\u{aadc}', Script::Tai_Viet), ('\u{aadd}', '\u{aadd}', Script::Tai_Viet), ('\u{aade}',
+ '\u{aadf}', Script::Tai_Viet), ('\u{aae0}', '\u{aaea}', Script::Meetei_Mayek),
+ ('\u{aaeb}', '\u{aaeb}', Script::Meetei_Mayek), ('\u{aaec}', '\u{aaed}',
+ Script::Meetei_Mayek), ('\u{aaee}', '\u{aaef}', Script::Meetei_Mayek), ('\u{aaf0}',
+ '\u{aaf1}', Script::Meetei_Mayek), ('\u{aaf2}', '\u{aaf2}', Script::Meetei_Mayek),
+ ('\u{aaf3}', '\u{aaf4}', Script::Meetei_Mayek), ('\u{aaf5}', '\u{aaf5}',
+ Script::Meetei_Mayek), ('\u{aaf6}', '\u{aaf6}', Script::Meetei_Mayek), ('\u{ab01}',
+ '\u{ab06}', Script::Ethiopic), ('\u{ab09}', '\u{ab0e}', Script::Ethiopic), ('\u{ab11}',
+ '\u{ab16}', Script::Ethiopic), ('\u{ab20}', '\u{ab26}', Script::Ethiopic), ('\u{ab28}',
+ '\u{ab2e}', Script::Ethiopic), ('\u{ab30}', '\u{ab5a}', Script::Latin), ('\u{ab5b}',
+ '\u{ab5b}', Script::Common), ('\u{ab5c}', '\u{ab5f}', Script::Latin), ('\u{ab60}',
+ '\u{ab64}', Script::Latin), ('\u{ab65}', '\u{ab65}', Script::Greek), ('\u{ab66}',
+ '\u{ab68}', Script::Latin), ('\u{ab69}', '\u{ab69}', Script::Latin), ('\u{ab6a}',
+ '\u{ab6b}', Script::Common), ('\u{ab70}', '\u{abbf}', Script::Cherokee), ('\u{abc0}',
+ '\u{abe2}', Script::Meetei_Mayek), ('\u{abe3}', '\u{abe4}', Script::Meetei_Mayek),
+ ('\u{abe5}', '\u{abe5}', Script::Meetei_Mayek), ('\u{abe6}', '\u{abe7}',
+ Script::Meetei_Mayek), ('\u{abe8}', '\u{abe8}', Script::Meetei_Mayek), ('\u{abe9}',
+ '\u{abea}', Script::Meetei_Mayek), ('\u{abeb}', '\u{abeb}', Script::Meetei_Mayek),
+ ('\u{abec}', '\u{abec}', Script::Meetei_Mayek), ('\u{abed}', '\u{abed}',
+ Script::Meetei_Mayek), ('\u{abf0}', '\u{abf9}', Script::Meetei_Mayek), ('\u{ac00}',
+ '\u{d7a3}', Script::Hangul), ('\u{d7b0}', '\u{d7c6}', Script::Hangul), ('\u{d7cb}',
+ '\u{d7fb}', Script::Hangul), ('\u{f900}', '\u{fa6d}', Script::Han), ('\u{fa70}',
+ '\u{fad9}', Script::Han), ('\u{fb00}', '\u{fb06}', Script::Latin), ('\u{fb13}',
+ '\u{fb17}', Script::Armenian), ('\u{fb1d}', '\u{fb1d}', Script::Hebrew), ('\u{fb1e}',
+ '\u{fb1e}', Script::Hebrew), ('\u{fb1f}', '\u{fb28}', Script::Hebrew), ('\u{fb29}',
+ '\u{fb29}', Script::Hebrew), ('\u{fb2a}', '\u{fb36}', Script::Hebrew), ('\u{fb38}',
+ '\u{fb3c}', Script::Hebrew), ('\u{fb3e}', '\u{fb3e}', Script::Hebrew), ('\u{fb40}',
+ '\u{fb41}', Script::Hebrew), ('\u{fb43}', '\u{fb44}', Script::Hebrew), ('\u{fb46}',
+ '\u{fb4f}', Script::Hebrew), ('\u{fb50}', '\u{fbb1}', Script::Arabic), ('\u{fbb2}',
+ '\u{fbc2}', Script::Arabic), ('\u{fbd3}', '\u{fd3d}', Script::Arabic), ('\u{fd3e}',
+ '\u{fd3e}', Script::Common), ('\u{fd3f}', '\u{fd3f}', Script::Common), ('\u{fd40}',
+ '\u{fd4f}', Script::Arabic), ('\u{fd50}', '\u{fd8f}', Script::Arabic), ('\u{fd92}',
+ '\u{fdc7}', Script::Arabic), ('\u{fdcf}', '\u{fdcf}', Script::Arabic), ('\u{fdf0}',
+ '\u{fdfb}', Script::Arabic), ('\u{fdfc}', '\u{fdfc}', Script::Arabic), ('\u{fdfd}',
+ '\u{fdff}', Script::Arabic), ('\u{fe00}', '\u{fe0f}', Script::Inherited), ('\u{fe10}',
+ '\u{fe16}', Script::Common), ('\u{fe17}', '\u{fe17}', Script::Common), ('\u{fe18}',
+ '\u{fe18}', Script::Common), ('\u{fe19}', '\u{fe19}', Script::Common), ('\u{fe20}',
+ '\u{fe2d}', Script::Inherited), ('\u{fe2e}', '\u{fe2f}', Script::Cyrillic), ('\u{fe30}',
+ '\u{fe30}', Script::Common), ('\u{fe31}', '\u{fe32}', Script::Common), ('\u{fe33}',
+ '\u{fe34}', Script::Common), ('\u{fe35}', '\u{fe35}', Script::Common), ('\u{fe36}',
+ '\u{fe36}', Script::Common), ('\u{fe37}', '\u{fe37}', Script::Common), ('\u{fe38}',
+ '\u{fe38}', Script::Common), ('\u{fe39}', '\u{fe39}', Script::Common), ('\u{fe3a}',
+ '\u{fe3a}', Script::Common), ('\u{fe3b}', '\u{fe3b}', Script::Common), ('\u{fe3c}',
+ '\u{fe3c}', Script::Common), ('\u{fe3d}', '\u{fe3d}', Script::Common), ('\u{fe3e}',
+ '\u{fe3e}', Script::Common), ('\u{fe3f}', '\u{fe3f}', Script::Common), ('\u{fe40}',
+ '\u{fe40}', Script::Common), ('\u{fe41}', '\u{fe41}', Script::Common), ('\u{fe42}',
+ '\u{fe42}', Script::Common), ('\u{fe43}', '\u{fe43}', Script::Common), ('\u{fe44}',
+ '\u{fe44}', Script::Common), ('\u{fe45}', '\u{fe46}', Script::Common), ('\u{fe47}',
+ '\u{fe47}', Script::Common), ('\u{fe48}', '\u{fe48}', Script::Common), ('\u{fe49}',
+ '\u{fe4c}', Script::Common), ('\u{fe4d}', '\u{fe4f}', Script::Common), ('\u{fe50}',
+ '\u{fe52}', Script::Common), ('\u{fe54}', '\u{fe57}', Script::Common), ('\u{fe58}',
+ '\u{fe58}', Script::Common), ('\u{fe59}', '\u{fe59}', Script::Common), ('\u{fe5a}',
+ '\u{fe5a}', Script::Common), ('\u{fe5b}', '\u{fe5b}', Script::Common), ('\u{fe5c}',
+ '\u{fe5c}', Script::Common), ('\u{fe5d}', '\u{fe5d}', Script::Common), ('\u{fe5e}',
+ '\u{fe5e}', Script::Common), ('\u{fe5f}', '\u{fe61}', Script::Common), ('\u{fe62}',
+ '\u{fe62}', Script::Common), ('\u{fe63}', '\u{fe63}', Script::Common), ('\u{fe64}',
+ '\u{fe66}', Script::Common), ('\u{fe68}', '\u{fe68}', Script::Common), ('\u{fe69}',
+ '\u{fe69}', Script::Common), ('\u{fe6a}', '\u{fe6b}', Script::Common), ('\u{fe70}',
+ '\u{fe74}', Script::Arabic), ('\u{fe76}', '\u{fefc}', Script::Arabic), ('\u{feff}',
+ '\u{feff}', Script::Common), ('\u{ff01}', '\u{ff03}', Script::Common), ('\u{ff04}',
+ '\u{ff04}', Script::Common), ('\u{ff05}', '\u{ff07}', Script::Common), ('\u{ff08}',
+ '\u{ff08}', Script::Common), ('\u{ff09}', '\u{ff09}', Script::Common), ('\u{ff0a}',
+ '\u{ff0a}', Script::Common), ('\u{ff0b}', '\u{ff0b}', Script::Common), ('\u{ff0c}',
+ '\u{ff0c}', Script::Common), ('\u{ff0d}', '\u{ff0d}', Script::Common), ('\u{ff0e}',
+ '\u{ff0f}', Script::Common), ('\u{ff10}', '\u{ff19}', Script::Common), ('\u{ff1a}',
+ '\u{ff1b}', Script::Common), ('\u{ff1c}', '\u{ff1e}', Script::Common), ('\u{ff1f}',
+ '\u{ff20}', Script::Common), ('\u{ff21}', '\u{ff3a}', Script::Latin), ('\u{ff3b}',
+ '\u{ff3b}', Script::Common), ('\u{ff3c}', '\u{ff3c}', Script::Common), ('\u{ff3d}',
+ '\u{ff3d}', Script::Common), ('\u{ff3e}', '\u{ff3e}', Script::Common), ('\u{ff3f}',
+ '\u{ff3f}', Script::Common), ('\u{ff40}', '\u{ff40}', Script::Common), ('\u{ff41}',
+ '\u{ff5a}', Script::Latin), ('\u{ff5b}', '\u{ff5b}', Script::Common), ('\u{ff5c}',
+ '\u{ff5c}', Script::Common), ('\u{ff5d}', '\u{ff5d}', Script::Common), ('\u{ff5e}',
+ '\u{ff5e}', Script::Common), ('\u{ff5f}', '\u{ff5f}', Script::Common), ('\u{ff60}',
+ '\u{ff60}', Script::Common), ('\u{ff61}', '\u{ff61}', Script::Common), ('\u{ff62}',
+ '\u{ff62}', Script::Common), ('\u{ff63}', '\u{ff63}', Script::Common), ('\u{ff64}',
+ '\u{ff65}', Script::Common), ('\u{ff66}', '\u{ff6f}', Script::Katakana), ('\u{ff70}',
+ '\u{ff70}', Script::Common), ('\u{ff71}', '\u{ff9d}', Script::Katakana), ('\u{ff9e}',
+ '\u{ff9f}', Script::Common), ('\u{ffa0}', '\u{ffbe}', Script::Hangul), ('\u{ffc2}',
+ '\u{ffc7}', Script::Hangul), ('\u{ffca}', '\u{ffcf}', Script::Hangul), ('\u{ffd2}',
+ '\u{ffd7}', Script::Hangul), ('\u{ffda}', '\u{ffdc}', Script::Hangul), ('\u{ffe0}',
+ '\u{ffe1}', Script::Common), ('\u{ffe2}', '\u{ffe2}', Script::Common), ('\u{ffe3}',
+ '\u{ffe3}', Script::Common), ('\u{ffe4}', '\u{ffe4}', Script::Common), ('\u{ffe5}',
+ '\u{ffe6}', Script::Common), ('\u{ffe8}', '\u{ffe8}', Script::Common), ('\u{ffe9}',
+ '\u{ffec}', Script::Common), ('\u{ffed}', '\u{ffee}', Script::Common), ('\u{fff9}',
+ '\u{fffb}', Script::Common), ('\u{fffc}', '\u{fffd}', Script::Common), ('\u{10000}',
+ '\u{1000b}', Script::Linear_B), ('\u{1000d}', '\u{10026}', Script::Linear_B),
+ ('\u{10028}', '\u{1003a}', Script::Linear_B), ('\u{1003c}', '\u{1003d}',
+ Script::Linear_B), ('\u{1003f}', '\u{1004d}', Script::Linear_B), ('\u{10050}',
+ '\u{1005d}', Script::Linear_B), ('\u{10080}', '\u{100fa}', Script::Linear_B),
+ ('\u{10100}', '\u{10102}', Script::Common), ('\u{10107}', '\u{10133}', Script::Common),
+ ('\u{10137}', '\u{1013f}', Script::Common), ('\u{10140}', '\u{10174}', Script::Greek),
+ ('\u{10175}', '\u{10178}', Script::Greek), ('\u{10179}', '\u{10189}', Script::Greek),
+ ('\u{1018a}', '\u{1018b}', Script::Greek), ('\u{1018c}', '\u{1018e}', Script::Greek),
+ ('\u{10190}', '\u{1019c}', Script::Common), ('\u{101a0}', '\u{101a0}', Script::Greek),
+ ('\u{101d0}', '\u{101fc}', Script::Common), ('\u{101fd}', '\u{101fd}', Script::Inherited),
+ ('\u{10280}', '\u{1029c}', Script::Lycian), ('\u{102a0}', '\u{102d0}', Script::Carian),
+ ('\u{102e0}', '\u{102e0}', Script::Inherited), ('\u{102e1}', '\u{102fb}', Script::Common),
+ ('\u{10300}', '\u{1031f}', Script::Old_Italic), ('\u{10320}', '\u{10323}',
+ Script::Old_Italic), ('\u{1032d}', '\u{1032f}', Script::Old_Italic), ('\u{10330}',
+ '\u{10340}', Script::Gothic), ('\u{10341}', '\u{10341}', Script::Gothic), ('\u{10342}',
+ '\u{10349}', Script::Gothic), ('\u{1034a}', '\u{1034a}', Script::Gothic), ('\u{10350}',
+ '\u{10375}', Script::Old_Permic), ('\u{10376}', '\u{1037a}', Script::Old_Permic),
+ ('\u{10380}', '\u{1039d}', Script::Ugaritic), ('\u{1039f}', '\u{1039f}',
+ Script::Ugaritic), ('\u{103a0}', '\u{103c3}', Script::Old_Persian), ('\u{103c8}',
+ '\u{103cf}', Script::Old_Persian), ('\u{103d0}', '\u{103d0}', Script::Old_Persian),
+ ('\u{103d1}', '\u{103d5}', Script::Old_Persian), ('\u{10400}', '\u{1044f}',
+ Script::Deseret), ('\u{10450}', '\u{1047f}', Script::Shavian), ('\u{10480}', '\u{1049d}',
+ Script::Osmanya), ('\u{104a0}', '\u{104a9}', Script::Osmanya), ('\u{104b0}', '\u{104d3}',
+ Script::Osage), ('\u{104d8}', '\u{104fb}', Script::Osage), ('\u{10500}', '\u{10527}',
+ Script::Elbasan), ('\u{10530}', '\u{10563}', Script::Caucasian_Albanian), ('\u{1056f}',
+ '\u{1056f}', Script::Caucasian_Albanian), ('\u{10570}', '\u{1057a}', Script::Vithkuqi),
+ ('\u{1057c}', '\u{1058a}', Script::Vithkuqi), ('\u{1058c}', '\u{10592}',
+ Script::Vithkuqi), ('\u{10594}', '\u{10595}', Script::Vithkuqi), ('\u{10597}',
+ '\u{105a1}', Script::Vithkuqi), ('\u{105a3}', '\u{105b1}', Script::Vithkuqi),
+ ('\u{105b3}', '\u{105b9}', Script::Vithkuqi), ('\u{105bb}', '\u{105bc}',
+ Script::Vithkuqi), ('\u{105c0}', '\u{105f3}', Script::Todhri), ('\u{10600}', '\u{10736}',
+ Script::Linear_A), ('\u{10740}', '\u{10755}', Script::Linear_A), ('\u{10760}',
+ '\u{10767}', Script::Linear_A), ('\u{10780}', '\u{10785}', Script::Latin), ('\u{10787}',
+ '\u{107b0}', Script::Latin), ('\u{107b2}', '\u{107ba}', Script::Latin), ('\u{10800}',
+ '\u{10805}', Script::Cypriot), ('\u{10808}', '\u{10808}', Script::Cypriot), ('\u{1080a}',
+ '\u{10835}', Script::Cypriot), ('\u{10837}', '\u{10838}', Script::Cypriot), ('\u{1083c}',
+ '\u{1083c}', Script::Cypriot), ('\u{1083f}', '\u{1083f}', Script::Cypriot), ('\u{10840}',
+ '\u{10855}', Script::Imperial_Aramaic), ('\u{10857}', '\u{10857}',
+ Script::Imperial_Aramaic), ('\u{10858}', '\u{1085f}', Script::Imperial_Aramaic),
+ ('\u{10860}', '\u{10876}', Script::Palmyrene), ('\u{10877}', '\u{10878}',
+ Script::Palmyrene), ('\u{10879}', '\u{1087f}', Script::Palmyrene), ('\u{10880}',
+ '\u{1089e}', Script::Nabataean), ('\u{108a7}', '\u{108af}', Script::Nabataean),
+ ('\u{108e0}', '\u{108f2}', Script::Hatran), ('\u{108f4}', '\u{108f5}', Script::Hatran),
+ ('\u{108fb}', '\u{108ff}', Script::Hatran), ('\u{10900}', '\u{10915}',
+ Script::Phoenician), ('\u{10916}', '\u{1091b}', Script::Phoenician), ('\u{1091f}',
+ '\u{1091f}', Script::Phoenician), ('\u{10920}', '\u{10939}', Script::Lydian),
+ ('\u{1093f}', '\u{1093f}', Script::Lydian), ('\u{10980}', '\u{1099f}',
+ Script::Meroitic_Hieroglyphs), ('\u{109a0}', '\u{109b7}', Script::Meroitic_Cursive),
+ ('\u{109bc}', '\u{109bd}', Script::Meroitic_Cursive), ('\u{109be}', '\u{109bf}',
+ Script::Meroitic_Cursive), ('\u{109c0}', '\u{109cf}', Script::Meroitic_Cursive),
+ ('\u{109d2}', '\u{109ff}', Script::Meroitic_Cursive), ('\u{10a00}', '\u{10a00}',
+ Script::Kharoshthi), ('\u{10a01}', '\u{10a03}', Script::Kharoshthi), ('\u{10a05}',
+ '\u{10a06}', Script::Kharoshthi), ('\u{10a0c}', '\u{10a0f}', Script::Kharoshthi),
+ ('\u{10a10}', '\u{10a13}', Script::Kharoshthi), ('\u{10a15}', '\u{10a17}',
+ Script::Kharoshthi), ('\u{10a19}', '\u{10a35}', Script::Kharoshthi), ('\u{10a38}',
+ '\u{10a3a}', Script::Kharoshthi), ('\u{10a3f}', '\u{10a3f}', Script::Kharoshthi),
+ ('\u{10a40}', '\u{10a48}', Script::Kharoshthi), ('\u{10a50}', '\u{10a58}',
+ Script::Kharoshthi), ('\u{10a60}', '\u{10a7c}', Script::Old_South_Arabian), ('\u{10a7d}',
+ '\u{10a7e}', Script::Old_South_Arabian), ('\u{10a7f}', '\u{10a7f}',
+ Script::Old_South_Arabian), ('\u{10a80}', '\u{10a9c}', Script::Old_North_Arabian),
+ ('\u{10a9d}', '\u{10a9f}', Script::Old_North_Arabian), ('\u{10ac0}', '\u{10ac7}',
+ Script::Manichaean), ('\u{10ac8}', '\u{10ac8}', Script::Manichaean), ('\u{10ac9}',
+ '\u{10ae4}', Script::Manichaean), ('\u{10ae5}', '\u{10ae6}', Script::Manichaean),
+ ('\u{10aeb}', '\u{10aef}', Script::Manichaean), ('\u{10af0}', '\u{10af6}',
+ Script::Manichaean), ('\u{10b00}', '\u{10b35}', Script::Avestan), ('\u{10b39}',
+ '\u{10b3f}', Script::Avestan), ('\u{10b40}', '\u{10b55}', Script::Inscriptional_Parthian),
+ ('\u{10b58}', '\u{10b5f}', Script::Inscriptional_Parthian), ('\u{10b60}', '\u{10b72}',
+ Script::Inscriptional_Pahlavi), ('\u{10b78}', '\u{10b7f}', Script::Inscriptional_Pahlavi),
+ ('\u{10b80}', '\u{10b91}', Script::Psalter_Pahlavi), ('\u{10b99}', '\u{10b9c}',
+ Script::Psalter_Pahlavi), ('\u{10ba9}', '\u{10baf}', Script::Psalter_Pahlavi),
+ ('\u{10c00}', '\u{10c48}', Script::Old_Turkic), ('\u{10c80}', '\u{10cb2}',
+ Script::Old_Hungarian), ('\u{10cc0}', '\u{10cf2}', Script::Old_Hungarian), ('\u{10cfa}',
+ '\u{10cff}', Script::Old_Hungarian), ('\u{10d00}', '\u{10d23}', Script::Hanifi_Rohingya),
+ ('\u{10d24}', '\u{10d27}', Script::Hanifi_Rohingya), ('\u{10d30}', '\u{10d39}',
+ Script::Hanifi_Rohingya), ('\u{10d40}', '\u{10d49}', Script::Garay), ('\u{10d4a}',
+ '\u{10d4d}', Script::Garay), ('\u{10d4e}', '\u{10d4e}', Script::Garay), ('\u{10d4f}',
+ '\u{10d4f}', Script::Garay), ('\u{10d50}', '\u{10d65}', Script::Garay), ('\u{10d69}',
+ '\u{10d6d}', Script::Garay), ('\u{10d6e}', '\u{10d6e}', Script::Garay), ('\u{10d6f}',
+ '\u{10d6f}', Script::Garay), ('\u{10d70}', '\u{10d85}', Script::Garay), ('\u{10d8e}',
+ '\u{10d8f}', Script::Garay), ('\u{10e60}', '\u{10e7e}', Script::Arabic), ('\u{10e80}',
+ '\u{10ea9}', Script::Yezidi), ('\u{10eab}', '\u{10eac}', Script::Yezidi), ('\u{10ead}',
+ '\u{10ead}', Script::Yezidi), ('\u{10eb0}', '\u{10eb1}', Script::Yezidi), ('\u{10ec2}',
+ '\u{10ec4}', Script::Arabic), ('\u{10efc}', '\u{10eff}', Script::Arabic), ('\u{10f00}',
+ '\u{10f1c}', Script::Old_Sogdian), ('\u{10f1d}', '\u{10f26}', Script::Old_Sogdian),
+ ('\u{10f27}', '\u{10f27}', Script::Old_Sogdian), ('\u{10f30}', '\u{10f45}',
+ Script::Sogdian), ('\u{10f46}', '\u{10f50}', Script::Sogdian), ('\u{10f51}', '\u{10f54}',
+ Script::Sogdian), ('\u{10f55}', '\u{10f59}', Script::Sogdian), ('\u{10f70}', '\u{10f81}',
+ Script::Old_Uyghur), ('\u{10f82}', '\u{10f85}', Script::Old_Uyghur), ('\u{10f86}',
+ '\u{10f89}', Script::Old_Uyghur), ('\u{10fb0}', '\u{10fc4}', Script::Chorasmian),
+ ('\u{10fc5}', '\u{10fcb}', Script::Chorasmian), ('\u{10fe0}', '\u{10ff6}',
+ Script::Elymaic), ('\u{11000}', '\u{11000}', Script::Brahmi), ('\u{11001}', '\u{11001}',
+ Script::Brahmi), ('\u{11002}', '\u{11002}', Script::Brahmi), ('\u{11003}', '\u{11037}',
+ Script::Brahmi), ('\u{11038}', '\u{11046}', Script::Brahmi), ('\u{11047}', '\u{1104d}',
+ Script::Brahmi), ('\u{11052}', '\u{11065}', Script::Brahmi), ('\u{11066}', '\u{1106f}',
+ Script::Brahmi), ('\u{11070}', '\u{11070}', Script::Brahmi), ('\u{11071}', '\u{11072}',
+ Script::Brahmi), ('\u{11073}', '\u{11074}', Script::Brahmi), ('\u{11075}', '\u{11075}',
+ Script::Brahmi), ('\u{1107f}', '\u{1107f}', Script::Brahmi), ('\u{11080}', '\u{11081}',
+ Script::Kaithi), ('\u{11082}', '\u{11082}', Script::Kaithi), ('\u{11083}', '\u{110af}',
+ Script::Kaithi), ('\u{110b0}', '\u{110b2}', Script::Kaithi), ('\u{110b3}', '\u{110b6}',
+ Script::Kaithi), ('\u{110b7}', '\u{110b8}', Script::Kaithi), ('\u{110b9}', '\u{110ba}',
+ Script::Kaithi), ('\u{110bb}', '\u{110bc}', Script::Kaithi), ('\u{110bd}', '\u{110bd}',
+ Script::Kaithi), ('\u{110be}', '\u{110c1}', Script::Kaithi), ('\u{110c2}', '\u{110c2}',
+ Script::Kaithi), ('\u{110cd}', '\u{110cd}', Script::Kaithi), ('\u{110d0}', '\u{110e8}',
+ Script::Sora_Sompeng), ('\u{110f0}', '\u{110f9}', Script::Sora_Sompeng), ('\u{11100}',
+ '\u{11102}', Script::Chakma), ('\u{11103}', '\u{11126}', Script::Chakma), ('\u{11127}',
+ '\u{1112b}', Script::Chakma), ('\u{1112c}', '\u{1112c}', Script::Chakma), ('\u{1112d}',
+ '\u{11134}', Script::Chakma), ('\u{11136}', '\u{1113f}', Script::Chakma), ('\u{11140}',
+ '\u{11143}', Script::Chakma), ('\u{11144}', '\u{11144}', Script::Chakma), ('\u{11145}',
+ '\u{11146}', Script::Chakma), ('\u{11147}', '\u{11147}', Script::Chakma), ('\u{11150}',
+ '\u{11172}', Script::Mahajani), ('\u{11173}', '\u{11173}', Script::Mahajani),
+ ('\u{11174}', '\u{11175}', Script::Mahajani), ('\u{11176}', '\u{11176}',
+ Script::Mahajani), ('\u{11180}', '\u{11181}', Script::Sharada), ('\u{11182}', '\u{11182}',
+ Script::Sharada), ('\u{11183}', '\u{111b2}', Script::Sharada), ('\u{111b3}', '\u{111b5}',
+ Script::Sharada), ('\u{111b6}', '\u{111be}', Script::Sharada), ('\u{111bf}', '\u{111c0}',
+ Script::Sharada), ('\u{111c1}', '\u{111c4}', Script::Sharada), ('\u{111c5}', '\u{111c8}',
+ Script::Sharada), ('\u{111c9}', '\u{111cc}', Script::Sharada), ('\u{111cd}', '\u{111cd}',
+ Script::Sharada), ('\u{111ce}', '\u{111ce}', Script::Sharada), ('\u{111cf}', '\u{111cf}',
+ Script::Sharada), ('\u{111d0}', '\u{111d9}', Script::Sharada), ('\u{111da}', '\u{111da}',
+ Script::Sharada), ('\u{111db}', '\u{111db}', Script::Sharada), ('\u{111dc}', '\u{111dc}',
+ Script::Sharada), ('\u{111dd}', '\u{111df}', Script::Sharada), ('\u{111e1}', '\u{111f4}',
+ Script::Sinhala), ('\u{11200}', '\u{11211}', Script::Khojki), ('\u{11213}', '\u{1122b}',
+ Script::Khojki), ('\u{1122c}', '\u{1122e}', Script::Khojki), ('\u{1122f}', '\u{11231}',
+ Script::Khojki), ('\u{11232}', '\u{11233}', Script::Khojki), ('\u{11234}', '\u{11234}',
+ Script::Khojki), ('\u{11235}', '\u{11235}', Script::Khojki), ('\u{11236}', '\u{11237}',
+ Script::Khojki), ('\u{11238}', '\u{1123d}', Script::Khojki), ('\u{1123e}', '\u{1123e}',
+ Script::Khojki), ('\u{1123f}', '\u{11240}', Script::Khojki), ('\u{11241}', '\u{11241}',
+ Script::Khojki), ('\u{11280}', '\u{11286}', Script::Multani), ('\u{11288}', '\u{11288}',
+ Script::Multani), ('\u{1128a}', '\u{1128d}', Script::Multani), ('\u{1128f}', '\u{1129d}',
+ Script::Multani), ('\u{1129f}', '\u{112a8}', Script::Multani), ('\u{112a9}', '\u{112a9}',
+ Script::Multani), ('\u{112b0}', '\u{112de}', Script::Khudawadi), ('\u{112df}',
+ '\u{112df}', Script::Khudawadi), ('\u{112e0}', '\u{112e2}', Script::Khudawadi),
+ ('\u{112e3}', '\u{112ea}', Script::Khudawadi), ('\u{112f0}', '\u{112f9}',
+ Script::Khudawadi), ('\u{11300}', '\u{11301}', Script::Grantha), ('\u{11302}',
+ '\u{11303}', Script::Grantha), ('\u{11305}', '\u{1130c}', Script::Grantha), ('\u{1130f}',
+ '\u{11310}', Script::Grantha), ('\u{11313}', '\u{11328}', Script::Grantha), ('\u{1132a}',
+ '\u{11330}', Script::Grantha), ('\u{11332}', '\u{11333}', Script::Grantha), ('\u{11335}',
+ '\u{11339}', Script::Grantha), ('\u{1133b}', '\u{1133b}', Script::Inherited),
+ ('\u{1133c}', '\u{1133c}', Script::Grantha), ('\u{1133d}', '\u{1133d}', Script::Grantha),
+ ('\u{1133e}', '\u{1133f}', Script::Grantha), ('\u{11340}', '\u{11340}', Script::Grantha),
+ ('\u{11341}', '\u{11344}', Script::Grantha), ('\u{11347}', '\u{11348}', Script::Grantha),
+ ('\u{1134b}', '\u{1134d}', Script::Grantha), ('\u{11350}', '\u{11350}', Script::Grantha),
+ ('\u{11357}', '\u{11357}', Script::Grantha), ('\u{1135d}', '\u{11361}', Script::Grantha),
+ ('\u{11362}', '\u{11363}', Script::Grantha), ('\u{11366}', '\u{1136c}', Script::Grantha),
+ ('\u{11370}', '\u{11374}', Script::Grantha), ('\u{11380}', '\u{11389}',
+ Script::Tulu_Tigalari), ('\u{1138b}', '\u{1138b}', Script::Tulu_Tigalari), ('\u{1138e}',
+ '\u{1138e}', Script::Tulu_Tigalari), ('\u{11390}', '\u{113b5}', Script::Tulu_Tigalari),
+ ('\u{113b7}', '\u{113b7}', Script::Tulu_Tigalari), ('\u{113b8}', '\u{113ba}',
+ Script::Tulu_Tigalari), ('\u{113bb}', '\u{113c0}', Script::Tulu_Tigalari), ('\u{113c2}',
+ '\u{113c2}', Script::Tulu_Tigalari), ('\u{113c5}', '\u{113c5}', Script::Tulu_Tigalari),
+ ('\u{113c7}', '\u{113ca}', Script::Tulu_Tigalari), ('\u{113cc}', '\u{113cd}',
+ Script::Tulu_Tigalari), ('\u{113ce}', '\u{113ce}', Script::Tulu_Tigalari), ('\u{113cf}',
+ '\u{113cf}', Script::Tulu_Tigalari), ('\u{113d0}', '\u{113d0}', Script::Tulu_Tigalari),
+ ('\u{113d1}', '\u{113d1}', Script::Tulu_Tigalari), ('\u{113d2}', '\u{113d2}',
+ Script::Tulu_Tigalari), ('\u{113d3}', '\u{113d3}', Script::Tulu_Tigalari), ('\u{113d4}',
+ '\u{113d5}', Script::Tulu_Tigalari), ('\u{113d7}', '\u{113d8}', Script::Tulu_Tigalari),
+ ('\u{113e1}', '\u{113e2}', Script::Tulu_Tigalari), ('\u{11400}', '\u{11434}',
+ Script::Newa), ('\u{11435}', '\u{11437}', Script::Newa), ('\u{11438}', '\u{1143f}',
+ Script::Newa), ('\u{11440}', '\u{11441}', Script::Newa), ('\u{11442}', '\u{11444}',
+ Script::Newa), ('\u{11445}', '\u{11445}', Script::Newa), ('\u{11446}', '\u{11446}',
+ Script::Newa), ('\u{11447}', '\u{1144a}', Script::Newa), ('\u{1144b}', '\u{1144f}',
+ Script::Newa), ('\u{11450}', '\u{11459}', Script::Newa), ('\u{1145a}', '\u{1145b}',
+ Script::Newa), ('\u{1145d}', '\u{1145d}', Script::Newa), ('\u{1145e}', '\u{1145e}',
+ Script::Newa), ('\u{1145f}', '\u{11461}', Script::Newa), ('\u{11480}', '\u{114af}',
+ Script::Tirhuta), ('\u{114b0}', '\u{114b2}', Script::Tirhuta), ('\u{114b3}', '\u{114b8}',
+ Script::Tirhuta), ('\u{114b9}', '\u{114b9}', Script::Tirhuta), ('\u{114ba}', '\u{114ba}',
+ Script::Tirhuta), ('\u{114bb}', '\u{114be}', Script::Tirhuta), ('\u{114bf}', '\u{114c0}',
+ Script::Tirhuta), ('\u{114c1}', '\u{114c1}', Script::Tirhuta), ('\u{114c2}', '\u{114c3}',
+ Script::Tirhuta), ('\u{114c4}', '\u{114c5}', Script::Tirhuta), ('\u{114c6}', '\u{114c6}',
+ Script::Tirhuta), ('\u{114c7}', '\u{114c7}', Script::Tirhuta), ('\u{114d0}', '\u{114d9}',
+ Script::Tirhuta), ('\u{11580}', '\u{115ae}', Script::Siddham), ('\u{115af}', '\u{115b1}',
+ Script::Siddham), ('\u{115b2}', '\u{115b5}', Script::Siddham), ('\u{115b8}', '\u{115bb}',
+ Script::Siddham), ('\u{115bc}', '\u{115bd}', Script::Siddham), ('\u{115be}', '\u{115be}',
+ Script::Siddham), ('\u{115bf}', '\u{115c0}', Script::Siddham), ('\u{115c1}', '\u{115d7}',
+ Script::Siddham), ('\u{115d8}', '\u{115db}', Script::Siddham), ('\u{115dc}', '\u{115dd}',
+ Script::Siddham), ('\u{11600}', '\u{1162f}', Script::Modi), ('\u{11630}', '\u{11632}',
+ Script::Modi), ('\u{11633}', '\u{1163a}', Script::Modi), ('\u{1163b}', '\u{1163c}',
+ Script::Modi), ('\u{1163d}', '\u{1163d}', Script::Modi), ('\u{1163e}', '\u{1163e}',
+ Script::Modi), ('\u{1163f}', '\u{11640}', Script::Modi), ('\u{11641}', '\u{11643}',
+ Script::Modi), ('\u{11644}', '\u{11644}', Script::Modi), ('\u{11650}', '\u{11659}',
+ Script::Modi), ('\u{11660}', '\u{1166c}', Script::Mongolian), ('\u{11680}', '\u{116aa}',
+ Script::Takri), ('\u{116ab}', '\u{116ab}', Script::Takri), ('\u{116ac}', '\u{116ac}',
+ Script::Takri), ('\u{116ad}', '\u{116ad}', Script::Takri), ('\u{116ae}', '\u{116af}',
+ Script::Takri), ('\u{116b0}', '\u{116b5}', Script::Takri), ('\u{116b6}', '\u{116b6}',
+ Script::Takri), ('\u{116b7}', '\u{116b7}', Script::Takri), ('\u{116b8}', '\u{116b8}',
+ Script::Takri), ('\u{116b9}', '\u{116b9}', Script::Takri), ('\u{116c0}', '\u{116c9}',
+ Script::Takri), ('\u{116d0}', '\u{116e3}', Script::Myanmar), ('\u{11700}', '\u{1171a}',
+ Script::Ahom), ('\u{1171d}', '\u{1171d}', Script::Ahom), ('\u{1171e}', '\u{1171e}',
+ Script::Ahom), ('\u{1171f}', '\u{1171f}', Script::Ahom), ('\u{11720}', '\u{11721}',
+ Script::Ahom), ('\u{11722}', '\u{11725}', Script::Ahom), ('\u{11726}', '\u{11726}',
+ Script::Ahom), ('\u{11727}', '\u{1172b}', Script::Ahom), ('\u{11730}', '\u{11739}',
+ Script::Ahom), ('\u{1173a}', '\u{1173b}', Script::Ahom), ('\u{1173c}', '\u{1173e}',
+ Script::Ahom), ('\u{1173f}', '\u{1173f}', Script::Ahom), ('\u{11740}', '\u{11746}',
+ Script::Ahom), ('\u{11800}', '\u{1182b}', Script::Dogra), ('\u{1182c}', '\u{1182e}',
+ Script::Dogra), ('\u{1182f}', '\u{11837}', Script::Dogra), ('\u{11838}', '\u{11838}',
+ Script::Dogra), ('\u{11839}', '\u{1183a}', Script::Dogra), ('\u{1183b}', '\u{1183b}',
+ Script::Dogra), ('\u{118a0}', '\u{118df}', Script::Warang_Citi), ('\u{118e0}',
+ '\u{118e9}', Script::Warang_Citi), ('\u{118ea}', '\u{118f2}', Script::Warang_Citi),
+ ('\u{118ff}', '\u{118ff}', Script::Warang_Citi), ('\u{11900}', '\u{11906}',
+ Script::Dives_Akuru), ('\u{11909}', '\u{11909}', Script::Dives_Akuru), ('\u{1190c}',
+ '\u{11913}', Script::Dives_Akuru), ('\u{11915}', '\u{11916}', Script::Dives_Akuru),
+ ('\u{11918}', '\u{1192f}', Script::Dives_Akuru), ('\u{11930}', '\u{11935}',
+ Script::Dives_Akuru), ('\u{11937}', '\u{11938}', Script::Dives_Akuru), ('\u{1193b}',
+ '\u{1193c}', Script::Dives_Akuru), ('\u{1193d}', '\u{1193d}', Script::Dives_Akuru),
+ ('\u{1193e}', '\u{1193e}', Script::Dives_Akuru), ('\u{1193f}', '\u{1193f}',
+ Script::Dives_Akuru), ('\u{11940}', '\u{11940}', Script::Dives_Akuru), ('\u{11941}',
+ '\u{11941}', Script::Dives_Akuru), ('\u{11942}', '\u{11942}', Script::Dives_Akuru),
+ ('\u{11943}', '\u{11943}', Script::Dives_Akuru), ('\u{11944}', '\u{11946}',
+ Script::Dives_Akuru), ('\u{11950}', '\u{11959}', Script::Dives_Akuru), ('\u{119a0}',
+ '\u{119a7}', Script::Nandinagari), ('\u{119aa}', '\u{119d0}', Script::Nandinagari),
+ ('\u{119d1}', '\u{119d3}', Script::Nandinagari), ('\u{119d4}', '\u{119d7}',
+ Script::Nandinagari), ('\u{119da}', '\u{119db}', Script::Nandinagari), ('\u{119dc}',
+ '\u{119df}', Script::Nandinagari), ('\u{119e0}', '\u{119e0}', Script::Nandinagari),
+ ('\u{119e1}', '\u{119e1}', Script::Nandinagari), ('\u{119e2}', '\u{119e2}',
+ Script::Nandinagari), ('\u{119e3}', '\u{119e3}', Script::Nandinagari), ('\u{119e4}',
+ '\u{119e4}', Script::Nandinagari), ('\u{11a00}', '\u{11a00}', Script::Zanabazar_Square),
+ ('\u{11a01}', '\u{11a0a}', Script::Zanabazar_Square), ('\u{11a0b}', '\u{11a32}',
+ Script::Zanabazar_Square), ('\u{11a33}', '\u{11a38}', Script::Zanabazar_Square),
+ ('\u{11a39}', '\u{11a39}', Script::Zanabazar_Square), ('\u{11a3a}', '\u{11a3a}',
+ Script::Zanabazar_Square), ('\u{11a3b}', '\u{11a3e}', Script::Zanabazar_Square),
+ ('\u{11a3f}', '\u{11a46}', Script::Zanabazar_Square), ('\u{11a47}', '\u{11a47}',
+ Script::Zanabazar_Square), ('\u{11a50}', '\u{11a50}', Script::Soyombo), ('\u{11a51}',
+ '\u{11a56}', Script::Soyombo), ('\u{11a57}', '\u{11a58}', Script::Soyombo), ('\u{11a59}',
+ '\u{11a5b}', Script::Soyombo), ('\u{11a5c}', '\u{11a89}', Script::Soyombo), ('\u{11a8a}',
+ '\u{11a96}', Script::Soyombo), ('\u{11a97}', '\u{11a97}', Script::Soyombo), ('\u{11a98}',
+ '\u{11a99}', Script::Soyombo), ('\u{11a9a}', '\u{11a9c}', Script::Soyombo), ('\u{11a9d}',
+ '\u{11a9d}', Script::Soyombo), ('\u{11a9e}', '\u{11aa2}', Script::Soyombo), ('\u{11ab0}',
+ '\u{11abf}', Script::Canadian_Aboriginal), ('\u{11ac0}', '\u{11af8}',
+ Script::Pau_Cin_Hau), ('\u{11b00}', '\u{11b09}', Script::Devanagari), ('\u{11bc0}',
+ '\u{11be0}', Script::Sunuwar), ('\u{11be1}', '\u{11be1}', Script::Sunuwar), ('\u{11bf0}',
+ '\u{11bf9}', Script::Sunuwar), ('\u{11c00}', '\u{11c08}', Script::Bhaiksuki),
+ ('\u{11c0a}', '\u{11c2e}', Script::Bhaiksuki), ('\u{11c2f}', '\u{11c2f}',
+ Script::Bhaiksuki), ('\u{11c30}', '\u{11c36}', Script::Bhaiksuki), ('\u{11c38}',
+ '\u{11c3d}', Script::Bhaiksuki), ('\u{11c3e}', '\u{11c3e}', Script::Bhaiksuki),
+ ('\u{11c3f}', '\u{11c3f}', Script::Bhaiksuki), ('\u{11c40}', '\u{11c40}',
+ Script::Bhaiksuki), ('\u{11c41}', '\u{11c45}', Script::Bhaiksuki), ('\u{11c50}',
+ '\u{11c59}', Script::Bhaiksuki), ('\u{11c5a}', '\u{11c6c}', Script::Bhaiksuki),
+ ('\u{11c70}', '\u{11c71}', Script::Marchen), ('\u{11c72}', '\u{11c8f}', Script::Marchen),
+ ('\u{11c92}', '\u{11ca7}', Script::Marchen), ('\u{11ca9}', '\u{11ca9}', Script::Marchen),
+ ('\u{11caa}', '\u{11cb0}', Script::Marchen), ('\u{11cb1}', '\u{11cb1}', Script::Marchen),
+ ('\u{11cb2}', '\u{11cb3}', Script::Marchen), ('\u{11cb4}', '\u{11cb4}', Script::Marchen),
+ ('\u{11cb5}', '\u{11cb6}', Script::Marchen), ('\u{11d00}', '\u{11d06}',
+ Script::Masaram_Gondi), ('\u{11d08}', '\u{11d09}', Script::Masaram_Gondi), ('\u{11d0b}',
+ '\u{11d30}', Script::Masaram_Gondi), ('\u{11d31}', '\u{11d36}', Script::Masaram_Gondi),
+ ('\u{11d3a}', '\u{11d3a}', Script::Masaram_Gondi), ('\u{11d3c}', '\u{11d3d}',
+ Script::Masaram_Gondi), ('\u{11d3f}', '\u{11d45}', Script::Masaram_Gondi), ('\u{11d46}',
+ '\u{11d46}', Script::Masaram_Gondi), ('\u{11d47}', '\u{11d47}', Script::Masaram_Gondi),
+ ('\u{11d50}', '\u{11d59}', Script::Masaram_Gondi), ('\u{11d60}', '\u{11d65}',
+ Script::Gunjala_Gondi), ('\u{11d67}', '\u{11d68}', Script::Gunjala_Gondi), ('\u{11d6a}',
+ '\u{11d89}', Script::Gunjala_Gondi), ('\u{11d8a}', '\u{11d8e}', Script::Gunjala_Gondi),
+ ('\u{11d90}', '\u{11d91}', Script::Gunjala_Gondi), ('\u{11d93}', '\u{11d94}',
+ Script::Gunjala_Gondi), ('\u{11d95}', '\u{11d95}', Script::Gunjala_Gondi), ('\u{11d96}',
+ '\u{11d96}', Script::Gunjala_Gondi), ('\u{11d97}', '\u{11d97}', Script::Gunjala_Gondi),
+ ('\u{11d98}', '\u{11d98}', Script::Gunjala_Gondi), ('\u{11da0}', '\u{11da9}',
+ Script::Gunjala_Gondi), ('\u{11ee0}', '\u{11ef2}', Script::Makasar), ('\u{11ef3}',
+ '\u{11ef4}', Script::Makasar), ('\u{11ef5}', '\u{11ef6}', Script::Makasar), ('\u{11ef7}',
+ '\u{11ef8}', Script::Makasar), ('\u{11f00}', '\u{11f01}', Script::Kawi), ('\u{11f02}',
+ '\u{11f02}', Script::Kawi), ('\u{11f03}', '\u{11f03}', Script::Kawi), ('\u{11f04}',
+ '\u{11f10}', Script::Kawi), ('\u{11f12}', '\u{11f33}', Script::Kawi), ('\u{11f34}',
+ '\u{11f35}', Script::Kawi), ('\u{11f36}', '\u{11f3a}', Script::Kawi), ('\u{11f3e}',
+ '\u{11f3f}', Script::Kawi), ('\u{11f40}', '\u{11f40}', Script::Kawi), ('\u{11f41}',
+ '\u{11f41}', Script::Kawi), ('\u{11f42}', '\u{11f42}', Script::Kawi), ('\u{11f43}',
+ '\u{11f4f}', Script::Kawi), ('\u{11f50}', '\u{11f59}', Script::Kawi), ('\u{11f5a}',
+ '\u{11f5a}', Script::Kawi), ('\u{11fb0}', '\u{11fb0}', Script::Lisu), ('\u{11fc0}',
+ '\u{11fd4}', Script::Tamil), ('\u{11fd5}', '\u{11fdc}', Script::Tamil), ('\u{11fdd}',
+ '\u{11fe0}', Script::Tamil), ('\u{11fe1}', '\u{11ff1}', Script::Tamil), ('\u{11fff}',
+ '\u{11fff}', Script::Tamil), ('\u{12000}', '\u{12399}', Script::Cuneiform), ('\u{12400}',
+ '\u{1246e}', Script::Cuneiform), ('\u{12470}', '\u{12474}', Script::Cuneiform),
+ ('\u{12480}', '\u{12543}', Script::Cuneiform), ('\u{12f90}', '\u{12ff0}',
+ Script::Cypro_Minoan), ('\u{12ff1}', '\u{12ff2}', Script::Cypro_Minoan), ('\u{13000}',
+ '\u{1342f}', Script::Egyptian_Hieroglyphs), ('\u{13430}', '\u{1343f}',
+ Script::Egyptian_Hieroglyphs), ('\u{13440}', '\u{13440}', Script::Egyptian_Hieroglyphs),
+ ('\u{13441}', '\u{13446}', Script::Egyptian_Hieroglyphs), ('\u{13447}', '\u{13455}',
+ Script::Egyptian_Hieroglyphs), ('\u{13460}', '\u{143fa}', Script::Egyptian_Hieroglyphs),
+ ('\u{14400}', '\u{14646}', Script::Anatolian_Hieroglyphs), ('\u{16100}', '\u{1611d}',
+ Script::Gurung_Khema), ('\u{1611e}', '\u{16129}', Script::Gurung_Khema), ('\u{1612a}',
+ '\u{1612c}', Script::Gurung_Khema), ('\u{1612d}', '\u{1612f}', Script::Gurung_Khema),
+ ('\u{16130}', '\u{16139}', Script::Gurung_Khema), ('\u{16800}', '\u{16a38}',
+ Script::Bamum), ('\u{16a40}', '\u{16a5e}', Script::Mro), ('\u{16a60}', '\u{16a69}',
+ Script::Mro), ('\u{16a6e}', '\u{16a6f}', Script::Mro), ('\u{16a70}', '\u{16abe}',
+ Script::Tangsa), ('\u{16ac0}', '\u{16ac9}', Script::Tangsa), ('\u{16ad0}', '\u{16aed}',
+ Script::Bassa_Vah), ('\u{16af0}', '\u{16af4}', Script::Bassa_Vah), ('\u{16af5}',
+ '\u{16af5}', Script::Bassa_Vah), ('\u{16b00}', '\u{16b2f}', Script::Pahawh_Hmong),
+ ('\u{16b30}', '\u{16b36}', Script::Pahawh_Hmong), ('\u{16b37}', '\u{16b3b}',
+ Script::Pahawh_Hmong), ('\u{16b3c}', '\u{16b3f}', Script::Pahawh_Hmong), ('\u{16b40}',
+ '\u{16b43}', Script::Pahawh_Hmong), ('\u{16b44}', '\u{16b44}', Script::Pahawh_Hmong),
+ ('\u{16b45}', '\u{16b45}', Script::Pahawh_Hmong), ('\u{16b50}', '\u{16b59}',
+ Script::Pahawh_Hmong), ('\u{16b5b}', '\u{16b61}', Script::Pahawh_Hmong), ('\u{16b63}',
+ '\u{16b77}', Script::Pahawh_Hmong), ('\u{16b7d}', '\u{16b8f}', Script::Pahawh_Hmong),
+ ('\u{16d40}', '\u{16d42}', Script::Kirat_Rai), ('\u{16d43}', '\u{16d6a}',
+ Script::Kirat_Rai), ('\u{16d6b}', '\u{16d6c}', Script::Kirat_Rai), ('\u{16d6d}',
+ '\u{16d6f}', Script::Kirat_Rai), ('\u{16d70}', '\u{16d79}', Script::Kirat_Rai),
+ ('\u{16e40}', '\u{16e7f}', Script::Medefaidrin), ('\u{16e80}', '\u{16e96}',
+ Script::Medefaidrin), ('\u{16e97}', '\u{16e9a}', Script::Medefaidrin), ('\u{16f00}',
+ '\u{16f4a}', Script::Miao), ('\u{16f4f}', '\u{16f4f}', Script::Miao), ('\u{16f50}',
+ '\u{16f50}', Script::Miao), ('\u{16f51}', '\u{16f87}', Script::Miao), ('\u{16f8f}',
+ '\u{16f92}', Script::Miao), ('\u{16f93}', '\u{16f9f}', Script::Miao), ('\u{16fe0}',
+ '\u{16fe0}', Script::Tangut), ('\u{16fe1}', '\u{16fe1}', Script::Nushu), ('\u{16fe2}',
+ '\u{16fe2}', Script::Han), ('\u{16fe3}', '\u{16fe3}', Script::Han), ('\u{16fe4}',
+ '\u{16fe4}', Script::Khitan_Small_Script), ('\u{16ff0}', '\u{16ff1}', Script::Han),
+ ('\u{17000}', '\u{187f7}', Script::Tangut), ('\u{18800}', '\u{18aff}', Script::Tangut),
+ ('\u{18b00}', '\u{18cd5}', Script::Khitan_Small_Script), ('\u{18cff}', '\u{18cff}',
+ Script::Khitan_Small_Script), ('\u{18d00}', '\u{18d08}', Script::Tangut), ('\u{1aff0}',
+ '\u{1aff3}', Script::Katakana), ('\u{1aff5}', '\u{1affb}', Script::Katakana),
+ ('\u{1affd}', '\u{1affe}', Script::Katakana), ('\u{1b000}', '\u{1b000}',
+ Script::Katakana), ('\u{1b001}', '\u{1b11f}', Script::Hiragana), ('\u{1b120}',
+ '\u{1b122}', Script::Katakana), ('\u{1b132}', '\u{1b132}', Script::Hiragana),
+ ('\u{1b150}', '\u{1b152}', Script::Hiragana), ('\u{1b155}', '\u{1b155}',
+ Script::Katakana), ('\u{1b164}', '\u{1b167}', Script::Katakana), ('\u{1b170}',
+ '\u{1b2fb}', Script::Nushu), ('\u{1bc00}', '\u{1bc6a}', Script::Duployan), ('\u{1bc70}',
+ '\u{1bc7c}', Script::Duployan), ('\u{1bc80}', '\u{1bc88}', Script::Duployan),
+ ('\u{1bc90}', '\u{1bc99}', Script::Duployan), ('\u{1bc9c}', '\u{1bc9c}',
+ Script::Duployan), ('\u{1bc9d}', '\u{1bc9e}', Script::Duployan), ('\u{1bc9f}',
+ '\u{1bc9f}', Script::Duployan), ('\u{1bca0}', '\u{1bca3}', Script::Common), ('\u{1cc00}',
+ '\u{1ccef}', Script::Common), ('\u{1ccf0}', '\u{1ccf9}', Script::Common), ('\u{1cd00}',
+ '\u{1ceb3}', Script::Common), ('\u{1cf00}', '\u{1cf2d}', Script::Inherited), ('\u{1cf30}',
+ '\u{1cf46}', Script::Inherited), ('\u{1cf50}', '\u{1cfc3}', Script::Common), ('\u{1d000}',
+ '\u{1d0f5}', Script::Common), ('\u{1d100}', '\u{1d126}', Script::Common), ('\u{1d129}',
+ '\u{1d164}', Script::Common), ('\u{1d165}', '\u{1d166}', Script::Common), ('\u{1d167}',
+ '\u{1d169}', Script::Inherited), ('\u{1d16a}', '\u{1d16c}', Script::Common), ('\u{1d16d}',
+ '\u{1d172}', Script::Common), ('\u{1d173}', '\u{1d17a}', Script::Common), ('\u{1d17b}',
+ '\u{1d182}', Script::Inherited), ('\u{1d183}', '\u{1d184}', Script::Common), ('\u{1d185}',
+ '\u{1d18b}', Script::Inherited), ('\u{1d18c}', '\u{1d1a9}', Script::Common), ('\u{1d1aa}',
+ '\u{1d1ad}', Script::Inherited), ('\u{1d1ae}', '\u{1d1ea}', Script::Common), ('\u{1d200}',
+ '\u{1d241}', Script::Greek), ('\u{1d242}', '\u{1d244}', Script::Greek), ('\u{1d245}',
+ '\u{1d245}', Script::Greek), ('\u{1d2c0}', '\u{1d2d3}', Script::Common), ('\u{1d2e0}',
+ '\u{1d2f3}', Script::Common), ('\u{1d300}', '\u{1d356}', Script::Common), ('\u{1d360}',
+ '\u{1d378}', Script::Common), ('\u{1d400}', '\u{1d454}', Script::Common), ('\u{1d456}',
+ '\u{1d49c}', Script::Common), ('\u{1d49e}', '\u{1d49f}', Script::Common), ('\u{1d4a2}',
+ '\u{1d4a2}', Script::Common), ('\u{1d4a5}', '\u{1d4a6}', Script::Common), ('\u{1d4a9}',
+ '\u{1d4ac}', Script::Common), ('\u{1d4ae}', '\u{1d4b9}', Script::Common), ('\u{1d4bb}',
+ '\u{1d4bb}', Script::Common), ('\u{1d4bd}', '\u{1d4c3}', Script::Common), ('\u{1d4c5}',
+ '\u{1d505}', Script::Common), ('\u{1d507}', '\u{1d50a}', Script::Common), ('\u{1d50d}',
+ '\u{1d514}', Script::Common), ('\u{1d516}', '\u{1d51c}', Script::Common), ('\u{1d51e}',
+ '\u{1d539}', Script::Common), ('\u{1d53b}', '\u{1d53e}', Script::Common), ('\u{1d540}',
+ '\u{1d544}', Script::Common), ('\u{1d546}', '\u{1d546}', Script::Common), ('\u{1d54a}',
+ '\u{1d550}', Script::Common), ('\u{1d552}', '\u{1d6a5}', Script::Common), ('\u{1d6a8}',
+ '\u{1d6c0}', Script::Common), ('\u{1d6c1}', '\u{1d6c1}', Script::Common), ('\u{1d6c2}',
+ '\u{1d6da}', Script::Common), ('\u{1d6db}', '\u{1d6db}', Script::Common), ('\u{1d6dc}',
+ '\u{1d6fa}', Script::Common), ('\u{1d6fb}', '\u{1d6fb}', Script::Common), ('\u{1d6fc}',
+ '\u{1d714}', Script::Common), ('\u{1d715}', '\u{1d715}', Script::Common), ('\u{1d716}',
+ '\u{1d734}', Script::Common), ('\u{1d735}', '\u{1d735}', Script::Common), ('\u{1d736}',
+ '\u{1d74e}', Script::Common), ('\u{1d74f}', '\u{1d74f}', Script::Common), ('\u{1d750}',
+ '\u{1d76e}', Script::Common), ('\u{1d76f}', '\u{1d76f}', Script::Common), ('\u{1d770}',
+ '\u{1d788}', Script::Common), ('\u{1d789}', '\u{1d789}', Script::Common), ('\u{1d78a}',
+ '\u{1d7a8}', Script::Common), ('\u{1d7a9}', '\u{1d7a9}', Script::Common), ('\u{1d7aa}',
+ '\u{1d7c2}', Script::Common), ('\u{1d7c3}', '\u{1d7c3}', Script::Common), ('\u{1d7c4}',
+ '\u{1d7cb}', Script::Common), ('\u{1d7ce}', '\u{1d7ff}', Script::Common), ('\u{1d800}',
+ '\u{1d9ff}', Script::SignWriting), ('\u{1da00}', '\u{1da36}', Script::SignWriting),
+ ('\u{1da37}', '\u{1da3a}', Script::SignWriting), ('\u{1da3b}', '\u{1da6c}',
+ Script::SignWriting), ('\u{1da6d}', '\u{1da74}', Script::SignWriting), ('\u{1da75}',
+ '\u{1da75}', Script::SignWriting), ('\u{1da76}', '\u{1da83}', Script::SignWriting),
+ ('\u{1da84}', '\u{1da84}', Script::SignWriting), ('\u{1da85}', '\u{1da86}',
+ Script::SignWriting), ('\u{1da87}', '\u{1da8b}', Script::SignWriting), ('\u{1da9b}',
+ '\u{1da9f}', Script::SignWriting), ('\u{1daa1}', '\u{1daaf}', Script::SignWriting),
+ ('\u{1df00}', '\u{1df09}', Script::Latin), ('\u{1df0a}', '\u{1df0a}', Script::Latin),
+ ('\u{1df0b}', '\u{1df1e}', Script::Latin), ('\u{1df25}', '\u{1df2a}', Script::Latin),
+ ('\u{1e000}', '\u{1e006}', Script::Glagolitic), ('\u{1e008}', '\u{1e018}',
+ Script::Glagolitic), ('\u{1e01b}', '\u{1e021}', Script::Glagolitic), ('\u{1e023}',
+ '\u{1e024}', Script::Glagolitic), ('\u{1e026}', '\u{1e02a}', Script::Glagolitic),
+ ('\u{1e030}', '\u{1e06d}', Script::Cyrillic), ('\u{1e08f}', '\u{1e08f}',
+ Script::Cyrillic), ('\u{1e100}', '\u{1e12c}', Script::Nyiakeng_Puachue_Hmong),
+ ('\u{1e130}', '\u{1e136}', Script::Nyiakeng_Puachue_Hmong), ('\u{1e137}', '\u{1e13d}',
+ Script::Nyiakeng_Puachue_Hmong), ('\u{1e140}', '\u{1e149}',
+ Script::Nyiakeng_Puachue_Hmong), ('\u{1e14e}', '\u{1e14e}',
+ Script::Nyiakeng_Puachue_Hmong), ('\u{1e14f}', '\u{1e14f}',
+ Script::Nyiakeng_Puachue_Hmong), ('\u{1e290}', '\u{1e2ad}', Script::Toto), ('\u{1e2ae}',
+ '\u{1e2ae}', Script::Toto), ('\u{1e2c0}', '\u{1e2eb}', Script::Wancho), ('\u{1e2ec}',
+ '\u{1e2ef}', Script::Wancho), ('\u{1e2f0}', '\u{1e2f9}', Script::Wancho), ('\u{1e2ff}',
+ '\u{1e2ff}', Script::Wancho), ('\u{1e4d0}', '\u{1e4ea}', Script::Nag_Mundari),
+ ('\u{1e4eb}', '\u{1e4eb}', Script::Nag_Mundari), ('\u{1e4ec}', '\u{1e4ef}',
+ Script::Nag_Mundari), ('\u{1e4f0}', '\u{1e4f9}', Script::Nag_Mundari), ('\u{1e5d0}',
+ '\u{1e5ed}', Script::Ol_Onal), ('\u{1e5ee}', '\u{1e5ef}', Script::Ol_Onal), ('\u{1e5f0}',
+ '\u{1e5f0}', Script::Ol_Onal), ('\u{1e5f1}', '\u{1e5fa}', Script::Ol_Onal), ('\u{1e5ff}',
+ '\u{1e5ff}', Script::Ol_Onal), ('\u{1e7e0}', '\u{1e7e6}', Script::Ethiopic), ('\u{1e7e8}',
+ '\u{1e7eb}', Script::Ethiopic), ('\u{1e7ed}', '\u{1e7ee}', Script::Ethiopic),
+ ('\u{1e7f0}', '\u{1e7fe}', Script::Ethiopic), ('\u{1e800}', '\u{1e8c4}',
+ Script::Mende_Kikakui), ('\u{1e8c7}', '\u{1e8cf}', Script::Mende_Kikakui), ('\u{1e8d0}',
+ '\u{1e8d6}', Script::Mende_Kikakui), ('\u{1e900}', '\u{1e943}', Script::Adlam),
+ ('\u{1e944}', '\u{1e94a}', Script::Adlam), ('\u{1e94b}', '\u{1e94b}', Script::Adlam),
+ ('\u{1e950}', '\u{1e959}', Script::Adlam), ('\u{1e95e}', '\u{1e95f}', Script::Adlam),
+ ('\u{1ec71}', '\u{1ecab}', Script::Common), ('\u{1ecac}', '\u{1ecac}', Script::Common),
+ ('\u{1ecad}', '\u{1ecaf}', Script::Common), ('\u{1ecb0}', '\u{1ecb0}', Script::Common),
+ ('\u{1ecb1}', '\u{1ecb4}', Script::Common), ('\u{1ed01}', '\u{1ed2d}', Script::Common),
+ ('\u{1ed2e}', '\u{1ed2e}', Script::Common), ('\u{1ed2f}', '\u{1ed3d}', Script::Common),
+ ('\u{1ee00}', '\u{1ee03}', Script::Arabic), ('\u{1ee05}', '\u{1ee1f}', Script::Arabic),
+ ('\u{1ee21}', '\u{1ee22}', Script::Arabic), ('\u{1ee24}', '\u{1ee24}', Script::Arabic),
+ ('\u{1ee27}', '\u{1ee27}', Script::Arabic), ('\u{1ee29}', '\u{1ee32}', Script::Arabic),
+ ('\u{1ee34}', '\u{1ee37}', Script::Arabic), ('\u{1ee39}', '\u{1ee39}', Script::Arabic),
+ ('\u{1ee3b}', '\u{1ee3b}', Script::Arabic), ('\u{1ee42}', '\u{1ee42}', Script::Arabic),
+ ('\u{1ee47}', '\u{1ee47}', Script::Arabic), ('\u{1ee49}', '\u{1ee49}', Script::Arabic),
+ ('\u{1ee4b}', '\u{1ee4b}', Script::Arabic), ('\u{1ee4d}', '\u{1ee4f}', Script::Arabic),
+ ('\u{1ee51}', '\u{1ee52}', Script::Arabic), ('\u{1ee54}', '\u{1ee54}', Script::Arabic),
+ ('\u{1ee57}', '\u{1ee57}', Script::Arabic), ('\u{1ee59}', '\u{1ee59}', Script::Arabic),
+ ('\u{1ee5b}', '\u{1ee5b}', Script::Arabic), ('\u{1ee5d}', '\u{1ee5d}', Script::Arabic),
+ ('\u{1ee5f}', '\u{1ee5f}', Script::Arabic), ('\u{1ee61}', '\u{1ee62}', Script::Arabic),
+ ('\u{1ee64}', '\u{1ee64}', Script::Arabic), ('\u{1ee67}', '\u{1ee6a}', Script::Arabic),
+ ('\u{1ee6c}', '\u{1ee72}', Script::Arabic), ('\u{1ee74}', '\u{1ee77}', Script::Arabic),
+ ('\u{1ee79}', '\u{1ee7c}', Script::Arabic), ('\u{1ee7e}', '\u{1ee7e}', Script::Arabic),
+ ('\u{1ee80}', '\u{1ee89}', Script::Arabic), ('\u{1ee8b}', '\u{1ee9b}', Script::Arabic),
+ ('\u{1eea1}', '\u{1eea3}', Script::Arabic), ('\u{1eea5}', '\u{1eea9}', Script::Arabic),
+ ('\u{1eeab}', '\u{1eebb}', Script::Arabic), ('\u{1eef0}', '\u{1eef1}', Script::Arabic),
+ ('\u{1f000}', '\u{1f02b}', Script::Common), ('\u{1f030}', '\u{1f093}', Script::Common),
+ ('\u{1f0a0}', '\u{1f0ae}', Script::Common), ('\u{1f0b1}', '\u{1f0bf}', Script::Common),
+ ('\u{1f0c1}', '\u{1f0cf}', Script::Common), ('\u{1f0d1}', '\u{1f0f5}', Script::Common),
+ ('\u{1f100}', '\u{1f10c}', Script::Common), ('\u{1f10d}', '\u{1f1ad}', Script::Common),
+ ('\u{1f1e6}', '\u{1f1ff}', Script::Common), ('\u{1f200}', '\u{1f200}', Script::Hiragana),
+ ('\u{1f201}', '\u{1f202}', Script::Common), ('\u{1f210}', '\u{1f23b}', Script::Common),
+ ('\u{1f240}', '\u{1f248}', Script::Common), ('\u{1f250}', '\u{1f251}', Script::Common),
+ ('\u{1f260}', '\u{1f265}', Script::Common), ('\u{1f300}', '\u{1f3fa}', Script::Common),
+ ('\u{1f3fb}', '\u{1f3ff}', Script::Common), ('\u{1f400}', '\u{1f6d7}', Script::Common),
+ ('\u{1f6dc}', '\u{1f6ec}', Script::Common), ('\u{1f6f0}', '\u{1f6fc}', Script::Common),
+ ('\u{1f700}', '\u{1f776}', Script::Common), ('\u{1f77b}', '\u{1f7d9}', Script::Common),
+ ('\u{1f7e0}', '\u{1f7eb}', Script::Common), ('\u{1f7f0}', '\u{1f7f0}', Script::Common),
+ ('\u{1f800}', '\u{1f80b}', Script::Common), ('\u{1f810}', '\u{1f847}', Script::Common),
+ ('\u{1f850}', '\u{1f859}', Script::Common), ('\u{1f860}', '\u{1f887}', Script::Common),
+ ('\u{1f890}', '\u{1f8ad}', Script::Common), ('\u{1f8b0}', '\u{1f8bb}', Script::Common),
+ ('\u{1f8c0}', '\u{1f8c1}', Script::Common), ('\u{1f900}', '\u{1fa53}', Script::Common),
+ ('\u{1fa60}', '\u{1fa6d}', Script::Common), ('\u{1fa70}', '\u{1fa7c}', Script::Common),
+ ('\u{1fa80}', '\u{1fa89}', Script::Common), ('\u{1fa8f}', '\u{1fac6}', Script::Common),
+ ('\u{1face}', '\u{1fadc}', Script::Common), ('\u{1fadf}', '\u{1fae9}', Script::Common),
+ ('\u{1faf0}', '\u{1faf8}', Script::Common), ('\u{1fb00}', '\u{1fb92}', Script::Common),
+ ('\u{1fb94}', '\u{1fbef}', Script::Common), ('\u{1fbf0}', '\u{1fbf9}', Script::Common),
+ ('\u{20000}', '\u{2a6df}', Script::Han), ('\u{2a700}', '\u{2b739}', Script::Han),
+ ('\u{2b740}', '\u{2b81d}', Script::Han), ('\u{2b820}', '\u{2cea1}', Script::Han),
+ ('\u{2ceb0}', '\u{2ebe0}', Script::Han), ('\u{2ebf0}', '\u{2ee5d}', Script::Han),
+ ('\u{2f800}', '\u{2fa1d}', Script::Han), ('\u{30000}', '\u{3134a}', Script::Han),
+ ('\u{31350}', '\u{323af}', Script::Han), ('\u{e0001}', '\u{e0001}', Script::Common),
+ ('\u{e0020}', '\u{e007f}', Script::Common), ('\u{e0100}', '\u{e01ef}', Script::Inherited)
+ ];
+
+ const SCRIPT_EXTENSIONS: &'static [(char, char, ScriptExtension)] = &[
+ ('\u{b7}', '\u{b7}',
+ script_extensions::AVST_CARI_COPT_DUPL_ELBA_GEOR_GLAG_GONG_GOTH_GREK_HANI_LATN_LYDI_MAHJ_PERM_SHAW),
+ ('\u{2bc}', '\u{2bc}', script_extensions::BENG_CYRL_DEVA_LATN_LISU_THAI_TOTO), ('\u{2c7}',
+ '\u{2c7}', script_extensions::BOPO_LATN), ('\u{2c9}', '\u{2cb}',
+ script_extensions::BOPO_LATN), ('\u{2cd}', '\u{2cd}', script_extensions::LATN_LISU),
+ ('\u{2d7}', '\u{2d7}', script_extensions::LATN_THAI), ('\u{2d9}', '\u{2d9}',
+ script_extensions::BOPO_LATN), ('\u{300}', '\u{300}',
+ script_extensions::CHER_COPT_CYRL_GREK_LATN_PERM_SUNU_TALE), ('\u{301}', '\u{301}',
+ script_extensions::CHER_CYRL_GREK_LATN_OSGE_SUNU_TALE_TODR), ('\u{302}', '\u{302}',
+ script_extensions::CHER_CYRL_LATN_TFNG), ('\u{303}', '\u{303}',
+ script_extensions::GLAG_LATN_SUNU_SYRC_THAI), ('\u{304}', '\u{304}',
+ script_extensions::AGHB_CHER_COPT_CYRL_GOTH_GREK_LATN_OSGE_SYRC_TFNG_TODR), ('\u{305}',
+ '\u{305}', script_extensions::COPT_ELBA_GLAG_GOTH_KANA_LATN), ('\u{306}', '\u{306}',
+ script_extensions::CYRL_GREK_LATN_PERM), ('\u{307}', '\u{307}',
+ script_extensions::COPT_DUPL_HEBR_LATN_PERM_SYRC_TALE_TFNG_TODR), ('\u{308}', '\u{308}',
+ script_extensions::ARMN_CYRL_DUPL_GOTH_GREK_HEBR_LATN_PERM_SYRC_TALE), ('\u{309}',
+ '\u{309}', script_extensions::LATN_TFNG), ('\u{30a}', '\u{30a}',
+ script_extensions::DUPL_LATN_SYRC), ('\u{30b}', '\u{30b}',
+ script_extensions::CHER_CYRL_LATN_OSGE), ('\u{30c}', '\u{30c}',
+ script_extensions::CHER_LATN_TALE), ('\u{30d}', '\u{30d}', script_extensions::LATN_SUNU),
+ ('\u{30e}', '\u{30e}', script_extensions::ETHI_LATN), ('\u{310}', '\u{310}',
+ script_extensions::LATN_SUNU), ('\u{311}', '\u{311}', script_extensions::CYRL_LATN_TODR),
+ ('\u{313}', '\u{313}', script_extensions::GREK_LATN_PERM_TODR), ('\u{320}', '\u{320}',
+ script_extensions::LATN_SYRC), ('\u{323}', '\u{323}',
+ script_extensions::CHER_DUPL_KANA_LATN_SYRC), ('\u{324}', '\u{324}',
+ script_extensions::CHER_DUPL_LATN_SYRC), ('\u{325}', '\u{325}',
+ script_extensions::LATN_SYRC), ('\u{32d}', '\u{32d}', script_extensions::LATN_SUNU_SYRC),
+ ('\u{32e}', '\u{32e}', script_extensions::LATN_SYRC), ('\u{330}', '\u{330}',
+ script_extensions::CHER_LATN_SYRC), ('\u{331}', '\u{331}',
+ script_extensions::AGHB_CHER_GOTH_LATN_SUNU_THAI), ('\u{342}', '\u{342}',
+ script_extensions::GREK), ('\u{345}', '\u{345}', script_extensions::GREK), ('\u{358}',
+ '\u{358}', script_extensions::LATN_OSGE), ('\u{35e}', '\u{35e}',
+ script_extensions::AGHB_LATN_TODR), ('\u{363}', '\u{36f}', script_extensions::LATN),
+ ('\u{374}', '\u{374}', script_extensions::COPT_GREK), ('\u{375}', '\u{375}',
+ script_extensions::COPT_GREK), ('\u{483}', '\u{483}', script_extensions::CYRL_PERM),
+ ('\u{484}', '\u{484}', script_extensions::CYRL_GLAG), ('\u{485}', '\u{486}',
+ script_extensions::CYRL_LATN), ('\u{487}', '\u{487}', script_extensions::CYRL_GLAG),
+ ('\u{589}', '\u{589}', script_extensions::ARMN_GEOR_GLAG), ('\u{60c}', '\u{60c}',
+ script_extensions::ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI), ('\u{61b}', '\u{61b}',
+ script_extensions::ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI), ('\u{61c}', '\u{61c}',
+ script_extensions::ARAB_SYRC_THAA), ('\u{61f}', '\u{61f}',
+ script_extensions::ADLM_ARAB_GARA_NKOO_ROHG_SYRC_THAA_YEZI), ('\u{640}', '\u{640}',
+ script_extensions::ADLM_ARAB_MAND_MANI_OUGR_PHLP_ROHG_SOGD_SYRC), ('\u{64b}', '\u{655}',
+ script_extensions::ARAB_SYRC), ('\u{660}', '\u{669}', script_extensions::ARAB_THAA_YEZI),
+ ('\u{670}', '\u{670}', script_extensions::ARAB_SYRC), ('\u{6d4}', '\u{6d4}',
+ script_extensions::ARAB_ROHG), ('\u{951}', '\u{951}',
+ script_extensions::BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_ORYA_SHRD_TAML_TELU_TIRH),
+ ('\u{952}', '\u{952}',
+ script_extensions::BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_ORYA_TAML_TELU_TIRH), ('\u{964}',
+ '\u{964}',
+ script_extensions::BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH),
+ ('\u{965}', '\u{965}',
+ script_extensions::BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GUKH_GURU_KNDA_LIMB_MAHJ_MLYM_NAND_ONAO_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH),
+ ('\u{966}', '\u{96f}', script_extensions::DEVA_DOGR_KTHI_MAHJ), ('\u{9e6}', '\u{9ef}',
+ script_extensions::BENG_CAKM_SYLO), ('\u{a66}', '\u{a6f}', script_extensions::GURU_MULT),
+ ('\u{ae6}', '\u{aef}', script_extensions::GUJR_KHOJ), ('\u{be6}', '\u{bef}',
+ script_extensions::GRAN_TAML), ('\u{bf0}', '\u{bf2}', script_extensions::GRAN_TAML),
+ ('\u{bf3}', '\u{bf3}', script_extensions::GRAN_TAML), ('\u{ce6}', '\u{cef}',
+ script_extensions::KNDA_NAND_TUTG), ('\u{1040}', '\u{1049}',
+ script_extensions::CAKM_MYMR_TALE), ('\u{10fb}', '\u{10fb}',
+ script_extensions::GEOR_GLAG_LATN), ('\u{16eb}', '\u{16ed}', script_extensions::RUNR),
+ ('\u{1735}', '\u{1736}', script_extensions::BUHD_HANO_TAGB_TGLG), ('\u{1802}', '\u{1803}',
+ script_extensions::MONG_PHAG), ('\u{1805}', '\u{1805}', script_extensions::MONG_PHAG),
+ ('\u{1cd0}', '\u{1cd0}', script_extensions::BENG_DEVA_GRAN_KNDA), ('\u{1cd1}', '\u{1cd1}',
+ script_extensions::DEVA), ('\u{1cd2}', '\u{1cd2}', script_extensions::BENG_DEVA_GRAN_KNDA),
+ ('\u{1cd3}', '\u{1cd3}', script_extensions::DEVA_GRAN_KNDA), ('\u{1cd4}', '\u{1cd4}',
+ script_extensions::DEVA), ('\u{1cd5}', '\u{1cd6}', script_extensions::BENG_DEVA),
+ ('\u{1cd7}', '\u{1cd7}', script_extensions::DEVA_SHRD), ('\u{1cd8}', '\u{1cd8}',
+ script_extensions::BENG_DEVA), ('\u{1cd9}', '\u{1cd9}', script_extensions::DEVA_SHRD),
+ ('\u{1cda}', '\u{1cda}', script_extensions::DEVA_KNDA_MLYM_ORYA_TAML_TELU), ('\u{1cdb}',
+ '\u{1cdb}', script_extensions::DEVA), ('\u{1cdc}', '\u{1cdd}',
+ script_extensions::DEVA_SHRD), ('\u{1cde}', '\u{1cdf}', script_extensions::DEVA),
+ ('\u{1ce0}', '\u{1ce0}', script_extensions::DEVA_SHRD), ('\u{1ce1}', '\u{1ce1}',
+ script_extensions::BENG_DEVA), ('\u{1ce2}', '\u{1ce8}', script_extensions::DEVA),
+ ('\u{1ce9}', '\u{1ce9}', script_extensions::DEVA_NAND), ('\u{1cea}', '\u{1cea}',
+ script_extensions::BENG_DEVA), ('\u{1ceb}', '\u{1cec}', script_extensions::DEVA),
+ ('\u{1ced}', '\u{1ced}', script_extensions::BENG_DEVA), ('\u{1cee}', '\u{1cf1}',
+ script_extensions::DEVA), ('\u{1cf2}', '\u{1cf2}',
+ script_extensions::BENG_DEVA_GRAN_KNDA_MLYM_NAND_ORYA_SINH_TELU_TIRH_TUTG), ('\u{1cf3}',
+ '\u{1cf3}', script_extensions::DEVA_GRAN), ('\u{1cf4}', '\u{1cf4}',
+ script_extensions::DEVA_GRAN_KNDA_TUTG), ('\u{1cf5}', '\u{1cf6}',
+ script_extensions::BENG_DEVA), ('\u{1cf7}', '\u{1cf7}', script_extensions::BENG),
+ ('\u{1cf8}', '\u{1cf9}', script_extensions::DEVA_GRAN), ('\u{1cfa}', '\u{1cfa}',
+ script_extensions::NAND), ('\u{1dc0}', '\u{1dc1}', script_extensions::GREK), ('\u{1df8}',
+ '\u{1df8}', script_extensions::CYRL_LATN_SYRC), ('\u{1dfa}', '\u{1dfa}',
+ script_extensions::SYRC), ('\u{202f}', '\u{202f}', script_extensions::LATN_MONG_PHAG),
+ ('\u{204f}', '\u{204f}', script_extensions::ADLM_ARAB), ('\u{205a}', '\u{205a}',
+ script_extensions::CARI_GEOR_GLAG_HUNG_LYCI_ORKH), ('\u{205d}', '\u{205d}',
+ script_extensions::CARI_GREK_HUNG_MERO), ('\u{20f0}', '\u{20f0}',
+ script_extensions::DEVA_GRAN_LATN), ('\u{2e17}', '\u{2e17}', script_extensions::COPT_LATN),
+ ('\u{2e30}', '\u{2e30}', script_extensions::AVST_ORKH), ('\u{2e31}', '\u{2e31}',
+ script_extensions::AVST_CARI_GEOR_HUNG_KTHI_LYDI_SAMR), ('\u{2e3c}', '\u{2e3c}',
+ script_extensions::DUPL), ('\u{2e41}', '\u{2e41}', script_extensions::ADLM_ARAB_HUNG),
+ ('\u{2e43}', '\u{2e43}', script_extensions::CYRL_GLAG), ('\u{2ff0}', '\u{2fff}',
+ script_extensions::HANI_TANG), ('\u{3001}', '\u{3001}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_YIII), ('\u{3002}', '\u{3002}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_PHAG_YIII), ('\u{3003}', '\u{3003}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{3006}', '\u{3006}',
+ script_extensions::HANI), ('\u{3008}', '\u{3008}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_TIBT_YIII), ('\u{3009}', '\u{3009}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_MONG_TIBT_YIII), ('\u{300a}', '\u{300a}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_LISU_MONG_TIBT_YIII), ('\u{300b}', '\u{300b}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_LISU_MONG_TIBT_YIII), ('\u{300c}', '\u{300c}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{300d}', '\u{300d}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{300e}', '\u{300e}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{300f}', '\u{300f}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3010}', '\u{3010}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3011}', '\u{3011}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3013}', '\u{3013}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{3014}', '\u{3014}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3015}', '\u{3015}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3016}', '\u{3016}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3017}', '\u{3017}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3018}', '\u{3018}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{3019}', '\u{3019}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{301a}', '\u{301a}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{301b}', '\u{301b}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{301c}', '\u{301c}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{301d}', '\u{301d}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{301e}', '\u{301f}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{302a}', '\u{302d}',
+ script_extensions::BOPO_HANI), ('\u{3030}', '\u{3030}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{3031}', '\u{3035}',
+ script_extensions::HIRA_KANA), ('\u{3037}', '\u{3037}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{303c}', '\u{303c}',
+ script_extensions::HANI_HIRA_KANA), ('\u{303d}', '\u{303d}',
+ script_extensions::HANI_HIRA_KANA), ('\u{303e}', '\u{303f}', script_extensions::HANI),
+ ('\u{3099}', '\u{309a}', script_extensions::HIRA_KANA), ('\u{309b}', '\u{309c}',
+ script_extensions::HIRA_KANA), ('\u{30a0}', '\u{30a0}', script_extensions::HIRA_KANA),
+ ('\u{30fb}', '\u{30fb}', script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{30fc}',
+ '\u{30fc}', script_extensions::HIRA_KANA), ('\u{3190}', '\u{3191}',
+ script_extensions::HANI), ('\u{3192}', '\u{3195}', script_extensions::HANI), ('\u{3196}',
+ '\u{319f}', script_extensions::HANI), ('\u{31c0}', '\u{31e5}', script_extensions::HANI),
+ ('\u{31ef}', '\u{31ef}', script_extensions::HANI_TANG), ('\u{3220}', '\u{3229}',
+ script_extensions::HANI), ('\u{322a}', '\u{3247}', script_extensions::HANI), ('\u{3280}',
+ '\u{3289}', script_extensions::HANI), ('\u{328a}', '\u{32b0}', script_extensions::HANI),
+ ('\u{32c0}', '\u{32cb}', script_extensions::HANI), ('\u{32ff}', '\u{32ff}',
+ script_extensions::HANI), ('\u{3358}', '\u{3370}', script_extensions::HANI), ('\u{337b}',
+ '\u{337f}', script_extensions::HANI), ('\u{33e0}', '\u{33fe}', script_extensions::HANI),
+ ('\u{a66f}', '\u{a66f}', script_extensions::CYRL_GLAG), ('\u{a700}', '\u{a707}',
+ script_extensions::HANI_LATN), ('\u{a830}', '\u{a832}',
+ script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MLYM_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG),
+ ('\u{a833}', '\u{a835}',
+ script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MODI_NAND_SHRD_SIND_TAKR_TIRH_TUTG),
+ ('\u{a836}', '\u{a837}',
+ script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH), ('\u{a838}',
+ '\u{a838}', script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SHRD_SIND_TAKR_TIRH),
+ ('\u{a839}', '\u{a839}',
+ script_extensions::DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH), ('\u{a8f1}',
+ '\u{a8f1}', script_extensions::BENG_DEVA_TUTG), ('\u{a8f3}', '\u{a8f3}',
+ script_extensions::DEVA_TAML), ('\u{a92e}', '\u{a92e}', script_extensions::KALI_LATN_MYMR),
+ ('\u{a9cf}', '\u{a9cf}', script_extensions::BUGI_JAVA), ('\u{fd3e}', '\u{fd3e}',
+ script_extensions::ARAB_NKOO), ('\u{fd3f}', '\u{fd3f}', script_extensions::ARAB_NKOO),
+ ('\u{fdf2}', '\u{fdf2}', script_extensions::ARAB_THAA), ('\u{fdfd}', '\u{fdfd}',
+ script_extensions::ARAB_THAA), ('\u{fe45}', '\u{fe46}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA), ('\u{ff61}', '\u{ff61}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff62}', '\u{ff62}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff63}', '\u{ff63}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff64}', '\u{ff65}',
+ script_extensions::BOPO_HANG_HANI_HIRA_KANA_YIII), ('\u{ff70}', '\u{ff70}',
+ script_extensions::HIRA_KANA), ('\u{ff9e}', '\u{ff9f}', script_extensions::HIRA_KANA),
+ ('\u{10100}', '\u{10101}', script_extensions::CPMN_CPRT_LINB), ('\u{10102}', '\u{10102}',
+ script_extensions::CPRT_LINB), ('\u{10107}', '\u{10133}',
+ script_extensions::CPRT_LINA_LINB), ('\u{10137}', '\u{1013f}',
+ script_extensions::CPRT_LINB), ('\u{102e0}', '\u{102e0}', script_extensions::ARAB_COPT),
+ ('\u{102e1}', '\u{102fb}', script_extensions::ARAB_COPT), ('\u{10af2}', '\u{10af2}',
+ script_extensions::MANI_OUGR), ('\u{11301}', '\u{11301}', script_extensions::GRAN_TAML),
+ ('\u{11303}', '\u{11303}', script_extensions::GRAN_TAML), ('\u{1133b}', '\u{1133c}',
+ script_extensions::GRAN_TAML), ('\u{11fd0}', '\u{11fd1}', script_extensions::GRAN_TAML),
+ ('\u{11fd3}', '\u{11fd3}', script_extensions::GRAN_TAML), ('\u{1bca0}', '\u{1bca3}',
+ script_extensions::DUPL), ('\u{1d360}', '\u{1d371}', script_extensions::HANI), ('\u{1f250}',
+ '\u{1f251}', script_extensions::HANI)
+ ];
+
+
+}