summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Mak <tonymak@google.com>2019-04-30 09:34:45 +0100
committerTony Mak <tonymak@google.com>2019-05-01 00:13:50 +0100
commit81e52426fcf9d9a38c47990ce37fa480355e333a (patch)
tree3802c7dc711655357914bdd1c4ca96d08b70d5bc
parent83d2de6f94ca6def078378afa35bd13fc6acbf91 (diff)
downloadlibtextclassifier-81e52426fcf9d9a38c47990ce37fa480355e333a.tar.gz
Import libtextclassifier
1. Sort actions from the same annotation together 2. Fix an issue that all dictionary words are linkified 3. Drop v608 annotator images BUG: 128413141 BUG: 131663217 BUG: 131297499 Test: atest frameworks/base/core/tests/coretests/src/android/view/textclassifier/ Change-Id: I553a146a6f7b995db6a85f4b435643daf69c16e1
-rw-r--r--actions/actions-suggestions.cc35
-rw-r--r--actions/actions-suggestions.h25
-rwxr-xr-xactions/actions_model.fbs3
-rw-r--r--actions/ranker.cc176
-rw-r--r--actions/ranker_test.cc81
-rw-r--r--actions/test_data/actions_suggestions_test.default.modelbin54628 -> 117344 bytes
-rw-r--r--actions/test_data/actions_suggestions_test.modelbin3285436 -> 3348156 bytes
-rw-r--r--annotator/annotator.cc39
-rwxr-xr-xlang_id/script/approx-script-data.cc1582
-rw-r--r--models/actions_suggestions.en.modelbin3285436 -> 3348156 bytes
-rw-r--r--models/actions_suggestions.universal.modelbin54628 -> 117344 bytes
-rw-r--r--models/textclassifier.ar.modelbin543832 -> 548400 bytes
-rw-r--r--models/textclassifier.en.modelbin553888 -> 547656 bytes
-rw-r--r--models/textclassifier.es.modelbin543056 -> 547608 bytes
-rw-r--r--models/textclassifier.fr.modelbin543392 -> 547944 bytes
-rw-r--r--models/textclassifier.it.modelbin543072 -> 547632 bytes
-rw-r--r--models/textclassifier.ja.modelbin477432 -> 395768 bytes
-rw-r--r--models/textclassifier.ko.modelbin543544 -> 548112 bytes
-rw-r--r--models/textclassifier.nl.modelbin543008 -> 547560 bytes
-rw-r--r--models/textclassifier.pl.modelbin543000 -> 547560 bytes
-rw-r--r--models/textclassifier.pt.modelbin543024 -> 547584 bytes
-rw-r--r--models/textclassifier.ru.modelbin543992 -> 548568 bytes
-rw-r--r--models/textclassifier.th.modelbin477624 -> 481960 bytes
-rw-r--r--models/textclassifier.tr.modelbin542928 -> 547480 bytes
-rw-r--r--models/textclassifier.universal.modelbin39964 -> 48768 bytes
-rw-r--r--models/textclassifier.zh-Hant.modelbin478112 -> 482440 bytes
-rw-r--r--models/textclassifier.zh.modelbin477224 -> 481552 bytes
27 files changed, 1111 insertions, 830 deletions
diff --git a/actions/actions-suggestions.cc b/actions/actions-suggestions.cc
index af32317..29a4424 100644
--- a/actions/actions-suggestions.cc
+++ b/actions/actions-suggestions.cc
@@ -156,13 +156,31 @@ std::unique_ptr<ActionsSuggestions> ActionsSuggestions::FromScopedMmap(
std::unique_ptr<ActionsSuggestions> ActionsSuggestions::FromFileDescriptor(
const int fd, const int offset, const int size, const UniLib* unilib,
const std::string& triggering_preconditions_overlay) {
- std::unique_ptr<libtextclassifier3::ScopedMmap> mmap(
- new libtextclassifier3::ScopedMmap(fd, offset, size));
+ std::unique_ptr<libtextclassifier3::ScopedMmap> mmap;
+ if (offset >= 0 && size >= 0) {
+ mmap.reset(new libtextclassifier3::ScopedMmap(fd, offset, size));
+ } else {
+ mmap.reset(new libtextclassifier3::ScopedMmap(fd));
+ }
return FromScopedMmap(std::move(mmap), unilib,
triggering_preconditions_overlay);
}
std::unique_ptr<ActionsSuggestions> ActionsSuggestions::FromFileDescriptor(
+ const int fd, const int offset, const int size,
+ std::unique_ptr<UniLib> unilib,
+ const std::string& triggering_preconditions_overlay) {
+ std::unique_ptr<libtextclassifier3::ScopedMmap> mmap;
+ if (offset >= 0 && size >= 0) {
+ mmap.reset(new libtextclassifier3::ScopedMmap(fd, offset, size));
+ } else {
+ mmap.reset(new libtextclassifier3::ScopedMmap(fd));
+ }
+ return FromScopedMmap(std::move(mmap), std::move(unilib),
+ triggering_preconditions_overlay);
+}
+
+std::unique_ptr<ActionsSuggestions> ActionsSuggestions::FromFileDescriptor(
const int fd, const UniLib* unilib,
const std::string& triggering_preconditions_overlay) {
std::unique_ptr<libtextclassifier3::ScopedMmap> mmap(
@@ -229,7 +247,7 @@ bool ActionsSuggestions::ValidateAndInitialize() {
return false;
}
- if (model_->tflite_model_spec()) {
+ if (model_->tflite_model_spec() != nullptr) {
model_executor_ = TfLiteModelExecutor::FromBuffer(
model_->tflite_model_spec()->tflite_model());
if (!model_executor_) {
@@ -238,13 +256,21 @@ bool ActionsSuggestions::ValidateAndInitialize() {
}
}
+ if (model_->annotation_actions_spec() != nullptr &&
+ model_->annotation_actions_spec()->annotation_mapping() != nullptr) {
+ for (const AnnotationActionsSpec_::AnnotationMapping* mapping :
+ *model_->annotation_actions_spec()->annotation_mapping()) {
+ annotation_entity_types_.insert(mapping->annotation_collection()->str());
+ }
+ }
+
std::unique_ptr<ZlibDecompressor> decompressor = ZlibDecompressor::Instance();
if (!InitializeRules(decompressor.get())) {
TC3_LOG(ERROR) << "Could not initialize rules.";
return false;
}
- if (model_->actions_entity_data_schema()) {
+ if (model_->actions_entity_data_schema() != nullptr) {
entity_data_schema_ = LoadAndVerifyFlatbuffer<reflection::Schema>(
model_->actions_entity_data_schema()->Data(),
model_->actions_entity_data_schema()->size());
@@ -992,6 +1018,7 @@ AnnotationOptions ActionsSuggestions::AnnotationOptionsForMessage(
model_->annotation_actions_spec()->annotation_usecase();
options.is_serialized_entity_data_enabled =
model_->annotation_actions_spec()->is_serialized_entity_data_enabled();
+ options.entity_types = annotation_entity_types_;
return options;
}
diff --git a/actions/actions-suggestions.h b/actions/actions-suggestions.h
index 7e89265..2dde133 100644
--- a/actions/actions-suggestions.h
+++ b/actions/actions-suggestions.h
@@ -20,6 +20,7 @@
#include <map>
#include <memory>
#include <string>
+#include <unordered_set>
#include <vector>
#include "actions/actions_model_generated.h"
@@ -48,31 +49,50 @@ struct ActionSuggestionOptions {
// Class for predicting actions following a conversation.
class ActionsSuggestions {
public:
+ // Creates ActionsSuggestions from given data buffer with model.
static std::unique_ptr<ActionsSuggestions> FromUnownedBuffer(
const uint8_t* buffer, const int size, const UniLib* unilib = nullptr,
const std::string& triggering_preconditions_overlay = "");
- // Takes ownership of the mmap.
+
+ // Creates ActionsSuggestions from model in the ScopedMmap object and takes
+ // ownership of it.
static std::unique_ptr<ActionsSuggestions> FromScopedMmap(
std::unique_ptr<libtextclassifier3::ScopedMmap> mmap,
const UniLib* unilib = nullptr,
const std::string& triggering_preconditions_overlay = "");
+ // Same as above, but also takes ownership of the unilib.
static std::unique_ptr<ActionsSuggestions> FromScopedMmap(
std::unique_ptr<libtextclassifier3::ScopedMmap> mmap,
std::unique_ptr<UniLib> unilib,
const std::string& triggering_preconditions_overlay);
+
+ // Creates ActionsSuggestions from model given as a file descriptor, offset
+ // and size in it. If offset and size are less than 0, will ignore them and
+ // will just use the fd.
static std::unique_ptr<ActionsSuggestions> FromFileDescriptor(
const int fd, const int offset, const int size,
const UniLib* unilib = nullptr,
const std::string& triggering_preconditions_overlay = "");
+ // Same as above, but also takes ownership of the unilib.
+ static std::unique_ptr<ActionsSuggestions> FromFileDescriptor(
+ const int fd, const int offset, const int size,
+ std::unique_ptr<UniLib> unilib,
+ const std::string& triggering_preconditions_overlay = "");
+
+ // Creates ActionsSuggestions from model given as a file descriptor.
static std::unique_ptr<ActionsSuggestions> FromFileDescriptor(
const int fd, const UniLib* unilib = nullptr,
const std::string& triggering_preconditions_overlay = "");
+ // Same as above, but also takes ownership of the unilib.
static std::unique_ptr<ActionsSuggestions> FromFileDescriptor(
const int fd, std::unique_ptr<UniLib> unilib,
const std::string& triggering_preconditions_overlay);
+
+ // Creates ActionsSuggestions from model given as a POSIX path.
static std::unique_ptr<ActionsSuggestions> FromPath(
const std::string& path, const UniLib* unilib = nullptr,
const std::string& triggering_preconditions_overlay = "");
+ // Same as above, but also takes ownership of unilib.
static std::unique_ptr<ActionsSuggestions> FromPath(
const std::string& path, std::unique_ptr<UniLib> unilib,
const std::string& triggering_preconditions_overlay);
@@ -254,6 +274,9 @@ class ActionsSuggestions {
// Locales supported by the model.
std::vector<Locale> locales_;
+ // Annotation entities used by the model.
+ std::unordered_set<std::string> annotation_entity_types_;
+
// Builder for creating extra data.
const reflection::Schema* entity_data_schema_;
std::unique_ptr<ReflectiveFlatbufferBuilder> entity_data_builder_;
diff --git a/actions/actions_model.fbs b/actions/actions_model.fbs
index 9c994a6..42c7d88 100755
--- a/actions/actions_model.fbs
+++ b/actions/actions_model.fbs
@@ -359,6 +359,9 @@ table RankingOptions {
// If true, suppresses smart replies if other smart actions are suggested.
suppress_smart_replies_with_actions:bool = false;
+
+ // If true, keep actions from the same entities together for ranking.
+ group_by_annotations:bool = true;
}
// Entity data to set from capturing groups.
diff --git a/actions/ranker.cc b/actions/ranker.cc
index a402ad0..5a03da5 100644
--- a/actions/ranker.cc
+++ b/actions/ranker.cc
@@ -16,7 +16,9 @@
#include "actions/ranker.h"
+#include <functional>
#include <set>
+#include <vector>
#include "actions/lua-ranker.h"
#include "actions/zlib-utils.h"
@@ -27,9 +29,46 @@
namespace libtextclassifier3 {
namespace {
-// Checks whether two spans are the same.
+void SortByScoreAndType(std::vector<ActionSuggestion>* actions) {
+ std::sort(actions->begin(), actions->end(),
+ [](const ActionSuggestion& a, const ActionSuggestion& b) {
+ return a.score > b.score ||
+ (a.score >= b.score && a.type < b.type);
+ });
+}
+
+template <typename T>
+int Compare(const T& left, const T& right) {
+ if (left < right) {
+ return -1;
+ }
+ if (left > right) {
+ return 1;
+ }
+ return 0;
+}
+
+template <>
+int Compare(const std::string& left, const std::string& right) {
+ return left.compare(right);
+}
+
+template <>
+int Compare(const MessageTextSpan& span, const MessageTextSpan& other) {
+ if (const int value = Compare(span.message_index, other.message_index)) {
+ return value;
+ }
+ if (const int value = Compare(span.span.first, other.span.first)) {
+ return value;
+ }
+ if (const int value = Compare(span.span.second, other.span.second)) {
+ return value;
+ }
+ return 0;
+}
+
bool IsSameSpan(const MessageTextSpan& span, const MessageTextSpan& other) {
- return span.message_index == other.message_index && span.span == other.span;
+ return Compare(span, other) == 0;
}
bool TextSpansIntersect(const MessageTextSpan& span,
@@ -38,32 +77,69 @@ bool TextSpansIntersect(const MessageTextSpan& span,
SpansOverlap(span.span, other.span);
}
+template <>
+int Compare(const ActionSuggestionAnnotation& annotation,
+ const ActionSuggestionAnnotation& other) {
+ if (const int value = Compare(annotation.span, other.span)) {
+ return value;
+ }
+ if (const int value = Compare(annotation.name, other.name)) {
+ return value;
+ }
+ if (const int value =
+ Compare(annotation.entity.collection, other.entity.collection)) {
+ return value;
+ }
+ return 0;
+}
+
// Checks whether two annotations can be considered equivalent.
bool IsEquivalentActionAnnotation(const ActionSuggestionAnnotation& annotation,
const ActionSuggestionAnnotation& other) {
- return IsSameSpan(annotation.span, other.span) &&
- annotation.name == other.name &&
- annotation.entity.collection == other.entity.collection;
+ return Compare(annotation, other) == 0;
}
-// Checks whether two action suggestions can be considered equivalent.
-bool IsEquivalentActionSuggestion(const ActionSuggestion& action,
- const ActionSuggestion& other) {
- if (action.type != other.type ||
- action.response_text != other.response_text ||
- action.annotations.size() != other.annotations.size() ||
- action.serialized_entity_data != other.serialized_entity_data) {
- return false;
+// Compares actions based on annotations.
+int CompareAnnotationsOnly(const ActionSuggestion& action,
+ const ActionSuggestion& other) {
+ if (const int value =
+ Compare(action.annotations.size(), other.annotations.size())) {
+ return value;
}
-
- // Check whether annotations are the same.
for (int i = 0; i < action.annotations.size(); i++) {
- if (!IsEquivalentActionAnnotation(action.annotations[i],
- other.annotations[i])) {
- return false;
+ if (const int value =
+ Compare(action.annotations[i], other.annotations[i])) {
+ return value;
}
}
- return true;
+ return 0;
+}
+
+// Checks whether two actions have the same annotations.
+bool HaveEquivalentAnnotations(const ActionSuggestion& action,
+ const ActionSuggestion& other) {
+ return CompareAnnotationsOnly(action, other) == 0;
+}
+
+template <>
+int Compare(const ActionSuggestion& action, const ActionSuggestion& other) {
+ if (const int value = Compare(action.type, other.type)) {
+ return value;
+ }
+ if (const int value = Compare(action.response_text, other.response_text)) {
+ return value;
+ }
+ if (const int value = Compare(action.serialized_entity_data,
+ other.serialized_entity_data)) {
+ return value;
+ }
+ return CompareAnnotationsOnly(action, other);
+}
+
+// Checks whether two action suggestions can be considered equivalent.
+bool IsEquivalentActionSuggestion(const ActionSuggestion& action,
+ const ActionSuggestion& other) {
+ return Compare(action, other) == 0;
}
// Checks whether any action is equivalent to the given one.
@@ -193,12 +269,6 @@ bool ActionsSuggestionsRanker::RankActions(
}
}
- // Order suggestions by score.
- std::sort(response->actions.begin(), response->actions.end(),
- [](const ActionSuggestion& a, const ActionSuggestion& b) {
- return a.score > b.score;
- });
-
// Suppress smart replies if actions are present.
if (options_->suppress_smart_replies_with_actions()) {
std::vector<ActionSuggestion> non_smart_reply_actions;
@@ -210,6 +280,62 @@ bool ActionsSuggestionsRanker::RankActions(
response->actions = std::move(non_smart_reply_actions);
}
+ // Group by annotation if specified.
+ if (options_->group_by_annotations()) {
+ auto group_id = std::map<
+ ActionSuggestion, int,
+ std::function<bool(const ActionSuggestion&, const ActionSuggestion&)>>{
+ [](const ActionSuggestion& action, const ActionSuggestion& other) {
+ return (CompareAnnotationsOnly(action, other) < 0);
+ }};
+ typedef std::vector<ActionSuggestion> ActionSuggestionGroup;
+ std::vector<ActionSuggestionGroup> groups;
+
+ // Group actions by the annotation set they are based of.
+ for (const ActionSuggestion& action : response->actions) {
+ // Treat actions with no annotations idependently.
+ if (action.annotations.empty()) {
+ groups.emplace_back(1, action);
+ continue;
+ }
+
+ auto it = group_id.find(action);
+ if (it != group_id.end()) {
+ groups[it->second].push_back(action);
+ } else {
+ group_id[action] = groups.size();
+ groups.emplace_back(1, action);
+ }
+ }
+
+ // Sort within each group by score.
+ for (std::vector<ActionSuggestion>& group : groups) {
+ SortByScoreAndType(&group);
+ }
+
+ // Sort groups by maximum score.
+ std::sort(groups.begin(), groups.end(),
+ [](const std::vector<ActionSuggestion>& a,
+ const std::vector<ActionSuggestion>& b) {
+ return a.begin()->score > b.begin()->score ||
+ (a.begin()->score >= b.begin()->score &&
+ a.begin()->type < b.begin()->type);
+ });
+
+ // Flatten result.
+ const size_t num_actions = response->actions.size();
+ response->actions.clear();
+ response->actions.reserve(num_actions);
+ for (const std::vector<ActionSuggestion>& actions : groups) {
+ response->actions.insert(response->actions.end(), actions.begin(),
+ actions.end());
+ }
+
+ } else {
+ // Order suggestions independently by score.
+ SortByScoreAndType(&response->actions);
+ }
+
// Run lua ranking snippet, if provided.
if (!lua_bytecode_.empty()) {
auto lua_ranker = ActionsSuggestionsLuaRanker::Create(
diff --git a/actions/ranker_test.cc b/actions/ranker_test.cc
index 08d66a5..b52cf45 100644
--- a/actions/ranker_test.cc
+++ b/actions/ranker_test.cc
@@ -297,5 +297,86 @@ TEST(RankingTest, SuppressSmartRepliesWithAction) {
testing::ElementsAreArray({IsAction("call_phone", "", 1.0)}));
}
+TEST(RankingTest, GroupsActionsByAnnotations) {
+ const Conversation conversation = {{{/*user_id=*/1, "should i call 911"}}};
+ ActionsSuggestionsResponse response;
+ {
+ ActionSuggestionAnnotation annotation;
+ annotation.span = {/*message_index=*/0, /*span=*/{5, 8},
+ /*text=*/"911"};
+ annotation.entity = ClassificationResult("phone", 1.0);
+ response.actions.push_back({/*response_text=*/"",
+ /*type=*/"call_phone",
+ /*score=*/1.0,
+ /*priority_score=*/1.0,
+ /*annotations=*/{annotation}});
+ response.actions.push_back({/*response_text=*/"",
+ /*type=*/"add_contact",
+ /*score=*/0.0,
+ /*priority_score=*/0.0,
+ /*annotations=*/{annotation}});
+ }
+ response.actions.push_back({/*response_text=*/"How are you?",
+ /*type=*/"text_reply",
+ /*score=*/0.5});
+ RankingOptionsT options;
+ options.group_by_annotations = true;
+ flatbuffers::FlatBufferBuilder builder;
+ builder.Finish(RankingOptions::Pack(builder, &options));
+ auto ranker = ActionsSuggestionsRanker::CreateActionsSuggestionsRanker(
+ flatbuffers::GetRoot<RankingOptions>(builder.GetBufferPointer()),
+ /*decompressor=*/nullptr, /*smart_reply_action_type=*/"text_reply");
+
+ ranker->RankActions(conversation, &response);
+
+ // The text reply should be last, even though it has a higher score than the
+ // `add_contact` action.
+ EXPECT_THAT(
+ response.actions,
+ testing::ElementsAreArray({IsAction("call_phone", "", 1.0),
+ IsAction("add_contact", "", 0.0),
+ IsAction("text_reply", "How are you?", 0.5)}));
+}
+
+TEST(RankingTest, SortsActionsByScore) {
+ const Conversation conversation = {{{/*user_id=*/1, "should i call 911"}}};
+ ActionsSuggestionsResponse response;
+ {
+ ActionSuggestionAnnotation annotation;
+ annotation.span = {/*message_index=*/0, /*span=*/{5, 8},
+ /*text=*/"911"};
+ annotation.entity = ClassificationResult("phone", 1.0);
+ response.actions.push_back({/*response_text=*/"",
+ /*type=*/"call_phone",
+ /*score=*/1.0,
+ /*priority_score=*/1.0,
+ /*annotations=*/{annotation}});
+ response.actions.push_back({/*response_text=*/"",
+ /*type=*/"add_contact",
+ /*score=*/0.0,
+ /*priority_score=*/0.0,
+ /*annotations=*/{annotation}});
+ }
+ response.actions.push_back({/*response_text=*/"How are you?",
+ /*type=*/"text_reply",
+ /*score=*/0.5});
+ RankingOptionsT options;
+ // Don't group by annotation.
+ options.group_by_annotations = false;
+ flatbuffers::FlatBufferBuilder builder;
+ builder.Finish(RankingOptions::Pack(builder, &options));
+ auto ranker = ActionsSuggestionsRanker::CreateActionsSuggestionsRanker(
+ flatbuffers::GetRoot<RankingOptions>(builder.GetBufferPointer()),
+ /*decompressor=*/nullptr, /*smart_reply_action_type=*/"text_reply");
+
+ ranker->RankActions(conversation, &response);
+
+ EXPECT_THAT(
+ response.actions,
+ testing::ElementsAreArray({IsAction("call_phone", "", 1.0),
+ IsAction("text_reply", "How are you?", 0.5),
+ IsAction("add_contact", "", 0.0)}));
+}
+
} // namespace
} // namespace libtextclassifier3
diff --git a/actions/test_data/actions_suggestions_test.default.model b/actions/test_data/actions_suggestions_test.default.model
index 1fd08e8..60f10e6 100644
--- a/actions/test_data/actions_suggestions_test.default.model
+++ b/actions/test_data/actions_suggestions_test.default.model
Binary files differ
diff --git a/actions/test_data/actions_suggestions_test.model b/actions/test_data/actions_suggestions_test.model
index 976ab88..6cec2b7 100644
--- a/actions/test_data/actions_suggestions_test.model
+++ b/actions/test_data/actions_suggestions_test.model
Binary files differ
diff --git a/annotator/annotator.cc b/annotator/annotator.cc
index 0bbc057..53c8d8a 100644
--- a/annotator/annotator.cc
+++ b/annotator/annotator.cc
@@ -1317,44 +1317,42 @@ bool Annotator::ModelClassifyText(
const std::vector<float> scores =
ComputeSoftmax(logits.data(), logits.dim(1));
- classification_results->resize(scores.size());
- for (int i = 0; i < scores.size(); i++) {
- (*classification_results)[i] = {
- classification_feature_processor_->LabelToCollection(i), scores[i]};
+ if (scores.empty()) {
+ *classification_results = {{Collections::Other(), 1.0}};
+ return true;
}
- SortClassificationResults(classification_results);
- // Phone class sanity check.
- if (!classification_results->empty() &&
- classification_results->begin()->collection == Collections::Phone()) {
+ const int best_score_index =
+ std::max_element(scores.begin(), scores.end()) - scores.begin();
+ const std::string top_collection =
+ classification_feature_processor_->LabelToCollection(best_score_index);
+
+ // Sanity checks.
+ if (top_collection == Collections::Phone()) {
const int digit_count = CountDigits(context, selection_indices);
if (digit_count <
model_->classification_options()->phone_min_num_digits() ||
digit_count >
model_->classification_options()->phone_max_num_digits()) {
*classification_results = {{Collections::Other(), 1.0}};
+ return true;
}
- }
-
- // Address class sanity check.
- if (!classification_results->empty() &&
- classification_results->begin()->collection == Collections::Address()) {
+ } else if (top_collection == Collections::Address()) {
if (selection_num_tokens <
model_->classification_options()->address_min_num_tokens()) {
*classification_results = {{Collections::Other(), 1.0}};
+ return true;
}
- }
-
- // Dictionary class sanity check.
- if (!classification_results->empty() &&
- classification_results->begin()->collection ==
- Collections::Dictionary()) {
+ } else if (top_collection == Collections::Dictionary()) {
if (!Locale::IsAnyLocaleSupported(detected_text_language_tags,
dictionary_locales_,
/*default_value=*/false)) {
*classification_results = {{Collections::Other(), 1.0}};
+ return true;
}
}
+
+ *classification_results = {{top_collection, 1.0, scores[best_score_index]}};
return true;
}
@@ -1627,9 +1625,8 @@ std::vector<ClassificationResult> Annotator::ClassifyText(
});
if (results.empty()) {
- TC3_LOG(WARNING) << "No classification found.";
+ results = {{Collections::Other(), 1.0}};
}
-
return results;
}
diff --git a/lang_id/script/approx-script-data.cc b/lang_id/script/approx-script-data.cc
index 1ac5cb6..e11d7b7 100755
--- a/lang_id/script/approx-script-data.cc
+++ b/lang_id/script/approx-script-data.cc
@@ -27,7 +27,7 @@ namespace libtextclassifier3 {
namespace mobile {
namespace approx_script_internal {
-const int kNumRanges = 359;
+const int kNumRanges = 367;
const uint32 kRangeFirst[] = {
65, // Range #0: [65, 90, Latin]
@@ -72,7 +72,7 @@ const uint32 kRangeFirst[] = {
2259, // Range #39: [2259, 2273, Arabic]
2275, // Range #40: [2275, 2303, Arabic]
2304, // Range #41: [2304, 2384, Devanagari]
- 2387, // Range #42: [2387, 2403, Devanagari]
+ 2389, // Range #42: [2389, 2403, Devanagari]
2406, // Range #43: [2406, 2431, Devanagari]
2432, // Range #44: [2432, 2510, Bengali]
2519, // Range #45: [2519, 2558, Bengali]
@@ -90,7 +90,7 @@ const uint32 kRangeFirst[] = {
3072, // Range #57: [3072, 3149, Telugu]
3157, // Range #58: [3157, 3162, Telugu]
3168, // Range #59: [3168, 3183, Telugu]
- 3192, // Range #60: [3192, 3199, Telugu]
+ 3191, // Range #60: [3191, 3199, Telugu]
3200, // Range #61: [3200, 3277, Kannada]
3285, // Range #62: [3285, 3286, Kannada]
3294, // Range #63: [3294, 3314, Kannada]
@@ -99,103 +99,103 @@ const uint32 kRangeFirst[] = {
3558, // Range #66: [3558, 3572, Sinhala]
3585, // Range #67: [3585, 3642, Thai]
3648, // Range #68: [3648, 3675, Thai]
- 3713, // Range #69: [3713, 3725, Lao]
- 3732, // Range #70: [3732, 3807, Lao]
- 3840, // Range #71: [3840, 4052, Tibetan]
- 4057, // Range #72: [4057, 4058, Tibetan]
- 4096, // Range #73: [4096, 4255, Myanmar]
- 4256, // Range #74: [4256, 4295, Georgian]
- 4301, // Range #75: [4301, 4346, Georgian]
- 4348, // Range #76: [4348, 4351, Georgian]
- 4352, // Range #77: [4352, 4607, Hangul]
- 4608, // Range #78: [4608, 5017, Ethiopic]
- 5024, // Range #79: [5024, 5117, Cherokee]
- 5120, // Range #80: [5120, 5759, Canadian_Aboriginal]
- 5760, // Range #81: [5760, 5788, Ogham]
- 5792, // Range #82: [5792, 5866, Runic]
- 5870, // Range #83: [5870, 5880, Runic]
- 5888, // Range #84: [5888, 5908, Tagalog]
- 5920, // Range #85: [5920, 5940, Hanunoo]
- 5952, // Range #86: [5952, 5971, Buhid]
- 5984, // Range #87: [5984, 6003, Tagbanwa]
- 6016, // Range #88: [6016, 6121, Khmer]
- 6128, // Range #89: [6128, 6137, Khmer]
- 6144, // Range #90: [6144, 6145, Mongolian]
- 6148, // Range #91: [6148, 6148, Mongolian]
- 6150, // Range #92: [6150, 6169, Mongolian]
- 6176, // Range #93: [6176, 6264, Mongolian]
- 6272, // Range #94: [6272, 6314, Mongolian]
- 6320, // Range #95: [6320, 6389, Canadian_Aboriginal]
- 6400, // Range #96: [6400, 6479, Limbu]
- 6480, // Range #97: [6480, 6516, Tai_Le]
- 6528, // Range #98: [6528, 6601, New_Tai_Lue]
- 6608, // Range #99: [6608, 6623, New_Tai_Lue]
- 6624, // Range #100: [6624, 6655, Khmer]
- 6656, // Range #101: [6656, 6687, Buginese]
- 6688, // Range #102: [6688, 6793, Tai_Tham]
- 6800, // Range #103: [6800, 6809, Tai_Tham]
- 6816, // Range #104: [6816, 6829, Tai_Tham]
- 6912, // Range #105: [6912, 7036, Balinese]
- 7040, // Range #106: [7040, 7103, Sundanese]
- 7104, // Range #107: [7104, 7155, Batak]
- 7164, // Range #108: [7164, 7167, Batak]
- 7168, // Range #109: [7168, 7247, Lepcha]
- 7248, // Range #110: [7248, 7295, Ol_Chiki]
- 7296, // Range #111: [7296, 7304, Cyrillic]
- 7312, // Range #112: [7312, 7359, Georgian]
- 7360, // Range #113: [7360, 7367, Sundanese]
- 7424, // Range #114: [7424, 7461, Latin]
- 7462, // Range #115: [7462, 7466, Greek]
- 7467, // Range #116: [7467, 7467, Cyrillic]
- 7468, // Range #117: [7468, 7516, Latin]
- 7517, // Range #118: [7517, 7521, Greek]
- 7522, // Range #119: [7522, 7525, Latin]
- 7526, // Range #120: [7526, 7530, Greek]
- 7531, // Range #121: [7531, 7543, Latin]
- 7544, // Range #122: [7544, 7544, Cyrillic]
- 7545, // Range #123: [7545, 7614, Latin]
- 7615, // Range #124: [7615, 7615, Greek]
- 7680, // Range #125: [7680, 7935, Latin]
- 7936, // Range #126: [7936, 8190, Greek]
- 8305, // Range #127: [8305, 8305, Latin]
- 8319, // Range #128: [8319, 8319, Latin]
- 8336, // Range #129: [8336, 8348, Latin]
- 8486, // Range #130: [8486, 8486, Greek]
- 8490, // Range #131: [8490, 8491, Latin]
- 8498, // Range #132: [8498, 8498, Latin]
- 8526, // Range #133: [8526, 8526, Latin]
- 8544, // Range #134: [8544, 8584, Latin]
- 10240, // Range #135: [10240, 10495, Braille]
- 11264, // Range #136: [11264, 11358, Glagolitic]
- 11360, // Range #137: [11360, 11391, Latin]
- 11392, // Range #138: [11392, 11507, Coptic]
- 11513, // Range #139: [11513, 11519, Coptic]
- 11520, // Range #140: [11520, 11559, Georgian]
- 11565, // Range #141: [11565, 11565, Georgian]
- 11568, // Range #142: [11568, 11623, Tifinagh]
- 11631, // Range #143: [11631, 11632, Tifinagh]
- 11647, // Range #144: [11647, 11647, Tifinagh]
- 11648, // Range #145: [11648, 11670, Ethiopic]
- 11680, // Range #146: [11680, 11742, Ethiopic]
- 11744, // Range #147: [11744, 11775, Cyrillic]
- 11904, // Range #148: [11904, 12019, Han]
- 12032, // Range #149: [12032, 12245, Han]
- 12293, // Range #150: [12293, 12293, Han]
- 12295, // Range #151: [12295, 12295, Han]
- 12321, // Range #152: [12321, 12329, Han]
- 12334, // Range #153: [12334, 12335, Hangul]
- 12344, // Range #154: [12344, 12347, Han]
- 12353, // Range #155: [12353, 12438, Hiragana]
- 12445, // Range #156: [12445, 12447, Hiragana]
- 12449, // Range #157: [12449, 12538, Katakana]
- 12541, // Range #158: [12541, 12543, Katakana]
- 12549, // Range #159: [12549, 12591, Bopomofo]
- 12593, // Range #160: [12593, 12686, Hangul]
- 12704, // Range #161: [12704, 12730, Bopomofo]
- 12784, // Range #162: [12784, 12799, Katakana]
- 12800, // Range #163: [12800, 12830, Hangul]
- 12896, // Range #164: [12896, 12926, Hangul]
- 13008, // Range #165: [13008, 13143, Katakana]
+ 3713, // Range #69: [3713, 3807, Lao]
+ 3840, // Range #70: [3840, 4052, Tibetan]
+ 4057, // Range #71: [4057, 4058, Tibetan]
+ 4096, // Range #72: [4096, 4255, Myanmar]
+ 4256, // Range #73: [4256, 4295, Georgian]
+ 4301, // Range #74: [4301, 4346, Georgian]
+ 4348, // Range #75: [4348, 4351, Georgian]
+ 4352, // Range #76: [4352, 4607, Hangul]
+ 4608, // Range #77: [4608, 5017, Ethiopic]
+ 5024, // Range #78: [5024, 5117, Cherokee]
+ 5120, // Range #79: [5120, 5759, Canadian_Aboriginal]
+ 5760, // Range #80: [5760, 5788, Ogham]
+ 5792, // Range #81: [5792, 5866, Runic]
+ 5870, // Range #82: [5870, 5880, Runic]
+ 5888, // Range #83: [5888, 5908, Tagalog]
+ 5920, // Range #84: [5920, 5940, Hanunoo]
+ 5952, // Range #85: [5952, 5971, Buhid]
+ 5984, // Range #86: [5984, 6003, Tagbanwa]
+ 6016, // Range #87: [6016, 6121, Khmer]
+ 6128, // Range #88: [6128, 6137, Khmer]
+ 6144, // Range #89: [6144, 6145, Mongolian]
+ 6148, // Range #90: [6148, 6148, Mongolian]
+ 6150, // Range #91: [6150, 6169, Mongolian]
+ 6176, // Range #92: [6176, 6264, Mongolian]
+ 6272, // Range #93: [6272, 6314, Mongolian]
+ 6320, // Range #94: [6320, 6389, Canadian_Aboriginal]
+ 6400, // Range #95: [6400, 6479, Limbu]
+ 6480, // Range #96: [6480, 6516, Tai_Le]
+ 6528, // Range #97: [6528, 6601, New_Tai_Lue]
+ 6608, // Range #98: [6608, 6623, New_Tai_Lue]
+ 6624, // Range #99: [6624, 6655, Khmer]
+ 6656, // Range #100: [6656, 6687, Buginese]
+ 6688, // Range #101: [6688, 6793, Tai_Tham]
+ 6800, // Range #102: [6800, 6809, Tai_Tham]
+ 6816, // Range #103: [6816, 6829, Tai_Tham]
+ 6912, // Range #104: [6912, 7036, Balinese]
+ 7040, // Range #105: [7040, 7103, Sundanese]
+ 7104, // Range #106: [7104, 7155, Batak]
+ 7164, // Range #107: [7164, 7167, Batak]
+ 7168, // Range #108: [7168, 7247, Lepcha]
+ 7248, // Range #109: [7248, 7295, Ol_Chiki]
+ 7296, // Range #110: [7296, 7304, Cyrillic]
+ 7312, // Range #111: [7312, 7359, Georgian]
+ 7360, // Range #112: [7360, 7367, Sundanese]
+ 7424, // Range #113: [7424, 7461, Latin]
+ 7462, // Range #114: [7462, 7466, Greek]
+ 7467, // Range #115: [7467, 7467, Cyrillic]
+ 7468, // Range #116: [7468, 7516, Latin]
+ 7517, // Range #117: [7517, 7521, Greek]
+ 7522, // Range #118: [7522, 7525, Latin]
+ 7526, // Range #119: [7526, 7530, Greek]
+ 7531, // Range #120: [7531, 7543, Latin]
+ 7544, // Range #121: [7544, 7544, Cyrillic]
+ 7545, // Range #122: [7545, 7614, Latin]
+ 7615, // Range #123: [7615, 7615, Greek]
+ 7680, // Range #124: [7680, 7935, Latin]
+ 7936, // Range #125: [7936, 8190, Greek]
+ 8305, // Range #126: [8305, 8305, Latin]
+ 8319, // Range #127: [8319, 8319, Latin]
+ 8336, // Range #128: [8336, 8348, Latin]
+ 8486, // Range #129: [8486, 8486, Greek]
+ 8490, // Range #130: [8490, 8491, Latin]
+ 8498, // Range #131: [8498, 8498, Latin]
+ 8526, // Range #132: [8526, 8526, Latin]
+ 8544, // Range #133: [8544, 8584, Latin]
+ 10240, // Range #134: [10240, 10495, Braille]
+ 11264, // Range #135: [11264, 11358, Glagolitic]
+ 11360, // Range #136: [11360, 11391, Latin]
+ 11392, // Range #137: [11392, 11507, Coptic]
+ 11513, // Range #138: [11513, 11519, Coptic]
+ 11520, // Range #139: [11520, 11559, Georgian]
+ 11565, // Range #140: [11565, 11565, Georgian]
+ 11568, // Range #141: [11568, 11623, Tifinagh]
+ 11631, // Range #142: [11631, 11632, Tifinagh]
+ 11647, // Range #143: [11647, 11647, Tifinagh]
+ 11648, // Range #144: [11648, 11670, Ethiopic]
+ 11680, // Range #145: [11680, 11742, Ethiopic]
+ 11744, // Range #146: [11744, 11775, Cyrillic]
+ 11904, // Range #147: [11904, 12019, Han]
+ 12032, // Range #148: [12032, 12245, Han]
+ 12293, // Range #149: [12293, 12293, Han]
+ 12295, // Range #150: [12295, 12295, Han]
+ 12321, // Range #151: [12321, 12329, Han]
+ 12334, // Range #152: [12334, 12335, Hangul]
+ 12344, // Range #153: [12344, 12347, Han]
+ 12353, // Range #154: [12353, 12438, Hiragana]
+ 12445, // Range #155: [12445, 12447, Hiragana]
+ 12449, // Range #156: [12449, 12538, Katakana]
+ 12541, // Range #157: [12541, 12543, Katakana]
+ 12549, // Range #158: [12549, 12591, Bopomofo]
+ 12593, // Range #159: [12593, 12686, Hangul]
+ 12704, // Range #160: [12704, 12730, Bopomofo]
+ 12784, // Range #161: [12784, 12799, Katakana]
+ 12800, // Range #162: [12800, 12830, Hangul]
+ 12896, // Range #163: [12896, 12926, Hangul]
+ 13008, // Range #164: [13008, 13054, Katakana]
+ 13056, // Range #165: [13056, 13143, Katakana]
13312, // Range #166: [13312, 19893, Han]
19968, // Range #167: [19968, 40943, Han]
40960, // Range #168: [40960, 42182, Yi]
@@ -204,7 +204,7 @@ const uint32 kRangeFirst[] = {
42560, // Range #171: [42560, 42655, Cyrillic]
42656, // Range #172: [42656, 42743, Bamum]
42786, // Range #173: [42786, 42887, Latin]
- 42891, // Range #174: [42891, 42937, Latin]
+ 42891, // Range #174: [42891, 42950, Latin]
42999, // Range #175: [42999, 43007, Latin]
43008, // Range #176: [43008, 43051, Syloti_Nagri]
43072, // Range #177: [43072, 43127, Phags_Pa]
@@ -230,165 +230,173 @@ const uint32 kRangeFirst[] = {
43824, // Range #197: [43824, 43866, Latin]
43868, // Range #198: [43868, 43876, Latin]
43877, // Range #199: [43877, 43877, Greek]
- 43888, // Range #200: [43888, 43967, Cherokee]
- 43968, // Range #201: [43968, 44025, Meetei_Mayek]
- 44032, // Range #202: [44032, 55203, Hangul]
- 55216, // Range #203: [55216, 55291, Hangul]
- 63744, // Range #204: [63744, 64217, Han]
- 64256, // Range #205: [64256, 64262, Latin]
- 64275, // Range #206: [64275, 64279, Armenian]
- 64285, // Range #207: [64285, 64335, Hebrew]
- 64336, // Range #208: [64336, 64449, Arabic]
- 64467, // Range #209: [64467, 64829, Arabic]
- 64848, // Range #210: [64848, 64967, Arabic]
- 65008, // Range #211: [65008, 65021, Arabic]
- 65070, // Range #212: [65070, 65071, Cyrillic]
- 65136, // Range #213: [65136, 65276, Arabic]
- 65313, // Range #214: [65313, 65338, Latin]
- 65345, // Range #215: [65345, 65370, Latin]
- 65382, // Range #216: [65382, 65391, Katakana]
- 65393, // Range #217: [65393, 65437, Katakana]
- 65440, // Range #218: [65440, 65500, Hangul]
- 65536, // Range #219: [65536, 65629, Linear_B]
- 65664, // Range #220: [65664, 65786, Linear_B]
- 65856, // Range #221: [65856, 65934, Greek]
- 65952, // Range #222: [65952, 65952, Greek]
- 66176, // Range #223: [66176, 66204, Lycian]
- 66208, // Range #224: [66208, 66256, Carian]
- 66304, // Range #225: [66304, 66339, Old_Italic]
- 66349, // Range #226: [66349, 66351, Old_Italic]
- 66352, // Range #227: [66352, 66378, Gothic]
- 66384, // Range #228: [66384, 66426, Old_Permic]
- 66432, // Range #229: [66432, 66463, Ugaritic]
- 66464, // Range #230: [66464, 66517, Old_Persian]
- 66560, // Range #231: [66560, 66639, Deseret]
- 66640, // Range #232: [66640, 66687, Shavian]
- 66688, // Range #233: [66688, 66729, Osmanya]
- 66736, // Range #234: [66736, 66811, Osage]
- 66816, // Range #235: [66816, 66855, Elbasan]
- 66864, // Range #236: [66864, 66915, Caucasian_Albanian]
- 66927, // Range #237: [66927, 66927, Caucasian_Albanian]
- 67072, // Range #238: [67072, 67382, Linear_A]
- 67392, // Range #239: [67392, 67413, Linear_A]
- 67424, // Range #240: [67424, 67431, Linear_A]
- 67584, // Range #241: [67584, 67647, Cypriot]
- 67648, // Range #242: [67648, 67679, Imperial_Aramaic]
- 67680, // Range #243: [67680, 67711, Palmyrene]
- 67712, // Range #244: [67712, 67742, Nabataean]
- 67751, // Range #245: [67751, 67759, Nabataean]
- 67808, // Range #246: [67808, 67829, Hatran]
- 67835, // Range #247: [67835, 67839, Hatran]
- 67840, // Range #248: [67840, 67871, Phoenician]
- 67872, // Range #249: [67872, 67897, Lydian]
- 67903, // Range #250: [67903, 67903, Lydian]
- 67968, // Range #251: [67968, 67999, Meroitic_Hieroglyphs]
- 68000, // Range #252: [68000, 68095, Meroitic_Cursive]
- 68096, // Range #253: [68096, 68102, Kharoshthi]
- 68108, // Range #254: [68108, 68168, Kharoshthi]
- 68176, // Range #255: [68176, 68184, Kharoshthi]
- 68192, // Range #256: [68192, 68223, Old_South_Arabian]
- 68224, // Range #257: [68224, 68255, Old_North_Arabian]
- 68288, // Range #258: [68288, 68342, Manichaean]
- 68352, // Range #259: [68352, 68415, Avestan]
- 68416, // Range #260: [68416, 68447, Inscriptional_Parthian]
- 68448, // Range #261: [68448, 68466, Inscriptional_Pahlavi]
- 68472, // Range #262: [68472, 68479, Inscriptional_Pahlavi]
- 68480, // Range #263: [68480, 68497, Psalter_Pahlavi]
- 68505, // Range #264: [68505, 68508, Psalter_Pahlavi]
- 68521, // Range #265: [68521, 68527, Psalter_Pahlavi]
- 68608, // Range #266: [68608, 68680, Old_Turkic]
- 68736, // Range #267: [68736, 68786, Old_Hungarian]
- 68800, // Range #268: [68800, 68850, Old_Hungarian]
- 68858, // Range #269: [68858, 68863, Old_Hungarian]
- 68864, // Range #270: [68864, 68903, Hanifi_Rohingya]
- 68912, // Range #271: [68912, 68921, Hanifi_Rohingya]
- 69216, // Range #272: [69216, 69246, Arabic]
- 69376, // Range #273: [69376, 69415, Old_Sogdian]
- 69424, // Range #274: [69424, 69465, Sogdian]
- 69632, // Range #275: [69632, 69743, Brahmi]
- 69759, // Range #276: [69759, 69759, Brahmi]
- 69760, // Range #277: [69760, 69825, Kaithi]
- 69837, // Range #278: [69837, 69837, Kaithi]
- 69840, // Range #279: [69840, 69864, Sora_Sompeng]
- 69872, // Range #280: [69872, 69881, Sora_Sompeng]
- 69888, // Range #281: [69888, 69958, Chakma]
- 69968, // Range #282: [69968, 70006, Mahajani]
- 70016, // Range #283: [70016, 70111, Sharada]
- 70113, // Range #284: [70113, 70132, Sinhala]
- 70144, // Range #285: [70144, 70206, Khojki]
- 70272, // Range #286: [70272, 70313, Multani]
- 70320, // Range #287: [70320, 70378, Khudawadi]
- 70384, // Range #288: [70384, 70393, Khudawadi]
- 70400, // Range #289: [70400, 70457, Grantha]
- 70460, // Range #290: [70460, 70480, Grantha]
- 70487, // Range #291: [70487, 70487, Grantha]
- 70493, // Range #292: [70493, 70516, Grantha]
- 70656, // Range #293: [70656, 70750, Newa]
- 70784, // Range #294: [70784, 70855, Tirhuta]
- 70864, // Range #295: [70864, 70873, Tirhuta]
- 71040, // Range #296: [71040, 71133, Siddham]
- 71168, // Range #297: [71168, 71236, Modi]
- 71248, // Range #298: [71248, 71257, Modi]
- 71264, // Range #299: [71264, 71276, Mongolian]
- 71296, // Range #300: [71296, 71351, Takri]
- 71360, // Range #301: [71360, 71369, Takri]
- 71424, // Range #302: [71424, 71487, Ahom]
- 71680, // Range #303: [71680, 71739, Dogra]
- 71840, // Range #304: [71840, 71922, Warang_Citi]
- 71935, // Range #305: [71935, 71935, Warang_Citi]
- 72192, // Range #306: [72192, 72263, Zanabazar_Square]
- 72272, // Range #307: [72272, 72354, Soyombo]
- 72384, // Range #308: [72384, 72440, Pau_Cin_Hau]
- 72704, // Range #309: [72704, 72773, Bhaiksuki]
- 72784, // Range #310: [72784, 72812, Bhaiksuki]
- 72816, // Range #311: [72816, 72886, Marchen]
- 72960, // Range #312: [72960, 73031, Masaram_Gondi]
- 73040, // Range #313: [73040, 73049, Masaram_Gondi]
- 73056, // Range #314: [73056, 73112, Gunjala_Gondi]
- 73120, // Range #315: [73120, 73129, Gunjala_Gondi]
- 73440, // Range #316: [73440, 73464, Makasar]
- 73728, // Range #317: [73728, 74649, Cuneiform]
- 74752, // Range #318: [74752, 74868, Cuneiform]
- 74880, // Range #319: [74880, 75075, Cuneiform]
- 77824, // Range #320: [77824, 78894, Egyptian_Hieroglyphs]
- 82944, // Range #321: [82944, 83526, Anatolian_Hieroglyphs]
- 92160, // Range #322: [92160, 92728, Bamum]
- 92736, // Range #323: [92736, 92783, Mro]
- 92880, // Range #324: [92880, 92917, Bassa_Vah]
- 92928, // Range #325: [92928, 92997, Pahawh_Hmong]
- 93008, // Range #326: [93008, 93047, Pahawh_Hmong]
- 93053, // Range #327: [93053, 93071, Pahawh_Hmong]
- 93760, // Range #328: [93760, 93850, Medefaidrin]
- 93952, // Range #329: [93952, 94020, Miao]
- 94032, // Range #330: [94032, 94078, Miao]
- 94095, // Range #331: [94095, 94111, Miao]
- 94176, // Range #332: [94176, 94176, Tangut]
- 94177, // Range #333: [94177, 94177, Nushu]
- 94208, // Range #334: [94208, 100337, Tangut]
- 100352, // Range #335: [100352, 101106, Tangut]
- 110592, // Range #336: [110592, 110592, Katakana]
- 110593, // Range #337: [110593, 110878, Hiragana]
- 110960, // Range #338: [110960, 111355, Nushu]
- 113664, // Range #339: [113664, 113770, Duployan]
- 113776, // Range #340: [113776, 113800, Duployan]
- 113808, // Range #341: [113808, 113823, Duployan]
- 119296, // Range #342: [119296, 119365, Greek]
- 120832, // Range #343: [120832, 121483, SignWriting]
- 121499, // Range #344: [121499, 121519, SignWriting]
- 122880, // Range #345: [122880, 122922, Glagolitic]
- 124928, // Range #346: [124928, 125142, Mende_Kikakui]
- 125184, // Range #347: [125184, 125258, Adlam]
- 125264, // Range #348: [125264, 125279, Adlam]
- 126464, // Range #349: [126464, 126523, Arabic]
- 126530, // Range #350: [126530, 126619, Arabic]
- 126625, // Range #351: [126625, 126651, Arabic]
- 126704, // Range #352: [126704, 126705, Arabic]
- 127488, // Range #353: [127488, 127488, Hiragana]
- 131072, // Range #354: [131072, 173782, Han]
- 173824, // Range #355: [173824, 177972, Han]
- 177984, // Range #356: [177984, 183969, Han]
- 183984, // Range #357: [183984, 191456, Han]
- 194560, // Range #358: [194560, 195101, Han]
+ 43878, // Range #200: [43878, 43879, Latin]
+ 43888, // Range #201: [43888, 43967, Cherokee]
+ 43968, // Range #202: [43968, 44025, Meetei_Mayek]
+ 44032, // Range #203: [44032, 55203, Hangul]
+ 55216, // Range #204: [55216, 55291, Hangul]
+ 63744, // Range #205: [63744, 64217, Han]
+ 64256, // Range #206: [64256, 64262, Latin]
+ 64275, // Range #207: [64275, 64279, Armenian]
+ 64285, // Range #208: [64285, 64335, Hebrew]
+ 64336, // Range #209: [64336, 64449, Arabic]
+ 64467, // Range #210: [64467, 64829, Arabic]
+ 64848, // Range #211: [64848, 64967, Arabic]
+ 65008, // Range #212: [65008, 65021, Arabic]
+ 65070, // Range #213: [65070, 65071, Cyrillic]
+ 65136, // Range #214: [65136, 65276, Arabic]
+ 65313, // Range #215: [65313, 65338, Latin]
+ 65345, // Range #216: [65345, 65370, Latin]
+ 65382, // Range #217: [65382, 65391, Katakana]
+ 65393, // Range #218: [65393, 65437, Katakana]
+ 65440, // Range #219: [65440, 65500, Hangul]
+ 65536, // Range #220: [65536, 65629, Linear_B]
+ 65664, // Range #221: [65664, 65786, Linear_B]
+ 65856, // Range #222: [65856, 65934, Greek]
+ 65952, // Range #223: [65952, 65952, Greek]
+ 66176, // Range #224: [66176, 66204, Lycian]
+ 66208, // Range #225: [66208, 66256, Carian]
+ 66304, // Range #226: [66304, 66339, Old_Italic]
+ 66349, // Range #227: [66349, 66351, Old_Italic]
+ 66352, // Range #228: [66352, 66378, Gothic]
+ 66384, // Range #229: [66384, 66426, Old_Permic]
+ 66432, // Range #230: [66432, 66463, Ugaritic]
+ 66464, // Range #231: [66464, 66517, Old_Persian]
+ 66560, // Range #232: [66560, 66639, Deseret]
+ 66640, // Range #233: [66640, 66687, Shavian]
+ 66688, // Range #234: [66688, 66729, Osmanya]
+ 66736, // Range #235: [66736, 66811, Osage]
+ 66816, // Range #236: [66816, 66855, Elbasan]
+ 66864, // Range #237: [66864, 66915, Caucasian_Albanian]
+ 66927, // Range #238: [66927, 66927, Caucasian_Albanian]
+ 67072, // Range #239: [67072, 67382, Linear_A]
+ 67392, // Range #240: [67392, 67413, Linear_A]
+ 67424, // Range #241: [67424, 67431, Linear_A]
+ 67584, // Range #242: [67584, 67647, Cypriot]
+ 67648, // Range #243: [67648, 67679, Imperial_Aramaic]
+ 67680, // Range #244: [67680, 67711, Palmyrene]
+ 67712, // Range #245: [67712, 67742, Nabataean]
+ 67751, // Range #246: [67751, 67759, Nabataean]
+ 67808, // Range #247: [67808, 67829, Hatran]
+ 67835, // Range #248: [67835, 67839, Hatran]
+ 67840, // Range #249: [67840, 67871, Phoenician]
+ 67872, // Range #250: [67872, 67897, Lydian]
+ 67903, // Range #251: [67903, 67903, Lydian]
+ 67968, // Range #252: [67968, 67999, Meroitic_Hieroglyphs]
+ 68000, // Range #253: [68000, 68095, Meroitic_Cursive]
+ 68096, // Range #254: [68096, 68102, Kharoshthi]
+ 68108, // Range #255: [68108, 68168, Kharoshthi]
+ 68176, // Range #256: [68176, 68184, Kharoshthi]
+ 68192, // Range #257: [68192, 68223, Old_South_Arabian]
+ 68224, // Range #258: [68224, 68255, Old_North_Arabian]
+ 68288, // Range #259: [68288, 68342, Manichaean]
+ 68352, // Range #260: [68352, 68415, Avestan]
+ 68416, // Range #261: [68416, 68447, Inscriptional_Parthian]
+ 68448, // Range #262: [68448, 68466, Inscriptional_Pahlavi]
+ 68472, // Range #263: [68472, 68479, Inscriptional_Pahlavi]
+ 68480, // Range #264: [68480, 68497, Psalter_Pahlavi]
+ 68505, // Range #265: [68505, 68508, Psalter_Pahlavi]
+ 68521, // Range #266: [68521, 68527, Psalter_Pahlavi]
+ 68608, // Range #267: [68608, 68680, Old_Turkic]
+ 68736, // Range #268: [68736, 68786, Old_Hungarian]
+ 68800, // Range #269: [68800, 68850, Old_Hungarian]
+ 68858, // Range #270: [68858, 68863, Old_Hungarian]
+ 68864, // Range #271: [68864, 68903, Hanifi_Rohingya]
+ 68912, // Range #272: [68912, 68921, Hanifi_Rohingya]
+ 69216, // Range #273: [69216, 69246, Arabic]
+ 69376, // Range #274: [69376, 69415, Old_Sogdian]
+ 69424, // Range #275: [69424, 69465, Sogdian]
+ 69600, // Range #276: [69600, 69622, Elymaic]
+ 69632, // Range #277: [69632, 69743, Brahmi]
+ 69759, // Range #278: [69759, 69759, Brahmi]
+ 69760, // Range #279: [69760, 69825, Kaithi]
+ 69837, // Range #280: [69837, 69837, Kaithi]
+ 69840, // Range #281: [69840, 69864, Sora_Sompeng]
+ 69872, // Range #282: [69872, 69881, Sora_Sompeng]
+ 69888, // Range #283: [69888, 69958, Chakma]
+ 69968, // Range #284: [69968, 70006, Mahajani]
+ 70016, // Range #285: [70016, 70111, Sharada]
+ 70113, // Range #286: [70113, 70132, Sinhala]
+ 70144, // Range #287: [70144, 70206, Khojki]
+ 70272, // Range #288: [70272, 70313, Multani]
+ 70320, // Range #289: [70320, 70378, Khudawadi]
+ 70384, // Range #290: [70384, 70393, Khudawadi]
+ 70400, // Range #291: [70400, 70457, Grantha]
+ 70460, // Range #292: [70460, 70480, Grantha]
+ 70487, // Range #293: [70487, 70487, Grantha]
+ 70493, // Range #294: [70493, 70516, Grantha]
+ 70656, // Range #295: [70656, 70751, Newa]
+ 70784, // Range #296: [70784, 70855, Tirhuta]
+ 70864, // Range #297: [70864, 70873, Tirhuta]
+ 71040, // Range #298: [71040, 71133, Siddham]
+ 71168, // Range #299: [71168, 71236, Modi]
+ 71248, // Range #300: [71248, 71257, Modi]
+ 71264, // Range #301: [71264, 71276, Mongolian]
+ 71296, // Range #302: [71296, 71352, Takri]
+ 71360, // Range #303: [71360, 71369, Takri]
+ 71424, // Range #304: [71424, 71487, Ahom]
+ 71680, // Range #305: [71680, 71739, Dogra]
+ 71840, // Range #306: [71840, 71922, Warang_Citi]
+ 71935, // Range #307: [71935, 71935, Warang_Citi]
+ 72096, // Range #308: [72096, 72164, Nandinagari]
+ 72192, // Range #309: [72192, 72263, Zanabazar_Square]
+ 72272, // Range #310: [72272, 72354, Soyombo]
+ 72384, // Range #311: [72384, 72440, Pau_Cin_Hau]
+ 72704, // Range #312: [72704, 72773, Bhaiksuki]
+ 72784, // Range #313: [72784, 72812, Bhaiksuki]
+ 72816, // Range #314: [72816, 72886, Marchen]
+ 72960, // Range #315: [72960, 73031, Masaram_Gondi]
+ 73040, // Range #316: [73040, 73049, Masaram_Gondi]
+ 73056, // Range #317: [73056, 73112, Gunjala_Gondi]
+ 73120, // Range #318: [73120, 73129, Gunjala_Gondi]
+ 73440, // Range #319: [73440, 73464, Makasar]
+ 73664, // Range #320: [73664, 73713, Tamil]
+ 73727, // Range #321: [73727, 73727, Tamil]
+ 73728, // Range #322: [73728, 74649, Cuneiform]
+ 74752, // Range #323: [74752, 74868, Cuneiform]
+ 74880, // Range #324: [74880, 75075, Cuneiform]
+ 77824, // Range #325: [77824, 78904, Egyptian_Hieroglyphs]
+ 82944, // Range #326: [82944, 83526, Anatolian_Hieroglyphs]
+ 92160, // Range #327: [92160, 92728, Bamum]
+ 92736, // Range #328: [92736, 92783, Mro]
+ 92880, // Range #329: [92880, 92917, Bassa_Vah]
+ 92928, // Range #330: [92928, 92997, Pahawh_Hmong]
+ 93008, // Range #331: [93008, 93047, Pahawh_Hmong]
+ 93053, // Range #332: [93053, 93071, Pahawh_Hmong]
+ 93760, // Range #333: [93760, 93850, Medefaidrin]
+ 93952, // Range #334: [93952, 94087, Miao]
+ 94095, // Range #335: [94095, 94111, Miao]
+ 94176, // Range #336: [94176, 94176, Tangut]
+ 94177, // Range #337: [94177, 94177, Nushu]
+ 94208, // Range #338: [94208, 100343, Tangut]
+ 100352, // Range #339: [100352, 101106, Tangut]
+ 110592, // Range #340: [110592, 110592, Katakana]
+ 110593, // Range #341: [110593, 110878, Hiragana]
+ 110928, // Range #342: [110928, 110930, Hiragana]
+ 110948, // Range #343: [110948, 110951, Katakana]
+ 110960, // Range #344: [110960, 111355, Nushu]
+ 113664, // Range #345: [113664, 113770, Duployan]
+ 113776, // Range #346: [113776, 113800, Duployan]
+ 113808, // Range #347: [113808, 113823, Duployan]
+ 119296, // Range #348: [119296, 119365, Greek]
+ 120832, // Range #349: [120832, 121483, SignWriting]
+ 121499, // Range #350: [121499, 121519, SignWriting]
+ 122880, // Range #351: [122880, 122922, Glagolitic]
+ 123136, // Range #352: [123136, 123215, Nyiakeng_Puachue_Hmong]
+ 123584, // Range #353: [123584, 123641, Wancho]
+ 123647, // Range #354: [123647, 123647, Wancho]
+ 124928, // Range #355: [124928, 125142, Mende_Kikakui]
+ 125184, // Range #356: [125184, 125279, Adlam]
+ 126464, // Range #357: [126464, 126523, Arabic]
+ 126530, // Range #358: [126530, 126619, Arabic]
+ 126625, // Range #359: [126625, 126651, Arabic]
+ 126704, // Range #360: [126704, 126705, Arabic]
+ 127488, // Range #361: [127488, 127488, Hiragana]
+ 131072, // Range #362: [131072, 173782, Han]
+ 173824, // Range #363: [173824, 177972, Han]
+ 177984, // Range #364: [177984, 183969, Han]
+ 183984, // Range #365: [183984, 191456, Han]
+ 194560, // Range #366: [194560, 195101, Han]
};
const uint16 kRangeSizeMinusOne[] = {
@@ -434,7 +442,7 @@ const uint16 kRangeSizeMinusOne[] = {
14, // Range #39: [2259, 2273, Arabic]
28, // Range #40: [2275, 2303, Arabic]
80, // Range #41: [2304, 2384, Devanagari]
- 16, // Range #42: [2387, 2403, Devanagari]
+ 14, // Range #42: [2389, 2403, Devanagari]
25, // Range #43: [2406, 2431, Devanagari]
78, // Range #44: [2432, 2510, Bengali]
39, // Range #45: [2519, 2558, Bengali]
@@ -452,7 +460,7 @@ const uint16 kRangeSizeMinusOne[] = {
77, // Range #57: [3072, 3149, Telugu]
5, // Range #58: [3157, 3162, Telugu]
15, // Range #59: [3168, 3183, Telugu]
- 7, // Range #60: [3192, 3199, Telugu]
+ 8, // Range #60: [3191, 3199, Telugu]
77, // Range #61: [3200, 3277, Kannada]
1, // Range #62: [3285, 3286, Kannada]
20, // Range #63: [3294, 3314, Kannada]
@@ -461,103 +469,103 @@ const uint16 kRangeSizeMinusOne[] = {
14, // Range #66: [3558, 3572, Sinhala]
57, // Range #67: [3585, 3642, Thai]
27, // Range #68: [3648, 3675, Thai]
- 12, // Range #69: [3713, 3725, Lao]
- 75, // Range #70: [3732, 3807, Lao]
- 212, // Range #71: [3840, 4052, Tibetan]
- 1, // Range #72: [4057, 4058, Tibetan]
- 159, // Range #73: [4096, 4255, Myanmar]
- 39, // Range #74: [4256, 4295, Georgian]
- 45, // Range #75: [4301, 4346, Georgian]
- 3, // Range #76: [4348, 4351, Georgian]
- 255, // Range #77: [4352, 4607, Hangul]
- 409, // Range #78: [4608, 5017, Ethiopic]
- 93, // Range #79: [5024, 5117, Cherokee]
- 639, // Range #80: [5120, 5759, Canadian_Aboriginal]
- 28, // Range #81: [5760, 5788, Ogham]
- 74, // Range #82: [5792, 5866, Runic]
- 10, // Range #83: [5870, 5880, Runic]
- 20, // Range #84: [5888, 5908, Tagalog]
- 20, // Range #85: [5920, 5940, Hanunoo]
- 19, // Range #86: [5952, 5971, Buhid]
- 19, // Range #87: [5984, 6003, Tagbanwa]
- 105, // Range #88: [6016, 6121, Khmer]
- 9, // Range #89: [6128, 6137, Khmer]
- 1, // Range #90: [6144, 6145, Mongolian]
- 0, // Range #91: [6148, 6148, Mongolian]
- 19, // Range #92: [6150, 6169, Mongolian]
- 88, // Range #93: [6176, 6264, Mongolian]
- 42, // Range #94: [6272, 6314, Mongolian]
- 69, // Range #95: [6320, 6389, Canadian_Aboriginal]
- 79, // Range #96: [6400, 6479, Limbu]
- 36, // Range #97: [6480, 6516, Tai_Le]
- 73, // Range #98: [6528, 6601, New_Tai_Lue]
- 15, // Range #99: [6608, 6623, New_Tai_Lue]
- 31, // Range #100: [6624, 6655, Khmer]
- 31, // Range #101: [6656, 6687, Buginese]
- 105, // Range #102: [6688, 6793, Tai_Tham]
- 9, // Range #103: [6800, 6809, Tai_Tham]
- 13, // Range #104: [6816, 6829, Tai_Tham]
- 124, // Range #105: [6912, 7036, Balinese]
- 63, // Range #106: [7040, 7103, Sundanese]
- 51, // Range #107: [7104, 7155, Batak]
- 3, // Range #108: [7164, 7167, Batak]
- 79, // Range #109: [7168, 7247, Lepcha]
- 47, // Range #110: [7248, 7295, Ol_Chiki]
- 8, // Range #111: [7296, 7304, Cyrillic]
- 47, // Range #112: [7312, 7359, Georgian]
- 7, // Range #113: [7360, 7367, Sundanese]
- 37, // Range #114: [7424, 7461, Latin]
- 4, // Range #115: [7462, 7466, Greek]
- 0, // Range #116: [7467, 7467, Cyrillic]
- 48, // Range #117: [7468, 7516, Latin]
- 4, // Range #118: [7517, 7521, Greek]
- 3, // Range #119: [7522, 7525, Latin]
- 4, // Range #120: [7526, 7530, Greek]
- 12, // Range #121: [7531, 7543, Latin]
- 0, // Range #122: [7544, 7544, Cyrillic]
- 69, // Range #123: [7545, 7614, Latin]
- 0, // Range #124: [7615, 7615, Greek]
- 255, // Range #125: [7680, 7935, Latin]
- 254, // Range #126: [7936, 8190, Greek]
- 0, // Range #127: [8305, 8305, Latin]
- 0, // Range #128: [8319, 8319, Latin]
- 12, // Range #129: [8336, 8348, Latin]
- 0, // Range #130: [8486, 8486, Greek]
- 1, // Range #131: [8490, 8491, Latin]
- 0, // Range #132: [8498, 8498, Latin]
- 0, // Range #133: [8526, 8526, Latin]
- 40, // Range #134: [8544, 8584, Latin]
- 255, // Range #135: [10240, 10495, Braille]
- 94, // Range #136: [11264, 11358, Glagolitic]
- 31, // Range #137: [11360, 11391, Latin]
- 115, // Range #138: [11392, 11507, Coptic]
- 6, // Range #139: [11513, 11519, Coptic]
- 39, // Range #140: [11520, 11559, Georgian]
- 0, // Range #141: [11565, 11565, Georgian]
- 55, // Range #142: [11568, 11623, Tifinagh]
- 1, // Range #143: [11631, 11632, Tifinagh]
- 0, // Range #144: [11647, 11647, Tifinagh]
- 22, // Range #145: [11648, 11670, Ethiopic]
- 62, // Range #146: [11680, 11742, Ethiopic]
- 31, // Range #147: [11744, 11775, Cyrillic]
- 115, // Range #148: [11904, 12019, Han]
- 213, // Range #149: [12032, 12245, Han]
- 0, // Range #150: [12293, 12293, Han]
- 0, // Range #151: [12295, 12295, Han]
- 8, // Range #152: [12321, 12329, Han]
- 1, // Range #153: [12334, 12335, Hangul]
- 3, // Range #154: [12344, 12347, Han]
- 85, // Range #155: [12353, 12438, Hiragana]
- 2, // Range #156: [12445, 12447, Hiragana]
- 89, // Range #157: [12449, 12538, Katakana]
- 2, // Range #158: [12541, 12543, Katakana]
- 42, // Range #159: [12549, 12591, Bopomofo]
- 93, // Range #160: [12593, 12686, Hangul]
- 26, // Range #161: [12704, 12730, Bopomofo]
- 15, // Range #162: [12784, 12799, Katakana]
- 30, // Range #163: [12800, 12830, Hangul]
- 30, // Range #164: [12896, 12926, Hangul]
- 135, // Range #165: [13008, 13143, Katakana]
+ 94, // Range #69: [3713, 3807, Lao]
+ 212, // Range #70: [3840, 4052, Tibetan]
+ 1, // Range #71: [4057, 4058, Tibetan]
+ 159, // Range #72: [4096, 4255, Myanmar]
+ 39, // Range #73: [4256, 4295, Georgian]
+ 45, // Range #74: [4301, 4346, Georgian]
+ 3, // Range #75: [4348, 4351, Georgian]
+ 255, // Range #76: [4352, 4607, Hangul]
+ 409, // Range #77: [4608, 5017, Ethiopic]
+ 93, // Range #78: [5024, 5117, Cherokee]
+ 639, // Range #79: [5120, 5759, Canadian_Aboriginal]
+ 28, // Range #80: [5760, 5788, Ogham]
+ 74, // Range #81: [5792, 5866, Runic]
+ 10, // Range #82: [5870, 5880, Runic]
+ 20, // Range #83: [5888, 5908, Tagalog]
+ 20, // Range #84: [5920, 5940, Hanunoo]
+ 19, // Range #85: [5952, 5971, Buhid]
+ 19, // Range #86: [5984, 6003, Tagbanwa]
+ 105, // Range #87: [6016, 6121, Khmer]
+ 9, // Range #88: [6128, 6137, Khmer]
+ 1, // Range #89: [6144, 6145, Mongolian]
+ 0, // Range #90: [6148, 6148, Mongolian]
+ 19, // Range #91: [6150, 6169, Mongolian]
+ 88, // Range #92: [6176, 6264, Mongolian]
+ 42, // Range #93: [6272, 6314, Mongolian]
+ 69, // Range #94: [6320, 6389, Canadian_Aboriginal]
+ 79, // Range #95: [6400, 6479, Limbu]
+ 36, // Range #96: [6480, 6516, Tai_Le]
+ 73, // Range #97: [6528, 6601, New_Tai_Lue]
+ 15, // Range #98: [6608, 6623, New_Tai_Lue]
+ 31, // Range #99: [6624, 6655, Khmer]
+ 31, // Range #100: [6656, 6687, Buginese]
+ 105, // Range #101: [6688, 6793, Tai_Tham]
+ 9, // Range #102: [6800, 6809, Tai_Tham]
+ 13, // Range #103: [6816, 6829, Tai_Tham]
+ 124, // Range #104: [6912, 7036, Balinese]
+ 63, // Range #105: [7040, 7103, Sundanese]
+ 51, // Range #106: [7104, 7155, Batak]
+ 3, // Range #107: [7164, 7167, Batak]
+ 79, // Range #108: [7168, 7247, Lepcha]
+ 47, // Range #109: [7248, 7295, Ol_Chiki]
+ 8, // Range #110: [7296, 7304, Cyrillic]
+ 47, // Range #111: [7312, 7359, Georgian]
+ 7, // Range #112: [7360, 7367, Sundanese]
+ 37, // Range #113: [7424, 7461, Latin]
+ 4, // Range #114: [7462, 7466, Greek]
+ 0, // Range #115: [7467, 7467, Cyrillic]
+ 48, // Range #116: [7468, 7516, Latin]
+ 4, // Range #117: [7517, 7521, Greek]
+ 3, // Range #118: [7522, 7525, Latin]
+ 4, // Range #119: [7526, 7530, Greek]
+ 12, // Range #120: [7531, 7543, Latin]
+ 0, // Range #121: [7544, 7544, Cyrillic]
+ 69, // Range #122: [7545, 7614, Latin]
+ 0, // Range #123: [7615, 7615, Greek]
+ 255, // Range #124: [7680, 7935, Latin]
+ 254, // Range #125: [7936, 8190, Greek]
+ 0, // Range #126: [8305, 8305, Latin]
+ 0, // Range #127: [8319, 8319, Latin]
+ 12, // Range #128: [8336, 8348, Latin]
+ 0, // Range #129: [8486, 8486, Greek]
+ 1, // Range #130: [8490, 8491, Latin]
+ 0, // Range #131: [8498, 8498, Latin]
+ 0, // Range #132: [8526, 8526, Latin]
+ 40, // Range #133: [8544, 8584, Latin]
+ 255, // Range #134: [10240, 10495, Braille]
+ 94, // Range #135: [11264, 11358, Glagolitic]
+ 31, // Range #136: [11360, 11391, Latin]
+ 115, // Range #137: [11392, 11507, Coptic]
+ 6, // Range #138: [11513, 11519, Coptic]
+ 39, // Range #139: [11520, 11559, Georgian]
+ 0, // Range #140: [11565, 11565, Georgian]
+ 55, // Range #141: [11568, 11623, Tifinagh]
+ 1, // Range #142: [11631, 11632, Tifinagh]
+ 0, // Range #143: [11647, 11647, Tifinagh]
+ 22, // Range #144: [11648, 11670, Ethiopic]
+ 62, // Range #145: [11680, 11742, Ethiopic]
+ 31, // Range #146: [11744, 11775, Cyrillic]
+ 115, // Range #147: [11904, 12019, Han]
+ 213, // Range #148: [12032, 12245, Han]
+ 0, // Range #149: [12293, 12293, Han]
+ 0, // Range #150: [12295, 12295, Han]
+ 8, // Range #151: [12321, 12329, Han]
+ 1, // Range #152: [12334, 12335, Hangul]
+ 3, // Range #153: [12344, 12347, Han]
+ 85, // Range #154: [12353, 12438, Hiragana]
+ 2, // Range #155: [12445, 12447, Hiragana]
+ 89, // Range #156: [12449, 12538, Katakana]
+ 2, // Range #157: [12541, 12543, Katakana]
+ 42, // Range #158: [12549, 12591, Bopomofo]
+ 93, // Range #159: [12593, 12686, Hangul]
+ 26, // Range #160: [12704, 12730, Bopomofo]
+ 15, // Range #161: [12784, 12799, Katakana]
+ 30, // Range #162: [12800, 12830, Hangul]
+ 30, // Range #163: [12896, 12926, Hangul]
+ 46, // Range #164: [13008, 13054, Katakana]
+ 87, // Range #165: [13056, 13143, Katakana]
6581, // Range #166: [13312, 19893, Han]
20975, // Range #167: [19968, 40943, Han]
1222, // Range #168: [40960, 42182, Yi]
@@ -566,7 +574,7 @@ const uint16 kRangeSizeMinusOne[] = {
95, // Range #171: [42560, 42655, Cyrillic]
87, // Range #172: [42656, 42743, Bamum]
101, // Range #173: [42786, 42887, Latin]
- 46, // Range #174: [42891, 42937, Latin]
+ 59, // Range #174: [42891, 42950, Latin]
8, // Range #175: [42999, 43007, Latin]
43, // Range #176: [43008, 43051, Syloti_Nagri]
55, // Range #177: [43072, 43127, Phags_Pa]
@@ -592,165 +600,173 @@ const uint16 kRangeSizeMinusOne[] = {
42, // Range #197: [43824, 43866, Latin]
8, // Range #198: [43868, 43876, Latin]
0, // Range #199: [43877, 43877, Greek]
- 79, // Range #200: [43888, 43967, Cherokee]
- 57, // Range #201: [43968, 44025, Meetei_Mayek]
- 11171, // Range #202: [44032, 55203, Hangul]
- 75, // Range #203: [55216, 55291, Hangul]
- 473, // Range #204: [63744, 64217, Han]
- 6, // Range #205: [64256, 64262, Latin]
- 4, // Range #206: [64275, 64279, Armenian]
- 50, // Range #207: [64285, 64335, Hebrew]
- 113, // Range #208: [64336, 64449, Arabic]
- 362, // Range #209: [64467, 64829, Arabic]
- 119, // Range #210: [64848, 64967, Arabic]
- 13, // Range #211: [65008, 65021, Arabic]
- 1, // Range #212: [65070, 65071, Cyrillic]
- 140, // Range #213: [65136, 65276, Arabic]
- 25, // Range #214: [65313, 65338, Latin]
- 25, // Range #215: [65345, 65370, Latin]
- 9, // Range #216: [65382, 65391, Katakana]
- 44, // Range #217: [65393, 65437, Katakana]
- 60, // Range #218: [65440, 65500, Hangul]
- 93, // Range #219: [65536, 65629, Linear_B]
- 122, // Range #220: [65664, 65786, Linear_B]
- 78, // Range #221: [65856, 65934, Greek]
- 0, // Range #222: [65952, 65952, Greek]
- 28, // Range #223: [66176, 66204, Lycian]
- 48, // Range #224: [66208, 66256, Carian]
- 35, // Range #225: [66304, 66339, Old_Italic]
- 2, // Range #226: [66349, 66351, Old_Italic]
- 26, // Range #227: [66352, 66378, Gothic]
- 42, // Range #228: [66384, 66426, Old_Permic]
- 31, // Range #229: [66432, 66463, Ugaritic]
- 53, // Range #230: [66464, 66517, Old_Persian]
- 79, // Range #231: [66560, 66639, Deseret]
- 47, // Range #232: [66640, 66687, Shavian]
- 41, // Range #233: [66688, 66729, Osmanya]
- 75, // Range #234: [66736, 66811, Osage]
- 39, // Range #235: [66816, 66855, Elbasan]
- 51, // Range #236: [66864, 66915, Caucasian_Albanian]
- 0, // Range #237: [66927, 66927, Caucasian_Albanian]
- 310, // Range #238: [67072, 67382, Linear_A]
- 21, // Range #239: [67392, 67413, Linear_A]
- 7, // Range #240: [67424, 67431, Linear_A]
- 63, // Range #241: [67584, 67647, Cypriot]
- 31, // Range #242: [67648, 67679, Imperial_Aramaic]
- 31, // Range #243: [67680, 67711, Palmyrene]
- 30, // Range #244: [67712, 67742, Nabataean]
- 8, // Range #245: [67751, 67759, Nabataean]
- 21, // Range #246: [67808, 67829, Hatran]
- 4, // Range #247: [67835, 67839, Hatran]
- 31, // Range #248: [67840, 67871, Phoenician]
- 25, // Range #249: [67872, 67897, Lydian]
- 0, // Range #250: [67903, 67903, Lydian]
- 31, // Range #251: [67968, 67999, Meroitic_Hieroglyphs]
- 95, // Range #252: [68000, 68095, Meroitic_Cursive]
- 6, // Range #253: [68096, 68102, Kharoshthi]
- 60, // Range #254: [68108, 68168, Kharoshthi]
- 8, // Range #255: [68176, 68184, Kharoshthi]
- 31, // Range #256: [68192, 68223, Old_South_Arabian]
- 31, // Range #257: [68224, 68255, Old_North_Arabian]
- 54, // Range #258: [68288, 68342, Manichaean]
- 63, // Range #259: [68352, 68415, Avestan]
- 31, // Range #260: [68416, 68447, Inscriptional_Parthian]
- 18, // Range #261: [68448, 68466, Inscriptional_Pahlavi]
- 7, // Range #262: [68472, 68479, Inscriptional_Pahlavi]
- 17, // Range #263: [68480, 68497, Psalter_Pahlavi]
- 3, // Range #264: [68505, 68508, Psalter_Pahlavi]
- 6, // Range #265: [68521, 68527, Psalter_Pahlavi]
- 72, // Range #266: [68608, 68680, Old_Turkic]
- 50, // Range #267: [68736, 68786, Old_Hungarian]
- 50, // Range #268: [68800, 68850, Old_Hungarian]
- 5, // Range #269: [68858, 68863, Old_Hungarian]
- 39, // Range #270: [68864, 68903, Hanifi_Rohingya]
- 9, // Range #271: [68912, 68921, Hanifi_Rohingya]
- 30, // Range #272: [69216, 69246, Arabic]
- 39, // Range #273: [69376, 69415, Old_Sogdian]
- 41, // Range #274: [69424, 69465, Sogdian]
- 111, // Range #275: [69632, 69743, Brahmi]
- 0, // Range #276: [69759, 69759, Brahmi]
- 65, // Range #277: [69760, 69825, Kaithi]
- 0, // Range #278: [69837, 69837, Kaithi]
- 24, // Range #279: [69840, 69864, Sora_Sompeng]
- 9, // Range #280: [69872, 69881, Sora_Sompeng]
- 70, // Range #281: [69888, 69958, Chakma]
- 38, // Range #282: [69968, 70006, Mahajani]
- 95, // Range #283: [70016, 70111, Sharada]
- 19, // Range #284: [70113, 70132, Sinhala]
- 62, // Range #285: [70144, 70206, Khojki]
- 41, // Range #286: [70272, 70313, Multani]
- 58, // Range #287: [70320, 70378, Khudawadi]
- 9, // Range #288: [70384, 70393, Khudawadi]
- 57, // Range #289: [70400, 70457, Grantha]
- 20, // Range #290: [70460, 70480, Grantha]
- 0, // Range #291: [70487, 70487, Grantha]
- 23, // Range #292: [70493, 70516, Grantha]
- 94, // Range #293: [70656, 70750, Newa]
- 71, // Range #294: [70784, 70855, Tirhuta]
- 9, // Range #295: [70864, 70873, Tirhuta]
- 93, // Range #296: [71040, 71133, Siddham]
- 68, // Range #297: [71168, 71236, Modi]
- 9, // Range #298: [71248, 71257, Modi]
- 12, // Range #299: [71264, 71276, Mongolian]
- 55, // Range #300: [71296, 71351, Takri]
- 9, // Range #301: [71360, 71369, Takri]
- 63, // Range #302: [71424, 71487, Ahom]
- 59, // Range #303: [71680, 71739, Dogra]
- 82, // Range #304: [71840, 71922, Warang_Citi]
- 0, // Range #305: [71935, 71935, Warang_Citi]
- 71, // Range #306: [72192, 72263, Zanabazar_Square]
- 82, // Range #307: [72272, 72354, Soyombo]
- 56, // Range #308: [72384, 72440, Pau_Cin_Hau]
- 69, // Range #309: [72704, 72773, Bhaiksuki]
- 28, // Range #310: [72784, 72812, Bhaiksuki]
- 70, // Range #311: [72816, 72886, Marchen]
- 71, // Range #312: [72960, 73031, Masaram_Gondi]
- 9, // Range #313: [73040, 73049, Masaram_Gondi]
- 56, // Range #314: [73056, 73112, Gunjala_Gondi]
- 9, // Range #315: [73120, 73129, Gunjala_Gondi]
- 24, // Range #316: [73440, 73464, Makasar]
- 921, // Range #317: [73728, 74649, Cuneiform]
- 116, // Range #318: [74752, 74868, Cuneiform]
- 195, // Range #319: [74880, 75075, Cuneiform]
- 1070, // Range #320: [77824, 78894, Egyptian_Hieroglyphs]
- 582, // Range #321: [82944, 83526, Anatolian_Hieroglyphs]
- 568, // Range #322: [92160, 92728, Bamum]
- 47, // Range #323: [92736, 92783, Mro]
- 37, // Range #324: [92880, 92917, Bassa_Vah]
- 69, // Range #325: [92928, 92997, Pahawh_Hmong]
- 39, // Range #326: [93008, 93047, Pahawh_Hmong]
- 18, // Range #327: [93053, 93071, Pahawh_Hmong]
- 90, // Range #328: [93760, 93850, Medefaidrin]
- 68, // Range #329: [93952, 94020, Miao]
- 46, // Range #330: [94032, 94078, Miao]
- 16, // Range #331: [94095, 94111, Miao]
- 0, // Range #332: [94176, 94176, Tangut]
- 0, // Range #333: [94177, 94177, Nushu]
- 6129, // Range #334: [94208, 100337, Tangut]
- 754, // Range #335: [100352, 101106, Tangut]
- 0, // Range #336: [110592, 110592, Katakana]
- 285, // Range #337: [110593, 110878, Hiragana]
- 395, // Range #338: [110960, 111355, Nushu]
- 106, // Range #339: [113664, 113770, Duployan]
- 24, // Range #340: [113776, 113800, Duployan]
- 15, // Range #341: [113808, 113823, Duployan]
- 69, // Range #342: [119296, 119365, Greek]
- 651, // Range #343: [120832, 121483, SignWriting]
- 20, // Range #344: [121499, 121519, SignWriting]
- 42, // Range #345: [122880, 122922, Glagolitic]
- 214, // Range #346: [124928, 125142, Mende_Kikakui]
- 74, // Range #347: [125184, 125258, Adlam]
- 15, // Range #348: [125264, 125279, Adlam]
- 59, // Range #349: [126464, 126523, Arabic]
- 89, // Range #350: [126530, 126619, Arabic]
- 26, // Range #351: [126625, 126651, Arabic]
- 1, // Range #352: [126704, 126705, Arabic]
- 0, // Range #353: [127488, 127488, Hiragana]
- 42710, // Range #354: [131072, 173782, Han]
- 4148, // Range #355: [173824, 177972, Han]
- 5985, // Range #356: [177984, 183969, Han]
- 7472, // Range #357: [183984, 191456, Han]
- 541, // Range #358: [194560, 195101, Han]
+ 1, // Range #200: [43878, 43879, Latin]
+ 79, // Range #201: [43888, 43967, Cherokee]
+ 57, // Range #202: [43968, 44025, Meetei_Mayek]
+ 11171, // Range #203: [44032, 55203, Hangul]
+ 75, // Range #204: [55216, 55291, Hangul]
+ 473, // Range #205: [63744, 64217, Han]
+ 6, // Range #206: [64256, 64262, Latin]
+ 4, // Range #207: [64275, 64279, Armenian]
+ 50, // Range #208: [64285, 64335, Hebrew]
+ 113, // Range #209: [64336, 64449, Arabic]
+ 362, // Range #210: [64467, 64829, Arabic]
+ 119, // Range #211: [64848, 64967, Arabic]
+ 13, // Range #212: [65008, 65021, Arabic]
+ 1, // Range #213: [65070, 65071, Cyrillic]
+ 140, // Range #214: [65136, 65276, Arabic]
+ 25, // Range #215: [65313, 65338, Latin]
+ 25, // Range #216: [65345, 65370, Latin]
+ 9, // Range #217: [65382, 65391, Katakana]
+ 44, // Range #218: [65393, 65437, Katakana]
+ 60, // Range #219: [65440, 65500, Hangul]
+ 93, // Range #220: [65536, 65629, Linear_B]
+ 122, // Range #221: [65664, 65786, Linear_B]
+ 78, // Range #222: [65856, 65934, Greek]
+ 0, // Range #223: [65952, 65952, Greek]
+ 28, // Range #224: [66176, 66204, Lycian]
+ 48, // Range #225: [66208, 66256, Carian]
+ 35, // Range #226: [66304, 66339, Old_Italic]
+ 2, // Range #227: [66349, 66351, Old_Italic]
+ 26, // Range #228: [66352, 66378, Gothic]
+ 42, // Range #229: [66384, 66426, Old_Permic]
+ 31, // Range #230: [66432, 66463, Ugaritic]
+ 53, // Range #231: [66464, 66517, Old_Persian]
+ 79, // Range #232: [66560, 66639, Deseret]
+ 47, // Range #233: [66640, 66687, Shavian]
+ 41, // Range #234: [66688, 66729, Osmanya]
+ 75, // Range #235: [66736, 66811, Osage]
+ 39, // Range #236: [66816, 66855, Elbasan]
+ 51, // Range #237: [66864, 66915, Caucasian_Albanian]
+ 0, // Range #238: [66927, 66927, Caucasian_Albanian]
+ 310, // Range #239: [67072, 67382, Linear_A]
+ 21, // Range #240: [67392, 67413, Linear_A]
+ 7, // Range #241: [67424, 67431, Linear_A]
+ 63, // Range #242: [67584, 67647, Cypriot]
+ 31, // Range #243: [67648, 67679, Imperial_Aramaic]
+ 31, // Range #244: [67680, 67711, Palmyrene]
+ 30, // Range #245: [67712, 67742, Nabataean]
+ 8, // Range #246: [67751, 67759, Nabataean]
+ 21, // Range #247: [67808, 67829, Hatran]
+ 4, // Range #248: [67835, 67839, Hatran]
+ 31, // Range #249: [67840, 67871, Phoenician]
+ 25, // Range #250: [67872, 67897, Lydian]
+ 0, // Range #251: [67903, 67903, Lydian]
+ 31, // Range #252: [67968, 67999, Meroitic_Hieroglyphs]
+ 95, // Range #253: [68000, 68095, Meroitic_Cursive]
+ 6, // Range #254: [68096, 68102, Kharoshthi]
+ 60, // Range #255: [68108, 68168, Kharoshthi]
+ 8, // Range #256: [68176, 68184, Kharoshthi]
+ 31, // Range #257: [68192, 68223, Old_South_Arabian]
+ 31, // Range #258: [68224, 68255, Old_North_Arabian]
+ 54, // Range #259: [68288, 68342, Manichaean]
+ 63, // Range #260: [68352, 68415, Avestan]
+ 31, // Range #261: [68416, 68447, Inscriptional_Parthian]
+ 18, // Range #262: [68448, 68466, Inscriptional_Pahlavi]
+ 7, // Range #263: [68472, 68479, Inscriptional_Pahlavi]
+ 17, // Range #264: [68480, 68497, Psalter_Pahlavi]
+ 3, // Range #265: [68505, 68508, Psalter_Pahlavi]
+ 6, // Range #266: [68521, 68527, Psalter_Pahlavi]
+ 72, // Range #267: [68608, 68680, Old_Turkic]
+ 50, // Range #268: [68736, 68786, Old_Hungarian]
+ 50, // Range #269: [68800, 68850, Old_Hungarian]
+ 5, // Range #270: [68858, 68863, Old_Hungarian]
+ 39, // Range #271: [68864, 68903, Hanifi_Rohingya]
+ 9, // Range #272: [68912, 68921, Hanifi_Rohingya]
+ 30, // Range #273: [69216, 69246, Arabic]
+ 39, // Range #274: [69376, 69415, Old_Sogdian]
+ 41, // Range #275: [69424, 69465, Sogdian]
+ 22, // Range #276: [69600, 69622, Elymaic]
+ 111, // Range #277: [69632, 69743, Brahmi]
+ 0, // Range #278: [69759, 69759, Brahmi]
+ 65, // Range #279: [69760, 69825, Kaithi]
+ 0, // Range #280: [69837, 69837, Kaithi]
+ 24, // Range #281: [69840, 69864, Sora_Sompeng]
+ 9, // Range #282: [69872, 69881, Sora_Sompeng]
+ 70, // Range #283: [69888, 69958, Chakma]
+ 38, // Range #284: [69968, 70006, Mahajani]
+ 95, // Range #285: [70016, 70111, Sharada]
+ 19, // Range #286: [70113, 70132, Sinhala]
+ 62, // Range #287: [70144, 70206, Khojki]
+ 41, // Range #288: [70272, 70313, Multani]
+ 58, // Range #289: [70320, 70378, Khudawadi]
+ 9, // Range #290: [70384, 70393, Khudawadi]
+ 57, // Range #291: [70400, 70457, Grantha]
+ 20, // Range #292: [70460, 70480, Grantha]
+ 0, // Range #293: [70487, 70487, Grantha]
+ 23, // Range #294: [70493, 70516, Grantha]
+ 95, // Range #295: [70656, 70751, Newa]
+ 71, // Range #296: [70784, 70855, Tirhuta]
+ 9, // Range #297: [70864, 70873, Tirhuta]
+ 93, // Range #298: [71040, 71133, Siddham]
+ 68, // Range #299: [71168, 71236, Modi]
+ 9, // Range #300: [71248, 71257, Modi]
+ 12, // Range #301: [71264, 71276, Mongolian]
+ 56, // Range #302: [71296, 71352, Takri]
+ 9, // Range #303: [71360, 71369, Takri]
+ 63, // Range #304: [71424, 71487, Ahom]
+ 59, // Range #305: [71680, 71739, Dogra]
+ 82, // Range #306: [71840, 71922, Warang_Citi]
+ 0, // Range #307: [71935, 71935, Warang_Citi]
+ 68, // Range #308: [72096, 72164, Nandinagari]
+ 71, // Range #309: [72192, 72263, Zanabazar_Square]
+ 82, // Range #310: [72272, 72354, Soyombo]
+ 56, // Range #311: [72384, 72440, Pau_Cin_Hau]
+ 69, // Range #312: [72704, 72773, Bhaiksuki]
+ 28, // Range #313: [72784, 72812, Bhaiksuki]
+ 70, // Range #314: [72816, 72886, Marchen]
+ 71, // Range #315: [72960, 73031, Masaram_Gondi]
+ 9, // Range #316: [73040, 73049, Masaram_Gondi]
+ 56, // Range #317: [73056, 73112, Gunjala_Gondi]
+ 9, // Range #318: [73120, 73129, Gunjala_Gondi]
+ 24, // Range #319: [73440, 73464, Makasar]
+ 49, // Range #320: [73664, 73713, Tamil]
+ 0, // Range #321: [73727, 73727, Tamil]
+ 921, // Range #322: [73728, 74649, Cuneiform]
+ 116, // Range #323: [74752, 74868, Cuneiform]
+ 195, // Range #324: [74880, 75075, Cuneiform]
+ 1080, // Range #325: [77824, 78904, Egyptian_Hieroglyphs]
+ 582, // Range #326: [82944, 83526, Anatolian_Hieroglyphs]
+ 568, // Range #327: [92160, 92728, Bamum]
+ 47, // Range #328: [92736, 92783, Mro]
+ 37, // Range #329: [92880, 92917, Bassa_Vah]
+ 69, // Range #330: [92928, 92997, Pahawh_Hmong]
+ 39, // Range #331: [93008, 93047, Pahawh_Hmong]
+ 18, // Range #332: [93053, 93071, Pahawh_Hmong]
+ 90, // Range #333: [93760, 93850, Medefaidrin]
+ 135, // Range #334: [93952, 94087, Miao]
+ 16, // Range #335: [94095, 94111, Miao]
+ 0, // Range #336: [94176, 94176, Tangut]
+ 0, // Range #337: [94177, 94177, Nushu]
+ 6135, // Range #338: [94208, 100343, Tangut]
+ 754, // Range #339: [100352, 101106, Tangut]
+ 0, // Range #340: [110592, 110592, Katakana]
+ 285, // Range #341: [110593, 110878, Hiragana]
+ 2, // Range #342: [110928, 110930, Hiragana]
+ 3, // Range #343: [110948, 110951, Katakana]
+ 395, // Range #344: [110960, 111355, Nushu]
+ 106, // Range #345: [113664, 113770, Duployan]
+ 24, // Range #346: [113776, 113800, Duployan]
+ 15, // Range #347: [113808, 113823, Duployan]
+ 69, // Range #348: [119296, 119365, Greek]
+ 651, // Range #349: [120832, 121483, SignWriting]
+ 20, // Range #350: [121499, 121519, SignWriting]
+ 42, // Range #351: [122880, 122922, Glagolitic]
+ 79, // Range #352: [123136, 123215, Nyiakeng_Puachue_Hmong]
+ 57, // Range #353: [123584, 123641, Wancho]
+ 0, // Range #354: [123647, 123647, Wancho]
+ 214, // Range #355: [124928, 125142, Mende_Kikakui]
+ 95, // Range #356: [125184, 125279, Adlam]
+ 59, // Range #357: [126464, 126523, Arabic]
+ 89, // Range #358: [126530, 126619, Arabic]
+ 26, // Range #359: [126625, 126651, Arabic]
+ 1, // Range #360: [126704, 126705, Arabic]
+ 0, // Range #361: [127488, 127488, Hiragana]
+ 42710, // Range #362: [131072, 173782, Han]
+ 4148, // Range #363: [173824, 177972, Han]
+ 5985, // Range #364: [177984, 183969, Han]
+ 7472, // Range #365: [183984, 191456, Han]
+ 541, // Range #366: [194560, 195101, Han]
};
const uint8 kRangeScript[] = {
@@ -796,7 +812,7 @@ const uint8 kRangeScript[] = {
2, // Range #39: [2259, 2273, Arabic]
2, // Range #40: [2275, 2303, Arabic]
10, // Range #41: [2304, 2384, Devanagari]
- 10, // Range #42: [2387, 2403, Devanagari]
+ 10, // Range #42: [2389, 2403, Devanagari]
10, // Range #43: [2406, 2431, Devanagari]
4, // Range #44: [2432, 2510, Bengali]
4, // Range #45: [2519, 2558, Bengali]
@@ -814,7 +830,7 @@ const uint8 kRangeScript[] = {
36, // Range #57: [3072, 3149, Telugu]
36, // Range #58: [3157, 3162, Telugu]
36, // Range #59: [3168, 3183, Telugu]
- 36, // Range #60: [3192, 3199, Telugu]
+ 36, // Range #60: [3191, 3199, Telugu]
21, // Range #61: [3200, 3277, Kannada]
21, // Range #62: [3285, 3286, Kannada]
21, // Range #63: [3294, 3314, Kannada]
@@ -823,103 +839,103 @@ const uint8 kRangeScript[] = {
33, // Range #66: [3558, 3572, Sinhala]
38, // Range #67: [3585, 3642, Thai]
38, // Range #68: [3648, 3675, Thai]
- 24, // Range #69: [3713, 3725, Lao]
- 24, // Range #70: [3732, 3807, Lao]
- 39, // Range #71: [3840, 4052, Tibetan]
- 39, // Range #72: [4057, 4058, Tibetan]
- 28, // Range #73: [4096, 4255, Myanmar]
- 12, // Range #74: [4256, 4295, Georgian]
- 12, // Range #75: [4301, 4346, Georgian]
- 12, // Range #76: [4348, 4351, Georgian]
- 18, // Range #77: [4352, 4607, Hangul]
- 11, // Range #78: [4608, 5017, Ethiopic]
- 6, // Range #79: [5024, 5117, Cherokee]
- 40, // Range #80: [5120, 5759, Canadian_Aboriginal]
- 29, // Range #81: [5760, 5788, Ogham]
- 32, // Range #82: [5792, 5866, Runic]
- 32, // Range #83: [5870, 5880, Runic]
- 42, // Range #84: [5888, 5908, Tagalog]
- 43, // Range #85: [5920, 5940, Hanunoo]
- 44, // Range #86: [5952, 5971, Buhid]
- 45, // Range #87: [5984, 6003, Tagbanwa]
- 23, // Range #88: [6016, 6121, Khmer]
- 23, // Range #89: [6128, 6137, Khmer]
- 27, // Range #90: [6144, 6145, Mongolian]
- 27, // Range #91: [6148, 6148, Mongolian]
- 27, // Range #92: [6150, 6169, Mongolian]
- 27, // Range #93: [6176, 6264, Mongolian]
- 27, // Range #94: [6272, 6314, Mongolian]
- 40, // Range #95: [6320, 6389, Canadian_Aboriginal]
- 48, // Range #96: [6400, 6479, Limbu]
- 52, // Range #97: [6480, 6516, Tai_Le]
- 59, // Range #98: [6528, 6601, New_Tai_Lue]
- 59, // Range #99: [6608, 6623, New_Tai_Lue]
- 23, // Range #100: [6624, 6655, Khmer]
- 55, // Range #101: [6656, 6687, Buginese]
- 106, // Range #102: [6688, 6793, Tai_Tham]
- 106, // Range #103: [6800, 6809, Tai_Tham]
- 106, // Range #104: [6816, 6829, Tai_Tham]
- 62, // Range #105: [6912, 7036, Balinese]
- 113, // Range #106: [7040, 7103, Sundanese]
- 63, // Range #107: [7104, 7155, Batak]
- 63, // Range #108: [7164, 7167, Batak]
- 82, // Range #109: [7168, 7247, Lepcha]
- 109, // Range #110: [7248, 7295, Ol_Chiki]
- 8, // Range #111: [7296, 7304, Cyrillic]
- 12, // Range #112: [7312, 7359, Georgian]
- 113, // Range #113: [7360, 7367, Sundanese]
- 25, // Range #114: [7424, 7461, Latin]
- 14, // Range #115: [7462, 7466, Greek]
- 8, // Range #116: [7467, 7467, Cyrillic]
- 25, // Range #117: [7468, 7516, Latin]
- 14, // Range #118: [7517, 7521, Greek]
- 25, // Range #119: [7522, 7525, Latin]
- 14, // Range #120: [7526, 7530, Greek]
- 25, // Range #121: [7531, 7543, Latin]
- 8, // Range #122: [7544, 7544, Cyrillic]
- 25, // Range #123: [7545, 7614, Latin]
- 14, // Range #124: [7615, 7615, Greek]
- 25, // Range #125: [7680, 7935, Latin]
- 14, // Range #126: [7936, 8190, Greek]
- 25, // Range #127: [8305, 8305, Latin]
- 25, // Range #128: [8319, 8319, Latin]
- 25, // Range #129: [8336, 8348, Latin]
- 14, // Range #130: [8486, 8486, Greek]
- 25, // Range #131: [8490, 8491, Latin]
- 25, // Range #132: [8498, 8498, Latin]
- 25, // Range #133: [8526, 8526, Latin]
- 25, // Range #134: [8544, 8584, Latin]
- 46, // Range #135: [10240, 10495, Braille]
- 56, // Range #136: [11264, 11358, Glagolitic]
- 25, // Range #137: [11360, 11391, Latin]
- 7, // Range #138: [11392, 11507, Coptic]
- 7, // Range #139: [11513, 11519, Coptic]
- 12, // Range #140: [11520, 11559, Georgian]
- 12, // Range #141: [11565, 11565, Georgian]
- 60, // Range #142: [11568, 11623, Tifinagh]
- 60, // Range #143: [11631, 11632, Tifinagh]
- 60, // Range #144: [11647, 11647, Tifinagh]
- 11, // Range #145: [11648, 11670, Ethiopic]
- 11, // Range #146: [11680, 11742, Ethiopic]
- 8, // Range #147: [11744, 11775, Cyrillic]
- 17, // Range #148: [11904, 12019, Han]
- 17, // Range #149: [12032, 12245, Han]
- 17, // Range #150: [12293, 12293, Han]
- 17, // Range #151: [12295, 12295, Han]
- 17, // Range #152: [12321, 12329, Han]
- 18, // Range #153: [12334, 12335, Hangul]
- 17, // Range #154: [12344, 12347, Han]
- 20, // Range #155: [12353, 12438, Hiragana]
- 20, // Range #156: [12445, 12447, Hiragana]
- 22, // Range #157: [12449, 12538, Katakana]
- 22, // Range #158: [12541, 12543, Katakana]
- 5, // Range #159: [12549, 12591, Bopomofo]
- 18, // Range #160: [12593, 12686, Hangul]
- 5, // Range #161: [12704, 12730, Bopomofo]
- 22, // Range #162: [12784, 12799, Katakana]
- 18, // Range #163: [12800, 12830, Hangul]
- 18, // Range #164: [12896, 12926, Hangul]
- 22, // Range #165: [13008, 13143, Katakana]
+ 24, // Range #69: [3713, 3807, Lao]
+ 39, // Range #70: [3840, 4052, Tibetan]
+ 39, // Range #71: [4057, 4058, Tibetan]
+ 28, // Range #72: [4096, 4255, Myanmar]
+ 12, // Range #73: [4256, 4295, Georgian]
+ 12, // Range #74: [4301, 4346, Georgian]
+ 12, // Range #75: [4348, 4351, Georgian]
+ 18, // Range #76: [4352, 4607, Hangul]
+ 11, // Range #77: [4608, 5017, Ethiopic]
+ 6, // Range #78: [5024, 5117, Cherokee]
+ 40, // Range #79: [5120, 5759, Canadian_Aboriginal]
+ 29, // Range #80: [5760, 5788, Ogham]
+ 32, // Range #81: [5792, 5866, Runic]
+ 32, // Range #82: [5870, 5880, Runic]
+ 42, // Range #83: [5888, 5908, Tagalog]
+ 43, // Range #84: [5920, 5940, Hanunoo]
+ 44, // Range #85: [5952, 5971, Buhid]
+ 45, // Range #86: [5984, 6003, Tagbanwa]
+ 23, // Range #87: [6016, 6121, Khmer]
+ 23, // Range #88: [6128, 6137, Khmer]
+ 27, // Range #89: [6144, 6145, Mongolian]
+ 27, // Range #90: [6148, 6148, Mongolian]
+ 27, // Range #91: [6150, 6169, Mongolian]
+ 27, // Range #92: [6176, 6264, Mongolian]
+ 27, // Range #93: [6272, 6314, Mongolian]
+ 40, // Range #94: [6320, 6389, Canadian_Aboriginal]
+ 48, // Range #95: [6400, 6479, Limbu]
+ 52, // Range #96: [6480, 6516, Tai_Le]
+ 59, // Range #97: [6528, 6601, New_Tai_Lue]
+ 59, // Range #98: [6608, 6623, New_Tai_Lue]
+ 23, // Range #99: [6624, 6655, Khmer]
+ 55, // Range #100: [6656, 6687, Buginese]
+ 106, // Range #101: [6688, 6793, Tai_Tham]
+ 106, // Range #102: [6800, 6809, Tai_Tham]
+ 106, // Range #103: [6816, 6829, Tai_Tham]
+ 62, // Range #104: [6912, 7036, Balinese]
+ 113, // Range #105: [7040, 7103, Sundanese]
+ 63, // Range #106: [7104, 7155, Batak]
+ 63, // Range #107: [7164, 7167, Batak]
+ 82, // Range #108: [7168, 7247, Lepcha]
+ 109, // Range #109: [7248, 7295, Ol_Chiki]
+ 8, // Range #110: [7296, 7304, Cyrillic]
+ 12, // Range #111: [7312, 7359, Georgian]
+ 113, // Range #112: [7360, 7367, Sundanese]
+ 25, // Range #113: [7424, 7461, Latin]
+ 14, // Range #114: [7462, 7466, Greek]
+ 8, // Range #115: [7467, 7467, Cyrillic]
+ 25, // Range #116: [7468, 7516, Latin]
+ 14, // Range #117: [7517, 7521, Greek]
+ 25, // Range #118: [7522, 7525, Latin]
+ 14, // Range #119: [7526, 7530, Greek]
+ 25, // Range #120: [7531, 7543, Latin]
+ 8, // Range #121: [7544, 7544, Cyrillic]
+ 25, // Range #122: [7545, 7614, Latin]
+ 14, // Range #123: [7615, 7615, Greek]
+ 25, // Range #124: [7680, 7935, Latin]
+ 14, // Range #125: [7936, 8190, Greek]
+ 25, // Range #126: [8305, 8305, Latin]
+ 25, // Range #127: [8319, 8319, Latin]
+ 25, // Range #128: [8336, 8348, Latin]
+ 14, // Range #129: [8486, 8486, Greek]
+ 25, // Range #130: [8490, 8491, Latin]
+ 25, // Range #131: [8498, 8498, Latin]
+ 25, // Range #132: [8526, 8526, Latin]
+ 25, // Range #133: [8544, 8584, Latin]
+ 46, // Range #134: [10240, 10495, Braille]
+ 56, // Range #135: [11264, 11358, Glagolitic]
+ 25, // Range #136: [11360, 11391, Latin]
+ 7, // Range #137: [11392, 11507, Coptic]
+ 7, // Range #138: [11513, 11519, Coptic]
+ 12, // Range #139: [11520, 11559, Georgian]
+ 12, // Range #140: [11565, 11565, Georgian]
+ 60, // Range #141: [11568, 11623, Tifinagh]
+ 60, // Range #142: [11631, 11632, Tifinagh]
+ 60, // Range #143: [11647, 11647, Tifinagh]
+ 11, // Range #144: [11648, 11670, Ethiopic]
+ 11, // Range #145: [11680, 11742, Ethiopic]
+ 8, // Range #146: [11744, 11775, Cyrillic]
+ 17, // Range #147: [11904, 12019, Han]
+ 17, // Range #148: [12032, 12245, Han]
+ 17, // Range #149: [12293, 12293, Han]
+ 17, // Range #150: [12295, 12295, Han]
+ 17, // Range #151: [12321, 12329, Han]
+ 18, // Range #152: [12334, 12335, Hangul]
+ 17, // Range #153: [12344, 12347, Han]
+ 20, // Range #154: [12353, 12438, Hiragana]
+ 20, // Range #155: [12445, 12447, Hiragana]
+ 22, // Range #156: [12449, 12538, Katakana]
+ 22, // Range #157: [12541, 12543, Katakana]
+ 5, // Range #158: [12549, 12591, Bopomofo]
+ 18, // Range #159: [12593, 12686, Hangul]
+ 5, // Range #160: [12704, 12730, Bopomofo]
+ 22, // Range #161: [12784, 12799, Katakana]
+ 18, // Range #162: [12800, 12830, Hangul]
+ 18, // Range #163: [12896, 12926, Hangul]
+ 22, // Range #164: [13008, 13054, Katakana]
+ 22, // Range #165: [13056, 13143, Katakana]
17, // Range #166: [13312, 19893, Han]
17, // Range #167: [19968, 40943, Han]
41, // Range #168: [40960, 42182, Yi]
@@ -928,7 +944,7 @@ const uint8 kRangeScript[] = {
8, // Range #171: [42560, 42655, Cyrillic]
130, // Range #172: [42656, 42743, Bamum]
25, // Range #173: [42786, 42887, Latin]
- 25, // Range #174: [42891, 42937, Latin]
+ 25, // Range #174: [42891, 42950, Latin]
25, // Range #175: [42999, 43007, Latin]
58, // Range #176: [43008, 43051, Syloti_Nagri]
90, // Range #177: [43072, 43127, Phags_Pa]
@@ -954,168 +970,176 @@ const uint8 kRangeScript[] = {
25, // Range #197: [43824, 43866, Latin]
25, // Range #198: [43868, 43876, Latin]
14, // Range #199: [43877, 43877, Greek]
- 6, // Range #200: [43888, 43967, Cherokee]
- 115, // Range #201: [43968, 44025, Meetei_Mayek]
- 18, // Range #202: [44032, 55203, Hangul]
- 18, // Range #203: [55216, 55291, Hangul]
- 17, // Range #204: [63744, 64217, Han]
- 25, // Range #205: [64256, 64262, Latin]
- 3, // Range #206: [64275, 64279, Armenian]
- 19, // Range #207: [64285, 64335, Hebrew]
- 2, // Range #208: [64336, 64449, Arabic]
- 2, // Range #209: [64467, 64829, Arabic]
- 2, // Range #210: [64848, 64967, Arabic]
- 2, // Range #211: [65008, 65021, Arabic]
- 8, // Range #212: [65070, 65071, Cyrillic]
- 2, // Range #213: [65136, 65276, Arabic]
- 25, // Range #214: [65313, 65338, Latin]
- 25, // Range #215: [65345, 65370, Latin]
- 22, // Range #216: [65382, 65391, Katakana]
- 22, // Range #217: [65393, 65437, Katakana]
- 18, // Range #218: [65440, 65500, Hangul]
- 49, // Range #219: [65536, 65629, Linear_B]
- 49, // Range #220: [65664, 65786, Linear_B]
- 14, // Range #221: [65856, 65934, Greek]
- 14, // Range #222: [65952, 65952, Greek]
- 107, // Range #223: [66176, 66204, Lycian]
- 104, // Range #224: [66208, 66256, Carian]
- 30, // Range #225: [66304, 66339, Old_Italic]
- 30, // Range #226: [66349, 66351, Old_Italic]
- 13, // Range #227: [66352, 66378, Gothic]
- 89, // Range #228: [66384, 66426, Old_Permic]
- 53, // Range #229: [66432, 66463, Ugaritic]
- 61, // Range #230: [66464, 66517, Old_Persian]
- 9, // Range #231: [66560, 66639, Deseret]
- 51, // Range #232: [66640, 66687, Shavian]
- 50, // Range #233: [66688, 66729, Osmanya]
- 171, // Range #234: [66736, 66811, Osage]
- 136, // Range #235: [66816, 66855, Elbasan]
- 159, // Range #236: [66864, 66915, Caucasian_Albanian]
- 159, // Range #237: [66927, 66927, Caucasian_Albanian]
- 83, // Range #238: [67072, 67382, Linear_A]
- 83, // Range #239: [67392, 67413, Linear_A]
- 83, // Range #240: [67424, 67431, Linear_A]
- 47, // Range #241: [67584, 67647, Cypriot]
- 116, // Range #242: [67648, 67679, Imperial_Aramaic]
- 144, // Range #243: [67680, 67711, Palmyrene]
- 143, // Range #244: [67712, 67742, Nabataean]
- 143, // Range #245: [67751, 67759, Nabataean]
- 162, // Range #246: [67808, 67829, Hatran]
- 162, // Range #247: [67835, 67839, Hatran]
- 91, // Range #248: [67840, 67871, Phoenician]
- 108, // Range #249: [67872, 67897, Lydian]
- 108, // Range #250: [67903, 67903, Lydian]
- 86, // Range #251: [67968, 67999, Meroitic_Hieroglyphs]
- 141, // Range #252: [68000, 68095, Meroitic_Cursive]
- 57, // Range #253: [68096, 68102, Kharoshthi]
- 57, // Range #254: [68108, 68168, Kharoshthi]
- 57, // Range #255: [68176, 68184, Kharoshthi]
- 133, // Range #256: [68192, 68223, Old_South_Arabian]
- 142, // Range #257: [68224, 68255, Old_North_Arabian]
- 121, // Range #258: [68288, 68342, Manichaean]
- 117, // Range #259: [68352, 68415, Avestan]
- 125, // Range #260: [68416, 68447, Inscriptional_Parthian]
- 122, // Range #261: [68448, 68466, Inscriptional_Pahlavi]
- 122, // Range #262: [68472, 68479, Inscriptional_Pahlavi]
- 123, // Range #263: [68480, 68497, Psalter_Pahlavi]
- 123, // Range #264: [68505, 68508, Psalter_Pahlavi]
- 123, // Range #265: [68521, 68527, Psalter_Pahlavi]
- 88, // Range #266: [68608, 68680, Old_Turkic]
- 76, // Range #267: [68736, 68786, Old_Hungarian]
- 76, // Range #268: [68800, 68850, Old_Hungarian]
- 76, // Range #269: [68858, 68863, Old_Hungarian]
- 182, // Range #270: [68864, 68903, Hanifi_Rohingya]
- 182, // Range #271: [68912, 68921, Hanifi_Rohingya]
- 2, // Range #272: [69216, 69246, Arabic]
- 184, // Range #273: [69376, 69415, Old_Sogdian]
- 183, // Range #274: [69424, 69465, Sogdian]
- 65, // Range #275: [69632, 69743, Brahmi]
- 65, // Range #276: [69759, 69759, Brahmi]
- 120, // Range #277: [69760, 69825, Kaithi]
- 120, // Range #278: [69837, 69837, Kaithi]
- 152, // Range #279: [69840, 69864, Sora_Sompeng]
- 152, // Range #280: [69872, 69881, Sora_Sompeng]
- 118, // Range #281: [69888, 69958, Chakma]
- 160, // Range #282: [69968, 70006, Mahajani]
- 151, // Range #283: [70016, 70111, Sharada]
- 33, // Range #284: [70113, 70132, Sinhala]
- 157, // Range #285: [70144, 70206, Khojki]
- 164, // Range #286: [70272, 70313, Multani]
- 145, // Range #287: [70320, 70378, Khudawadi]
- 145, // Range #288: [70384, 70393, Khudawadi]
- 137, // Range #289: [70400, 70457, Grantha]
- 137, // Range #290: [70460, 70480, Grantha]
- 137, // Range #291: [70487, 70487, Grantha]
- 137, // Range #292: [70493, 70516, Grantha]
- 170, // Range #293: [70656, 70750, Newa]
- 158, // Range #294: [70784, 70855, Tirhuta]
- 158, // Range #295: [70864, 70873, Tirhuta]
- 166, // Range #296: [71040, 71133, Siddham]
- 163, // Range #297: [71168, 71236, Modi]
- 163, // Range #298: [71248, 71257, Modi]
- 27, // Range #299: [71264, 71276, Mongolian]
- 153, // Range #300: [71296, 71351, Takri]
- 153, // Range #301: [71360, 71369, Takri]
- 161, // Range #302: [71424, 71487, Ahom]
- 178, // Range #303: [71680, 71739, Dogra]
- 146, // Range #304: [71840, 71922, Warang_Citi]
- 146, // Range #305: [71935, 71935, Warang_Citi]
- 177, // Range #306: [72192, 72263, Zanabazar_Square]
- 176, // Range #307: [72272, 72354, Soyombo]
- 165, // Range #308: [72384, 72440, Pau_Cin_Hau]
- 168, // Range #309: [72704, 72773, Bhaiksuki]
- 168, // Range #310: [72784, 72812, Bhaiksuki]
- 169, // Range #311: [72816, 72886, Marchen]
- 175, // Range #312: [72960, 73031, Masaram_Gondi]
- 175, // Range #313: [73040, 73049, Masaram_Gondi]
- 179, // Range #314: [73056, 73112, Gunjala_Gondi]
- 179, // Range #315: [73120, 73129, Gunjala_Gondi]
- 180, // Range #316: [73440, 73464, Makasar]
- 101, // Range #317: [73728, 74649, Cuneiform]
- 101, // Range #318: [74752, 74868, Cuneiform]
- 101, // Range #319: [74880, 75075, Cuneiform]
- 71, // Range #320: [77824, 78894, Egyptian_Hieroglyphs]
- 156, // Range #321: [82944, 83526, Anatolian_Hieroglyphs]
- 130, // Range #322: [92160, 92728, Bamum]
- 149, // Range #323: [92736, 92783, Mro]
- 134, // Range #324: [92880, 92917, Bassa_Vah]
- 75, // Range #325: [92928, 92997, Pahawh_Hmong]
- 75, // Range #326: [93008, 93047, Pahawh_Hmong]
- 75, // Range #327: [93053, 93071, Pahawh_Hmong]
- 181, // Range #328: [93760, 93850, Medefaidrin]
- 92, // Range #329: [93952, 94020, Miao]
- 92, // Range #330: [94032, 94078, Miao]
- 92, // Range #331: [94095, 94111, Miao]
- 154, // Range #332: [94176, 94176, Tangut]
- 150, // Range #333: [94177, 94177, Nushu]
- 154, // Range #334: [94208, 100337, Tangut]
- 154, // Range #335: [100352, 101106, Tangut]
- 22, // Range #336: [110592, 110592, Katakana]
- 20, // Range #337: [110593, 110878, Hiragana]
- 150, // Range #338: [110960, 111355, Nushu]
- 135, // Range #339: [113664, 113770, Duployan]
- 135, // Range #340: [113776, 113800, Duployan]
- 135, // Range #341: [113808, 113823, Duployan]
- 14, // Range #342: [119296, 119365, Greek]
- 112, // Range #343: [120832, 121483, SignWriting]
- 112, // Range #344: [121499, 121519, SignWriting]
- 56, // Range #345: [122880, 122922, Glagolitic]
- 140, // Range #346: [124928, 125142, Mende_Kikakui]
- 167, // Range #347: [125184, 125258, Adlam]
- 167, // Range #348: [125264, 125279, Adlam]
- 2, // Range #349: [126464, 126523, Arabic]
- 2, // Range #350: [126530, 126619, Arabic]
- 2, // Range #351: [126625, 126651, Arabic]
- 2, // Range #352: [126704, 126705, Arabic]
- 20, // Range #353: [127488, 127488, Hiragana]
- 17, // Range #354: [131072, 173782, Han]
- 17, // Range #355: [173824, 177972, Han]
- 17, // Range #356: [177984, 183969, Han]
- 17, // Range #357: [183984, 191456, Han]
- 17, // Range #358: [194560, 195101, Han]
+ 25, // Range #200: [43878, 43879, Latin]
+ 6, // Range #201: [43888, 43967, Cherokee]
+ 115, // Range #202: [43968, 44025, Meetei_Mayek]
+ 18, // Range #203: [44032, 55203, Hangul]
+ 18, // Range #204: [55216, 55291, Hangul]
+ 17, // Range #205: [63744, 64217, Han]
+ 25, // Range #206: [64256, 64262, Latin]
+ 3, // Range #207: [64275, 64279, Armenian]
+ 19, // Range #208: [64285, 64335, Hebrew]
+ 2, // Range #209: [64336, 64449, Arabic]
+ 2, // Range #210: [64467, 64829, Arabic]
+ 2, // Range #211: [64848, 64967, Arabic]
+ 2, // Range #212: [65008, 65021, Arabic]
+ 8, // Range #213: [65070, 65071, Cyrillic]
+ 2, // Range #214: [65136, 65276, Arabic]
+ 25, // Range #215: [65313, 65338, Latin]
+ 25, // Range #216: [65345, 65370, Latin]
+ 22, // Range #217: [65382, 65391, Katakana]
+ 22, // Range #218: [65393, 65437, Katakana]
+ 18, // Range #219: [65440, 65500, Hangul]
+ 49, // Range #220: [65536, 65629, Linear_B]
+ 49, // Range #221: [65664, 65786, Linear_B]
+ 14, // Range #222: [65856, 65934, Greek]
+ 14, // Range #223: [65952, 65952, Greek]
+ 107, // Range #224: [66176, 66204, Lycian]
+ 104, // Range #225: [66208, 66256, Carian]
+ 30, // Range #226: [66304, 66339, Old_Italic]
+ 30, // Range #227: [66349, 66351, Old_Italic]
+ 13, // Range #228: [66352, 66378, Gothic]
+ 89, // Range #229: [66384, 66426, Old_Permic]
+ 53, // Range #230: [66432, 66463, Ugaritic]
+ 61, // Range #231: [66464, 66517, Old_Persian]
+ 9, // Range #232: [66560, 66639, Deseret]
+ 51, // Range #233: [66640, 66687, Shavian]
+ 50, // Range #234: [66688, 66729, Osmanya]
+ 171, // Range #235: [66736, 66811, Osage]
+ 136, // Range #236: [66816, 66855, Elbasan]
+ 159, // Range #237: [66864, 66915, Caucasian_Albanian]
+ 159, // Range #238: [66927, 66927, Caucasian_Albanian]
+ 83, // Range #239: [67072, 67382, Linear_A]
+ 83, // Range #240: [67392, 67413, Linear_A]
+ 83, // Range #241: [67424, 67431, Linear_A]
+ 47, // Range #242: [67584, 67647, Cypriot]
+ 116, // Range #243: [67648, 67679, Imperial_Aramaic]
+ 144, // Range #244: [67680, 67711, Palmyrene]
+ 143, // Range #245: [67712, 67742, Nabataean]
+ 143, // Range #246: [67751, 67759, Nabataean]
+ 162, // Range #247: [67808, 67829, Hatran]
+ 162, // Range #248: [67835, 67839, Hatran]
+ 91, // Range #249: [67840, 67871, Phoenician]
+ 108, // Range #250: [67872, 67897, Lydian]
+ 108, // Range #251: [67903, 67903, Lydian]
+ 86, // Range #252: [67968, 67999, Meroitic_Hieroglyphs]
+ 141, // Range #253: [68000, 68095, Meroitic_Cursive]
+ 57, // Range #254: [68096, 68102, Kharoshthi]
+ 57, // Range #255: [68108, 68168, Kharoshthi]
+ 57, // Range #256: [68176, 68184, Kharoshthi]
+ 133, // Range #257: [68192, 68223, Old_South_Arabian]
+ 142, // Range #258: [68224, 68255, Old_North_Arabian]
+ 121, // Range #259: [68288, 68342, Manichaean]
+ 117, // Range #260: [68352, 68415, Avestan]
+ 125, // Range #261: [68416, 68447, Inscriptional_Parthian]
+ 122, // Range #262: [68448, 68466, Inscriptional_Pahlavi]
+ 122, // Range #263: [68472, 68479, Inscriptional_Pahlavi]
+ 123, // Range #264: [68480, 68497, Psalter_Pahlavi]
+ 123, // Range #265: [68505, 68508, Psalter_Pahlavi]
+ 123, // Range #266: [68521, 68527, Psalter_Pahlavi]
+ 88, // Range #267: [68608, 68680, Old_Turkic]
+ 76, // Range #268: [68736, 68786, Old_Hungarian]
+ 76, // Range #269: [68800, 68850, Old_Hungarian]
+ 76, // Range #270: [68858, 68863, Old_Hungarian]
+ 182, // Range #271: [68864, 68903, Hanifi_Rohingya]
+ 182, // Range #272: [68912, 68921, Hanifi_Rohingya]
+ 2, // Range #273: [69216, 69246, Arabic]
+ 184, // Range #274: [69376, 69415, Old_Sogdian]
+ 183, // Range #275: [69424, 69465, Sogdian]
+ 185, // Range #276: [69600, 69622, Elymaic]
+ 65, // Range #277: [69632, 69743, Brahmi]
+ 65, // Range #278: [69759, 69759, Brahmi]
+ 120, // Range #279: [69760, 69825, Kaithi]
+ 120, // Range #280: [69837, 69837, Kaithi]
+ 152, // Range #281: [69840, 69864, Sora_Sompeng]
+ 152, // Range #282: [69872, 69881, Sora_Sompeng]
+ 118, // Range #283: [69888, 69958, Chakma]
+ 160, // Range #284: [69968, 70006, Mahajani]
+ 151, // Range #285: [70016, 70111, Sharada]
+ 33, // Range #286: [70113, 70132, Sinhala]
+ 157, // Range #287: [70144, 70206, Khojki]
+ 164, // Range #288: [70272, 70313, Multani]
+ 145, // Range #289: [70320, 70378, Khudawadi]
+ 145, // Range #290: [70384, 70393, Khudawadi]
+ 137, // Range #291: [70400, 70457, Grantha]
+ 137, // Range #292: [70460, 70480, Grantha]
+ 137, // Range #293: [70487, 70487, Grantha]
+ 137, // Range #294: [70493, 70516, Grantha]
+ 170, // Range #295: [70656, 70751, Newa]
+ 158, // Range #296: [70784, 70855, Tirhuta]
+ 158, // Range #297: [70864, 70873, Tirhuta]
+ 166, // Range #298: [71040, 71133, Siddham]
+ 163, // Range #299: [71168, 71236, Modi]
+ 163, // Range #300: [71248, 71257, Modi]
+ 27, // Range #301: [71264, 71276, Mongolian]
+ 153, // Range #302: [71296, 71352, Takri]
+ 153, // Range #303: [71360, 71369, Takri]
+ 161, // Range #304: [71424, 71487, Ahom]
+ 178, // Range #305: [71680, 71739, Dogra]
+ 146, // Range #306: [71840, 71922, Warang_Citi]
+ 146, // Range #307: [71935, 71935, Warang_Citi]
+ 187, // Range #308: [72096, 72164, Nandinagari]
+ 177, // Range #309: [72192, 72263, Zanabazar_Square]
+ 176, // Range #310: [72272, 72354, Soyombo]
+ 165, // Range #311: [72384, 72440, Pau_Cin_Hau]
+ 168, // Range #312: [72704, 72773, Bhaiksuki]
+ 168, // Range #313: [72784, 72812, Bhaiksuki]
+ 169, // Range #314: [72816, 72886, Marchen]
+ 175, // Range #315: [72960, 73031, Masaram_Gondi]
+ 175, // Range #316: [73040, 73049, Masaram_Gondi]
+ 179, // Range #317: [73056, 73112, Gunjala_Gondi]
+ 179, // Range #318: [73120, 73129, Gunjala_Gondi]
+ 180, // Range #319: [73440, 73464, Makasar]
+ 35, // Range #320: [73664, 73713, Tamil]
+ 35, // Range #321: [73727, 73727, Tamil]
+ 101, // Range #322: [73728, 74649, Cuneiform]
+ 101, // Range #323: [74752, 74868, Cuneiform]
+ 101, // Range #324: [74880, 75075, Cuneiform]
+ 71, // Range #325: [77824, 78904, Egyptian_Hieroglyphs]
+ 156, // Range #326: [82944, 83526, Anatolian_Hieroglyphs]
+ 130, // Range #327: [92160, 92728, Bamum]
+ 149, // Range #328: [92736, 92783, Mro]
+ 134, // Range #329: [92880, 92917, Bassa_Vah]
+ 75, // Range #330: [92928, 92997, Pahawh_Hmong]
+ 75, // Range #331: [93008, 93047, Pahawh_Hmong]
+ 75, // Range #332: [93053, 93071, Pahawh_Hmong]
+ 181, // Range #333: [93760, 93850, Medefaidrin]
+ 92, // Range #334: [93952, 94087, Miao]
+ 92, // Range #335: [94095, 94111, Miao]
+ 154, // Range #336: [94176, 94176, Tangut]
+ 150, // Range #337: [94177, 94177, Nushu]
+ 154, // Range #338: [94208, 100343, Tangut]
+ 154, // Range #339: [100352, 101106, Tangut]
+ 22, // Range #340: [110592, 110592, Katakana]
+ 20, // Range #341: [110593, 110878, Hiragana]
+ 20, // Range #342: [110928, 110930, Hiragana]
+ 22, // Range #343: [110948, 110951, Katakana]
+ 150, // Range #344: [110960, 111355, Nushu]
+ 135, // Range #345: [113664, 113770, Duployan]
+ 135, // Range #346: [113776, 113800, Duployan]
+ 135, // Range #347: [113808, 113823, Duployan]
+ 14, // Range #348: [119296, 119365, Greek]
+ 112, // Range #349: [120832, 121483, SignWriting]
+ 112, // Range #350: [121499, 121519, SignWriting]
+ 56, // Range #351: [122880, 122922, Glagolitic]
+ 186, // Range #352: [123136, 123215, Nyiakeng_Puachue_Hmong]
+ 188, // Range #353: [123584, 123641, Wancho]
+ 188, // Range #354: [123647, 123647, Wancho]
+ 140, // Range #355: [124928, 125142, Mende_Kikakui]
+ 167, // Range #356: [125184, 125279, Adlam]
+ 2, // Range #357: [126464, 126523, Arabic]
+ 2, // Range #358: [126530, 126619, Arabic]
+ 2, // Range #359: [126625, 126651, Arabic]
+ 2, // Range #360: [126704, 126705, Arabic]
+ 20, // Range #361: [127488, 127488, Hiragana]
+ 17, // Range #362: [131072, 173782, Han]
+ 17, // Range #363: [173824, 177972, Han]
+ 17, // Range #364: [177984, 183969, Han]
+ 17, // Range #365: [183984, 191456, Han]
+ 17, // Range #366: [194560, 195101, Han]
};
-const uint8 kMaxScript = 184;
+const uint8 kMaxScript = 188;
} // namespace approx_script_internal
} // namespace mobile
diff --git a/models/actions_suggestions.en.model b/models/actions_suggestions.en.model
index 976ab88..6cec2b7 100644
--- a/models/actions_suggestions.en.model
+++ b/models/actions_suggestions.en.model
Binary files differ
diff --git a/models/actions_suggestions.universal.model b/models/actions_suggestions.universal.model
index 1fd08e8..60f10e6 100644
--- a/models/actions_suggestions.universal.model
+++ b/models/actions_suggestions.universal.model
Binary files differ
diff --git a/models/textclassifier.ar.model b/models/textclassifier.ar.model
index 6ea9107..9d8e2eb 100644
--- a/models/textclassifier.ar.model
+++ b/models/textclassifier.ar.model
Binary files differ
diff --git a/models/textclassifier.en.model b/models/textclassifier.en.model
index 1b05853..917db91 100644
--- a/models/textclassifier.en.model
+++ b/models/textclassifier.en.model
Binary files differ
diff --git a/models/textclassifier.es.model b/models/textclassifier.es.model
index f8835e3..94b7835 100644
--- a/models/textclassifier.es.model
+++ b/models/textclassifier.es.model
Binary files differ
diff --git a/models/textclassifier.fr.model b/models/textclassifier.fr.model
index c8b75be..19081e5 100644
--- a/models/textclassifier.fr.model
+++ b/models/textclassifier.fr.model
Binary files differ
diff --git a/models/textclassifier.it.model b/models/textclassifier.it.model
index b358915..2f72c36 100644
--- a/models/textclassifier.it.model
+++ b/models/textclassifier.it.model
Binary files differ
diff --git a/models/textclassifier.ja.model b/models/textclassifier.ja.model
index 9a45a74..92d7cef 100644
--- a/models/textclassifier.ja.model
+++ b/models/textclassifier.ja.model
Binary files differ
diff --git a/models/textclassifier.ko.model b/models/textclassifier.ko.model
index c09a27b..7e88f54 100644
--- a/models/textclassifier.ko.model
+++ b/models/textclassifier.ko.model
Binary files differ
diff --git a/models/textclassifier.nl.model b/models/textclassifier.nl.model
index 17c55a5..b2e3923 100644
--- a/models/textclassifier.nl.model
+++ b/models/textclassifier.nl.model
Binary files differ
diff --git a/models/textclassifier.pl.model b/models/textclassifier.pl.model
index ba4bb3c..7231c49 100644
--- a/models/textclassifier.pl.model
+++ b/models/textclassifier.pl.model
Binary files differ
diff --git a/models/textclassifier.pt.model b/models/textclassifier.pt.model
index e3ede0b..cae8692 100644
--- a/models/textclassifier.pt.model
+++ b/models/textclassifier.pt.model
Binary files differ
diff --git a/models/textclassifier.ru.model b/models/textclassifier.ru.model
index 4e2347d..5be2ecc 100644
--- a/models/textclassifier.ru.model
+++ b/models/textclassifier.ru.model
Binary files differ
diff --git a/models/textclassifier.th.model b/models/textclassifier.th.model
index ddced07..321edd7 100644
--- a/models/textclassifier.th.model
+++ b/models/textclassifier.th.model
Binary files differ
diff --git a/models/textclassifier.tr.model b/models/textclassifier.tr.model
index ec98112..6d11cef 100644
--- a/models/textclassifier.tr.model
+++ b/models/textclassifier.tr.model
Binary files differ
diff --git a/models/textclassifier.universal.model b/models/textclassifier.universal.model
index f88ab1b..af19e67 100644
--- a/models/textclassifier.universal.model
+++ b/models/textclassifier.universal.model
Binary files differ
diff --git a/models/textclassifier.zh-Hant.model b/models/textclassifier.zh-Hant.model
index 56b0adb..366c923 100644
--- a/models/textclassifier.zh-Hant.model
+++ b/models/textclassifier.zh-Hant.model
Binary files differ
diff --git a/models/textclassifier.zh.model b/models/textclassifier.zh.model
index 9ded6c9..22f2777 100644
--- a/models/textclassifier.zh.model
+++ b/models/textclassifier.zh.model
Binary files differ