aboutsummaryrefslogtreecommitdiff
path: root/vendor
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-01-29 00:42:05 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-01-29 00:42:05 +0100
commitb8f4479a17e1add06e1532a00ae913cc0f4e9567 (patch)
treec724d7e1cb053b35cefd87d02109abac846fe0a5 /vendor
parent3d9a150f522278f8ab37e299f9aa187931ea2d56 (diff)
Bump librune
Diffstat (limited to 'vendor')
-rwxr-xr-xvendor/librune/gen/gbrk2
-rwxr-xr-xvendor/librune/gen/rtype-cat (renamed from vendor/librune/gen/rtype)22
-rwxr-xr-xvendor/librune/gen/rtype-prop116
-rw-r--r--vendor/librune/gen/rtype-prop.awk61
-rw-r--r--vendor/librune/include/internal/common.h6
-rw-r--r--vendor/librune/include/internal/rtype/cat.h (renamed from vendor/librune/include/internal/rtype_lookup.h)78
-rw-r--r--vendor/librune/include/internal/rtype/lookup-func.h47
-rw-r--r--vendor/librune/include/rtype.h138
-rw-r--r--vendor/librune/lib/rtype/risspace.c3
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_alphabetic.c763
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_ascii_hex_digit.c33
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_bidi_control.c34
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_case_ignorable.c467
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_cased.c187
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_changes_when_casefolded.c652
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_changes_when_casemapped.c161
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_changes_when_lowercased.c639
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_changes_when_titlecased.c656
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_changes_when_uppercased.c657
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_dash.c53
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_default_ignorable_code_point.c47
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_deprecated.c38
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_diacritic.c225
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_extender.c63
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_grapheme_base.c905
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_grapheme_extend.c393
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_hex_digit.c36
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_id_compat_math_continue.c48
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_id_compat_math_start.c43
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_id_continue.c799
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_id_start.c690
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_ideographic.c51
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_ids_binary_operator.c33
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_ids_trinary_operator.c31
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_ids_unary_operator.c31
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_indic_conjunct_break.c230
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_join_control.c31
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_logical_order_exception.c37
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_lowercase.c701
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_math.c168
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_noncharacter_code_point.c47
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_pattern_syntax.c58
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_pattern_white_space.c35
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_prepended_concatenation_mark.c37
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_quotation_mark.c43
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_radical.c33
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_regional_indicator.c31
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_sentence_terminal.c111
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_soft_dotted.c64
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_terminal_punctuation.c138
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_unified_ideograph.c47
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_uppercase.c681
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_variation_selector.c34
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_white_space.c40
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_xid_continue.c806
-rw-r--r--vendor/librune/lib/rtype/rune_has_prop_xid_start.c697
-rw-r--r--vendor/librune/lib/rtype/runeis.c35
-rw-r--r--vendor/librune/make.c30
-rwxr-xr-xvendor/librune/test/tests3
59 files changed, 12176 insertions, 169 deletions
diff --git a/vendor/librune/gen/gbrk b/vendor/librune/gen/gbrk
index 72ee2f7..1146327 100755
--- a/vendor/librune/gen/gbrk
+++ b/vendor/librune/gen/gbrk
@@ -26,8 +26,6 @@ wait
cat <<C
/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */
-/* TODO: Change tables to constexpr from const when Clangd gets better */
-
#ifndef RUNE_INTERNAL_GBRK_LOOKUP_H
#define RUNE_INTERNAL_GBRK_LOOKUP_H
diff --git a/vendor/librune/gen/rtype b/vendor/librune/gen/rtype-cat
index 21916d3..e35fb77 100755
--- a/vendor/librune/gen/rtype
+++ b/vendor/librune/gen/rtype-cat
@@ -12,26 +12,24 @@ cache()
set -e
cd "${0%/*}/.."
-exec >include/internal/rtype_lookup.h
+exec >include/internal/rtype/cat.h
readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt'
cache "$URL"
cat <<C
-/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */
+/* This file is autogenerated by gen/rtype-cat; DO NOT EDIT. */
-/* TODO: Change tables to constexpr from const when Clangd gets better */
-
-#ifndef RUNE_INTERNAL_RTYPE_LOOKUP_H
-#define RUNE_INTERNAL_RTYPE_LOOKUP_H
+#ifndef RUNE_INTERNAL_RTYPE_CAT_H
+#define RUNE_INTERNAL_RTYPE_CAT_H
/* IWYU pragma: private */
/* clang-format off */
-#include "types.h"
-#include "../rtype.h"
+#include "../types.h"
+#include "../../rtype.h"
-static const unicat rtype_lat1_tbl[] = {
+static const enum unicat rtype_cat_lat1_tbl[] = {
C
gawk '
@@ -64,7 +62,7 @@ cat <<C
static const struct {
rune lo, hi;
- unicat cat;
+ enum unicat val;
} rtype_cat_tbl[] = {
C
@@ -88,7 +86,7 @@ BEGIN {
}
END {
- for (i = 0; i <= 0x10FFFF; i++) {
+ for (i = 0x100; i <= 0x10FFFF; i++) {
if (!props[i])
continue
lo = i
@@ -102,5 +100,5 @@ END {
cat <<C
};
-#endif /* !RUNE_INTERNAL_RTYPE_LOOKUP_H */
+#endif /* !RUNE_INTERNAL_RTYPE_CAT_H */
C
diff --git a/vendor/librune/gen/rtype-prop b/vendor/librune/gen/rtype-prop
new file mode 100755
index 0000000..4c62884
--- /dev/null
+++ b/vendor/librune/gen/rtype-prop
@@ -0,0 +1,116 @@
+#!/bin/sh
+
+cache()
+{
+ name="/tmp/librune/rtype/$(basename "$1")"
+ if test ! -f "$name"
+ then
+ mkdir -p /tmp/librune/rtype
+ wget -q "$1" -O "$name"
+ fi
+}
+
+cd "${0%/*}/.."
+
+readonly URL1='https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt'
+readonly URL2='https://www.unicode.org/Public/UCD/latest/ucd/DerivedCoreProperties.txt'
+
+cache "$URL1" &
+cache "$URL2" &
+wait
+
+props1='
+ASCII_Hex_Digit
+Bidi_Control
+Dash
+Deprecated
+Diacritic
+Extender
+Hex_Digit
+ID_Compat_Math_Continue
+ID_Compat_Math_Start
+Ideographic
+IDS_Binary_Operator
+IDS_Trinary_Operator
+IDS_Unary_Operator
+Join_Control
+Logical_Order_Exception
+Noncharacter_Code_Point
+Pattern_Syntax
+Pattern_White_Space
+Prepended_Concatenation_Mark
+Quotation_Mark
+Radical
+Regional_Indicator
+Sentence_Terminal
+Soft_Dotted
+Terminal_Punctuation
+Unified_Ideograph
+Variation_Selector
+White_Space
+'
+
+props2='
+Alphabetic
+Cased
+Case_Ignorable
+Changes_When_Casefolded
+Changes_When_Casemapped
+Changes_When_Lowercased
+Changes_When_Titlecased
+Changes_When_Uppercased
+Default_Ignorable_Code_Point
+Grapheme_Base
+Grapheme_Extend
+ID_Continue
+ID_Start
+Indic_Conjunct_Break
+Lowercase
+Math
+Uppercase
+XID_Continue
+XID_Start
+'
+# InCB
+
+{
+ for prop in $props1
+ do
+ lprop=$(echo $prop | tr A-Z a-z)
+
+ printf 'rune_has_prop_%s…' $lprop >&2
+
+ gawk -M -v prop=$prop -f gen/rtype-prop.awk \
+ /tmp/librune/rtype/PropList.txt \
+ >lib/rtype/rune_has_prop_$lprop.c
+
+ echo "[[unsequenced]] bool rune_has_prop_$lprop(rune);"
+ echo ' DONE' >&2
+ done
+
+ for prop in $props2
+ do
+ lprop=$(echo $prop | tr A-Z a-z)
+
+ printf 'rune_has_prop_%s…' $lprop >&2
+
+ gawk -M -v prop=$prop -f gen/rtype-prop.awk \
+ /tmp/librune/rtype/DerivedCoreProperties.txt \
+ >lib/rtype/rune_has_prop_$lprop.c
+
+ echo "[[unsequenced]] bool rune_has_prop_$lprop(rune);"
+ echo ' DONE' >&2
+ done
+} | gawk '
+ /PROP PREDICATES END/ { no = 0 }
+ FILENAME != "-" && !no { print }
+ FILENAME == "-" { funcs[++i] = $0 }
+
+ /PROP PREDICATES START/ {
+ no = 1
+ asort(funcs)
+ for (i = 1; i <= length(funcs); i++)
+ print funcs[i]
+ }
+' - include/rtype.h \
+| sponge include/rtype.h
diff --git a/vendor/librune/gen/rtype-prop.awk b/vendor/librune/gen/rtype-prop.awk
new file mode 100644
index 0000000..59b4a99
--- /dev/null
+++ b/vendor/librune/gen/rtype-prop.awk
@@ -0,0 +1,61 @@
+BEGIN {
+ FS = "( *#.*| +; +)"
+
+ print "/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */"
+ print ""
+ print "#include \"rtype.h\""
+ print ""
+ print "#include \"internal/common.h\""
+ print ""
+}
+
+$2 == prop || (prop == "Indic_Conjunct_Break" && $2 ~ /InCB;/) {
+ n = split($1, a, /\.\./)
+ lo = strtonum("0x" a[1])
+ hi = strtonum("0x" a[n])
+
+ for (i = lo; i <= hi; i++)
+ xs[i] = 1
+}
+
+END {
+ for (i = 0; i <= 0xFF; i++) {
+ if (xs[i])
+ mask = or(mask, lshift(1, i))
+ }
+ print "#if BIT_LOOKUP"
+ printf "static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x%Xuwb;\n", \
+ mask
+ print "#endif"
+ print ""
+ print "static const struct {"
+ print "\trune lo, hi;"
+ print "} lookup_tbl[] = {"
+
+ for (i = 0; i <= 0x10FFFF; i++) {
+ if (!xs[i])
+ continue
+ lo = i
+ while (xs[i + 1])
+ i++
+ printf "\t{0x%06X, 0x%06X},\n", lo, i
+ }
+
+ print "};"
+ print ""
+ print "#define TYPE bool"
+ print "#define TABLE lookup_tbl"
+ print "#define DEFAULT false"
+ print "#define HAS_VALUE 0"
+ print "#include \"internal/rtype/lookup-func.h\""
+ print ""
+ print "bool"
+ printf "rune_has_prop_%s(rune ch)\n", tolower(prop)
+ print "{"
+ print "\treturn"
+ print "#if BIT_LOOKUP"
+ print "\t\tch <= LATIN1_MAX ? (mask & ch) :"
+ print "#endif"
+ print "\t\tlookup(ch);"
+ print "}"
+}
diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h
index ace9e63..a05f33c 100644
--- a/vendor/librune/include/internal/common.h
+++ b/vendor/librune/include/internal/common.h
@@ -3,6 +3,8 @@
/* IWYU pragma: private */
+#include <limits.h>
+
#define lengthof(a) (sizeof(a) / sizeof(*(a)))
#define U1(x) (((x)&0x80) == 0x00)
@@ -20,4 +22,8 @@
#define LATIN1_MAX 0xFF
+#if BITINT_MAXWIDTH >= LATIN1_MAX + 1
+# define BIT_LOOKUP 1
+#endif
+
#endif /* !RUNE_INTERNAL_COMMON_H */
diff --git a/vendor/librune/include/internal/rtype_lookup.h b/vendor/librune/include/internal/rtype/cat.h
index b4b41fd..d84082a 100644
--- a/vendor/librune/include/internal/rtype_lookup.h
+++ b/vendor/librune/include/internal/rtype/cat.h
@@ -1,17 +1,15 @@
-/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */
+/* This file is autogenerated by gen/rtype-cat; DO NOT EDIT. */
-/* TODO: Change tables to constexpr from const when Clangd gets better */
-
-#ifndef RUNE_INTERNAL_RTYPE_LOOKUP_H
-#define RUNE_INTERNAL_RTYPE_LOOKUP_H
+#ifndef RUNE_INTERNAL_RTYPE_CAT_H
+#define RUNE_INTERNAL_RTYPE_CAT_H
/* IWYU pragma: private */
/* clang-format off */
-#include "types.h"
-#include "../rtype.h"
+#include "../types.h"
+#include "../../rtype.h"
-static const unicat rtype_lat1_tbl[] = {
+static const enum unicat rtype_cat_lat1_tbl[] = {
UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC,
UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC,
UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC,
@@ -48,68 +46,8 @@ static const unicat rtype_lat1_tbl[] = {
static const struct {
rune lo, hi;
- unicat cat;
+ enum unicat val;
} rtype_cat_tbl[] = {
- {0x000000, 0x00001F, UC_CC},
- {0x000020, 0x000020, UC_ZS},
- {0x000021, 0x000023, UC_PO},
- {0x000024, 0x000024, UC_SC},
- {0x000025, 0x000027, UC_PO},
- {0x000028, 0x000028, UC_PS},
- {0x000029, 0x000029, UC_PE},
- {0x00002A, 0x00002A, UC_PO},
- {0x00002B, 0x00002B, UC_SM},
- {0x00002C, 0x00002C, UC_PO},
- {0x00002D, 0x00002D, UC_PD},
- {0x00002E, 0x00002F, UC_PO},
- {0x000030, 0x000039, UC_ND},
- {0x00003A, 0x00003B, UC_PO},
- {0x00003C, 0x00003E, UC_SM},
- {0x00003F, 0x000040, UC_PO},
- {0x000041, 0x00005A, UC_LU},
- {0x00005B, 0x00005B, UC_PS},
- {0x00005C, 0x00005C, UC_PO},
- {0x00005D, 0x00005D, UC_PE},
- {0x00005E, 0x00005E, UC_SK},
- {0x00005F, 0x00005F, UC_PC},
- {0x000060, 0x000060, UC_SK},
- {0x000061, 0x00007A, UC_LL},
- {0x00007B, 0x00007B, UC_PS},
- {0x00007C, 0x00007C, UC_SM},
- {0x00007D, 0x00007D, UC_PE},
- {0x00007E, 0x00007E, UC_SM},
- {0x00007F, 0x00009F, UC_CC},
- {0x0000A0, 0x0000A0, UC_ZS},
- {0x0000A1, 0x0000A1, UC_PO},
- {0x0000A2, 0x0000A5, UC_SC},
- {0x0000A6, 0x0000A6, UC_SO},
- {0x0000A7, 0x0000A7, UC_PO},
- {0x0000A8, 0x0000A8, UC_SK},
- {0x0000A9, 0x0000A9, UC_SO},
- {0x0000AA, 0x0000AA, UC_LO},
- {0x0000AB, 0x0000AB, UC_PI},
- {0x0000AC, 0x0000AC, UC_SM},
- {0x0000AD, 0x0000AD, UC_CF},
- {0x0000AE, 0x0000AE, UC_SO},
- {0x0000AF, 0x0000AF, UC_SK},
- {0x0000B0, 0x0000B0, UC_SO},
- {0x0000B1, 0x0000B1, UC_SM},
- {0x0000B2, 0x0000B3, UC_NO},
- {0x0000B4, 0x0000B4, UC_SK},
- {0x0000B5, 0x0000B5, UC_LL},
- {0x0000B6, 0x0000B7, UC_PO},
- {0x0000B8, 0x0000B8, UC_SK},
- {0x0000B9, 0x0000B9, UC_NO},
- {0x0000BA, 0x0000BA, UC_LO},
- {0x0000BB, 0x0000BB, UC_PF},
- {0x0000BC, 0x0000BE, UC_NO},
- {0x0000BF, 0x0000BF, UC_PO},
- {0x0000C0, 0x0000D6, UC_LU},
- {0x0000D7, 0x0000D7, UC_SM},
- {0x0000D8, 0x0000DE, UC_LU},
- {0x0000DF, 0x0000F6, UC_LL},
- {0x0000F7, 0x0000F7, UC_SM},
- {0x0000F8, 0x0000FF, UC_LL},
{0x000100, 0x000100, UC_LU},
{0x000101, 0x000101, UC_LL},
{0x000102, 0x000102, UC_LU},
@@ -3354,4 +3292,4 @@ static const struct {
{0x100000, 0x10FFFD, UC_CO},
};
-#endif /* !RUNE_INTERNAL_RTYPE_LOOKUP_H */
+#endif /* !RUNE_INTERNAL_RTYPE_CAT_H */
diff --git a/vendor/librune/include/internal/rtype/lookup-func.h b/vendor/librune/include/internal/rtype/lookup-func.h
new file mode 100644
index 0000000..91bda8b
--- /dev/null
+++ b/vendor/librune/include/internal/rtype/lookup-func.h
@@ -0,0 +1,47 @@
+#include <stddef.h>
+
+#include "internal/common.h"
+
+#ifndef TYPE
+# error "TYPE if not defined"
+#endif
+#ifndef DEFAULT
+# error "DEFAULT is not defined"
+#endif
+#ifndef TABLE
+# error "TABLE is not defined"
+#endif
+#ifndef HAS_VALUE
+# error "HAS_VALUE is not defined"
+#endif
+
+[[gnu::always_inline]] static TYPE
+lookup(rune ch)
+{
+ ptrdiff_t lo, hi;
+
+#ifdef LATIN1_TABLE
+ if (ch <= LATIN1_MAX)
+ return LATIN1_TABLE[ch];
+#endif
+
+ lo = 0;
+ hi = lengthof(TABLE) - 1;
+
+ while (lo <= hi) {
+ ptrdiff_t i = (lo + hi) / 2;
+
+ if (ch < TABLE[i].lo)
+ hi = i - 1;
+ else if (ch > TABLE[i].hi)
+ lo = i + 1;
+ else
+#if HAS_VALUE
+ return TABLE[i].val;
+#else
+ return true;
+#endif
+ }
+
+ return DEFAULT;
+}
diff --git a/vendor/librune/include/rtype.h b/vendor/librune/include/rtype.h
index 6c3e8e3..72f054c 100644
--- a/vendor/librune/include/rtype.h
+++ b/vendor/librune/include/rtype.h
@@ -5,50 +5,52 @@
#include "internal/types.h"
-typedef enum [[clang::flag_enum]] : uint_fast32_t {
- UC_CN = 0, /* Not Assigned */
- UC_CC = 1 << 0, /* Control */
- UC_CF = 1 << 1, /* Format */
- UC_CO = 1 << 2, /* Private Use */
- UC_CS = 1 << 3, /* Surrogate */
- UC_LL = 1 << 4, /* Lowercase Letter */
- UC_LM = 1 << 5, /* Modifier Letter */
- UC_LO = 1 << 6, /* Other Letter */
- UC_LT = 1 << 7, /* Titlecase Letter */
- UC_LU = 1 << 8, /* Uppercase Letter */
- UC_MC = 1 << 9, /* Spacing Mark */
- UC_ME = 1 << 10, /* Enclosing Mark */
- UC_MN = 1 << 11, /* Nonspacing Mark */
- UC_ND = 1 << 12, /* Decimal Number */
- UC_NL = 1 << 13, /* Letter Number */
- UC_NO = 1 << 14, /* Other Number */
- UC_PC = 1 << 15, /* Connector Punctuation */
- UC_PD = 1 << 16, /* Dash Punctuation */
- UC_PE = 1 << 17, /* Close Punctuation */
- UC_PF = 1 << 18, /* Final Punctuation */
- UC_PI = 1 << 19, /* Initial Punctuation */
- UC_PO = 1 << 20, /* Other Punctuation */
- UC_PS = 1 << 21, /* Open Punctuation */
- UC_SC = 1 << 22, /* Currency Symbol */
- UC_SK = 1 << 23, /* Modifier Symbol */
- UC_SM = 1 << 24, /* Math Symbol */
- UC_SO = 1 << 25, /* Other Symbol */
- UC_ZL = 1 << 26, /* Line Separator */
- UC_ZP = 1 << 27, /* Paragraph Separator */
- UC_ZS = 1 << 28, /* Space Separator */
+/* clang-format off */
+enum [[clang::flag_enum]] unicat : uint_fast32_t {
+ UC_CN = 0, /* Not Assigned */
+ UC_CC = UINT32_C(1) << 0, /* Control */
+ UC_CF = UINT32_C(1) << 1, /* Format */
+ UC_CO = UINT32_C(1) << 2, /* Private Use */
+ UC_CS = UINT32_C(1) << 3, /* Surrogate */
+ UC_LL = UINT32_C(1) << 4, /* Lowercase Letter */
+ UC_LM = UINT32_C(1) << 5, /* Modifier Letter */
+ UC_LO = UINT32_C(1) << 6, /* Other Letter */
+ UC_LT = UINT32_C(1) << 7, /* Titlecase Letter */
+ UC_LU = UINT32_C(1) << 8, /* Uppercase Letter */
+ UC_MC = UINT32_C(1) << 9, /* Spacing Mark */
+ UC_ME = UINT32_C(1) << 10, /* Enclosing Mark */
+ UC_MN = UINT32_C(1) << 11, /* Nonspacing Mark */
+ UC_ND = UINT32_C(1) << 12, /* Decimal Number */
+ UC_NL = UINT32_C(1) << 13, /* Letter Number */
+ UC_NO = UINT32_C(1) << 14, /* Other Number */
+ UC_PC = UINT32_C(1) << 15, /* Connector Punctuation */
+ UC_PD = UINT32_C(1) << 16, /* Dash Punctuation */
+ UC_PE = UINT32_C(1) << 17, /* Close Punctuation */
+ UC_PF = UINT32_C(1) << 18, /* Final Punctuation */
+ UC_PI = UINT32_C(1) << 19, /* Initial Punctuation */
+ UC_PO = UINT32_C(1) << 20, /* Other Punctuation */
+ UC_PS = UINT32_C(1) << 21, /* Open Punctuation */
+ UC_SC = UINT32_C(1) << 22, /* Currency Symbol */
+ UC_SK = UINT32_C(1) << 23, /* Modifier Symbol */
+ UC_SM = UINT32_C(1) << 24, /* Math Symbol */
+ UC_SO = UINT32_C(1) << 25, /* Other Symbol */
+ UC_ZL = UINT32_C(1) << 26, /* Line Separator */
+ UC_ZP = UINT32_C(1) << 27, /* Paragraph Separator */
+ UC_ZS = UINT32_C(1) << 28, /* Space Separator */
- UC_C = UC_CC | UC_CF | UC_CN | UC_CO | UC_CS, /* Other */
- UC_L = UC_LL | UC_LM | UC_LO | UC_LT | UC_LU, /* Letter */
- UC_M = UC_MC | UC_ME | UC_MN, /* Mark */
- UC_N = UC_ND | UC_NL | UC_NO, /* Number */
- UC_S = UC_SC | UC_SK | UC_SM | UC_SO, /* Symbol */
- UC_Z = UC_ZL | UC_ZP | UC_ZS, /* Separator */
- UC_P = UC_PC | UC_PD | UC_PE | UC_PF | UC_PI /* Punctuation */
- | UC_PO | UC_PS,
-} unicat;
-
-[[unsequenced]] bool runeis(rune, unicat);
+ UC_C = UC_CC | UC_CF | UC_CN | UC_CO | UC_CS, /* Other */
+ UC_L = UC_LL | UC_LM | UC_LO | UC_LT | UC_LU, /* Letter */
+ UC_LC = UC_LU | UC_LL | UC_LT, /* Cased Letter */
+ UC_M = UC_MC | UC_ME | UC_MN, /* Mark */
+ UC_N = UC_ND | UC_NL | UC_NO, /* Number */
+ UC_P = UC_PC | UC_PD | UC_PE | UC_PF | UC_PI /* Punctuation */
+ | UC_PO | UC_PS,
+ UC_S = UC_SC | UC_SK | UC_SM | UC_SO, /* Symbol */
+ UC_Z = UC_ZL | UC_ZP | UC_ZS, /* Separator */
+};
+/* clang-format on */
+[[unsequenced]] bool runeis(rune, enum unicat);
[[unsequenced]] bool riscntrl(rune);
[[unsequenced]] bool risdigit(rune);
[[unsequenced]] bool risgraph(rune);
@@ -61,4 +63,54 @@ typedef enum [[clang::flag_enum]] : uint_fast32_t {
[[unsequenced]] bool ristitle(rune);
[[unsequenced]] bool risupper(rune);
-#endif /* !RUNE_RTYPE_H */
+/* PROP PREDICATES START */
+[[unsequenced]] bool rune_has_prop_alphabetic(rune);
+[[unsequenced]] bool rune_has_prop_ascii_hex_digit(rune);
+[[unsequenced]] bool rune_has_prop_bidi_control(rune);
+[[unsequenced]] bool rune_has_prop_case_ignorable(rune);
+[[unsequenced]] bool rune_has_prop_cased(rune);
+[[unsequenced]] bool rune_has_prop_changes_when_casefolded(rune);
+[[unsequenced]] bool rune_has_prop_changes_when_casemapped(rune);
+[[unsequenced]] bool rune_has_prop_changes_when_lowercased(rune);
+[[unsequenced]] bool rune_has_prop_changes_when_titlecased(rune);
+[[unsequenced]] bool rune_has_prop_changes_when_uppercased(rune);
+[[unsequenced]] bool rune_has_prop_dash(rune);
+[[unsequenced]] bool rune_has_prop_default_ignorable_code_point(rune);
+[[unsequenced]] bool rune_has_prop_deprecated(rune);
+[[unsequenced]] bool rune_has_prop_diacritic(rune);
+[[unsequenced]] bool rune_has_prop_extender(rune);
+[[unsequenced]] bool rune_has_prop_grapheme_base(rune);
+[[unsequenced]] bool rune_has_prop_grapheme_extend(rune);
+[[unsequenced]] bool rune_has_prop_hex_digit(rune);
+[[unsequenced]] bool rune_has_prop_id_compat_math_continue(rune);
+[[unsequenced]] bool rune_has_prop_id_compat_math_start(rune);
+[[unsequenced]] bool rune_has_prop_id_continue(rune);
+[[unsequenced]] bool rune_has_prop_id_start(rune);
+[[unsequenced]] bool rune_has_prop_ideographic(rune);
+[[unsequenced]] bool rune_has_prop_ids_binary_operator(rune);
+[[unsequenced]] bool rune_has_prop_ids_trinary_operator(rune);
+[[unsequenced]] bool rune_has_prop_ids_unary_operator(rune);
+[[unsequenced]] bool rune_has_prop_indic_conjunct_break(rune);
+[[unsequenced]] bool rune_has_prop_join_control(rune);
+[[unsequenced]] bool rune_has_prop_logical_order_exception(rune);
+[[unsequenced]] bool rune_has_prop_lowercase(rune);
+[[unsequenced]] bool rune_has_prop_math(rune);
+[[unsequenced]] bool rune_has_prop_noncharacter_code_point(rune);
+[[unsequenced]] bool rune_has_prop_pattern_syntax(rune);
+[[unsequenced]] bool rune_has_prop_pattern_white_space(rune);
+[[unsequenced]] bool rune_has_prop_prepended_concatenation_mark(rune);
+[[unsequenced]] bool rune_has_prop_quotation_mark(rune);
+[[unsequenced]] bool rune_has_prop_radical(rune);
+[[unsequenced]] bool rune_has_prop_regional_indicator(rune);
+[[unsequenced]] bool rune_has_prop_sentence_terminal(rune);
+[[unsequenced]] bool rune_has_prop_soft_dotted(rune);
+[[unsequenced]] bool rune_has_prop_terminal_punctuation(rune);
+[[unsequenced]] bool rune_has_prop_unified_ideograph(rune);
+[[unsequenced]] bool rune_has_prop_uppercase(rune);
+[[unsequenced]] bool rune_has_prop_variation_selector(rune);
+[[unsequenced]] bool rune_has_prop_white_space(rune);
+[[unsequenced]] bool rune_has_prop_xid_continue(rune);
+[[unsequenced]] bool rune_has_prop_xid_start(rune);
+/* PROP PREDICATES END */
+
+#endif
diff --git a/vendor/librune/lib/rtype/risspace.c b/vendor/librune/lib/rtype/risspace.c
index 992c13b..7cc5689 100644
--- a/vendor/librune/lib/rtype/risspace.c
+++ b/vendor/librune/lib/rtype/risspace.c
@@ -2,8 +2,7 @@
#include "internal/common.h"
-/* TODO: Make constexpr */
-static const bool latin1_space_tbl[LATIN1_MAX + 1] = {
+static constexpr bool latin1_space_tbl[LATIN1_MAX + 1] = {
['\t'] = true, ['\n'] = true, ['\v'] = true, ['\f'] = true,
['\r'] = true, [' '] = true, [0x85] = true, [0xA0] = true,
};
diff --git a/vendor/librune/lib/rtype/rune_has_prop_alphabetic.c b/vendor/librune/lib/rtype/rune_has_prop_alphabetic.c
new file mode 100644
index 0000000..4469505
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_alphabetic.c
@@ -0,0 +1,763 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x000061, 0x00007A},
+ {0x0000AA, 0x0000AA},
+ {0x0000B5, 0x0000B5},
+ {0x0000BA, 0x0000BA},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000F6},
+ {0x0000F8, 0x0002C1},
+ {0x0002C6, 0x0002D1},
+ {0x0002E0, 0x0002E4},
+ {0x0002EC, 0x0002EC},
+ {0x0002EE, 0x0002EE},
+ {0x000345, 0x000345},
+ {0x000370, 0x000374},
+ {0x000376, 0x000377},
+ {0x00037A, 0x00037D},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x0003F5},
+ {0x0003F7, 0x000481},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000559, 0x000559},
+ {0x000560, 0x000588},
+ {0x0005B0, 0x0005BD},
+ {0x0005BF, 0x0005BF},
+ {0x0005C1, 0x0005C2},
+ {0x0005C4, 0x0005C5},
+ {0x0005C7, 0x0005C7},
+ {0x0005D0, 0x0005EA},
+ {0x0005EF, 0x0005F2},
+ {0x000610, 0x00061A},
+ {0x000620, 0x000657},
+ {0x000659, 0x00065F},
+ {0x00066E, 0x0006D3},
+ {0x0006D5, 0x0006DC},
+ {0x0006E1, 0x0006E8},
+ {0x0006ED, 0x0006EF},
+ {0x0006FA, 0x0006FC},
+ {0x0006FF, 0x0006FF},
+ {0x000710, 0x00073F},
+ {0x00074D, 0x0007B1},
+ {0x0007CA, 0x0007EA},
+ {0x0007F4, 0x0007F5},
+ {0x0007FA, 0x0007FA},
+ {0x000800, 0x000817},
+ {0x00081A, 0x00082C},
+ {0x000840, 0x000858},
+ {0x000860, 0x00086A},
+ {0x000870, 0x000887},
+ {0x000889, 0x00088E},
+ {0x0008A0, 0x0008C9},
+ {0x0008D4, 0x0008DF},
+ {0x0008E3, 0x0008E9},
+ {0x0008F0, 0x00093B},
+ {0x00093D, 0x00094C},
+ {0x00094E, 0x000950},
+ {0x000955, 0x000963},
+ {0x000971, 0x000983},
+ {0x000985, 0x00098C},
+ {0x00098F, 0x000990},
+ {0x000993, 0x0009A8},
+ {0x0009AA, 0x0009B0},
+ {0x0009B2, 0x0009B2},
+ {0x0009B6, 0x0009B9},
+ {0x0009BD, 0x0009C4},
+ {0x0009C7, 0x0009C8},
+ {0x0009CB, 0x0009CC},
+ {0x0009CE, 0x0009CE},
+ {0x0009D7, 0x0009D7},
+ {0x0009DC, 0x0009DD},
+ {0x0009DF, 0x0009E3},
+ {0x0009F0, 0x0009F1},
+ {0x0009FC, 0x0009FC},
+ {0x000A01, 0x000A03},
+ {0x000A05, 0x000A0A},
+ {0x000A0F, 0x000A10},
+ {0x000A13, 0x000A28},
+ {0x000A2A, 0x000A30},
+ {0x000A32, 0x000A33},
+ {0x000A35, 0x000A36},
+ {0x000A38, 0x000A39},
+ {0x000A3E, 0x000A42},
+ {0x000A47, 0x000A48},
+ {0x000A4B, 0x000A4C},
+ {0x000A51, 0x000A51},
+ {0x000A59, 0x000A5C},
+ {0x000A5E, 0x000A5E},
+ {0x000A70, 0x000A75},
+ {0x000A81, 0x000A83},
+ {0x000A85, 0x000A8D},
+ {0x000A8F, 0x000A91},
+ {0x000A93, 0x000AA8},
+ {0x000AAA, 0x000AB0},
+ {0x000AB2, 0x000AB3},
+ {0x000AB5, 0x000AB9},
+ {0x000ABD, 0x000AC5},
+ {0x000AC7, 0x000AC9},
+ {0x000ACB, 0x000ACC},
+ {0x000AD0, 0x000AD0},
+ {0x000AE0, 0x000AE3},
+ {0x000AF9, 0x000AFC},
+ {0x000B01, 0x000B03},
+ {0x000B05, 0x000B0C},
+ {0x000B0F, 0x000B10},
+ {0x000B13, 0x000B28},
+ {0x000B2A, 0x000B30},
+ {0x000B32, 0x000B33},
+ {0x000B35, 0x000B39},
+ {0x000B3D, 0x000B44},
+ {0x000B47, 0x000B48},
+ {0x000B4B, 0x000B4C},
+ {0x000B56, 0x000B57},
+ {0x000B5C, 0x000B5D},
+ {0x000B5F, 0x000B63},
+ {0x000B71, 0x000B71},
+ {0x000B82, 0x000B83},
+ {0x000B85, 0x000B8A},
+ {0x000B8E, 0x000B90},
+ {0x000B92, 0x000B95},
+ {0x000B99, 0x000B9A},
+ {0x000B9C, 0x000B9C},
+ {0x000B9E, 0x000B9F},
+ {0x000BA3, 0x000BA4},
+ {0x000BA8, 0x000BAA},
+ {0x000BAE, 0x000BB9},
+ {0x000BBE, 0x000BC2},
+ {0x000BC6, 0x000BC8},
+ {0x000BCA, 0x000BCC},
+ {0x000BD0, 0x000BD0},
+ {0x000BD7, 0x000BD7},
+ {0x000C00, 0x000C0C},
+ {0x000C0E, 0x000C10},
+ {0x000C12, 0x000C28},
+ {0x000C2A, 0x000C39},
+ {0x000C3D, 0x000C44},
+ {0x000C46, 0x000C48},
+ {0x000C4A, 0x000C4C},
+ {0x000C55, 0x000C56},
+ {0x000C58, 0x000C5A},
+ {0x000C5D, 0x000C5D},
+ {0x000C60, 0x000C63},
+ {0x000C80, 0x000C83},
+ {0x000C85, 0x000C8C},
+ {0x000C8E, 0x000C90},
+ {0x000C92, 0x000CA8},
+ {0x000CAA, 0x000CB3},
+ {0x000CB5, 0x000CB9},
+ {0x000CBD, 0x000CC4},
+ {0x000CC6, 0x000CC8},
+ {0x000CCA, 0x000CCC},
+ {0x000CD5, 0x000CD6},
+ {0x000CDD, 0x000CDE},
+ {0x000CE0, 0x000CE3},
+ {0x000CF1, 0x000CF3},
+ {0x000D00, 0x000D0C},
+ {0x000D0E, 0x000D10},
+ {0x000D12, 0x000D3A},
+ {0x000D3D, 0x000D44},
+ {0x000D46, 0x000D48},
+ {0x000D4A, 0x000D4C},
+ {0x000D4E, 0x000D4E},
+ {0x000D54, 0x000D57},
+ {0x000D5F, 0x000D63},
+ {0x000D7A, 0x000D7F},
+ {0x000D81, 0x000D83},
+ {0x000D85, 0x000D96},
+ {0x000D9A, 0x000DB1},
+ {0x000DB3, 0x000DBB},
+ {0x000DBD, 0x000DBD},
+ {0x000DC0, 0x000DC6},
+ {0x000DCF, 0x000DD4},
+ {0x000DD6, 0x000DD6},
+ {0x000DD8, 0x000DDF},
+ {0x000DF2, 0x000DF3},
+ {0x000E01, 0x000E3A},
+ {0x000E40, 0x000E46},
+ {0x000E4D, 0x000E4D},
+ {0x000E81, 0x000E82},
+ {0x000E84, 0x000E84},
+ {0x000E86, 0x000E8A},
+ {0x000E8C, 0x000EA3},
+ {0x000EA5, 0x000EA5},
+ {0x000EA7, 0x000EB9},
+ {0x000EBB, 0x000EBD},
+ {0x000EC0, 0x000EC4},
+ {0x000EC6, 0x000EC6},
+ {0x000ECD, 0x000ECD},
+ {0x000EDC, 0x000EDF},
+ {0x000F00, 0x000F00},
+ {0x000F40, 0x000F47},
+ {0x000F49, 0x000F6C},
+ {0x000F71, 0x000F83},
+ {0x000F88, 0x000F97},
+ {0x000F99, 0x000FBC},
+ {0x001000, 0x001036},
+ {0x001038, 0x001038},
+ {0x00103B, 0x00103F},
+ {0x001050, 0x00108F},
+ {0x00109A, 0x00109D},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x0010FA},
+ {0x0010FC, 0x001248},
+ {0x00124A, 0x00124D},
+ {0x001250, 0x001256},
+ {0x001258, 0x001258},
+ {0x00125A, 0x00125D},
+ {0x001260, 0x001288},
+ {0x00128A, 0x00128D},
+ {0x001290, 0x0012B0},
+ {0x0012B2, 0x0012B5},
+ {0x0012B8, 0x0012BE},
+ {0x0012C0, 0x0012C0},
+ {0x0012C2, 0x0012C5},
+ {0x0012C8, 0x0012D6},
+ {0x0012D8, 0x001310},
+ {0x001312, 0x001315},
+ {0x001318, 0x00135A},
+ {0x001380, 0x00138F},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001401, 0x00166C},
+ {0x00166F, 0x00167F},
+ {0x001681, 0x00169A},
+ {0x0016A0, 0x0016EA},
+ {0x0016EE, 0x0016F8},
+ {0x001700, 0x001713},
+ {0x00171F, 0x001733},
+ {0x001740, 0x001753},
+ {0x001760, 0x00176C},
+ {0x00176E, 0x001770},
+ {0x001772, 0x001773},
+ {0x001780, 0x0017B3},
+ {0x0017B6, 0x0017C8},
+ {0x0017D7, 0x0017D7},
+ {0x0017DC, 0x0017DC},
+ {0x001820, 0x001878},
+ {0x001880, 0x0018AA},
+ {0x0018B0, 0x0018F5},
+ {0x001900, 0x00191E},
+ {0x001920, 0x00192B},
+ {0x001930, 0x001938},
+ {0x001950, 0x00196D},
+ {0x001970, 0x001974},
+ {0x001980, 0x0019AB},
+ {0x0019B0, 0x0019C9},
+ {0x001A00, 0x001A1B},
+ {0x001A20, 0x001A5E},
+ {0x001A61, 0x001A74},
+ {0x001AA7, 0x001AA7},
+ {0x001ABF, 0x001AC0},
+ {0x001ACC, 0x001ACE},
+ {0x001B00, 0x001B33},
+ {0x001B35, 0x001B43},
+ {0x001B45, 0x001B4C},
+ {0x001B80, 0x001BA9},
+ {0x001BAC, 0x001BAF},
+ {0x001BBA, 0x001BE5},
+ {0x001BE7, 0x001BF1},
+ {0x001C00, 0x001C36},
+ {0x001C4D, 0x001C4F},
+ {0x001C5A, 0x001C7D},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001CE9, 0x001CEC},
+ {0x001CEE, 0x001CF3},
+ {0x001CF5, 0x001CF6},
+ {0x001CFA, 0x001CFA},
+ {0x001D00, 0x001DBF},
+ {0x001DE7, 0x001DF4},
+ {0x001E00, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FE0, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFC},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210A, 0x002113},
+ {0x002115, 0x002115},
+ {0x002119, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002126, 0x002126},
+ {0x002128, 0x002128},
+ {0x00212A, 0x00212D},
+ {0x00212F, 0x002139},
+ {0x00213C, 0x00213F},
+ {0x002145, 0x002149},
+ {0x00214E, 0x00214E},
+ {0x002160, 0x002188},
+ {0x0024B6, 0x0024E9},
+ {0x002C00, 0x002CE4},
+ {0x002CEB, 0x002CEE},
+ {0x002CF2, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x002D30, 0x002D67},
+ {0x002D6F, 0x002D6F},
+ {0x002D80, 0x002D96},
+ {0x002DA0, 0x002DA6},
+ {0x002DA8, 0x002DAE},
+ {0x002DB0, 0x002DB6},
+ {0x002DB8, 0x002DBE},
+ {0x002DC0, 0x002DC6},
+ {0x002DC8, 0x002DCE},
+ {0x002DD0, 0x002DD6},
+ {0x002DD8, 0x002DDE},
+ {0x002DE0, 0x002DFF},
+ {0x002E2F, 0x002E2F},
+ {0x003005, 0x003007},
+ {0x003021, 0x003029},
+ {0x003031, 0x003035},
+ {0x003038, 0x00303C},
+ {0x003041, 0x003096},
+ {0x00309D, 0x00309F},
+ {0x0030A1, 0x0030FA},
+ {0x0030FC, 0x0030FF},
+ {0x003105, 0x00312F},
+ {0x003131, 0x00318E},
+ {0x0031A0, 0x0031BF},
+ {0x0031F0, 0x0031FF},
+ {0x003400, 0x004DBF},
+ {0x004E00, 0x00A48C},
+ {0x00A4D0, 0x00A4FD},
+ {0x00A500, 0x00A60C},
+ {0x00A610, 0x00A61F},
+ {0x00A62A, 0x00A62B},
+ {0x00A640, 0x00A66E},
+ {0x00A674, 0x00A67B},
+ {0x00A67F, 0x00A6EF},
+ {0x00A717, 0x00A71F},
+ {0x00A722, 0x00A788},
+ {0x00A78B, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D9},
+ {0x00A7F2, 0x00A805},
+ {0x00A807, 0x00A827},
+ {0x00A840, 0x00A873},
+ {0x00A880, 0x00A8C3},
+ {0x00A8C5, 0x00A8C5},
+ {0x00A8F2, 0x00A8F7},
+ {0x00A8FB, 0x00A8FB},
+ {0x00A8FD, 0x00A8FF},
+ {0x00A90A, 0x00A92A},
+ {0x00A930, 0x00A952},
+ {0x00A960, 0x00A97C},
+ {0x00A980, 0x00A9B2},
+ {0x00A9B4, 0x00A9BF},
+ {0x00A9CF, 0x00A9CF},
+ {0x00A9E0, 0x00A9EF},
+ {0x00A9FA, 0x00A9FE},
+ {0x00AA00, 0x00AA36},
+ {0x00AA40, 0x00AA4D},
+ {0x00AA60, 0x00AA76},
+ {0x00AA7A, 0x00AABE},
+ {0x00AAC0, 0x00AAC0},
+ {0x00AAC2, 0x00AAC2},
+ {0x00AADB, 0x00AADD},
+ {0x00AAE0, 0x00AAEF},
+ {0x00AAF2, 0x00AAF5},
+ {0x00AB01, 0x00AB06},
+ {0x00AB09, 0x00AB0E},
+ {0x00AB11, 0x00AB16},
+ {0x00AB20, 0x00AB26},
+ {0x00AB28, 0x00AB2E},
+ {0x00AB30, 0x00AB5A},
+ {0x00AB5C, 0x00AB69},
+ {0x00AB70, 0x00ABEA},
+ {0x00AC00, 0x00D7A3},
+ {0x00D7B0, 0x00D7C6},
+ {0x00D7CB, 0x00D7FB},
+ {0x00F900, 0x00FA6D},
+ {0x00FA70, 0x00FAD9},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FB1D, 0x00FB28},
+ {0x00FB2A, 0x00FB36},
+ {0x00FB38, 0x00FB3C},
+ {0x00FB3E, 0x00FB3E},
+ {0x00FB40, 0x00FB41},
+ {0x00FB43, 0x00FB44},
+ {0x00FB46, 0x00FBB1},
+ {0x00FBD3, 0x00FD3D},
+ {0x00FD50, 0x00FD8F},
+ {0x00FD92, 0x00FDC7},
+ {0x00FDF0, 0x00FDFB},
+ {0x00FE70, 0x00FE74},
+ {0x00FE76, 0x00FEFC},
+ {0x00FF21, 0x00FF3A},
+ {0x00FF41, 0x00FF5A},
+ {0x00FF66, 0x00FFBE},
+ {0x00FFC2, 0x00FFC7},
+ {0x00FFCA, 0x00FFCF},
+ {0x00FFD2, 0x00FFD7},
+ {0x00FFDA, 0x00FFDC},
+ {0x010000, 0x01000B},
+ {0x01000D, 0x010026},
+ {0x010028, 0x01003A},
+ {0x01003C, 0x01003D},
+ {0x01003F, 0x01004D},
+ {0x010050, 0x01005D},
+ {0x010080, 0x0100FA},
+ {0x010140, 0x010174},
+ {0x010280, 0x01029C},
+ {0x0102A0, 0x0102D0},
+ {0x010300, 0x01031F},
+ {0x01032D, 0x01034A},
+ {0x010350, 0x01037A},
+ {0x010380, 0x01039D},
+ {0x0103A0, 0x0103C3},
+ {0x0103C8, 0x0103CF},
+ {0x0103D1, 0x0103D5},
+ {0x010400, 0x01049D},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010500, 0x010527},
+ {0x010530, 0x010563},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010600, 0x010736},
+ {0x010740, 0x010755},
+ {0x010760, 0x010767},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010800, 0x010805},
+ {0x010808, 0x010808},
+ {0x01080A, 0x010835},
+ {0x010837, 0x010838},
+ {0x01083C, 0x01083C},
+ {0x01083F, 0x010855},
+ {0x010860, 0x010876},
+ {0x010880, 0x01089E},
+ {0x0108E0, 0x0108F2},
+ {0x0108F4, 0x0108F5},
+ {0x010900, 0x010915},
+ {0x010920, 0x010939},
+ {0x010980, 0x0109B7},
+ {0x0109BE, 0x0109BF},
+ {0x010A00, 0x010A03},
+ {0x010A05, 0x010A06},
+ {0x010A0C, 0x010A13},
+ {0x010A15, 0x010A17},
+ {0x010A19, 0x010A35},
+ {0x010A60, 0x010A7C},
+ {0x010A80, 0x010A9C},
+ {0x010AC0, 0x010AC7},
+ {0x010AC9, 0x010AE4},
+ {0x010B00, 0x010B35},
+ {0x010B40, 0x010B55},
+ {0x010B60, 0x010B72},
+ {0x010B80, 0x010B91},
+ {0x010C00, 0x010C48},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x010D00, 0x010D27},
+ {0x010E80, 0x010EA9},
+ {0x010EAB, 0x010EAC},
+ {0x010EB0, 0x010EB1},
+ {0x010F00, 0x010F1C},
+ {0x010F27, 0x010F27},
+ {0x010F30, 0x010F45},
+ {0x010F70, 0x010F81},
+ {0x010FB0, 0x010FC4},
+ {0x010FE0, 0x010FF6},
+ {0x011000, 0x011045},
+ {0x011071, 0x011075},
+ {0x011080, 0x0110B8},
+ {0x0110C2, 0x0110C2},
+ {0x0110D0, 0x0110E8},
+ {0x011100, 0x011132},
+ {0x011144, 0x011147},
+ {0x011150, 0x011172},
+ {0x011176, 0x011176},
+ {0x011180, 0x0111BF},
+ {0x0111C1, 0x0111C4},
+ {0x0111CE, 0x0111CF},
+ {0x0111DA, 0x0111DA},
+ {0x0111DC, 0x0111DC},
+ {0x011200, 0x011211},
+ {0x011213, 0x011234},
+ {0x011237, 0x011237},
+ {0x01123E, 0x011241},
+ {0x011280, 0x011286},
+ {0x011288, 0x011288},
+ {0x01128A, 0x01128D},
+ {0x01128F, 0x01129D},
+ {0x01129F, 0x0112A8},
+ {0x0112B0, 0x0112E8},
+ {0x011300, 0x011303},
+ {0x011305, 0x01130C},
+ {0x01130F, 0x011310},
+ {0x011313, 0x011328},
+ {0x01132A, 0x011330},
+ {0x011332, 0x011333},
+ {0x011335, 0x011339},
+ {0x01133D, 0x011344},
+ {0x011347, 0x011348},
+ {0x01134B, 0x01134C},
+ {0x011350, 0x011350},
+ {0x011357, 0x011357},
+ {0x01135D, 0x011363},
+ {0x011400, 0x011441},
+ {0x011443, 0x011445},
+ {0x011447, 0x01144A},
+ {0x01145F, 0x011461},
+ {0x011480, 0x0114C1},
+ {0x0114C4, 0x0114C5},
+ {0x0114C7, 0x0114C7},
+ {0x011580, 0x0115B5},
+ {0x0115B8, 0x0115BE},
+ {0x0115D8, 0x0115DD},
+ {0x011600, 0x01163E},
+ {0x011640, 0x011640},
+ {0x011644, 0x011644},
+ {0x011680, 0x0116B5},
+ {0x0116B8, 0x0116B8},
+ {0x011700, 0x01171A},
+ {0x01171D, 0x01172A},
+ {0x011740, 0x011746},
+ {0x011800, 0x011838},
+ {0x0118A0, 0x0118DF},
+ {0x0118FF, 0x011906},
+ {0x011909, 0x011909},
+ {0x01190C, 0x011913},
+ {0x011915, 0x011916},
+ {0x011918, 0x011935},
+ {0x011937, 0x011938},
+ {0x01193B, 0x01193C},
+ {0x01193F, 0x011942},
+ {0x0119A0, 0x0119A7},
+ {0x0119AA, 0x0119D7},
+ {0x0119DA, 0x0119DF},
+ {0x0119E1, 0x0119E1},
+ {0x0119E3, 0x0119E4},
+ {0x011A00, 0x011A32},
+ {0x011A35, 0x011A3E},
+ {0x011A50, 0x011A97},
+ {0x011A9D, 0x011A9D},
+ {0x011AB0, 0x011AF8},
+ {0x011C00, 0x011C08},
+ {0x011C0A, 0x011C36},
+ {0x011C38, 0x011C3E},
+ {0x011C40, 0x011C40},
+ {0x011C72, 0x011C8F},
+ {0x011C92, 0x011CA7},
+ {0x011CA9, 0x011CB6},
+ {0x011D00, 0x011D06},
+ {0x011D08, 0x011D09},
+ {0x011D0B, 0x011D36},
+ {0x011D3A, 0x011D3A},
+ {0x011D3C, 0x011D3D},
+ {0x011D3F, 0x011D41},
+ {0x011D43, 0x011D43},
+ {0x011D46, 0x011D47},
+ {0x011D60, 0x011D65},
+ {0x011D67, 0x011D68},
+ {0x011D6A, 0x011D8E},
+ {0x011D90, 0x011D91},
+ {0x011D93, 0x011D96},
+ {0x011D98, 0x011D98},
+ {0x011EE0, 0x011EF6},
+ {0x011F00, 0x011F10},
+ {0x011F12, 0x011F3A},
+ {0x011F3E, 0x011F40},
+ {0x011FB0, 0x011FB0},
+ {0x012000, 0x012399},
+ {0x012400, 0x01246E},
+ {0x012480, 0x012543},
+ {0x012F90, 0x012FF0},
+ {0x013000, 0x01342F},
+ {0x013441, 0x013446},
+ {0x014400, 0x014646},
+ {0x016800, 0x016A38},
+ {0x016A40, 0x016A5E},
+ {0x016A70, 0x016ABE},
+ {0x016AD0, 0x016AED},
+ {0x016B00, 0x016B2F},
+ {0x016B40, 0x016B43},
+ {0x016B63, 0x016B77},
+ {0x016B7D, 0x016B8F},
+ {0x016E40, 0x016E7F},
+ {0x016F00, 0x016F4A},
+ {0x016F4F, 0x016F87},
+ {0x016F8F, 0x016F9F},
+ {0x016FE0, 0x016FE1},
+ {0x016FE3, 0x016FE3},
+ {0x016FF0, 0x016FF1},
+ {0x017000, 0x0187F7},
+ {0x018800, 0x018CD5},
+ {0x018D00, 0x018D08},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01B000, 0x01B122},
+ {0x01B132, 0x01B132},
+ {0x01B150, 0x01B152},
+ {0x01B155, 0x01B155},
+ {0x01B164, 0x01B167},
+ {0x01B170, 0x01B2FB},
+ {0x01BC00, 0x01BC6A},
+ {0x01BC70, 0x01BC7C},
+ {0x01BC80, 0x01BC88},
+ {0x01BC90, 0x01BC99},
+ {0x01BC9E, 0x01BC9E},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D6C0},
+ {0x01D6C2, 0x01D6DA},
+ {0x01D6DC, 0x01D6FA},
+ {0x01D6FC, 0x01D714},
+ {0x01D716, 0x01D734},
+ {0x01D736, 0x01D74E},
+ {0x01D750, 0x01D76E},
+ {0x01D770, 0x01D788},
+ {0x01D78A, 0x01D7A8},
+ {0x01D7AA, 0x01D7C2},
+ {0x01D7C4, 0x01D7CB},
+ {0x01DF00, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E000, 0x01E006},
+ {0x01E008, 0x01E018},
+ {0x01E01B, 0x01E021},
+ {0x01E023, 0x01E024},
+ {0x01E026, 0x01E02A},
+ {0x01E030, 0x01E06D},
+ {0x01E08F, 0x01E08F},
+ {0x01E100, 0x01E12C},
+ {0x01E137, 0x01E13D},
+ {0x01E14E, 0x01E14E},
+ {0x01E290, 0x01E2AD},
+ {0x01E2C0, 0x01E2EB},
+ {0x01E4D0, 0x01E4EB},
+ {0x01E7E0, 0x01E7E6},
+ {0x01E7E8, 0x01E7EB},
+ {0x01E7ED, 0x01E7EE},
+ {0x01E7F0, 0x01E7FE},
+ {0x01E800, 0x01E8C4},
+ {0x01E900, 0x01E943},
+ {0x01E947, 0x01E947},
+ {0x01E94B, 0x01E94B},
+ {0x01EE00, 0x01EE03},
+ {0x01EE05, 0x01EE1F},
+ {0x01EE21, 0x01EE22},
+ {0x01EE24, 0x01EE24},
+ {0x01EE27, 0x01EE27},
+ {0x01EE29, 0x01EE32},
+ {0x01EE34, 0x01EE37},
+ {0x01EE39, 0x01EE39},
+ {0x01EE3B, 0x01EE3B},
+ {0x01EE42, 0x01EE42},
+ {0x01EE47, 0x01EE47},
+ {0x01EE49, 0x01EE49},
+ {0x01EE4B, 0x01EE4B},
+ {0x01EE4D, 0x01EE4F},
+ {0x01EE51, 0x01EE52},
+ {0x01EE54, 0x01EE54},
+ {0x01EE57, 0x01EE57},
+ {0x01EE59, 0x01EE59},
+ {0x01EE5B, 0x01EE5B},
+ {0x01EE5D, 0x01EE5D},
+ {0x01EE5F, 0x01EE5F},
+ {0x01EE61, 0x01EE62},
+ {0x01EE64, 0x01EE64},
+ {0x01EE67, 0x01EE6A},
+ {0x01EE6C, 0x01EE72},
+ {0x01EE74, 0x01EE77},
+ {0x01EE79, 0x01EE7C},
+ {0x01EE7E, 0x01EE7E},
+ {0x01EE80, 0x01EE89},
+ {0x01EE8B, 0x01EE9B},
+ {0x01EEA1, 0x01EEA3},
+ {0x01EEA5, 0x01EEA9},
+ {0x01EEAB, 0x01EEBB},
+ {0x01F130, 0x01F149},
+ {0x01F150, 0x01F169},
+ {0x01F170, 0x01F189},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x02F800, 0x02FA1D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_alphabetic(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_ascii_hex_digit.c b/vendor/librune/lib/rtype/rune_has_prop_ascii_hex_digit.c
new file mode 100644
index 0000000..a94f13f
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_ascii_hex_digit.c
@@ -0,0 +1,33 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7E0000007E03FF000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000030, 0x000039},
+ {0x000041, 0x000046},
+ {0x000061, 0x000066},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_ascii_hex_digit(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_bidi_control.c b/vendor/librune/lib/rtype/rune_has_prop_bidi_control.c
new file mode 100644
index 0000000..1f83e24
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_bidi_control.c
@@ -0,0 +1,34 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x00061C, 0x00061C},
+ {0x00200E, 0x00200F},
+ {0x00202A, 0x00202E},
+ {0x002066, 0x002069},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_bidi_control(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_case_ignorable.c b/vendor/librune/lib/rtype/rune_has_prop_case_ignorable.c
new file mode 100644
index 0000000..9950380
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_case_ignorable.c
@@ -0,0 +1,467 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x190A1000000000000000001400000000400408000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000027, 0x000027},
+ {0x00002E, 0x00002E},
+ {0x00003A, 0x00003A},
+ {0x00005E, 0x00005E},
+ {0x000060, 0x000060},
+ {0x0000A8, 0x0000A8},
+ {0x0000AD, 0x0000AD},
+ {0x0000AF, 0x0000AF},
+ {0x0000B4, 0x0000B4},
+ {0x0000B7, 0x0000B8},
+ {0x0002B0, 0x00036F},
+ {0x000374, 0x000375},
+ {0x00037A, 0x00037A},
+ {0x000384, 0x000385},
+ {0x000387, 0x000387},
+ {0x000483, 0x000489},
+ {0x000559, 0x000559},
+ {0x00055F, 0x00055F},
+ {0x000591, 0x0005BD},
+ {0x0005BF, 0x0005BF},
+ {0x0005C1, 0x0005C2},
+ {0x0005C4, 0x0005C5},
+ {0x0005C7, 0x0005C7},
+ {0x0005F4, 0x0005F4},
+ {0x000600, 0x000605},
+ {0x000610, 0x00061A},
+ {0x00061C, 0x00061C},
+ {0x000640, 0x000640},
+ {0x00064B, 0x00065F},
+ {0x000670, 0x000670},
+ {0x0006D6, 0x0006DD},
+ {0x0006DF, 0x0006E8},
+ {0x0006EA, 0x0006ED},
+ {0x00070F, 0x00070F},
+ {0x000711, 0x000711},
+ {0x000730, 0x00074A},
+ {0x0007A6, 0x0007B0},
+ {0x0007EB, 0x0007F5},
+ {0x0007FA, 0x0007FA},
+ {0x0007FD, 0x0007FD},
+ {0x000816, 0x00082D},
+ {0x000859, 0x00085B},
+ {0x000888, 0x000888},
+ {0x000890, 0x000891},
+ {0x000898, 0x00089F},
+ {0x0008C9, 0x000902},
+ {0x00093A, 0x00093A},
+ {0x00093C, 0x00093C},
+ {0x000941, 0x000948},
+ {0x00094D, 0x00094D},
+ {0x000951, 0x000957},
+ {0x000962, 0x000963},
+ {0x000971, 0x000971},
+ {0x000981, 0x000981},
+ {0x0009BC, 0x0009BC},
+ {0x0009C1, 0x0009C4},
+ {0x0009CD, 0x0009CD},
+ {0x0009E2, 0x0009E3},
+ {0x0009FE, 0x0009FE},
+ {0x000A01, 0x000A02},
+ {0x000A3C, 0x000A3C},
+ {0x000A41, 0x000A42},
+ {0x000A47, 0x000A48},
+ {0x000A4B, 0x000A4D},
+ {0x000A51, 0x000A51},
+ {0x000A70, 0x000A71},
+ {0x000A75, 0x000A75},
+ {0x000A81, 0x000A82},
+ {0x000ABC, 0x000ABC},
+ {0x000AC1, 0x000AC5},
+ {0x000AC7, 0x000AC8},
+ {0x000ACD, 0x000ACD},
+ {0x000AE2, 0x000AE3},
+ {0x000AFA, 0x000AFF},
+ {0x000B01, 0x000B01},
+ {0x000B3C, 0x000B3C},
+ {0x000B3F, 0x000B3F},
+ {0x000B41, 0x000B44},
+ {0x000B4D, 0x000B4D},
+ {0x000B55, 0x000B56},
+ {0x000B62, 0x000B63},
+ {0x000B82, 0x000B82},
+ {0x000BC0, 0x000BC0},
+ {0x000BCD, 0x000BCD},
+ {0x000C00, 0x000C00},
+ {0x000C04, 0x000C04},
+ {0x000C3C, 0x000C3C},
+ {0x000C3E, 0x000C40},
+ {0x000C46, 0x000C48},
+ {0x000C4A, 0x000C4D},
+ {0x000C55, 0x000C56},
+ {0x000C62, 0x000C63},
+ {0x000C81, 0x000C81},
+ {0x000CBC, 0x000CBC},
+ {0x000CBF, 0x000CBF},
+ {0x000CC6, 0x000CC6},
+ {0x000CCC, 0x000CCD},
+ {0x000CE2, 0x000CE3},
+ {0x000D00, 0x000D01},
+ {0x000D3B, 0x000D3C},
+ {0x000D41, 0x000D44},
+ {0x000D4D, 0x000D4D},
+ {0x000D62, 0x000D63},
+ {0x000D81, 0x000D81},
+ {0x000DCA, 0x000DCA},
+ {0x000DD2, 0x000DD4},
+ {0x000DD6, 0x000DD6},
+ {0x000E31, 0x000E31},
+ {0x000E34, 0x000E3A},
+ {0x000E46, 0x000E4E},
+ {0x000EB1, 0x000EB1},
+ {0x000EB4, 0x000EBC},
+ {0x000EC6, 0x000EC6},
+ {0x000EC8, 0x000ECE},
+ {0x000F18, 0x000F19},
+ {0x000F35, 0x000F35},
+ {0x000F37, 0x000F37},
+ {0x000F39, 0x000F39},
+ {0x000F71, 0x000F7E},
+ {0x000F80, 0x000F84},
+ {0x000F86, 0x000F87},
+ {0x000F8D, 0x000F97},
+ {0x000F99, 0x000FBC},
+ {0x000FC6, 0x000FC6},
+ {0x00102D, 0x001030},
+ {0x001032, 0x001037},
+ {0x001039, 0x00103A},
+ {0x00103D, 0x00103E},
+ {0x001058, 0x001059},
+ {0x00105E, 0x001060},
+ {0x001071, 0x001074},
+ {0x001082, 0x001082},
+ {0x001085, 0x001086},
+ {0x00108D, 0x00108D},
+ {0x00109D, 0x00109D},
+ {0x0010FC, 0x0010FC},
+ {0x00135D, 0x00135F},
+ {0x001712, 0x001714},
+ {0x001732, 0x001733},
+ {0x001752, 0x001753},
+ {0x001772, 0x001773},
+ {0x0017B4, 0x0017B5},
+ {0x0017B7, 0x0017BD},
+ {0x0017C6, 0x0017C6},
+ {0x0017C9, 0x0017D3},
+ {0x0017D7, 0x0017D7},
+ {0x0017DD, 0x0017DD},
+ {0x00180B, 0x00180F},
+ {0x001843, 0x001843},
+ {0x001885, 0x001886},
+ {0x0018A9, 0x0018A9},
+ {0x001920, 0x001922},
+ {0x001927, 0x001928},
+ {0x001932, 0x001932},
+ {0x001939, 0x00193B},
+ {0x001A17, 0x001A18},
+ {0x001A1B, 0x001A1B},
+ {0x001A56, 0x001A56},
+ {0x001A58, 0x001A5E},
+ {0x001A60, 0x001A60},
+ {0x001A62, 0x001A62},
+ {0x001A65, 0x001A6C},
+ {0x001A73, 0x001A7C},
+ {0x001A7F, 0x001A7F},
+ {0x001AA7, 0x001AA7},
+ {0x001AB0, 0x001ACE},
+ {0x001B00, 0x001B03},
+ {0x001B34, 0x001B34},
+ {0x001B36, 0x001B3A},
+ {0x001B3C, 0x001B3C},
+ {0x001B42, 0x001B42},
+ {0x001B6B, 0x001B73},
+ {0x001B80, 0x001B81},
+ {0x001BA2, 0x001BA5},
+ {0x001BA8, 0x001BA9},
+ {0x001BAB, 0x001BAD},
+ {0x001BE6, 0x001BE6},
+ {0x001BE8, 0x001BE9},
+ {0x001BED, 0x001BED},
+ {0x001BEF, 0x001BF1},
+ {0x001C2C, 0x001C33},
+ {0x001C36, 0x001C37},
+ {0x001C78, 0x001C7D},
+ {0x001CD0, 0x001CD2},
+ {0x001CD4, 0x001CE0},
+ {0x001CE2, 0x001CE8},
+ {0x001CED, 0x001CED},
+ {0x001CF4, 0x001CF4},
+ {0x001CF8, 0x001CF9},
+ {0x001D2C, 0x001D6A},
+ {0x001D78, 0x001D78},
+ {0x001D9B, 0x001DFF},
+ {0x001FBD, 0x001FBD},
+ {0x001FBF, 0x001FC1},
+ {0x001FCD, 0x001FCF},
+ {0x001FDD, 0x001FDF},
+ {0x001FED, 0x001FEF},
+ {0x001FFD, 0x001FFE},
+ {0x00200B, 0x00200F},
+ {0x002018, 0x002019},
+ {0x002024, 0x002024},
+ {0x002027, 0x002027},
+ {0x00202A, 0x00202E},
+ {0x002060, 0x002064},
+ {0x002066, 0x00206F},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x0020D0, 0x0020F0},
+ {0x002C7C, 0x002C7D},
+ {0x002CEF, 0x002CF1},
+ {0x002D6F, 0x002D6F},
+ {0x002D7F, 0x002D7F},
+ {0x002DE0, 0x002DFF},
+ {0x002E2F, 0x002E2F},
+ {0x003005, 0x003005},
+ {0x00302A, 0x00302D},
+ {0x003031, 0x003035},
+ {0x00303B, 0x00303B},
+ {0x003099, 0x00309E},
+ {0x0030FC, 0x0030FE},
+ {0x00A015, 0x00A015},
+ {0x00A4F8, 0x00A4FD},
+ {0x00A60C, 0x00A60C},
+ {0x00A66F, 0x00A672},
+ {0x00A674, 0x00A67D},
+ {0x00A67F, 0x00A67F},
+ {0x00A69C, 0x00A69F},
+ {0x00A6F0, 0x00A6F1},
+ {0x00A700, 0x00A721},
+ {0x00A770, 0x00A770},
+ {0x00A788, 0x00A78A},
+ {0x00A7F2, 0x00A7F4},
+ {0x00A7F8, 0x00A7F9},
+ {0x00A802, 0x00A802},
+ {0x00A806, 0x00A806},
+ {0x00A80B, 0x00A80B},
+ {0x00A825, 0x00A826},
+ {0x00A82C, 0x00A82C},
+ {0x00A8C4, 0x00A8C5},
+ {0x00A8E0, 0x00A8F1},
+ {0x00A8FF, 0x00A8FF},
+ {0x00A926, 0x00A92D},
+ {0x00A947, 0x00A951},
+ {0x00A980, 0x00A982},
+ {0x00A9B3, 0x00A9B3},
+ {0x00A9B6, 0x00A9B9},
+ {0x00A9BC, 0x00A9BD},
+ {0x00A9CF, 0x00A9CF},
+ {0x00A9E5, 0x00A9E6},
+ {0x00AA29, 0x00AA2E},
+ {0x00AA31, 0x00AA32},
+ {0x00AA35, 0x00AA36},
+ {0x00AA43, 0x00AA43},
+ {0x00AA4C, 0x00AA4C},
+ {0x00AA70, 0x00AA70},
+ {0x00AA7C, 0x00AA7C},
+ {0x00AAB0, 0x00AAB0},
+ {0x00AAB2, 0x00AAB4},
+ {0x00AAB7, 0x00AAB8},
+ {0x00AABE, 0x00AABF},
+ {0x00AAC1, 0x00AAC1},
+ {0x00AADD, 0x00AADD},
+ {0x00AAEC, 0x00AAED},
+ {0x00AAF3, 0x00AAF4},
+ {0x00AAF6, 0x00AAF6},
+ {0x00AB5B, 0x00AB5F},
+ {0x00AB69, 0x00AB6B},
+ {0x00ABE5, 0x00ABE5},
+ {0x00ABE8, 0x00ABE8},
+ {0x00ABED, 0x00ABED},
+ {0x00FB1E, 0x00FB1E},
+ {0x00FBB2, 0x00FBC2},
+ {0x00FE00, 0x00FE0F},
+ {0x00FE13, 0x00FE13},
+ {0x00FE20, 0x00FE2F},
+ {0x00FE52, 0x00FE52},
+ {0x00FE55, 0x00FE55},
+ {0x00FEFF, 0x00FEFF},
+ {0x00FF07, 0x00FF07},
+ {0x00FF0E, 0x00FF0E},
+ {0x00FF1A, 0x00FF1A},
+ {0x00FF3E, 0x00FF3E},
+ {0x00FF40, 0x00FF40},
+ {0x00FF70, 0x00FF70},
+ {0x00FF9E, 0x00FF9F},
+ {0x00FFE3, 0x00FFE3},
+ {0x00FFF9, 0x00FFFB},
+ {0x0101FD, 0x0101FD},
+ {0x0102E0, 0x0102E0},
+ {0x010376, 0x01037A},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010A01, 0x010A03},
+ {0x010A05, 0x010A06},
+ {0x010A0C, 0x010A0F},
+ {0x010A38, 0x010A3A},
+ {0x010A3F, 0x010A3F},
+ {0x010AE5, 0x010AE6},
+ {0x010D24, 0x010D27},
+ {0x010EAB, 0x010EAC},
+ {0x010EFD, 0x010EFF},
+ {0x010F46, 0x010F50},
+ {0x010F82, 0x010F85},
+ {0x011001, 0x011001},
+ {0x011038, 0x011046},
+ {0x011070, 0x011070},
+ {0x011073, 0x011074},
+ {0x01107F, 0x011081},
+ {0x0110B3, 0x0110B6},
+ {0x0110B9, 0x0110BA},
+ {0x0110BD, 0x0110BD},
+ {0x0110C2, 0x0110C2},
+ {0x0110CD, 0x0110CD},
+ {0x011100, 0x011102},
+ {0x011127, 0x01112B},
+ {0x01112D, 0x011134},
+ {0x011173, 0x011173},
+ {0x011180, 0x011181},
+ {0x0111B6, 0x0111BE},
+ {0x0111C9, 0x0111CC},
+ {0x0111CF, 0x0111CF},
+ {0x01122F, 0x011231},
+ {0x011234, 0x011234},
+ {0x011236, 0x011237},
+ {0x01123E, 0x01123E},
+ {0x011241, 0x011241},
+ {0x0112DF, 0x0112DF},
+ {0x0112E3, 0x0112EA},
+ {0x011300, 0x011301},
+ {0x01133B, 0x01133C},
+ {0x011340, 0x011340},
+ {0x011366, 0x01136C},
+ {0x011370, 0x011374},
+ {0x011438, 0x01143F},
+ {0x011442, 0x011444},
+ {0x011446, 0x011446},
+ {0x01145E, 0x01145E},
+ {0x0114B3, 0x0114B8},
+ {0x0114BA, 0x0114BA},
+ {0x0114BF, 0x0114C0},
+ {0x0114C2, 0x0114C3},
+ {0x0115B2, 0x0115B5},
+ {0x0115BC, 0x0115BD},
+ {0x0115BF, 0x0115C0},
+ {0x0115DC, 0x0115DD},
+ {0x011633, 0x01163A},
+ {0x01163D, 0x01163D},
+ {0x01163F, 0x011640},
+ {0x0116AB, 0x0116AB},
+ {0x0116AD, 0x0116AD},
+ {0x0116B0, 0x0116B5},
+ {0x0116B7, 0x0116B7},
+ {0x01171D, 0x01171F},
+ {0x011722, 0x011725},
+ {0x011727, 0x01172B},
+ {0x01182F, 0x011837},
+ {0x011839, 0x01183A},
+ {0x01193B, 0x01193C},
+ {0x01193E, 0x01193E},
+ {0x011943, 0x011943},
+ {0x0119D4, 0x0119D7},
+ {0x0119DA, 0x0119DB},
+ {0x0119E0, 0x0119E0},
+ {0x011A01, 0x011A0A},
+ {0x011A33, 0x011A38},
+ {0x011A3B, 0x011A3E},
+ {0x011A47, 0x011A47},
+ {0x011A51, 0x011A56},
+ {0x011A59, 0x011A5B},
+ {0x011A8A, 0x011A96},
+ {0x011A98, 0x011A99},
+ {0x011C30, 0x011C36},
+ {0x011C38, 0x011C3D},
+ {0x011C3F, 0x011C3F},
+ {0x011C92, 0x011CA7},
+ {0x011CAA, 0x011CB0},
+ {0x011CB2, 0x011CB3},
+ {0x011CB5, 0x011CB6},
+ {0x011D31, 0x011D36},
+ {0x011D3A, 0x011D3A},
+ {0x011D3C, 0x011D3D},
+ {0x011D3F, 0x011D45},
+ {0x011D47, 0x011D47},
+ {0x011D90, 0x011D91},
+ {0x011D95, 0x011D95},
+ {0x011D97, 0x011D97},
+ {0x011EF3, 0x011EF4},
+ {0x011F00, 0x011F01},
+ {0x011F36, 0x011F3A},
+ {0x011F40, 0x011F40},
+ {0x011F42, 0x011F42},
+ {0x013430, 0x013440},
+ {0x013447, 0x013455},
+ {0x016AF0, 0x016AF4},
+ {0x016B30, 0x016B36},
+ {0x016B40, 0x016B43},
+ {0x016F4F, 0x016F4F},
+ {0x016F8F, 0x016F9F},
+ {0x016FE0, 0x016FE1},
+ {0x016FE3, 0x016FE4},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01BC9D, 0x01BC9E},
+ {0x01BCA0, 0x01BCA3},
+ {0x01CF00, 0x01CF2D},
+ {0x01CF30, 0x01CF46},
+ {0x01D167, 0x01D169},
+ {0x01D173, 0x01D182},
+ {0x01D185, 0x01D18B},
+ {0x01D1AA, 0x01D1AD},
+ {0x01D242, 0x01D244},
+ {0x01DA00, 0x01DA36},
+ {0x01DA3B, 0x01DA6C},
+ {0x01DA75, 0x01DA75},
+ {0x01DA84, 0x01DA84},
+ {0x01DA9B, 0x01DA9F},
+ {0x01DAA1, 0x01DAAF},
+ {0x01E000, 0x01E006},
+ {0x01E008, 0x01E018},
+ {0x01E01B, 0x01E021},
+ {0x01E023, 0x01E024},
+ {0x01E026, 0x01E02A},
+ {0x01E030, 0x01E06D},
+ {0x01E08F, 0x01E08F},
+ {0x01E130, 0x01E13D},
+ {0x01E2AE, 0x01E2AE},
+ {0x01E2EC, 0x01E2EF},
+ {0x01E4EB, 0x01E4EF},
+ {0x01E8D0, 0x01E8D6},
+ {0x01E944, 0x01E94B},
+ {0x01F3FB, 0x01F3FF},
+ {0x0E0001, 0x0E0001},
+ {0x0E0020, 0x0E007F},
+ {0x0E0100, 0x0E01EF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_case_ignorable(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_cased.c b/vendor/librune/lib/rtype/rune_has_prop_cased.c
new file mode 100644
index 0000000..3d1fb30
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_cased.c
@@ -0,0 +1,187 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x000061, 0x00007A},
+ {0x0000AA, 0x0000AA},
+ {0x0000B5, 0x0000B5},
+ {0x0000BA, 0x0000BA},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000F6},
+ {0x0000F8, 0x0001BA},
+ {0x0001BC, 0x0001BF},
+ {0x0001C4, 0x000293},
+ {0x000295, 0x0002B8},
+ {0x0002C0, 0x0002C1},
+ {0x0002E0, 0x0002E4},
+ {0x000345, 0x000345},
+ {0x000370, 0x000373},
+ {0x000376, 0x000377},
+ {0x00037A, 0x00037D},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x0003F5},
+ {0x0003F7, 0x000481},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000560, 0x000588},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x0010FA},
+ {0x0010FC, 0x0010FF},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001D00, 0x001DBF},
+ {0x001E00, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FE0, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFC},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210A, 0x002113},
+ {0x002115, 0x002115},
+ {0x002119, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002126, 0x002126},
+ {0x002128, 0x002128},
+ {0x00212A, 0x00212D},
+ {0x00212F, 0x002134},
+ {0x002139, 0x002139},
+ {0x00213C, 0x00213F},
+ {0x002145, 0x002149},
+ {0x00214E, 0x00214E},
+ {0x002160, 0x00217F},
+ {0x002183, 0x002184},
+ {0x0024B6, 0x0024E9},
+ {0x002C00, 0x002CE4},
+ {0x002CEB, 0x002CEE},
+ {0x002CF2, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x00A640, 0x00A66D},
+ {0x00A680, 0x00A69D},
+ {0x00A722, 0x00A787},
+ {0x00A78B, 0x00A78E},
+ {0x00A790, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D9},
+ {0x00A7F2, 0x00A7F6},
+ {0x00A7F8, 0x00A7FA},
+ {0x00AB30, 0x00AB5A},
+ {0x00AB5C, 0x00AB69},
+ {0x00AB70, 0x00ABBF},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FF21, 0x00FF3A},
+ {0x00FF41, 0x00FF5A},
+ {0x010400, 0x01044F},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010780, 0x010780},
+ {0x010783, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x0118A0, 0x0118DF},
+ {0x016E40, 0x016E7F},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D6C0},
+ {0x01D6C2, 0x01D6DA},
+ {0x01D6DC, 0x01D6FA},
+ {0x01D6FC, 0x01D714},
+ {0x01D716, 0x01D734},
+ {0x01D736, 0x01D74E},
+ {0x01D750, 0x01D76E},
+ {0x01D770, 0x01D788},
+ {0x01D78A, 0x01D7A8},
+ {0x01D7AA, 0x01D7C2},
+ {0x01D7C4, 0x01D7CB},
+ {0x01DF00, 0x01DF09},
+ {0x01DF0B, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E030, 0x01E06D},
+ {0x01E900, 0x01E943},
+ {0x01F130, 0x01F149},
+ {0x01F150, 0x01F169},
+ {0x01F170, 0x01F189},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_cased(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_casefolded.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casefolded.c
new file mode 100644
index 0000000..52c30a4
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casefolded.c
@@ -0,0 +1,652 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF00200000000000000000000007FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x0000B5, 0x0000B5},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000DF},
+ {0x000100, 0x000100},
+ {0x000102, 0x000102},
+ {0x000104, 0x000104},
+ {0x000106, 0x000106},
+ {0x000108, 0x000108},
+ {0x00010A, 0x00010A},
+ {0x00010C, 0x00010C},
+ {0x00010E, 0x00010E},
+ {0x000110, 0x000110},
+ {0x000112, 0x000112},
+ {0x000114, 0x000114},
+ {0x000116, 0x000116},
+ {0x000118, 0x000118},
+ {0x00011A, 0x00011A},
+ {0x00011C, 0x00011C},
+ {0x00011E, 0x00011E},
+ {0x000120, 0x000120},
+ {0x000122, 0x000122},
+ {0x000124, 0x000124},
+ {0x000126, 0x000126},
+ {0x000128, 0x000128},
+ {0x00012A, 0x00012A},
+ {0x00012C, 0x00012C},
+ {0x00012E, 0x00012E},
+ {0x000130, 0x000130},
+ {0x000132, 0x000132},
+ {0x000134, 0x000134},
+ {0x000136, 0x000136},
+ {0x000139, 0x000139},
+ {0x00013B, 0x00013B},
+ {0x00013D, 0x00013D},
+ {0x00013F, 0x00013F},
+ {0x000141, 0x000141},
+ {0x000143, 0x000143},
+ {0x000145, 0x000145},
+ {0x000147, 0x000147},
+ {0x000149, 0x00014A},
+ {0x00014C, 0x00014C},
+ {0x00014E, 0x00014E},
+ {0x000150, 0x000150},
+ {0x000152, 0x000152},
+ {0x000154, 0x000154},
+ {0x000156, 0x000156},
+ {0x000158, 0x000158},
+ {0x00015A, 0x00015A},
+ {0x00015C, 0x00015C},
+ {0x00015E, 0x00015E},
+ {0x000160, 0x000160},
+ {0x000162, 0x000162},
+ {0x000164, 0x000164},
+ {0x000166, 0x000166},
+ {0x000168, 0x000168},
+ {0x00016A, 0x00016A},
+ {0x00016C, 0x00016C},
+ {0x00016E, 0x00016E},
+ {0x000170, 0x000170},
+ {0x000172, 0x000172},
+ {0x000174, 0x000174},
+ {0x000176, 0x000176},
+ {0x000178, 0x000179},
+ {0x00017B, 0x00017B},
+ {0x00017D, 0x00017D},
+ {0x00017F, 0x00017F},
+ {0x000181, 0x000182},
+ {0x000184, 0x000184},
+ {0x000186, 0x000187},
+ {0x000189, 0x00018B},
+ {0x00018E, 0x000191},
+ {0x000193, 0x000194},
+ {0x000196, 0x000198},
+ {0x00019C, 0x00019D},
+ {0x00019F, 0x0001A0},
+ {0x0001A2, 0x0001A2},
+ {0x0001A4, 0x0001A4},
+ {0x0001A6, 0x0001A7},
+ {0x0001A9, 0x0001A9},
+ {0x0001AC, 0x0001AC},
+ {0x0001AE, 0x0001AF},
+ {0x0001B1, 0x0001B3},
+ {0x0001B5, 0x0001B5},
+ {0x0001B7, 0x0001B8},
+ {0x0001BC, 0x0001BC},
+ {0x0001C4, 0x0001C5},
+ {0x0001C7, 0x0001C8},
+ {0x0001CA, 0x0001CB},
+ {0x0001CD, 0x0001CD},
+ {0x0001CF, 0x0001CF},
+ {0x0001D1, 0x0001D1},
+ {0x0001D3, 0x0001D3},
+ {0x0001D5, 0x0001D5},
+ {0x0001D7, 0x0001D7},
+ {0x0001D9, 0x0001D9},
+ {0x0001DB, 0x0001DB},
+ {0x0001DE, 0x0001DE},
+ {0x0001E0, 0x0001E0},
+ {0x0001E2, 0x0001E2},
+ {0x0001E4, 0x0001E4},
+ {0x0001E6, 0x0001E6},
+ {0x0001E8, 0x0001E8},
+ {0x0001EA, 0x0001EA},
+ {0x0001EC, 0x0001EC},
+ {0x0001EE, 0x0001EE},
+ {0x0001F1, 0x0001F2},
+ {0x0001F4, 0x0001F4},
+ {0x0001F6, 0x0001F8},
+ {0x0001FA, 0x0001FA},
+ {0x0001FC, 0x0001FC},
+ {0x0001FE, 0x0001FE},
+ {0x000200, 0x000200},
+ {0x000202, 0x000202},
+ {0x000204, 0x000204},
+ {0x000206, 0x000206},
+ {0x000208, 0x000208},
+ {0x00020A, 0x00020A},
+ {0x00020C, 0x00020C},
+ {0x00020E, 0x00020E},
+ {0x000210, 0x000210},
+ {0x000212, 0x000212},
+ {0x000214, 0x000214},
+ {0x000216, 0x000216},
+ {0x000218, 0x000218},
+ {0x00021A, 0x00021A},
+ {0x00021C, 0x00021C},
+ {0x00021E, 0x00021E},
+ {0x000220, 0x000220},
+ {0x000222, 0x000222},
+ {0x000224, 0x000224},
+ {0x000226, 0x000226},
+ {0x000228, 0x000228},
+ {0x00022A, 0x00022A},
+ {0x00022C, 0x00022C},
+ {0x00022E, 0x00022E},
+ {0x000230, 0x000230},
+ {0x000232, 0x000232},
+ {0x00023A, 0x00023B},
+ {0x00023D, 0x00023E},
+ {0x000241, 0x000241},
+ {0x000243, 0x000246},
+ {0x000248, 0x000248},
+ {0x00024A, 0x00024A},
+ {0x00024C, 0x00024C},
+ {0x00024E, 0x00024E},
+ {0x000345, 0x000345},
+ {0x000370, 0x000370},
+ {0x000372, 0x000372},
+ {0x000376, 0x000376},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x00038F},
+ {0x000391, 0x0003A1},
+ {0x0003A3, 0x0003AB},
+ {0x0003C2, 0x0003C2},
+ {0x0003CF, 0x0003D1},
+ {0x0003D5, 0x0003D6},
+ {0x0003D8, 0x0003D8},
+ {0x0003DA, 0x0003DA},
+ {0x0003DC, 0x0003DC},
+ {0x0003DE, 0x0003DE},
+ {0x0003E0, 0x0003E0},
+ {0x0003E2, 0x0003E2},
+ {0x0003E4, 0x0003E4},
+ {0x0003E6, 0x0003E6},
+ {0x0003E8, 0x0003E8},
+ {0x0003EA, 0x0003EA},
+ {0x0003EC, 0x0003EC},
+ {0x0003EE, 0x0003EE},
+ {0x0003F0, 0x0003F1},
+ {0x0003F4, 0x0003F5},
+ {0x0003F7, 0x0003F7},
+ {0x0003F9, 0x0003FA},
+ {0x0003FD, 0x00042F},
+ {0x000460, 0x000460},
+ {0x000462, 0x000462},
+ {0x000464, 0x000464},
+ {0x000466, 0x000466},
+ {0x000468, 0x000468},
+ {0x00046A, 0x00046A},
+ {0x00046C, 0x00046C},
+ {0x00046E, 0x00046E},
+ {0x000470, 0x000470},
+ {0x000472, 0x000472},
+ {0x000474, 0x000474},
+ {0x000476, 0x000476},
+ {0x000478, 0x000478},
+ {0x00047A, 0x00047A},
+ {0x00047C, 0x00047C},
+ {0x00047E, 0x00047E},
+ {0x000480, 0x000480},
+ {0x00048A, 0x00048A},
+ {0x00048C, 0x00048C},
+ {0x00048E, 0x00048E},
+ {0x000490, 0x000490},
+ {0x000492, 0x000492},
+ {0x000494, 0x000494},
+ {0x000496, 0x000496},
+ {0x000498, 0x000498},
+ {0x00049A, 0x00049A},
+ {0x00049C, 0x00049C},
+ {0x00049E, 0x00049E},
+ {0x0004A0, 0x0004A0},
+ {0x0004A2, 0x0004A2},
+ {0x0004A4, 0x0004A4},
+ {0x0004A6, 0x0004A6},
+ {0x0004A8, 0x0004A8},
+ {0x0004AA, 0x0004AA},
+ {0x0004AC, 0x0004AC},
+ {0x0004AE, 0x0004AE},
+ {0x0004B0, 0x0004B0},
+ {0x0004B2, 0x0004B2},
+ {0x0004B4, 0x0004B4},
+ {0x0004B6, 0x0004B6},
+ {0x0004B8, 0x0004B8},
+ {0x0004BA, 0x0004BA},
+ {0x0004BC, 0x0004BC},
+ {0x0004BE, 0x0004BE},
+ {0x0004C0, 0x0004C1},
+ {0x0004C3, 0x0004C3},
+ {0x0004C5, 0x0004C5},
+ {0x0004C7, 0x0004C7},
+ {0x0004C9, 0x0004C9},
+ {0x0004CB, 0x0004CB},
+ {0x0004CD, 0x0004CD},
+ {0x0004D0, 0x0004D0},
+ {0x0004D2, 0x0004D2},
+ {0x0004D4, 0x0004D4},
+ {0x0004D6, 0x0004D6},
+ {0x0004D8, 0x0004D8},
+ {0x0004DA, 0x0004DA},
+ {0x0004DC, 0x0004DC},
+ {0x0004DE, 0x0004DE},
+ {0x0004E0, 0x0004E0},
+ {0x0004E2, 0x0004E2},
+ {0x0004E4, 0x0004E4},
+ {0x0004E6, 0x0004E6},
+ {0x0004E8, 0x0004E8},
+ {0x0004EA, 0x0004EA},
+ {0x0004EC, 0x0004EC},
+ {0x0004EE, 0x0004EE},
+ {0x0004F0, 0x0004F0},
+ {0x0004F2, 0x0004F2},
+ {0x0004F4, 0x0004F4},
+ {0x0004F6, 0x0004F6},
+ {0x0004F8, 0x0004F8},
+ {0x0004FA, 0x0004FA},
+ {0x0004FC, 0x0004FC},
+ {0x0004FE, 0x0004FE},
+ {0x000500, 0x000500},
+ {0x000502, 0x000502},
+ {0x000504, 0x000504},
+ {0x000506, 0x000506},
+ {0x000508, 0x000508},
+ {0x00050A, 0x00050A},
+ {0x00050C, 0x00050C},
+ {0x00050E, 0x00050E},
+ {0x000510, 0x000510},
+ {0x000512, 0x000512},
+ {0x000514, 0x000514},
+ {0x000516, 0x000516},
+ {0x000518, 0x000518},
+ {0x00051A, 0x00051A},
+ {0x00051C, 0x00051C},
+ {0x00051E, 0x00051E},
+ {0x000520, 0x000520},
+ {0x000522, 0x000522},
+ {0x000524, 0x000524},
+ {0x000526, 0x000526},
+ {0x000528, 0x000528},
+ {0x00052A, 0x00052A},
+ {0x00052C, 0x00052C},
+ {0x00052E, 0x00052E},
+ {0x000531, 0x000556},
+ {0x000587, 0x000587},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0013F8, 0x0013FD},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001E00, 0x001E00},
+ {0x001E02, 0x001E02},
+ {0x001E04, 0x001E04},
+ {0x001E06, 0x001E06},
+ {0x001E08, 0x001E08},
+ {0x001E0A, 0x001E0A},
+ {0x001E0C, 0x001E0C},
+ {0x001E0E, 0x001E0E},
+ {0x001E10, 0x001E10},
+ {0x001E12, 0x001E12},
+ {0x001E14, 0x001E14},
+ {0x001E16, 0x001E16},
+ {0x001E18, 0x001E18},
+ {0x001E1A, 0x001E1A},
+ {0x001E1C, 0x001E1C},
+ {0x001E1E, 0x001E1E},
+ {0x001E20, 0x001E20},
+ {0x001E22, 0x001E22},
+ {0x001E24, 0x001E24},
+ {0x001E26, 0x001E26},
+ {0x001E28, 0x001E28},
+ {0x001E2A, 0x001E2A},
+ {0x001E2C, 0x001E2C},
+ {0x001E2E, 0x001E2E},
+ {0x001E30, 0x001E30},
+ {0x001E32, 0x001E32},
+ {0x001E34, 0x001E34},
+ {0x001E36, 0x001E36},
+ {0x001E38, 0x001E38},
+ {0x001E3A, 0x001E3A},
+ {0x001E3C, 0x001E3C},
+ {0x001E3E, 0x001E3E},
+ {0x001E40, 0x001E40},
+ {0x001E42, 0x001E42},
+ {0x001E44, 0x001E44},
+ {0x001E46, 0x001E46},
+ {0x001E48, 0x001E48},
+ {0x001E4A, 0x001E4A},
+ {0x001E4C, 0x001E4C},
+ {0x001E4E, 0x001E4E},
+ {0x001E50, 0x001E50},
+ {0x001E52, 0x001E52},
+ {0x001E54, 0x001E54},
+ {0x001E56, 0x001E56},
+ {0x001E58, 0x001E58},
+ {0x001E5A, 0x001E5A},
+ {0x001E5C, 0x001E5C},
+ {0x001E5E, 0x001E5E},
+ {0x001E60, 0x001E60},
+ {0x001E62, 0x001E62},
+ {0x001E64, 0x001E64},
+ {0x001E66, 0x001E66},
+ {0x001E68, 0x001E68},
+ {0x001E6A, 0x001E6A},
+ {0x001E6C, 0x001E6C},
+ {0x001E6E, 0x001E6E},
+ {0x001E70, 0x001E70},
+ {0x001E72, 0x001E72},
+ {0x001E74, 0x001E74},
+ {0x001E76, 0x001E76},
+ {0x001E78, 0x001E78},
+ {0x001E7A, 0x001E7A},
+ {0x001E7C, 0x001E7C},
+ {0x001E7E, 0x001E7E},
+ {0x001E80, 0x001E80},
+ {0x001E82, 0x001E82},
+ {0x001E84, 0x001E84},
+ {0x001E86, 0x001E86},
+ {0x001E88, 0x001E88},
+ {0x001E8A, 0x001E8A},
+ {0x001E8C, 0x001E8C},
+ {0x001E8E, 0x001E8E},
+ {0x001E90, 0x001E90},
+ {0x001E92, 0x001E92},
+ {0x001E94, 0x001E94},
+ {0x001E9A, 0x001E9B},
+ {0x001E9E, 0x001E9E},
+ {0x001EA0, 0x001EA0},
+ {0x001EA2, 0x001EA2},
+ {0x001EA4, 0x001EA4},
+ {0x001EA6, 0x001EA6},
+ {0x001EA8, 0x001EA8},
+ {0x001EAA, 0x001EAA},
+ {0x001EAC, 0x001EAC},
+ {0x001EAE, 0x001EAE},
+ {0x001EB0, 0x001EB0},
+ {0x001EB2, 0x001EB2},
+ {0x001EB4, 0x001EB4},
+ {0x001EB6, 0x001EB6},
+ {0x001EB8, 0x001EB8},
+ {0x001EBA, 0x001EBA},
+ {0x001EBC, 0x001EBC},
+ {0x001EBE, 0x001EBE},
+ {0x001EC0, 0x001EC0},
+ {0x001EC2, 0x001EC2},
+ {0x001EC4, 0x001EC4},
+ {0x001EC6, 0x001EC6},
+ {0x001EC8, 0x001EC8},
+ {0x001ECA, 0x001ECA},
+ {0x001ECC, 0x001ECC},
+ {0x001ECE, 0x001ECE},
+ {0x001ED0, 0x001ED0},
+ {0x001ED2, 0x001ED2},
+ {0x001ED4, 0x001ED4},
+ {0x001ED6, 0x001ED6},
+ {0x001ED8, 0x001ED8},
+ {0x001EDA, 0x001EDA},
+ {0x001EDC, 0x001EDC},
+ {0x001EDE, 0x001EDE},
+ {0x001EE0, 0x001EE0},
+ {0x001EE2, 0x001EE2},
+ {0x001EE4, 0x001EE4},
+ {0x001EE6, 0x001EE6},
+ {0x001EE8, 0x001EE8},
+ {0x001EEA, 0x001EEA},
+ {0x001EEC, 0x001EEC},
+ {0x001EEE, 0x001EEE},
+ {0x001EF0, 0x001EF0},
+ {0x001EF2, 0x001EF2},
+ {0x001EF4, 0x001EF4},
+ {0x001EF6, 0x001EF6},
+ {0x001EF8, 0x001EF8},
+ {0x001EFA, 0x001EFA},
+ {0x001EFC, 0x001EFC},
+ {0x001EFE, 0x001EFE},
+ {0x001F08, 0x001F0F},
+ {0x001F18, 0x001F1D},
+ {0x001F28, 0x001F2F},
+ {0x001F38, 0x001F3F},
+ {0x001F48, 0x001F4D},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F5F},
+ {0x001F68, 0x001F6F},
+ {0x001F80, 0x001FAF},
+ {0x001FB2, 0x001FB4},
+ {0x001FB7, 0x001FBC},
+ {0x001FC2, 0x001FC4},
+ {0x001FC7, 0x001FCC},
+ {0x001FD8, 0x001FDB},
+ {0x001FE8, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF7, 0x001FFC},
+ {0x002126, 0x002126},
+ {0x00212A, 0x00212B},
+ {0x002132, 0x002132},
+ {0x002160, 0x00216F},
+ {0x002183, 0x002183},
+ {0x0024B6, 0x0024CF},
+ {0x002C00, 0x002C2F},
+ {0x002C60, 0x002C60},
+ {0x002C62, 0x002C64},
+ {0x002C67, 0x002C67},
+ {0x002C69, 0x002C69},
+ {0x002C6B, 0x002C6B},
+ {0x002C6D, 0x002C70},
+ {0x002C72, 0x002C72},
+ {0x002C75, 0x002C75},
+ {0x002C7E, 0x002C80},
+ {0x002C82, 0x002C82},
+ {0x002C84, 0x002C84},
+ {0x002C86, 0x002C86},
+ {0x002C88, 0x002C88},
+ {0x002C8A, 0x002C8A},
+ {0x002C8C, 0x002C8C},
+ {0x002C8E, 0x002C8E},
+ {0x002C90, 0x002C90},
+ {0x002C92, 0x002C92},
+ {0x002C94, 0x002C94},
+ {0x002C96, 0x002C96},
+ {0x002C98, 0x002C98},
+ {0x002C9A, 0x002C9A},
+ {0x002C9C, 0x002C9C},
+ {0x002C9E, 0x002C9E},
+ {0x002CA0, 0x002CA0},
+ {0x002CA2, 0x002CA2},
+ {0x002CA4, 0x002CA4},
+ {0x002CA6, 0x002CA6},
+ {0x002CA8, 0x002CA8},
+ {0x002CAA, 0x002CAA},
+ {0x002CAC, 0x002CAC},
+ {0x002CAE, 0x002CAE},
+ {0x002CB0, 0x002CB0},
+ {0x002CB2, 0x002CB2},
+ {0x002CB4, 0x002CB4},
+ {0x002CB6, 0x002CB6},
+ {0x002CB8, 0x002CB8},
+ {0x002CBA, 0x002CBA},
+ {0x002CBC, 0x002CBC},
+ {0x002CBE, 0x002CBE},
+ {0x002CC0, 0x002CC0},
+ {0x002CC2, 0x002CC2},
+ {0x002CC4, 0x002CC4},
+ {0x002CC6, 0x002CC6},
+ {0x002CC8, 0x002CC8},
+ {0x002CCA, 0x002CCA},
+ {0x002CCC, 0x002CCC},
+ {0x002CCE, 0x002CCE},
+ {0x002CD0, 0x002CD0},
+ {0x002CD2, 0x002CD2},
+ {0x002CD4, 0x002CD4},
+ {0x002CD6, 0x002CD6},
+ {0x002CD8, 0x002CD8},
+ {0x002CDA, 0x002CDA},
+ {0x002CDC, 0x002CDC},
+ {0x002CDE, 0x002CDE},
+ {0x002CE0, 0x002CE0},
+ {0x002CE2, 0x002CE2},
+ {0x002CEB, 0x002CEB},
+ {0x002CED, 0x002CED},
+ {0x002CF2, 0x002CF2},
+ {0x00A640, 0x00A640},
+ {0x00A642, 0x00A642},
+ {0x00A644, 0x00A644},
+ {0x00A646, 0x00A646},
+ {0x00A648, 0x00A648},
+ {0x00A64A, 0x00A64A},
+ {0x00A64C, 0x00A64C},
+ {0x00A64E, 0x00A64E},
+ {0x00A650, 0x00A650},
+ {0x00A652, 0x00A652},
+ {0x00A654, 0x00A654},
+ {0x00A656, 0x00A656},
+ {0x00A658, 0x00A658},
+ {0x00A65A, 0x00A65A},
+ {0x00A65C, 0x00A65C},
+ {0x00A65E, 0x00A65E},
+ {0x00A660, 0x00A660},
+ {0x00A662, 0x00A662},
+ {0x00A664, 0x00A664},
+ {0x00A666, 0x00A666},
+ {0x00A668, 0x00A668},
+ {0x00A66A, 0x00A66A},
+ {0x00A66C, 0x00A66C},
+ {0x00A680, 0x00A680},
+ {0x00A682, 0x00A682},
+ {0x00A684, 0x00A684},
+ {0x00A686, 0x00A686},
+ {0x00A688, 0x00A688},
+ {0x00A68A, 0x00A68A},
+ {0x00A68C, 0x00A68C},
+ {0x00A68E, 0x00A68E},
+ {0x00A690, 0x00A690},
+ {0x00A692, 0x00A692},
+ {0x00A694, 0x00A694},
+ {0x00A696, 0x00A696},
+ {0x00A698, 0x00A698},
+ {0x00A69A, 0x00A69A},
+ {0x00A722, 0x00A722},
+ {0x00A724, 0x00A724},
+ {0x00A726, 0x00A726},
+ {0x00A728, 0x00A728},
+ {0x00A72A, 0x00A72A},
+ {0x00A72C, 0x00A72C},
+ {0x00A72E, 0x00A72E},
+ {0x00A732, 0x00A732},
+ {0x00A734, 0x00A734},
+ {0x00A736, 0x00A736},
+ {0x00A738, 0x00A738},
+ {0x00A73A, 0x00A73A},
+ {0x00A73C, 0x00A73C},
+ {0x00A73E, 0x00A73E},
+ {0x00A740, 0x00A740},
+ {0x00A742, 0x00A742},
+ {0x00A744, 0x00A744},
+ {0x00A746, 0x00A746},
+ {0x00A748, 0x00A748},
+ {0x00A74A, 0x00A74A},
+ {0x00A74C, 0x00A74C},
+ {0x00A74E, 0x00A74E},
+ {0x00A750, 0x00A750},
+ {0x00A752, 0x00A752},
+ {0x00A754, 0x00A754},
+ {0x00A756, 0x00A756},
+ {0x00A758, 0x00A758},
+ {0x00A75A, 0x00A75A},
+ {0x00A75C, 0x00A75C},
+ {0x00A75E, 0x00A75E},
+ {0x00A760, 0x00A760},
+ {0x00A762, 0x00A762},
+ {0x00A764, 0x00A764},
+ {0x00A766, 0x00A766},
+ {0x00A768, 0x00A768},
+ {0x00A76A, 0x00A76A},
+ {0x00A76C, 0x00A76C},
+ {0x00A76E, 0x00A76E},
+ {0x00A779, 0x00A779},
+ {0x00A77B, 0x00A77B},
+ {0x00A77D, 0x00A77E},
+ {0x00A780, 0x00A780},
+ {0x00A782, 0x00A782},
+ {0x00A784, 0x00A784},
+ {0x00A786, 0x00A786},
+ {0x00A78B, 0x00A78B},
+ {0x00A78D, 0x00A78D},
+ {0x00A790, 0x00A790},
+ {0x00A792, 0x00A792},
+ {0x00A796, 0x00A796},
+ {0x00A798, 0x00A798},
+ {0x00A79A, 0x00A79A},
+ {0x00A79C, 0x00A79C},
+ {0x00A79E, 0x00A79E},
+ {0x00A7A0, 0x00A7A0},
+ {0x00A7A2, 0x00A7A2},
+ {0x00A7A4, 0x00A7A4},
+ {0x00A7A6, 0x00A7A6},
+ {0x00A7A8, 0x00A7A8},
+ {0x00A7AA, 0x00A7AE},
+ {0x00A7B0, 0x00A7B4},
+ {0x00A7B6, 0x00A7B6},
+ {0x00A7B8, 0x00A7B8},
+ {0x00A7BA, 0x00A7BA},
+ {0x00A7BC, 0x00A7BC},
+ {0x00A7BE, 0x00A7BE},
+ {0x00A7C0, 0x00A7C0},
+ {0x00A7C2, 0x00A7C2},
+ {0x00A7C4, 0x00A7C7},
+ {0x00A7C9, 0x00A7C9},
+ {0x00A7D0, 0x00A7D0},
+ {0x00A7D6, 0x00A7D6},
+ {0x00A7D8, 0x00A7D8},
+ {0x00A7F5, 0x00A7F5},
+ {0x00AB70, 0x00ABBF},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FF21, 0x00FF3A},
+ {0x010400, 0x010427},
+ {0x0104B0, 0x0104D3},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010C80, 0x010CB2},
+ {0x0118A0, 0x0118BF},
+ {0x016E40, 0x016E5F},
+ {0x01E900, 0x01E921},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_changes_when_casefolded(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_casemapped.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casemapped.c
new file mode 100644
index 0000000..5b40d20
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_casemapped.c
@@ -0,0 +1,161 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF002000000000000007FFFFFE07FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x000061, 0x00007A},
+ {0x0000B5, 0x0000B5},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000F6},
+ {0x0000F8, 0x000137},
+ {0x000139, 0x00018C},
+ {0x00018E, 0x00019A},
+ {0x00019C, 0x0001A9},
+ {0x0001AC, 0x0001B9},
+ {0x0001BC, 0x0001BD},
+ {0x0001BF, 0x0001BF},
+ {0x0001C4, 0x000220},
+ {0x000222, 0x000233},
+ {0x00023A, 0x000254},
+ {0x000256, 0x000257},
+ {0x000259, 0x000259},
+ {0x00025B, 0x00025C},
+ {0x000260, 0x000261},
+ {0x000263, 0x000263},
+ {0x000265, 0x000266},
+ {0x000268, 0x00026C},
+ {0x00026F, 0x00026F},
+ {0x000271, 0x000272},
+ {0x000275, 0x000275},
+ {0x00027D, 0x00027D},
+ {0x000280, 0x000280},
+ {0x000282, 0x000283},
+ {0x000287, 0x00028C},
+ {0x000292, 0x000292},
+ {0x00029D, 0x00029E},
+ {0x000345, 0x000345},
+ {0x000370, 0x000373},
+ {0x000376, 0x000377},
+ {0x00037B, 0x00037D},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x0003D1},
+ {0x0003D5, 0x0003F5},
+ {0x0003F7, 0x0003FB},
+ {0x0003FD, 0x000481},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000561, 0x000587},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x0010FA},
+ {0x0010FD, 0x0010FF},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001D79, 0x001D79},
+ {0x001D7D, 0x001D7D},
+ {0x001D8E, 0x001D8E},
+ {0x001E00, 0x001E9B},
+ {0x001E9E, 0x001E9E},
+ {0x001EA0, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FE0, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFC},
+ {0x002126, 0x002126},
+ {0x00212A, 0x00212B},
+ {0x002132, 0x002132},
+ {0x00214E, 0x00214E},
+ {0x002160, 0x00217F},
+ {0x002183, 0x002184},
+ {0x0024B6, 0x0024E9},
+ {0x002C00, 0x002C70},
+ {0x002C72, 0x002C73},
+ {0x002C75, 0x002C76},
+ {0x002C7E, 0x002CE3},
+ {0x002CEB, 0x002CEE},
+ {0x002CF2, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x00A640, 0x00A66D},
+ {0x00A680, 0x00A69B},
+ {0x00A722, 0x00A72F},
+ {0x00A732, 0x00A76F},
+ {0x00A779, 0x00A787},
+ {0x00A78B, 0x00A78D},
+ {0x00A790, 0x00A794},
+ {0x00A796, 0x00A7AE},
+ {0x00A7B0, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D6, 0x00A7D9},
+ {0x00A7F5, 0x00A7F6},
+ {0x00AB53, 0x00AB53},
+ {0x00AB70, 0x00ABBF},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FF21, 0x00FF3A},
+ {0x00FF41, 0x00FF5A},
+ {0x010400, 0x01044F},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x0118A0, 0x0118DF},
+ {0x016E40, 0x016E7F},
+ {0x01E900, 0x01E943},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_changes_when_casemapped(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_lowercased.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_lowercased.c
new file mode 100644
index 0000000..dd7575d
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_lowercased.c
@@ -0,0 +1,639 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7F7FFFFF00000000000000000000000007FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000DE},
+ {0x000100, 0x000100},
+ {0x000102, 0x000102},
+ {0x000104, 0x000104},
+ {0x000106, 0x000106},
+ {0x000108, 0x000108},
+ {0x00010A, 0x00010A},
+ {0x00010C, 0x00010C},
+ {0x00010E, 0x00010E},
+ {0x000110, 0x000110},
+ {0x000112, 0x000112},
+ {0x000114, 0x000114},
+ {0x000116, 0x000116},
+ {0x000118, 0x000118},
+ {0x00011A, 0x00011A},
+ {0x00011C, 0x00011C},
+ {0x00011E, 0x00011E},
+ {0x000120, 0x000120},
+ {0x000122, 0x000122},
+ {0x000124, 0x000124},
+ {0x000126, 0x000126},
+ {0x000128, 0x000128},
+ {0x00012A, 0x00012A},
+ {0x00012C, 0x00012C},
+ {0x00012E, 0x00012E},
+ {0x000130, 0x000130},
+ {0x000132, 0x000132},
+ {0x000134, 0x000134},
+ {0x000136, 0x000136},
+ {0x000139, 0x000139},
+ {0x00013B, 0x00013B},
+ {0x00013D, 0x00013D},
+ {0x00013F, 0x00013F},
+ {0x000141, 0x000141},
+ {0x000143, 0x000143},
+ {0x000145, 0x000145},
+ {0x000147, 0x000147},
+ {0x00014A, 0x00014A},
+ {0x00014C, 0x00014C},
+ {0x00014E, 0x00014E},
+ {0x000150, 0x000150},
+ {0x000152, 0x000152},
+ {0x000154, 0x000154},
+ {0x000156, 0x000156},
+ {0x000158, 0x000158},
+ {0x00015A, 0x00015A},
+ {0x00015C, 0x00015C},
+ {0x00015E, 0x00015E},
+ {0x000160, 0x000160},
+ {0x000162, 0x000162},
+ {0x000164, 0x000164},
+ {0x000166, 0x000166},
+ {0x000168, 0x000168},
+ {0x00016A, 0x00016A},
+ {0x00016C, 0x00016C},
+ {0x00016E, 0x00016E},
+ {0x000170, 0x000170},
+ {0x000172, 0x000172},
+ {0x000174, 0x000174},
+ {0x000176, 0x000176},
+ {0x000178, 0x000179},
+ {0x00017B, 0x00017B},
+ {0x00017D, 0x00017D},
+ {0x000181, 0x000182},
+ {0x000184, 0x000184},
+ {0x000186, 0x000187},
+ {0x000189, 0x00018B},
+ {0x00018E, 0x000191},
+ {0x000193, 0x000194},
+ {0x000196, 0x000198},
+ {0x00019C, 0x00019D},
+ {0x00019F, 0x0001A0},
+ {0x0001A2, 0x0001A2},
+ {0x0001A4, 0x0001A4},
+ {0x0001A6, 0x0001A7},
+ {0x0001A9, 0x0001A9},
+ {0x0001AC, 0x0001AC},
+ {0x0001AE, 0x0001AF},
+ {0x0001B1, 0x0001B3},
+ {0x0001B5, 0x0001B5},
+ {0x0001B7, 0x0001B8},
+ {0x0001BC, 0x0001BC},
+ {0x0001C4, 0x0001C5},
+ {0x0001C7, 0x0001C8},
+ {0x0001CA, 0x0001CB},
+ {0x0001CD, 0x0001CD},
+ {0x0001CF, 0x0001CF},
+ {0x0001D1, 0x0001D1},
+ {0x0001D3, 0x0001D3},
+ {0x0001D5, 0x0001D5},
+ {0x0001D7, 0x0001D7},
+ {0x0001D9, 0x0001D9},
+ {0x0001DB, 0x0001DB},
+ {0x0001DE, 0x0001DE},
+ {0x0001E0, 0x0001E0},
+ {0x0001E2, 0x0001E2},
+ {0x0001E4, 0x0001E4},
+ {0x0001E6, 0x0001E6},
+ {0x0001E8, 0x0001E8},
+ {0x0001EA, 0x0001EA},
+ {0x0001EC, 0x0001EC},
+ {0x0001EE, 0x0001EE},
+ {0x0001F1, 0x0001F2},
+ {0x0001F4, 0x0001F4},
+ {0x0001F6, 0x0001F8},
+ {0x0001FA, 0x0001FA},
+ {0x0001FC, 0x0001FC},
+ {0x0001FE, 0x0001FE},
+ {0x000200, 0x000200},
+ {0x000202, 0x000202},
+ {0x000204, 0x000204},
+ {0x000206, 0x000206},
+ {0x000208, 0x000208},
+ {0x00020A, 0x00020A},
+ {0x00020C, 0x00020C},
+ {0x00020E, 0x00020E},
+ {0x000210, 0x000210},
+ {0x000212, 0x000212},
+ {0x000214, 0x000214},
+ {0x000216, 0x000216},
+ {0x000218, 0x000218},
+ {0x00021A, 0x00021A},
+ {0x00021C, 0x00021C},
+ {0x00021E, 0x00021E},
+ {0x000220, 0x000220},
+ {0x000222, 0x000222},
+ {0x000224, 0x000224},
+ {0x000226, 0x000226},
+ {0x000228, 0x000228},
+ {0x00022A, 0x00022A},
+ {0x00022C, 0x00022C},
+ {0x00022E, 0x00022E},
+ {0x000230, 0x000230},
+ {0x000232, 0x000232},
+ {0x00023A, 0x00023B},
+ {0x00023D, 0x00023E},
+ {0x000241, 0x000241},
+ {0x000243, 0x000246},
+ {0x000248, 0x000248},
+ {0x00024A, 0x00024A},
+ {0x00024C, 0x00024C},
+ {0x00024E, 0x00024E},
+ {0x000370, 0x000370},
+ {0x000372, 0x000372},
+ {0x000376, 0x000376},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x00038F},
+ {0x000391, 0x0003A1},
+ {0x0003A3, 0x0003AB},
+ {0x0003CF, 0x0003CF},
+ {0x0003D8, 0x0003D8},
+ {0x0003DA, 0x0003DA},
+ {0x0003DC, 0x0003DC},
+ {0x0003DE, 0x0003DE},
+ {0x0003E0, 0x0003E0},
+ {0x0003E2, 0x0003E2},
+ {0x0003E4, 0x0003E4},
+ {0x0003E6, 0x0003E6},
+ {0x0003E8, 0x0003E8},
+ {0x0003EA, 0x0003EA},
+ {0x0003EC, 0x0003EC},
+ {0x0003EE, 0x0003EE},
+ {0x0003F4, 0x0003F4},
+ {0x0003F7, 0x0003F7},
+ {0x0003F9, 0x0003FA},
+ {0x0003FD, 0x00042F},
+ {0x000460, 0x000460},
+ {0x000462, 0x000462},
+ {0x000464, 0x000464},
+ {0x000466, 0x000466},
+ {0x000468, 0x000468},
+ {0x00046A, 0x00046A},
+ {0x00046C, 0x00046C},
+ {0x00046E, 0x00046E},
+ {0x000470, 0x000470},
+ {0x000472, 0x000472},
+ {0x000474, 0x000474},
+ {0x000476, 0x000476},
+ {0x000478, 0x000478},
+ {0x00047A, 0x00047A},
+ {0x00047C, 0x00047C},
+ {0x00047E, 0x00047E},
+ {0x000480, 0x000480},
+ {0x00048A, 0x00048A},
+ {0x00048C, 0x00048C},
+ {0x00048E, 0x00048E},
+ {0x000490, 0x000490},
+ {0x000492, 0x000492},
+ {0x000494, 0x000494},
+ {0x000496, 0x000496},
+ {0x000498, 0x000498},
+ {0x00049A, 0x00049A},
+ {0x00049C, 0x00049C},
+ {0x00049E, 0x00049E},
+ {0x0004A0, 0x0004A0},
+ {0x0004A2, 0x0004A2},
+ {0x0004A4, 0x0004A4},
+ {0x0004A6, 0x0004A6},
+ {0x0004A8, 0x0004A8},
+ {0x0004AA, 0x0004AA},
+ {0x0004AC, 0x0004AC},
+ {0x0004AE, 0x0004AE},
+ {0x0004B0, 0x0004B0},
+ {0x0004B2, 0x0004B2},
+ {0x0004B4, 0x0004B4},
+ {0x0004B6, 0x0004B6},
+ {0x0004B8, 0x0004B8},
+ {0x0004BA, 0x0004BA},
+ {0x0004BC, 0x0004BC},
+ {0x0004BE, 0x0004BE},
+ {0x0004C0, 0x0004C1},
+ {0x0004C3, 0x0004C3},
+ {0x0004C5, 0x0004C5},
+ {0x0004C7, 0x0004C7},
+ {0x0004C9, 0x0004C9},
+ {0x0004CB, 0x0004CB},
+ {0x0004CD, 0x0004CD},
+ {0x0004D0, 0x0004D0},
+ {0x0004D2, 0x0004D2},
+ {0x0004D4, 0x0004D4},
+ {0x0004D6, 0x0004D6},
+ {0x0004D8, 0x0004D8},
+ {0x0004DA, 0x0004DA},
+ {0x0004DC, 0x0004DC},
+ {0x0004DE, 0x0004DE},
+ {0x0004E0, 0x0004E0},
+ {0x0004E2, 0x0004E2},
+ {0x0004E4, 0x0004E4},
+ {0x0004E6, 0x0004E6},
+ {0x0004E8, 0x0004E8},
+ {0x0004EA, 0x0004EA},
+ {0x0004EC, 0x0004EC},
+ {0x0004EE, 0x0004EE},
+ {0x0004F0, 0x0004F0},
+ {0x0004F2, 0x0004F2},
+ {0x0004F4, 0x0004F4},
+ {0x0004F6, 0x0004F6},
+ {0x0004F8, 0x0004F8},
+ {0x0004FA, 0x0004FA},
+ {0x0004FC, 0x0004FC},
+ {0x0004FE, 0x0004FE},
+ {0x000500, 0x000500},
+ {0x000502, 0x000502},
+ {0x000504, 0x000504},
+ {0x000506, 0x000506},
+ {0x000508, 0x000508},
+ {0x00050A, 0x00050A},
+ {0x00050C, 0x00050C},
+ {0x00050E, 0x00050E},
+ {0x000510, 0x000510},
+ {0x000512, 0x000512},
+ {0x000514, 0x000514},
+ {0x000516, 0x000516},
+ {0x000518, 0x000518},
+ {0x00051A, 0x00051A},
+ {0x00051C, 0x00051C},
+ {0x00051E, 0x00051E},
+ {0x000520, 0x000520},
+ {0x000522, 0x000522},
+ {0x000524, 0x000524},
+ {0x000526, 0x000526},
+ {0x000528, 0x000528},
+ {0x00052A, 0x00052A},
+ {0x00052C, 0x00052C},
+ {0x00052E, 0x00052E},
+ {0x000531, 0x000556},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0013A0, 0x0013F5},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001E00, 0x001E00},
+ {0x001E02, 0x001E02},
+ {0x001E04, 0x001E04},
+ {0x001E06, 0x001E06},
+ {0x001E08, 0x001E08},
+ {0x001E0A, 0x001E0A},
+ {0x001E0C, 0x001E0C},
+ {0x001E0E, 0x001E0E},
+ {0x001E10, 0x001E10},
+ {0x001E12, 0x001E12},
+ {0x001E14, 0x001E14},
+ {0x001E16, 0x001E16},
+ {0x001E18, 0x001E18},
+ {0x001E1A, 0x001E1A},
+ {0x001E1C, 0x001E1C},
+ {0x001E1E, 0x001E1E},
+ {0x001E20, 0x001E20},
+ {0x001E22, 0x001E22},
+ {0x001E24, 0x001E24},
+ {0x001E26, 0x001E26},
+ {0x001E28, 0x001E28},
+ {0x001E2A, 0x001E2A},
+ {0x001E2C, 0x001E2C},
+ {0x001E2E, 0x001E2E},
+ {0x001E30, 0x001E30},
+ {0x001E32, 0x001E32},
+ {0x001E34, 0x001E34},
+ {0x001E36, 0x001E36},
+ {0x001E38, 0x001E38},
+ {0x001E3A, 0x001E3A},
+ {0x001E3C, 0x001E3C},
+ {0x001E3E, 0x001E3E},
+ {0x001E40, 0x001E40},
+ {0x001E42, 0x001E42},
+ {0x001E44, 0x001E44},
+ {0x001E46, 0x001E46},
+ {0x001E48, 0x001E48},
+ {0x001E4A, 0x001E4A},
+ {0x001E4C, 0x001E4C},
+ {0x001E4E, 0x001E4E},
+ {0x001E50, 0x001E50},
+ {0x001E52, 0x001E52},
+ {0x001E54, 0x001E54},
+ {0x001E56, 0x001E56},
+ {0x001E58, 0x001E58},
+ {0x001E5A, 0x001E5A},
+ {0x001E5C, 0x001E5C},
+ {0x001E5E, 0x001E5E},
+ {0x001E60, 0x001E60},
+ {0x001E62, 0x001E62},
+ {0x001E64, 0x001E64},
+ {0x001E66, 0x001E66},
+ {0x001E68, 0x001E68},
+ {0x001E6A, 0x001E6A},
+ {0x001E6C, 0x001E6C},
+ {0x001E6E, 0x001E6E},
+ {0x001E70, 0x001E70},
+ {0x001E72, 0x001E72},
+ {0x001E74, 0x001E74},
+ {0x001E76, 0x001E76},
+ {0x001E78, 0x001E78},
+ {0x001E7A, 0x001E7A},
+ {0x001E7C, 0x001E7C},
+ {0x001E7E, 0x001E7E},
+ {0x001E80, 0x001E80},
+ {0x001E82, 0x001E82},
+ {0x001E84, 0x001E84},
+ {0x001E86, 0x001E86},
+ {0x001E88, 0x001E88},
+ {0x001E8A, 0x001E8A},
+ {0x001E8C, 0x001E8C},
+ {0x001E8E, 0x001E8E},
+ {0x001E90, 0x001E90},
+ {0x001E92, 0x001E92},
+ {0x001E94, 0x001E94},
+ {0x001E9E, 0x001E9E},
+ {0x001EA0, 0x001EA0},
+ {0x001EA2, 0x001EA2},
+ {0x001EA4, 0x001EA4},
+ {0x001EA6, 0x001EA6},
+ {0x001EA8, 0x001EA8},
+ {0x001EAA, 0x001EAA},
+ {0x001EAC, 0x001EAC},
+ {0x001EAE, 0x001EAE},
+ {0x001EB0, 0x001EB0},
+ {0x001EB2, 0x001EB2},
+ {0x001EB4, 0x001EB4},
+ {0x001EB6, 0x001EB6},
+ {0x001EB8, 0x001EB8},
+ {0x001EBA, 0x001EBA},
+ {0x001EBC, 0x001EBC},
+ {0x001EBE, 0x001EBE},
+ {0x001EC0, 0x001EC0},
+ {0x001EC2, 0x001EC2},
+ {0x001EC4, 0x001EC4},
+ {0x001EC6, 0x001EC6},
+ {0x001EC8, 0x001EC8},
+ {0x001ECA, 0x001ECA},
+ {0x001ECC, 0x001ECC},
+ {0x001ECE, 0x001ECE},
+ {0x001ED0, 0x001ED0},
+ {0x001ED2, 0x001ED2},
+ {0x001ED4, 0x001ED4},
+ {0x001ED6, 0x001ED6},
+ {0x001ED8, 0x001ED8},
+ {0x001EDA, 0x001EDA},
+ {0x001EDC, 0x001EDC},
+ {0x001EDE, 0x001EDE},
+ {0x001EE0, 0x001EE0},
+ {0x001EE2, 0x001EE2},
+ {0x001EE4, 0x001EE4},
+ {0x001EE6, 0x001EE6},
+ {0x001EE8, 0x001EE8},
+ {0x001EEA, 0x001EEA},
+ {0x001EEC, 0x001EEC},
+ {0x001EEE, 0x001EEE},
+ {0x001EF0, 0x001EF0},
+ {0x001EF2, 0x001EF2},
+ {0x001EF4, 0x001EF4},
+ {0x001EF6, 0x001EF6},
+ {0x001EF8, 0x001EF8},
+ {0x001EFA, 0x001EFA},
+ {0x001EFC, 0x001EFC},
+ {0x001EFE, 0x001EFE},
+ {0x001F08, 0x001F0F},
+ {0x001F18, 0x001F1D},
+ {0x001F28, 0x001F2F},
+ {0x001F38, 0x001F3F},
+ {0x001F48, 0x001F4D},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F5F},
+ {0x001F68, 0x001F6F},
+ {0x001F88, 0x001F8F},
+ {0x001F98, 0x001F9F},
+ {0x001FA8, 0x001FAF},
+ {0x001FB8, 0x001FBC},
+ {0x001FC8, 0x001FCC},
+ {0x001FD8, 0x001FDB},
+ {0x001FE8, 0x001FEC},
+ {0x001FF8, 0x001FFC},
+ {0x002126, 0x002126},
+ {0x00212A, 0x00212B},
+ {0x002132, 0x002132},
+ {0x002160, 0x00216F},
+ {0x002183, 0x002183},
+ {0x0024B6, 0x0024CF},
+ {0x002C00, 0x002C2F},
+ {0x002C60, 0x002C60},
+ {0x002C62, 0x002C64},
+ {0x002C67, 0x002C67},
+ {0x002C69, 0x002C69},
+ {0x002C6B, 0x002C6B},
+ {0x002C6D, 0x002C70},
+ {0x002C72, 0x002C72},
+ {0x002C75, 0x002C75},
+ {0x002C7E, 0x002C80},
+ {0x002C82, 0x002C82},
+ {0x002C84, 0x002C84},
+ {0x002C86, 0x002C86},
+ {0x002C88, 0x002C88},
+ {0x002C8A, 0x002C8A},
+ {0x002C8C, 0x002C8C},
+ {0x002C8E, 0x002C8E},
+ {0x002C90, 0x002C90},
+ {0x002C92, 0x002C92},
+ {0x002C94, 0x002C94},
+ {0x002C96, 0x002C96},
+ {0x002C98, 0x002C98},
+ {0x002C9A, 0x002C9A},
+ {0x002C9C, 0x002C9C},
+ {0x002C9E, 0x002C9E},
+ {0x002CA0, 0x002CA0},
+ {0x002CA2, 0x002CA2},
+ {0x002CA4, 0x002CA4},
+ {0x002CA6, 0x002CA6},
+ {0x002CA8, 0x002CA8},
+ {0x002CAA, 0x002CAA},
+ {0x002CAC, 0x002CAC},
+ {0x002CAE, 0x002CAE},
+ {0x002CB0, 0x002CB0},
+ {0x002CB2, 0x002CB2},
+ {0x002CB4, 0x002CB4},
+ {0x002CB6, 0x002CB6},
+ {0x002CB8, 0x002CB8},
+ {0x002CBA, 0x002CBA},
+ {0x002CBC, 0x002CBC},
+ {0x002CBE, 0x002CBE},
+ {0x002CC0, 0x002CC0},
+ {0x002CC2, 0x002CC2},
+ {0x002CC4, 0x002CC4},
+ {0x002CC6, 0x002CC6},
+ {0x002CC8, 0x002CC8},
+ {0x002CCA, 0x002CCA},
+ {0x002CCC, 0x002CCC},
+ {0x002CCE, 0x002CCE},
+ {0x002CD0, 0x002CD0},
+ {0x002CD2, 0x002CD2},
+ {0x002CD4, 0x002CD4},
+ {0x002CD6, 0x002CD6},
+ {0x002CD8, 0x002CD8},
+ {0x002CDA, 0x002CDA},
+ {0x002CDC, 0x002CDC},
+ {0x002CDE, 0x002CDE},
+ {0x002CE0, 0x002CE0},
+ {0x002CE2, 0x002CE2},
+ {0x002CEB, 0x002CEB},
+ {0x002CED, 0x002CED},
+ {0x002CF2, 0x002CF2},
+ {0x00A640, 0x00A640},
+ {0x00A642, 0x00A642},
+ {0x00A644, 0x00A644},
+ {0x00A646, 0x00A646},
+ {0x00A648, 0x00A648},
+ {0x00A64A, 0x00A64A},
+ {0x00A64C, 0x00A64C},
+ {0x00A64E, 0x00A64E},
+ {0x00A650, 0x00A650},
+ {0x00A652, 0x00A652},
+ {0x00A654, 0x00A654},
+ {0x00A656, 0x00A656},
+ {0x00A658, 0x00A658},
+ {0x00A65A, 0x00A65A},
+ {0x00A65C, 0x00A65C},
+ {0x00A65E, 0x00A65E},
+ {0x00A660, 0x00A660},
+ {0x00A662, 0x00A662},
+ {0x00A664, 0x00A664},
+ {0x00A666, 0x00A666},
+ {0x00A668, 0x00A668},
+ {0x00A66A, 0x00A66A},
+ {0x00A66C, 0x00A66C},
+ {0x00A680, 0x00A680},
+ {0x00A682, 0x00A682},
+ {0x00A684, 0x00A684},
+ {0x00A686, 0x00A686},
+ {0x00A688, 0x00A688},
+ {0x00A68A, 0x00A68A},
+ {0x00A68C, 0x00A68C},
+ {0x00A68E, 0x00A68E},
+ {0x00A690, 0x00A690},
+ {0x00A692, 0x00A692},
+ {0x00A694, 0x00A694},
+ {0x00A696, 0x00A696},
+ {0x00A698, 0x00A698},
+ {0x00A69A, 0x00A69A},
+ {0x00A722, 0x00A722},
+ {0x00A724, 0x00A724},
+ {0x00A726, 0x00A726},
+ {0x00A728, 0x00A728},
+ {0x00A72A, 0x00A72A},
+ {0x00A72C, 0x00A72C},
+ {0x00A72E, 0x00A72E},
+ {0x00A732, 0x00A732},
+ {0x00A734, 0x00A734},
+ {0x00A736, 0x00A736},
+ {0x00A738, 0x00A738},
+ {0x00A73A, 0x00A73A},
+ {0x00A73C, 0x00A73C},
+ {0x00A73E, 0x00A73E},
+ {0x00A740, 0x00A740},
+ {0x00A742, 0x00A742},
+ {0x00A744, 0x00A744},
+ {0x00A746, 0x00A746},
+ {0x00A748, 0x00A748},
+ {0x00A74A, 0x00A74A},
+ {0x00A74C, 0x00A74C},
+ {0x00A74E, 0x00A74E},
+ {0x00A750, 0x00A750},
+ {0x00A752, 0x00A752},
+ {0x00A754, 0x00A754},
+ {0x00A756, 0x00A756},
+ {0x00A758, 0x00A758},
+ {0x00A75A, 0x00A75A},
+ {0x00A75C, 0x00A75C},
+ {0x00A75E, 0x00A75E},
+ {0x00A760, 0x00A760},
+ {0x00A762, 0x00A762},
+ {0x00A764, 0x00A764},
+ {0x00A766, 0x00A766},
+ {0x00A768, 0x00A768},
+ {0x00A76A, 0x00A76A},
+ {0x00A76C, 0x00A76C},
+ {0x00A76E, 0x00A76E},
+ {0x00A779, 0x00A779},
+ {0x00A77B, 0x00A77B},
+ {0x00A77D, 0x00A77E},
+ {0x00A780, 0x00A780},
+ {0x00A782, 0x00A782},
+ {0x00A784, 0x00A784},
+ {0x00A786, 0x00A786},
+ {0x00A78B, 0x00A78B},
+ {0x00A78D, 0x00A78D},
+ {0x00A790, 0x00A790},
+ {0x00A792, 0x00A792},
+ {0x00A796, 0x00A796},
+ {0x00A798, 0x00A798},
+ {0x00A79A, 0x00A79A},
+ {0x00A79C, 0x00A79C},
+ {0x00A79E, 0x00A79E},
+ {0x00A7A0, 0x00A7A0},
+ {0x00A7A2, 0x00A7A2},
+ {0x00A7A4, 0x00A7A4},
+ {0x00A7A6, 0x00A7A6},
+ {0x00A7A8, 0x00A7A8},
+ {0x00A7AA, 0x00A7AE},
+ {0x00A7B0, 0x00A7B4},
+ {0x00A7B6, 0x00A7B6},
+ {0x00A7B8, 0x00A7B8},
+ {0x00A7BA, 0x00A7BA},
+ {0x00A7BC, 0x00A7BC},
+ {0x00A7BE, 0x00A7BE},
+ {0x00A7C0, 0x00A7C0},
+ {0x00A7C2, 0x00A7C2},
+ {0x00A7C4, 0x00A7C7},
+ {0x00A7C9, 0x00A7C9},
+ {0x00A7D0, 0x00A7D0},
+ {0x00A7D6, 0x00A7D6},
+ {0x00A7D8, 0x00A7D8},
+ {0x00A7F5, 0x00A7F5},
+ {0x00FF21, 0x00FF3A},
+ {0x010400, 0x010427},
+ {0x0104B0, 0x0104D3},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010C80, 0x010CB2},
+ {0x0118A0, 0x0118BF},
+ {0x016E40, 0x016E5F},
+ {0x01E900, 0x01E921},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_changes_when_lowercased(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_titlecased.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_titlecased.c
new file mode 100644
index 0000000..c136a0d
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_titlecased.c
@@ -0,0 +1,656 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF80000000002000000000000007FFFFFE000000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000061, 0x00007A},
+ {0x0000B5, 0x0000B5},
+ {0x0000DF, 0x0000F6},
+ {0x0000F8, 0x0000FF},
+ {0x000101, 0x000101},
+ {0x000103, 0x000103},
+ {0x000105, 0x000105},
+ {0x000107, 0x000107},
+ {0x000109, 0x000109},
+ {0x00010B, 0x00010B},
+ {0x00010D, 0x00010D},
+ {0x00010F, 0x00010F},
+ {0x000111, 0x000111},
+ {0x000113, 0x000113},
+ {0x000115, 0x000115},
+ {0x000117, 0x000117},
+ {0x000119, 0x000119},
+ {0x00011B, 0x00011B},
+ {0x00011D, 0x00011D},
+ {0x00011F, 0x00011F},
+ {0x000121, 0x000121},
+ {0x000123, 0x000123},
+ {0x000125, 0x000125},
+ {0x000127, 0x000127},
+ {0x000129, 0x000129},
+ {0x00012B, 0x00012B},
+ {0x00012D, 0x00012D},
+ {0x00012F, 0x00012F},
+ {0x000131, 0x000131},
+ {0x000133, 0x000133},
+ {0x000135, 0x000135},
+ {0x000137, 0x000137},
+ {0x00013A, 0x00013A},
+ {0x00013C, 0x00013C},
+ {0x00013E, 0x00013E},
+ {0x000140, 0x000140},
+ {0x000142, 0x000142},
+ {0x000144, 0x000144},
+ {0x000146, 0x000146},
+ {0x000148, 0x000149},
+ {0x00014B, 0x00014B},
+ {0x00014D, 0x00014D},
+ {0x00014F, 0x00014F},
+ {0x000151, 0x000151},
+ {0x000153, 0x000153},
+ {0x000155, 0x000155},
+ {0x000157, 0x000157},
+ {0x000159, 0x000159},
+ {0x00015B, 0x00015B},
+ {0x00015D, 0x00015D},
+ {0x00015F, 0x00015F},
+ {0x000161, 0x000161},
+ {0x000163, 0x000163},
+ {0x000165, 0x000165},
+ {0x000167, 0x000167},
+ {0x000169, 0x000169},
+ {0x00016B, 0x00016B},
+ {0x00016D, 0x00016D},
+ {0x00016F, 0x00016F},
+ {0x000171, 0x000171},
+ {0x000173, 0x000173},
+ {0x000175, 0x000175},
+ {0x000177, 0x000177},
+ {0x00017A, 0x00017A},
+ {0x00017C, 0x00017C},
+ {0x00017E, 0x000180},
+ {0x000183, 0x000183},
+ {0x000185, 0x000185},
+ {0x000188, 0x000188},
+ {0x00018C, 0x00018C},
+ {0x000192, 0x000192},
+ {0x000195, 0x000195},
+ {0x000199, 0x00019A},
+ {0x00019E, 0x00019E},
+ {0x0001A1, 0x0001A1},
+ {0x0001A3, 0x0001A3},
+ {0x0001A5, 0x0001A5},
+ {0x0001A8, 0x0001A8},
+ {0x0001AD, 0x0001AD},
+ {0x0001B0, 0x0001B0},
+ {0x0001B4, 0x0001B4},
+ {0x0001B6, 0x0001B6},
+ {0x0001B9, 0x0001B9},
+ {0x0001BD, 0x0001BD},
+ {0x0001BF, 0x0001BF},
+ {0x0001C4, 0x0001C4},
+ {0x0001C6, 0x0001C7},
+ {0x0001C9, 0x0001CA},
+ {0x0001CC, 0x0001CC},
+ {0x0001CE, 0x0001CE},
+ {0x0001D0, 0x0001D0},
+ {0x0001D2, 0x0001D2},
+ {0x0001D4, 0x0001D4},
+ {0x0001D6, 0x0001D6},
+ {0x0001D8, 0x0001D8},
+ {0x0001DA, 0x0001DA},
+ {0x0001DC, 0x0001DD},
+ {0x0001DF, 0x0001DF},
+ {0x0001E1, 0x0001E1},
+ {0x0001E3, 0x0001E3},
+ {0x0001E5, 0x0001E5},
+ {0x0001E7, 0x0001E7},
+ {0x0001E9, 0x0001E9},
+ {0x0001EB, 0x0001EB},
+ {0x0001ED, 0x0001ED},
+ {0x0001EF, 0x0001F1},
+ {0x0001F3, 0x0001F3},
+ {0x0001F5, 0x0001F5},
+ {0x0001F9, 0x0001F9},
+ {0x0001FB, 0x0001FB},
+ {0x0001FD, 0x0001FD},
+ {0x0001FF, 0x0001FF},
+ {0x000201, 0x000201},
+ {0x000203, 0x000203},
+ {0x000205, 0x000205},
+ {0x000207, 0x000207},
+ {0x000209, 0x000209},
+ {0x00020B, 0x00020B},
+ {0x00020D, 0x00020D},
+ {0x00020F, 0x00020F},
+ {0x000211, 0x000211},
+ {0x000213, 0x000213},
+ {0x000215, 0x000215},
+ {0x000217, 0x000217},
+ {0x000219, 0x000219},
+ {0x00021B, 0x00021B},
+ {0x00021D, 0x00021D},
+ {0x00021F, 0x00021F},
+ {0x000223, 0x000223},
+ {0x000225, 0x000225},
+ {0x000227, 0x000227},
+ {0x000229, 0x000229},
+ {0x00022B, 0x00022B},
+ {0x00022D, 0x00022D},
+ {0x00022F, 0x00022F},
+ {0x000231, 0x000231},
+ {0x000233, 0x000233},
+ {0x00023C, 0x00023C},
+ {0x00023F, 0x000240},
+ {0x000242, 0x000242},
+ {0x000247, 0x000247},
+ {0x000249, 0x000249},
+ {0x00024B, 0x00024B},
+ {0x00024D, 0x00024D},
+ {0x00024F, 0x000254},
+ {0x000256, 0x000257},
+ {0x000259, 0x000259},
+ {0x00025B, 0x00025C},
+ {0x000260, 0x000261},
+ {0x000263, 0x000263},
+ {0x000265, 0x000266},
+ {0x000268, 0x00026C},
+ {0x00026F, 0x00026F},
+ {0x000271, 0x000272},
+ {0x000275, 0x000275},
+ {0x00027D, 0x00027D},
+ {0x000280, 0x000280},
+ {0x000282, 0x000283},
+ {0x000287, 0x00028C},
+ {0x000292, 0x000292},
+ {0x00029D, 0x00029E},
+ {0x000345, 0x000345},
+ {0x000371, 0x000371},
+ {0x000373, 0x000373},
+ {0x000377, 0x000377},
+ {0x00037B, 0x00037D},
+ {0x000390, 0x000390},
+ {0x0003AC, 0x0003CE},
+ {0x0003D0, 0x0003D1},
+ {0x0003D5, 0x0003D7},
+ {0x0003D9, 0x0003D9},
+ {0x0003DB, 0x0003DB},
+ {0x0003DD, 0x0003DD},
+ {0x0003DF, 0x0003DF},
+ {0x0003E1, 0x0003E1},
+ {0x0003E3, 0x0003E3},
+ {0x0003E5, 0x0003E5},
+ {0x0003E7, 0x0003E7},
+ {0x0003E9, 0x0003E9},
+ {0x0003EB, 0x0003EB},
+ {0x0003ED, 0x0003ED},
+ {0x0003EF, 0x0003F3},
+ {0x0003F5, 0x0003F5},
+ {0x0003F8, 0x0003F8},
+ {0x0003FB, 0x0003FB},
+ {0x000430, 0x00045F},
+ {0x000461, 0x000461},
+ {0x000463, 0x000463},
+ {0x000465, 0x000465},
+ {0x000467, 0x000467},
+ {0x000469, 0x000469},
+ {0x00046B, 0x00046B},
+ {0x00046D, 0x00046D},
+ {0x00046F, 0x00046F},
+ {0x000471, 0x000471},
+ {0x000473, 0x000473},
+ {0x000475, 0x000475},
+ {0x000477, 0x000477},
+ {0x000479, 0x000479},
+ {0x00047B, 0x00047B},
+ {0x00047D, 0x00047D},
+ {0x00047F, 0x00047F},
+ {0x000481, 0x000481},
+ {0x00048B, 0x00048B},
+ {0x00048D, 0x00048D},
+ {0x00048F, 0x00048F},
+ {0x000491, 0x000491},
+ {0x000493, 0x000493},
+ {0x000495, 0x000495},
+ {0x000497, 0x000497},
+ {0x000499, 0x000499},
+ {0x00049B, 0x00049B},
+ {0x00049D, 0x00049D},
+ {0x00049F, 0x00049F},
+ {0x0004A1, 0x0004A1},
+ {0x0004A3, 0x0004A3},
+ {0x0004A5, 0x0004A5},
+ {0x0004A7, 0x0004A7},
+ {0x0004A9, 0x0004A9},
+ {0x0004AB, 0x0004AB},
+ {0x0004AD, 0x0004AD},
+ {0x0004AF, 0x0004AF},
+ {0x0004B1, 0x0004B1},
+ {0x0004B3, 0x0004B3},
+ {0x0004B5, 0x0004B5},
+ {0x0004B7, 0x0004B7},
+ {0x0004B9, 0x0004B9},
+ {0x0004BB, 0x0004BB},
+ {0x0004BD, 0x0004BD},
+ {0x0004BF, 0x0004BF},
+ {0x0004C2, 0x0004C2},
+ {0x0004C4, 0x0004C4},
+ {0x0004C6, 0x0004C6},
+ {0x0004C8, 0x0004C8},
+ {0x0004CA, 0x0004CA},
+ {0x0004CC, 0x0004CC},
+ {0x0004CE, 0x0004CF},
+ {0x0004D1, 0x0004D1},
+ {0x0004D3, 0x0004D3},
+ {0x0004D5, 0x0004D5},
+ {0x0004D7, 0x0004D7},
+ {0x0004D9, 0x0004D9},
+ {0x0004DB, 0x0004DB},
+ {0x0004DD, 0x0004DD},
+ {0x0004DF, 0x0004DF},
+ {0x0004E1, 0x0004E1},
+ {0x0004E3, 0x0004E3},
+ {0x0004E5, 0x0004E5},
+ {0x0004E7, 0x0004E7},
+ {0x0004E9, 0x0004E9},
+ {0x0004EB, 0x0004EB},
+ {0x0004ED, 0x0004ED},
+ {0x0004EF, 0x0004EF},
+ {0x0004F1, 0x0004F1},
+ {0x0004F3, 0x0004F3},
+ {0x0004F5, 0x0004F5},
+ {0x0004F7, 0x0004F7},
+ {0x0004F9, 0x0004F9},
+ {0x0004FB, 0x0004FB},
+ {0x0004FD, 0x0004FD},
+ {0x0004FF, 0x0004FF},
+ {0x000501, 0x000501},
+ {0x000503, 0x000503},
+ {0x000505, 0x000505},
+ {0x000507, 0x000507},
+ {0x000509, 0x000509},
+ {0x00050B, 0x00050B},
+ {0x00050D, 0x00050D},
+ {0x00050F, 0x00050F},
+ {0x000511, 0x000511},
+ {0x000513, 0x000513},
+ {0x000515, 0x000515},
+ {0x000517, 0x000517},
+ {0x000519, 0x000519},
+ {0x00051B, 0x00051B},
+ {0x00051D, 0x00051D},
+ {0x00051F, 0x00051F},
+ {0x000521, 0x000521},
+ {0x000523, 0x000523},
+ {0x000525, 0x000525},
+ {0x000527, 0x000527},
+ {0x000529, 0x000529},
+ {0x00052B, 0x00052B},
+ {0x00052D, 0x00052D},
+ {0x00052F, 0x00052F},
+ {0x000561, 0x000587},
+ {0x0013F8, 0x0013FD},
+ {0x001C80, 0x001C88},
+ {0x001D79, 0x001D79},
+ {0x001D7D, 0x001D7D},
+ {0x001D8E, 0x001D8E},
+ {0x001E01, 0x001E01},
+ {0x001E03, 0x001E03},
+ {0x001E05, 0x001E05},
+ {0x001E07, 0x001E07},
+ {0x001E09, 0x001E09},
+ {0x001E0B, 0x001E0B},
+ {0x001E0D, 0x001E0D},
+ {0x001E0F, 0x001E0F},
+ {0x001E11, 0x001E11},
+ {0x001E13, 0x001E13},
+ {0x001E15, 0x001E15},
+ {0x001E17, 0x001E17},
+ {0x001E19, 0x001E19},
+ {0x001E1B, 0x001E1B},
+ {0x001E1D, 0x001E1D},
+ {0x001E1F, 0x001E1F},
+ {0x001E21, 0x001E21},
+ {0x001E23, 0x001E23},
+ {0x001E25, 0x001E25},
+ {0x001E27, 0x001E27},
+ {0x001E29, 0x001E29},
+ {0x001E2B, 0x001E2B},
+ {0x001E2D, 0x001E2D},
+ {0x001E2F, 0x001E2F},
+ {0x001E31, 0x001E31},
+ {0x001E33, 0x001E33},
+ {0x001E35, 0x001E35},
+ {0x001E37, 0x001E37},
+ {0x001E39, 0x001E39},
+ {0x001E3B, 0x001E3B},
+ {0x001E3D, 0x001E3D},
+ {0x001E3F, 0x001E3F},
+ {0x001E41, 0x001E41},
+ {0x001E43, 0x001E43},
+ {0x001E45, 0x001E45},
+ {0x001E47, 0x001E47},
+ {0x001E49, 0x001E49},
+ {0x001E4B, 0x001E4B},
+ {0x001E4D, 0x001E4D},
+ {0x001E4F, 0x001E4F},
+ {0x001E51, 0x001E51},
+ {0x001E53, 0x001E53},
+ {0x001E55, 0x001E55},
+ {0x001E57, 0x001E57},
+ {0x001E59, 0x001E59},
+ {0x001E5B, 0x001E5B},
+ {0x001E5D, 0x001E5D},
+ {0x001E5F, 0x001E5F},
+ {0x001E61, 0x001E61},
+ {0x001E63, 0x001E63},
+ {0x001E65, 0x001E65},
+ {0x001E67, 0x001E67},
+ {0x001E69, 0x001E69},
+ {0x001E6B, 0x001E6B},
+ {0x001E6D, 0x001E6D},
+ {0x001E6F, 0x001E6F},
+ {0x001E71, 0x001E71},
+ {0x001E73, 0x001E73},
+ {0x001E75, 0x001E75},
+ {0x001E77, 0x001E77},
+ {0x001E79, 0x001E79},
+ {0x001E7B, 0x001E7B},
+ {0x001E7D, 0x001E7D},
+ {0x001E7F, 0x001E7F},
+ {0x001E81, 0x001E81},
+ {0x001E83, 0x001E83},
+ {0x001E85, 0x001E85},
+ {0x001E87, 0x001E87},
+ {0x001E89, 0x001E89},
+ {0x001E8B, 0x001E8B},
+ {0x001E8D, 0x001E8D},
+ {0x001E8F, 0x001E8F},
+ {0x001E91, 0x001E91},
+ {0x001E93, 0x001E93},
+ {0x001E95, 0x001E9B},
+ {0x001EA1, 0x001EA1},
+ {0x001EA3, 0x001EA3},
+ {0x001EA5, 0x001EA5},
+ {0x001EA7, 0x001EA7},
+ {0x001EA9, 0x001EA9},
+ {0x001EAB, 0x001EAB},
+ {0x001EAD, 0x001EAD},
+ {0x001EAF, 0x001EAF},
+ {0x001EB1, 0x001EB1},
+ {0x001EB3, 0x001EB3},
+ {0x001EB5, 0x001EB5},
+ {0x001EB7, 0x001EB7},
+ {0x001EB9, 0x001EB9},
+ {0x001EBB, 0x001EBB},
+ {0x001EBD, 0x001EBD},
+ {0x001EBF, 0x001EBF},
+ {0x001EC1, 0x001EC1},
+ {0x001EC3, 0x001EC3},
+ {0x001EC5, 0x001EC5},
+ {0x001EC7, 0x001EC7},
+ {0x001EC9, 0x001EC9},
+ {0x001ECB, 0x001ECB},
+ {0x001ECD, 0x001ECD},
+ {0x001ECF, 0x001ECF},
+ {0x001ED1, 0x001ED1},
+ {0x001ED3, 0x001ED3},
+ {0x001ED5, 0x001ED5},
+ {0x001ED7, 0x001ED7},
+ {0x001ED9, 0x001ED9},
+ {0x001EDB, 0x001EDB},
+ {0x001EDD, 0x001EDD},
+ {0x001EDF, 0x001EDF},
+ {0x001EE1, 0x001EE1},
+ {0x001EE3, 0x001EE3},
+ {0x001EE5, 0x001EE5},
+ {0x001EE7, 0x001EE7},
+ {0x001EE9, 0x001EE9},
+ {0x001EEB, 0x001EEB},
+ {0x001EED, 0x001EED},
+ {0x001EEF, 0x001EEF},
+ {0x001EF1, 0x001EF1},
+ {0x001EF3, 0x001EF3},
+ {0x001EF5, 0x001EF5},
+ {0x001EF7, 0x001EF7},
+ {0x001EF9, 0x001EF9},
+ {0x001EFB, 0x001EFB},
+ {0x001EFD, 0x001EFD},
+ {0x001EFF, 0x001F07},
+ {0x001F10, 0x001F15},
+ {0x001F20, 0x001F27},
+ {0x001F30, 0x001F37},
+ {0x001F40, 0x001F45},
+ {0x001F50, 0x001F57},
+ {0x001F60, 0x001F67},
+ {0x001F70, 0x001F7D},
+ {0x001F80, 0x001F87},
+ {0x001F90, 0x001F97},
+ {0x001FA0, 0x001FA7},
+ {0x001FB0, 0x001FB4},
+ {0x001FB6, 0x001FB7},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FC7},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FD7},
+ {0x001FE0, 0x001FE7},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FF7},
+ {0x00214E, 0x00214E},
+ {0x002170, 0x00217F},
+ {0x002184, 0x002184},
+ {0x0024D0, 0x0024E9},
+ {0x002C30, 0x002C5F},
+ {0x002C61, 0x002C61},
+ {0x002C65, 0x002C66},
+ {0x002C68, 0x002C68},
+ {0x002C6A, 0x002C6A},
+ {0x002C6C, 0x002C6C},
+ {0x002C73, 0x002C73},
+ {0x002C76, 0x002C76},
+ {0x002C81, 0x002C81},
+ {0x002C83, 0x002C83},
+ {0x002C85, 0x002C85},
+ {0x002C87, 0x002C87},
+ {0x002C89, 0x002C89},
+ {0x002C8B, 0x002C8B},
+ {0x002C8D, 0x002C8D},
+ {0x002C8F, 0x002C8F},
+ {0x002C91, 0x002C91},
+ {0x002C93, 0x002C93},
+ {0x002C95, 0x002C95},
+ {0x002C97, 0x002C97},
+ {0x002C99, 0x002C99},
+ {0x002C9B, 0x002C9B},
+ {0x002C9D, 0x002C9D},
+ {0x002C9F, 0x002C9F},
+ {0x002CA1, 0x002CA1},
+ {0x002CA3, 0x002CA3},
+ {0x002CA5, 0x002CA5},
+ {0x002CA7, 0x002CA7},
+ {0x002CA9, 0x002CA9},
+ {0x002CAB, 0x002CAB},
+ {0x002CAD, 0x002CAD},
+ {0x002CAF, 0x002CAF},
+ {0x002CB1, 0x002CB1},
+ {0x002CB3, 0x002CB3},
+ {0x002CB5, 0x002CB5},
+ {0x002CB7, 0x002CB7},
+ {0x002CB9, 0x002CB9},
+ {0x002CBB, 0x002CBB},
+ {0x002CBD, 0x002CBD},
+ {0x002CBF, 0x002CBF},
+ {0x002CC1, 0x002CC1},
+ {0x002CC3, 0x002CC3},
+ {0x002CC5, 0x002CC5},
+ {0x002CC7, 0x002CC7},
+ {0x002CC9, 0x002CC9},
+ {0x002CCB, 0x002CCB},
+ {0x002CCD, 0x002CCD},
+ {0x002CCF, 0x002CCF},
+ {0x002CD1, 0x002CD1},
+ {0x002CD3, 0x002CD3},
+ {0x002CD5, 0x002CD5},
+ {0x002CD7, 0x002CD7},
+ {0x002CD9, 0x002CD9},
+ {0x002CDB, 0x002CDB},
+ {0x002CDD, 0x002CDD},
+ {0x002CDF, 0x002CDF},
+ {0x002CE1, 0x002CE1},
+ {0x002CE3, 0x002CE3},
+ {0x002CEC, 0x002CEC},
+ {0x002CEE, 0x002CEE},
+ {0x002CF3, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x00A641, 0x00A641},
+ {0x00A643, 0x00A643},
+ {0x00A645, 0x00A645},
+ {0x00A647, 0x00A647},
+ {0x00A649, 0x00A649},
+ {0x00A64B, 0x00A64B},
+ {0x00A64D, 0x00A64D},
+ {0x00A64F, 0x00A64F},
+ {0x00A651, 0x00A651},
+ {0x00A653, 0x00A653},
+ {0x00A655, 0x00A655},
+ {0x00A657, 0x00A657},
+ {0x00A659, 0x00A659},
+ {0x00A65B, 0x00A65B},
+ {0x00A65D, 0x00A65D},
+ {0x00A65F, 0x00A65F},
+ {0x00A661, 0x00A661},
+ {0x00A663, 0x00A663},
+ {0x00A665, 0x00A665},
+ {0x00A667, 0x00A667},
+ {0x00A669, 0x00A669},
+ {0x00A66B, 0x00A66B},
+ {0x00A66D, 0x00A66D},
+ {0x00A681, 0x00A681},
+ {0x00A683, 0x00A683},
+ {0x00A685, 0x00A685},
+ {0x00A687, 0x00A687},
+ {0x00A689, 0x00A689},
+ {0x00A68B, 0x00A68B},
+ {0x00A68D, 0x00A68D},
+ {0x00A68F, 0x00A68F},
+ {0x00A691, 0x00A691},
+ {0x00A693, 0x00A693},
+ {0x00A695, 0x00A695},
+ {0x00A697, 0x00A697},
+ {0x00A699, 0x00A699},
+ {0x00A69B, 0x00A69B},
+ {0x00A723, 0x00A723},
+ {0x00A725, 0x00A725},
+ {0x00A727, 0x00A727},
+ {0x00A729, 0x00A729},
+ {0x00A72B, 0x00A72B},
+ {0x00A72D, 0x00A72D},
+ {0x00A72F, 0x00A72F},
+ {0x00A733, 0x00A733},
+ {0x00A735, 0x00A735},
+ {0x00A737, 0x00A737},
+ {0x00A739, 0x00A739},
+ {0x00A73B, 0x00A73B},
+ {0x00A73D, 0x00A73D},
+ {0x00A73F, 0x00A73F},
+ {0x00A741, 0x00A741},
+ {0x00A743, 0x00A743},
+ {0x00A745, 0x00A745},
+ {0x00A747, 0x00A747},
+ {0x00A749, 0x00A749},
+ {0x00A74B, 0x00A74B},
+ {0x00A74D, 0x00A74D},
+ {0x00A74F, 0x00A74F},
+ {0x00A751, 0x00A751},
+ {0x00A753, 0x00A753},
+ {0x00A755, 0x00A755},
+ {0x00A757, 0x00A757},
+ {0x00A759, 0x00A759},
+ {0x00A75B, 0x00A75B},
+ {0x00A75D, 0x00A75D},
+ {0x00A75F, 0x00A75F},
+ {0x00A761, 0x00A761},
+ {0x00A763, 0x00A763},
+ {0x00A765, 0x00A765},
+ {0x00A767, 0x00A767},
+ {0x00A769, 0x00A769},
+ {0x00A76B, 0x00A76B},
+ {0x00A76D, 0x00A76D},
+ {0x00A76F, 0x00A76F},
+ {0x00A77A, 0x00A77A},
+ {0x00A77C, 0x00A77C},
+ {0x00A77F, 0x00A77F},
+ {0x00A781, 0x00A781},
+ {0x00A783, 0x00A783},
+ {0x00A785, 0x00A785},
+ {0x00A787, 0x00A787},
+ {0x00A78C, 0x00A78C},
+ {0x00A791, 0x00A791},
+ {0x00A793, 0x00A794},
+ {0x00A797, 0x00A797},
+ {0x00A799, 0x00A799},
+ {0x00A79B, 0x00A79B},
+ {0x00A79D, 0x00A79D},
+ {0x00A79F, 0x00A79F},
+ {0x00A7A1, 0x00A7A1},
+ {0x00A7A3, 0x00A7A3},
+ {0x00A7A5, 0x00A7A5},
+ {0x00A7A7, 0x00A7A7},
+ {0x00A7A9, 0x00A7A9},
+ {0x00A7B5, 0x00A7B5},
+ {0x00A7B7, 0x00A7B7},
+ {0x00A7B9, 0x00A7B9},
+ {0x00A7BB, 0x00A7BB},
+ {0x00A7BD, 0x00A7BD},
+ {0x00A7BF, 0x00A7BF},
+ {0x00A7C1, 0x00A7C1},
+ {0x00A7C3, 0x00A7C3},
+ {0x00A7C8, 0x00A7C8},
+ {0x00A7CA, 0x00A7CA},
+ {0x00A7D1, 0x00A7D1},
+ {0x00A7D7, 0x00A7D7},
+ {0x00A7D9, 0x00A7D9},
+ {0x00A7F6, 0x00A7F6},
+ {0x00AB53, 0x00AB53},
+ {0x00AB70, 0x00ABBF},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FF41, 0x00FF5A},
+ {0x010428, 0x01044F},
+ {0x0104D8, 0x0104FB},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010CC0, 0x010CF2},
+ {0x0118C0, 0x0118DF},
+ {0x016E60, 0x016E7F},
+ {0x01E922, 0x01E943},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_changes_when_titlecased(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_changes_when_uppercased.c b/vendor/librune/lib/rtype/rune_has_prop_changes_when_uppercased.c
new file mode 100644
index 0000000..993cbca
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_changes_when_uppercased.c
@@ -0,0 +1,657 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF80000000002000000000000007FFFFFE000000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000061, 0x00007A},
+ {0x0000B5, 0x0000B5},
+ {0x0000DF, 0x0000F6},
+ {0x0000F8, 0x0000FF},
+ {0x000101, 0x000101},
+ {0x000103, 0x000103},
+ {0x000105, 0x000105},
+ {0x000107, 0x000107},
+ {0x000109, 0x000109},
+ {0x00010B, 0x00010B},
+ {0x00010D, 0x00010D},
+ {0x00010F, 0x00010F},
+ {0x000111, 0x000111},
+ {0x000113, 0x000113},
+ {0x000115, 0x000115},
+ {0x000117, 0x000117},
+ {0x000119, 0x000119},
+ {0x00011B, 0x00011B},
+ {0x00011D, 0x00011D},
+ {0x00011F, 0x00011F},
+ {0x000121, 0x000121},
+ {0x000123, 0x000123},
+ {0x000125, 0x000125},
+ {0x000127, 0x000127},
+ {0x000129, 0x000129},
+ {0x00012B, 0x00012B},
+ {0x00012D, 0x00012D},
+ {0x00012F, 0x00012F},
+ {0x000131, 0x000131},
+ {0x000133, 0x000133},
+ {0x000135, 0x000135},
+ {0x000137, 0x000137},
+ {0x00013A, 0x00013A},
+ {0x00013C, 0x00013C},
+ {0x00013E, 0x00013E},
+ {0x000140, 0x000140},
+ {0x000142, 0x000142},
+ {0x000144, 0x000144},
+ {0x000146, 0x000146},
+ {0x000148, 0x000149},
+ {0x00014B, 0x00014B},
+ {0x00014D, 0x00014D},
+ {0x00014F, 0x00014F},
+ {0x000151, 0x000151},
+ {0x000153, 0x000153},
+ {0x000155, 0x000155},
+ {0x000157, 0x000157},
+ {0x000159, 0x000159},
+ {0x00015B, 0x00015B},
+ {0x00015D, 0x00015D},
+ {0x00015F, 0x00015F},
+ {0x000161, 0x000161},
+ {0x000163, 0x000163},
+ {0x000165, 0x000165},
+ {0x000167, 0x000167},
+ {0x000169, 0x000169},
+ {0x00016B, 0x00016B},
+ {0x00016D, 0x00016D},
+ {0x00016F, 0x00016F},
+ {0x000171, 0x000171},
+ {0x000173, 0x000173},
+ {0x000175, 0x000175},
+ {0x000177, 0x000177},
+ {0x00017A, 0x00017A},
+ {0x00017C, 0x00017C},
+ {0x00017E, 0x000180},
+ {0x000183, 0x000183},
+ {0x000185, 0x000185},
+ {0x000188, 0x000188},
+ {0x00018C, 0x00018C},
+ {0x000192, 0x000192},
+ {0x000195, 0x000195},
+ {0x000199, 0x00019A},
+ {0x00019E, 0x00019E},
+ {0x0001A1, 0x0001A1},
+ {0x0001A3, 0x0001A3},
+ {0x0001A5, 0x0001A5},
+ {0x0001A8, 0x0001A8},
+ {0x0001AD, 0x0001AD},
+ {0x0001B0, 0x0001B0},
+ {0x0001B4, 0x0001B4},
+ {0x0001B6, 0x0001B6},
+ {0x0001B9, 0x0001B9},
+ {0x0001BD, 0x0001BD},
+ {0x0001BF, 0x0001BF},
+ {0x0001C5, 0x0001C6},
+ {0x0001C8, 0x0001C9},
+ {0x0001CB, 0x0001CC},
+ {0x0001CE, 0x0001CE},
+ {0x0001D0, 0x0001D0},
+ {0x0001D2, 0x0001D2},
+ {0x0001D4, 0x0001D4},
+ {0x0001D6, 0x0001D6},
+ {0x0001D8, 0x0001D8},
+ {0x0001DA, 0x0001DA},
+ {0x0001DC, 0x0001DD},
+ {0x0001DF, 0x0001DF},
+ {0x0001E1, 0x0001E1},
+ {0x0001E3, 0x0001E3},
+ {0x0001E5, 0x0001E5},
+ {0x0001E7, 0x0001E7},
+ {0x0001E9, 0x0001E9},
+ {0x0001EB, 0x0001EB},
+ {0x0001ED, 0x0001ED},
+ {0x0001EF, 0x0001F0},
+ {0x0001F2, 0x0001F3},
+ {0x0001F5, 0x0001F5},
+ {0x0001F9, 0x0001F9},
+ {0x0001FB, 0x0001FB},
+ {0x0001FD, 0x0001FD},
+ {0x0001FF, 0x0001FF},
+ {0x000201, 0x000201},
+ {0x000203, 0x000203},
+ {0x000205, 0x000205},
+ {0x000207, 0x000207},
+ {0x000209, 0x000209},
+ {0x00020B, 0x00020B},
+ {0x00020D, 0x00020D},
+ {0x00020F, 0x00020F},
+ {0x000211, 0x000211},
+ {0x000213, 0x000213},
+ {0x000215, 0x000215},
+ {0x000217, 0x000217},
+ {0x000219, 0x000219},
+ {0x00021B, 0x00021B},
+ {0x00021D, 0x00021D},
+ {0x00021F, 0x00021F},
+ {0x000223, 0x000223},
+ {0x000225, 0x000225},
+ {0x000227, 0x000227},
+ {0x000229, 0x000229},
+ {0x00022B, 0x00022B},
+ {0x00022D, 0x00022D},
+ {0x00022F, 0x00022F},
+ {0x000231, 0x000231},
+ {0x000233, 0x000233},
+ {0x00023C, 0x00023C},
+ {0x00023F, 0x000240},
+ {0x000242, 0x000242},
+ {0x000247, 0x000247},
+ {0x000249, 0x000249},
+ {0x00024B, 0x00024B},
+ {0x00024D, 0x00024D},
+ {0x00024F, 0x000254},
+ {0x000256, 0x000257},
+ {0x000259, 0x000259},
+ {0x00025B, 0x00025C},
+ {0x000260, 0x000261},
+ {0x000263, 0x000263},
+ {0x000265, 0x000266},
+ {0x000268, 0x00026C},
+ {0x00026F, 0x00026F},
+ {0x000271, 0x000272},
+ {0x000275, 0x000275},
+ {0x00027D, 0x00027D},
+ {0x000280, 0x000280},
+ {0x000282, 0x000283},
+ {0x000287, 0x00028C},
+ {0x000292, 0x000292},
+ {0x00029D, 0x00029E},
+ {0x000345, 0x000345},
+ {0x000371, 0x000371},
+ {0x000373, 0x000373},
+ {0x000377, 0x000377},
+ {0x00037B, 0x00037D},
+ {0x000390, 0x000390},
+ {0x0003AC, 0x0003CE},
+ {0x0003D0, 0x0003D1},
+ {0x0003D5, 0x0003D7},
+ {0x0003D9, 0x0003D9},
+ {0x0003DB, 0x0003DB},
+ {0x0003DD, 0x0003DD},
+ {0x0003DF, 0x0003DF},
+ {0x0003E1, 0x0003E1},
+ {0x0003E3, 0x0003E3},
+ {0x0003E5, 0x0003E5},
+ {0x0003E7, 0x0003E7},
+ {0x0003E9, 0x0003E9},
+ {0x0003EB, 0x0003EB},
+ {0x0003ED, 0x0003ED},
+ {0x0003EF, 0x0003F3},
+ {0x0003F5, 0x0003F5},
+ {0x0003F8, 0x0003F8},
+ {0x0003FB, 0x0003FB},
+ {0x000430, 0x00045F},
+ {0x000461, 0x000461},
+ {0x000463, 0x000463},
+ {0x000465, 0x000465},
+ {0x000467, 0x000467},
+ {0x000469, 0x000469},
+ {0x00046B, 0x00046B},
+ {0x00046D, 0x00046D},
+ {0x00046F, 0x00046F},
+ {0x000471, 0x000471},
+ {0x000473, 0x000473},
+ {0x000475, 0x000475},
+ {0x000477, 0x000477},
+ {0x000479, 0x000479},
+ {0x00047B, 0x00047B},
+ {0x00047D, 0x00047D},
+ {0x00047F, 0x00047F},
+ {0x000481, 0x000481},
+ {0x00048B, 0x00048B},
+ {0x00048D, 0x00048D},
+ {0x00048F, 0x00048F},
+ {0x000491, 0x000491},
+ {0x000493, 0x000493},
+ {0x000495, 0x000495},
+ {0x000497, 0x000497},
+ {0x000499, 0x000499},
+ {0x00049B, 0x00049B},
+ {0x00049D, 0x00049D},
+ {0x00049F, 0x00049F},
+ {0x0004A1, 0x0004A1},
+ {0x0004A3, 0x0004A3},
+ {0x0004A5, 0x0004A5},
+ {0x0004A7, 0x0004A7},
+ {0x0004A9, 0x0004A9},
+ {0x0004AB, 0x0004AB},
+ {0x0004AD, 0x0004AD},
+ {0x0004AF, 0x0004AF},
+ {0x0004B1, 0x0004B1},
+ {0x0004B3, 0x0004B3},
+ {0x0004B5, 0x0004B5},
+ {0x0004B7, 0x0004B7},
+ {0x0004B9, 0x0004B9},
+ {0x0004BB, 0x0004BB},
+ {0x0004BD, 0x0004BD},
+ {0x0004BF, 0x0004BF},
+ {0x0004C2, 0x0004C2},
+ {0x0004C4, 0x0004C4},
+ {0x0004C6, 0x0004C6},
+ {0x0004C8, 0x0004C8},
+ {0x0004CA, 0x0004CA},
+ {0x0004CC, 0x0004CC},
+ {0x0004CE, 0x0004CF},
+ {0x0004D1, 0x0004D1},
+ {0x0004D3, 0x0004D3},
+ {0x0004D5, 0x0004D5},
+ {0x0004D7, 0x0004D7},
+ {0x0004D9, 0x0004D9},
+ {0x0004DB, 0x0004DB},
+ {0x0004DD, 0x0004DD},
+ {0x0004DF, 0x0004DF},
+ {0x0004E1, 0x0004E1},
+ {0x0004E3, 0x0004E3},
+ {0x0004E5, 0x0004E5},
+ {0x0004E7, 0x0004E7},
+ {0x0004E9, 0x0004E9},
+ {0x0004EB, 0x0004EB},
+ {0x0004ED, 0x0004ED},
+ {0x0004EF, 0x0004EF},
+ {0x0004F1, 0x0004F1},
+ {0x0004F3, 0x0004F3},
+ {0x0004F5, 0x0004F5},
+ {0x0004F7, 0x0004F7},
+ {0x0004F9, 0x0004F9},
+ {0x0004FB, 0x0004FB},
+ {0x0004FD, 0x0004FD},
+ {0x0004FF, 0x0004FF},
+ {0x000501, 0x000501},
+ {0x000503, 0x000503},
+ {0x000505, 0x000505},
+ {0x000507, 0x000507},
+ {0x000509, 0x000509},
+ {0x00050B, 0x00050B},
+ {0x00050D, 0x00050D},
+ {0x00050F, 0x00050F},
+ {0x000511, 0x000511},
+ {0x000513, 0x000513},
+ {0x000515, 0x000515},
+ {0x000517, 0x000517},
+ {0x000519, 0x000519},
+ {0x00051B, 0x00051B},
+ {0x00051D, 0x00051D},
+ {0x00051F, 0x00051F},
+ {0x000521, 0x000521},
+ {0x000523, 0x000523},
+ {0x000525, 0x000525},
+ {0x000527, 0x000527},
+ {0x000529, 0x000529},
+ {0x00052B, 0x00052B},
+ {0x00052D, 0x00052D},
+ {0x00052F, 0x00052F},
+ {0x000561, 0x000587},
+ {0x0010D0, 0x0010FA},
+ {0x0010FD, 0x0010FF},
+ {0x0013F8, 0x0013FD},
+ {0x001C80, 0x001C88},
+ {0x001D79, 0x001D79},
+ {0x001D7D, 0x001D7D},
+ {0x001D8E, 0x001D8E},
+ {0x001E01, 0x001E01},
+ {0x001E03, 0x001E03},
+ {0x001E05, 0x001E05},
+ {0x001E07, 0x001E07},
+ {0x001E09, 0x001E09},
+ {0x001E0B, 0x001E0B},
+ {0x001E0D, 0x001E0D},
+ {0x001E0F, 0x001E0F},
+ {0x001E11, 0x001E11},
+ {0x001E13, 0x001E13},
+ {0x001E15, 0x001E15},
+ {0x001E17, 0x001E17},
+ {0x001E19, 0x001E19},
+ {0x001E1B, 0x001E1B},
+ {0x001E1D, 0x001E1D},
+ {0x001E1F, 0x001E1F},
+ {0x001E21, 0x001E21},
+ {0x001E23, 0x001E23},
+ {0x001E25, 0x001E25},
+ {0x001E27, 0x001E27},
+ {0x001E29, 0x001E29},
+ {0x001E2B, 0x001E2B},
+ {0x001E2D, 0x001E2D},
+ {0x001E2F, 0x001E2F},
+ {0x001E31, 0x001E31},
+ {0x001E33, 0x001E33},
+ {0x001E35, 0x001E35},
+ {0x001E37, 0x001E37},
+ {0x001E39, 0x001E39},
+ {0x001E3B, 0x001E3B},
+ {0x001E3D, 0x001E3D},
+ {0x001E3F, 0x001E3F},
+ {0x001E41, 0x001E41},
+ {0x001E43, 0x001E43},
+ {0x001E45, 0x001E45},
+ {0x001E47, 0x001E47},
+ {0x001E49, 0x001E49},
+ {0x001E4B, 0x001E4B},
+ {0x001E4D, 0x001E4D},
+ {0x001E4F, 0x001E4F},
+ {0x001E51, 0x001E51},
+ {0x001E53, 0x001E53},
+ {0x001E55, 0x001E55},
+ {0x001E57, 0x001E57},
+ {0x001E59, 0x001E59},
+ {0x001E5B, 0x001E5B},
+ {0x001E5D, 0x001E5D},
+ {0x001E5F, 0x001E5F},
+ {0x001E61, 0x001E61},
+ {0x001E63, 0x001E63},
+ {0x001E65, 0x001E65},
+ {0x001E67, 0x001E67},
+ {0x001E69, 0x001E69},
+ {0x001E6B, 0x001E6B},
+ {0x001E6D, 0x001E6D},
+ {0x001E6F, 0x001E6F},
+ {0x001E71, 0x001E71},
+ {0x001E73, 0x001E73},
+ {0x001E75, 0x001E75},
+ {0x001E77, 0x001E77},
+ {0x001E79, 0x001E79},
+ {0x001E7B, 0x001E7B},
+ {0x001E7D, 0x001E7D},
+ {0x001E7F, 0x001E7F},
+ {0x001E81, 0x001E81},
+ {0x001E83, 0x001E83},
+ {0x001E85, 0x001E85},
+ {0x001E87, 0x001E87},
+ {0x001E89, 0x001E89},
+ {0x001E8B, 0x001E8B},
+ {0x001E8D, 0x001E8D},
+ {0x001E8F, 0x001E8F},
+ {0x001E91, 0x001E91},
+ {0x001E93, 0x001E93},
+ {0x001E95, 0x001E9B},
+ {0x001EA1, 0x001EA1},
+ {0x001EA3, 0x001EA3},
+ {0x001EA5, 0x001EA5},
+ {0x001EA7, 0x001EA7},
+ {0x001EA9, 0x001EA9},
+ {0x001EAB, 0x001EAB},
+ {0x001EAD, 0x001EAD},
+ {0x001EAF, 0x001EAF},
+ {0x001EB1, 0x001EB1},
+ {0x001EB3, 0x001EB3},
+ {0x001EB5, 0x001EB5},
+ {0x001EB7, 0x001EB7},
+ {0x001EB9, 0x001EB9},
+ {0x001EBB, 0x001EBB},
+ {0x001EBD, 0x001EBD},
+ {0x001EBF, 0x001EBF},
+ {0x001EC1, 0x001EC1},
+ {0x001EC3, 0x001EC3},
+ {0x001EC5, 0x001EC5},
+ {0x001EC7, 0x001EC7},
+ {0x001EC9, 0x001EC9},
+ {0x001ECB, 0x001ECB},
+ {0x001ECD, 0x001ECD},
+ {0x001ECF, 0x001ECF},
+ {0x001ED1, 0x001ED1},
+ {0x001ED3, 0x001ED3},
+ {0x001ED5, 0x001ED5},
+ {0x001ED7, 0x001ED7},
+ {0x001ED9, 0x001ED9},
+ {0x001EDB, 0x001EDB},
+ {0x001EDD, 0x001EDD},
+ {0x001EDF, 0x001EDF},
+ {0x001EE1, 0x001EE1},
+ {0x001EE3, 0x001EE3},
+ {0x001EE5, 0x001EE5},
+ {0x001EE7, 0x001EE7},
+ {0x001EE9, 0x001EE9},
+ {0x001EEB, 0x001EEB},
+ {0x001EED, 0x001EED},
+ {0x001EEF, 0x001EEF},
+ {0x001EF1, 0x001EF1},
+ {0x001EF3, 0x001EF3},
+ {0x001EF5, 0x001EF5},
+ {0x001EF7, 0x001EF7},
+ {0x001EF9, 0x001EF9},
+ {0x001EFB, 0x001EFB},
+ {0x001EFD, 0x001EFD},
+ {0x001EFF, 0x001F07},
+ {0x001F10, 0x001F15},
+ {0x001F20, 0x001F27},
+ {0x001F30, 0x001F37},
+ {0x001F40, 0x001F45},
+ {0x001F50, 0x001F57},
+ {0x001F60, 0x001F67},
+ {0x001F70, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FB7},
+ {0x001FBC, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FC7},
+ {0x001FCC, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FD7},
+ {0x001FE0, 0x001FE7},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FF7},
+ {0x001FFC, 0x001FFC},
+ {0x00214E, 0x00214E},
+ {0x002170, 0x00217F},
+ {0x002184, 0x002184},
+ {0x0024D0, 0x0024E9},
+ {0x002C30, 0x002C5F},
+ {0x002C61, 0x002C61},
+ {0x002C65, 0x002C66},
+ {0x002C68, 0x002C68},
+ {0x002C6A, 0x002C6A},
+ {0x002C6C, 0x002C6C},
+ {0x002C73, 0x002C73},
+ {0x002C76, 0x002C76},
+ {0x002C81, 0x002C81},
+ {0x002C83, 0x002C83},
+ {0x002C85, 0x002C85},
+ {0x002C87, 0x002C87},
+ {0x002C89, 0x002C89},
+ {0x002C8B, 0x002C8B},
+ {0x002C8D, 0x002C8D},
+ {0x002C8F, 0x002C8F},
+ {0x002C91, 0x002C91},
+ {0x002C93, 0x002C93},
+ {0x002C95, 0x002C95},
+ {0x002C97, 0x002C97},
+ {0x002C99, 0x002C99},
+ {0x002C9B, 0x002C9B},
+ {0x002C9D, 0x002C9D},
+ {0x002C9F, 0x002C9F},
+ {0x002CA1, 0x002CA1},
+ {0x002CA3, 0x002CA3},
+ {0x002CA5, 0x002CA5},
+ {0x002CA7, 0x002CA7},
+ {0x002CA9, 0x002CA9},
+ {0x002CAB, 0x002CAB},
+ {0x002CAD, 0x002CAD},
+ {0x002CAF, 0x002CAF},
+ {0x002CB1, 0x002CB1},
+ {0x002CB3, 0x002CB3},
+ {0x002CB5, 0x002CB5},
+ {0x002CB7, 0x002CB7},
+ {0x002CB9, 0x002CB9},
+ {0x002CBB, 0x002CBB},
+ {0x002CBD, 0x002CBD},
+ {0x002CBF, 0x002CBF},
+ {0x002CC1, 0x002CC1},
+ {0x002CC3, 0x002CC3},
+ {0x002CC5, 0x002CC5},
+ {0x002CC7, 0x002CC7},
+ {0x002CC9, 0x002CC9},
+ {0x002CCB, 0x002CCB},
+ {0x002CCD, 0x002CCD},
+ {0x002CCF, 0x002CCF},
+ {0x002CD1, 0x002CD1},
+ {0x002CD3, 0x002CD3},
+ {0x002CD5, 0x002CD5},
+ {0x002CD7, 0x002CD7},
+ {0x002CD9, 0x002CD9},
+ {0x002CDB, 0x002CDB},
+ {0x002CDD, 0x002CDD},
+ {0x002CDF, 0x002CDF},
+ {0x002CE1, 0x002CE1},
+ {0x002CE3, 0x002CE3},
+ {0x002CEC, 0x002CEC},
+ {0x002CEE, 0x002CEE},
+ {0x002CF3, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x00A641, 0x00A641},
+ {0x00A643, 0x00A643},
+ {0x00A645, 0x00A645},
+ {0x00A647, 0x00A647},
+ {0x00A649, 0x00A649},
+ {0x00A64B, 0x00A64B},
+ {0x00A64D, 0x00A64D},
+ {0x00A64F, 0x00A64F},
+ {0x00A651, 0x00A651},
+ {0x00A653, 0x00A653},
+ {0x00A655, 0x00A655},
+ {0x00A657, 0x00A657},
+ {0x00A659, 0x00A659},
+ {0x00A65B, 0x00A65B},
+ {0x00A65D, 0x00A65D},
+ {0x00A65F, 0x00A65F},
+ {0x00A661, 0x00A661},
+ {0x00A663, 0x00A663},
+ {0x00A665, 0x00A665},
+ {0x00A667, 0x00A667},
+ {0x00A669, 0x00A669},
+ {0x00A66B, 0x00A66B},
+ {0x00A66D, 0x00A66D},
+ {0x00A681, 0x00A681},
+ {0x00A683, 0x00A683},
+ {0x00A685, 0x00A685},
+ {0x00A687, 0x00A687},
+ {0x00A689, 0x00A689},
+ {0x00A68B, 0x00A68B},
+ {0x00A68D, 0x00A68D},
+ {0x00A68F, 0x00A68F},
+ {0x00A691, 0x00A691},
+ {0x00A693, 0x00A693},
+ {0x00A695, 0x00A695},
+ {0x00A697, 0x00A697},
+ {0x00A699, 0x00A699},
+ {0x00A69B, 0x00A69B},
+ {0x00A723, 0x00A723},
+ {0x00A725, 0x00A725},
+ {0x00A727, 0x00A727},
+ {0x00A729, 0x00A729},
+ {0x00A72B, 0x00A72B},
+ {0x00A72D, 0x00A72D},
+ {0x00A72F, 0x00A72F},
+ {0x00A733, 0x00A733},
+ {0x00A735, 0x00A735},
+ {0x00A737, 0x00A737},
+ {0x00A739, 0x00A739},
+ {0x00A73B, 0x00A73B},
+ {0x00A73D, 0x00A73D},
+ {0x00A73F, 0x00A73F},
+ {0x00A741, 0x00A741},
+ {0x00A743, 0x00A743},
+ {0x00A745, 0x00A745},
+ {0x00A747, 0x00A747},
+ {0x00A749, 0x00A749},
+ {0x00A74B, 0x00A74B},
+ {0x00A74D, 0x00A74D},
+ {0x00A74F, 0x00A74F},
+ {0x00A751, 0x00A751},
+ {0x00A753, 0x00A753},
+ {0x00A755, 0x00A755},
+ {0x00A757, 0x00A757},
+ {0x00A759, 0x00A759},
+ {0x00A75B, 0x00A75B},
+ {0x00A75D, 0x00A75D},
+ {0x00A75F, 0x00A75F},
+ {0x00A761, 0x00A761},
+ {0x00A763, 0x00A763},
+ {0x00A765, 0x00A765},
+ {0x00A767, 0x00A767},
+ {0x00A769, 0x00A769},
+ {0x00A76B, 0x00A76B},
+ {0x00A76D, 0x00A76D},
+ {0x00A76F, 0x00A76F},
+ {0x00A77A, 0x00A77A},
+ {0x00A77C, 0x00A77C},
+ {0x00A77F, 0x00A77F},
+ {0x00A781, 0x00A781},
+ {0x00A783, 0x00A783},
+ {0x00A785, 0x00A785},
+ {0x00A787, 0x00A787},
+ {0x00A78C, 0x00A78C},
+ {0x00A791, 0x00A791},
+ {0x00A793, 0x00A794},
+ {0x00A797, 0x00A797},
+ {0x00A799, 0x00A799},
+ {0x00A79B, 0x00A79B},
+ {0x00A79D, 0x00A79D},
+ {0x00A79F, 0x00A79F},
+ {0x00A7A1, 0x00A7A1},
+ {0x00A7A3, 0x00A7A3},
+ {0x00A7A5, 0x00A7A5},
+ {0x00A7A7, 0x00A7A7},
+ {0x00A7A9, 0x00A7A9},
+ {0x00A7B5, 0x00A7B5},
+ {0x00A7B7, 0x00A7B7},
+ {0x00A7B9, 0x00A7B9},
+ {0x00A7BB, 0x00A7BB},
+ {0x00A7BD, 0x00A7BD},
+ {0x00A7BF, 0x00A7BF},
+ {0x00A7C1, 0x00A7C1},
+ {0x00A7C3, 0x00A7C3},
+ {0x00A7C8, 0x00A7C8},
+ {0x00A7CA, 0x00A7CA},
+ {0x00A7D1, 0x00A7D1},
+ {0x00A7D7, 0x00A7D7},
+ {0x00A7D9, 0x00A7D9},
+ {0x00A7F6, 0x00A7F6},
+ {0x00AB53, 0x00AB53},
+ {0x00AB70, 0x00ABBF},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FF41, 0x00FF5A},
+ {0x010428, 0x01044F},
+ {0x0104D8, 0x0104FB},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010CC0, 0x010CF2},
+ {0x0118C0, 0x0118DF},
+ {0x016E60, 0x016E7F},
+ {0x01E922, 0x01E943},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_changes_when_uppercased(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_dash.c b/vendor/librune/lib/rtype/rune_has_prop_dash.c
new file mode 100644
index 0000000..248eb00
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_dash.c
@@ -0,0 +1,53 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x200000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x00002D, 0x00002D},
+ {0x00058A, 0x00058A},
+ {0x0005BE, 0x0005BE},
+ {0x001400, 0x001400},
+ {0x001806, 0x001806},
+ {0x002010, 0x002015},
+ {0x002053, 0x002053},
+ {0x00207B, 0x00207B},
+ {0x00208B, 0x00208B},
+ {0x002212, 0x002212},
+ {0x002E17, 0x002E17},
+ {0x002E1A, 0x002E1A},
+ {0x002E3A, 0x002E3B},
+ {0x002E40, 0x002E40},
+ {0x002E5D, 0x002E5D},
+ {0x00301C, 0x00301C},
+ {0x003030, 0x003030},
+ {0x0030A0, 0x0030A0},
+ {0x00FE31, 0x00FE32},
+ {0x00FE58, 0x00FE58},
+ {0x00FE63, 0x00FE63},
+ {0x00FF0D, 0x00FF0D},
+ {0x010EAD, 0x010EAD},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_dash(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_default_ignorable_code_point.c b/vendor/librune/lib/rtype/rune_has_prop_default_ignorable_code_point.c
new file mode 100644
index 0000000..bf0f850
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_default_ignorable_code_point.c
@@ -0,0 +1,47 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x20000000000000000000000000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x0000AD, 0x0000AD},
+ {0x00034F, 0x00034F},
+ {0x00061C, 0x00061C},
+ {0x00115F, 0x001160},
+ {0x0017B4, 0x0017B5},
+ {0x00180B, 0x00180F},
+ {0x00200B, 0x00200F},
+ {0x00202A, 0x00202E},
+ {0x002060, 0x00206F},
+ {0x003164, 0x003164},
+ {0x00FE00, 0x00FE0F},
+ {0x00FEFF, 0x00FEFF},
+ {0x00FFA0, 0x00FFA0},
+ {0x00FFF0, 0x00FFF8},
+ {0x01BCA0, 0x01BCA3},
+ {0x01D173, 0x01D17A},
+ {0x0E0000, 0x0E0FFF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_default_ignorable_code_point(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_deprecated.c b/vendor/librune/lib/rtype/rune_has_prop_deprecated.c
new file mode 100644
index 0000000..fe70ddc
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_deprecated.c
@@ -0,0 +1,38 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000149, 0x000149},
+ {0x000673, 0x000673},
+ {0x000F77, 0x000F77},
+ {0x000F79, 0x000F79},
+ {0x0017A3, 0x0017A4},
+ {0x00206A, 0x00206F},
+ {0x002329, 0x00232A},
+ {0x0E0001, 0x0E0001},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_deprecated(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_diacritic.c b/vendor/librune/lib/rtype/rune_has_prop_diacritic.c
new file mode 100644
index 0000000..5d423a1
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_diacritic.c
@@ -0,0 +1,225 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x19081000000000000000001400000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x00005E, 0x00005E},
+ {0x000060, 0x000060},
+ {0x0000A8, 0x0000A8},
+ {0x0000AF, 0x0000AF},
+ {0x0000B4, 0x0000B4},
+ {0x0000B7, 0x0000B8},
+ {0x0002B0, 0x00034E},
+ {0x000350, 0x000357},
+ {0x00035D, 0x000362},
+ {0x000374, 0x000375},
+ {0x00037A, 0x00037A},
+ {0x000384, 0x000385},
+ {0x000483, 0x000487},
+ {0x000559, 0x000559},
+ {0x000591, 0x0005A1},
+ {0x0005A3, 0x0005BD},
+ {0x0005BF, 0x0005BF},
+ {0x0005C1, 0x0005C2},
+ {0x0005C4, 0x0005C4},
+ {0x00064B, 0x000652},
+ {0x000657, 0x000658},
+ {0x0006DF, 0x0006E0},
+ {0x0006E5, 0x0006E6},
+ {0x0006EA, 0x0006EC},
+ {0x000730, 0x00074A},
+ {0x0007A6, 0x0007B0},
+ {0x0007EB, 0x0007F5},
+ {0x000818, 0x000819},
+ {0x000898, 0x00089F},
+ {0x0008C9, 0x0008D2},
+ {0x0008E3, 0x0008FE},
+ {0x00093C, 0x00093C},
+ {0x00094D, 0x00094D},
+ {0x000951, 0x000954},
+ {0x000971, 0x000971},
+ {0x0009BC, 0x0009BC},
+ {0x0009CD, 0x0009CD},
+ {0x000A3C, 0x000A3C},
+ {0x000A4D, 0x000A4D},
+ {0x000ABC, 0x000ABC},
+ {0x000ACD, 0x000ACD},
+ {0x000AFD, 0x000AFF},
+ {0x000B3C, 0x000B3C},
+ {0x000B4D, 0x000B4D},
+ {0x000B55, 0x000B55},
+ {0x000BCD, 0x000BCD},
+ {0x000C3C, 0x000C3C},
+ {0x000C4D, 0x000C4D},
+ {0x000CBC, 0x000CBC},
+ {0x000CCD, 0x000CCD},
+ {0x000D3B, 0x000D3C},
+ {0x000D4D, 0x000D4D},
+ {0x000DCA, 0x000DCA},
+ {0x000E47, 0x000E4C},
+ {0x000E4E, 0x000E4E},
+ {0x000EBA, 0x000EBA},
+ {0x000EC8, 0x000ECC},
+ {0x000F18, 0x000F19},
+ {0x000F35, 0x000F35},
+ {0x000F37, 0x000F37},
+ {0x000F39, 0x000F39},
+ {0x000F3E, 0x000F3F},
+ {0x000F82, 0x000F84},
+ {0x000F86, 0x000F87},
+ {0x000FC6, 0x000FC6},
+ {0x001037, 0x001037},
+ {0x001039, 0x00103A},
+ {0x001063, 0x001064},
+ {0x001069, 0x00106D},
+ {0x001087, 0x00108D},
+ {0x00108F, 0x00108F},
+ {0x00109A, 0x00109B},
+ {0x00135D, 0x00135F},
+ {0x001714, 0x001715},
+ {0x0017C9, 0x0017D3},
+ {0x0017DD, 0x0017DD},
+ {0x001939, 0x00193B},
+ {0x001A75, 0x001A7C},
+ {0x001A7F, 0x001A7F},
+ {0x001AB0, 0x001ABE},
+ {0x001AC1, 0x001ACB},
+ {0x001B34, 0x001B34},
+ {0x001B44, 0x001B44},
+ {0x001B6B, 0x001B73},
+ {0x001BAA, 0x001BAB},
+ {0x001C36, 0x001C37},
+ {0x001C78, 0x001C7D},
+ {0x001CD0, 0x001CE8},
+ {0x001CED, 0x001CED},
+ {0x001CF4, 0x001CF4},
+ {0x001CF7, 0x001CF9},
+ {0x001D2C, 0x001D6A},
+ {0x001DC4, 0x001DCF},
+ {0x001DF5, 0x001DFF},
+ {0x001FBD, 0x001FBD},
+ {0x001FBF, 0x001FC1},
+ {0x001FCD, 0x001FCF},
+ {0x001FDD, 0x001FDF},
+ {0x001FED, 0x001FEF},
+ {0x001FFD, 0x001FFE},
+ {0x002CEF, 0x002CF1},
+ {0x002E2F, 0x002E2F},
+ {0x00302A, 0x00302F},
+ {0x003099, 0x00309C},
+ {0x0030FC, 0x0030FC},
+ {0x00A66F, 0x00A66F},
+ {0x00A67C, 0x00A67D},
+ {0x00A67F, 0x00A67F},
+ {0x00A69C, 0x00A69D},
+ {0x00A6F0, 0x00A6F1},
+ {0x00A700, 0x00A721},
+ {0x00A788, 0x00A78A},
+ {0x00A7F8, 0x00A7F9},
+ {0x00A8C4, 0x00A8C4},
+ {0x00A8E0, 0x00A8F1},
+ {0x00A92B, 0x00A92E},
+ {0x00A953, 0x00A953},
+ {0x00A9B3, 0x00A9B3},
+ {0x00A9C0, 0x00A9C0},
+ {0x00A9E5, 0x00A9E5},
+ {0x00AA7B, 0x00AA7D},
+ {0x00AABF, 0x00AAC2},
+ {0x00AAF6, 0x00AAF6},
+ {0x00AB5B, 0x00AB5F},
+ {0x00AB69, 0x00AB6B},
+ {0x00ABEC, 0x00ABED},
+ {0x00FB1E, 0x00FB1E},
+ {0x00FE20, 0x00FE2F},
+ {0x00FF3E, 0x00FF3E},
+ {0x00FF40, 0x00FF40},
+ {0x00FF70, 0x00FF70},
+ {0x00FF9E, 0x00FF9F},
+ {0x00FFE3, 0x00FFE3},
+ {0x0102E0, 0x0102E0},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010AE5, 0x010AE6},
+ {0x010D22, 0x010D27},
+ {0x010EFD, 0x010EFF},
+ {0x010F46, 0x010F50},
+ {0x010F82, 0x010F85},
+ {0x011046, 0x011046},
+ {0x011070, 0x011070},
+ {0x0110B9, 0x0110BA},
+ {0x011133, 0x011134},
+ {0x011173, 0x011173},
+ {0x0111C0, 0x0111C0},
+ {0x0111CA, 0x0111CC},
+ {0x011235, 0x011236},
+ {0x0112E9, 0x0112EA},
+ {0x01133C, 0x01133C},
+ {0x01134D, 0x01134D},
+ {0x011366, 0x01136C},
+ {0x011370, 0x011374},
+ {0x011442, 0x011442},
+ {0x011446, 0x011446},
+ {0x0114C2, 0x0114C3},
+ {0x0115BF, 0x0115C0},
+ {0x01163F, 0x01163F},
+ {0x0116B6, 0x0116B7},
+ {0x01172B, 0x01172B},
+ {0x011839, 0x01183A},
+ {0x01193D, 0x01193E},
+ {0x011943, 0x011943},
+ {0x0119E0, 0x0119E0},
+ {0x011A34, 0x011A34},
+ {0x011A47, 0x011A47},
+ {0x011A99, 0x011A99},
+ {0x011C3F, 0x011C3F},
+ {0x011D42, 0x011D42},
+ {0x011D44, 0x011D45},
+ {0x011D97, 0x011D97},
+ {0x013447, 0x013455},
+ {0x016AF0, 0x016AF4},
+ {0x016B30, 0x016B36},
+ {0x016F8F, 0x016F9F},
+ {0x016FF0, 0x016FF1},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01CF00, 0x01CF2D},
+ {0x01CF30, 0x01CF46},
+ {0x01D167, 0x01D169},
+ {0x01D16D, 0x01D172},
+ {0x01D17B, 0x01D182},
+ {0x01D185, 0x01D18B},
+ {0x01D1AA, 0x01D1AD},
+ {0x01E030, 0x01E06D},
+ {0x01E130, 0x01E136},
+ {0x01E2AE, 0x01E2AE},
+ {0x01E2EC, 0x01E2EF},
+ {0x01E8D0, 0x01E8D6},
+ {0x01E944, 0x01E946},
+ {0x01E948, 0x01E94A},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_diacritic(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_extender.c b/vendor/librune/lib/rtype/rune_has_prop_extender.c
new file mode 100644
index 0000000..961fd2e
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_extender.c
@@ -0,0 +1,63 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8000000000000000000000000000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x0000B7, 0x0000B7},
+ {0x0002D0, 0x0002D1},
+ {0x000640, 0x000640},
+ {0x0007FA, 0x0007FA},
+ {0x000B55, 0x000B55},
+ {0x000E46, 0x000E46},
+ {0x000EC6, 0x000EC6},
+ {0x00180A, 0x00180A},
+ {0x001843, 0x001843},
+ {0x001AA7, 0x001AA7},
+ {0x001C36, 0x001C36},
+ {0x001C7B, 0x001C7B},
+ {0x003005, 0x003005},
+ {0x003031, 0x003035},
+ {0x00309D, 0x00309E},
+ {0x0030FC, 0x0030FE},
+ {0x00A015, 0x00A015},
+ {0x00A60C, 0x00A60C},
+ {0x00A9CF, 0x00A9CF},
+ {0x00A9E6, 0x00A9E6},
+ {0x00AA70, 0x00AA70},
+ {0x00AADD, 0x00AADD},
+ {0x00AAF3, 0x00AAF4},
+ {0x00FF70, 0x00FF70},
+ {0x010781, 0x010782},
+ {0x01135D, 0x01135D},
+ {0x0115C6, 0x0115C8},
+ {0x011A98, 0x011A98},
+ {0x016B42, 0x016B43},
+ {0x016FE0, 0x016FE1},
+ {0x016FE3, 0x016FE3},
+ {0x01E13C, 0x01E13D},
+ {0x01E944, 0x01E946},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_extender(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_grapheme_base.c b/vendor/librune/lib/rtype/rune_has_prop_grapheme_base.c
new file mode 100644
index 0000000..0de7ba6
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_grapheme_base.c
@@ -0,0 +1,905 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFFFFFFFFFFFFFFFFFFFFDFFF000000007FFFFFFFFFFFFFFFFFFFFFFF00000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000020, 0x00007E},
+ {0x0000A0, 0x0000AC},
+ {0x0000AE, 0x0002FF},
+ {0x000370, 0x000377},
+ {0x00037A, 0x00037F},
+ {0x000384, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x000482},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000559, 0x00058A},
+ {0x00058D, 0x00058F},
+ {0x0005BE, 0x0005BE},
+ {0x0005C0, 0x0005C0},
+ {0x0005C3, 0x0005C3},
+ {0x0005C6, 0x0005C6},
+ {0x0005D0, 0x0005EA},
+ {0x0005EF, 0x0005F4},
+ {0x000606, 0x00060F},
+ {0x00061B, 0x00061B},
+ {0x00061D, 0x00064A},
+ {0x000660, 0x00066F},
+ {0x000671, 0x0006D5},
+ {0x0006DE, 0x0006DE},
+ {0x0006E5, 0x0006E6},
+ {0x0006E9, 0x0006E9},
+ {0x0006EE, 0x00070D},
+ {0x000710, 0x000710},
+ {0x000712, 0x00072F},
+ {0x00074D, 0x0007A5},
+ {0x0007B1, 0x0007B1},
+ {0x0007C0, 0x0007EA},
+ {0x0007F4, 0x0007FA},
+ {0x0007FE, 0x000815},
+ {0x00081A, 0x00081A},
+ {0x000824, 0x000824},
+ {0x000828, 0x000828},
+ {0x000830, 0x00083E},
+ {0x000840, 0x000858},
+ {0x00085E, 0x00085E},
+ {0x000860, 0x00086A},
+ {0x000870, 0x00088E},
+ {0x0008A0, 0x0008C9},
+ {0x000903, 0x000939},
+ {0x00093B, 0x00093B},
+ {0x00093D, 0x000940},
+ {0x000949, 0x00094C},
+ {0x00094E, 0x000950},
+ {0x000958, 0x000961},
+ {0x000964, 0x000980},
+ {0x000982, 0x000983},
+ {0x000985, 0x00098C},
+ {0x00098F, 0x000990},
+ {0x000993, 0x0009A8},
+ {0x0009AA, 0x0009B0},
+ {0x0009B2, 0x0009B2},
+ {0x0009B6, 0x0009B9},
+ {0x0009BD, 0x0009BD},
+ {0x0009BF, 0x0009C0},
+ {0x0009C7, 0x0009C8},
+ {0x0009CB, 0x0009CC},
+ {0x0009CE, 0x0009CE},
+ {0x0009DC, 0x0009DD},
+ {0x0009DF, 0x0009E1},
+ {0x0009E6, 0x0009FD},
+ {0x000A03, 0x000A03},
+ {0x000A05, 0x000A0A},
+ {0x000A0F, 0x000A10},
+ {0x000A13, 0x000A28},
+ {0x000A2A, 0x000A30},
+ {0x000A32, 0x000A33},
+ {0x000A35, 0x000A36},
+ {0x000A38, 0x000A39},
+ {0x000A3E, 0x000A40},
+ {0x000A59, 0x000A5C},
+ {0x000A5E, 0x000A5E},
+ {0x000A66, 0x000A6F},
+ {0x000A72, 0x000A74},
+ {0x000A76, 0x000A76},
+ {0x000A83, 0x000A83},
+ {0x000A85, 0x000A8D},
+ {0x000A8F, 0x000A91},
+ {0x000A93, 0x000AA8},
+ {0x000AAA, 0x000AB0},
+ {0x000AB2, 0x000AB3},
+ {0x000AB5, 0x000AB9},
+ {0x000ABD, 0x000AC0},
+ {0x000AC9, 0x000AC9},
+ {0x000ACB, 0x000ACC},
+ {0x000AD0, 0x000AD0},
+ {0x000AE0, 0x000AE1},
+ {0x000AE6, 0x000AF1},
+ {0x000AF9, 0x000AF9},
+ {0x000B02, 0x000B03},
+ {0x000B05, 0x000B0C},
+ {0x000B0F, 0x000B10},
+ {0x000B13, 0x000B28},
+ {0x000B2A, 0x000B30},
+ {0x000B32, 0x000B33},
+ {0x000B35, 0x000B39},
+ {0x000B3D, 0x000B3D},
+ {0x000B40, 0x000B40},
+ {0x000B47, 0x000B48},
+ {0x000B4B, 0x000B4C},
+ {0x000B5C, 0x000B5D},
+ {0x000B5F, 0x000B61},
+ {0x000B66, 0x000B77},
+ {0x000B83, 0x000B83},
+ {0x000B85, 0x000B8A},
+ {0x000B8E, 0x000B90},
+ {0x000B92, 0x000B95},
+ {0x000B99, 0x000B9A},
+ {0x000B9C, 0x000B9C},
+ {0x000B9E, 0x000B9F},
+ {0x000BA3, 0x000BA4},
+ {0x000BA8, 0x000BAA},
+ {0x000BAE, 0x000BB9},
+ {0x000BBF, 0x000BBF},
+ {0x000BC1, 0x000BC2},
+ {0x000BC6, 0x000BC8},
+ {0x000BCA, 0x000BCC},
+ {0x000BD0, 0x000BD0},
+ {0x000BE6, 0x000BFA},
+ {0x000C01, 0x000C03},
+ {0x000C05, 0x000C0C},
+ {0x000C0E, 0x000C10},
+ {0x000C12, 0x000C28},
+ {0x000C2A, 0x000C39},
+ {0x000C3D, 0x000C3D},
+ {0x000C41, 0x000C44},
+ {0x000C58, 0x000C5A},
+ {0x000C5D, 0x000C5D},
+ {0x000C60, 0x000C61},
+ {0x000C66, 0x000C6F},
+ {0x000C77, 0x000C80},
+ {0x000C82, 0x000C8C},
+ {0x000C8E, 0x000C90},
+ {0x000C92, 0x000CA8},
+ {0x000CAA, 0x000CB3},
+ {0x000CB5, 0x000CB9},
+ {0x000CBD, 0x000CBE},
+ {0x000CC0, 0x000CC1},
+ {0x000CC3, 0x000CC4},
+ {0x000CC7, 0x000CC8},
+ {0x000CCA, 0x000CCB},
+ {0x000CDD, 0x000CDE},
+ {0x000CE0, 0x000CE1},
+ {0x000CE6, 0x000CEF},
+ {0x000CF1, 0x000CF3},
+ {0x000D02, 0x000D0C},
+ {0x000D0E, 0x000D10},
+ {0x000D12, 0x000D3A},
+ {0x000D3D, 0x000D3D},
+ {0x000D3F, 0x000D40},
+ {0x000D46, 0x000D48},
+ {0x000D4A, 0x000D4C},
+ {0x000D4E, 0x000D4F},
+ {0x000D54, 0x000D56},
+ {0x000D58, 0x000D61},
+ {0x000D66, 0x000D7F},
+ {0x000D82, 0x000D83},
+ {0x000D85, 0x000D96},
+ {0x000D9A, 0x000DB1},
+ {0x000DB3, 0x000DBB},
+ {0x000DBD, 0x000DBD},
+ {0x000DC0, 0x000DC6},
+ {0x000DD0, 0x000DD1},
+ {0x000DD8, 0x000DDE},
+ {0x000DE6, 0x000DEF},
+ {0x000DF2, 0x000DF4},
+ {0x000E01, 0x000E30},
+ {0x000E32, 0x000E33},
+ {0x000E3F, 0x000E46},
+ {0x000E4F, 0x000E5B},
+ {0x000E81, 0x000E82},
+ {0x000E84, 0x000E84},
+ {0x000E86, 0x000E8A},
+ {0x000E8C, 0x000EA3},
+ {0x000EA5, 0x000EA5},
+ {0x000EA7, 0x000EB0},
+ {0x000EB2, 0x000EB3},
+ {0x000EBD, 0x000EBD},
+ {0x000EC0, 0x000EC4},
+ {0x000EC6, 0x000EC6},
+ {0x000ED0, 0x000ED9},
+ {0x000EDC, 0x000EDF},
+ {0x000F00, 0x000F17},
+ {0x000F1A, 0x000F34},
+ {0x000F36, 0x000F36},
+ {0x000F38, 0x000F38},
+ {0x000F3A, 0x000F47},
+ {0x000F49, 0x000F6C},
+ {0x000F7F, 0x000F7F},
+ {0x000F85, 0x000F85},
+ {0x000F88, 0x000F8C},
+ {0x000FBE, 0x000FC5},
+ {0x000FC7, 0x000FCC},
+ {0x000FCE, 0x000FDA},
+ {0x001000, 0x00102C},
+ {0x001031, 0x001031},
+ {0x001038, 0x001038},
+ {0x00103B, 0x00103C},
+ {0x00103F, 0x001057},
+ {0x00105A, 0x00105D},
+ {0x001061, 0x001070},
+ {0x001075, 0x001081},
+ {0x001083, 0x001084},
+ {0x001087, 0x00108C},
+ {0x00108E, 0x00109C},
+ {0x00109E, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x001248},
+ {0x00124A, 0x00124D},
+ {0x001250, 0x001256},
+ {0x001258, 0x001258},
+ {0x00125A, 0x00125D},
+ {0x001260, 0x001288},
+ {0x00128A, 0x00128D},
+ {0x001290, 0x0012B0},
+ {0x0012B2, 0x0012B5},
+ {0x0012B8, 0x0012BE},
+ {0x0012C0, 0x0012C0},
+ {0x0012C2, 0x0012C5},
+ {0x0012C8, 0x0012D6},
+ {0x0012D8, 0x001310},
+ {0x001312, 0x001315},
+ {0x001318, 0x00135A},
+ {0x001360, 0x00137C},
+ {0x001380, 0x001399},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001400, 0x00169C},
+ {0x0016A0, 0x0016F8},
+ {0x001700, 0x001711},
+ {0x001715, 0x001715},
+ {0x00171F, 0x001731},
+ {0x001734, 0x001736},
+ {0x001740, 0x001751},
+ {0x001760, 0x00176C},
+ {0x00176E, 0x001770},
+ {0x001780, 0x0017B3},
+ {0x0017B6, 0x0017B6},
+ {0x0017BE, 0x0017C5},
+ {0x0017C7, 0x0017C8},
+ {0x0017D4, 0x0017DC},
+ {0x0017E0, 0x0017E9},
+ {0x0017F0, 0x0017F9},
+ {0x001800, 0x00180A},
+ {0x001810, 0x001819},
+ {0x001820, 0x001878},
+ {0x001880, 0x001884},
+ {0x001887, 0x0018A8},
+ {0x0018AA, 0x0018AA},
+ {0x0018B0, 0x0018F5},
+ {0x001900, 0x00191E},
+ {0x001923, 0x001926},
+ {0x001929, 0x00192B},
+ {0x001930, 0x001931},
+ {0x001933, 0x001938},
+ {0x001940, 0x001940},
+ {0x001944, 0x00196D},
+ {0x001970, 0x001974},
+ {0x001980, 0x0019AB},
+ {0x0019B0, 0x0019C9},
+ {0x0019D0, 0x0019DA},
+ {0x0019DE, 0x001A16},
+ {0x001A19, 0x001A1A},
+ {0x001A1E, 0x001A55},
+ {0x001A57, 0x001A57},
+ {0x001A61, 0x001A61},
+ {0x001A63, 0x001A64},
+ {0x001A6D, 0x001A72},
+ {0x001A80, 0x001A89},
+ {0x001A90, 0x001A99},
+ {0x001AA0, 0x001AAD},
+ {0x001B04, 0x001B33},
+ {0x001B3B, 0x001B3B},
+ {0x001B3D, 0x001B41},
+ {0x001B43, 0x001B4C},
+ {0x001B50, 0x001B6A},
+ {0x001B74, 0x001B7E},
+ {0x001B82, 0x001BA1},
+ {0x001BA6, 0x001BA7},
+ {0x001BAA, 0x001BAA},
+ {0x001BAE, 0x001BE5},
+ {0x001BE7, 0x001BE7},
+ {0x001BEA, 0x001BEC},
+ {0x001BEE, 0x001BEE},
+ {0x001BF2, 0x001BF3},
+ {0x001BFC, 0x001C2B},
+ {0x001C34, 0x001C35},
+ {0x001C3B, 0x001C49},
+ {0x001C4D, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CC7},
+ {0x001CD3, 0x001CD3},
+ {0x001CE1, 0x001CE1},
+ {0x001CE9, 0x001CEC},
+ {0x001CEE, 0x001CF3},
+ {0x001CF5, 0x001CF7},
+ {0x001CFA, 0x001CFA},
+ {0x001D00, 0x001DBF},
+ {0x001E00, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FC4},
+ {0x001FC6, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FDD, 0x001FEF},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFE},
+ {0x002000, 0x00200A},
+ {0x002010, 0x002027},
+ {0x00202F, 0x00205F},
+ {0x002070, 0x002071},
+ {0x002074, 0x00208E},
+ {0x002090, 0x00209C},
+ {0x0020A0, 0x0020C0},
+ {0x002100, 0x00218B},
+ {0x002190, 0x002426},
+ {0x002440, 0x00244A},
+ {0x002460, 0x002B73},
+ {0x002B76, 0x002B95},
+ {0x002B97, 0x002CEE},
+ {0x002CF2, 0x002CF3},
+ {0x002CF9, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x002D30, 0x002D67},
+ {0x002D6F, 0x002D70},
+ {0x002D80, 0x002D96},
+ {0x002DA0, 0x002DA6},
+ {0x002DA8, 0x002DAE},
+ {0x002DB0, 0x002DB6},
+ {0x002DB8, 0x002DBE},
+ {0x002DC0, 0x002DC6},
+ {0x002DC8, 0x002DCE},
+ {0x002DD0, 0x002DD6},
+ {0x002DD8, 0x002DDE},
+ {0x002E00, 0x002E5D},
+ {0x002E80, 0x002E99},
+ {0x002E9B, 0x002EF3},
+ {0x002F00, 0x002FD5},
+ {0x002FF0, 0x003029},
+ {0x003030, 0x00303F},
+ {0x003041, 0x003096},
+ {0x00309B, 0x0030FF},
+ {0x003105, 0x00312F},
+ {0x003131, 0x00318E},
+ {0x003190, 0x0031E3},
+ {0x0031EF, 0x00321E},
+ {0x003220, 0x00A48C},
+ {0x00A490, 0x00A4C6},
+ {0x00A4D0, 0x00A62B},
+ {0x00A640, 0x00A66E},
+ {0x00A673, 0x00A673},
+ {0x00A67E, 0x00A69D},
+ {0x00A6A0, 0x00A6EF},
+ {0x00A6F2, 0x00A6F7},
+ {0x00A700, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D9},
+ {0x00A7F2, 0x00A801},
+ {0x00A803, 0x00A805},
+ {0x00A807, 0x00A80A},
+ {0x00A80C, 0x00A824},
+ {0x00A827, 0x00A82B},
+ {0x00A830, 0x00A839},
+ {0x00A840, 0x00A877},
+ {0x00A880, 0x00A8C3},
+ {0x00A8CE, 0x00A8D9},
+ {0x00A8F2, 0x00A8FE},
+ {0x00A900, 0x00A925},
+ {0x00A92E, 0x00A946},
+ {0x00A952, 0x00A953},
+ {0x00A95F, 0x00A97C},
+ {0x00A983, 0x00A9B2},
+ {0x00A9B4, 0x00A9B5},
+ {0x00A9BA, 0x00A9BB},
+ {0x00A9BE, 0x00A9CD},
+ {0x00A9CF, 0x00A9D9},
+ {0x00A9DE, 0x00A9E4},
+ {0x00A9E6, 0x00A9FE},
+ {0x00AA00, 0x00AA28},
+ {0x00AA2F, 0x00AA30},
+ {0x00AA33, 0x00AA34},
+ {0x00AA40, 0x00AA42},
+ {0x00AA44, 0x00AA4B},
+ {0x00AA4D, 0x00AA4D},
+ {0x00AA50, 0x00AA59},
+ {0x00AA5C, 0x00AA7B},
+ {0x00AA7D, 0x00AAAF},
+ {0x00AAB1, 0x00AAB1},
+ {0x00AAB5, 0x00AAB6},
+ {0x00AAB9, 0x00AABD},
+ {0x00AAC0, 0x00AAC0},
+ {0x00AAC2, 0x00AAC2},
+ {0x00AADB, 0x00AAEB},
+ {0x00AAEE, 0x00AAF5},
+ {0x00AB01, 0x00AB06},
+ {0x00AB09, 0x00AB0E},
+ {0x00AB11, 0x00AB16},
+ {0x00AB20, 0x00AB26},
+ {0x00AB28, 0x00AB2E},
+ {0x00AB30, 0x00AB6B},
+ {0x00AB70, 0x00ABE4},
+ {0x00ABE6, 0x00ABE7},
+ {0x00ABE9, 0x00ABEC},
+ {0x00ABF0, 0x00ABF9},
+ {0x00AC00, 0x00D7A3},
+ {0x00D7B0, 0x00D7C6},
+ {0x00D7CB, 0x00D7FB},
+ {0x00F900, 0x00FA6D},
+ {0x00FA70, 0x00FAD9},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FB1D, 0x00FB1D},
+ {0x00FB1F, 0x00FB36},
+ {0x00FB38, 0x00FB3C},
+ {0x00FB3E, 0x00FB3E},
+ {0x00FB40, 0x00FB41},
+ {0x00FB43, 0x00FB44},
+ {0x00FB46, 0x00FBC2},
+ {0x00FBD3, 0x00FD8F},
+ {0x00FD92, 0x00FDC7},
+ {0x00FDCF, 0x00FDCF},
+ {0x00FDF0, 0x00FDFF},
+ {0x00FE10, 0x00FE19},
+ {0x00FE30, 0x00FE52},
+ {0x00FE54, 0x00FE66},
+ {0x00FE68, 0x00FE6B},
+ {0x00FE70, 0x00FE74},
+ {0x00FE76, 0x00FEFC},
+ {0x00FF01, 0x00FF9D},
+ {0x00FFA0, 0x00FFBE},
+ {0x00FFC2, 0x00FFC7},
+ {0x00FFCA, 0x00FFCF},
+ {0x00FFD2, 0x00FFD7},
+ {0x00FFDA, 0x00FFDC},
+ {0x00FFE0, 0x00FFE6},
+ {0x00FFE8, 0x00FFEE},
+ {0x00FFFC, 0x00FFFD},
+ {0x010000, 0x01000B},
+ {0x01000D, 0x010026},
+ {0x010028, 0x01003A},
+ {0x01003C, 0x01003D},
+ {0x01003F, 0x01004D},
+ {0x010050, 0x01005D},
+ {0x010080, 0x0100FA},
+ {0x010100, 0x010102},
+ {0x010107, 0x010133},
+ {0x010137, 0x01018E},
+ {0x010190, 0x01019C},
+ {0x0101A0, 0x0101A0},
+ {0x0101D0, 0x0101FC},
+ {0x010280, 0x01029C},
+ {0x0102A0, 0x0102D0},
+ {0x0102E1, 0x0102FB},
+ {0x010300, 0x010323},
+ {0x01032D, 0x01034A},
+ {0x010350, 0x010375},
+ {0x010380, 0x01039D},
+ {0x01039F, 0x0103C3},
+ {0x0103C8, 0x0103D5},
+ {0x010400, 0x01049D},
+ {0x0104A0, 0x0104A9},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010500, 0x010527},
+ {0x010530, 0x010563},
+ {0x01056F, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010600, 0x010736},
+ {0x010740, 0x010755},
+ {0x010760, 0x010767},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010800, 0x010805},
+ {0x010808, 0x010808},
+ {0x01080A, 0x010835},
+ {0x010837, 0x010838},
+ {0x01083C, 0x01083C},
+ {0x01083F, 0x010855},
+ {0x010857, 0x01089E},
+ {0x0108A7, 0x0108AF},
+ {0x0108E0, 0x0108F2},
+ {0x0108F4, 0x0108F5},
+ {0x0108FB, 0x01091B},
+ {0x01091F, 0x010939},
+ {0x01093F, 0x01093F},
+ {0x010980, 0x0109B7},
+ {0x0109BC, 0x0109CF},
+ {0x0109D2, 0x010A00},
+ {0x010A10, 0x010A13},
+ {0x010A15, 0x010A17},
+ {0x010A19, 0x010A35},
+ {0x010A40, 0x010A48},
+ {0x010A50, 0x010A58},
+ {0x010A60, 0x010A9F},
+ {0x010AC0, 0x010AE4},
+ {0x010AEB, 0x010AF6},
+ {0x010B00, 0x010B35},
+ {0x010B39, 0x010B55},
+ {0x010B58, 0x010B72},
+ {0x010B78, 0x010B91},
+ {0x010B99, 0x010B9C},
+ {0x010BA9, 0x010BAF},
+ {0x010C00, 0x010C48},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x010CFA, 0x010D23},
+ {0x010D30, 0x010D39},
+ {0x010E60, 0x010E7E},
+ {0x010E80, 0x010EA9},
+ {0x010EAD, 0x010EAD},
+ {0x010EB0, 0x010EB1},
+ {0x010F00, 0x010F27},
+ {0x010F30, 0x010F45},
+ {0x010F51, 0x010F59},
+ {0x010F70, 0x010F81},
+ {0x010F86, 0x010F89},
+ {0x010FB0, 0x010FCB},
+ {0x010FE0, 0x010FF6},
+ {0x011000, 0x011000},
+ {0x011002, 0x011037},
+ {0x011047, 0x01104D},
+ {0x011052, 0x01106F},
+ {0x011071, 0x011072},
+ {0x011075, 0x011075},
+ {0x011082, 0x0110B2},
+ {0x0110B7, 0x0110B8},
+ {0x0110BB, 0x0110BC},
+ {0x0110BE, 0x0110C1},
+ {0x0110D0, 0x0110E8},
+ {0x0110F0, 0x0110F9},
+ {0x011103, 0x011126},
+ {0x01112C, 0x01112C},
+ {0x011136, 0x011147},
+ {0x011150, 0x011172},
+ {0x011174, 0x011176},
+ {0x011182, 0x0111B5},
+ {0x0111BF, 0x0111C8},
+ {0x0111CD, 0x0111CE},
+ {0x0111D0, 0x0111DF},
+ {0x0111E1, 0x0111F4},
+ {0x011200, 0x011211},
+ {0x011213, 0x01122E},
+ {0x011232, 0x011233},
+ {0x011235, 0x011235},
+ {0x011238, 0x01123D},
+ {0x01123F, 0x011240},
+ {0x011280, 0x011286},
+ {0x011288, 0x011288},
+ {0x01128A, 0x01128D},
+ {0x01128F, 0x01129D},
+ {0x01129F, 0x0112A9},
+ {0x0112B0, 0x0112DE},
+ {0x0112E0, 0x0112E2},
+ {0x0112F0, 0x0112F9},
+ {0x011302, 0x011303},
+ {0x011305, 0x01130C},
+ {0x01130F, 0x011310},
+ {0x011313, 0x011328},
+ {0x01132A, 0x011330},
+ {0x011332, 0x011333},
+ {0x011335, 0x011339},
+ {0x01133D, 0x01133D},
+ {0x01133F, 0x01133F},
+ {0x011341, 0x011344},
+ {0x011347, 0x011348},
+ {0x01134B, 0x01134D},
+ {0x011350, 0x011350},
+ {0x01135D, 0x011363},
+ {0x011400, 0x011437},
+ {0x011440, 0x011441},
+ {0x011445, 0x011445},
+ {0x011447, 0x01145B},
+ {0x01145D, 0x01145D},
+ {0x01145F, 0x011461},
+ {0x011480, 0x0114AF},
+ {0x0114B1, 0x0114B2},
+ {0x0114B9, 0x0114B9},
+ {0x0114BB, 0x0114BC},
+ {0x0114BE, 0x0114BE},
+ {0x0114C1, 0x0114C1},
+ {0x0114C4, 0x0114C7},
+ {0x0114D0, 0x0114D9},
+ {0x011580, 0x0115AE},
+ {0x0115B0, 0x0115B1},
+ {0x0115B8, 0x0115BB},
+ {0x0115BE, 0x0115BE},
+ {0x0115C1, 0x0115DB},
+ {0x011600, 0x011632},
+ {0x01163B, 0x01163C},
+ {0x01163E, 0x01163E},
+ {0x011641, 0x011644},
+ {0x011650, 0x011659},
+ {0x011660, 0x01166C},
+ {0x011680, 0x0116AA},
+ {0x0116AC, 0x0116AC},
+ {0x0116AE, 0x0116AF},
+ {0x0116B6, 0x0116B6},
+ {0x0116B8, 0x0116B9},
+ {0x0116C0, 0x0116C9},
+ {0x011700, 0x01171A},
+ {0x011720, 0x011721},
+ {0x011726, 0x011726},
+ {0x011730, 0x011746},
+ {0x011800, 0x01182E},
+ {0x011838, 0x011838},
+ {0x01183B, 0x01183B},
+ {0x0118A0, 0x0118F2},
+ {0x0118FF, 0x011906},
+ {0x011909, 0x011909},
+ {0x01190C, 0x011913},
+ {0x011915, 0x011916},
+ {0x011918, 0x01192F},
+ {0x011931, 0x011935},
+ {0x011937, 0x011938},
+ {0x01193D, 0x01193D},
+ {0x01193F, 0x011942},
+ {0x011944, 0x011946},
+ {0x011950, 0x011959},
+ {0x0119A0, 0x0119A7},
+ {0x0119AA, 0x0119D3},
+ {0x0119DC, 0x0119DF},
+ {0x0119E1, 0x0119E4},
+ {0x011A00, 0x011A00},
+ {0x011A0B, 0x011A32},
+ {0x011A39, 0x011A3A},
+ {0x011A3F, 0x011A46},
+ {0x011A50, 0x011A50},
+ {0x011A57, 0x011A58},
+ {0x011A5C, 0x011A89},
+ {0x011A97, 0x011A97},
+ {0x011A9A, 0x011AA2},
+ {0x011AB0, 0x011AF8},
+ {0x011B00, 0x011B09},
+ {0x011C00, 0x011C08},
+ {0x011C0A, 0x011C2F},
+ {0x011C3E, 0x011C3E},
+ {0x011C40, 0x011C45},
+ {0x011C50, 0x011C6C},
+ {0x011C70, 0x011C8F},
+ {0x011CA9, 0x011CA9},
+ {0x011CB1, 0x011CB1},
+ {0x011CB4, 0x011CB4},
+ {0x011D00, 0x011D06},
+ {0x011D08, 0x011D09},
+ {0x011D0B, 0x011D30},
+ {0x011D46, 0x011D46},
+ {0x011D50, 0x011D59},
+ {0x011D60, 0x011D65},
+ {0x011D67, 0x011D68},
+ {0x011D6A, 0x011D8E},
+ {0x011D93, 0x011D94},
+ {0x011D96, 0x011D96},
+ {0x011D98, 0x011D98},
+ {0x011DA0, 0x011DA9},
+ {0x011EE0, 0x011EF2},
+ {0x011EF5, 0x011EF8},
+ {0x011F02, 0x011F10},
+ {0x011F12, 0x011F35},
+ {0x011F3E, 0x011F3F},
+ {0x011F41, 0x011F41},
+ {0x011F43, 0x011F59},
+ {0x011FB0, 0x011FB0},
+ {0x011FC0, 0x011FF1},
+ {0x011FFF, 0x012399},
+ {0x012400, 0x01246E},
+ {0x012470, 0x012474},
+ {0x012480, 0x012543},
+ {0x012F90, 0x012FF2},
+ {0x013000, 0x01342F},
+ {0x013441, 0x013446},
+ {0x014400, 0x014646},
+ {0x016800, 0x016A38},
+ {0x016A40, 0x016A5E},
+ {0x016A60, 0x016A69},
+ {0x016A6E, 0x016ABE},
+ {0x016AC0, 0x016AC9},
+ {0x016AD0, 0x016AED},
+ {0x016AF5, 0x016AF5},
+ {0x016B00, 0x016B2F},
+ {0x016B37, 0x016B45},
+ {0x016B50, 0x016B59},
+ {0x016B5B, 0x016B61},
+ {0x016B63, 0x016B77},
+ {0x016B7D, 0x016B8F},
+ {0x016E40, 0x016E9A},
+ {0x016F00, 0x016F4A},
+ {0x016F50, 0x016F87},
+ {0x016F93, 0x016F9F},
+ {0x016FE0, 0x016FE3},
+ {0x016FF0, 0x016FF1},
+ {0x017000, 0x0187F7},
+ {0x018800, 0x018CD5},
+ {0x018D00, 0x018D08},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01B000, 0x01B122},
+ {0x01B132, 0x01B132},
+ {0x01B150, 0x01B152},
+ {0x01B155, 0x01B155},
+ {0x01B164, 0x01B167},
+ {0x01B170, 0x01B2FB},
+ {0x01BC00, 0x01BC6A},
+ {0x01BC70, 0x01BC7C},
+ {0x01BC80, 0x01BC88},
+ {0x01BC90, 0x01BC99},
+ {0x01BC9C, 0x01BC9C},
+ {0x01BC9F, 0x01BC9F},
+ {0x01CF50, 0x01CFC3},
+ {0x01D000, 0x01D0F5},
+ {0x01D100, 0x01D126},
+ {0x01D129, 0x01D164},
+ {0x01D166, 0x01D166},
+ {0x01D16A, 0x01D16D},
+ {0x01D183, 0x01D184},
+ {0x01D18C, 0x01D1A9},
+ {0x01D1AE, 0x01D1EA},
+ {0x01D200, 0x01D241},
+ {0x01D245, 0x01D245},
+ {0x01D2C0, 0x01D2D3},
+ {0x01D2E0, 0x01D2F3},
+ {0x01D300, 0x01D356},
+ {0x01D360, 0x01D378},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D7CB},
+ {0x01D7CE, 0x01D9FF},
+ {0x01DA37, 0x01DA3A},
+ {0x01DA6D, 0x01DA74},
+ {0x01DA76, 0x01DA83},
+ {0x01DA85, 0x01DA8B},
+ {0x01DF00, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E030, 0x01E06D},
+ {0x01E100, 0x01E12C},
+ {0x01E137, 0x01E13D},
+ {0x01E140, 0x01E149},
+ {0x01E14E, 0x01E14F},
+ {0x01E290, 0x01E2AD},
+ {0x01E2C0, 0x01E2EB},
+ {0x01E2F0, 0x01E2F9},
+ {0x01E2FF, 0x01E2FF},
+ {0x01E4D0, 0x01E4EB},
+ {0x01E4F0, 0x01E4F9},
+ {0x01E7E0, 0x01E7E6},
+ {0x01E7E8, 0x01E7EB},
+ {0x01E7ED, 0x01E7EE},
+ {0x01E7F0, 0x01E7FE},
+ {0x01E800, 0x01E8C4},
+ {0x01E8C7, 0x01E8CF},
+ {0x01E900, 0x01E943},
+ {0x01E94B, 0x01E94B},
+ {0x01E950, 0x01E959},
+ {0x01E95E, 0x01E95F},
+ {0x01EC71, 0x01ECB4},
+ {0x01ED01, 0x01ED3D},
+ {0x01EE00, 0x01EE03},
+ {0x01EE05, 0x01EE1F},
+ {0x01EE21, 0x01EE22},
+ {0x01EE24, 0x01EE24},
+ {0x01EE27, 0x01EE27},
+ {0x01EE29, 0x01EE32},
+ {0x01EE34, 0x01EE37},
+ {0x01EE39, 0x01EE39},
+ {0x01EE3B, 0x01EE3B},
+ {0x01EE42, 0x01EE42},
+ {0x01EE47, 0x01EE47},
+ {0x01EE49, 0x01EE49},
+ {0x01EE4B, 0x01EE4B},
+ {0x01EE4D, 0x01EE4F},
+ {0x01EE51, 0x01EE52},
+ {0x01EE54, 0x01EE54},
+ {0x01EE57, 0x01EE57},
+ {0x01EE59, 0x01EE59},
+ {0x01EE5B, 0x01EE5B},
+ {0x01EE5D, 0x01EE5D},
+ {0x01EE5F, 0x01EE5F},
+ {0x01EE61, 0x01EE62},
+ {0x01EE64, 0x01EE64},
+ {0x01EE67, 0x01EE6A},
+ {0x01EE6C, 0x01EE72},
+ {0x01EE74, 0x01EE77},
+ {0x01EE79, 0x01EE7C},
+ {0x01EE7E, 0x01EE7E},
+ {0x01EE80, 0x01EE89},
+ {0x01EE8B, 0x01EE9B},
+ {0x01EEA1, 0x01EEA3},
+ {0x01EEA5, 0x01EEA9},
+ {0x01EEAB, 0x01EEBB},
+ {0x01EEF0, 0x01EEF1},
+ {0x01F000, 0x01F02B},
+ {0x01F030, 0x01F093},
+ {0x01F0A0, 0x01F0AE},
+ {0x01F0B1, 0x01F0BF},
+ {0x01F0C1, 0x01F0CF},
+ {0x01F0D1, 0x01F0F5},
+ {0x01F100, 0x01F1AD},
+ {0x01F1E6, 0x01F202},
+ {0x01F210, 0x01F23B},
+ {0x01F240, 0x01F248},
+ {0x01F250, 0x01F251},
+ {0x01F260, 0x01F265},
+ {0x01F300, 0x01F6D7},
+ {0x01F6DC, 0x01F6EC},
+ {0x01F6F0, 0x01F6FC},
+ {0x01F700, 0x01F776},
+ {0x01F77B, 0x01F7D9},
+ {0x01F7E0, 0x01F7EB},
+ {0x01F7F0, 0x01F7F0},
+ {0x01F800, 0x01F80B},
+ {0x01F810, 0x01F847},
+ {0x01F850, 0x01F859},
+ {0x01F860, 0x01F887},
+ {0x01F890, 0x01F8AD},
+ {0x01F8B0, 0x01F8B1},
+ {0x01F900, 0x01FA53},
+ {0x01FA60, 0x01FA6D},
+ {0x01FA70, 0x01FA7C},
+ {0x01FA80, 0x01FA88},
+ {0x01FA90, 0x01FABD},
+ {0x01FABF, 0x01FAC5},
+ {0x01FACE, 0x01FADB},
+ {0x01FAE0, 0x01FAE8},
+ {0x01FAF0, 0x01FAF8},
+ {0x01FB00, 0x01FB92},
+ {0x01FB94, 0x01FBCA},
+ {0x01FBF0, 0x01FBF9},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x02F800, 0x02FA1D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_grapheme_base(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_grapheme_extend.c b/vendor/librune/lib/rtype/rune_has_prop_grapheme_extend.c
new file mode 100644
index 0000000..041c74b
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_grapheme_extend.c
@@ -0,0 +1,393 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000300, 0x00036F},
+ {0x000483, 0x000489},
+ {0x000591, 0x0005BD},
+ {0x0005BF, 0x0005BF},
+ {0x0005C1, 0x0005C2},
+ {0x0005C4, 0x0005C5},
+ {0x0005C7, 0x0005C7},
+ {0x000610, 0x00061A},
+ {0x00064B, 0x00065F},
+ {0x000670, 0x000670},
+ {0x0006D6, 0x0006DC},
+ {0x0006DF, 0x0006E4},
+ {0x0006E7, 0x0006E8},
+ {0x0006EA, 0x0006ED},
+ {0x000711, 0x000711},
+ {0x000730, 0x00074A},
+ {0x0007A6, 0x0007B0},
+ {0x0007EB, 0x0007F3},
+ {0x0007FD, 0x0007FD},
+ {0x000816, 0x000819},
+ {0x00081B, 0x000823},
+ {0x000825, 0x000827},
+ {0x000829, 0x00082D},
+ {0x000859, 0x00085B},
+ {0x000898, 0x00089F},
+ {0x0008CA, 0x0008E1},
+ {0x0008E3, 0x000902},
+ {0x00093A, 0x00093A},
+ {0x00093C, 0x00093C},
+ {0x000941, 0x000948},
+ {0x00094D, 0x00094D},
+ {0x000951, 0x000957},
+ {0x000962, 0x000963},
+ {0x000981, 0x000981},
+ {0x0009BC, 0x0009BC},
+ {0x0009BE, 0x0009BE},
+ {0x0009C1, 0x0009C4},
+ {0x0009CD, 0x0009CD},
+ {0x0009D7, 0x0009D7},
+ {0x0009E2, 0x0009E3},
+ {0x0009FE, 0x0009FE},
+ {0x000A01, 0x000A02},
+ {0x000A3C, 0x000A3C},
+ {0x000A41, 0x000A42},
+ {0x000A47, 0x000A48},
+ {0x000A4B, 0x000A4D},
+ {0x000A51, 0x000A51},
+ {0x000A70, 0x000A71},
+ {0x000A75, 0x000A75},
+ {0x000A81, 0x000A82},
+ {0x000ABC, 0x000ABC},
+ {0x000AC1, 0x000AC5},
+ {0x000AC7, 0x000AC8},
+ {0x000ACD, 0x000ACD},
+ {0x000AE2, 0x000AE3},
+ {0x000AFA, 0x000AFF},
+ {0x000B01, 0x000B01},
+ {0x000B3C, 0x000B3C},
+ {0x000B3E, 0x000B3F},
+ {0x000B41, 0x000B44},
+ {0x000B4D, 0x000B4D},
+ {0x000B55, 0x000B57},
+ {0x000B62, 0x000B63},
+ {0x000B82, 0x000B82},
+ {0x000BBE, 0x000BBE},
+ {0x000BC0, 0x000BC0},
+ {0x000BCD, 0x000BCD},
+ {0x000BD7, 0x000BD7},
+ {0x000C00, 0x000C00},
+ {0x000C04, 0x000C04},
+ {0x000C3C, 0x000C3C},
+ {0x000C3E, 0x000C40},
+ {0x000C46, 0x000C48},
+ {0x000C4A, 0x000C4D},
+ {0x000C55, 0x000C56},
+ {0x000C62, 0x000C63},
+ {0x000C81, 0x000C81},
+ {0x000CBC, 0x000CBC},
+ {0x000CBF, 0x000CBF},
+ {0x000CC2, 0x000CC2},
+ {0x000CC6, 0x000CC6},
+ {0x000CCC, 0x000CCD},
+ {0x000CD5, 0x000CD6},
+ {0x000CE2, 0x000CE3},
+ {0x000D00, 0x000D01},
+ {0x000D3B, 0x000D3C},
+ {0x000D3E, 0x000D3E},
+ {0x000D41, 0x000D44},
+ {0x000D4D, 0x000D4D},
+ {0x000D57, 0x000D57},
+ {0x000D62, 0x000D63},
+ {0x000D81, 0x000D81},
+ {0x000DCA, 0x000DCA},
+ {0x000DCF, 0x000DCF},
+ {0x000DD2, 0x000DD4},
+ {0x000DD6, 0x000DD6},
+ {0x000DDF, 0x000DDF},
+ {0x000E31, 0x000E31},
+ {0x000E34, 0x000E3A},
+ {0x000E47, 0x000E4E},
+ {0x000EB1, 0x000EB1},
+ {0x000EB4, 0x000EBC},
+ {0x000EC8, 0x000ECE},
+ {0x000F18, 0x000F19},
+ {0x000F35, 0x000F35},
+ {0x000F37, 0x000F37},
+ {0x000F39, 0x000F39},
+ {0x000F71, 0x000F7E},
+ {0x000F80, 0x000F84},
+ {0x000F86, 0x000F87},
+ {0x000F8D, 0x000F97},
+ {0x000F99, 0x000FBC},
+ {0x000FC6, 0x000FC6},
+ {0x00102D, 0x001030},
+ {0x001032, 0x001037},
+ {0x001039, 0x00103A},
+ {0x00103D, 0x00103E},
+ {0x001058, 0x001059},
+ {0x00105E, 0x001060},
+ {0x001071, 0x001074},
+ {0x001082, 0x001082},
+ {0x001085, 0x001086},
+ {0x00108D, 0x00108D},
+ {0x00109D, 0x00109D},
+ {0x00135D, 0x00135F},
+ {0x001712, 0x001714},
+ {0x001732, 0x001733},
+ {0x001752, 0x001753},
+ {0x001772, 0x001773},
+ {0x0017B4, 0x0017B5},
+ {0x0017B7, 0x0017BD},
+ {0x0017C6, 0x0017C6},
+ {0x0017C9, 0x0017D3},
+ {0x0017DD, 0x0017DD},
+ {0x00180B, 0x00180D},
+ {0x00180F, 0x00180F},
+ {0x001885, 0x001886},
+ {0x0018A9, 0x0018A9},
+ {0x001920, 0x001922},
+ {0x001927, 0x001928},
+ {0x001932, 0x001932},
+ {0x001939, 0x00193B},
+ {0x001A17, 0x001A18},
+ {0x001A1B, 0x001A1B},
+ {0x001A56, 0x001A56},
+ {0x001A58, 0x001A5E},
+ {0x001A60, 0x001A60},
+ {0x001A62, 0x001A62},
+ {0x001A65, 0x001A6C},
+ {0x001A73, 0x001A7C},
+ {0x001A7F, 0x001A7F},
+ {0x001AB0, 0x001ACE},
+ {0x001B00, 0x001B03},
+ {0x001B34, 0x001B3A},
+ {0x001B3C, 0x001B3C},
+ {0x001B42, 0x001B42},
+ {0x001B6B, 0x001B73},
+ {0x001B80, 0x001B81},
+ {0x001BA2, 0x001BA5},
+ {0x001BA8, 0x001BA9},
+ {0x001BAB, 0x001BAD},
+ {0x001BE6, 0x001BE6},
+ {0x001BE8, 0x001BE9},
+ {0x001BED, 0x001BED},
+ {0x001BEF, 0x001BF1},
+ {0x001C2C, 0x001C33},
+ {0x001C36, 0x001C37},
+ {0x001CD0, 0x001CD2},
+ {0x001CD4, 0x001CE0},
+ {0x001CE2, 0x001CE8},
+ {0x001CED, 0x001CED},
+ {0x001CF4, 0x001CF4},
+ {0x001CF8, 0x001CF9},
+ {0x001DC0, 0x001DFF},
+ {0x00200C, 0x00200C},
+ {0x0020D0, 0x0020F0},
+ {0x002CEF, 0x002CF1},
+ {0x002D7F, 0x002D7F},
+ {0x002DE0, 0x002DFF},
+ {0x00302A, 0x00302F},
+ {0x003099, 0x00309A},
+ {0x00A66F, 0x00A672},
+ {0x00A674, 0x00A67D},
+ {0x00A69E, 0x00A69F},
+ {0x00A6F0, 0x00A6F1},
+ {0x00A802, 0x00A802},
+ {0x00A806, 0x00A806},
+ {0x00A80B, 0x00A80B},
+ {0x00A825, 0x00A826},
+ {0x00A82C, 0x00A82C},
+ {0x00A8C4, 0x00A8C5},
+ {0x00A8E0, 0x00A8F1},
+ {0x00A8FF, 0x00A8FF},
+ {0x00A926, 0x00A92D},
+ {0x00A947, 0x00A951},
+ {0x00A980, 0x00A982},
+ {0x00A9B3, 0x00A9B3},
+ {0x00A9B6, 0x00A9B9},
+ {0x00A9BC, 0x00A9BD},
+ {0x00A9E5, 0x00A9E5},
+ {0x00AA29, 0x00AA2E},
+ {0x00AA31, 0x00AA32},
+ {0x00AA35, 0x00AA36},
+ {0x00AA43, 0x00AA43},
+ {0x00AA4C, 0x00AA4C},
+ {0x00AA7C, 0x00AA7C},
+ {0x00AAB0, 0x00AAB0},
+ {0x00AAB2, 0x00AAB4},
+ {0x00AAB7, 0x00AAB8},
+ {0x00AABE, 0x00AABF},
+ {0x00AAC1, 0x00AAC1},
+ {0x00AAEC, 0x00AAED},
+ {0x00AAF6, 0x00AAF6},
+ {0x00ABE5, 0x00ABE5},
+ {0x00ABE8, 0x00ABE8},
+ {0x00ABED, 0x00ABED},
+ {0x00FB1E, 0x00FB1E},
+ {0x00FE00, 0x00FE0F},
+ {0x00FE20, 0x00FE2F},
+ {0x00FF9E, 0x00FF9F},
+ {0x0101FD, 0x0101FD},
+ {0x0102E0, 0x0102E0},
+ {0x010376, 0x01037A},
+ {0x010A01, 0x010A03},
+ {0x010A05, 0x010A06},
+ {0x010A0C, 0x010A0F},
+ {0x010A38, 0x010A3A},
+ {0x010A3F, 0x010A3F},
+ {0x010AE5, 0x010AE6},
+ {0x010D24, 0x010D27},
+ {0x010EAB, 0x010EAC},
+ {0x010EFD, 0x010EFF},
+ {0x010F46, 0x010F50},
+ {0x010F82, 0x010F85},
+ {0x011001, 0x011001},
+ {0x011038, 0x011046},
+ {0x011070, 0x011070},
+ {0x011073, 0x011074},
+ {0x01107F, 0x011081},
+ {0x0110B3, 0x0110B6},
+ {0x0110B9, 0x0110BA},
+ {0x0110C2, 0x0110C2},
+ {0x011100, 0x011102},
+ {0x011127, 0x01112B},
+ {0x01112D, 0x011134},
+ {0x011173, 0x011173},
+ {0x011180, 0x011181},
+ {0x0111B6, 0x0111BE},
+ {0x0111C9, 0x0111CC},
+ {0x0111CF, 0x0111CF},
+ {0x01122F, 0x011231},
+ {0x011234, 0x011234},
+ {0x011236, 0x011237},
+ {0x01123E, 0x01123E},
+ {0x011241, 0x011241},
+ {0x0112DF, 0x0112DF},
+ {0x0112E3, 0x0112EA},
+ {0x011300, 0x011301},
+ {0x01133B, 0x01133C},
+ {0x01133E, 0x01133E},
+ {0x011340, 0x011340},
+ {0x011357, 0x011357},
+ {0x011366, 0x01136C},
+ {0x011370, 0x011374},
+ {0x011438, 0x01143F},
+ {0x011442, 0x011444},
+ {0x011446, 0x011446},
+ {0x01145E, 0x01145E},
+ {0x0114B0, 0x0114B0},
+ {0x0114B3, 0x0114B8},
+ {0x0114BA, 0x0114BA},
+ {0x0114BD, 0x0114BD},
+ {0x0114BF, 0x0114C0},
+ {0x0114C2, 0x0114C3},
+ {0x0115AF, 0x0115AF},
+ {0x0115B2, 0x0115B5},
+ {0x0115BC, 0x0115BD},
+ {0x0115BF, 0x0115C0},
+ {0x0115DC, 0x0115DD},
+ {0x011633, 0x01163A},
+ {0x01163D, 0x01163D},
+ {0x01163F, 0x011640},
+ {0x0116AB, 0x0116AB},
+ {0x0116AD, 0x0116AD},
+ {0x0116B0, 0x0116B5},
+ {0x0116B7, 0x0116B7},
+ {0x01171D, 0x01171F},
+ {0x011722, 0x011725},
+ {0x011727, 0x01172B},
+ {0x01182F, 0x011837},
+ {0x011839, 0x01183A},
+ {0x011930, 0x011930},
+ {0x01193B, 0x01193C},
+ {0x01193E, 0x01193E},
+ {0x011943, 0x011943},
+ {0x0119D4, 0x0119D7},
+ {0x0119DA, 0x0119DB},
+ {0x0119E0, 0x0119E0},
+ {0x011A01, 0x011A0A},
+ {0x011A33, 0x011A38},
+ {0x011A3B, 0x011A3E},
+ {0x011A47, 0x011A47},
+ {0x011A51, 0x011A56},
+ {0x011A59, 0x011A5B},
+ {0x011A8A, 0x011A96},
+ {0x011A98, 0x011A99},
+ {0x011C30, 0x011C36},
+ {0x011C38, 0x011C3D},
+ {0x011C3F, 0x011C3F},
+ {0x011C92, 0x011CA7},
+ {0x011CAA, 0x011CB0},
+ {0x011CB2, 0x011CB3},
+ {0x011CB5, 0x011CB6},
+ {0x011D31, 0x011D36},
+ {0x011D3A, 0x011D3A},
+ {0x011D3C, 0x011D3D},
+ {0x011D3F, 0x011D45},
+ {0x011D47, 0x011D47},
+ {0x011D90, 0x011D91},
+ {0x011D95, 0x011D95},
+ {0x011D97, 0x011D97},
+ {0x011EF3, 0x011EF4},
+ {0x011F00, 0x011F01},
+ {0x011F36, 0x011F3A},
+ {0x011F40, 0x011F40},
+ {0x011F42, 0x011F42},
+ {0x013440, 0x013440},
+ {0x013447, 0x013455},
+ {0x016AF0, 0x016AF4},
+ {0x016B30, 0x016B36},
+ {0x016F4F, 0x016F4F},
+ {0x016F8F, 0x016F92},
+ {0x016FE4, 0x016FE4},
+ {0x01BC9D, 0x01BC9E},
+ {0x01CF00, 0x01CF2D},
+ {0x01CF30, 0x01CF46},
+ {0x01D165, 0x01D165},
+ {0x01D167, 0x01D169},
+ {0x01D16E, 0x01D172},
+ {0x01D17B, 0x01D182},
+ {0x01D185, 0x01D18B},
+ {0x01D1AA, 0x01D1AD},
+ {0x01D242, 0x01D244},
+ {0x01DA00, 0x01DA36},
+ {0x01DA3B, 0x01DA6C},
+ {0x01DA75, 0x01DA75},
+ {0x01DA84, 0x01DA84},
+ {0x01DA9B, 0x01DA9F},
+ {0x01DAA1, 0x01DAAF},
+ {0x01E000, 0x01E006},
+ {0x01E008, 0x01E018},
+ {0x01E01B, 0x01E021},
+ {0x01E023, 0x01E024},
+ {0x01E026, 0x01E02A},
+ {0x01E08F, 0x01E08F},
+ {0x01E130, 0x01E136},
+ {0x01E2AE, 0x01E2AE},
+ {0x01E2EC, 0x01E2EF},
+ {0x01E4EC, 0x01E4EF},
+ {0x01E8D0, 0x01E8D6},
+ {0x01E944, 0x01E94A},
+ {0x0E0020, 0x0E007F},
+ {0x0E0100, 0x0E01EF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_grapheme_extend(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_hex_digit.c b/vendor/librune/lib/rtype/rune_has_prop_hex_digit.c
new file mode 100644
index 0000000..471f6c3
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_hex_digit.c
@@ -0,0 +1,36 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7E0000007E03FF000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000030, 0x000039},
+ {0x000041, 0x000046},
+ {0x000061, 0x000066},
+ {0x00FF10, 0x00FF19},
+ {0x00FF21, 0x00FF26},
+ {0x00FF41, 0x00FF46},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_hex_digit(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_continue.c b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_continue.c
new file mode 100644
index 0000000..eb842bd
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_continue.c
@@ -0,0 +1,48 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x20C00000000000000000000000000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x0000B2, 0x0000B3},
+ {0x0000B9, 0x0000B9},
+ {0x002070, 0x002070},
+ {0x002074, 0x00207E},
+ {0x002080, 0x00208E},
+ {0x002202, 0x002202},
+ {0x002207, 0x002207},
+ {0x00221E, 0x00221E},
+ {0x01D6C1, 0x01D6C1},
+ {0x01D6DB, 0x01D6DB},
+ {0x01D6FB, 0x01D6FB},
+ {0x01D715, 0x01D715},
+ {0x01D735, 0x01D735},
+ {0x01D74F, 0x01D74F},
+ {0x01D76F, 0x01D76F},
+ {0x01D789, 0x01D789},
+ {0x01D7A9, 0x01D7A9},
+ {0x01D7C3, 0x01D7C3},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_id_compat_math_continue(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_start.c b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_start.c
new file mode 100644
index 0000000..ee09cba
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_id_compat_math_start.c
@@ -0,0 +1,43 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x002202, 0x002202},
+ {0x002207, 0x002207},
+ {0x00221E, 0x00221E},
+ {0x01D6C1, 0x01D6C1},
+ {0x01D6DB, 0x01D6DB},
+ {0x01D6FB, 0x01D6FB},
+ {0x01D715, 0x01D715},
+ {0x01D735, 0x01D735},
+ {0x01D74F, 0x01D74F},
+ {0x01D76F, 0x01D76F},
+ {0x01D789, 0x01D789},
+ {0x01D7A9, 0x01D7A9},
+ {0x01D7C3, 0x01D7C3},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_id_compat_math_start(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_continue.c b/vendor/librune/lib/rtype/rune_has_prop_id_continue.c
new file mode 100644
index 0000000..2bbf130
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_id_continue.c
@@ -0,0 +1,799 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF04A004000000000007FFFFFE87FFFFFE03FF000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000030, 0x000039},
+ {0x000041, 0x00005A},
+ {0x00005F, 0x00005F},
+ {0x000061, 0x00007A},
+ {0x0000AA, 0x0000AA},
+ {0x0000B5, 0x0000B5},
+ {0x0000B7, 0x0000B7},
+ {0x0000BA, 0x0000BA},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000F6},
+ {0x0000F8, 0x0002C1},
+ {0x0002C6, 0x0002D1},
+ {0x0002E0, 0x0002E4},
+ {0x0002EC, 0x0002EC},
+ {0x0002EE, 0x0002EE},
+ {0x000300, 0x000374},
+ {0x000376, 0x000377},
+ {0x00037A, 0x00037D},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x0003F5},
+ {0x0003F7, 0x000481},
+ {0x000483, 0x000487},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000559, 0x000559},
+ {0x000560, 0x000588},
+ {0x000591, 0x0005BD},
+ {0x0005BF, 0x0005BF},
+ {0x0005C1, 0x0005C2},
+ {0x0005C4, 0x0005C5},
+ {0x0005C7, 0x0005C7},
+ {0x0005D0, 0x0005EA},
+ {0x0005EF, 0x0005F2},
+ {0x000610, 0x00061A},
+ {0x000620, 0x000669},
+ {0x00066E, 0x0006D3},
+ {0x0006D5, 0x0006DC},
+ {0x0006DF, 0x0006E8},
+ {0x0006EA, 0x0006FC},
+ {0x0006FF, 0x0006FF},
+ {0x000710, 0x00074A},
+ {0x00074D, 0x0007B1},
+ {0x0007C0, 0x0007F5},
+ {0x0007FA, 0x0007FA},
+ {0x0007FD, 0x0007FD},
+ {0x000800, 0x00082D},
+ {0x000840, 0x00085B},
+ {0x000860, 0x00086A},
+ {0x000870, 0x000887},
+ {0x000889, 0x00088E},
+ {0x000898, 0x0008E1},
+ {0x0008E3, 0x000963},
+ {0x000966, 0x00096F},
+ {0x000971, 0x000983},
+ {0x000985, 0x00098C},
+ {0x00098F, 0x000990},
+ {0x000993, 0x0009A8},
+ {0x0009AA, 0x0009B0},
+ {0x0009B2, 0x0009B2},
+ {0x0009B6, 0x0009B9},
+ {0x0009BC, 0x0009C4},
+ {0x0009C7, 0x0009C8},
+ {0x0009CB, 0x0009CE},
+ {0x0009D7, 0x0009D7},
+ {0x0009DC, 0x0009DD},
+ {0x0009DF, 0x0009E3},
+ {0x0009E6, 0x0009F1},
+ {0x0009FC, 0x0009FC},
+ {0x0009FE, 0x0009FE},
+ {0x000A01, 0x000A03},
+ {0x000A05, 0x000A0A},
+ {0x000A0F, 0x000A10},
+ {0x000A13, 0x000A28},
+ {0x000A2A, 0x000A30},
+ {0x000A32, 0x000A33},
+ {0x000A35, 0x000A36},
+ {0x000A38, 0x000A39},
+ {0x000A3C, 0x000A3C},
+ {0x000A3E, 0x000A42},
+ {0x000A47, 0x000A48},
+ {0x000A4B, 0x000A4D},
+ {0x000A51, 0x000A51},
+ {0x000A59, 0x000A5C},
+ {0x000A5E, 0x000A5E},
+ {0x000A66, 0x000A75},
+ {0x000A81, 0x000A83},
+ {0x000A85, 0x000A8D},
+ {0x000A8F, 0x000A91},
+ {0x000A93, 0x000AA8},
+ {0x000AAA, 0x000AB0},
+ {0x000AB2, 0x000AB3},
+ {0x000AB5, 0x000AB9},
+ {0x000ABC, 0x000AC5},
+ {0x000AC7, 0x000AC9},
+ {0x000ACB, 0x000ACD},
+ {0x000AD0, 0x000AD0},
+ {0x000AE0, 0x000AE3},
+ {0x000AE6, 0x000AEF},
+ {0x000AF9, 0x000AFF},
+ {0x000B01, 0x000B03},
+ {0x000B05, 0x000B0C},
+ {0x000B0F, 0x000B10},
+ {0x000B13, 0x000B28},
+ {0x000B2A, 0x000B30},
+ {0x000B32, 0x000B33},
+ {0x000B35, 0x000B39},
+ {0x000B3C, 0x000B44},
+ {0x000B47, 0x000B48},
+ {0x000B4B, 0x000B4D},
+ {0x000B55, 0x000B57},
+ {0x000B5C, 0x000B5D},
+ {0x000B5F, 0x000B63},
+ {0x000B66, 0x000B6F},
+ {0x000B71, 0x000B71},
+ {0x000B82, 0x000B83},
+ {0x000B85, 0x000B8A},
+ {0x000B8E, 0x000B90},
+ {0x000B92, 0x000B95},
+ {0x000B99, 0x000B9A},
+ {0x000B9C, 0x000B9C},
+ {0x000B9E, 0x000B9F},
+ {0x000BA3, 0x000BA4},
+ {0x000BA8, 0x000BAA},
+ {0x000BAE, 0x000BB9},
+ {0x000BBE, 0x000BC2},
+ {0x000BC6, 0x000BC8},
+ {0x000BCA, 0x000BCD},
+ {0x000BD0, 0x000BD0},
+ {0x000BD7, 0x000BD7},
+ {0x000BE6, 0x000BEF},
+ {0x000C00, 0x000C0C},
+ {0x000C0E, 0x000C10},
+ {0x000C12, 0x000C28},
+ {0x000C2A, 0x000C39},
+ {0x000C3C, 0x000C44},
+ {0x000C46, 0x000C48},
+ {0x000C4A, 0x000C4D},
+ {0x000C55, 0x000C56},
+ {0x000C58, 0x000C5A},
+ {0x000C5D, 0x000C5D},
+ {0x000C60, 0x000C63},
+ {0x000C66, 0x000C6F},
+ {0x000C80, 0x000C83},
+ {0x000C85, 0x000C8C},
+ {0x000C8E, 0x000C90},
+ {0x000C92, 0x000CA8},
+ {0x000CAA, 0x000CB3},
+ {0x000CB5, 0x000CB9},
+ {0x000CBC, 0x000CC4},
+ {0x000CC6, 0x000CC8},
+ {0x000CCA, 0x000CCD},
+ {0x000CD5, 0x000CD6},
+ {0x000CDD, 0x000CDE},
+ {0x000CE0, 0x000CE3},
+ {0x000CE6, 0x000CEF},
+ {0x000CF1, 0x000CF3},
+ {0x000D00, 0x000D0C},
+ {0x000D0E, 0x000D10},
+ {0x000D12, 0x000D44},
+ {0x000D46, 0x000D48},
+ {0x000D4A, 0x000D4E},
+ {0x000D54, 0x000D57},
+ {0x000D5F, 0x000D63},
+ {0x000D66, 0x000D6F},
+ {0x000D7A, 0x000D7F},
+ {0x000D81, 0x000D83},
+ {0x000D85, 0x000D96},
+ {0x000D9A, 0x000DB1},
+ {0x000DB3, 0x000DBB},
+ {0x000DBD, 0x000DBD},
+ {0x000DC0, 0x000DC6},
+ {0x000DCA, 0x000DCA},
+ {0x000DCF, 0x000DD4},
+ {0x000DD6, 0x000DD6},
+ {0x000DD8, 0x000DDF},
+ {0x000DE6, 0x000DEF},
+ {0x000DF2, 0x000DF3},
+ {0x000E01, 0x000E3A},
+ {0x000E40, 0x000E4E},
+ {0x000E50, 0x000E59},
+ {0x000E81, 0x000E82},
+ {0x000E84, 0x000E84},
+ {0x000E86, 0x000E8A},
+ {0x000E8C, 0x000EA3},
+ {0x000EA5, 0x000EA5},
+ {0x000EA7, 0x000EBD},
+ {0x000EC0, 0x000EC4},
+ {0x000EC6, 0x000EC6},
+ {0x000EC8, 0x000ECE},
+ {0x000ED0, 0x000ED9},
+ {0x000EDC, 0x000EDF},
+ {0x000F00, 0x000F00},
+ {0x000F18, 0x000F19},
+ {0x000F20, 0x000F29},
+ {0x000F35, 0x000F35},
+ {0x000F37, 0x000F37},
+ {0x000F39, 0x000F39},
+ {0x000F3E, 0x000F47},
+ {0x000F49, 0x000F6C},
+ {0x000F71, 0x000F84},
+ {0x000F86, 0x000F97},
+ {0x000F99, 0x000FBC},
+ {0x000FC6, 0x000FC6},
+ {0x001000, 0x001049},
+ {0x001050, 0x00109D},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x0010FA},
+ {0x0010FC, 0x001248},
+ {0x00124A, 0x00124D},
+ {0x001250, 0x001256},
+ {0x001258, 0x001258},
+ {0x00125A, 0x00125D},
+ {0x001260, 0x001288},
+ {0x00128A, 0x00128D},
+ {0x001290, 0x0012B0},
+ {0x0012B2, 0x0012B5},
+ {0x0012B8, 0x0012BE},
+ {0x0012C0, 0x0012C0},
+ {0x0012C2, 0x0012C5},
+ {0x0012C8, 0x0012D6},
+ {0x0012D8, 0x001310},
+ {0x001312, 0x001315},
+ {0x001318, 0x00135A},
+ {0x00135D, 0x00135F},
+ {0x001369, 0x001371},
+ {0x001380, 0x00138F},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001401, 0x00166C},
+ {0x00166F, 0x00167F},
+ {0x001681, 0x00169A},
+ {0x0016A0, 0x0016EA},
+ {0x0016EE, 0x0016F8},
+ {0x001700, 0x001715},
+ {0x00171F, 0x001734},
+ {0x001740, 0x001753},
+ {0x001760, 0x00176C},
+ {0x00176E, 0x001770},
+ {0x001772, 0x001773},
+ {0x001780, 0x0017D3},
+ {0x0017D7, 0x0017D7},
+ {0x0017DC, 0x0017DD},
+ {0x0017E0, 0x0017E9},
+ {0x00180B, 0x00180D},
+ {0x00180F, 0x001819},
+ {0x001820, 0x001878},
+ {0x001880, 0x0018AA},
+ {0x0018B0, 0x0018F5},
+ {0x001900, 0x00191E},
+ {0x001920, 0x00192B},
+ {0x001930, 0x00193B},
+ {0x001946, 0x00196D},
+ {0x001970, 0x001974},
+ {0x001980, 0x0019AB},
+ {0x0019B0, 0x0019C9},
+ {0x0019D0, 0x0019DA},
+ {0x001A00, 0x001A1B},
+ {0x001A20, 0x001A5E},
+ {0x001A60, 0x001A7C},
+ {0x001A7F, 0x001A89},
+ {0x001A90, 0x001A99},
+ {0x001AA7, 0x001AA7},
+ {0x001AB0, 0x001ABD},
+ {0x001ABF, 0x001ACE},
+ {0x001B00, 0x001B4C},
+ {0x001B50, 0x001B59},
+ {0x001B6B, 0x001B73},
+ {0x001B80, 0x001BF3},
+ {0x001C00, 0x001C37},
+ {0x001C40, 0x001C49},
+ {0x001C4D, 0x001C7D},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001CD0, 0x001CD2},
+ {0x001CD4, 0x001CFA},
+ {0x001D00, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FE0, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFC},
+ {0x00200C, 0x00200D},
+ {0x00203F, 0x002040},
+ {0x002054, 0x002054},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x0020D0, 0x0020DC},
+ {0x0020E1, 0x0020E1},
+ {0x0020E5, 0x0020F0},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210A, 0x002113},
+ {0x002115, 0x002115},
+ {0x002118, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002126, 0x002126},
+ {0x002128, 0x002128},
+ {0x00212A, 0x002139},
+ {0x00213C, 0x00213F},
+ {0x002145, 0x002149},
+ {0x00214E, 0x00214E},
+ {0x002160, 0x002188},
+ {0x002C00, 0x002CE4},
+ {0x002CEB, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x002D30, 0x002D67},
+ {0x002D6F, 0x002D6F},
+ {0x002D7F, 0x002D96},
+ {0x002DA0, 0x002DA6},
+ {0x002DA8, 0x002DAE},
+ {0x002DB0, 0x002DB6},
+ {0x002DB8, 0x002DBE},
+ {0x002DC0, 0x002DC6},
+ {0x002DC8, 0x002DCE},
+ {0x002DD0, 0x002DD6},
+ {0x002DD8, 0x002DDE},
+ {0x002DE0, 0x002DFF},
+ {0x003005, 0x003007},
+ {0x003021, 0x00302F},
+ {0x003031, 0x003035},
+ {0x003038, 0x00303C},
+ {0x003041, 0x003096},
+ {0x003099, 0x00309F},
+ {0x0030A1, 0x0030FF},
+ {0x003105, 0x00312F},
+ {0x003131, 0x00318E},
+ {0x0031A0, 0x0031BF},
+ {0x0031F0, 0x0031FF},
+ {0x003400, 0x004DBF},
+ {0x004E00, 0x00A48C},
+ {0x00A4D0, 0x00A4FD},
+ {0x00A500, 0x00A60C},
+ {0x00A610, 0x00A62B},
+ {0x00A640, 0x00A66F},
+ {0x00A674, 0x00A67D},
+ {0x00A67F, 0x00A6F1},
+ {0x00A717, 0x00A71F},
+ {0x00A722, 0x00A788},
+ {0x00A78B, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D9},
+ {0x00A7F2, 0x00A827},
+ {0x00A82C, 0x00A82C},
+ {0x00A840, 0x00A873},
+ {0x00A880, 0x00A8C5},
+ {0x00A8D0, 0x00A8D9},
+ {0x00A8E0, 0x00A8F7},
+ {0x00A8FB, 0x00A8FB},
+ {0x00A8FD, 0x00A92D},
+ {0x00A930, 0x00A953},
+ {0x00A960, 0x00A97C},
+ {0x00A980, 0x00A9C0},
+ {0x00A9CF, 0x00A9D9},
+ {0x00A9E0, 0x00A9FE},
+ {0x00AA00, 0x00AA36},
+ {0x00AA40, 0x00AA4D},
+ {0x00AA50, 0x00AA59},
+ {0x00AA60, 0x00AA76},
+ {0x00AA7A, 0x00AAC2},
+ {0x00AADB, 0x00AADD},
+ {0x00AAE0, 0x00AAEF},
+ {0x00AAF2, 0x00AAF6},
+ {0x00AB01, 0x00AB06},
+ {0x00AB09, 0x00AB0E},
+ {0x00AB11, 0x00AB16},
+ {0x00AB20, 0x00AB26},
+ {0x00AB28, 0x00AB2E},
+ {0x00AB30, 0x00AB5A},
+ {0x00AB5C, 0x00AB69},
+ {0x00AB70, 0x00ABEA},
+ {0x00ABEC, 0x00ABED},
+ {0x00ABF0, 0x00ABF9},
+ {0x00AC00, 0x00D7A3},
+ {0x00D7B0, 0x00D7C6},
+ {0x00D7CB, 0x00D7FB},
+ {0x00F900, 0x00FA6D},
+ {0x00FA70, 0x00FAD9},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FB1D, 0x00FB28},
+ {0x00FB2A, 0x00FB36},
+ {0x00FB38, 0x00FB3C},
+ {0x00FB3E, 0x00FB3E},
+ {0x00FB40, 0x00FB41},
+ {0x00FB43, 0x00FB44},
+ {0x00FB46, 0x00FBB1},
+ {0x00FBD3, 0x00FD3D},
+ {0x00FD50, 0x00FD8F},
+ {0x00FD92, 0x00FDC7},
+ {0x00FDF0, 0x00FDFB},
+ {0x00FE00, 0x00FE0F},
+ {0x00FE20, 0x00FE2F},
+ {0x00FE33, 0x00FE34},
+ {0x00FE4D, 0x00FE4F},
+ {0x00FE70, 0x00FE74},
+ {0x00FE76, 0x00FEFC},
+ {0x00FF10, 0x00FF19},
+ {0x00FF21, 0x00FF3A},
+ {0x00FF3F, 0x00FF3F},
+ {0x00FF41, 0x00FF5A},
+ {0x00FF65, 0x00FFBE},
+ {0x00FFC2, 0x00FFC7},
+ {0x00FFCA, 0x00FFCF},
+ {0x00FFD2, 0x00FFD7},
+ {0x00FFDA, 0x00FFDC},
+ {0x010000, 0x01000B},
+ {0x01000D, 0x010026},
+ {0x010028, 0x01003A},
+ {0x01003C, 0x01003D},
+ {0x01003F, 0x01004D},
+ {0x010050, 0x01005D},
+ {0x010080, 0x0100FA},
+ {0x010140, 0x010174},
+ {0x0101FD, 0x0101FD},
+ {0x010280, 0x01029C},
+ {0x0102A0, 0x0102D0},
+ {0x0102E0, 0x0102E0},
+ {0x010300, 0x01031F},
+ {0x01032D, 0x01034A},
+ {0x010350, 0x01037A},
+ {0x010380, 0x01039D},
+ {0x0103A0, 0x0103C3},
+ {0x0103C8, 0x0103CF},
+ {0x0103D1, 0x0103D5},
+ {0x010400, 0x01049D},
+ {0x0104A0, 0x0104A9},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010500, 0x010527},
+ {0x010530, 0x010563},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010600, 0x010736},
+ {0x010740, 0x010755},
+ {0x010760, 0x010767},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010800, 0x010805},
+ {0x010808, 0x010808},
+ {0x01080A, 0x010835},
+ {0x010837, 0x010838},
+ {0x01083C, 0x01083C},
+ {0x01083F, 0x010855},
+ {0x010860, 0x010876},
+ {0x010880, 0x01089E},
+ {0x0108E0, 0x0108F2},
+ {0x0108F4, 0x0108F5},
+ {0x010900, 0x010915},
+ {0x010920, 0x010939},
+ {0x010980, 0x0109B7},
+ {0x0109BE, 0x0109BF},
+ {0x010A00, 0x010A03},
+ {0x010A05, 0x010A06},
+ {0x010A0C, 0x010A13},
+ {0x010A15, 0x010A17},
+ {0x010A19, 0x010A35},
+ {0x010A38, 0x010A3A},
+ {0x010A3F, 0x010A3F},
+ {0x010A60, 0x010A7C},
+ {0x010A80, 0x010A9C},
+ {0x010AC0, 0x010AC7},
+ {0x010AC9, 0x010AE6},
+ {0x010B00, 0x010B35},
+ {0x010B40, 0x010B55},
+ {0x010B60, 0x010B72},
+ {0x010B80, 0x010B91},
+ {0x010C00, 0x010C48},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x010D00, 0x010D27},
+ {0x010D30, 0x010D39},
+ {0x010E80, 0x010EA9},
+ {0x010EAB, 0x010EAC},
+ {0x010EB0, 0x010EB1},
+ {0x010EFD, 0x010F1C},
+ {0x010F27, 0x010F27},
+ {0x010F30, 0x010F50},
+ {0x010F70, 0x010F85},
+ {0x010FB0, 0x010FC4},
+ {0x010FE0, 0x010FF6},
+ {0x011000, 0x011046},
+ {0x011066, 0x011075},
+ {0x01107F, 0x0110BA},
+ {0x0110C2, 0x0110C2},
+ {0x0110D0, 0x0110E8},
+ {0x0110F0, 0x0110F9},
+ {0x011100, 0x011134},
+ {0x011136, 0x01113F},
+ {0x011144, 0x011147},
+ {0x011150, 0x011173},
+ {0x011176, 0x011176},
+ {0x011180, 0x0111C4},
+ {0x0111C9, 0x0111CC},
+ {0x0111CE, 0x0111DA},
+ {0x0111DC, 0x0111DC},
+ {0x011200, 0x011211},
+ {0x011213, 0x011237},
+ {0x01123E, 0x011241},
+ {0x011280, 0x011286},
+ {0x011288, 0x011288},
+ {0x01128A, 0x01128D},
+ {0x01128F, 0x01129D},
+ {0x01129F, 0x0112A8},
+ {0x0112B0, 0x0112EA},
+ {0x0112F0, 0x0112F9},
+ {0x011300, 0x011303},
+ {0x011305, 0x01130C},
+ {0x01130F, 0x011310},
+ {0x011313, 0x011328},
+ {0x01132A, 0x011330},
+ {0x011332, 0x011333},
+ {0x011335, 0x011339},
+ {0x01133B, 0x011344},
+ {0x011347, 0x011348},
+ {0x01134B, 0x01134D},
+ {0x011350, 0x011350},
+ {0x011357, 0x011357},
+ {0x01135D, 0x011363},
+ {0x011366, 0x01136C},
+ {0x011370, 0x011374},
+ {0x011400, 0x01144A},
+ {0x011450, 0x011459},
+ {0x01145E, 0x011461},
+ {0x011480, 0x0114C5},
+ {0x0114C7, 0x0114C7},
+ {0x0114D0, 0x0114D9},
+ {0x011580, 0x0115B5},
+ {0x0115B8, 0x0115C0},
+ {0x0115D8, 0x0115DD},
+ {0x011600, 0x011640},
+ {0x011644, 0x011644},
+ {0x011650, 0x011659},
+ {0x011680, 0x0116B8},
+ {0x0116C0, 0x0116C9},
+ {0x011700, 0x01171A},
+ {0x01171D, 0x01172B},
+ {0x011730, 0x011739},
+ {0x011740, 0x011746},
+ {0x011800, 0x01183A},
+ {0x0118A0, 0x0118E9},
+ {0x0118FF, 0x011906},
+ {0x011909, 0x011909},
+ {0x01190C, 0x011913},
+ {0x011915, 0x011916},
+ {0x011918, 0x011935},
+ {0x011937, 0x011938},
+ {0x01193B, 0x011943},
+ {0x011950, 0x011959},
+ {0x0119A0, 0x0119A7},
+ {0x0119AA, 0x0119D7},
+ {0x0119DA, 0x0119E1},
+ {0x0119E3, 0x0119E4},
+ {0x011A00, 0x011A3E},
+ {0x011A47, 0x011A47},
+ {0x011A50, 0x011A99},
+ {0x011A9D, 0x011A9D},
+ {0x011AB0, 0x011AF8},
+ {0x011C00, 0x011C08},
+ {0x011C0A, 0x011C36},
+ {0x011C38, 0x011C40},
+ {0x011C50, 0x011C59},
+ {0x011C72, 0x011C8F},
+ {0x011C92, 0x011CA7},
+ {0x011CA9, 0x011CB6},
+ {0x011D00, 0x011D06},
+ {0x011D08, 0x011D09},
+ {0x011D0B, 0x011D36},
+ {0x011D3A, 0x011D3A},
+ {0x011D3C, 0x011D3D},
+ {0x011D3F, 0x011D47},
+ {0x011D50, 0x011D59},
+ {0x011D60, 0x011D65},
+ {0x011D67, 0x011D68},
+ {0x011D6A, 0x011D8E},
+ {0x011D90, 0x011D91},
+ {0x011D93, 0x011D98},
+ {0x011DA0, 0x011DA9},
+ {0x011EE0, 0x011EF6},
+ {0x011F00, 0x011F10},
+ {0x011F12, 0x011F3A},
+ {0x011F3E, 0x011F42},
+ {0x011F50, 0x011F59},
+ {0x011FB0, 0x011FB0},
+ {0x012000, 0x012399},
+ {0x012400, 0x01246E},
+ {0x012480, 0x012543},
+ {0x012F90, 0x012FF0},
+ {0x013000, 0x01342F},
+ {0x013440, 0x013455},
+ {0x014400, 0x014646},
+ {0x016800, 0x016A38},
+ {0x016A40, 0x016A5E},
+ {0x016A60, 0x016A69},
+ {0x016A70, 0x016ABE},
+ {0x016AC0, 0x016AC9},
+ {0x016AD0, 0x016AED},
+ {0x016AF0, 0x016AF4},
+ {0x016B00, 0x016B36},
+ {0x016B40, 0x016B43},
+ {0x016B50, 0x016B59},
+ {0x016B63, 0x016B77},
+ {0x016B7D, 0x016B8F},
+ {0x016E40, 0x016E7F},
+ {0x016F00, 0x016F4A},
+ {0x016F4F, 0x016F87},
+ {0x016F8F, 0x016F9F},
+ {0x016FE0, 0x016FE1},
+ {0x016FE3, 0x016FE4},
+ {0x016FF0, 0x016FF1},
+ {0x017000, 0x0187F7},
+ {0x018800, 0x018CD5},
+ {0x018D00, 0x018D08},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01B000, 0x01B122},
+ {0x01B132, 0x01B132},
+ {0x01B150, 0x01B152},
+ {0x01B155, 0x01B155},
+ {0x01B164, 0x01B167},
+ {0x01B170, 0x01B2FB},
+ {0x01BC00, 0x01BC6A},
+ {0x01BC70, 0x01BC7C},
+ {0x01BC80, 0x01BC88},
+ {0x01BC90, 0x01BC99},
+ {0x01BC9D, 0x01BC9E},
+ {0x01CF00, 0x01CF2D},
+ {0x01CF30, 0x01CF46},
+ {0x01D165, 0x01D169},
+ {0x01D16D, 0x01D172},
+ {0x01D17B, 0x01D182},
+ {0x01D185, 0x01D18B},
+ {0x01D1AA, 0x01D1AD},
+ {0x01D242, 0x01D244},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D6C0},
+ {0x01D6C2, 0x01D6DA},
+ {0x01D6DC, 0x01D6FA},
+ {0x01D6FC, 0x01D714},
+ {0x01D716, 0x01D734},
+ {0x01D736, 0x01D74E},
+ {0x01D750, 0x01D76E},
+ {0x01D770, 0x01D788},
+ {0x01D78A, 0x01D7A8},
+ {0x01D7AA, 0x01D7C2},
+ {0x01D7C4, 0x01D7CB},
+ {0x01D7CE, 0x01D7FF},
+ {0x01DA00, 0x01DA36},
+ {0x01DA3B, 0x01DA6C},
+ {0x01DA75, 0x01DA75},
+ {0x01DA84, 0x01DA84},
+ {0x01DA9B, 0x01DA9F},
+ {0x01DAA1, 0x01DAAF},
+ {0x01DF00, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E000, 0x01E006},
+ {0x01E008, 0x01E018},
+ {0x01E01B, 0x01E021},
+ {0x01E023, 0x01E024},
+ {0x01E026, 0x01E02A},
+ {0x01E030, 0x01E06D},
+ {0x01E08F, 0x01E08F},
+ {0x01E100, 0x01E12C},
+ {0x01E130, 0x01E13D},
+ {0x01E140, 0x01E149},
+ {0x01E14E, 0x01E14E},
+ {0x01E290, 0x01E2AE},
+ {0x01E2C0, 0x01E2F9},
+ {0x01E4D0, 0x01E4F9},
+ {0x01E7E0, 0x01E7E6},
+ {0x01E7E8, 0x01E7EB},
+ {0x01E7ED, 0x01E7EE},
+ {0x01E7F0, 0x01E7FE},
+ {0x01E800, 0x01E8C4},
+ {0x01E8D0, 0x01E8D6},
+ {0x01E900, 0x01E94B},
+ {0x01E950, 0x01E959},
+ {0x01EE00, 0x01EE03},
+ {0x01EE05, 0x01EE1F},
+ {0x01EE21, 0x01EE22},
+ {0x01EE24, 0x01EE24},
+ {0x01EE27, 0x01EE27},
+ {0x01EE29, 0x01EE32},
+ {0x01EE34, 0x01EE37},
+ {0x01EE39, 0x01EE39},
+ {0x01EE3B, 0x01EE3B},
+ {0x01EE42, 0x01EE42},
+ {0x01EE47, 0x01EE47},
+ {0x01EE49, 0x01EE49},
+ {0x01EE4B, 0x01EE4B},
+ {0x01EE4D, 0x01EE4F},
+ {0x01EE51, 0x01EE52},
+ {0x01EE54, 0x01EE54},
+ {0x01EE57, 0x01EE57},
+ {0x01EE59, 0x01EE59},
+ {0x01EE5B, 0x01EE5B},
+ {0x01EE5D, 0x01EE5D},
+ {0x01EE5F, 0x01EE5F},
+ {0x01EE61, 0x01EE62},
+ {0x01EE64, 0x01EE64},
+ {0x01EE67, 0x01EE6A},
+ {0x01EE6C, 0x01EE72},
+ {0x01EE74, 0x01EE77},
+ {0x01EE79, 0x01EE7C},
+ {0x01EE7E, 0x01EE7E},
+ {0x01EE80, 0x01EE89},
+ {0x01EE8B, 0x01EE9B},
+ {0x01EEA1, 0x01EEA3},
+ {0x01EEA5, 0x01EEA9},
+ {0x01EEAB, 0x01EEBB},
+ {0x01FBF0, 0x01FBF9},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x02F800, 0x02FA1D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+ {0x0E0100, 0x0E01EF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_id_continue(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_id_start.c b/vendor/librune/lib/rtype/rune_has_prop_id_start.c
new file mode 100644
index 0000000..da8ee30
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_id_start.c
@@ -0,0 +1,690 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x000061, 0x00007A},
+ {0x0000AA, 0x0000AA},
+ {0x0000B5, 0x0000B5},
+ {0x0000BA, 0x0000BA},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000F6},
+ {0x0000F8, 0x0002C1},
+ {0x0002C6, 0x0002D1},
+ {0x0002E0, 0x0002E4},
+ {0x0002EC, 0x0002EC},
+ {0x0002EE, 0x0002EE},
+ {0x000370, 0x000374},
+ {0x000376, 0x000377},
+ {0x00037A, 0x00037D},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x0003F5},
+ {0x0003F7, 0x000481},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000559, 0x000559},
+ {0x000560, 0x000588},
+ {0x0005D0, 0x0005EA},
+ {0x0005EF, 0x0005F2},
+ {0x000620, 0x00064A},
+ {0x00066E, 0x00066F},
+ {0x000671, 0x0006D3},
+ {0x0006D5, 0x0006D5},
+ {0x0006E5, 0x0006E6},
+ {0x0006EE, 0x0006EF},
+ {0x0006FA, 0x0006FC},
+ {0x0006FF, 0x0006FF},
+ {0x000710, 0x000710},
+ {0x000712, 0x00072F},
+ {0x00074D, 0x0007A5},
+ {0x0007B1, 0x0007B1},
+ {0x0007CA, 0x0007EA},
+ {0x0007F4, 0x0007F5},
+ {0x0007FA, 0x0007FA},
+ {0x000800, 0x000815},
+ {0x00081A, 0x00081A},
+ {0x000824, 0x000824},
+ {0x000828, 0x000828},
+ {0x000840, 0x000858},
+ {0x000860, 0x00086A},
+ {0x000870, 0x000887},
+ {0x000889, 0x00088E},
+ {0x0008A0, 0x0008C9},
+ {0x000904, 0x000939},
+ {0x00093D, 0x00093D},
+ {0x000950, 0x000950},
+ {0x000958, 0x000961},
+ {0x000971, 0x000980},
+ {0x000985, 0x00098C},
+ {0x00098F, 0x000990},
+ {0x000993, 0x0009A8},
+ {0x0009AA, 0x0009B0},
+ {0x0009B2, 0x0009B2},
+ {0x0009B6, 0x0009B9},
+ {0x0009BD, 0x0009BD},
+ {0x0009CE, 0x0009CE},
+ {0x0009DC, 0x0009DD},
+ {0x0009DF, 0x0009E1},
+ {0x0009F0, 0x0009F1},
+ {0x0009FC, 0x0009FC},
+ {0x000A05, 0x000A0A},
+ {0x000A0F, 0x000A10},
+ {0x000A13, 0x000A28},
+ {0x000A2A, 0x000A30},
+ {0x000A32, 0x000A33},
+ {0x000A35, 0x000A36},
+ {0x000A38, 0x000A39},
+ {0x000A59, 0x000A5C},
+ {0x000A5E, 0x000A5E},
+ {0x000A72, 0x000A74},
+ {0x000A85, 0x000A8D},
+ {0x000A8F, 0x000A91},
+ {0x000A93, 0x000AA8},
+ {0x000AAA, 0x000AB0},
+ {0x000AB2, 0x000AB3},
+ {0x000AB5, 0x000AB9},
+ {0x000ABD, 0x000ABD},
+ {0x000AD0, 0x000AD0},
+ {0x000AE0, 0x000AE1},
+ {0x000AF9, 0x000AF9},
+ {0x000B05, 0x000B0C},
+ {0x000B0F, 0x000B10},
+ {0x000B13, 0x000B28},
+ {0x000B2A, 0x000B30},
+ {0x000B32, 0x000B33},
+ {0x000B35, 0x000B39},
+ {0x000B3D, 0x000B3D},
+ {0x000B5C, 0x000B5D},
+ {0x000B5F, 0x000B61},
+ {0x000B71, 0x000B71},
+ {0x000B83, 0x000B83},
+ {0x000B85, 0x000B8A},
+ {0x000B8E, 0x000B90},
+ {0x000B92, 0x000B95},
+ {0x000B99, 0x000B9A},
+ {0x000B9C, 0x000B9C},
+ {0x000B9E, 0x000B9F},
+ {0x000BA3, 0x000BA4},
+ {0x000BA8, 0x000BAA},
+ {0x000BAE, 0x000BB9},
+ {0x000BD0, 0x000BD0},
+ {0x000C05, 0x000C0C},
+ {0x000C0E, 0x000C10},
+ {0x000C12, 0x000C28},
+ {0x000C2A, 0x000C39},
+ {0x000C3D, 0x000C3D},
+ {0x000C58, 0x000C5A},
+ {0x000C5D, 0x000C5D},
+ {0x000C60, 0x000C61},
+ {0x000C80, 0x000C80},
+ {0x000C85, 0x000C8C},
+ {0x000C8E, 0x000C90},
+ {0x000C92, 0x000CA8},
+ {0x000CAA, 0x000CB3},
+ {0x000CB5, 0x000CB9},
+ {0x000CBD, 0x000CBD},
+ {0x000CDD, 0x000CDE},
+ {0x000CE0, 0x000CE1},
+ {0x000CF1, 0x000CF2},
+ {0x000D04, 0x000D0C},
+ {0x000D0E, 0x000D10},
+ {0x000D12, 0x000D3A},
+ {0x000D3D, 0x000D3D},
+ {0x000D4E, 0x000D4E},
+ {0x000D54, 0x000D56},
+ {0x000D5F, 0x000D61},
+ {0x000D7A, 0x000D7F},
+ {0x000D85, 0x000D96},
+ {0x000D9A, 0x000DB1},
+ {0x000DB3, 0x000DBB},
+ {0x000DBD, 0x000DBD},
+ {0x000DC0, 0x000DC6},
+ {0x000E01, 0x000E30},
+ {0x000E32, 0x000E33},
+ {0x000E40, 0x000E46},
+ {0x000E81, 0x000E82},
+ {0x000E84, 0x000E84},
+ {0x000E86, 0x000E8A},
+ {0x000E8C, 0x000EA3},
+ {0x000EA5, 0x000EA5},
+ {0x000EA7, 0x000EB0},
+ {0x000EB2, 0x000EB3},
+ {0x000EBD, 0x000EBD},
+ {0x000EC0, 0x000EC4},
+ {0x000EC6, 0x000EC6},
+ {0x000EDC, 0x000EDF},
+ {0x000F00, 0x000F00},
+ {0x000F40, 0x000F47},
+ {0x000F49, 0x000F6C},
+ {0x000F88, 0x000F8C},
+ {0x001000, 0x00102A},
+ {0x00103F, 0x00103F},
+ {0x001050, 0x001055},
+ {0x00105A, 0x00105D},
+ {0x001061, 0x001061},
+ {0x001065, 0x001066},
+ {0x00106E, 0x001070},
+ {0x001075, 0x001081},
+ {0x00108E, 0x00108E},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x0010FA},
+ {0x0010FC, 0x001248},
+ {0x00124A, 0x00124D},
+ {0x001250, 0x001256},
+ {0x001258, 0x001258},
+ {0x00125A, 0x00125D},
+ {0x001260, 0x001288},
+ {0x00128A, 0x00128D},
+ {0x001290, 0x0012B0},
+ {0x0012B2, 0x0012B5},
+ {0x0012B8, 0x0012BE},
+ {0x0012C0, 0x0012C0},
+ {0x0012C2, 0x0012C5},
+ {0x0012C8, 0x0012D6},
+ {0x0012D8, 0x001310},
+ {0x001312, 0x001315},
+ {0x001318, 0x00135A},
+ {0x001380, 0x00138F},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001401, 0x00166C},
+ {0x00166F, 0x00167F},
+ {0x001681, 0x00169A},
+ {0x0016A0, 0x0016EA},
+ {0x0016EE, 0x0016F8},
+ {0x001700, 0x001711},
+ {0x00171F, 0x001731},
+ {0x001740, 0x001751},
+ {0x001760, 0x00176C},
+ {0x00176E, 0x001770},
+ {0x001780, 0x0017B3},
+ {0x0017D7, 0x0017D7},
+ {0x0017DC, 0x0017DC},
+ {0x001820, 0x001878},
+ {0x001880, 0x0018A8},
+ {0x0018AA, 0x0018AA},
+ {0x0018B0, 0x0018F5},
+ {0x001900, 0x00191E},
+ {0x001950, 0x00196D},
+ {0x001970, 0x001974},
+ {0x001980, 0x0019AB},
+ {0x0019B0, 0x0019C9},
+ {0x001A00, 0x001A16},
+ {0x001A20, 0x001A54},
+ {0x001AA7, 0x001AA7},
+ {0x001B05, 0x001B33},
+ {0x001B45, 0x001B4C},
+ {0x001B83, 0x001BA0},
+ {0x001BAE, 0x001BAF},
+ {0x001BBA, 0x001BE5},
+ {0x001C00, 0x001C23},
+ {0x001C4D, 0x001C4F},
+ {0x001C5A, 0x001C7D},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001CE9, 0x001CEC},
+ {0x001CEE, 0x001CF3},
+ {0x001CF5, 0x001CF6},
+ {0x001CFA, 0x001CFA},
+ {0x001D00, 0x001DBF},
+ {0x001E00, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FE0, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFC},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210A, 0x002113},
+ {0x002115, 0x002115},
+ {0x002118, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002126, 0x002126},
+ {0x002128, 0x002128},
+ {0x00212A, 0x002139},
+ {0x00213C, 0x00213F},
+ {0x002145, 0x002149},
+ {0x00214E, 0x00214E},
+ {0x002160, 0x002188},
+ {0x002C00, 0x002CE4},
+ {0x002CEB, 0x002CEE},
+ {0x002CF2, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x002D30, 0x002D67},
+ {0x002D6F, 0x002D6F},
+ {0x002D80, 0x002D96},
+ {0x002DA0, 0x002DA6},
+ {0x002DA8, 0x002DAE},
+ {0x002DB0, 0x002DB6},
+ {0x002DB8, 0x002DBE},
+ {0x002DC0, 0x002DC6},
+ {0x002DC8, 0x002DCE},
+ {0x002DD0, 0x002DD6},
+ {0x002DD8, 0x002DDE},
+ {0x003005, 0x003007},
+ {0x003021, 0x003029},
+ {0x003031, 0x003035},
+ {0x003038, 0x00303C},
+ {0x003041, 0x003096},
+ {0x00309B, 0x00309F},
+ {0x0030A1, 0x0030FA},
+ {0x0030FC, 0x0030FF},
+ {0x003105, 0x00312F},
+ {0x003131, 0x00318E},
+ {0x0031A0, 0x0031BF},
+ {0x0031F0, 0x0031FF},
+ {0x003400, 0x004DBF},
+ {0x004E00, 0x00A48C},
+ {0x00A4D0, 0x00A4FD},
+ {0x00A500, 0x00A60C},
+ {0x00A610, 0x00A61F},
+ {0x00A62A, 0x00A62B},
+ {0x00A640, 0x00A66E},
+ {0x00A67F, 0x00A69D},
+ {0x00A6A0, 0x00A6EF},
+ {0x00A717, 0x00A71F},
+ {0x00A722, 0x00A788},
+ {0x00A78B, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D9},
+ {0x00A7F2, 0x00A801},
+ {0x00A803, 0x00A805},
+ {0x00A807, 0x00A80A},
+ {0x00A80C, 0x00A822},
+ {0x00A840, 0x00A873},
+ {0x00A882, 0x00A8B3},
+ {0x00A8F2, 0x00A8F7},
+ {0x00A8FB, 0x00A8FB},
+ {0x00A8FD, 0x00A8FE},
+ {0x00A90A, 0x00A925},
+ {0x00A930, 0x00A946},
+ {0x00A960, 0x00A97C},
+ {0x00A984, 0x00A9B2},
+ {0x00A9CF, 0x00A9CF},
+ {0x00A9E0, 0x00A9E4},
+ {0x00A9E6, 0x00A9EF},
+ {0x00A9FA, 0x00A9FE},
+ {0x00AA00, 0x00AA28},
+ {0x00AA40, 0x00AA42},
+ {0x00AA44, 0x00AA4B},
+ {0x00AA60, 0x00AA76},
+ {0x00AA7A, 0x00AA7A},
+ {0x00AA7E, 0x00AAAF},
+ {0x00AAB1, 0x00AAB1},
+ {0x00AAB5, 0x00AAB6},
+ {0x00AAB9, 0x00AABD},
+ {0x00AAC0, 0x00AAC0},
+ {0x00AAC2, 0x00AAC2},
+ {0x00AADB, 0x00AADD},
+ {0x00AAE0, 0x00AAEA},
+ {0x00AAF2, 0x00AAF4},
+ {0x00AB01, 0x00AB06},
+ {0x00AB09, 0x00AB0E},
+ {0x00AB11, 0x00AB16},
+ {0x00AB20, 0x00AB26},
+ {0x00AB28, 0x00AB2E},
+ {0x00AB30, 0x00AB5A},
+ {0x00AB5C, 0x00AB69},
+ {0x00AB70, 0x00ABE2},
+ {0x00AC00, 0x00D7A3},
+ {0x00D7B0, 0x00D7C6},
+ {0x00D7CB, 0x00D7FB},
+ {0x00F900, 0x00FA6D},
+ {0x00FA70, 0x00FAD9},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FB1D, 0x00FB1D},
+ {0x00FB1F, 0x00FB28},
+ {0x00FB2A, 0x00FB36},
+ {0x00FB38, 0x00FB3C},
+ {0x00FB3E, 0x00FB3E},
+ {0x00FB40, 0x00FB41},
+ {0x00FB43, 0x00FB44},
+ {0x00FB46, 0x00FBB1},
+ {0x00FBD3, 0x00FD3D},
+ {0x00FD50, 0x00FD8F},
+ {0x00FD92, 0x00FDC7},
+ {0x00FDF0, 0x00FDFB},
+ {0x00FE70, 0x00FE74},
+ {0x00FE76, 0x00FEFC},
+ {0x00FF21, 0x00FF3A},
+ {0x00FF41, 0x00FF5A},
+ {0x00FF66, 0x00FFBE},
+ {0x00FFC2, 0x00FFC7},
+ {0x00FFCA, 0x00FFCF},
+ {0x00FFD2, 0x00FFD7},
+ {0x00FFDA, 0x00FFDC},
+ {0x010000, 0x01000B},
+ {0x01000D, 0x010026},
+ {0x010028, 0x01003A},
+ {0x01003C, 0x01003D},
+ {0x01003F, 0x01004D},
+ {0x010050, 0x01005D},
+ {0x010080, 0x0100FA},
+ {0x010140, 0x010174},
+ {0x010280, 0x01029C},
+ {0x0102A0, 0x0102D0},
+ {0x010300, 0x01031F},
+ {0x01032D, 0x01034A},
+ {0x010350, 0x010375},
+ {0x010380, 0x01039D},
+ {0x0103A0, 0x0103C3},
+ {0x0103C8, 0x0103CF},
+ {0x0103D1, 0x0103D5},
+ {0x010400, 0x01049D},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010500, 0x010527},
+ {0x010530, 0x010563},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010600, 0x010736},
+ {0x010740, 0x010755},
+ {0x010760, 0x010767},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010800, 0x010805},
+ {0x010808, 0x010808},
+ {0x01080A, 0x010835},
+ {0x010837, 0x010838},
+ {0x01083C, 0x01083C},
+ {0x01083F, 0x010855},
+ {0x010860, 0x010876},
+ {0x010880, 0x01089E},
+ {0x0108E0, 0x0108F2},
+ {0x0108F4, 0x0108F5},
+ {0x010900, 0x010915},
+ {0x010920, 0x010939},
+ {0x010980, 0x0109B7},
+ {0x0109BE, 0x0109BF},
+ {0x010A00, 0x010A00},
+ {0x010A10, 0x010A13},
+ {0x010A15, 0x010A17},
+ {0x010A19, 0x010A35},
+ {0x010A60, 0x010A7C},
+ {0x010A80, 0x010A9C},
+ {0x010AC0, 0x010AC7},
+ {0x010AC9, 0x010AE4},
+ {0x010B00, 0x010B35},
+ {0x010B40, 0x010B55},
+ {0x010B60, 0x010B72},
+ {0x010B80, 0x010B91},
+ {0x010C00, 0x010C48},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x010D00, 0x010D23},
+ {0x010E80, 0x010EA9},
+ {0x010EB0, 0x010EB1},
+ {0x010F00, 0x010F1C},
+ {0x010F27, 0x010F27},
+ {0x010F30, 0x010F45},
+ {0x010F70, 0x010F81},
+ {0x010FB0, 0x010FC4},
+ {0x010FE0, 0x010FF6},
+ {0x011003, 0x011037},
+ {0x011071, 0x011072},
+ {0x011075, 0x011075},
+ {0x011083, 0x0110AF},
+ {0x0110D0, 0x0110E8},
+ {0x011103, 0x011126},
+ {0x011144, 0x011144},
+ {0x011147, 0x011147},
+ {0x011150, 0x011172},
+ {0x011176, 0x011176},
+ {0x011183, 0x0111B2},
+ {0x0111C1, 0x0111C4},
+ {0x0111DA, 0x0111DA},
+ {0x0111DC, 0x0111DC},
+ {0x011200, 0x011211},
+ {0x011213, 0x01122B},
+ {0x01123F, 0x011240},
+ {0x011280, 0x011286},
+ {0x011288, 0x011288},
+ {0x01128A, 0x01128D},
+ {0x01128F, 0x01129D},
+ {0x01129F, 0x0112A8},
+ {0x0112B0, 0x0112DE},
+ {0x011305, 0x01130C},
+ {0x01130F, 0x011310},
+ {0x011313, 0x011328},
+ {0x01132A, 0x011330},
+ {0x011332, 0x011333},
+ {0x011335, 0x011339},
+ {0x01133D, 0x01133D},
+ {0x011350, 0x011350},
+ {0x01135D, 0x011361},
+ {0x011400, 0x011434},
+ {0x011447, 0x01144A},
+ {0x01145F, 0x011461},
+ {0x011480, 0x0114AF},
+ {0x0114C4, 0x0114C5},
+ {0x0114C7, 0x0114C7},
+ {0x011580, 0x0115AE},
+ {0x0115D8, 0x0115DB},
+ {0x011600, 0x01162F},
+ {0x011644, 0x011644},
+ {0x011680, 0x0116AA},
+ {0x0116B8, 0x0116B8},
+ {0x011700, 0x01171A},
+ {0x011740, 0x011746},
+ {0x011800, 0x01182B},
+ {0x0118A0, 0x0118DF},
+ {0x0118FF, 0x011906},
+ {0x011909, 0x011909},
+ {0x01190C, 0x011913},
+ {0x011915, 0x011916},
+ {0x011918, 0x01192F},
+ {0x01193F, 0x01193F},
+ {0x011941, 0x011941},
+ {0x0119A0, 0x0119A7},
+ {0x0119AA, 0x0119D0},
+ {0x0119E1, 0x0119E1},
+ {0x0119E3, 0x0119E3},
+ {0x011A00, 0x011A00},
+ {0x011A0B, 0x011A32},
+ {0x011A3A, 0x011A3A},
+ {0x011A50, 0x011A50},
+ {0x011A5C, 0x011A89},
+ {0x011A9D, 0x011A9D},
+ {0x011AB0, 0x011AF8},
+ {0x011C00, 0x011C08},
+ {0x011C0A, 0x011C2E},
+ {0x011C40, 0x011C40},
+ {0x011C72, 0x011C8F},
+ {0x011D00, 0x011D06},
+ {0x011D08, 0x011D09},
+ {0x011D0B, 0x011D30},
+ {0x011D46, 0x011D46},
+ {0x011D60, 0x011D65},
+ {0x011D67, 0x011D68},
+ {0x011D6A, 0x011D89},
+ {0x011D98, 0x011D98},
+ {0x011EE0, 0x011EF2},
+ {0x011F02, 0x011F02},
+ {0x011F04, 0x011F10},
+ {0x011F12, 0x011F33},
+ {0x011FB0, 0x011FB0},
+ {0x012000, 0x012399},
+ {0x012400, 0x01246E},
+ {0x012480, 0x012543},
+ {0x012F90, 0x012FF0},
+ {0x013000, 0x01342F},
+ {0x013441, 0x013446},
+ {0x014400, 0x014646},
+ {0x016800, 0x016A38},
+ {0x016A40, 0x016A5E},
+ {0x016A70, 0x016ABE},
+ {0x016AD0, 0x016AED},
+ {0x016B00, 0x016B2F},
+ {0x016B40, 0x016B43},
+ {0x016B63, 0x016B77},
+ {0x016B7D, 0x016B8F},
+ {0x016E40, 0x016E7F},
+ {0x016F00, 0x016F4A},
+ {0x016F50, 0x016F50},
+ {0x016F93, 0x016F9F},
+ {0x016FE0, 0x016FE1},
+ {0x016FE3, 0x016FE3},
+ {0x017000, 0x0187F7},
+ {0x018800, 0x018CD5},
+ {0x018D00, 0x018D08},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01B000, 0x01B122},
+ {0x01B132, 0x01B132},
+ {0x01B150, 0x01B152},
+ {0x01B155, 0x01B155},
+ {0x01B164, 0x01B167},
+ {0x01B170, 0x01B2FB},
+ {0x01BC00, 0x01BC6A},
+ {0x01BC70, 0x01BC7C},
+ {0x01BC80, 0x01BC88},
+ {0x01BC90, 0x01BC99},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D6C0},
+ {0x01D6C2, 0x01D6DA},
+ {0x01D6DC, 0x01D6FA},
+ {0x01D6FC, 0x01D714},
+ {0x01D716, 0x01D734},
+ {0x01D736, 0x01D74E},
+ {0x01D750, 0x01D76E},
+ {0x01D770, 0x01D788},
+ {0x01D78A, 0x01D7A8},
+ {0x01D7AA, 0x01D7C2},
+ {0x01D7C4, 0x01D7CB},
+ {0x01DF00, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E030, 0x01E06D},
+ {0x01E100, 0x01E12C},
+ {0x01E137, 0x01E13D},
+ {0x01E14E, 0x01E14E},
+ {0x01E290, 0x01E2AD},
+ {0x01E2C0, 0x01E2EB},
+ {0x01E4D0, 0x01E4EB},
+ {0x01E7E0, 0x01E7E6},
+ {0x01E7E8, 0x01E7EB},
+ {0x01E7ED, 0x01E7EE},
+ {0x01E7F0, 0x01E7FE},
+ {0x01E800, 0x01E8C4},
+ {0x01E900, 0x01E943},
+ {0x01E94B, 0x01E94B},
+ {0x01EE00, 0x01EE03},
+ {0x01EE05, 0x01EE1F},
+ {0x01EE21, 0x01EE22},
+ {0x01EE24, 0x01EE24},
+ {0x01EE27, 0x01EE27},
+ {0x01EE29, 0x01EE32},
+ {0x01EE34, 0x01EE37},
+ {0x01EE39, 0x01EE39},
+ {0x01EE3B, 0x01EE3B},
+ {0x01EE42, 0x01EE42},
+ {0x01EE47, 0x01EE47},
+ {0x01EE49, 0x01EE49},
+ {0x01EE4B, 0x01EE4B},
+ {0x01EE4D, 0x01EE4F},
+ {0x01EE51, 0x01EE52},
+ {0x01EE54, 0x01EE54},
+ {0x01EE57, 0x01EE57},
+ {0x01EE59, 0x01EE59},
+ {0x01EE5B, 0x01EE5B},
+ {0x01EE5D, 0x01EE5D},
+ {0x01EE5F, 0x01EE5F},
+ {0x01EE61, 0x01EE62},
+ {0x01EE64, 0x01EE64},
+ {0x01EE67, 0x01EE6A},
+ {0x01EE6C, 0x01EE72},
+ {0x01EE74, 0x01EE77},
+ {0x01EE79, 0x01EE7C},
+ {0x01EE7E, 0x01EE7E},
+ {0x01EE80, 0x01EE89},
+ {0x01EE8B, 0x01EE9B},
+ {0x01EEA1, 0x01EEA3},
+ {0x01EEA5, 0x01EEA9},
+ {0x01EEAB, 0x01EEBB},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x02F800, 0x02FA1D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_id_start(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_ideographic.c b/vendor/librune/lib/rtype/rune_has_prop_ideographic.c
new file mode 100644
index 0000000..ddc7bda
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_ideographic.c
@@ -0,0 +1,51 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x003006, 0x003007},
+ {0x003021, 0x003029},
+ {0x003038, 0x00303A},
+ {0x003400, 0x004DBF},
+ {0x004E00, 0x009FFF},
+ {0x00F900, 0x00FA6D},
+ {0x00FA70, 0x00FAD9},
+ {0x016FE4, 0x016FE4},
+ {0x017000, 0x0187F7},
+ {0x018800, 0x018CD5},
+ {0x018D00, 0x018D08},
+ {0x01B170, 0x01B2FB},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x02F800, 0x02FA1D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_ideographic(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_ids_binary_operator.c b/vendor/librune/lib/rtype/rune_has_prop_ids_binary_operator.c
new file mode 100644
index 0000000..b558b1b
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_ids_binary_operator.c
@@ -0,0 +1,33 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x002FF0, 0x002FF1},
+ {0x002FF4, 0x002FFD},
+ {0x0031EF, 0x0031EF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_ids_binary_operator(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_ids_trinary_operator.c b/vendor/librune/lib/rtype/rune_has_prop_ids_trinary_operator.c
new file mode 100644
index 0000000..f9dd547
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_ids_trinary_operator.c
@@ -0,0 +1,31 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x002FF2, 0x002FF3},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_ids_trinary_operator(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_ids_unary_operator.c b/vendor/librune/lib/rtype/rune_has_prop_ids_unary_operator.c
new file mode 100644
index 0000000..59a4d3d
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_ids_unary_operator.c
@@ -0,0 +1,31 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x002FFE, 0x002FFF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_ids_unary_operator(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_indic_conjunct_break.c b/vendor/librune/lib/rtype/rune_has_prop_indic_conjunct_break.c
new file mode 100644
index 0000000..a1af4a6
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_indic_conjunct_break.c
@@ -0,0 +1,230 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000300, 0x00034E},
+ {0x000350, 0x00036F},
+ {0x000483, 0x000487},
+ {0x000591, 0x0005BD},
+ {0x0005BF, 0x0005BF},
+ {0x0005C1, 0x0005C2},
+ {0x0005C4, 0x0005C5},
+ {0x0005C7, 0x0005C7},
+ {0x000610, 0x00061A},
+ {0x00064B, 0x00065F},
+ {0x000670, 0x000670},
+ {0x0006D6, 0x0006DC},
+ {0x0006DF, 0x0006E4},
+ {0x0006E7, 0x0006E8},
+ {0x0006EA, 0x0006ED},
+ {0x000711, 0x000711},
+ {0x000730, 0x00074A},
+ {0x0007EB, 0x0007F3},
+ {0x0007FD, 0x0007FD},
+ {0x000816, 0x000819},
+ {0x00081B, 0x000823},
+ {0x000825, 0x000827},
+ {0x000829, 0x00082D},
+ {0x000859, 0x00085B},
+ {0x000898, 0x00089F},
+ {0x0008CA, 0x0008E1},
+ {0x0008E3, 0x0008FF},
+ {0x000915, 0x000939},
+ {0x00093C, 0x00093C},
+ {0x00094D, 0x00094D},
+ {0x000951, 0x000954},
+ {0x000958, 0x00095F},
+ {0x000978, 0x00097F},
+ {0x000995, 0x0009A8},
+ {0x0009AA, 0x0009B0},
+ {0x0009B2, 0x0009B2},
+ {0x0009B6, 0x0009B9},
+ {0x0009BC, 0x0009BC},
+ {0x0009CD, 0x0009CD},
+ {0x0009DC, 0x0009DD},
+ {0x0009DF, 0x0009DF},
+ {0x0009F0, 0x0009F1},
+ {0x0009FE, 0x0009FE},
+ {0x000A3C, 0x000A3C},
+ {0x000A95, 0x000AA8},
+ {0x000AAA, 0x000AB0},
+ {0x000AB2, 0x000AB3},
+ {0x000AB5, 0x000AB9},
+ {0x000ABC, 0x000ABC},
+ {0x000ACD, 0x000ACD},
+ {0x000AF9, 0x000AF9},
+ {0x000B15, 0x000B28},
+ {0x000B2A, 0x000B30},
+ {0x000B32, 0x000B33},
+ {0x000B35, 0x000B39},
+ {0x000B3C, 0x000B3C},
+ {0x000B4D, 0x000B4D},
+ {0x000B5C, 0x000B5D},
+ {0x000B5F, 0x000B5F},
+ {0x000B71, 0x000B71},
+ {0x000C15, 0x000C28},
+ {0x000C2A, 0x000C39},
+ {0x000C3C, 0x000C3C},
+ {0x000C4D, 0x000C4D},
+ {0x000C55, 0x000C56},
+ {0x000C58, 0x000C5A},
+ {0x000CBC, 0x000CBC},
+ {0x000D15, 0x000D3C},
+ {0x000D4D, 0x000D4D},
+ {0x000E38, 0x000E3A},
+ {0x000E48, 0x000E4B},
+ {0x000EB8, 0x000EBA},
+ {0x000EC8, 0x000ECB},
+ {0x000F18, 0x000F19},
+ {0x000F35, 0x000F35},
+ {0x000F37, 0x000F37},
+ {0x000F39, 0x000F39},
+ {0x000F71, 0x000F72},
+ {0x000F74, 0x000F74},
+ {0x000F7A, 0x000F7D},
+ {0x000F80, 0x000F80},
+ {0x000F82, 0x000F84},
+ {0x000F86, 0x000F87},
+ {0x000FC6, 0x000FC6},
+ {0x001037, 0x001037},
+ {0x001039, 0x00103A},
+ {0x00108D, 0x00108D},
+ {0x00135D, 0x00135F},
+ {0x001714, 0x001714},
+ {0x0017D2, 0x0017D2},
+ {0x0017DD, 0x0017DD},
+ {0x0018A9, 0x0018A9},
+ {0x001939, 0x00193B},
+ {0x001A17, 0x001A18},
+ {0x001A60, 0x001A60},
+ {0x001A75, 0x001A7C},
+ {0x001A7F, 0x001A7F},
+ {0x001AB0, 0x001ABD},
+ {0x001ABF, 0x001ACE},
+ {0x001B34, 0x001B34},
+ {0x001B6B, 0x001B73},
+ {0x001BAB, 0x001BAB},
+ {0x001BE6, 0x001BE6},
+ {0x001C37, 0x001C37},
+ {0x001CD0, 0x001CD2},
+ {0x001CD4, 0x001CE0},
+ {0x001CE2, 0x001CE8},
+ {0x001CED, 0x001CED},
+ {0x001CF4, 0x001CF4},
+ {0x001CF8, 0x001CF9},
+ {0x001DC0, 0x001DFF},
+ {0x00200D, 0x00200D},
+ {0x0020D0, 0x0020DC},
+ {0x0020E1, 0x0020E1},
+ {0x0020E5, 0x0020F0},
+ {0x002CEF, 0x002CF1},
+ {0x002D7F, 0x002D7F},
+ {0x002DE0, 0x002DFF},
+ {0x00302A, 0x00302F},
+ {0x003099, 0x00309A},
+ {0x00A66F, 0x00A66F},
+ {0x00A674, 0x00A67D},
+ {0x00A69E, 0x00A69F},
+ {0x00A6F0, 0x00A6F1},
+ {0x00A82C, 0x00A82C},
+ {0x00A8E0, 0x00A8F1},
+ {0x00A92B, 0x00A92D},
+ {0x00A9B3, 0x00A9B3},
+ {0x00AAB0, 0x00AAB0},
+ {0x00AAB2, 0x00AAB4},
+ {0x00AAB7, 0x00AAB8},
+ {0x00AABE, 0x00AABF},
+ {0x00AAC1, 0x00AAC1},
+ {0x00AAF6, 0x00AAF6},
+ {0x00ABED, 0x00ABED},
+ {0x00FB1E, 0x00FB1E},
+ {0x00FE20, 0x00FE2F},
+ {0x0101FD, 0x0101FD},
+ {0x0102E0, 0x0102E0},
+ {0x010376, 0x01037A},
+ {0x010A0D, 0x010A0D},
+ {0x010A0F, 0x010A0F},
+ {0x010A38, 0x010A3A},
+ {0x010A3F, 0x010A3F},
+ {0x010AE5, 0x010AE6},
+ {0x010D24, 0x010D27},
+ {0x010EAB, 0x010EAC},
+ {0x010EFD, 0x010EFF},
+ {0x010F46, 0x010F50},
+ {0x010F82, 0x010F85},
+ {0x011070, 0x011070},
+ {0x01107F, 0x01107F},
+ {0x0110BA, 0x0110BA},
+ {0x011100, 0x011102},
+ {0x011133, 0x011134},
+ {0x011173, 0x011173},
+ {0x0111CA, 0x0111CA},
+ {0x011236, 0x011236},
+ {0x0112E9, 0x0112EA},
+ {0x01133B, 0x01133C},
+ {0x011366, 0x01136C},
+ {0x011370, 0x011374},
+ {0x011446, 0x011446},
+ {0x01145E, 0x01145E},
+ {0x0114C3, 0x0114C3},
+ {0x0115C0, 0x0115C0},
+ {0x0116B7, 0x0116B7},
+ {0x01172B, 0x01172B},
+ {0x01183A, 0x01183A},
+ {0x01193E, 0x01193E},
+ {0x011943, 0x011943},
+ {0x011A34, 0x011A34},
+ {0x011A47, 0x011A47},
+ {0x011A99, 0x011A99},
+ {0x011D42, 0x011D42},
+ {0x011D44, 0x011D45},
+ {0x011D97, 0x011D97},
+ {0x011F42, 0x011F42},
+ {0x016AF0, 0x016AF4},
+ {0x016B30, 0x016B36},
+ {0x01BC9E, 0x01BC9E},
+ {0x01D165, 0x01D165},
+ {0x01D167, 0x01D169},
+ {0x01D16E, 0x01D172},
+ {0x01D17B, 0x01D182},
+ {0x01D185, 0x01D18B},
+ {0x01D1AA, 0x01D1AD},
+ {0x01D242, 0x01D244},
+ {0x01E000, 0x01E006},
+ {0x01E008, 0x01E018},
+ {0x01E01B, 0x01E021},
+ {0x01E023, 0x01E024},
+ {0x01E026, 0x01E02A},
+ {0x01E08F, 0x01E08F},
+ {0x01E130, 0x01E136},
+ {0x01E2AE, 0x01E2AE},
+ {0x01E2EC, 0x01E2EF},
+ {0x01E4EC, 0x01E4EF},
+ {0x01E8D0, 0x01E8D6},
+ {0x01E944, 0x01E94A},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_indic_conjunct_break(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_join_control.c b/vendor/librune/lib/rtype/rune_has_prop_join_control.c
new file mode 100644
index 0000000..a26fc37
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_join_control.c
@@ -0,0 +1,31 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x00200C, 0x00200D},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_join_control(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_logical_order_exception.c b/vendor/librune/lib/rtype/rune_has_prop_logical_order_exception.c
new file mode 100644
index 0000000..6af7d9d
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_logical_order_exception.c
@@ -0,0 +1,37 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000E40, 0x000E44},
+ {0x000EC0, 0x000EC4},
+ {0x0019B5, 0x0019B7},
+ {0x0019BA, 0x0019BA},
+ {0x00AAB5, 0x00AAB6},
+ {0x00AAB9, 0x00AAB9},
+ {0x00AABB, 0x00AABC},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_logical_order_exception(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_lowercase.c b/vendor/librune/lib/rtype/rune_has_prop_lowercase.c
new file mode 100644
index 0000000..e6308cd
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_lowercase.c
@@ -0,0 +1,701 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFF80000000042004000000000007FFFFFE000000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000061, 0x00007A},
+ {0x0000AA, 0x0000AA},
+ {0x0000B5, 0x0000B5},
+ {0x0000BA, 0x0000BA},
+ {0x0000DF, 0x0000F6},
+ {0x0000F8, 0x0000FF},
+ {0x000101, 0x000101},
+ {0x000103, 0x000103},
+ {0x000105, 0x000105},
+ {0x000107, 0x000107},
+ {0x000109, 0x000109},
+ {0x00010B, 0x00010B},
+ {0x00010D, 0x00010D},
+ {0x00010F, 0x00010F},
+ {0x000111, 0x000111},
+ {0x000113, 0x000113},
+ {0x000115, 0x000115},
+ {0x000117, 0x000117},
+ {0x000119, 0x000119},
+ {0x00011B, 0x00011B},
+ {0x00011D, 0x00011D},
+ {0x00011F, 0x00011F},
+ {0x000121, 0x000121},
+ {0x000123, 0x000123},
+ {0x000125, 0x000125},
+ {0x000127, 0x000127},
+ {0x000129, 0x000129},
+ {0x00012B, 0x00012B},
+ {0x00012D, 0x00012D},
+ {0x00012F, 0x00012F},
+ {0x000131, 0x000131},
+ {0x000133, 0x000133},
+ {0x000135, 0x000135},
+ {0x000137, 0x000138},
+ {0x00013A, 0x00013A},
+ {0x00013C, 0x00013C},
+ {0x00013E, 0x00013E},
+ {0x000140, 0x000140},
+ {0x000142, 0x000142},
+ {0x000144, 0x000144},
+ {0x000146, 0x000146},
+ {0x000148, 0x000149},
+ {0x00014B, 0x00014B},
+ {0x00014D, 0x00014D},
+ {0x00014F, 0x00014F},
+ {0x000151, 0x000151},
+ {0x000153, 0x000153},
+ {0x000155, 0x000155},
+ {0x000157, 0x000157},
+ {0x000159, 0x000159},
+ {0x00015B, 0x00015B},
+ {0x00015D, 0x00015D},
+ {0x00015F, 0x00015F},
+ {0x000161, 0x000161},
+ {0x000163, 0x000163},
+ {0x000165, 0x000165},
+ {0x000167, 0x000167},
+ {0x000169, 0x000169},
+ {0x00016B, 0x00016B},
+ {0x00016D, 0x00016D},
+ {0x00016F, 0x00016F},
+ {0x000171, 0x000171},
+ {0x000173, 0x000173},
+ {0x000175, 0x000175},
+ {0x000177, 0x000177},
+ {0x00017A, 0x00017A},
+ {0x00017C, 0x00017C},
+ {0x00017E, 0x000180},
+ {0x000183, 0x000183},
+ {0x000185, 0x000185},
+ {0x000188, 0x000188},
+ {0x00018C, 0x00018D},
+ {0x000192, 0x000192},
+ {0x000195, 0x000195},
+ {0x000199, 0x00019B},
+ {0x00019E, 0x00019E},
+ {0x0001A1, 0x0001A1},
+ {0x0001A3, 0x0001A3},
+ {0x0001A5, 0x0001A5},
+ {0x0001A8, 0x0001A8},
+ {0x0001AA, 0x0001AB},
+ {0x0001AD, 0x0001AD},
+ {0x0001B0, 0x0001B0},
+ {0x0001B4, 0x0001B4},
+ {0x0001B6, 0x0001B6},
+ {0x0001B9, 0x0001BA},
+ {0x0001BD, 0x0001BF},
+ {0x0001C6, 0x0001C6},
+ {0x0001C9, 0x0001C9},
+ {0x0001CC, 0x0001CC},
+ {0x0001CE, 0x0001CE},
+ {0x0001D0, 0x0001D0},
+ {0x0001D2, 0x0001D2},
+ {0x0001D4, 0x0001D4},
+ {0x0001D6, 0x0001D6},
+ {0x0001D8, 0x0001D8},
+ {0x0001DA, 0x0001DA},
+ {0x0001DC, 0x0001DD},
+ {0x0001DF, 0x0001DF},
+ {0x0001E1, 0x0001E1},
+ {0x0001E3, 0x0001E3},
+ {0x0001E5, 0x0001E5},
+ {0x0001E7, 0x0001E7},
+ {0x0001E9, 0x0001E9},
+ {0x0001EB, 0x0001EB},
+ {0x0001ED, 0x0001ED},
+ {0x0001EF, 0x0001F0},
+ {0x0001F3, 0x0001F3},
+ {0x0001F5, 0x0001F5},
+ {0x0001F9, 0x0001F9},
+ {0x0001FB, 0x0001FB},
+ {0x0001FD, 0x0001FD},
+ {0x0001FF, 0x0001FF},
+ {0x000201, 0x000201},
+ {0x000203, 0x000203},
+ {0x000205, 0x000205},
+ {0x000207, 0x000207},
+ {0x000209, 0x000209},
+ {0x00020B, 0x00020B},
+ {0x00020D, 0x00020D},
+ {0x00020F, 0x00020F},
+ {0x000211, 0x000211},
+ {0x000213, 0x000213},
+ {0x000215, 0x000215},
+ {0x000217, 0x000217},
+ {0x000219, 0x000219},
+ {0x00021B, 0x00021B},
+ {0x00021D, 0x00021D},
+ {0x00021F, 0x00021F},
+ {0x000221, 0x000221},
+ {0x000223, 0x000223},
+ {0x000225, 0x000225},
+ {0x000227, 0x000227},
+ {0x000229, 0x000229},
+ {0x00022B, 0x00022B},
+ {0x00022D, 0x00022D},
+ {0x00022F, 0x00022F},
+ {0x000231, 0x000231},
+ {0x000233, 0x000239},
+ {0x00023C, 0x00023C},
+ {0x00023F, 0x000240},
+ {0x000242, 0x000242},
+ {0x000247, 0x000247},
+ {0x000249, 0x000249},
+ {0x00024B, 0x00024B},
+ {0x00024D, 0x00024D},
+ {0x00024F, 0x000293},
+ {0x000295, 0x0002B8},
+ {0x0002C0, 0x0002C1},
+ {0x0002E0, 0x0002E4},
+ {0x000345, 0x000345},
+ {0x000371, 0x000371},
+ {0x000373, 0x000373},
+ {0x000377, 0x000377},
+ {0x00037A, 0x00037D},
+ {0x000390, 0x000390},
+ {0x0003AC, 0x0003CE},
+ {0x0003D0, 0x0003D1},
+ {0x0003D5, 0x0003D7},
+ {0x0003D9, 0x0003D9},
+ {0x0003DB, 0x0003DB},
+ {0x0003DD, 0x0003DD},
+ {0x0003DF, 0x0003DF},
+ {0x0003E1, 0x0003E1},
+ {0x0003E3, 0x0003E3},
+ {0x0003E5, 0x0003E5},
+ {0x0003E7, 0x0003E7},
+ {0x0003E9, 0x0003E9},
+ {0x0003EB, 0x0003EB},
+ {0x0003ED, 0x0003ED},
+ {0x0003EF, 0x0003F3},
+ {0x0003F5, 0x0003F5},
+ {0x0003F8, 0x0003F8},
+ {0x0003FB, 0x0003FC},
+ {0x000430, 0x00045F},
+ {0x000461, 0x000461},
+ {0x000463, 0x000463},
+ {0x000465, 0x000465},
+ {0x000467, 0x000467},
+ {0x000469, 0x000469},
+ {0x00046B, 0x00046B},
+ {0x00046D, 0x00046D},
+ {0x00046F, 0x00046F},
+ {0x000471, 0x000471},
+ {0x000473, 0x000473},
+ {0x000475, 0x000475},
+ {0x000477, 0x000477},
+ {0x000479, 0x000479},
+ {0x00047B, 0x00047B},
+ {0x00047D, 0x00047D},
+ {0x00047F, 0x00047F},
+ {0x000481, 0x000481},
+ {0x00048B, 0x00048B},
+ {0x00048D, 0x00048D},
+ {0x00048F, 0x00048F},
+ {0x000491, 0x000491},
+ {0x000493, 0x000493},
+ {0x000495, 0x000495},
+ {0x000497, 0x000497},
+ {0x000499, 0x000499},
+ {0x00049B, 0x00049B},
+ {0x00049D, 0x00049D},
+ {0x00049F, 0x00049F},
+ {0x0004A1, 0x0004A1},
+ {0x0004A3, 0x0004A3},
+ {0x0004A5, 0x0004A5},
+ {0x0004A7, 0x0004A7},
+ {0x0004A9, 0x0004A9},
+ {0x0004AB, 0x0004AB},
+ {0x0004AD, 0x0004AD},
+ {0x0004AF, 0x0004AF},
+ {0x0004B1, 0x0004B1},
+ {0x0004B3, 0x0004B3},
+ {0x0004B5, 0x0004B5},
+ {0x0004B7, 0x0004B7},
+ {0x0004B9, 0x0004B9},
+ {0x0004BB, 0x0004BB},
+ {0x0004BD, 0x0004BD},
+ {0x0004BF, 0x0004BF},
+ {0x0004C2, 0x0004C2},
+ {0x0004C4, 0x0004C4},
+ {0x0004C6, 0x0004C6},
+ {0x0004C8, 0x0004C8},
+ {0x0004CA, 0x0004CA},
+ {0x0004CC, 0x0004CC},
+ {0x0004CE, 0x0004CF},
+ {0x0004D1, 0x0004D1},
+ {0x0004D3, 0x0004D3},
+ {0x0004D5, 0x0004D5},
+ {0x0004D7, 0x0004D7},
+ {0x0004D9, 0x0004D9},
+ {0x0004DB, 0x0004DB},
+ {0x0004DD, 0x0004DD},
+ {0x0004DF, 0x0004DF},
+ {0x0004E1, 0x0004E1},
+ {0x0004E3, 0x0004E3},
+ {0x0004E5, 0x0004E5},
+ {0x0004E7, 0x0004E7},
+ {0x0004E9, 0x0004E9},
+ {0x0004EB, 0x0004EB},
+ {0x0004ED, 0x0004ED},
+ {0x0004EF, 0x0004EF},
+ {0x0004F1, 0x0004F1},
+ {0x0004F3, 0x0004F3},
+ {0x0004F5, 0x0004F5},
+ {0x0004F7, 0x0004F7},
+ {0x0004F9, 0x0004F9},
+ {0x0004FB, 0x0004FB},
+ {0x0004FD, 0x0004FD},
+ {0x0004FF, 0x0004FF},
+ {0x000501, 0x000501},
+ {0x000503, 0x000503},
+ {0x000505, 0x000505},
+ {0x000507, 0x000507},
+ {0x000509, 0x000509},
+ {0x00050B, 0x00050B},
+ {0x00050D, 0x00050D},
+ {0x00050F, 0x00050F},
+ {0x000511, 0x000511},
+ {0x000513, 0x000513},
+ {0x000515, 0x000515},
+ {0x000517, 0x000517},
+ {0x000519, 0x000519},
+ {0x00051B, 0x00051B},
+ {0x00051D, 0x00051D},
+ {0x00051F, 0x00051F},
+ {0x000521, 0x000521},
+ {0x000523, 0x000523},
+ {0x000525, 0x000525},
+ {0x000527, 0x000527},
+ {0x000529, 0x000529},
+ {0x00052B, 0x00052B},
+ {0x00052D, 0x00052D},
+ {0x00052F, 0x00052F},
+ {0x000560, 0x000588},
+ {0x0010D0, 0x0010FA},
+ {0x0010FC, 0x0010FF},
+ {0x0013F8, 0x0013FD},
+ {0x001C80, 0x001C88},
+ {0x001D00, 0x001DBF},
+ {0x001E01, 0x001E01},
+ {0x001E03, 0x001E03},
+ {0x001E05, 0x001E05},
+ {0x001E07, 0x001E07},
+ {0x001E09, 0x001E09},
+ {0x001E0B, 0x001E0B},
+ {0x001E0D, 0x001E0D},
+ {0x001E0F, 0x001E0F},
+ {0x001E11, 0x001E11},
+ {0x001E13, 0x001E13},
+ {0x001E15, 0x001E15},
+ {0x001E17, 0x001E17},
+ {0x001E19, 0x001E19},
+ {0x001E1B, 0x001E1B},
+ {0x001E1D, 0x001E1D},
+ {0x001E1F, 0x001E1F},
+ {0x001E21, 0x001E21},
+ {0x001E23, 0x001E23},
+ {0x001E25, 0x001E25},
+ {0x001E27, 0x001E27},
+ {0x001E29, 0x001E29},
+ {0x001E2B, 0x001E2B},
+ {0x001E2D, 0x001E2D},
+ {0x001E2F, 0x001E2F},
+ {0x001E31, 0x001E31},
+ {0x001E33, 0x001E33},
+ {0x001E35, 0x001E35},
+ {0x001E37, 0x001E37},
+ {0x001E39, 0x001E39},
+ {0x001E3B, 0x001E3B},
+ {0x001E3D, 0x001E3D},
+ {0x001E3F, 0x001E3F},
+ {0x001E41, 0x001E41},
+ {0x001E43, 0x001E43},
+ {0x001E45, 0x001E45},
+ {0x001E47, 0x001E47},
+ {0x001E49, 0x001E49},
+ {0x001E4B, 0x001E4B},
+ {0x001E4D, 0x001E4D},
+ {0x001E4F, 0x001E4F},
+ {0x001E51, 0x001E51},
+ {0x001E53, 0x001E53},
+ {0x001E55, 0x001E55},
+ {0x001E57, 0x001E57},
+ {0x001E59, 0x001E59},
+ {0x001E5B, 0x001E5B},
+ {0x001E5D, 0x001E5D},
+ {0x001E5F, 0x001E5F},
+ {0x001E61, 0x001E61},
+ {0x001E63, 0x001E63},
+ {0x001E65, 0x001E65},
+ {0x001E67, 0x001E67},
+ {0x001E69, 0x001E69},
+ {0x001E6B, 0x001E6B},
+ {0x001E6D, 0x001E6D},
+ {0x001E6F, 0x001E6F},
+ {0x001E71, 0x001E71},
+ {0x001E73, 0x001E73},
+ {0x001E75, 0x001E75},
+ {0x001E77, 0x001E77},
+ {0x001E79, 0x001E79},
+ {0x001E7B, 0x001E7B},
+ {0x001E7D, 0x001E7D},
+ {0x001E7F, 0x001E7F},
+ {0x001E81, 0x001E81},
+ {0x001E83, 0x001E83},
+ {0x001E85, 0x001E85},
+ {0x001E87, 0x001E87},
+ {0x001E89, 0x001E89},
+ {0x001E8B, 0x001E8B},
+ {0x001E8D, 0x001E8D},
+ {0x001E8F, 0x001E8F},
+ {0x001E91, 0x001E91},
+ {0x001E93, 0x001E93},
+ {0x001E95, 0x001E9D},
+ {0x001E9F, 0x001E9F},
+ {0x001EA1, 0x001EA1},
+ {0x001EA3, 0x001EA3},
+ {0x001EA5, 0x001EA5},
+ {0x001EA7, 0x001EA7},
+ {0x001EA9, 0x001EA9},
+ {0x001EAB, 0x001EAB},
+ {0x001EAD, 0x001EAD},
+ {0x001EAF, 0x001EAF},
+ {0x001EB1, 0x001EB1},
+ {0x001EB3, 0x001EB3},
+ {0x001EB5, 0x001EB5},
+ {0x001EB7, 0x001EB7},
+ {0x001EB9, 0x001EB9},
+ {0x001EBB, 0x001EBB},
+ {0x001EBD, 0x001EBD},
+ {0x001EBF, 0x001EBF},
+ {0x001EC1, 0x001EC1},
+ {0x001EC3, 0x001EC3},
+ {0x001EC5, 0x001EC5},
+ {0x001EC7, 0x001EC7},
+ {0x001EC9, 0x001EC9},
+ {0x001ECB, 0x001ECB},
+ {0x001ECD, 0x001ECD},
+ {0x001ECF, 0x001ECF},
+ {0x001ED1, 0x001ED1},
+ {0x001ED3, 0x001ED3},
+ {0x001ED5, 0x001ED5},
+ {0x001ED7, 0x001ED7},
+ {0x001ED9, 0x001ED9},
+ {0x001EDB, 0x001EDB},
+ {0x001EDD, 0x001EDD},
+ {0x001EDF, 0x001EDF},
+ {0x001EE1, 0x001EE1},
+ {0x001EE3, 0x001EE3},
+ {0x001EE5, 0x001EE5},
+ {0x001EE7, 0x001EE7},
+ {0x001EE9, 0x001EE9},
+ {0x001EEB, 0x001EEB},
+ {0x001EED, 0x001EED},
+ {0x001EEF, 0x001EEF},
+ {0x001EF1, 0x001EF1},
+ {0x001EF3, 0x001EF3},
+ {0x001EF5, 0x001EF5},
+ {0x001EF7, 0x001EF7},
+ {0x001EF9, 0x001EF9},
+ {0x001EFB, 0x001EFB},
+ {0x001EFD, 0x001EFD},
+ {0x001EFF, 0x001F07},
+ {0x001F10, 0x001F15},
+ {0x001F20, 0x001F27},
+ {0x001F30, 0x001F37},
+ {0x001F40, 0x001F45},
+ {0x001F50, 0x001F57},
+ {0x001F60, 0x001F67},
+ {0x001F70, 0x001F7D},
+ {0x001F80, 0x001F87},
+ {0x001F90, 0x001F97},
+ {0x001FA0, 0x001FA7},
+ {0x001FB0, 0x001FB4},
+ {0x001FB6, 0x001FB7},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FC7},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FD7},
+ {0x001FE0, 0x001FE7},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FF7},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x00210A, 0x00210A},
+ {0x00210E, 0x00210F},
+ {0x002113, 0x002113},
+ {0x00212F, 0x00212F},
+ {0x002134, 0x002134},
+ {0x002139, 0x002139},
+ {0x00213C, 0x00213D},
+ {0x002146, 0x002149},
+ {0x00214E, 0x00214E},
+ {0x002170, 0x00217F},
+ {0x002184, 0x002184},
+ {0x0024D0, 0x0024E9},
+ {0x002C30, 0x002C5F},
+ {0x002C61, 0x002C61},
+ {0x002C65, 0x002C66},
+ {0x002C68, 0x002C68},
+ {0x002C6A, 0x002C6A},
+ {0x002C6C, 0x002C6C},
+ {0x002C71, 0x002C71},
+ {0x002C73, 0x002C74},
+ {0x002C76, 0x002C7D},
+ {0x002C81, 0x002C81},
+ {0x002C83, 0x002C83},
+ {0x002C85, 0x002C85},
+ {0x002C87, 0x002C87},
+ {0x002C89, 0x002C89},
+ {0x002C8B, 0x002C8B},
+ {0x002C8D, 0x002C8D},
+ {0x002C8F, 0x002C8F},
+ {0x002C91, 0x002C91},
+ {0x002C93, 0x002C93},
+ {0x002C95, 0x002C95},
+ {0x002C97, 0x002C97},
+ {0x002C99, 0x002C99},
+ {0x002C9B, 0x002C9B},
+ {0x002C9D, 0x002C9D},
+ {0x002C9F, 0x002C9F},
+ {0x002CA1, 0x002CA1},
+ {0x002CA3, 0x002CA3},
+ {0x002CA5, 0x002CA5},
+ {0x002CA7, 0x002CA7},
+ {0x002CA9, 0x002CA9},
+ {0x002CAB, 0x002CAB},
+ {0x002CAD, 0x002CAD},
+ {0x002CAF, 0x002CAF},
+ {0x002CB1, 0x002CB1},
+ {0x002CB3, 0x002CB3},
+ {0x002CB5, 0x002CB5},
+ {0x002CB7, 0x002CB7},
+ {0x002CB9, 0x002CB9},
+ {0x002CBB, 0x002CBB},
+ {0x002CBD, 0x002CBD},
+ {0x002CBF, 0x002CBF},
+ {0x002CC1, 0x002CC1},
+ {0x002CC3, 0x002CC3},
+ {0x002CC5, 0x002CC5},
+ {0x002CC7, 0x002CC7},
+ {0x002CC9, 0x002CC9},
+ {0x002CCB, 0x002CCB},
+ {0x002CCD, 0x002CCD},
+ {0x002CCF, 0x002CCF},
+ {0x002CD1, 0x002CD1},
+ {0x002CD3, 0x002CD3},
+ {0x002CD5, 0x002CD5},
+ {0x002CD7, 0x002CD7},
+ {0x002CD9, 0x002CD9},
+ {0x002CDB, 0x002CDB},
+ {0x002CDD, 0x002CDD},
+ {0x002CDF, 0x002CDF},
+ {0x002CE1, 0x002CE1},
+ {0x002CE3, 0x002CE4},
+ {0x002CEC, 0x002CEC},
+ {0x002CEE, 0x002CEE},
+ {0x002CF3, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x00A641, 0x00A641},
+ {0x00A643, 0x00A643},
+ {0x00A645, 0x00A645},
+ {0x00A647, 0x00A647},
+ {0x00A649, 0x00A649},
+ {0x00A64B, 0x00A64B},
+ {0x00A64D, 0x00A64D},
+ {0x00A64F, 0x00A64F},
+ {0x00A651, 0x00A651},
+ {0x00A653, 0x00A653},
+ {0x00A655, 0x00A655},
+ {0x00A657, 0x00A657},
+ {0x00A659, 0x00A659},
+ {0x00A65B, 0x00A65B},
+ {0x00A65D, 0x00A65D},
+ {0x00A65F, 0x00A65F},
+ {0x00A661, 0x00A661},
+ {0x00A663, 0x00A663},
+ {0x00A665, 0x00A665},
+ {0x00A667, 0x00A667},
+ {0x00A669, 0x00A669},
+ {0x00A66B, 0x00A66B},
+ {0x00A66D, 0x00A66D},
+ {0x00A681, 0x00A681},
+ {0x00A683, 0x00A683},
+ {0x00A685, 0x00A685},
+ {0x00A687, 0x00A687},
+ {0x00A689, 0x00A689},
+ {0x00A68B, 0x00A68B},
+ {0x00A68D, 0x00A68D},
+ {0x00A68F, 0x00A68F},
+ {0x00A691, 0x00A691},
+ {0x00A693, 0x00A693},
+ {0x00A695, 0x00A695},
+ {0x00A697, 0x00A697},
+ {0x00A699, 0x00A699},
+ {0x00A69B, 0x00A69D},
+ {0x00A723, 0x00A723},
+ {0x00A725, 0x00A725},
+ {0x00A727, 0x00A727},
+ {0x00A729, 0x00A729},
+ {0x00A72B, 0x00A72B},
+ {0x00A72D, 0x00A72D},
+ {0x00A72F, 0x00A731},
+ {0x00A733, 0x00A733},
+ {0x00A735, 0x00A735},
+ {0x00A737, 0x00A737},
+ {0x00A739, 0x00A739},
+ {0x00A73B, 0x00A73B},
+ {0x00A73D, 0x00A73D},
+ {0x00A73F, 0x00A73F},
+ {0x00A741, 0x00A741},
+ {0x00A743, 0x00A743},
+ {0x00A745, 0x00A745},
+ {0x00A747, 0x00A747},
+ {0x00A749, 0x00A749},
+ {0x00A74B, 0x00A74B},
+ {0x00A74D, 0x00A74D},
+ {0x00A74F, 0x00A74F},
+ {0x00A751, 0x00A751},
+ {0x00A753, 0x00A753},
+ {0x00A755, 0x00A755},
+ {0x00A757, 0x00A757},
+ {0x00A759, 0x00A759},
+ {0x00A75B, 0x00A75B},
+ {0x00A75D, 0x00A75D},
+ {0x00A75F, 0x00A75F},
+ {0x00A761, 0x00A761},
+ {0x00A763, 0x00A763},
+ {0x00A765, 0x00A765},
+ {0x00A767, 0x00A767},
+ {0x00A769, 0x00A769},
+ {0x00A76B, 0x00A76B},
+ {0x00A76D, 0x00A76D},
+ {0x00A76F, 0x00A778},
+ {0x00A77A, 0x00A77A},
+ {0x00A77C, 0x00A77C},
+ {0x00A77F, 0x00A77F},
+ {0x00A781, 0x00A781},
+ {0x00A783, 0x00A783},
+ {0x00A785, 0x00A785},
+ {0x00A787, 0x00A787},
+ {0x00A78C, 0x00A78C},
+ {0x00A78E, 0x00A78E},
+ {0x00A791, 0x00A791},
+ {0x00A793, 0x00A795},
+ {0x00A797, 0x00A797},
+ {0x00A799, 0x00A799},
+ {0x00A79B, 0x00A79B},
+ {0x00A79D, 0x00A79D},
+ {0x00A79F, 0x00A79F},
+ {0x00A7A1, 0x00A7A1},
+ {0x00A7A3, 0x00A7A3},
+ {0x00A7A5, 0x00A7A5},
+ {0x00A7A7, 0x00A7A7},
+ {0x00A7A9, 0x00A7A9},
+ {0x00A7AF, 0x00A7AF},
+ {0x00A7B5, 0x00A7B5},
+ {0x00A7B7, 0x00A7B7},
+ {0x00A7B9, 0x00A7B9},
+ {0x00A7BB, 0x00A7BB},
+ {0x00A7BD, 0x00A7BD},
+ {0x00A7BF, 0x00A7BF},
+ {0x00A7C1, 0x00A7C1},
+ {0x00A7C3, 0x00A7C3},
+ {0x00A7C8, 0x00A7C8},
+ {0x00A7CA, 0x00A7CA},
+ {0x00A7D1, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D5},
+ {0x00A7D7, 0x00A7D7},
+ {0x00A7D9, 0x00A7D9},
+ {0x00A7F2, 0x00A7F4},
+ {0x00A7F6, 0x00A7F6},
+ {0x00A7F8, 0x00A7FA},
+ {0x00AB30, 0x00AB5A},
+ {0x00AB5C, 0x00AB69},
+ {0x00AB70, 0x00ABBF},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FF41, 0x00FF5A},
+ {0x010428, 0x01044F},
+ {0x0104D8, 0x0104FB},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010780, 0x010780},
+ {0x010783, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010CC0, 0x010CF2},
+ {0x0118C0, 0x0118DF},
+ {0x016E60, 0x016E7F},
+ {0x01D41A, 0x01D433},
+ {0x01D44E, 0x01D454},
+ {0x01D456, 0x01D467},
+ {0x01D482, 0x01D49B},
+ {0x01D4B6, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D4CF},
+ {0x01D4EA, 0x01D503},
+ {0x01D51E, 0x01D537},
+ {0x01D552, 0x01D56B},
+ {0x01D586, 0x01D59F},
+ {0x01D5BA, 0x01D5D3},
+ {0x01D5EE, 0x01D607},
+ {0x01D622, 0x01D63B},
+ {0x01D656, 0x01D66F},
+ {0x01D68A, 0x01D6A5},
+ {0x01D6C2, 0x01D6DA},
+ {0x01D6DC, 0x01D6E1},
+ {0x01D6FC, 0x01D714},
+ {0x01D716, 0x01D71B},
+ {0x01D736, 0x01D74E},
+ {0x01D750, 0x01D755},
+ {0x01D770, 0x01D788},
+ {0x01D78A, 0x01D78F},
+ {0x01D7AA, 0x01D7C2},
+ {0x01D7C4, 0x01D7C9},
+ {0x01D7CB, 0x01D7CB},
+ {0x01DF00, 0x01DF09},
+ {0x01DF0B, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E030, 0x01E06D},
+ {0x01E922, 0x01E943},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_lowercase(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_math.c b/vendor/librune/lib/rtype/rune_has_prop_math.c
new file mode 100644
index 0000000..54858ba
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_math.c
@@ -0,0 +1,168 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x80000000800000000210000000000050000000400000007000080000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x00002B, 0x00002B},
+ {0x00003C, 0x00003E},
+ {0x00005E, 0x00005E},
+ {0x00007C, 0x00007C},
+ {0x00007E, 0x00007E},
+ {0x0000AC, 0x0000AC},
+ {0x0000B1, 0x0000B1},
+ {0x0000D7, 0x0000D7},
+ {0x0000F7, 0x0000F7},
+ {0x0003D0, 0x0003D2},
+ {0x0003D5, 0x0003D5},
+ {0x0003F0, 0x0003F1},
+ {0x0003F4, 0x0003F6},
+ {0x000606, 0x000608},
+ {0x002016, 0x002016},
+ {0x002032, 0x002034},
+ {0x002040, 0x002040},
+ {0x002044, 0x002044},
+ {0x002052, 0x002052},
+ {0x002061, 0x002064},
+ {0x00207A, 0x00207E},
+ {0x00208A, 0x00208E},
+ {0x0020D0, 0x0020DC},
+ {0x0020E1, 0x0020E1},
+ {0x0020E5, 0x0020E6},
+ {0x0020EB, 0x0020EF},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210A, 0x002113},
+ {0x002115, 0x002115},
+ {0x002118, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002128, 0x002129},
+ {0x00212C, 0x00212D},
+ {0x00212F, 0x002131},
+ {0x002133, 0x002138},
+ {0x00213C, 0x002149},
+ {0x00214B, 0x00214B},
+ {0x002190, 0x0021A7},
+ {0x0021A9, 0x0021AE},
+ {0x0021B0, 0x0021B1},
+ {0x0021B6, 0x0021B7},
+ {0x0021BC, 0x0021DB},
+ {0x0021DD, 0x0021DD},
+ {0x0021E4, 0x0021E5},
+ {0x0021F4, 0x0022FF},
+ {0x002308, 0x00230B},
+ {0x002320, 0x002321},
+ {0x00237C, 0x00237C},
+ {0x00239B, 0x0023B5},
+ {0x0023B7, 0x0023B7},
+ {0x0023D0, 0x0023D0},
+ {0x0023DC, 0x0023E2},
+ {0x0025A0, 0x0025A1},
+ {0x0025AE, 0x0025B7},
+ {0x0025BC, 0x0025C1},
+ {0x0025C6, 0x0025C7},
+ {0x0025CA, 0x0025CB},
+ {0x0025CF, 0x0025D3},
+ {0x0025E2, 0x0025E2},
+ {0x0025E4, 0x0025E4},
+ {0x0025E7, 0x0025EC},
+ {0x0025F8, 0x0025FF},
+ {0x002605, 0x002606},
+ {0x002640, 0x002640},
+ {0x002642, 0x002642},
+ {0x002660, 0x002663},
+ {0x00266D, 0x00266F},
+ {0x0027C0, 0x0027FF},
+ {0x002900, 0x002AFF},
+ {0x002B30, 0x002B44},
+ {0x002B47, 0x002B4C},
+ {0x00FB29, 0x00FB29},
+ {0x00FE61, 0x00FE66},
+ {0x00FE68, 0x00FE68},
+ {0x00FF0B, 0x00FF0B},
+ {0x00FF1C, 0x00FF1E},
+ {0x00FF3C, 0x00FF3C},
+ {0x00FF3E, 0x00FF3E},
+ {0x00FF5C, 0x00FF5C},
+ {0x00FF5E, 0x00FF5E},
+ {0x00FFE2, 0x00FFE2},
+ {0x00FFE9, 0x00FFEC},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D7CB},
+ {0x01D7CE, 0x01D7FF},
+ {0x01EE00, 0x01EE03},
+ {0x01EE05, 0x01EE1F},
+ {0x01EE21, 0x01EE22},
+ {0x01EE24, 0x01EE24},
+ {0x01EE27, 0x01EE27},
+ {0x01EE29, 0x01EE32},
+ {0x01EE34, 0x01EE37},
+ {0x01EE39, 0x01EE39},
+ {0x01EE3B, 0x01EE3B},
+ {0x01EE42, 0x01EE42},
+ {0x01EE47, 0x01EE47},
+ {0x01EE49, 0x01EE49},
+ {0x01EE4B, 0x01EE4B},
+ {0x01EE4D, 0x01EE4F},
+ {0x01EE51, 0x01EE52},
+ {0x01EE54, 0x01EE54},
+ {0x01EE57, 0x01EE57},
+ {0x01EE59, 0x01EE59},
+ {0x01EE5B, 0x01EE5B},
+ {0x01EE5D, 0x01EE5D},
+ {0x01EE5F, 0x01EE5F},
+ {0x01EE61, 0x01EE62},
+ {0x01EE64, 0x01EE64},
+ {0x01EE67, 0x01EE6A},
+ {0x01EE6C, 0x01EE72},
+ {0x01EE74, 0x01EE77},
+ {0x01EE79, 0x01EE7C},
+ {0x01EE7E, 0x01EE7E},
+ {0x01EE80, 0x01EE89},
+ {0x01EE8B, 0x01EE9B},
+ {0x01EEA1, 0x01EEA3},
+ {0x01EEA5, 0x01EEA9},
+ {0x01EEAB, 0x01EEBB},
+ {0x01EEF0, 0x01EEF1},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_math(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_noncharacter_code_point.c b/vendor/librune/lib/rtype/rune_has_prop_noncharacter_code_point.c
new file mode 100644
index 0000000..64fe613
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_noncharacter_code_point.c
@@ -0,0 +1,47 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x00FDD0, 0x00FDEF},
+ {0x00FFFE, 0x00FFFF},
+ {0x01FFFE, 0x01FFFF},
+ {0x02FFFE, 0x02FFFF},
+ {0x03FFFE, 0x03FFFF},
+ {0x04FFFE, 0x04FFFF},
+ {0x05FFFE, 0x05FFFF},
+ {0x06FFFE, 0x06FFFF},
+ {0x07FFFE, 0x07FFFF},
+ {0x08FFFE, 0x08FFFF},
+ {0x09FFFE, 0x09FFFF},
+ {0x0AFFFE, 0x0AFFFF},
+ {0x0BFFFE, 0x0BFFFF},
+ {0x0CFFFE, 0x0CFFFF},
+ {0x0DFFFE, 0x0DFFFF},
+ {0x0EFFFE, 0x0EFFFF},
+ {0x0FFFFE, 0x0FFFFF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_noncharacter_code_point(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_pattern_syntax.c b/vendor/librune/lib/rtype/rune_has_prop_pattern_syntax.c
new file mode 100644
index 0000000..bb25abd
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_pattern_syntax.c
@@ -0,0 +1,58 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8000000080000088435AFE000000007800000178000001FC00FFFE00000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000021, 0x00002F},
+ {0x00003A, 0x000040},
+ {0x00005B, 0x00005E},
+ {0x000060, 0x000060},
+ {0x00007B, 0x00007E},
+ {0x0000A1, 0x0000A7},
+ {0x0000A9, 0x0000A9},
+ {0x0000AB, 0x0000AC},
+ {0x0000AE, 0x0000AE},
+ {0x0000B0, 0x0000B1},
+ {0x0000B6, 0x0000B6},
+ {0x0000BB, 0x0000BB},
+ {0x0000BF, 0x0000BF},
+ {0x0000D7, 0x0000D7},
+ {0x0000F7, 0x0000F7},
+ {0x002010, 0x002027},
+ {0x002030, 0x00203E},
+ {0x002041, 0x002053},
+ {0x002055, 0x00205E},
+ {0x002190, 0x00245F},
+ {0x002500, 0x002775},
+ {0x002794, 0x002BFF},
+ {0x002E00, 0x002E7F},
+ {0x003001, 0x003003},
+ {0x003008, 0x003020},
+ {0x003030, 0x003030},
+ {0x00FD3E, 0x00FD3F},
+ {0x00FE45, 0x00FE46},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_pattern_syntax(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_pattern_white_space.c b/vendor/librune/lib/rtype/rune_has_prop_pattern_white_space.c
new file mode 100644
index 0000000..aa76d28
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_pattern_white_space.c
@@ -0,0 +1,35 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x2000000000000000000000000100003E00uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000009, 0x00000D},
+ {0x000020, 0x000020},
+ {0x000085, 0x000085},
+ {0x00200E, 0x00200F},
+ {0x002028, 0x002029},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_pattern_white_space(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_prepended_concatenation_mark.c b/vendor/librune/lib/rtype/rune_has_prop_prepended_concatenation_mark.c
new file mode 100644
index 0000000..ee5e1d5
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_prepended_concatenation_mark.c
@@ -0,0 +1,37 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000600, 0x000605},
+ {0x0006DD, 0x0006DD},
+ {0x00070F, 0x00070F},
+ {0x000890, 0x000891},
+ {0x0008E2, 0x0008E2},
+ {0x0110BD, 0x0110BD},
+ {0x0110CD, 0x0110CD},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_prepended_concatenation_mark(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_quotation_mark.c b/vendor/librune/lib/rtype/rune_has_prop_quotation_mark.c
new file mode 100644
index 0000000..78c693c
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_quotation_mark.c
@@ -0,0 +1,43 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x80008000000000000000000000000000000008400000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000022, 0x000022},
+ {0x000027, 0x000027},
+ {0x0000AB, 0x0000AB},
+ {0x0000BB, 0x0000BB},
+ {0x002018, 0x00201F},
+ {0x002039, 0x00203A},
+ {0x002E42, 0x002E42},
+ {0x00300C, 0x00300F},
+ {0x00301D, 0x00301F},
+ {0x00FE41, 0x00FE44},
+ {0x00FF02, 0x00FF02},
+ {0x00FF07, 0x00FF07},
+ {0x00FF62, 0x00FF63},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_quotation_mark(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_radical.c b/vendor/librune/lib/rtype/rune_has_prop_radical.c
new file mode 100644
index 0000000..a6c3587
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_radical.c
@@ -0,0 +1,33 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x002E80, 0x002E99},
+ {0x002E9B, 0x002EF3},
+ {0x002F00, 0x002FD5},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_radical(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_regional_indicator.c b/vendor/librune/lib/rtype/rune_has_prop_regional_indicator.c
new file mode 100644
index 0000000..87c6771
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_regional_indicator.c
@@ -0,0 +1,31 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x01F1E6, 0x01F1FF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_regional_indicator(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_sentence_terminal.c b/vendor/librune/lib/rtype/rune_has_prop_sentence_terminal.c
new file mode 100644
index 0000000..0e359fa
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_sentence_terminal.c
@@ -0,0 +1,111 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8000400200000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000021, 0x000021},
+ {0x00002E, 0x00002E},
+ {0x00003F, 0x00003F},
+ {0x000589, 0x000589},
+ {0x00061D, 0x00061F},
+ {0x0006D4, 0x0006D4},
+ {0x000700, 0x000702},
+ {0x0007F9, 0x0007F9},
+ {0x000837, 0x000837},
+ {0x000839, 0x000839},
+ {0x00083D, 0x00083E},
+ {0x000964, 0x000965},
+ {0x00104A, 0x00104B},
+ {0x001362, 0x001362},
+ {0x001367, 0x001368},
+ {0x00166E, 0x00166E},
+ {0x001735, 0x001736},
+ {0x0017D4, 0x0017D5},
+ {0x001803, 0x001803},
+ {0x001809, 0x001809},
+ {0x001944, 0x001945},
+ {0x001AA8, 0x001AAB},
+ {0x001B5A, 0x001B5B},
+ {0x001B5E, 0x001B5F},
+ {0x001B7D, 0x001B7E},
+ {0x001C3B, 0x001C3C},
+ {0x001C7E, 0x001C7F},
+ {0x00203C, 0x00203D},
+ {0x002047, 0x002049},
+ {0x002E2E, 0x002E2E},
+ {0x002E3C, 0x002E3C},
+ {0x002E53, 0x002E54},
+ {0x003002, 0x003002},
+ {0x00A4FF, 0x00A4FF},
+ {0x00A60E, 0x00A60F},
+ {0x00A6F3, 0x00A6F3},
+ {0x00A6F7, 0x00A6F7},
+ {0x00A876, 0x00A877},
+ {0x00A8CE, 0x00A8CF},
+ {0x00A92F, 0x00A92F},
+ {0x00A9C8, 0x00A9C9},
+ {0x00AA5D, 0x00AA5F},
+ {0x00AAF0, 0x00AAF1},
+ {0x00ABEB, 0x00ABEB},
+ {0x00FE52, 0x00FE52},
+ {0x00FE56, 0x00FE57},
+ {0x00FF01, 0x00FF01},
+ {0x00FF0E, 0x00FF0E},
+ {0x00FF1F, 0x00FF1F},
+ {0x00FF61, 0x00FF61},
+ {0x010A56, 0x010A57},
+ {0x010F55, 0x010F59},
+ {0x010F86, 0x010F89},
+ {0x011047, 0x011048},
+ {0x0110BE, 0x0110C1},
+ {0x011141, 0x011143},
+ {0x0111C5, 0x0111C6},
+ {0x0111CD, 0x0111CD},
+ {0x0111DE, 0x0111DF},
+ {0x011238, 0x011239},
+ {0x01123B, 0x01123C},
+ {0x0112A9, 0x0112A9},
+ {0x01144B, 0x01144C},
+ {0x0115C2, 0x0115C3},
+ {0x0115C9, 0x0115D7},
+ {0x011641, 0x011642},
+ {0x01173C, 0x01173E},
+ {0x011944, 0x011944},
+ {0x011946, 0x011946},
+ {0x011A42, 0x011A43},
+ {0x011A9B, 0x011A9C},
+ {0x011C41, 0x011C42},
+ {0x011EF7, 0x011EF8},
+ {0x011F43, 0x011F44},
+ {0x016A6E, 0x016A6F},
+ {0x016AF5, 0x016AF5},
+ {0x016B37, 0x016B38},
+ {0x016B44, 0x016B44},
+ {0x016E98, 0x016E98},
+ {0x01BC9F, 0x01BC9F},
+ {0x01DA88, 0x01DA88},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_sentence_terminal(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_soft_dotted.c b/vendor/librune/lib/rtype/rune_has_prop_soft_dotted.c
new file mode 100644
index 0000000..0d522d1
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_soft_dotted.c
@@ -0,0 +1,64 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x600000000000000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000069, 0x00006A},
+ {0x00012F, 0x00012F},
+ {0x000249, 0x000249},
+ {0x000268, 0x000268},
+ {0x00029D, 0x00029D},
+ {0x0002B2, 0x0002B2},
+ {0x0003F3, 0x0003F3},
+ {0x000456, 0x000456},
+ {0x000458, 0x000458},
+ {0x001D62, 0x001D62},
+ {0x001D96, 0x001D96},
+ {0x001DA4, 0x001DA4},
+ {0x001DA8, 0x001DA8},
+ {0x001E2D, 0x001E2D},
+ {0x001ECB, 0x001ECB},
+ {0x002071, 0x002071},
+ {0x002148, 0x002149},
+ {0x002C7C, 0x002C7C},
+ {0x01D422, 0x01D423},
+ {0x01D456, 0x01D457},
+ {0x01D48A, 0x01D48B},
+ {0x01D4BE, 0x01D4BF},
+ {0x01D4F2, 0x01D4F3},
+ {0x01D526, 0x01D527},
+ {0x01D55A, 0x01D55B},
+ {0x01D58E, 0x01D58F},
+ {0x01D5C2, 0x01D5C3},
+ {0x01D5F6, 0x01D5F7},
+ {0x01D62A, 0x01D62B},
+ {0x01D65E, 0x01D65F},
+ {0x01D692, 0x01D693},
+ {0x01DF1A, 0x01DF1A},
+ {0x01E04C, 0x01E04D},
+ {0x01E068, 0x01E068},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_soft_dotted(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_terminal_punctuation.c b/vendor/librune/lib/rtype/rune_has_prop_terminal_punctuation.c
new file mode 100644
index 0000000..9e73405
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_terminal_punctuation.c
@@ -0,0 +1,138 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x8C00500200000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000021, 0x000021},
+ {0x00002C, 0x00002C},
+ {0x00002E, 0x00002E},
+ {0x00003A, 0x00003B},
+ {0x00003F, 0x00003F},
+ {0x00037E, 0x00037E},
+ {0x000387, 0x000387},
+ {0x000589, 0x000589},
+ {0x0005C3, 0x0005C3},
+ {0x00060C, 0x00060C},
+ {0x00061B, 0x00061B},
+ {0x00061D, 0x00061F},
+ {0x0006D4, 0x0006D4},
+ {0x000700, 0x00070A},
+ {0x00070C, 0x00070C},
+ {0x0007F8, 0x0007F9},
+ {0x000830, 0x00083E},
+ {0x00085E, 0x00085E},
+ {0x000964, 0x000965},
+ {0x000E5A, 0x000E5B},
+ {0x000F08, 0x000F08},
+ {0x000F0D, 0x000F12},
+ {0x00104A, 0x00104B},
+ {0x001361, 0x001368},
+ {0x00166E, 0x00166E},
+ {0x0016EB, 0x0016ED},
+ {0x001735, 0x001736},
+ {0x0017D4, 0x0017D6},
+ {0x0017DA, 0x0017DA},
+ {0x001802, 0x001805},
+ {0x001808, 0x001809},
+ {0x001944, 0x001945},
+ {0x001AA8, 0x001AAB},
+ {0x001B5A, 0x001B5B},
+ {0x001B5D, 0x001B5F},
+ {0x001B7D, 0x001B7E},
+ {0x001C3B, 0x001C3F},
+ {0x001C7E, 0x001C7F},
+ {0x00203C, 0x00203D},
+ {0x002047, 0x002049},
+ {0x002E2E, 0x002E2E},
+ {0x002E3C, 0x002E3C},
+ {0x002E41, 0x002E41},
+ {0x002E4C, 0x002E4C},
+ {0x002E4E, 0x002E4F},
+ {0x002E53, 0x002E54},
+ {0x003001, 0x003002},
+ {0x00A4FE, 0x00A4FF},
+ {0x00A60D, 0x00A60F},
+ {0x00A6F3, 0x00A6F7},
+ {0x00A876, 0x00A877},
+ {0x00A8CE, 0x00A8CF},
+ {0x00A92F, 0x00A92F},
+ {0x00A9C7, 0x00A9C9},
+ {0x00AA5D, 0x00AA5F},
+ {0x00AADF, 0x00AADF},
+ {0x00AAF0, 0x00AAF1},
+ {0x00ABEB, 0x00ABEB},
+ {0x00FE50, 0x00FE52},
+ {0x00FE54, 0x00FE57},
+ {0x00FF01, 0x00FF01},
+ {0x00FF0C, 0x00FF0C},
+ {0x00FF0E, 0x00FF0E},
+ {0x00FF1A, 0x00FF1B},
+ {0x00FF1F, 0x00FF1F},
+ {0x00FF61, 0x00FF61},
+ {0x00FF64, 0x00FF64},
+ {0x01039F, 0x01039F},
+ {0x0103D0, 0x0103D0},
+ {0x010857, 0x010857},
+ {0x01091F, 0x01091F},
+ {0x010A56, 0x010A57},
+ {0x010AF0, 0x010AF5},
+ {0x010B3A, 0x010B3F},
+ {0x010B99, 0x010B9C},
+ {0x010F55, 0x010F59},
+ {0x010F86, 0x010F89},
+ {0x011047, 0x01104D},
+ {0x0110BE, 0x0110C1},
+ {0x011141, 0x011143},
+ {0x0111C5, 0x0111C6},
+ {0x0111CD, 0x0111CD},
+ {0x0111DE, 0x0111DF},
+ {0x011238, 0x01123C},
+ {0x0112A9, 0x0112A9},
+ {0x01144B, 0x01144D},
+ {0x01145A, 0x01145B},
+ {0x0115C2, 0x0115C5},
+ {0x0115C9, 0x0115D7},
+ {0x011641, 0x011642},
+ {0x01173C, 0x01173E},
+ {0x011944, 0x011944},
+ {0x011946, 0x011946},
+ {0x011A42, 0x011A43},
+ {0x011A9B, 0x011A9C},
+ {0x011AA1, 0x011AA2},
+ {0x011C41, 0x011C43},
+ {0x011C71, 0x011C71},
+ {0x011EF7, 0x011EF8},
+ {0x011F43, 0x011F44},
+ {0x012470, 0x012474},
+ {0x016A6E, 0x016A6F},
+ {0x016AF5, 0x016AF5},
+ {0x016B37, 0x016B39},
+ {0x016B44, 0x016B44},
+ {0x016E97, 0x016E98},
+ {0x01BC9F, 0x01BC9F},
+ {0x01DA87, 0x01DA8A},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_terminal_punctuation(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_unified_ideograph.c b/vendor/librune/lib/rtype/rune_has_prop_unified_ideograph.c
new file mode 100644
index 0000000..b7bc92c
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_unified_ideograph.c
@@ -0,0 +1,47 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x003400, 0x004DBF},
+ {0x004E00, 0x009FFF},
+ {0x00FA0E, 0x00FA0F},
+ {0x00FA11, 0x00FA11},
+ {0x00FA13, 0x00FA14},
+ {0x00FA1F, 0x00FA1F},
+ {0x00FA21, 0x00FA21},
+ {0x00FA23, 0x00FA24},
+ {0x00FA27, 0x00FA29},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_unified_ideograph(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_uppercase.c b/vendor/librune/lib/rtype/rune_has_prop_uppercase.c
new file mode 100644
index 0000000..c828733
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_uppercase.c
@@ -0,0 +1,681 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x7F7FFFFF00000000000000000000000007FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000DE},
+ {0x000100, 0x000100},
+ {0x000102, 0x000102},
+ {0x000104, 0x000104},
+ {0x000106, 0x000106},
+ {0x000108, 0x000108},
+ {0x00010A, 0x00010A},
+ {0x00010C, 0x00010C},
+ {0x00010E, 0x00010E},
+ {0x000110, 0x000110},
+ {0x000112, 0x000112},
+ {0x000114, 0x000114},
+ {0x000116, 0x000116},
+ {0x000118, 0x000118},
+ {0x00011A, 0x00011A},
+ {0x00011C, 0x00011C},
+ {0x00011E, 0x00011E},
+ {0x000120, 0x000120},
+ {0x000122, 0x000122},
+ {0x000124, 0x000124},
+ {0x000126, 0x000126},
+ {0x000128, 0x000128},
+ {0x00012A, 0x00012A},
+ {0x00012C, 0x00012C},
+ {0x00012E, 0x00012E},
+ {0x000130, 0x000130},
+ {0x000132, 0x000132},
+ {0x000134, 0x000134},
+ {0x000136, 0x000136},
+ {0x000139, 0x000139},
+ {0x00013B, 0x00013B},
+ {0x00013D, 0x00013D},
+ {0x00013F, 0x00013F},
+ {0x000141, 0x000141},
+ {0x000143, 0x000143},
+ {0x000145, 0x000145},
+ {0x000147, 0x000147},
+ {0x00014A, 0x00014A},
+ {0x00014C, 0x00014C},
+ {0x00014E, 0x00014E},
+ {0x000150, 0x000150},
+ {0x000152, 0x000152},
+ {0x000154, 0x000154},
+ {0x000156, 0x000156},
+ {0x000158, 0x000158},
+ {0x00015A, 0x00015A},
+ {0x00015C, 0x00015C},
+ {0x00015E, 0x00015E},
+ {0x000160, 0x000160},
+ {0x000162, 0x000162},
+ {0x000164, 0x000164},
+ {0x000166, 0x000166},
+ {0x000168, 0x000168},
+ {0x00016A, 0x00016A},
+ {0x00016C, 0x00016C},
+ {0x00016E, 0x00016E},
+ {0x000170, 0x000170},
+ {0x000172, 0x000172},
+ {0x000174, 0x000174},
+ {0x000176, 0x000176},
+ {0x000178, 0x000179},
+ {0x00017B, 0x00017B},
+ {0x00017D, 0x00017D},
+ {0x000181, 0x000182},
+ {0x000184, 0x000184},
+ {0x000186, 0x000187},
+ {0x000189, 0x00018B},
+ {0x00018E, 0x000191},
+ {0x000193, 0x000194},
+ {0x000196, 0x000198},
+ {0x00019C, 0x00019D},
+ {0x00019F, 0x0001A0},
+ {0x0001A2, 0x0001A2},
+ {0x0001A4, 0x0001A4},
+ {0x0001A6, 0x0001A7},
+ {0x0001A9, 0x0001A9},
+ {0x0001AC, 0x0001AC},
+ {0x0001AE, 0x0001AF},
+ {0x0001B1, 0x0001B3},
+ {0x0001B5, 0x0001B5},
+ {0x0001B7, 0x0001B8},
+ {0x0001BC, 0x0001BC},
+ {0x0001C4, 0x0001C4},
+ {0x0001C7, 0x0001C7},
+ {0x0001CA, 0x0001CA},
+ {0x0001CD, 0x0001CD},
+ {0x0001CF, 0x0001CF},
+ {0x0001D1, 0x0001D1},
+ {0x0001D3, 0x0001D3},
+ {0x0001D5, 0x0001D5},
+ {0x0001D7, 0x0001D7},
+ {0x0001D9, 0x0001D9},
+ {0x0001DB, 0x0001DB},
+ {0x0001DE, 0x0001DE},
+ {0x0001E0, 0x0001E0},
+ {0x0001E2, 0x0001E2},
+ {0x0001E4, 0x0001E4},
+ {0x0001E6, 0x0001E6},
+ {0x0001E8, 0x0001E8},
+ {0x0001EA, 0x0001EA},
+ {0x0001EC, 0x0001EC},
+ {0x0001EE, 0x0001EE},
+ {0x0001F1, 0x0001F1},
+ {0x0001F4, 0x0001F4},
+ {0x0001F6, 0x0001F8},
+ {0x0001FA, 0x0001FA},
+ {0x0001FC, 0x0001FC},
+ {0x0001FE, 0x0001FE},
+ {0x000200, 0x000200},
+ {0x000202, 0x000202},
+ {0x000204, 0x000204},
+ {0x000206, 0x000206},
+ {0x000208, 0x000208},
+ {0x00020A, 0x00020A},
+ {0x00020C, 0x00020C},
+ {0x00020E, 0x00020E},
+ {0x000210, 0x000210},
+ {0x000212, 0x000212},
+ {0x000214, 0x000214},
+ {0x000216, 0x000216},
+ {0x000218, 0x000218},
+ {0x00021A, 0x00021A},
+ {0x00021C, 0x00021C},
+ {0x00021E, 0x00021E},
+ {0x000220, 0x000220},
+ {0x000222, 0x000222},
+ {0x000224, 0x000224},
+ {0x000226, 0x000226},
+ {0x000228, 0x000228},
+ {0x00022A, 0x00022A},
+ {0x00022C, 0x00022C},
+ {0x00022E, 0x00022E},
+ {0x000230, 0x000230},
+ {0x000232, 0x000232},
+ {0x00023A, 0x00023B},
+ {0x00023D, 0x00023E},
+ {0x000241, 0x000241},
+ {0x000243, 0x000246},
+ {0x000248, 0x000248},
+ {0x00024A, 0x00024A},
+ {0x00024C, 0x00024C},
+ {0x00024E, 0x00024E},
+ {0x000370, 0x000370},
+ {0x000372, 0x000372},
+ {0x000376, 0x000376},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x00038F},
+ {0x000391, 0x0003A1},
+ {0x0003A3, 0x0003AB},
+ {0x0003CF, 0x0003CF},
+ {0x0003D2, 0x0003D4},
+ {0x0003D8, 0x0003D8},
+ {0x0003DA, 0x0003DA},
+ {0x0003DC, 0x0003DC},
+ {0x0003DE, 0x0003DE},
+ {0x0003E0, 0x0003E0},
+ {0x0003E2, 0x0003E2},
+ {0x0003E4, 0x0003E4},
+ {0x0003E6, 0x0003E6},
+ {0x0003E8, 0x0003E8},
+ {0x0003EA, 0x0003EA},
+ {0x0003EC, 0x0003EC},
+ {0x0003EE, 0x0003EE},
+ {0x0003F4, 0x0003F4},
+ {0x0003F7, 0x0003F7},
+ {0x0003F9, 0x0003FA},
+ {0x0003FD, 0x00042F},
+ {0x000460, 0x000460},
+ {0x000462, 0x000462},
+ {0x000464, 0x000464},
+ {0x000466, 0x000466},
+ {0x000468, 0x000468},
+ {0x00046A, 0x00046A},
+ {0x00046C, 0x00046C},
+ {0x00046E, 0x00046E},
+ {0x000470, 0x000470},
+ {0x000472, 0x000472},
+ {0x000474, 0x000474},
+ {0x000476, 0x000476},
+ {0x000478, 0x000478},
+ {0x00047A, 0x00047A},
+ {0x00047C, 0x00047C},
+ {0x00047E, 0x00047E},
+ {0x000480, 0x000480},
+ {0x00048A, 0x00048A},
+ {0x00048C, 0x00048C},
+ {0x00048E, 0x00048E},
+ {0x000490, 0x000490},
+ {0x000492, 0x000492},
+ {0x000494, 0x000494},
+ {0x000496, 0x000496},
+ {0x000498, 0x000498},
+ {0x00049A, 0x00049A},
+ {0x00049C, 0x00049C},
+ {0x00049E, 0x00049E},
+ {0x0004A0, 0x0004A0},
+ {0x0004A2, 0x0004A2},
+ {0x0004A4, 0x0004A4},
+ {0x0004A6, 0x0004A6},
+ {0x0004A8, 0x0004A8},
+ {0x0004AA, 0x0004AA},
+ {0x0004AC, 0x0004AC},
+ {0x0004AE, 0x0004AE},
+ {0x0004B0, 0x0004B0},
+ {0x0004B2, 0x0004B2},
+ {0x0004B4, 0x0004B4},
+ {0x0004B6, 0x0004B6},
+ {0x0004B8, 0x0004B8},
+ {0x0004BA, 0x0004BA},
+ {0x0004BC, 0x0004BC},
+ {0x0004BE, 0x0004BE},
+ {0x0004C0, 0x0004C1},
+ {0x0004C3, 0x0004C3},
+ {0x0004C5, 0x0004C5},
+ {0x0004C7, 0x0004C7},
+ {0x0004C9, 0x0004C9},
+ {0x0004CB, 0x0004CB},
+ {0x0004CD, 0x0004CD},
+ {0x0004D0, 0x0004D0},
+ {0x0004D2, 0x0004D2},
+ {0x0004D4, 0x0004D4},
+ {0x0004D6, 0x0004D6},
+ {0x0004D8, 0x0004D8},
+ {0x0004DA, 0x0004DA},
+ {0x0004DC, 0x0004DC},
+ {0x0004DE, 0x0004DE},
+ {0x0004E0, 0x0004E0},
+ {0x0004E2, 0x0004E2},
+ {0x0004E4, 0x0004E4},
+ {0x0004E6, 0x0004E6},
+ {0x0004E8, 0x0004E8},
+ {0x0004EA, 0x0004EA},
+ {0x0004EC, 0x0004EC},
+ {0x0004EE, 0x0004EE},
+ {0x0004F0, 0x0004F0},
+ {0x0004F2, 0x0004F2},
+ {0x0004F4, 0x0004F4},
+ {0x0004F6, 0x0004F6},
+ {0x0004F8, 0x0004F8},
+ {0x0004FA, 0x0004FA},
+ {0x0004FC, 0x0004FC},
+ {0x0004FE, 0x0004FE},
+ {0x000500, 0x000500},
+ {0x000502, 0x000502},
+ {0x000504, 0x000504},
+ {0x000506, 0x000506},
+ {0x000508, 0x000508},
+ {0x00050A, 0x00050A},
+ {0x00050C, 0x00050C},
+ {0x00050E, 0x00050E},
+ {0x000510, 0x000510},
+ {0x000512, 0x000512},
+ {0x000514, 0x000514},
+ {0x000516, 0x000516},
+ {0x000518, 0x000518},
+ {0x00051A, 0x00051A},
+ {0x00051C, 0x00051C},
+ {0x00051E, 0x00051E},
+ {0x000520, 0x000520},
+ {0x000522, 0x000522},
+ {0x000524, 0x000524},
+ {0x000526, 0x000526},
+ {0x000528, 0x000528},
+ {0x00052A, 0x00052A},
+ {0x00052C, 0x00052C},
+ {0x00052E, 0x00052E},
+ {0x000531, 0x000556},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0013A0, 0x0013F5},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001E00, 0x001E00},
+ {0x001E02, 0x001E02},
+ {0x001E04, 0x001E04},
+ {0x001E06, 0x001E06},
+ {0x001E08, 0x001E08},
+ {0x001E0A, 0x001E0A},
+ {0x001E0C, 0x001E0C},
+ {0x001E0E, 0x001E0E},
+ {0x001E10, 0x001E10},
+ {0x001E12, 0x001E12},
+ {0x001E14, 0x001E14},
+ {0x001E16, 0x001E16},
+ {0x001E18, 0x001E18},
+ {0x001E1A, 0x001E1A},
+ {0x001E1C, 0x001E1C},
+ {0x001E1E, 0x001E1E},
+ {0x001E20, 0x001E20},
+ {0x001E22, 0x001E22},
+ {0x001E24, 0x001E24},
+ {0x001E26, 0x001E26},
+ {0x001E28, 0x001E28},
+ {0x001E2A, 0x001E2A},
+ {0x001E2C, 0x001E2C},
+ {0x001E2E, 0x001E2E},
+ {0x001E30, 0x001E30},
+ {0x001E32, 0x001E32},
+ {0x001E34, 0x001E34},
+ {0x001E36, 0x001E36},
+ {0x001E38, 0x001E38},
+ {0x001E3A, 0x001E3A},
+ {0x001E3C, 0x001E3C},
+ {0x001E3E, 0x001E3E},
+ {0x001E40, 0x001E40},
+ {0x001E42, 0x001E42},
+ {0x001E44, 0x001E44},
+ {0x001E46, 0x001E46},
+ {0x001E48, 0x001E48},
+ {0x001E4A, 0x001E4A},
+ {0x001E4C, 0x001E4C},
+ {0x001E4E, 0x001E4E},
+ {0x001E50, 0x001E50},
+ {0x001E52, 0x001E52},
+ {0x001E54, 0x001E54},
+ {0x001E56, 0x001E56},
+ {0x001E58, 0x001E58},
+ {0x001E5A, 0x001E5A},
+ {0x001E5C, 0x001E5C},
+ {0x001E5E, 0x001E5E},
+ {0x001E60, 0x001E60},
+ {0x001E62, 0x001E62},
+ {0x001E64, 0x001E64},
+ {0x001E66, 0x001E66},
+ {0x001E68, 0x001E68},
+ {0x001E6A, 0x001E6A},
+ {0x001E6C, 0x001E6C},
+ {0x001E6E, 0x001E6E},
+ {0x001E70, 0x001E70},
+ {0x001E72, 0x001E72},
+ {0x001E74, 0x001E74},
+ {0x001E76, 0x001E76},
+ {0x001E78, 0x001E78},
+ {0x001E7A, 0x001E7A},
+ {0x001E7C, 0x001E7C},
+ {0x001E7E, 0x001E7E},
+ {0x001E80, 0x001E80},
+ {0x001E82, 0x001E82},
+ {0x001E84, 0x001E84},
+ {0x001E86, 0x001E86},
+ {0x001E88, 0x001E88},
+ {0x001E8A, 0x001E8A},
+ {0x001E8C, 0x001E8C},
+ {0x001E8E, 0x001E8E},
+ {0x001E90, 0x001E90},
+ {0x001E92, 0x001E92},
+ {0x001E94, 0x001E94},
+ {0x001E9E, 0x001E9E},
+ {0x001EA0, 0x001EA0},
+ {0x001EA2, 0x001EA2},
+ {0x001EA4, 0x001EA4},
+ {0x001EA6, 0x001EA6},
+ {0x001EA8, 0x001EA8},
+ {0x001EAA, 0x001EAA},
+ {0x001EAC, 0x001EAC},
+ {0x001EAE, 0x001EAE},
+ {0x001EB0, 0x001EB0},
+ {0x001EB2, 0x001EB2},
+ {0x001EB4, 0x001EB4},
+ {0x001EB6, 0x001EB6},
+ {0x001EB8, 0x001EB8},
+ {0x001EBA, 0x001EBA},
+ {0x001EBC, 0x001EBC},
+ {0x001EBE, 0x001EBE},
+ {0x001EC0, 0x001EC0},
+ {0x001EC2, 0x001EC2},
+ {0x001EC4, 0x001EC4},
+ {0x001EC6, 0x001EC6},
+ {0x001EC8, 0x001EC8},
+ {0x001ECA, 0x001ECA},
+ {0x001ECC, 0x001ECC},
+ {0x001ECE, 0x001ECE},
+ {0x001ED0, 0x001ED0},
+ {0x001ED2, 0x001ED2},
+ {0x001ED4, 0x001ED4},
+ {0x001ED6, 0x001ED6},
+ {0x001ED8, 0x001ED8},
+ {0x001EDA, 0x001EDA},
+ {0x001EDC, 0x001EDC},
+ {0x001EDE, 0x001EDE},
+ {0x001EE0, 0x001EE0},
+ {0x001EE2, 0x001EE2},
+ {0x001EE4, 0x001EE4},
+ {0x001EE6, 0x001EE6},
+ {0x001EE8, 0x001EE8},
+ {0x001EEA, 0x001EEA},
+ {0x001EEC, 0x001EEC},
+ {0x001EEE, 0x001EEE},
+ {0x001EF0, 0x001EF0},
+ {0x001EF2, 0x001EF2},
+ {0x001EF4, 0x001EF4},
+ {0x001EF6, 0x001EF6},
+ {0x001EF8, 0x001EF8},
+ {0x001EFA, 0x001EFA},
+ {0x001EFC, 0x001EFC},
+ {0x001EFE, 0x001EFE},
+ {0x001F08, 0x001F0F},
+ {0x001F18, 0x001F1D},
+ {0x001F28, 0x001F2F},
+ {0x001F38, 0x001F3F},
+ {0x001F48, 0x001F4D},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F5F},
+ {0x001F68, 0x001F6F},
+ {0x001FB8, 0x001FBB},
+ {0x001FC8, 0x001FCB},
+ {0x001FD8, 0x001FDB},
+ {0x001FE8, 0x001FEC},
+ {0x001FF8, 0x001FFB},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210B, 0x00210D},
+ {0x002110, 0x002112},
+ {0x002115, 0x002115},
+ {0x002119, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002126, 0x002126},
+ {0x002128, 0x002128},
+ {0x00212A, 0x00212D},
+ {0x002130, 0x002133},
+ {0x00213E, 0x00213F},
+ {0x002145, 0x002145},
+ {0x002160, 0x00216F},
+ {0x002183, 0x002183},
+ {0x0024B6, 0x0024CF},
+ {0x002C00, 0x002C2F},
+ {0x002C60, 0x002C60},
+ {0x002C62, 0x002C64},
+ {0x002C67, 0x002C67},
+ {0x002C69, 0x002C69},
+ {0x002C6B, 0x002C6B},
+ {0x002C6D, 0x002C70},
+ {0x002C72, 0x002C72},
+ {0x002C75, 0x002C75},
+ {0x002C7E, 0x002C80},
+ {0x002C82, 0x002C82},
+ {0x002C84, 0x002C84},
+ {0x002C86, 0x002C86},
+ {0x002C88, 0x002C88},
+ {0x002C8A, 0x002C8A},
+ {0x002C8C, 0x002C8C},
+ {0x002C8E, 0x002C8E},
+ {0x002C90, 0x002C90},
+ {0x002C92, 0x002C92},
+ {0x002C94, 0x002C94},
+ {0x002C96, 0x002C96},
+ {0x002C98, 0x002C98},
+ {0x002C9A, 0x002C9A},
+ {0x002C9C, 0x002C9C},
+ {0x002C9E, 0x002C9E},
+ {0x002CA0, 0x002CA0},
+ {0x002CA2, 0x002CA2},
+ {0x002CA4, 0x002CA4},
+ {0x002CA6, 0x002CA6},
+ {0x002CA8, 0x002CA8},
+ {0x002CAA, 0x002CAA},
+ {0x002CAC, 0x002CAC},
+ {0x002CAE, 0x002CAE},
+ {0x002CB0, 0x002CB0},
+ {0x002CB2, 0x002CB2},
+ {0x002CB4, 0x002CB4},
+ {0x002CB6, 0x002CB6},
+ {0x002CB8, 0x002CB8},
+ {0x002CBA, 0x002CBA},
+ {0x002CBC, 0x002CBC},
+ {0x002CBE, 0x002CBE},
+ {0x002CC0, 0x002CC0},
+ {0x002CC2, 0x002CC2},
+ {0x002CC4, 0x002CC4},
+ {0x002CC6, 0x002CC6},
+ {0x002CC8, 0x002CC8},
+ {0x002CCA, 0x002CCA},
+ {0x002CCC, 0x002CCC},
+ {0x002CCE, 0x002CCE},
+ {0x002CD0, 0x002CD0},
+ {0x002CD2, 0x002CD2},
+ {0x002CD4, 0x002CD4},
+ {0x002CD6, 0x002CD6},
+ {0x002CD8, 0x002CD8},
+ {0x002CDA, 0x002CDA},
+ {0x002CDC, 0x002CDC},
+ {0x002CDE, 0x002CDE},
+ {0x002CE0, 0x002CE0},
+ {0x002CE2, 0x002CE2},
+ {0x002CEB, 0x002CEB},
+ {0x002CED, 0x002CED},
+ {0x002CF2, 0x002CF2},
+ {0x00A640, 0x00A640},
+ {0x00A642, 0x00A642},
+ {0x00A644, 0x00A644},
+ {0x00A646, 0x00A646},
+ {0x00A648, 0x00A648},
+ {0x00A64A, 0x00A64A},
+ {0x00A64C, 0x00A64C},
+ {0x00A64E, 0x00A64E},
+ {0x00A650, 0x00A650},
+ {0x00A652, 0x00A652},
+ {0x00A654, 0x00A654},
+ {0x00A656, 0x00A656},
+ {0x00A658, 0x00A658},
+ {0x00A65A, 0x00A65A},
+ {0x00A65C, 0x00A65C},
+ {0x00A65E, 0x00A65E},
+ {0x00A660, 0x00A660},
+ {0x00A662, 0x00A662},
+ {0x00A664, 0x00A664},
+ {0x00A666, 0x00A666},
+ {0x00A668, 0x00A668},
+ {0x00A66A, 0x00A66A},
+ {0x00A66C, 0x00A66C},
+ {0x00A680, 0x00A680},
+ {0x00A682, 0x00A682},
+ {0x00A684, 0x00A684},
+ {0x00A686, 0x00A686},
+ {0x00A688, 0x00A688},
+ {0x00A68A, 0x00A68A},
+ {0x00A68C, 0x00A68C},
+ {0x00A68E, 0x00A68E},
+ {0x00A690, 0x00A690},
+ {0x00A692, 0x00A692},
+ {0x00A694, 0x00A694},
+ {0x00A696, 0x00A696},
+ {0x00A698, 0x00A698},
+ {0x00A69A, 0x00A69A},
+ {0x00A722, 0x00A722},
+ {0x00A724, 0x00A724},
+ {0x00A726, 0x00A726},
+ {0x00A728, 0x00A728},
+ {0x00A72A, 0x00A72A},
+ {0x00A72C, 0x00A72C},
+ {0x00A72E, 0x00A72E},
+ {0x00A732, 0x00A732},
+ {0x00A734, 0x00A734},
+ {0x00A736, 0x00A736},
+ {0x00A738, 0x00A738},
+ {0x00A73A, 0x00A73A},
+ {0x00A73C, 0x00A73C},
+ {0x00A73E, 0x00A73E},
+ {0x00A740, 0x00A740},
+ {0x00A742, 0x00A742},
+ {0x00A744, 0x00A744},
+ {0x00A746, 0x00A746},
+ {0x00A748, 0x00A748},
+ {0x00A74A, 0x00A74A},
+ {0x00A74C, 0x00A74C},
+ {0x00A74E, 0x00A74E},
+ {0x00A750, 0x00A750},
+ {0x00A752, 0x00A752},
+ {0x00A754, 0x00A754},
+ {0x00A756, 0x00A756},
+ {0x00A758, 0x00A758},
+ {0x00A75A, 0x00A75A},
+ {0x00A75C, 0x00A75C},
+ {0x00A75E, 0x00A75E},
+ {0x00A760, 0x00A760},
+ {0x00A762, 0x00A762},
+ {0x00A764, 0x00A764},
+ {0x00A766, 0x00A766},
+ {0x00A768, 0x00A768},
+ {0x00A76A, 0x00A76A},
+ {0x00A76C, 0x00A76C},
+ {0x00A76E, 0x00A76E},
+ {0x00A779, 0x00A779},
+ {0x00A77B, 0x00A77B},
+ {0x00A77D, 0x00A77E},
+ {0x00A780, 0x00A780},
+ {0x00A782, 0x00A782},
+ {0x00A784, 0x00A784},
+ {0x00A786, 0x00A786},
+ {0x00A78B, 0x00A78B},
+ {0x00A78D, 0x00A78D},
+ {0x00A790, 0x00A790},
+ {0x00A792, 0x00A792},
+ {0x00A796, 0x00A796},
+ {0x00A798, 0x00A798},
+ {0x00A79A, 0x00A79A},
+ {0x00A79C, 0x00A79C},
+ {0x00A79E, 0x00A79E},
+ {0x00A7A0, 0x00A7A0},
+ {0x00A7A2, 0x00A7A2},
+ {0x00A7A4, 0x00A7A4},
+ {0x00A7A6, 0x00A7A6},
+ {0x00A7A8, 0x00A7A8},
+ {0x00A7AA, 0x00A7AE},
+ {0x00A7B0, 0x00A7B4},
+ {0x00A7B6, 0x00A7B6},
+ {0x00A7B8, 0x00A7B8},
+ {0x00A7BA, 0x00A7BA},
+ {0x00A7BC, 0x00A7BC},
+ {0x00A7BE, 0x00A7BE},
+ {0x00A7C0, 0x00A7C0},
+ {0x00A7C2, 0x00A7C2},
+ {0x00A7C4, 0x00A7C7},
+ {0x00A7C9, 0x00A7C9},
+ {0x00A7D0, 0x00A7D0},
+ {0x00A7D6, 0x00A7D6},
+ {0x00A7D8, 0x00A7D8},
+ {0x00A7F5, 0x00A7F5},
+ {0x00FF21, 0x00FF3A},
+ {0x010400, 0x010427},
+ {0x0104B0, 0x0104D3},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010C80, 0x010CB2},
+ {0x0118A0, 0x0118BF},
+ {0x016E40, 0x016E5F},
+ {0x01D400, 0x01D419},
+ {0x01D434, 0x01D44D},
+ {0x01D468, 0x01D481},
+ {0x01D49C, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B5},
+ {0x01D4D0, 0x01D4E9},
+ {0x01D504, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D538, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D56C, 0x01D585},
+ {0x01D5A0, 0x01D5B9},
+ {0x01D5D4, 0x01D5ED},
+ {0x01D608, 0x01D621},
+ {0x01D63C, 0x01D655},
+ {0x01D670, 0x01D689},
+ {0x01D6A8, 0x01D6C0},
+ {0x01D6E2, 0x01D6FA},
+ {0x01D71C, 0x01D734},
+ {0x01D756, 0x01D76E},
+ {0x01D790, 0x01D7A8},
+ {0x01D7CA, 0x01D7CA},
+ {0x01E900, 0x01E921},
+ {0x01F130, 0x01F149},
+ {0x01F150, 0x01F169},
+ {0x01F170, 0x01F189},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_uppercase(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_variation_selector.c b/vendor/librune/lib/rtype/rune_has_prop_variation_selector.c
new file mode 100644
index 0000000..fefa023
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_variation_selector.c
@@ -0,0 +1,34 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x0uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x00180B, 0x00180D},
+ {0x00180F, 0x00180F},
+ {0x00FE00, 0x00FE0F},
+ {0x0E0100, 0x0E01EF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_variation_selector(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_white_space.c b/vendor/librune/lib/rtype/rune_has_prop_white_space.c
new file mode 100644
index 0000000..07f9c08
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_white_space.c
@@ -0,0 +1,40 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0x10000002000000000000000000000000100003E00uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000009, 0x00000D},
+ {0x000020, 0x000020},
+ {0x000085, 0x000085},
+ {0x0000A0, 0x0000A0},
+ {0x001680, 0x001680},
+ {0x002000, 0x00200A},
+ {0x002028, 0x002029},
+ {0x00202F, 0x00202F},
+ {0x00205F, 0x00205F},
+ {0x003000, 0x003000},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_white_space(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_xid_continue.c b/vendor/librune/lib/rtype/rune_has_prop_xid_continue.c
new file mode 100644
index 0000000..7f71bbf
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_xid_continue.c
@@ -0,0 +1,806 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF04A004000000000007FFFFFE87FFFFFE03FF000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000030, 0x000039},
+ {0x000041, 0x00005A},
+ {0x00005F, 0x00005F},
+ {0x000061, 0x00007A},
+ {0x0000AA, 0x0000AA},
+ {0x0000B5, 0x0000B5},
+ {0x0000B7, 0x0000B7},
+ {0x0000BA, 0x0000BA},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000F6},
+ {0x0000F8, 0x0002C1},
+ {0x0002C6, 0x0002D1},
+ {0x0002E0, 0x0002E4},
+ {0x0002EC, 0x0002EC},
+ {0x0002EE, 0x0002EE},
+ {0x000300, 0x000374},
+ {0x000376, 0x000377},
+ {0x00037B, 0x00037D},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x0003F5},
+ {0x0003F7, 0x000481},
+ {0x000483, 0x000487},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000559, 0x000559},
+ {0x000560, 0x000588},
+ {0x000591, 0x0005BD},
+ {0x0005BF, 0x0005BF},
+ {0x0005C1, 0x0005C2},
+ {0x0005C4, 0x0005C5},
+ {0x0005C7, 0x0005C7},
+ {0x0005D0, 0x0005EA},
+ {0x0005EF, 0x0005F2},
+ {0x000610, 0x00061A},
+ {0x000620, 0x000669},
+ {0x00066E, 0x0006D3},
+ {0x0006D5, 0x0006DC},
+ {0x0006DF, 0x0006E8},
+ {0x0006EA, 0x0006FC},
+ {0x0006FF, 0x0006FF},
+ {0x000710, 0x00074A},
+ {0x00074D, 0x0007B1},
+ {0x0007C0, 0x0007F5},
+ {0x0007FA, 0x0007FA},
+ {0x0007FD, 0x0007FD},
+ {0x000800, 0x00082D},
+ {0x000840, 0x00085B},
+ {0x000860, 0x00086A},
+ {0x000870, 0x000887},
+ {0x000889, 0x00088E},
+ {0x000898, 0x0008E1},
+ {0x0008E3, 0x000963},
+ {0x000966, 0x00096F},
+ {0x000971, 0x000983},
+ {0x000985, 0x00098C},
+ {0x00098F, 0x000990},
+ {0x000993, 0x0009A8},
+ {0x0009AA, 0x0009B0},
+ {0x0009B2, 0x0009B2},
+ {0x0009B6, 0x0009B9},
+ {0x0009BC, 0x0009C4},
+ {0x0009C7, 0x0009C8},
+ {0x0009CB, 0x0009CE},
+ {0x0009D7, 0x0009D7},
+ {0x0009DC, 0x0009DD},
+ {0x0009DF, 0x0009E3},
+ {0x0009E6, 0x0009F1},
+ {0x0009FC, 0x0009FC},
+ {0x0009FE, 0x0009FE},
+ {0x000A01, 0x000A03},
+ {0x000A05, 0x000A0A},
+ {0x000A0F, 0x000A10},
+ {0x000A13, 0x000A28},
+ {0x000A2A, 0x000A30},
+ {0x000A32, 0x000A33},
+ {0x000A35, 0x000A36},
+ {0x000A38, 0x000A39},
+ {0x000A3C, 0x000A3C},
+ {0x000A3E, 0x000A42},
+ {0x000A47, 0x000A48},
+ {0x000A4B, 0x000A4D},
+ {0x000A51, 0x000A51},
+ {0x000A59, 0x000A5C},
+ {0x000A5E, 0x000A5E},
+ {0x000A66, 0x000A75},
+ {0x000A81, 0x000A83},
+ {0x000A85, 0x000A8D},
+ {0x000A8F, 0x000A91},
+ {0x000A93, 0x000AA8},
+ {0x000AAA, 0x000AB0},
+ {0x000AB2, 0x000AB3},
+ {0x000AB5, 0x000AB9},
+ {0x000ABC, 0x000AC5},
+ {0x000AC7, 0x000AC9},
+ {0x000ACB, 0x000ACD},
+ {0x000AD0, 0x000AD0},
+ {0x000AE0, 0x000AE3},
+ {0x000AE6, 0x000AEF},
+ {0x000AF9, 0x000AFF},
+ {0x000B01, 0x000B03},
+ {0x000B05, 0x000B0C},
+ {0x000B0F, 0x000B10},
+ {0x000B13, 0x000B28},
+ {0x000B2A, 0x000B30},
+ {0x000B32, 0x000B33},
+ {0x000B35, 0x000B39},
+ {0x000B3C, 0x000B44},
+ {0x000B47, 0x000B48},
+ {0x000B4B, 0x000B4D},
+ {0x000B55, 0x000B57},
+ {0x000B5C, 0x000B5D},
+ {0x000B5F, 0x000B63},
+ {0x000B66, 0x000B6F},
+ {0x000B71, 0x000B71},
+ {0x000B82, 0x000B83},
+ {0x000B85, 0x000B8A},
+ {0x000B8E, 0x000B90},
+ {0x000B92, 0x000B95},
+ {0x000B99, 0x000B9A},
+ {0x000B9C, 0x000B9C},
+ {0x000B9E, 0x000B9F},
+ {0x000BA3, 0x000BA4},
+ {0x000BA8, 0x000BAA},
+ {0x000BAE, 0x000BB9},
+ {0x000BBE, 0x000BC2},
+ {0x000BC6, 0x000BC8},
+ {0x000BCA, 0x000BCD},
+ {0x000BD0, 0x000BD0},
+ {0x000BD7, 0x000BD7},
+ {0x000BE6, 0x000BEF},
+ {0x000C00, 0x000C0C},
+ {0x000C0E, 0x000C10},
+ {0x000C12, 0x000C28},
+ {0x000C2A, 0x000C39},
+ {0x000C3C, 0x000C44},
+ {0x000C46, 0x000C48},
+ {0x000C4A, 0x000C4D},
+ {0x000C55, 0x000C56},
+ {0x000C58, 0x000C5A},
+ {0x000C5D, 0x000C5D},
+ {0x000C60, 0x000C63},
+ {0x000C66, 0x000C6F},
+ {0x000C80, 0x000C83},
+ {0x000C85, 0x000C8C},
+ {0x000C8E, 0x000C90},
+ {0x000C92, 0x000CA8},
+ {0x000CAA, 0x000CB3},
+ {0x000CB5, 0x000CB9},
+ {0x000CBC, 0x000CC4},
+ {0x000CC6, 0x000CC8},
+ {0x000CCA, 0x000CCD},
+ {0x000CD5, 0x000CD6},
+ {0x000CDD, 0x000CDE},
+ {0x000CE0, 0x000CE3},
+ {0x000CE6, 0x000CEF},
+ {0x000CF1, 0x000CF3},
+ {0x000D00, 0x000D0C},
+ {0x000D0E, 0x000D10},
+ {0x000D12, 0x000D44},
+ {0x000D46, 0x000D48},
+ {0x000D4A, 0x000D4E},
+ {0x000D54, 0x000D57},
+ {0x000D5F, 0x000D63},
+ {0x000D66, 0x000D6F},
+ {0x000D7A, 0x000D7F},
+ {0x000D81, 0x000D83},
+ {0x000D85, 0x000D96},
+ {0x000D9A, 0x000DB1},
+ {0x000DB3, 0x000DBB},
+ {0x000DBD, 0x000DBD},
+ {0x000DC0, 0x000DC6},
+ {0x000DCA, 0x000DCA},
+ {0x000DCF, 0x000DD4},
+ {0x000DD6, 0x000DD6},
+ {0x000DD8, 0x000DDF},
+ {0x000DE6, 0x000DEF},
+ {0x000DF2, 0x000DF3},
+ {0x000E01, 0x000E3A},
+ {0x000E40, 0x000E4E},
+ {0x000E50, 0x000E59},
+ {0x000E81, 0x000E82},
+ {0x000E84, 0x000E84},
+ {0x000E86, 0x000E8A},
+ {0x000E8C, 0x000EA3},
+ {0x000EA5, 0x000EA5},
+ {0x000EA7, 0x000EBD},
+ {0x000EC0, 0x000EC4},
+ {0x000EC6, 0x000EC6},
+ {0x000EC8, 0x000ECE},
+ {0x000ED0, 0x000ED9},
+ {0x000EDC, 0x000EDF},
+ {0x000F00, 0x000F00},
+ {0x000F18, 0x000F19},
+ {0x000F20, 0x000F29},
+ {0x000F35, 0x000F35},
+ {0x000F37, 0x000F37},
+ {0x000F39, 0x000F39},
+ {0x000F3E, 0x000F47},
+ {0x000F49, 0x000F6C},
+ {0x000F71, 0x000F84},
+ {0x000F86, 0x000F97},
+ {0x000F99, 0x000FBC},
+ {0x000FC6, 0x000FC6},
+ {0x001000, 0x001049},
+ {0x001050, 0x00109D},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x0010FA},
+ {0x0010FC, 0x001248},
+ {0x00124A, 0x00124D},
+ {0x001250, 0x001256},
+ {0x001258, 0x001258},
+ {0x00125A, 0x00125D},
+ {0x001260, 0x001288},
+ {0x00128A, 0x00128D},
+ {0x001290, 0x0012B0},
+ {0x0012B2, 0x0012B5},
+ {0x0012B8, 0x0012BE},
+ {0x0012C0, 0x0012C0},
+ {0x0012C2, 0x0012C5},
+ {0x0012C8, 0x0012D6},
+ {0x0012D8, 0x001310},
+ {0x001312, 0x001315},
+ {0x001318, 0x00135A},
+ {0x00135D, 0x00135F},
+ {0x001369, 0x001371},
+ {0x001380, 0x00138F},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001401, 0x00166C},
+ {0x00166F, 0x00167F},
+ {0x001681, 0x00169A},
+ {0x0016A0, 0x0016EA},
+ {0x0016EE, 0x0016F8},
+ {0x001700, 0x001715},
+ {0x00171F, 0x001734},
+ {0x001740, 0x001753},
+ {0x001760, 0x00176C},
+ {0x00176E, 0x001770},
+ {0x001772, 0x001773},
+ {0x001780, 0x0017D3},
+ {0x0017D7, 0x0017D7},
+ {0x0017DC, 0x0017DD},
+ {0x0017E0, 0x0017E9},
+ {0x00180B, 0x00180D},
+ {0x00180F, 0x001819},
+ {0x001820, 0x001878},
+ {0x001880, 0x0018AA},
+ {0x0018B0, 0x0018F5},
+ {0x001900, 0x00191E},
+ {0x001920, 0x00192B},
+ {0x001930, 0x00193B},
+ {0x001946, 0x00196D},
+ {0x001970, 0x001974},
+ {0x001980, 0x0019AB},
+ {0x0019B0, 0x0019C9},
+ {0x0019D0, 0x0019DA},
+ {0x001A00, 0x001A1B},
+ {0x001A20, 0x001A5E},
+ {0x001A60, 0x001A7C},
+ {0x001A7F, 0x001A89},
+ {0x001A90, 0x001A99},
+ {0x001AA7, 0x001AA7},
+ {0x001AB0, 0x001ABD},
+ {0x001ABF, 0x001ACE},
+ {0x001B00, 0x001B4C},
+ {0x001B50, 0x001B59},
+ {0x001B6B, 0x001B73},
+ {0x001B80, 0x001BF3},
+ {0x001C00, 0x001C37},
+ {0x001C40, 0x001C49},
+ {0x001C4D, 0x001C7D},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001CD0, 0x001CD2},
+ {0x001CD4, 0x001CFA},
+ {0x001D00, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FE0, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFC},
+ {0x00200C, 0x00200D},
+ {0x00203F, 0x002040},
+ {0x002054, 0x002054},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x0020D0, 0x0020DC},
+ {0x0020E1, 0x0020E1},
+ {0x0020E5, 0x0020F0},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210A, 0x002113},
+ {0x002115, 0x002115},
+ {0x002118, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002126, 0x002126},
+ {0x002128, 0x002128},
+ {0x00212A, 0x002139},
+ {0x00213C, 0x00213F},
+ {0x002145, 0x002149},
+ {0x00214E, 0x00214E},
+ {0x002160, 0x002188},
+ {0x002C00, 0x002CE4},
+ {0x002CEB, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x002D30, 0x002D67},
+ {0x002D6F, 0x002D6F},
+ {0x002D7F, 0x002D96},
+ {0x002DA0, 0x002DA6},
+ {0x002DA8, 0x002DAE},
+ {0x002DB0, 0x002DB6},
+ {0x002DB8, 0x002DBE},
+ {0x002DC0, 0x002DC6},
+ {0x002DC8, 0x002DCE},
+ {0x002DD0, 0x002DD6},
+ {0x002DD8, 0x002DDE},
+ {0x002DE0, 0x002DFF},
+ {0x003005, 0x003007},
+ {0x003021, 0x00302F},
+ {0x003031, 0x003035},
+ {0x003038, 0x00303C},
+ {0x003041, 0x003096},
+ {0x003099, 0x00309A},
+ {0x00309D, 0x00309F},
+ {0x0030A1, 0x0030FF},
+ {0x003105, 0x00312F},
+ {0x003131, 0x00318E},
+ {0x0031A0, 0x0031BF},
+ {0x0031F0, 0x0031FF},
+ {0x003400, 0x004DBF},
+ {0x004E00, 0x00A48C},
+ {0x00A4D0, 0x00A4FD},
+ {0x00A500, 0x00A60C},
+ {0x00A610, 0x00A62B},
+ {0x00A640, 0x00A66F},
+ {0x00A674, 0x00A67D},
+ {0x00A67F, 0x00A6F1},
+ {0x00A717, 0x00A71F},
+ {0x00A722, 0x00A788},
+ {0x00A78B, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D9},
+ {0x00A7F2, 0x00A827},
+ {0x00A82C, 0x00A82C},
+ {0x00A840, 0x00A873},
+ {0x00A880, 0x00A8C5},
+ {0x00A8D0, 0x00A8D9},
+ {0x00A8E0, 0x00A8F7},
+ {0x00A8FB, 0x00A8FB},
+ {0x00A8FD, 0x00A92D},
+ {0x00A930, 0x00A953},
+ {0x00A960, 0x00A97C},
+ {0x00A980, 0x00A9C0},
+ {0x00A9CF, 0x00A9D9},
+ {0x00A9E0, 0x00A9FE},
+ {0x00AA00, 0x00AA36},
+ {0x00AA40, 0x00AA4D},
+ {0x00AA50, 0x00AA59},
+ {0x00AA60, 0x00AA76},
+ {0x00AA7A, 0x00AAC2},
+ {0x00AADB, 0x00AADD},
+ {0x00AAE0, 0x00AAEF},
+ {0x00AAF2, 0x00AAF6},
+ {0x00AB01, 0x00AB06},
+ {0x00AB09, 0x00AB0E},
+ {0x00AB11, 0x00AB16},
+ {0x00AB20, 0x00AB26},
+ {0x00AB28, 0x00AB2E},
+ {0x00AB30, 0x00AB5A},
+ {0x00AB5C, 0x00AB69},
+ {0x00AB70, 0x00ABEA},
+ {0x00ABEC, 0x00ABED},
+ {0x00ABF0, 0x00ABF9},
+ {0x00AC00, 0x00D7A3},
+ {0x00D7B0, 0x00D7C6},
+ {0x00D7CB, 0x00D7FB},
+ {0x00F900, 0x00FA6D},
+ {0x00FA70, 0x00FAD9},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FB1D, 0x00FB28},
+ {0x00FB2A, 0x00FB36},
+ {0x00FB38, 0x00FB3C},
+ {0x00FB3E, 0x00FB3E},
+ {0x00FB40, 0x00FB41},
+ {0x00FB43, 0x00FB44},
+ {0x00FB46, 0x00FBB1},
+ {0x00FBD3, 0x00FC5D},
+ {0x00FC64, 0x00FD3D},
+ {0x00FD50, 0x00FD8F},
+ {0x00FD92, 0x00FDC7},
+ {0x00FDF0, 0x00FDF9},
+ {0x00FE00, 0x00FE0F},
+ {0x00FE20, 0x00FE2F},
+ {0x00FE33, 0x00FE34},
+ {0x00FE4D, 0x00FE4F},
+ {0x00FE71, 0x00FE71},
+ {0x00FE73, 0x00FE73},
+ {0x00FE77, 0x00FE77},
+ {0x00FE79, 0x00FE79},
+ {0x00FE7B, 0x00FE7B},
+ {0x00FE7D, 0x00FE7D},
+ {0x00FE7F, 0x00FEFC},
+ {0x00FF10, 0x00FF19},
+ {0x00FF21, 0x00FF3A},
+ {0x00FF3F, 0x00FF3F},
+ {0x00FF41, 0x00FF5A},
+ {0x00FF65, 0x00FFBE},
+ {0x00FFC2, 0x00FFC7},
+ {0x00FFCA, 0x00FFCF},
+ {0x00FFD2, 0x00FFD7},
+ {0x00FFDA, 0x00FFDC},
+ {0x010000, 0x01000B},
+ {0x01000D, 0x010026},
+ {0x010028, 0x01003A},
+ {0x01003C, 0x01003D},
+ {0x01003F, 0x01004D},
+ {0x010050, 0x01005D},
+ {0x010080, 0x0100FA},
+ {0x010140, 0x010174},
+ {0x0101FD, 0x0101FD},
+ {0x010280, 0x01029C},
+ {0x0102A0, 0x0102D0},
+ {0x0102E0, 0x0102E0},
+ {0x010300, 0x01031F},
+ {0x01032D, 0x01034A},
+ {0x010350, 0x01037A},
+ {0x010380, 0x01039D},
+ {0x0103A0, 0x0103C3},
+ {0x0103C8, 0x0103CF},
+ {0x0103D1, 0x0103D5},
+ {0x010400, 0x01049D},
+ {0x0104A0, 0x0104A9},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010500, 0x010527},
+ {0x010530, 0x010563},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010600, 0x010736},
+ {0x010740, 0x010755},
+ {0x010760, 0x010767},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010800, 0x010805},
+ {0x010808, 0x010808},
+ {0x01080A, 0x010835},
+ {0x010837, 0x010838},
+ {0x01083C, 0x01083C},
+ {0x01083F, 0x010855},
+ {0x010860, 0x010876},
+ {0x010880, 0x01089E},
+ {0x0108E0, 0x0108F2},
+ {0x0108F4, 0x0108F5},
+ {0x010900, 0x010915},
+ {0x010920, 0x010939},
+ {0x010980, 0x0109B7},
+ {0x0109BE, 0x0109BF},
+ {0x010A00, 0x010A03},
+ {0x010A05, 0x010A06},
+ {0x010A0C, 0x010A13},
+ {0x010A15, 0x010A17},
+ {0x010A19, 0x010A35},
+ {0x010A38, 0x010A3A},
+ {0x010A3F, 0x010A3F},
+ {0x010A60, 0x010A7C},
+ {0x010A80, 0x010A9C},
+ {0x010AC0, 0x010AC7},
+ {0x010AC9, 0x010AE6},
+ {0x010B00, 0x010B35},
+ {0x010B40, 0x010B55},
+ {0x010B60, 0x010B72},
+ {0x010B80, 0x010B91},
+ {0x010C00, 0x010C48},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x010D00, 0x010D27},
+ {0x010D30, 0x010D39},
+ {0x010E80, 0x010EA9},
+ {0x010EAB, 0x010EAC},
+ {0x010EB0, 0x010EB1},
+ {0x010EFD, 0x010F1C},
+ {0x010F27, 0x010F27},
+ {0x010F30, 0x010F50},
+ {0x010F70, 0x010F85},
+ {0x010FB0, 0x010FC4},
+ {0x010FE0, 0x010FF6},
+ {0x011000, 0x011046},
+ {0x011066, 0x011075},
+ {0x01107F, 0x0110BA},
+ {0x0110C2, 0x0110C2},
+ {0x0110D0, 0x0110E8},
+ {0x0110F0, 0x0110F9},
+ {0x011100, 0x011134},
+ {0x011136, 0x01113F},
+ {0x011144, 0x011147},
+ {0x011150, 0x011173},
+ {0x011176, 0x011176},
+ {0x011180, 0x0111C4},
+ {0x0111C9, 0x0111CC},
+ {0x0111CE, 0x0111DA},
+ {0x0111DC, 0x0111DC},
+ {0x011200, 0x011211},
+ {0x011213, 0x011237},
+ {0x01123E, 0x011241},
+ {0x011280, 0x011286},
+ {0x011288, 0x011288},
+ {0x01128A, 0x01128D},
+ {0x01128F, 0x01129D},
+ {0x01129F, 0x0112A8},
+ {0x0112B0, 0x0112EA},
+ {0x0112F0, 0x0112F9},
+ {0x011300, 0x011303},
+ {0x011305, 0x01130C},
+ {0x01130F, 0x011310},
+ {0x011313, 0x011328},
+ {0x01132A, 0x011330},
+ {0x011332, 0x011333},
+ {0x011335, 0x011339},
+ {0x01133B, 0x011344},
+ {0x011347, 0x011348},
+ {0x01134B, 0x01134D},
+ {0x011350, 0x011350},
+ {0x011357, 0x011357},
+ {0x01135D, 0x011363},
+ {0x011366, 0x01136C},
+ {0x011370, 0x011374},
+ {0x011400, 0x01144A},
+ {0x011450, 0x011459},
+ {0x01145E, 0x011461},
+ {0x011480, 0x0114C5},
+ {0x0114C7, 0x0114C7},
+ {0x0114D0, 0x0114D9},
+ {0x011580, 0x0115B5},
+ {0x0115B8, 0x0115C0},
+ {0x0115D8, 0x0115DD},
+ {0x011600, 0x011640},
+ {0x011644, 0x011644},
+ {0x011650, 0x011659},
+ {0x011680, 0x0116B8},
+ {0x0116C0, 0x0116C9},
+ {0x011700, 0x01171A},
+ {0x01171D, 0x01172B},
+ {0x011730, 0x011739},
+ {0x011740, 0x011746},
+ {0x011800, 0x01183A},
+ {0x0118A0, 0x0118E9},
+ {0x0118FF, 0x011906},
+ {0x011909, 0x011909},
+ {0x01190C, 0x011913},
+ {0x011915, 0x011916},
+ {0x011918, 0x011935},
+ {0x011937, 0x011938},
+ {0x01193B, 0x011943},
+ {0x011950, 0x011959},
+ {0x0119A0, 0x0119A7},
+ {0x0119AA, 0x0119D7},
+ {0x0119DA, 0x0119E1},
+ {0x0119E3, 0x0119E4},
+ {0x011A00, 0x011A3E},
+ {0x011A47, 0x011A47},
+ {0x011A50, 0x011A99},
+ {0x011A9D, 0x011A9D},
+ {0x011AB0, 0x011AF8},
+ {0x011C00, 0x011C08},
+ {0x011C0A, 0x011C36},
+ {0x011C38, 0x011C40},
+ {0x011C50, 0x011C59},
+ {0x011C72, 0x011C8F},
+ {0x011C92, 0x011CA7},
+ {0x011CA9, 0x011CB6},
+ {0x011D00, 0x011D06},
+ {0x011D08, 0x011D09},
+ {0x011D0B, 0x011D36},
+ {0x011D3A, 0x011D3A},
+ {0x011D3C, 0x011D3D},
+ {0x011D3F, 0x011D47},
+ {0x011D50, 0x011D59},
+ {0x011D60, 0x011D65},
+ {0x011D67, 0x011D68},
+ {0x011D6A, 0x011D8E},
+ {0x011D90, 0x011D91},
+ {0x011D93, 0x011D98},
+ {0x011DA0, 0x011DA9},
+ {0x011EE0, 0x011EF6},
+ {0x011F00, 0x011F10},
+ {0x011F12, 0x011F3A},
+ {0x011F3E, 0x011F42},
+ {0x011F50, 0x011F59},
+ {0x011FB0, 0x011FB0},
+ {0x012000, 0x012399},
+ {0x012400, 0x01246E},
+ {0x012480, 0x012543},
+ {0x012F90, 0x012FF0},
+ {0x013000, 0x01342F},
+ {0x013440, 0x013455},
+ {0x014400, 0x014646},
+ {0x016800, 0x016A38},
+ {0x016A40, 0x016A5E},
+ {0x016A60, 0x016A69},
+ {0x016A70, 0x016ABE},
+ {0x016AC0, 0x016AC9},
+ {0x016AD0, 0x016AED},
+ {0x016AF0, 0x016AF4},
+ {0x016B00, 0x016B36},
+ {0x016B40, 0x016B43},
+ {0x016B50, 0x016B59},
+ {0x016B63, 0x016B77},
+ {0x016B7D, 0x016B8F},
+ {0x016E40, 0x016E7F},
+ {0x016F00, 0x016F4A},
+ {0x016F4F, 0x016F87},
+ {0x016F8F, 0x016F9F},
+ {0x016FE0, 0x016FE1},
+ {0x016FE3, 0x016FE4},
+ {0x016FF0, 0x016FF1},
+ {0x017000, 0x0187F7},
+ {0x018800, 0x018CD5},
+ {0x018D00, 0x018D08},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01B000, 0x01B122},
+ {0x01B132, 0x01B132},
+ {0x01B150, 0x01B152},
+ {0x01B155, 0x01B155},
+ {0x01B164, 0x01B167},
+ {0x01B170, 0x01B2FB},
+ {0x01BC00, 0x01BC6A},
+ {0x01BC70, 0x01BC7C},
+ {0x01BC80, 0x01BC88},
+ {0x01BC90, 0x01BC99},
+ {0x01BC9D, 0x01BC9E},
+ {0x01CF00, 0x01CF2D},
+ {0x01CF30, 0x01CF46},
+ {0x01D165, 0x01D169},
+ {0x01D16D, 0x01D172},
+ {0x01D17B, 0x01D182},
+ {0x01D185, 0x01D18B},
+ {0x01D1AA, 0x01D1AD},
+ {0x01D242, 0x01D244},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D6C0},
+ {0x01D6C2, 0x01D6DA},
+ {0x01D6DC, 0x01D6FA},
+ {0x01D6FC, 0x01D714},
+ {0x01D716, 0x01D734},
+ {0x01D736, 0x01D74E},
+ {0x01D750, 0x01D76E},
+ {0x01D770, 0x01D788},
+ {0x01D78A, 0x01D7A8},
+ {0x01D7AA, 0x01D7C2},
+ {0x01D7C4, 0x01D7CB},
+ {0x01D7CE, 0x01D7FF},
+ {0x01DA00, 0x01DA36},
+ {0x01DA3B, 0x01DA6C},
+ {0x01DA75, 0x01DA75},
+ {0x01DA84, 0x01DA84},
+ {0x01DA9B, 0x01DA9F},
+ {0x01DAA1, 0x01DAAF},
+ {0x01DF00, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E000, 0x01E006},
+ {0x01E008, 0x01E018},
+ {0x01E01B, 0x01E021},
+ {0x01E023, 0x01E024},
+ {0x01E026, 0x01E02A},
+ {0x01E030, 0x01E06D},
+ {0x01E08F, 0x01E08F},
+ {0x01E100, 0x01E12C},
+ {0x01E130, 0x01E13D},
+ {0x01E140, 0x01E149},
+ {0x01E14E, 0x01E14E},
+ {0x01E290, 0x01E2AE},
+ {0x01E2C0, 0x01E2F9},
+ {0x01E4D0, 0x01E4F9},
+ {0x01E7E0, 0x01E7E6},
+ {0x01E7E8, 0x01E7EB},
+ {0x01E7ED, 0x01E7EE},
+ {0x01E7F0, 0x01E7FE},
+ {0x01E800, 0x01E8C4},
+ {0x01E8D0, 0x01E8D6},
+ {0x01E900, 0x01E94B},
+ {0x01E950, 0x01E959},
+ {0x01EE00, 0x01EE03},
+ {0x01EE05, 0x01EE1F},
+ {0x01EE21, 0x01EE22},
+ {0x01EE24, 0x01EE24},
+ {0x01EE27, 0x01EE27},
+ {0x01EE29, 0x01EE32},
+ {0x01EE34, 0x01EE37},
+ {0x01EE39, 0x01EE39},
+ {0x01EE3B, 0x01EE3B},
+ {0x01EE42, 0x01EE42},
+ {0x01EE47, 0x01EE47},
+ {0x01EE49, 0x01EE49},
+ {0x01EE4B, 0x01EE4B},
+ {0x01EE4D, 0x01EE4F},
+ {0x01EE51, 0x01EE52},
+ {0x01EE54, 0x01EE54},
+ {0x01EE57, 0x01EE57},
+ {0x01EE59, 0x01EE59},
+ {0x01EE5B, 0x01EE5B},
+ {0x01EE5D, 0x01EE5D},
+ {0x01EE5F, 0x01EE5F},
+ {0x01EE61, 0x01EE62},
+ {0x01EE64, 0x01EE64},
+ {0x01EE67, 0x01EE6A},
+ {0x01EE6C, 0x01EE72},
+ {0x01EE74, 0x01EE77},
+ {0x01EE79, 0x01EE7C},
+ {0x01EE7E, 0x01EE7E},
+ {0x01EE80, 0x01EE89},
+ {0x01EE8B, 0x01EE9B},
+ {0x01EEA1, 0x01EEA3},
+ {0x01EEA5, 0x01EEA9},
+ {0x01EEAB, 0x01EEBB},
+ {0x01FBF0, 0x01FBF9},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x02F800, 0x02FA1D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+ {0x0E0100, 0x0E01EF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_xid_continue(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/rune_has_prop_xid_start.c b/vendor/librune/lib/rtype/rune_has_prop_xid_start.c
new file mode 100644
index 0000000..d2c9e98
--- /dev/null
+++ b/vendor/librune/lib/rtype/rune_has_prop_xid_start.c
@@ -0,0 +1,697 @@
+/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */
+
+#include "rtype.h"
+
+#include "internal/common.h"
+
+#if BIT_LOOKUP
+static const unsigned _BitInt(LATIN1_MAX + 1) mask = 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb;
+#endif
+
+static const struct {
+ rune lo, hi;
+} lookup_tbl[] = {
+ {0x000041, 0x00005A},
+ {0x000061, 0x00007A},
+ {0x0000AA, 0x0000AA},
+ {0x0000B5, 0x0000B5},
+ {0x0000BA, 0x0000BA},
+ {0x0000C0, 0x0000D6},
+ {0x0000D8, 0x0000F6},
+ {0x0000F8, 0x0002C1},
+ {0x0002C6, 0x0002D1},
+ {0x0002E0, 0x0002E4},
+ {0x0002EC, 0x0002EC},
+ {0x0002EE, 0x0002EE},
+ {0x000370, 0x000374},
+ {0x000376, 0x000377},
+ {0x00037B, 0x00037D},
+ {0x00037F, 0x00037F},
+ {0x000386, 0x000386},
+ {0x000388, 0x00038A},
+ {0x00038C, 0x00038C},
+ {0x00038E, 0x0003A1},
+ {0x0003A3, 0x0003F5},
+ {0x0003F7, 0x000481},
+ {0x00048A, 0x00052F},
+ {0x000531, 0x000556},
+ {0x000559, 0x000559},
+ {0x000560, 0x000588},
+ {0x0005D0, 0x0005EA},
+ {0x0005EF, 0x0005F2},
+ {0x000620, 0x00064A},
+ {0x00066E, 0x00066F},
+ {0x000671, 0x0006D3},
+ {0x0006D5, 0x0006D5},
+ {0x0006E5, 0x0006E6},
+ {0x0006EE, 0x0006EF},
+ {0x0006FA, 0x0006FC},
+ {0x0006FF, 0x0006FF},
+ {0x000710, 0x000710},
+ {0x000712, 0x00072F},
+ {0x00074D, 0x0007A5},
+ {0x0007B1, 0x0007B1},
+ {0x0007CA, 0x0007EA},
+ {0x0007F4, 0x0007F5},
+ {0x0007FA, 0x0007FA},
+ {0x000800, 0x000815},
+ {0x00081A, 0x00081A},
+ {0x000824, 0x000824},
+ {0x000828, 0x000828},
+ {0x000840, 0x000858},
+ {0x000860, 0x00086A},
+ {0x000870, 0x000887},
+ {0x000889, 0x00088E},
+ {0x0008A0, 0x0008C9},
+ {0x000904, 0x000939},
+ {0x00093D, 0x00093D},
+ {0x000950, 0x000950},
+ {0x000958, 0x000961},
+ {0x000971, 0x000980},
+ {0x000985, 0x00098C},
+ {0x00098F, 0x000990},
+ {0x000993, 0x0009A8},
+ {0x0009AA, 0x0009B0},
+ {0x0009B2, 0x0009B2},
+ {0x0009B6, 0x0009B9},
+ {0x0009BD, 0x0009BD},
+ {0x0009CE, 0x0009CE},
+ {0x0009DC, 0x0009DD},
+ {0x0009DF, 0x0009E1},
+ {0x0009F0, 0x0009F1},
+ {0x0009FC, 0x0009FC},
+ {0x000A05, 0x000A0A},
+ {0x000A0F, 0x000A10},
+ {0x000A13, 0x000A28},
+ {0x000A2A, 0x000A30},
+ {0x000A32, 0x000A33},
+ {0x000A35, 0x000A36},
+ {0x000A38, 0x000A39},
+ {0x000A59, 0x000A5C},
+ {0x000A5E, 0x000A5E},
+ {0x000A72, 0x000A74},
+ {0x000A85, 0x000A8D},
+ {0x000A8F, 0x000A91},
+ {0x000A93, 0x000AA8},
+ {0x000AAA, 0x000AB0},
+ {0x000AB2, 0x000AB3},
+ {0x000AB5, 0x000AB9},
+ {0x000ABD, 0x000ABD},
+ {0x000AD0, 0x000AD0},
+ {0x000AE0, 0x000AE1},
+ {0x000AF9, 0x000AF9},
+ {0x000B05, 0x000B0C},
+ {0x000B0F, 0x000B10},
+ {0x000B13, 0x000B28},
+ {0x000B2A, 0x000B30},
+ {0x000B32, 0x000B33},
+ {0x000B35, 0x000B39},
+ {0x000B3D, 0x000B3D},
+ {0x000B5C, 0x000B5D},
+ {0x000B5F, 0x000B61},
+ {0x000B71, 0x000B71},
+ {0x000B83, 0x000B83},
+ {0x000B85, 0x000B8A},
+ {0x000B8E, 0x000B90},
+ {0x000B92, 0x000B95},
+ {0x000B99, 0x000B9A},
+ {0x000B9C, 0x000B9C},
+ {0x000B9E, 0x000B9F},
+ {0x000BA3, 0x000BA4},
+ {0x000BA8, 0x000BAA},
+ {0x000BAE, 0x000BB9},
+ {0x000BD0, 0x000BD0},
+ {0x000C05, 0x000C0C},
+ {0x000C0E, 0x000C10},
+ {0x000C12, 0x000C28},
+ {0x000C2A, 0x000C39},
+ {0x000C3D, 0x000C3D},
+ {0x000C58, 0x000C5A},
+ {0x000C5D, 0x000C5D},
+ {0x000C60, 0x000C61},
+ {0x000C80, 0x000C80},
+ {0x000C85, 0x000C8C},
+ {0x000C8E, 0x000C90},
+ {0x000C92, 0x000CA8},
+ {0x000CAA, 0x000CB3},
+ {0x000CB5, 0x000CB9},
+ {0x000CBD, 0x000CBD},
+ {0x000CDD, 0x000CDE},
+ {0x000CE0, 0x000CE1},
+ {0x000CF1, 0x000CF2},
+ {0x000D04, 0x000D0C},
+ {0x000D0E, 0x000D10},
+ {0x000D12, 0x000D3A},
+ {0x000D3D, 0x000D3D},
+ {0x000D4E, 0x000D4E},
+ {0x000D54, 0x000D56},
+ {0x000D5F, 0x000D61},
+ {0x000D7A, 0x000D7F},
+ {0x000D85, 0x000D96},
+ {0x000D9A, 0x000DB1},
+ {0x000DB3, 0x000DBB},
+ {0x000DBD, 0x000DBD},
+ {0x000DC0, 0x000DC6},
+ {0x000E01, 0x000E30},
+ {0x000E32, 0x000E32},
+ {0x000E40, 0x000E46},
+ {0x000E81, 0x000E82},
+ {0x000E84, 0x000E84},
+ {0x000E86, 0x000E8A},
+ {0x000E8C, 0x000EA3},
+ {0x000EA5, 0x000EA5},
+ {0x000EA7, 0x000EB0},
+ {0x000EB2, 0x000EB2},
+ {0x000EBD, 0x000EBD},
+ {0x000EC0, 0x000EC4},
+ {0x000EC6, 0x000EC6},
+ {0x000EDC, 0x000EDF},
+ {0x000F00, 0x000F00},
+ {0x000F40, 0x000F47},
+ {0x000F49, 0x000F6C},
+ {0x000F88, 0x000F8C},
+ {0x001000, 0x00102A},
+ {0x00103F, 0x00103F},
+ {0x001050, 0x001055},
+ {0x00105A, 0x00105D},
+ {0x001061, 0x001061},
+ {0x001065, 0x001066},
+ {0x00106E, 0x001070},
+ {0x001075, 0x001081},
+ {0x00108E, 0x00108E},
+ {0x0010A0, 0x0010C5},
+ {0x0010C7, 0x0010C7},
+ {0x0010CD, 0x0010CD},
+ {0x0010D0, 0x0010FA},
+ {0x0010FC, 0x001248},
+ {0x00124A, 0x00124D},
+ {0x001250, 0x001256},
+ {0x001258, 0x001258},
+ {0x00125A, 0x00125D},
+ {0x001260, 0x001288},
+ {0x00128A, 0x00128D},
+ {0x001290, 0x0012B0},
+ {0x0012B2, 0x0012B5},
+ {0x0012B8, 0x0012BE},
+ {0x0012C0, 0x0012C0},
+ {0x0012C2, 0x0012C5},
+ {0x0012C8, 0x0012D6},
+ {0x0012D8, 0x001310},
+ {0x001312, 0x001315},
+ {0x001318, 0x00135A},
+ {0x001380, 0x00138F},
+ {0x0013A0, 0x0013F5},
+ {0x0013F8, 0x0013FD},
+ {0x001401, 0x00166C},
+ {0x00166F, 0x00167F},
+ {0x001681, 0x00169A},
+ {0x0016A0, 0x0016EA},
+ {0x0016EE, 0x0016F8},
+ {0x001700, 0x001711},
+ {0x00171F, 0x001731},
+ {0x001740, 0x001751},
+ {0x001760, 0x00176C},
+ {0x00176E, 0x001770},
+ {0x001780, 0x0017B3},
+ {0x0017D7, 0x0017D7},
+ {0x0017DC, 0x0017DC},
+ {0x001820, 0x001878},
+ {0x001880, 0x0018A8},
+ {0x0018AA, 0x0018AA},
+ {0x0018B0, 0x0018F5},
+ {0x001900, 0x00191E},
+ {0x001950, 0x00196D},
+ {0x001970, 0x001974},
+ {0x001980, 0x0019AB},
+ {0x0019B0, 0x0019C9},
+ {0x001A00, 0x001A16},
+ {0x001A20, 0x001A54},
+ {0x001AA7, 0x001AA7},
+ {0x001B05, 0x001B33},
+ {0x001B45, 0x001B4C},
+ {0x001B83, 0x001BA0},
+ {0x001BAE, 0x001BAF},
+ {0x001BBA, 0x001BE5},
+ {0x001C00, 0x001C23},
+ {0x001C4D, 0x001C4F},
+ {0x001C5A, 0x001C7D},
+ {0x001C80, 0x001C88},
+ {0x001C90, 0x001CBA},
+ {0x001CBD, 0x001CBF},
+ {0x001CE9, 0x001CEC},
+ {0x001CEE, 0x001CF3},
+ {0x001CF5, 0x001CF6},
+ {0x001CFA, 0x001CFA},
+ {0x001D00, 0x001DBF},
+ {0x001E00, 0x001F15},
+ {0x001F18, 0x001F1D},
+ {0x001F20, 0x001F45},
+ {0x001F48, 0x001F4D},
+ {0x001F50, 0x001F57},
+ {0x001F59, 0x001F59},
+ {0x001F5B, 0x001F5B},
+ {0x001F5D, 0x001F5D},
+ {0x001F5F, 0x001F7D},
+ {0x001F80, 0x001FB4},
+ {0x001FB6, 0x001FBC},
+ {0x001FBE, 0x001FBE},
+ {0x001FC2, 0x001FC4},
+ {0x001FC6, 0x001FCC},
+ {0x001FD0, 0x001FD3},
+ {0x001FD6, 0x001FDB},
+ {0x001FE0, 0x001FEC},
+ {0x001FF2, 0x001FF4},
+ {0x001FF6, 0x001FFC},
+ {0x002071, 0x002071},
+ {0x00207F, 0x00207F},
+ {0x002090, 0x00209C},
+ {0x002102, 0x002102},
+ {0x002107, 0x002107},
+ {0x00210A, 0x002113},
+ {0x002115, 0x002115},
+ {0x002118, 0x00211D},
+ {0x002124, 0x002124},
+ {0x002126, 0x002126},
+ {0x002128, 0x002128},
+ {0x00212A, 0x002139},
+ {0x00213C, 0x00213F},
+ {0x002145, 0x002149},
+ {0x00214E, 0x00214E},
+ {0x002160, 0x002188},
+ {0x002C00, 0x002CE4},
+ {0x002CEB, 0x002CEE},
+ {0x002CF2, 0x002CF3},
+ {0x002D00, 0x002D25},
+ {0x002D27, 0x002D27},
+ {0x002D2D, 0x002D2D},
+ {0x002D30, 0x002D67},
+ {0x002D6F, 0x002D6F},
+ {0x002D80, 0x002D96},
+ {0x002DA0, 0x002DA6},
+ {0x002DA8, 0x002DAE},
+ {0x002DB0, 0x002DB6},
+ {0x002DB8, 0x002DBE},
+ {0x002DC0, 0x002DC6},
+ {0x002DC8, 0x002DCE},
+ {0x002DD0, 0x002DD6},
+ {0x002DD8, 0x002DDE},
+ {0x003005, 0x003007},
+ {0x003021, 0x003029},
+ {0x003031, 0x003035},
+ {0x003038, 0x00303C},
+ {0x003041, 0x003096},
+ {0x00309D, 0x00309F},
+ {0x0030A1, 0x0030FA},
+ {0x0030FC, 0x0030FF},
+ {0x003105, 0x00312F},
+ {0x003131, 0x00318E},
+ {0x0031A0, 0x0031BF},
+ {0x0031F0, 0x0031FF},
+ {0x003400, 0x004DBF},
+ {0x004E00, 0x00A48C},
+ {0x00A4D0, 0x00A4FD},
+ {0x00A500, 0x00A60C},
+ {0x00A610, 0x00A61F},
+ {0x00A62A, 0x00A62B},
+ {0x00A640, 0x00A66E},
+ {0x00A67F, 0x00A69D},
+ {0x00A6A0, 0x00A6EF},
+ {0x00A717, 0x00A71F},
+ {0x00A722, 0x00A788},
+ {0x00A78B, 0x00A7CA},
+ {0x00A7D0, 0x00A7D1},
+ {0x00A7D3, 0x00A7D3},
+ {0x00A7D5, 0x00A7D9},
+ {0x00A7F2, 0x00A801},
+ {0x00A803, 0x00A805},
+ {0x00A807, 0x00A80A},
+ {0x00A80C, 0x00A822},
+ {0x00A840, 0x00A873},
+ {0x00A882, 0x00A8B3},
+ {0x00A8F2, 0x00A8F7},
+ {0x00A8FB, 0x00A8FB},
+ {0x00A8FD, 0x00A8FE},
+ {0x00A90A, 0x00A925},
+ {0x00A930, 0x00A946},
+ {0x00A960, 0x00A97C},
+ {0x00A984, 0x00A9B2},
+ {0x00A9CF, 0x00A9CF},
+ {0x00A9E0, 0x00A9E4},
+ {0x00A9E6, 0x00A9EF},
+ {0x00A9FA, 0x00A9FE},
+ {0x00AA00, 0x00AA28},
+ {0x00AA40, 0x00AA42},
+ {0x00AA44, 0x00AA4B},
+ {0x00AA60, 0x00AA76},
+ {0x00AA7A, 0x00AA7A},
+ {0x00AA7E, 0x00AAAF},
+ {0x00AAB1, 0x00AAB1},
+ {0x00AAB5, 0x00AAB6},
+ {0x00AAB9, 0x00AABD},
+ {0x00AAC0, 0x00AAC0},
+ {0x00AAC2, 0x00AAC2},
+ {0x00AADB, 0x00AADD},
+ {0x00AAE0, 0x00AAEA},
+ {0x00AAF2, 0x00AAF4},
+ {0x00AB01, 0x00AB06},
+ {0x00AB09, 0x00AB0E},
+ {0x00AB11, 0x00AB16},
+ {0x00AB20, 0x00AB26},
+ {0x00AB28, 0x00AB2E},
+ {0x00AB30, 0x00AB5A},
+ {0x00AB5C, 0x00AB69},
+ {0x00AB70, 0x00ABE2},
+ {0x00AC00, 0x00D7A3},
+ {0x00D7B0, 0x00D7C6},
+ {0x00D7CB, 0x00D7FB},
+ {0x00F900, 0x00FA6D},
+ {0x00FA70, 0x00FAD9},
+ {0x00FB00, 0x00FB06},
+ {0x00FB13, 0x00FB17},
+ {0x00FB1D, 0x00FB1D},
+ {0x00FB1F, 0x00FB28},
+ {0x00FB2A, 0x00FB36},
+ {0x00FB38, 0x00FB3C},
+ {0x00FB3E, 0x00FB3E},
+ {0x00FB40, 0x00FB41},
+ {0x00FB43, 0x00FB44},
+ {0x00FB46, 0x00FBB1},
+ {0x00FBD3, 0x00FC5D},
+ {0x00FC64, 0x00FD3D},
+ {0x00FD50, 0x00FD8F},
+ {0x00FD92, 0x00FDC7},
+ {0x00FDF0, 0x00FDF9},
+ {0x00FE71, 0x00FE71},
+ {0x00FE73, 0x00FE73},
+ {0x00FE77, 0x00FE77},
+ {0x00FE79, 0x00FE79},
+ {0x00FE7B, 0x00FE7B},
+ {0x00FE7D, 0x00FE7D},
+ {0x00FE7F, 0x00FEFC},
+ {0x00FF21, 0x00FF3A},
+ {0x00FF41, 0x00FF5A},
+ {0x00FF66, 0x00FF9D},
+ {0x00FFA0, 0x00FFBE},
+ {0x00FFC2, 0x00FFC7},
+ {0x00FFCA, 0x00FFCF},
+ {0x00FFD2, 0x00FFD7},
+ {0x00FFDA, 0x00FFDC},
+ {0x010000, 0x01000B},
+ {0x01000D, 0x010026},
+ {0x010028, 0x01003A},
+ {0x01003C, 0x01003D},
+ {0x01003F, 0x01004D},
+ {0x010050, 0x01005D},
+ {0x010080, 0x0100FA},
+ {0x010140, 0x010174},
+ {0x010280, 0x01029C},
+ {0x0102A0, 0x0102D0},
+ {0x010300, 0x01031F},
+ {0x01032D, 0x01034A},
+ {0x010350, 0x010375},
+ {0x010380, 0x01039D},
+ {0x0103A0, 0x0103C3},
+ {0x0103C8, 0x0103CF},
+ {0x0103D1, 0x0103D5},
+ {0x010400, 0x01049D},
+ {0x0104B0, 0x0104D3},
+ {0x0104D8, 0x0104FB},
+ {0x010500, 0x010527},
+ {0x010530, 0x010563},
+ {0x010570, 0x01057A},
+ {0x01057C, 0x01058A},
+ {0x01058C, 0x010592},
+ {0x010594, 0x010595},
+ {0x010597, 0x0105A1},
+ {0x0105A3, 0x0105B1},
+ {0x0105B3, 0x0105B9},
+ {0x0105BB, 0x0105BC},
+ {0x010600, 0x010736},
+ {0x010740, 0x010755},
+ {0x010760, 0x010767},
+ {0x010780, 0x010785},
+ {0x010787, 0x0107B0},
+ {0x0107B2, 0x0107BA},
+ {0x010800, 0x010805},
+ {0x010808, 0x010808},
+ {0x01080A, 0x010835},
+ {0x010837, 0x010838},
+ {0x01083C, 0x01083C},
+ {0x01083F, 0x010855},
+ {0x010860, 0x010876},
+ {0x010880, 0x01089E},
+ {0x0108E0, 0x0108F2},
+ {0x0108F4, 0x0108F5},
+ {0x010900, 0x010915},
+ {0x010920, 0x010939},
+ {0x010980, 0x0109B7},
+ {0x0109BE, 0x0109BF},
+ {0x010A00, 0x010A00},
+ {0x010A10, 0x010A13},
+ {0x010A15, 0x010A17},
+ {0x010A19, 0x010A35},
+ {0x010A60, 0x010A7C},
+ {0x010A80, 0x010A9C},
+ {0x010AC0, 0x010AC7},
+ {0x010AC9, 0x010AE4},
+ {0x010B00, 0x010B35},
+ {0x010B40, 0x010B55},
+ {0x010B60, 0x010B72},
+ {0x010B80, 0x010B91},
+ {0x010C00, 0x010C48},
+ {0x010C80, 0x010CB2},
+ {0x010CC0, 0x010CF2},
+ {0x010D00, 0x010D23},
+ {0x010E80, 0x010EA9},
+ {0x010EB0, 0x010EB1},
+ {0x010F00, 0x010F1C},
+ {0x010F27, 0x010F27},
+ {0x010F30, 0x010F45},
+ {0x010F70, 0x010F81},
+ {0x010FB0, 0x010FC4},
+ {0x010FE0, 0x010FF6},
+ {0x011003, 0x011037},
+ {0x011071, 0x011072},
+ {0x011075, 0x011075},
+ {0x011083, 0x0110AF},
+ {0x0110D0, 0x0110E8},
+ {0x011103, 0x011126},
+ {0x011144, 0x011144},
+ {0x011147, 0x011147},
+ {0x011150, 0x011172},
+ {0x011176, 0x011176},
+ {0x011183, 0x0111B2},
+ {0x0111C1, 0x0111C4},
+ {0x0111DA, 0x0111DA},
+ {0x0111DC, 0x0111DC},
+ {0x011200, 0x011211},
+ {0x011213, 0x01122B},
+ {0x01123F, 0x011240},
+ {0x011280, 0x011286},
+ {0x011288, 0x011288},
+ {0x01128A, 0x01128D},
+ {0x01128F, 0x01129D},
+ {0x01129F, 0x0112A8},
+ {0x0112B0, 0x0112DE},
+ {0x011305, 0x01130C},
+ {0x01130F, 0x011310},
+ {0x011313, 0x011328},
+ {0x01132A, 0x011330},
+ {0x011332, 0x011333},
+ {0x011335, 0x011339},
+ {0x01133D, 0x01133D},
+ {0x011350, 0x011350},
+ {0x01135D, 0x011361},
+ {0x011400, 0x011434},
+ {0x011447, 0x01144A},
+ {0x01145F, 0x011461},
+ {0x011480, 0x0114AF},
+ {0x0114C4, 0x0114C5},
+ {0x0114C7, 0x0114C7},
+ {0x011580, 0x0115AE},
+ {0x0115D8, 0x0115DB},
+ {0x011600, 0x01162F},
+ {0x011644, 0x011644},
+ {0x011680, 0x0116AA},
+ {0x0116B8, 0x0116B8},
+ {0x011700, 0x01171A},
+ {0x011740, 0x011746},
+ {0x011800, 0x01182B},
+ {0x0118A0, 0x0118DF},
+ {0x0118FF, 0x011906},
+ {0x011909, 0x011909},
+ {0x01190C, 0x011913},
+ {0x011915, 0x011916},
+ {0x011918, 0x01192F},
+ {0x01193F, 0x01193F},
+ {0x011941, 0x011941},
+ {0x0119A0, 0x0119A7},
+ {0x0119AA, 0x0119D0},
+ {0x0119E1, 0x0119E1},
+ {0x0119E3, 0x0119E3},
+ {0x011A00, 0x011A00},
+ {0x011A0B, 0x011A32},
+ {0x011A3A, 0x011A3A},
+ {0x011A50, 0x011A50},
+ {0x011A5C, 0x011A89},
+ {0x011A9D, 0x011A9D},
+ {0x011AB0, 0x011AF8},
+ {0x011C00, 0x011C08},
+ {0x011C0A, 0x011C2E},
+ {0x011C40, 0x011C40},
+ {0x011C72, 0x011C8F},
+ {0x011D00, 0x011D06},
+ {0x011D08, 0x011D09},
+ {0x011D0B, 0x011D30},
+ {0x011D46, 0x011D46},
+ {0x011D60, 0x011D65},
+ {0x011D67, 0x011D68},
+ {0x011D6A, 0x011D89},
+ {0x011D98, 0x011D98},
+ {0x011EE0, 0x011EF2},
+ {0x011F02, 0x011F02},
+ {0x011F04, 0x011F10},
+ {0x011F12, 0x011F33},
+ {0x011FB0, 0x011FB0},
+ {0x012000, 0x012399},
+ {0x012400, 0x01246E},
+ {0x012480, 0x012543},
+ {0x012F90, 0x012FF0},
+ {0x013000, 0x01342F},
+ {0x013441, 0x013446},
+ {0x014400, 0x014646},
+ {0x016800, 0x016A38},
+ {0x016A40, 0x016A5E},
+ {0x016A70, 0x016ABE},
+ {0x016AD0, 0x016AED},
+ {0x016B00, 0x016B2F},
+ {0x016B40, 0x016B43},
+ {0x016B63, 0x016B77},
+ {0x016B7D, 0x016B8F},
+ {0x016E40, 0x016E7F},
+ {0x016F00, 0x016F4A},
+ {0x016F50, 0x016F50},
+ {0x016F93, 0x016F9F},
+ {0x016FE0, 0x016FE1},
+ {0x016FE3, 0x016FE3},
+ {0x017000, 0x0187F7},
+ {0x018800, 0x018CD5},
+ {0x018D00, 0x018D08},
+ {0x01AFF0, 0x01AFF3},
+ {0x01AFF5, 0x01AFFB},
+ {0x01AFFD, 0x01AFFE},
+ {0x01B000, 0x01B122},
+ {0x01B132, 0x01B132},
+ {0x01B150, 0x01B152},
+ {0x01B155, 0x01B155},
+ {0x01B164, 0x01B167},
+ {0x01B170, 0x01B2FB},
+ {0x01BC00, 0x01BC6A},
+ {0x01BC70, 0x01BC7C},
+ {0x01BC80, 0x01BC88},
+ {0x01BC90, 0x01BC99},
+ {0x01D400, 0x01D454},
+ {0x01D456, 0x01D49C},
+ {0x01D49E, 0x01D49F},
+ {0x01D4A2, 0x01D4A2},
+ {0x01D4A5, 0x01D4A6},
+ {0x01D4A9, 0x01D4AC},
+ {0x01D4AE, 0x01D4B9},
+ {0x01D4BB, 0x01D4BB},
+ {0x01D4BD, 0x01D4C3},
+ {0x01D4C5, 0x01D505},
+ {0x01D507, 0x01D50A},
+ {0x01D50D, 0x01D514},
+ {0x01D516, 0x01D51C},
+ {0x01D51E, 0x01D539},
+ {0x01D53B, 0x01D53E},
+ {0x01D540, 0x01D544},
+ {0x01D546, 0x01D546},
+ {0x01D54A, 0x01D550},
+ {0x01D552, 0x01D6A5},
+ {0x01D6A8, 0x01D6C0},
+ {0x01D6C2, 0x01D6DA},
+ {0x01D6DC, 0x01D6FA},
+ {0x01D6FC, 0x01D714},
+ {0x01D716, 0x01D734},
+ {0x01D736, 0x01D74E},
+ {0x01D750, 0x01D76E},
+ {0x01D770, 0x01D788},
+ {0x01D78A, 0x01D7A8},
+ {0x01D7AA, 0x01D7C2},
+ {0x01D7C4, 0x01D7CB},
+ {0x01DF00, 0x01DF1E},
+ {0x01DF25, 0x01DF2A},
+ {0x01E030, 0x01E06D},
+ {0x01E100, 0x01E12C},
+ {0x01E137, 0x01E13D},
+ {0x01E14E, 0x01E14E},
+ {0x01E290, 0x01E2AD},
+ {0x01E2C0, 0x01E2EB},
+ {0x01E4D0, 0x01E4EB},
+ {0x01E7E0, 0x01E7E6},
+ {0x01E7E8, 0x01E7EB},
+ {0x01E7ED, 0x01E7EE},
+ {0x01E7F0, 0x01E7FE},
+ {0x01E800, 0x01E8C4},
+ {0x01E900, 0x01E943},
+ {0x01E94B, 0x01E94B},
+ {0x01EE00, 0x01EE03},
+ {0x01EE05, 0x01EE1F},
+ {0x01EE21, 0x01EE22},
+ {0x01EE24, 0x01EE24},
+ {0x01EE27, 0x01EE27},
+ {0x01EE29, 0x01EE32},
+ {0x01EE34, 0x01EE37},
+ {0x01EE39, 0x01EE39},
+ {0x01EE3B, 0x01EE3B},
+ {0x01EE42, 0x01EE42},
+ {0x01EE47, 0x01EE47},
+ {0x01EE49, 0x01EE49},
+ {0x01EE4B, 0x01EE4B},
+ {0x01EE4D, 0x01EE4F},
+ {0x01EE51, 0x01EE52},
+ {0x01EE54, 0x01EE54},
+ {0x01EE57, 0x01EE57},
+ {0x01EE59, 0x01EE59},
+ {0x01EE5B, 0x01EE5B},
+ {0x01EE5D, 0x01EE5D},
+ {0x01EE5F, 0x01EE5F},
+ {0x01EE61, 0x01EE62},
+ {0x01EE64, 0x01EE64},
+ {0x01EE67, 0x01EE6A},
+ {0x01EE6C, 0x01EE72},
+ {0x01EE74, 0x01EE77},
+ {0x01EE79, 0x01EE7C},
+ {0x01EE7E, 0x01EE7E},
+ {0x01EE80, 0x01EE89},
+ {0x01EE8B, 0x01EE9B},
+ {0x01EEA1, 0x01EEA3},
+ {0x01EEA5, 0x01EEA9},
+ {0x01EEAB, 0x01EEBB},
+ {0x020000, 0x02A6DF},
+ {0x02A700, 0x02B739},
+ {0x02B740, 0x02B81D},
+ {0x02B820, 0x02CEA1},
+ {0x02CEB0, 0x02EBE0},
+ {0x02EBF0, 0x02EE5D},
+ {0x02F800, 0x02FA1D},
+ {0x030000, 0x03134A},
+ {0x031350, 0x0323AF},
+};
+
+#define TYPE bool
+#define TABLE lookup_tbl
+#define DEFAULT false
+#define HAS_VALUE 0
+#include "internal/rtype/lookup-func.h"
+
+bool
+rune_has_prop_xid_start(rune ch)
+{
+ return
+#if BIT_LOOKUP
+ ch <= LATIN1_MAX ? (mask & ch) :
+#endif
+ lookup(ch);
+}
diff --git a/vendor/librune/lib/rtype/runeis.c b/vendor/librune/lib/rtype/runeis.c
index 180432e..5284cd9 100644
--- a/vendor/librune/lib/rtype/runeis.c
+++ b/vendor/librune/lib/rtype/runeis.c
@@ -1,31 +1,16 @@
-#include <stddef.h>
-
#include "rtype.h"
-#include "internal/common.h"
-#include "internal/rtype_lookup.h"
+#include "internal/rtype/cat.h"
+
+#define DEFAULT UC_CN
+#define HAS_VALUE 1
+#define LATIN1_TABLE rtype_cat_lat1_tbl
+#define TABLE rtype_cat_tbl
+#define TYPE enum unicat
+#include "internal/rtype/lookup-func.h"
bool
-runeis(rune ch, unicat c)
+runeis(rune ch, enum unicat c)
{
- ptrdiff_t lo, hi;
-
- if (ch <= LATIN1_MAX)
- return rtype_lat1_tbl[ch] & c;
-
- lo = 0;
- hi = lengthof(rtype_cat_tbl) - 1;
-
- while (lo <= hi) {
- ptrdiff_t i = (lo + hi) / 2;
-
- if (ch < rtype_cat_tbl[i].lo)
- hi = i - 1;
- else if (ch > rtype_cat_tbl[i].hi)
- lo = i + 1;
- else
- return c & rtype_cat_tbl[i].cat;
- }
-
- return false;
+ return lookup(ch) & c;
}
diff --git a/vendor/librune/make.c b/vendor/librune/make.c
index d818f09..32513e1 100644
--- a/vendor/librune/make.c
+++ b/vendor/librune/make.c
@@ -1,6 +1,8 @@
+#define _GNU_SOURCE
#include <errno.h>
#include <glob.h>
#include <libgen.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -30,10 +32,12 @@
#define streq(a, b) (!strcmp(a, b))
+#define flagset(o) (flags & (1 << ((o) - 'a')))
+
static void work(void *);
static int globerr(const char *, int);
-static bool lflag, rflag;
+static uint32_t flags;
int
main(int argc, char **argv)
@@ -43,17 +47,13 @@ main(int argc, char **argv)
cbsinit(argc, argv);
rebuild();
- while ((opt = getopt(argc, argv, "lr")) != -1) {
+ while ((opt = getopt(argc, argv, "flr")) != -1) {
switch (opt) {
- case 'l':
- lflag = true;
- break;
- case 'r':
- rflag = true;
- break;
- default:
- fprintf(stderr, "Usage: %s [-lr]\n", *argv);
+ case '?':
+ fprintf(stderr, "Usage: %s [-flr]\n", *argv);
exit(EXIT_FAILURE);
+ default:
+ flags |= 1 << (opt - 'a');
}
}
@@ -93,7 +93,9 @@ main(int argc, char **argv)
for (size_t i = 0; i < g.gl_pathc; i++)
g.gl_pathv[i][strlen(g.gl_pathv[i]) - 1] = 'o';
- if (foutdatedv("librune.a", (const char **)g.gl_pathv, g.gl_pathc)) {
+ if (flagset('f')
+ || foutdatedv("librune.a", (const char **)g.gl_pathv, g.gl_pathc))
+ {
cmdadd(&c, "ar", "rcs", "librune.a");
cmdaddv(&c, g.gl_pathv, g.gl_pathc);
cmdprc(c);
@@ -116,14 +118,14 @@ work(void *p)
die("strdup");
dst[strlen(dst) - 1] = 'o';
- if (foutdated(dst, src)) {
+ if (flagset('f') || foutdated(dst, src)) {
env_or_default(&sv, "CC", CC);
- if (rflag)
+ if (flagset('r'))
env_or_default(&sv, "CFLAGS", CFLAGS_RLS);
else
env_or_default(&sv, "CFLAGS", CFLAGS_DBG);
cmdaddv(&c, sv.buf, sv.len);
- if (lflag)
+ if (flagset('l'))
cmdadd(&c, "-flto");
cmdadd(&c, "-Iinclude", "-fPIC", "-o", dst, "-c", src);
cmdprc(c);
diff --git a/vendor/librune/test/tests b/vendor/librune/test/tests
index e728773..5affe3a 100755
--- a/vendor/librune/test/tests
+++ b/vendor/librune/test/tests
@@ -13,7 +13,8 @@ readonly src=../data/GraphemeBreakTest.txt
set -e
cd "${0%/*}"
-find ../lib -name '*.c' -exec cc -I../include -o gbrk gbrk.c {} +
+find ../lib -name '*.c' -exec \
+ cc -std=c2x -Wno-attributes -I../include -o gbrk gbrk.c {} +
trap 'rm -f gbrk' EXIT
n=$(