// Copyright 2025 International Digital Economy Academy
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
///|
/// Autohint tables generated from upstream skrifa.
///
/// Source: `fontations-reference/skrifa/generated/generated_autohint_styles.rs`
///
/// This file is generated; edit the generator instead.
///|
priv struct AutoHintStyleRange {
first : Int
last : Int
bits : Int
}
///|
fn autohint_style_ranges() -> Array[AutoHintStyleRange] {
[
{ first: 32, last: 93, bits: 60 },
{ first: 94, last: 96, bits: 316 },
{ first: 97, last: 125, bits: 60 },
{ first: 126, last: 126, bits: 316 },
{ first: 127, last: 127, bits: 60 },
{ first: 160, last: 167, bits: 60 },
{ first: 168, last: 169, bits: 316 },
{ first: 170, last: 170, bits: 62 },
{ first: 171, last: 173, bits: 60 },
{ first: 174, last: 176, bits: 316 },
{ first: 177, last: 177, bits: 60 },
{ first: 178, last: 179, bits: 62 },
{ first: 180, last: 180, bits: 316 },
{ first: 181, last: 183, bits: 60 },
{ first: 184, last: 184, bits: 316 },
{ first: 185, last: 186, bits: 62 },
{ first: 187, last: 187, bits: 60 },
{ first: 188, last: 190, bits: 316 },
{ first: 191, last: 687, bits: 60 },
{ first: 688, last: 696, bits: 62 },
{ first: 697, last: 735, bits: 316 },
{ first: 736, last: 740, bits: 62 },
{ first: 741, last: 879, bits: 316 },
{ first: 880, last: 889, bits: 41 },
{ first: 890, last: 890, bits: 297 },
{ first: 891, last: 899, bits: 41 },
{ first: 900, last: 901, bits: 297 },
{ first: 902, last: 1023, bits: 41 },
{ first: 1024, last: 1154, bits: 23 },
{ first: 1155, last: 1161, bits: 279 },
{ first: 1162, last: 1327, bits: 23 },
{ first: 1328, last: 1368, bits: 2 },
{ first: 1369, last: 1375, bits: 258 },
{ first: 1376, last: 1423, bits: 2 },
{ first: 1424, last: 1424, bits: 44 },
{ first: 1425, last: 1471, bits: 300 },
{ first: 1472, last: 1472, bits: 44 },
{ first: 1473, last: 1474, bits: 300 },
{ first: 1475, last: 1475, bits: 44 },
{ first: 1476, last: 1477, bits: 300 },
{ first: 1478, last: 1478, bits: 44 },
{ first: 1479, last: 1479, bits: 300 },
{ first: 1480, last: 1535, bits: 44 },
{ first: 1536, last: 1541, bits: 257 },
{ first: 1542, last: 1551, bits: 1 },
{ first: 1552, last: 1562, bits: 257 },
{ first: 1563, last: 1610, bits: 1 },
{ first: 1611, last: 1631, bits: 257 },
{ first: 1632, last: 1647, bits: 1 },
{ first: 1648, last: 1648, bits: 257 },
{ first: 1649, last: 1749, bits: 1 },
{ first: 1750, last: 1756, bits: 257 },
{ first: 1757, last: 1758, bits: 1 },
{ first: 1759, last: 1764, bits: 257 },
{ first: 1765, last: 1766, bits: 1 },
{ first: 1767, last: 1768, bits: 257 },
{ first: 1769, last: 1769, bits: 1 },
{ first: 1770, last: 1773, bits: 257 },
{ first: 1774, last: 1791, bits: 1 },
{ first: 1872, last: 2047, bits: 1 },
{ first: 2208, last: 2258, bits: 1 },
{ first: 2259, last: 2303, bits: 257 },
{ first: 2304, last: 2306, bits: 280 },
{ first: 2307, last: 2361, bits: 24 },
{ first: 2362, last: 2362, bits: 280 },
{ first: 2363, last: 2363, bits: 24 },
{ first: 2365, last: 2368, bits: 24 },
{ first: 2369, last: 2376, bits: 280 },
{ first: 2377, last: 2380, bits: 24 },
{ first: 2381, last: 2381, bits: 280 },
{ first: 2382, last: 2384, bits: 24 },
{ first: 2387, last: 2391, bits: 280 },
{ first: 2392, last: 2401, bits: 24 },
{ first: 2402, last: 2403, bits: 280 },
{ first: 2406, last: 2431, bits: 24 },
{ first: 2432, last: 2432, bits: 5 },
{ first: 2433, last: 2433, bits: 261 },
{ first: 2434, last: 2491, bits: 5 },
{ first: 2492, last: 2492, bits: 261 },
{ first: 2493, last: 2496, bits: 5 },
{ first: 2497, last: 2500, bits: 261 },
{ first: 2501, last: 2508, bits: 5 },
{ first: 2509, last: 2509, bits: 261 },
{ first: 2510, last: 2529, bits: 5 },
{ first: 2530, last: 2531, bits: 261 },
{ first: 2532, last: 2557, bits: 5 },
{ first: 2558, last: 2558, bits: 261 },
{ first: 2559, last: 2559, bits: 5 },
{ first: 2560, last: 2560, bits: 43 },
{ first: 2561, last: 2562, bits: 299 },
{ first: 2563, last: 2619, bits: 43 },
{ first: 2620, last: 2620, bits: 299 },
{ first: 2621, last: 2624, bits: 43 },
{ first: 2625, last: 2641, bits: 299 },
{ first: 2642, last: 2671, bits: 43 },
{ first: 2672, last: 2673, bits: 299 },
{ first: 2674, last: 2676, bits: 43 },
{ first: 2677, last: 2677, bits: 299 },
{ first: 2678, last: 2687, bits: 43 },
{ first: 2688, last: 2688, bits: 42 },
{ first: 2689, last: 2690, bits: 298 },
{ first: 2691, last: 2747, bits: 42 },
{ first: 2748, last: 2748, bits: 298 },
{ first: 2749, last: 2752, bits: 42 },
{ first: 2753, last: 2760, bits: 298 },
{ first: 2761, last: 2764, bits: 42 },
{ first: 2765, last: 2765, bits: 298 },
{ first: 2766, last: 2785, bits: 42 },
{ first: 2786, last: 2787, bits: 298 },
{ first: 2788, last: 2809, bits: 42 },
{ first: 2810, last: 2815, bits: 298 },
{ first: 2816, last: 2816, bits: 86 },
{ first: 2817, last: 2818, bits: 342 },
{ first: 2819, last: 2875, bits: 86 },
{ first: 2876, last: 2876, bits: 342 },
{ first: 2877, last: 2878, bits: 86 },
{ first: 2879, last: 2879, bits: 342 },
{ first: 2880, last: 2880, bits: 86 },
{ first: 2881, last: 2884, bits: 342 },
{ first: 2885, last: 2892, bits: 86 },
{ first: 2893, last: 2902, bits: 342 },
{ first: 2903, last: 2913, bits: 86 },
{ first: 2914, last: 2915, bits: 342 },
{ first: 2916, last: 2943, bits: 86 },
{ first: 2944, last: 2945, bits: 79 },
{ first: 2946, last: 2946, bits: 335 },
{ first: 2947, last: 3007, bits: 79 },
{ first: 3008, last: 3010, bits: 335 },
{ first: 3011, last: 3020, bits: 79 },
{ first: 3021, last: 3021, bits: 335 },
{ first: 3022, last: 3071, bits: 79 },
{ first: 3072, last: 3072, bits: 337 },
{ first: 3073, last: 3075, bits: 81 },
{ first: 3076, last: 3076, bits: 337 },
{ first: 3077, last: 3133, bits: 81 },
{ first: 3134, last: 3136, bits: 337 },
{ first: 3137, last: 3141, bits: 81 },
{ first: 3142, last: 3158, bits: 337 },
{ first: 3159, last: 3169, bits: 81 },
{ first: 3170, last: 3171, bits: 337 },
{ first: 3172, last: 3199, bits: 81 },
{ first: 3200, last: 3200, bits: 48 },
{ first: 3201, last: 3201, bits: 304 },
{ first: 3202, last: 3259, bits: 48 },
{ first: 3260, last: 3260, bits: 304 },
{ first: 3261, last: 3262, bits: 48 },
{ first: 3263, last: 3263, bits: 304 },
{ first: 3264, last: 3269, bits: 48 },
{ first: 3270, last: 3270, bits: 304 },
{ first: 3271, last: 3275, bits: 48 },
{ first: 3276, last: 3277, bits: 304 },
{ first: 3278, last: 3297, bits: 48 },
{ first: 3298, last: 3299, bits: 304 },
{ first: 3300, last: 3327, bits: 48 },
{ first: 3328, last: 3329, bits: 320 },
{ first: 3330, last: 3386, bits: 64 },
{ first: 3387, last: 3388, bits: 320 },
{ first: 3389, last: 3404, bits: 64 },
{ first: 3405, last: 3406, bits: 320 },
{ first: 3407, last: 3425, bits: 64 },
{ first: 3426, last: 3427, bits: 320 },
{ first: 3428, last: 3455, bits: 64 },
{ first: 3456, last: 3529, bits: 77 },
{ first: 3530, last: 3530, bits: 333 },
{ first: 3531, last: 3537, bits: 77 },
{ first: 3538, last: 3542, bits: 333 },
{ first: 3543, last: 3583, bits: 77 },
{ first: 3584, last: 3632, bits: 83 },
{ first: 3633, last: 3633, bits: 339 },
{ first: 3634, last: 3635, bits: 83 },
{ first: 3636, last: 3642, bits: 339 },
{ first: 3643, last: 3654, bits: 83 },
{ first: 3655, last: 3662, bits: 339 },
{ first: 3663, last: 3711, bits: 83 },
{ first: 3712, last: 3760, bits: 49 },
{ first: 3761, last: 3761, bits: 305 },
{ first: 3762, last: 3763, bits: 49 },
{ first: 3764, last: 3772, bits: 305 },
{ first: 3773, last: 3783, bits: 49 },
{ first: 3784, last: 3789, bits: 305 },
{ first: 3790, last: 3839, bits: 49 },
{ first: 3840, last: 3863, bits: 88 },
{ first: 3864, last: 3865, bits: 344 },
{ first: 3866, last: 3892, bits: 88 },
{ first: 3893, last: 3893, bits: 344 },
{ first: 3894, last: 3894, bits: 88 },
{ first: 3895, last: 3895, bits: 344 },
{ first: 3896, last: 3896, bits: 88 },
{ first: 3897, last: 3897, bits: 344 },
{ first: 3898, last: 3901, bits: 88 },
{ first: 3902, last: 3903, bits: 344 },
{ first: 3904, last: 3952, bits: 88 },
{ first: 3953, last: 3966, bits: 344 },
{ first: 3967, last: 3967, bits: 88 },
{ first: 3968, last: 3972, bits: 344 },
{ first: 3973, last: 3973, bits: 88 },
{ first: 3974, last: 3975, bits: 344 },
{ first: 3976, last: 3980, bits: 88 },
{ first: 3981, last: 4028, bits: 344 },
{ first: 4029, last: 4095, bits: 88 },
{ first: 4096, last: 4140, bits: 67 },
{ first: 4141, last: 4144, bits: 323 },
{ first: 4145, last: 4145, bits: 67 },
{ first: 4146, last: 4151, bits: 323 },
{ first: 4152, last: 4153, bits: 67 },
{ first: 4154, last: 4154, bits: 323 },
{ first: 4155, last: 4156, bits: 67 },
{ first: 4157, last: 4158, bits: 323 },
{ first: 4159, last: 4183, bits: 67 },
{ first: 4184, last: 4185, bits: 323 },
{ first: 4186, last: 4189, bits: 67 },
{ first: 4190, last: 4192, bits: 323 },
{ first: 4193, last: 4208, bits: 67 },
{ first: 4209, last: 4212, bits: 323 },
{ first: 4213, last: 4225, bits: 67 },
{ first: 4226, last: 4226, bits: 323 },
{ first: 4227, last: 4228, bits: 67 },
{ first: 4229, last: 4230, bits: 323 },
{ first: 4231, last: 4236, bits: 67 },
{ first: 4237, last: 4237, bits: 323 },
{ first: 4238, last: 4255, bits: 67 },
{ first: 4256, last: 4301, bits: 28 },
{ first: 4304, last: 4351, bits: 27 },
{ first: 4352, last: 4607, bits: 89 },
{ first: 4608, last: 4956, bits: 26 },
{ first: 4957, last: 4959, bits: 282 },
{ first: 4960, last: 5023, bits: 26 },
{ first: 5024, last: 5119, bits: 10 },
{ first: 5120, last: 5759, bits: 8 },
{ first: 5952, last: 5969, bits: 6 },
{ first: 5970, last: 5971, bits: 262 },
{ first: 5972, last: 5983, bits: 6 },
{ first: 6016, last: 6070, bits: 46 },
{ first: 6071, last: 6077, bits: 302 },
{ first: 6078, last: 6085, bits: 46 },
{ first: 6086, last: 6086, bits: 302 },
{ first: 6087, last: 6088, bits: 46 },
{ first: 6089, last: 6099, bits: 302 },
{ first: 6100, last: 6108, bits: 46 },
{ first: 6109, last: 6109, bits: 302 },
{ first: 6110, last: 6143, bits: 46 },
{ first: 6144, last: 6276, bits: 66 },
{ first: 6277, last: 6278, bits: 322 },
{ first: 6279, last: 6312, bits: 66 },
{ first: 6313, last: 6313, bits: 322 },
{ first: 6314, last: 6319, bits: 66 },
{ first: 6320, last: 6399, bits: 8 },
{ first: 6400, last: 6431, bits: 85 },
{ first: 6432, last: 6434, bits: 341 },
{ first: 6435, last: 6438, bits: 85 },
{ first: 6439, last: 6452, bits: 341 },
{ first: 6453, last: 6454, bits: 85 },
{ first: 6455, last: 6459, bits: 341 },
{ first: 6460, last: 6479, bits: 85 },
{ first: 6624, last: 6655, bits: 47 },
{ first: 6832, last: 6846, bits: 316 },
{ first: 7040, last: 7042, bits: 334 },
{ first: 7043, last: 7072, bits: 78 },
{ first: 7073, last: 7085, bits: 334 },
{ first: 7086, last: 7103, bits: 78 },
{ first: 7248, last: 7295, bits: 70 },
{ first: 7296, last: 7311, bits: 23 },
{ first: 7312, last: 7359, bits: 27 },
{ first: 7360, last: 7375, bits: 78 },
{ first: 7424, last: 7467, bits: 60 },
{ first: 7468, last: 7521, bits: 62 },
{ first: 7522, last: 7530, bits: 61 },
{ first: 7531, last: 7543, bits: 60 },
{ first: 7544, last: 7544, bits: 62 },
{ first: 7545, last: 7578, bits: 60 },
{ first: 7579, last: 7615, bits: 62 },
{ first: 7616, last: 7679, bits: 316 },
{ first: 7680, last: 7935, bits: 60 },
{ first: 7936, last: 8124, bits: 41 },
{ first: 8125, last: 8129, bits: 297 },
{ first: 8130, last: 8140, bits: 41 },
{ first: 8141, last: 8143, bits: 297 },
{ first: 8144, last: 8156, bits: 41 },
{ first: 8157, last: 8159, bits: 297 },
{ first: 8160, last: 8172, bits: 41 },
{ first: 8173, last: 8175, bits: 297 },
{ first: 8176, last: 8188, bits: 41 },
{ first: 8189, last: 8190, bits: 297 },
{ first: 8191, last: 8191, bits: 41 },
{ first: 8192, last: 8214, bits: 60 },
{ first: 8215, last: 8215, bits: 316 },
{ first: 8216, last: 8253, bits: 60 },
{ first: 8254, last: 8254, bits: 316 },
{ first: 8255, last: 8303, bits: 60 },
{ first: 8304, last: 8319, bits: 62 },
{ first: 8320, last: 8348, bits: 61 },
{ first: 8352, last: 8376, bits: 60 },
{ first: 8377, last: 8377, bits: 24 },
{ first: 8378, last: 8399, bits: 60 },
{ first: 8528, last: 8591, bits: 60 },
{ first: 11264, last: 11359, bits: 29 },
{ first: 11360, last: 11387, bits: 60 },
{ first: 11388, last: 11388, bits: 61 },
{ first: 11389, last: 11389, bits: 62 },
{ first: 11390, last: 11391, bits: 60 },
{ first: 11392, last: 11502, bits: 11 },
{ first: 11503, last: 11505, bits: 267 },
{ first: 11506, last: 11519, bits: 11 },
{ first: 11520, last: 11565, bits: 28 },
{ first: 11568, last: 11647, bits: 82 },
{ first: 11648, last: 11743, bits: 26 },
{ first: 11744, last: 11775, bits: 279 },
{ first: 11776, last: 11903, bits: 60 },
{ first: 11904, last: 12255, bits: 89 },
{ first: 12272, last: 12329, bits: 89 },
{ first: 12330, last: 12335, bits: 345 },
{ first: 12336, last: 12687, bits: 89 },
{ first: 12688, last: 12703, bits: 345 },
{ first: 12704, last: 12799, bits: 89 },
{ first: 13056, last: 40959, bits: 89 },
{ first: 42192, last: 42239, bits: 63 },
{ first: 42240, last: 42559, bits: 84 },
{ first: 42560, last: 42606, bits: 23 },
{ first: 42607, last: 42623, bits: 279 },
{ first: 42624, last: 42653, bits: 23 },
{ first: 42654, last: 42655, bits: 279 },
{ first: 42656, last: 42735, bits: 4 },
{ first: 42736, last: 42737, bits: 260 },
{ first: 42738, last: 42751, bits: 4 },
{ first: 42784, last: 42863, bits: 60 },
{ first: 42864, last: 42864, bits: 62 },
{ first: 42865, last: 42887, bits: 60 },
{ first: 42888, last: 42888, bits: 316 },
{ first: 42889, last: 42999, bits: 60 },
{ first: 43000, last: 43001, bits: 62 },
{ first: 43002, last: 43002, bits: 316 },
{ first: 43003, last: 43007, bits: 60 },
{ first: 43008, last: 43009, bits: 87 },
{ first: 43010, last: 43010, bits: 343 },
{ first: 43011, last: 43013, bits: 87 },
{ first: 43014, last: 43014, bits: 343 },
{ first: 43015, last: 43018, bits: 87 },
{ first: 43019, last: 43019, bits: 343 },
{ first: 43020, last: 43044, bits: 87 },
{ first: 43045, last: 43046, bits: 343 },
{ first: 43047, last: 43055, bits: 87 },
{ first: 43136, last: 43137, bits: 331 },
{ first: 43138, last: 43187, bits: 75 },
{ first: 43188, last: 43205, bits: 331 },
{ first: 43206, last: 43231, bits: 75 },
{ first: 43232, last: 43249, bits: 280 },
{ first: 43250, last: 43262, bits: 24 },
{ first: 43263, last: 43263, bits: 280 },
{ first: 43264, last: 43301, bits: 45 },
{ first: 43302, last: 43309, bits: 301 },
{ first: 43310, last: 43311, bits: 45 },
{ first: 43360, last: 43391, bits: 89 },
{ first: 43488, last: 43492, bits: 67 },
{ first: 43493, last: 43493, bits: 323 },
{ first: 43494, last: 43519, bits: 67 },
{ first: 43616, last: 43643, bits: 67 },
{ first: 43644, last: 43644, bits: 323 },
{ first: 43645, last: 43647, bits: 67 },
{ first: 43648, last: 43695, bits: 80 },
{ first: 43696, last: 43696, bits: 336 },
{ first: 43697, last: 43697, bits: 80 },
{ first: 43698, last: 43700, bits: 336 },
{ first: 43701, last: 43702, bits: 80 },
{ first: 43703, last: 43704, bits: 336 },
{ first: 43705, last: 43709, bits: 80 },
{ first: 43710, last: 43711, bits: 336 },
{ first: 43712, last: 43712, bits: 80 },
{ first: 43713, last: 43713, bits: 336 },
{ first: 43714, last: 43743, bits: 80 },
{ first: 43776, last: 43823, bits: 26 },
{ first: 43824, last: 43867, bits: 60 },
{ first: 43868, last: 43871, bits: 62 },
{ first: 43872, last: 43887, bits: 60 },
{ first: 43888, last: 43967, bits: 10 },
{ first: 44032, last: 55295, bits: 89 },
{ first: 63744, last: 64255, bits: 89 },
{ first: 64256, last: 64262, bits: 60 },
{ first: 64275, last: 64279, bits: 2 },
{ first: 64285, last: 64285, bits: 44 },
{ first: 64286, last: 64286, bits: 300 },
{ first: 64287, last: 64335, bits: 44 },
{ first: 64336, last: 64433, bits: 1 },
{ first: 64434, last: 64449, bits: 257 },
{ first: 64450, last: 65023, bits: 1 },
{ first: 65040, last: 65055, bits: 89 },
{ first: 65072, last: 65103, bits: 89 },
{ first: 65136, last: 65136, bits: 257 },
{ first: 65137, last: 65137, bits: 1 },
{ first: 65138, last: 65138, bits: 257 },
{ first: 65139, last: 65139, bits: 1 },
{ first: 65140, last: 65140, bits: 257 },
{ first: 65141, last: 65141, bits: 1 },
{ first: 65142, last: 65142, bits: 257 },
{ first: 65143, last: 65143, bits: 1 },
{ first: 65144, last: 65144, bits: 257 },
{ first: 65145, last: 65145, bits: 1 },
{ first: 65146, last: 65146, bits: 257 },
{ first: 65147, last: 65147, bits: 1 },
{ first: 65148, last: 65148, bits: 257 },
{ first: 65149, last: 65149, bits: 1 },
{ first: 65150, last: 65150, bits: 257 },
{ first: 65151, last: 65279, bits: 1 },
{ first: 65280, last: 65519, bits: 89 },
{ first: 66208, last: 66271, bits: 9 },
{ first: 66352, last: 66383, bits: 30 },
{ first: 66560, last: 66639, bits: 25 },
{ first: 66640, last: 66687, bits: 76 },
{ first: 66688, last: 66735, bits: 73 },
{ first: 66736, last: 66815, bits: 72 },
{ first: 67584, last: 67647, bits: 12 },
{ first: 68352, last: 68408, bits: 3 },
{ first: 68409, last: 68415, bits: 259 },
{ first: 68608, last: 68687, bits: 71 },
{ first: 68864, last: 68927, bits: 74 },
{ first: 69888, last: 69890, bits: 263 },
{ first: 69891, last: 69926, bits: 7 },
{ first: 69927, last: 69940, bits: 263 },
{ first: 69941, last: 69957, bits: 7 },
{ first: 69958, last: 69958, bits: 263 },
{ first: 69959, last: 69967, bits: 7 },
{ first: 71264, last: 71295, bits: 66 },
{ first: 93760, last: 93855, bits: 65 },
{ first: 110592, last: 110895, bits: 89 },
{ first: 119552, last: 119647, bits: 89 },
{ first: 119808, last: 120831, bits: 60 },
{ first: 122880, last: 122927, bits: 285 },
{ first: 125184, last: 125258, bits: 256 },
{ first: 125259, last: 125279, bits: 0 },
{ first: 126464, last: 126719, bits: 1 },
{ first: 131072, last: 173791, bits: 89 },
{ first: 173824, last: 191471, bits: 89 },
{ first: 194560, last: 195103, bits: 89 },
]
}
///|
fn autohint_style_range_for_codepoint(
ch : Int,
ranges : ArrayView[AutoHintStyleRange],
) -> (Int, Int, Int)? {
if ch < 0 {
return None
}
let mut lo = 0
let mut hi = ranges.length()
while lo < hi {
let mid = (lo + hi) / 2
let r = ranges.at(mid)
if ch < r.first {
hi = mid
} else if ch > r.last {
lo = mid + 1
} else {
return Some((r.first, r.last, r.bits))
}
}
None
}
///|
fn autohint_style_script_ix(style_ix : Int) -> Int {
match style_ix {
0 => 0
1 => 1
2 => 2
3 => 3
4 => 4
5 => 5
6 => 6
7 => 7
8 => 8
9 => 9
10 => 10
11 => 11
12 => 12
13 => 13
14 => 13
15 => 13
16 => 13
17 => 13
18 => 13
19 => 13
20 => 13
21 => 13
22 => 13
23 => 13
24 => 14
25 => 15
26 => 16
27 => 17
28 => 18
29 => 19
30 => 20
31 => 21
32 => 21
33 => 21
34 => 21
35 => 21
36 => 21
37 => 21
38 => 21
39 => 21
40 => 21
41 => 21
42 => 22
43 => 23
44 => 24
45 => 25
46 => 26
47 => 27
48 => 28
49 => 29
50 => 30
51 => 30
52 => 30
53 => 30
54 => 30
55 => 30
56 => 30
57 => 30
58 => 30
59 => 30
60 => 30
61 => 31
62 => 32
63 => 33
64 => 34
65 => 35
66 => 36
67 => 37
68 => 38
69 => 39
70 => 40
71 => 41
72 => 42
73 => 43
74 => 44
75 => 45
76 => 46
77 => 47
78 => 48
79 => 49
80 => 50
81 => 51
82 => 52
83 => 53
84 => 54
85 => 55
86 => 56
87 => 57
88 => 58
89 => 59
_ => 0
}
}
///|
fn autohint_script_group(script_ix : Int) -> AutoHintScriptGroup {
match script_ix {
0 => Default
1 => Default
2 => Default
3 => Default
4 => Default
5 => Default
6 => Default
7 => Default
8 => Default
9 => Default
10 => Default
11 => Default
12 => Default
13 => Default
14 => Default
15 => Default
16 => Default
17 => Default
18 => Default
19 => Default
20 => Default
21 => Default
22 => Default
23 => Default
24 => Default
25 => Default
26 => Default
27 => Default
28 => Default
29 => Default
30 => Default
31 => Default
32 => Default
33 => Default
34 => Default
35 => Default
36 => Default
37 => Default
38 => Default
39 => Default
40 => Default
41 => Default
42 => Default
43 => Default
44 => Default
45 => Default
46 => Default
47 => Default
48 => Default
49 => Default
50 => Default
51 => Default
52 => Default
53 => Default
54 => Default
55 => Default
56 => Default
57 => Default
58 => Default
59 => Cjk
_ => Default
}
}
///|
fn autohint_script_hint_top_to_bottom(script_ix : Int) -> Bool {
match script_ix {
0 => false
1 => false
2 => false
3 => false
4 => false
5 => true
6 => false
7 => false
8 => false
9 => false
10 => false
11 => false
12 => false
13 => false
14 => true
15 => false
16 => false
17 => false
18 => false
19 => false
20 => true
21 => false
22 => false
23 => true
24 => false
25 => false
26 => false
27 => false
28 => false
29 => false
30 => false
31 => false
32 => false
33 => false
34 => false
35 => false
36 => true
37 => false
38 => false
39 => false
40 => false
41 => false
42 => false
43 => false
44 => false
45 => false
46 => false
47 => false
48 => false
49 => false
50 => false
51 => false
52 => false
53 => false
54 => false
55 => false
56 => false
57 => false
58 => false
59 => false
_ => false
}
}
///|
fn autohint_script_std_chars(script_ix : Int) -> String {
match script_ix {
0 => "𞤌 𞤮"
1 => "ل ح ـ"
2 => "ս Ս"
3 => "𐬚"
4 => "ꛁ ꛯ"
5 => "০ ৪"
6 => "ᝋ ᝏ"
7 => "𑄤 𑄉 𑄛"
8 => "ᑌ ᓚ"
9 => "𐊫 𐋉"
10 => "Ꭴ Ꮕ ꮕ"
11 => "Ⲟ ⲟ"
12 => "𐠅 𐠣"
13 => "о О"
14 => "ठ व ट"
15 => "𐐄 𐐬"
16 => "ዐ"
17 => "ი ე ა Ჿ"
18 => "Ⴖ Ⴑ ⴙ"
19 => "Ⱅ ⱅ"
20 => "𐌴 𐌾 𐍃"
21 => "ο Ο"
22 => "ટ ૦"
23 => "ਠ ਰ ੦"
24 => "ם"
25 => "ꤍ ꤀"
26 => "០"
27 => "᧡ ᧪"
28 => "೦ ಬ"
29 => "໐"
30 => "o O 0"
31 => "ₒ ₀"
32 => "ᵒ ᴼ ⁰"
33 => "ꓳ"
34 => "ഠ റ"
35 => "𖹡 𖹛 𖹯"
36 => "ᡂ ᠪ"
37 => "ဝ င ဂ"
38 => "ߋ ߀"
39 => ""
40 => "ᱛ"
41 => "𐰗"
42 => "𐓂 𐓪"
43 => "𐒆 𐒠"
44 => "𐴰"
45 => "ꢝ ꣐"
46 => "𐑴"
47 => "ට"
48 => "᮰"
49 => "௦"
50 => "ꪒ ꪫ"
51 => "౦ ౧"
52 => "ⵔ"
53 => "า ๅ ๐"
54 => "ꘓ ꖜ ꖴ"
55 => "o"
56 => "o"
57 => "o"
58 => "o"
59 => "田 囗"
_ => ""
}
}
///|
fn autohint_script_blues(script_ix : Int) -> Array[(String, Int)] {
match script_ix {
0 =>
[
("𞤌 𞤅 𞤈 𞤏 𞤔 𞤚", AUTOHINT_BLUE_TOP),
("𞤂 𞤖", AUTOHINT_BLUE_NONE),
("𞤬 𞤮 𞤻 𞤼 𞤾", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("𞤤 𞤨 𞤩 𞤭 𞤴 𞤸 𞤺 𞥀", AUTOHINT_BLUE_NONE),
]
1 =>
[
("ا إ ل ك ط ظ", AUTOHINT_BLUE_TOP),
("ت ث ط ظ ك", AUTOHINT_BLUE_NONE),
("ـ", AUTOHINT_BLUE_NEUTRAL),
]
2 =>
[
("Ա Մ Ւ Ս Բ Գ Դ Օ", AUTOHINT_BLUE_TOP),
("Ւ Ո Դ Ճ Շ Ս Տ Օ", AUTOHINT_BLUE_NONE),
("ե է ի մ վ ֆ ճ", AUTOHINT_BLUE_TOP),
("ա յ ւ ս գ շ ր օ", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("հ ո ճ ա ե ծ ս օ", AUTOHINT_BLUE_NONE),
("բ ը ի լ ղ պ փ ց", AUTOHINT_BLUE_NONE),
]
3 =>
[
("𐬀 𐬁 𐬐 𐬛", AUTOHINT_BLUE_TOP),
("𐬀 𐬁", AUTOHINT_BLUE_NONE),
]
4 =>
[
("ꚧ ꚨ ꛛ ꛉ ꛁ ꛈ ꛫ ꛯ", AUTOHINT_BLUE_TOP),
("ꚭ ꚳ ꚶ ꛬ ꚢ ꚽ ꛯ ꛲", AUTOHINT_BLUE_NONE),
]
5 =>
[
("ই ট ঠ ি ী ৈ ৗ", AUTOHINT_BLUE_TOP),
("ও এ ড ত ন ব ল ক", AUTOHINT_BLUE_TOP),
(
"অ ড ত ন ব ভ ল ক",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_NEUTRAL,
),
("অ ড ত ন ব ভ ল ক", AUTOHINT_BLUE_NONE),
]
6 =>
[
("ᝐ ᝈ", AUTOHINT_BLUE_TOP),
("ᝅ ᝊ ᝎ", AUTOHINT_BLUE_TOP),
("ᝂ ᝃ ᝉ ᝌ", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("ᝀ ᝃ ᝆ ᝉ ᝋ ᝏ ᝑ", AUTOHINT_BLUE_NONE),
]
7 =>
[
("𑄃 𑄅 𑄉 𑄙 𑄗", AUTOHINT_BLUE_TOP),
("𑄅 𑄛 𑄝 𑄗 𑄓", AUTOHINT_BLUE_NONE),
(
"𑄖𑄳𑄢 𑄘𑄳𑄢 𑄙𑄳𑄢 𑄤𑄳𑄢 𑄥𑄳𑄢",
AUTOHINT_BLUE_NONE,
),
]
8 =>
[
("ᗜ ᖴ ᐁ ᒣ ᑫ ᑎ ᔑ ᗰ", AUTOHINT_BLUE_TOP),
("ᗶ ᖵ ᒧ ᐃ ᑌ ᒍ ᔑ ᗢ", AUTOHINT_BLUE_NONE),
(
"ᓓ ᓕ ᓀ ᓂ ᓄ ᕄ ᕆ ᘣ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ᕃ ᓂ ᓀ ᕂ ᓗ ᓚ ᕆ ᘣ", AUTOHINT_BLUE_NONE),
("ᐪ ᙆ ᣘ ᐢ ᒾ ᣗ ᔆ", AUTOHINT_BLUE_TOP),
("ᙆ ᗮ ᒻ ᐞ ᔆ ᒡ ᒢ ᓑ", AUTOHINT_BLUE_NONE),
]
9 =>
[
("𐊧 𐊫 𐊬 𐊭 𐊱 𐊺 𐊼 𐊿", AUTOHINT_BLUE_TOP),
("𐊣 𐊧 𐊷 𐋀 𐊫 𐊸 𐋉", AUTOHINT_BLUE_NONE),
]
10 =>
[
("Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ", AUTOHINT_BLUE_TOP),
("Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ", AUTOHINT_BLUE_NONE),
("ꮒ ꮤ ꮶ ꭴ ꭾ ꮗ ꮝ ꮿ", AUTOHINT_BLUE_TOP),
(
"ꮖ ꭼ ꮓ ꮠ ꮳ ꭶ ꮥ ꮻ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ꮖ ꭼ ꮓ ꮠ ꮳ ꭶ ꮥ ꮻ", AUTOHINT_BLUE_NONE),
("ᏸ ꮐ ꭹ ꭻ", AUTOHINT_BLUE_NONE),
]
11 =>
[
("Ⲍ Ⲏ Ⲡ Ⳟ Ⲟ Ⲑ Ⲥ Ⳋ", AUTOHINT_BLUE_TOP),
("Ⳑ Ⳙ Ⳟ Ⲏ Ⲟ Ⲑ Ⳝ Ⲱ", AUTOHINT_BLUE_NONE),
(
"ⲍ ⲏ ⲡ ⳟ ⲟ ⲑ ⲥ ⳋ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ⳑ ⳙ ⳟ ⲏ ⲟ ⲑ ⳝ Ⳓ", AUTOHINT_BLUE_NONE),
]
12 =>
[
("𐠍 𐠙 𐠳 𐠱 𐠅 𐠓 𐠣 𐠦", AUTOHINT_BLUE_TOP),
("𐠃 𐠊 𐠛 𐠣 𐠳 𐠵 𐠐", AUTOHINT_BLUE_NONE),
("𐠈 𐠏 𐠖", AUTOHINT_BLUE_TOP),
("𐠈 𐠏 𐠖", AUTOHINT_BLUE_NONE),
]
13 =>
[
("Б В Е П З О С Э", AUTOHINT_BLUE_TOP),
("Б В Е Ш З О С Э", AUTOHINT_BLUE_NONE),
("х п н ш е з о с", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("х п н ш е з о с", AUTOHINT_BLUE_NONE),
("р у ф", AUTOHINT_BLUE_NONE),
]
14 =>
[
("ई ऐ ओ औ ि ी ो ौ", AUTOHINT_BLUE_TOP),
("क म अ आ थ ध भ श", AUTOHINT_BLUE_TOP),
(
"क न म उ छ ट ठ ड",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_NEUTRAL,
),
("क न म उ छ ट ठ ड", AUTOHINT_BLUE_NONE),
("ु ृ", AUTOHINT_BLUE_NONE),
]
15 =>
[
("𐐂 𐐄 𐐋 𐐗 𐐑", AUTOHINT_BLUE_TOP),
("𐐀 𐐂 𐐄 𐐗 𐐛", AUTOHINT_BLUE_NONE),
("𐐪 𐐬 𐐳 𐐿 𐐹", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("𐐨 𐐪 𐐬 𐐿 𐑃", AUTOHINT_BLUE_NONE),
]
16 =>
[
("ሀ ሃ ዘ ፐ ማ በ ዋ ዐ", AUTOHINT_BLUE_TOP),
("ለ ሐ በ ዘ ሀ ሪ ዐ ጨ", AUTOHINT_BLUE_NONE),
]
17 =>
[
(
"გ დ ე ვ თ ი ო ღ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ა ზ მ ს შ ძ ხ პ", AUTOHINT_BLUE_NONE),
("ს ხ ქ ზ მ შ ჩ წ", AUTOHINT_BLUE_TOP),
("ე ვ ჟ ტ უ ფ ქ ყ", AUTOHINT_BLUE_NONE),
("Ნ Ჟ Ჳ Ჸ Გ Ე Ო Ჴ", AUTOHINT_BLUE_TOP),
("Ი Ჲ Ო Ჩ Მ Შ Ჯ Ჽ", AUTOHINT_BLUE_NONE),
]
18 =>
[
("Ⴑ Ⴇ Ⴙ Ⴜ Ⴄ Ⴅ Ⴓ Ⴚ", AUTOHINT_BLUE_TOP),
("Ⴄ Ⴅ Ⴇ Ⴈ Ⴆ Ⴑ Ⴊ Ⴋ", AUTOHINT_BLUE_NONE),
(
"ⴁ ⴗ ⴂ ⴄ ⴅ ⴇ ⴔ ⴖ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ⴈ ⴌ ⴖ ⴎ ⴃ ⴆ ⴋ ⴢ", AUTOHINT_BLUE_NONE),
("ⴐ ⴑ ⴓ ⴕ ⴙ ⴛ ⴡ ⴣ", AUTOHINT_BLUE_TOP),
("ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ", AUTOHINT_BLUE_NONE),
]
19 =>
[
("Ⰵ Ⱄ Ⱚ Ⰴ Ⰲ Ⰺ Ⱛ Ⰻ", AUTOHINT_BLUE_TOP),
("Ⰵ Ⰴ Ⰲ Ⱚ Ⱎ Ⱑ Ⰺ Ⱄ", AUTOHINT_BLUE_NONE),
(
"ⰵ ⱄ ⱚ ⰴ ⰲ ⰺ ⱛ ⰻ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ⰵ ⰴ ⰲ ⱚ ⱎ ⱑ ⰺ ⱄ", AUTOHINT_BLUE_NONE),
]
20 =>
[
("𐌲 𐌶 𐍀 𐍄 𐌴 𐍃 𐍈 𐌾", AUTOHINT_BLUE_TOP),
("𐌶 𐌴 𐍃 𐍈", AUTOHINT_BLUE_NONE),
]
21 =>
[
("Γ Β Ε Ζ Θ Ο Ω", AUTOHINT_BLUE_TOP),
("Β Δ Ζ Ξ Θ Ο", AUTOHINT_BLUE_NONE),
("β θ δ ζ λ ξ", AUTOHINT_BLUE_TOP),
("α ε ι ο π σ τ ω", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("α ε ι ο π σ τ ω", AUTOHINT_BLUE_NONE),
("β γ η μ ρ φ χ ψ", AUTOHINT_BLUE_NONE),
]
22 =>
[
(
"ત ન ઋ ઌ છ ટ ર ૦",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ખ ગ ઘ ઞ ઇ ઈ ઠ જ", AUTOHINT_BLUE_NONE),
("ઈ ઊ િ ી લી શ્ચિ જિ સી", AUTOHINT_BLUE_TOP),
("ુ ૃ ૄ ખુ છૃ છૄ", AUTOHINT_BLUE_NONE),
("૦ ૧ ૨ ૩ ૭", AUTOHINT_BLUE_TOP),
]
23 =>
[
("ਇ ਈ ਉ ਏ ਓ ੳ ਿ ੀ", AUTOHINT_BLUE_TOP),
("ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ", AUTOHINT_BLUE_TOP),
(
"ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_NEUTRAL,
),
("ਅ ਏ ਓ ਗ ਜ ਠ ਰ ਸ", AUTOHINT_BLUE_NONE),
("੦ ੧ ੨ ੩ ੭", AUTOHINT_BLUE_TOP),
]
24 =>
[
("ב ד ה ח ך כ ם ס", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_LONG),
("ב ט כ ם ס צ", AUTOHINT_BLUE_NONE),
("ק ך ן ף ץ", AUTOHINT_BLUE_NONE),
]
25 =>
[
("꤅ ꤏ ꤁ ꤋ ꤀ ꤍ", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("꤈ ꤘ ꤀ ꤍ ꤢ", AUTOHINT_BLUE_NONE),
("ꤖ ꤡ", AUTOHINT_BLUE_TOP),
("ꤑ ꤜ ꤞ", AUTOHINT_BLUE_NONE),
("ꤑ꤬ ꤜ꤭ ꤔ꤬", AUTOHINT_BLUE_NONE),
]
26 =>
[
("ខ ទ ន ឧ ឩ ា", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("ក្ក ក្ខ ក្គ ក្ថ", AUTOHINT_BLUE_SUB_TOP),
("ខ ឃ ច ឋ ប ម យ ឲ", AUTOHINT_BLUE_NONE),
("ត្រ រៀ ឲ្យ អឿ", AUTOHINT_BLUE_NONE),
(
"ន្ត្រៃ ង្ខ្យ ក្បៀ ច្រៀ ន្តឿ ល្បឿ",
AUTOHINT_BLUE_NONE,
),
]
27 =>
[
("᧠ ᧡", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("᧶ ᧹", AUTOHINT_BLUE_NONE),
]
28 =>
[
("ಇ ಊ ಐ ಣ ಸಾ ನಾ ದಾ ರಾ", AUTOHINT_BLUE_TOP),
("ಅ ಉ ಎ ಲ ೦ ೨ ೬ ೭", AUTOHINT_BLUE_NONE),
]
29 =>
[
(
"າ ດ ອ ມ ລ ວ ຣ ງ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("າ ອ ບ ຍ ຣ ຮ ວ ຢ", AUTOHINT_BLUE_NONE),
("ປ ຢ ຟ ຝ", AUTOHINT_BLUE_TOP),
("ໂ ໄ ໃ", AUTOHINT_BLUE_TOP),
("ງ ຊ ຖ ຽ ໆ ຯ", AUTOHINT_BLUE_NONE),
]
30 =>
[
("T H E Z O C Q S", AUTOHINT_BLUE_TOP),
("H E Z L O C U S", AUTOHINT_BLUE_NONE),
("f i j k d b h", AUTOHINT_BLUE_TOP),
("u v x z o e s c", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("n r x z o e s c", AUTOHINT_BLUE_NONE),
("p q g j y", AUTOHINT_BLUE_NONE),
]
31 =>
[
("₀ ₃ ₅ ₇ ₈", AUTOHINT_BLUE_TOP),
("₀ ₁ ₂ ₃ ₈", AUTOHINT_BLUE_NONE),
("ᵢ ⱼ ₕ ₖ ₗ", AUTOHINT_BLUE_TOP),
(
"ₐ ₑ ₒ ₓ ₙ ₛ ᵥ ᵤ ᵣ",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("ₐ ₑ ₒ ₓ ₙ ₛ ᵥ ᵤ ᵣ", AUTOHINT_BLUE_NONE),
("ᵦ ᵧ ᵨ ᵩ ₚ", AUTOHINT_BLUE_NONE),
]
32 =>
[
("⁰ ³ ⁵ ⁷ ᵀ ᴴ ᴱ ᴼ", AUTOHINT_BLUE_TOP),
("⁰ ¹ ² ³ ᴱ ᴸ ᴼ ᵁ", AUTOHINT_BLUE_NONE),
("ᵇ ᵈ ᵏ ʰ ʲ ᶠ ⁱ", AUTOHINT_BLUE_TOP),
("ᵉ ᵒ ʳ ˢ ˣ ᶜ ᶻ", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("ᵉ ᵒ ʳ ˢ ˣ ᶜ ᶻ", AUTOHINT_BLUE_NONE),
("ᵖ ʸ ᵍ", AUTOHINT_BLUE_NONE),
]
33 =>
[
("ꓡ ꓧ ꓱ ꓶ ꓩ ꓚ ꓵ ꓳ", AUTOHINT_BLUE_TOP),
("ꓕ ꓜ ꓞ ꓡ ꓛ ꓢ ꓳ ꓴ", AUTOHINT_BLUE_NONE),
]
34 =>
[
("ഒ ട ഠ റ ച പ ച്ച പ്പ", AUTOHINT_BLUE_TOP),
("ട ഠ ധ ശ ഘ ച ഥ ല", AUTOHINT_BLUE_NONE),
]
35 =>
[
("𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹟", AUTOHINT_BLUE_TOP),
("𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹒 𖹓", AUTOHINT_BLUE_NONE),
("𖹤 𖹬 𖹧 𖹴 𖹶 𖹾", AUTOHINT_BLUE_TOP),
(
"𖹠 𖹡 𖹢 𖹹 𖹳 𖹮",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("𖹠 𖹡 𖹢 𖹳 𖹭 𖹽", AUTOHINT_BLUE_NONE),
("𖹥 𖹨 𖹩", AUTOHINT_BLUE_NONE),
("𖺀 𖺅 𖺈 𖺄 𖺍", AUTOHINT_BLUE_TOP),
]
36 =>
[
(
"ᠳ ᠴ ᠶ ᠽ ᡂ ᡊ \\u{200d}ᡡ\\u{200d} \\u{200d}ᡳ\\u{200d}",
AUTOHINT_BLUE_TOP,
),
("ᡃ", AUTOHINT_BLUE_NONE),
]
37 =>
[
(
"ခ ဂ င ဒ ဝ ၥ ၊ ။",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("င ဎ ဒ ပ ဗ ဝ ၊ ။", AUTOHINT_BLUE_NONE),
("ဩ ြ ၍ ၏ ၆ ါ ိ", AUTOHINT_BLUE_TOP),
("ဉ ည ဥ ဩ ဨ ၂ ၅ ၉", AUTOHINT_BLUE_NONE),
]
38 =>
[
("ߐ ߉ ߒ ߟ ߖ ߜ ߠ ߥ", AUTOHINT_BLUE_TOP),
("߀ ߘ ߡ ߠ ߥ", AUTOHINT_BLUE_NONE),
("ߏ ߛ ߋ", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("ߎ ߏ ߛ ߋ", AUTOHINT_BLUE_NONE),
]
39 => []
40 =>
[
("ᱛ ᱜ ᱝ ᱡ ᱢ ᱥ", AUTOHINT_BLUE_TOP),
("ᱛ ᱜ ᱝ ᱡ ᱢ ᱥ", AUTOHINT_BLUE_NONE),
]
41 =>
[
("𐰗 𐰘 𐰧", AUTOHINT_BLUE_TOP),
("𐰉 𐰗 𐰦 𐰧", AUTOHINT_BLUE_NONE),
]
42 =>
[
("𐒾 𐓍 𐓒 𐓓 𐒻 𐓂 𐒵 𐓆", AUTOHINT_BLUE_TOP),
("𐒰 𐓍 𐓂 𐒿 𐓎 𐒹", AUTOHINT_BLUE_NONE),
("𐒼 𐒽 𐒾", AUTOHINT_BLUE_NONE),
(
"𐓵 𐓶 𐓺 𐓻 𐓝 𐓣 𐓪 𐓮",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("𐓘 𐓚 𐓣 𐓵 𐓡 𐓧 𐓪 𐓶", AUTOHINT_BLUE_NONE),
("𐓤 𐓦 𐓸 𐓹 𐓛", AUTOHINT_BLUE_TOP),
("𐓤 𐓥 𐓦", AUTOHINT_BLUE_NONE),
]
43 =>
[
("𐒆 𐒉 𐒐 𐒒 𐒘 𐒛 𐒠 𐒣", AUTOHINT_BLUE_TOP),
("𐒀 𐒂 𐒆 𐒈 𐒊 𐒒 𐒠 𐒩", AUTOHINT_BLUE_NONE),
]
44 =>
[
("𐴃 𐴀 𐴆 𐴖 𐴕", AUTOHINT_BLUE_TOP),
("𐴔 𐴖 𐴕 𐴑 𐴐", AUTOHINT_BLUE_NONE),
("ـ", AUTOHINT_BLUE_NEUTRAL),
]
45 =>
[
("ꢜ ꢞ ꢳ ꢂ ꢖ ꢒ ꢝ ꢛ", AUTOHINT_BLUE_TOP),
("ꢂ ꢨ ꢺ ꢤ ꢎ", AUTOHINT_BLUE_NONE),
]
46 =>
[
("𐑕 𐑙", AUTOHINT_BLUE_TOP),
("𐑔 𐑖 𐑗 𐑹 𐑻", AUTOHINT_BLUE_NONE),
("𐑟 𐑣", AUTOHINT_BLUE_NONE),
(
"𐑱 𐑲 𐑳 𐑴 𐑸 𐑺 𐑼",
AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT,
),
("𐑴 𐑻 𐑹", AUTOHINT_BLUE_NONE),
]
47 =>
[
("ඉ ක ඝ ඳ ප ය ල ෆ", AUTOHINT_BLUE_TOP),
("එ ඔ ඝ ජ ට ථ ධ ර", AUTOHINT_BLUE_NONE),
("ද ඳ උ ල තූ තු බු දු", AUTOHINT_BLUE_NONE),
]
48 =>
[
("ᮋ ᮞ ᮮ ᮽ ᮰ ᮈ", AUTOHINT_BLUE_TOP),
("ᮄ ᮔ ᮕ ᮗ ᮰ ᮆ ᮈ ᮉ", AUTOHINT_BLUE_NONE),
("ᮼ ᳄", AUTOHINT_BLUE_NONE),
]
49 =>
[
("உ ஒ ஓ ற ஈ க ங ச", AUTOHINT_BLUE_TOP),
("க ச ல ஶ உ ங ட ப", AUTOHINT_BLUE_NONE),
]
50 =>
[
("ꪆ ꪔ ꪒ ꪖ ꪫ", AUTOHINT_BLUE_TOP),
("ꪉ ꪫ ꪮ", AUTOHINT_BLUE_NONE),
]
51 =>
[
("ఇ ఌ ఙ ఞ ణ ఱ ౯", AUTOHINT_BLUE_TOP),
("అ క చ ర ఽ ౨ ౬", AUTOHINT_BLUE_NONE),
]
52 =>
[
("ⵔ ⵙ ⵛ ⵞ ⴵ ⴼ ⴹ ⵎ", AUTOHINT_BLUE_TOP),
("ⵔ ⵙ ⵛ ⵞ ⴵ ⴼ ⴹ ⵎ", AUTOHINT_BLUE_NONE),
]
53 =>
[
("บ เ แ อ ก า", AUTOHINT_BLUE_TOP | AUTOHINT_BLUE_X_HEIGHT),
("บ ป ษ ฯ อ ย ฮ", AUTOHINT_BLUE_NONE),
("ป ฝ ฟ", AUTOHINT_BLUE_TOP),
("โ ใ ไ", AUTOHINT_BLUE_TOP),
("ฎ ฏ ฤ ฦ", AUTOHINT_BLUE_NONE),
("ญ ฐ", AUTOHINT_BLUE_NONE),
("๐ ๑ ๓", AUTOHINT_BLUE_NONE),
]
54 =>
[
("ꗍ ꘖ ꘙ ꘜ ꖜ ꖝ ꔅ ꕢ", AUTOHINT_BLUE_TOP),
("ꗍ ꘖ ꘙ ꗞ ꔅ ꕢ ꖜ ꔆ", AUTOHINT_BLUE_NONE),
]
55 => []
56 => []
57 => []
58 => []
59 =>
[
(
"他 们 你 來 們 到 和 地 对 對 就 席 我 时 時 會 来 為 能 舰 說 说 这 這 齊 | 军 同 已 愿 既 星 是 景 民 照 现 現 理 用 置 要 軍 那 配 里 開 雷 露 面 顾",
AUTOHINT_BLUE_TOP,
),
(
"个 为 人 他 以 们 你 來 個 們 到 和 大 对 對 就 我 时 時 有 来 為 要 說 说 | 主 些 因 它 想 意 理 生 當 看 着 置 者 自 著 裡 过 还 进 進 過 道 還 里 面",
AUTOHINT_BLUE_NONE,
),
(
" 些 们 你 來 們 到 和 地 她 将 將 就 年 得 情 最 样 樣 理 能 說 说 这 這 通 | 即 吗 吧 听 呢 品 响 嗎 师 師 收 断 斷 明 眼 間 间 际 陈 限 除 陳 随 際 隨",
AUTOHINT_BLUE_HORIZONTAL,
),
(
"事 前 學 将 將 情 想 或 政 斯 新 样 樣 民 沒 没 然 特 现 現 球 第 經 谁 起 | 例 別 别 制 动 動 吗 嗎 增 指 明 朝 期 构 物 确 种 調 调 費 费 那 都 間 间",
AUTOHINT_BLUE_HORIZONTAL | AUTOHINT_BLUE_RIGHT,
),
]
_ => Array::new()
}
}