@delali/narsil-react-native 0.3.1-next.155 → 0.3.1-next.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +144 -0
- package/NarsilReactNative.podspec +2 -2
- package/android/CMakeLists.txt +1 -1
- package/cpp/HybridNarsilCoreAnalysis.cpp +277 -0
- package/cpp/HybridNarsilCoreImpl.hpp +43 -0
- package/cpp/HybridNarsilCoreKeyword.cpp +253 -0
- package/cpp/HybridNarsilCoreMath.cpp +47 -0
- package/cpp/core/include/narsil_analysis.h +86 -0
- package/cpp/core/include/narsil_core.h +1 -1
- package/cpp/core/include/narsil_keyword.h +110 -0
- package/cpp/core/include/narsil_math.h +36 -0
- package/cpp/core/src/analysis/analyse.c +281 -0
- package/cpp/core/src/analysis/analyser.h +49 -0
- package/cpp/core/src/analysis/languages.c +79 -0
- package/cpp/core/src/analysis/languages.h +42 -0
- package/cpp/core/src/analysis/normalise.c +242 -0
- package/cpp/core/src/analysis/normalise.h +28 -0
- package/cpp/core/src/analysis/split.c +183 -0
- package/cpp/core/src/analysis/split.h +27 -0
- package/cpp/core/src/analysis/stop_words.c +82 -0
- package/cpp/core/src/analysis/stop_words.h +19 -0
- package/cpp/core/src/analysis/term_cache.c +88 -0
- package/cpp/core/src/analysis/term_cache.h +36 -0
- package/cpp/core/src/analysis/text.c +161 -0
- package/cpp/core/src/analysis/text.h +45 -0
- package/cpp/core/src/analysis/transform.c +103 -0
- package/cpp/core/src/analysis/unicode.c +252 -0
- package/cpp/core/src/analysis/unicode.h +54 -0
- package/cpp/core/src/internal.h +4 -0
- package/cpp/core/src/keyword/pass.h +117 -0
- package/cpp/core/src/keyword/prune.c +324 -0
- package/cpp/core/src/keyword/request.c +179 -0
- package/cpp/core/src/keyword/rows.c +83 -0
- package/cpp/core/src/keyword/rows.h +18 -0
- package/cpp/core/src/keyword/score.c +257 -0
- package/cpp/core/src/keyword/score.h +17 -0
- package/cpp/core/src/keyword/scratch.c +226 -0
- package/cpp/core/src/keyword/scratch.h +55 -0
- package/cpp/core/src/keyword/select.c +155 -0
- package/cpp/core/src/keyword/select.h +17 -0
- package/cpp/core/src/languages/bulgarian_stemmer.c +114 -0
- package/cpp/core/src/languages/data/albanian.c +54 -0
- package/cpp/core/src/languages/data/amharic.c +93 -0
- package/cpp/core/src/languages/data/arabic.c +146 -0
- package/cpp/core/src/languages/data/armenian.c +46 -0
- package/cpp/core/src/languages/data/azerbaijani.c +68 -0
- package/cpp/core/src/languages/data/bambara.c +48 -0
- package/cpp/core/src/languages/data/basque.c +62 -0
- package/cpp/core/src/languages/data/belarusian.c +56 -0
- package/cpp/core/src/languages/data/bengali.c +63 -0
- package/cpp/core/src/languages/data/bosnian.c +73 -0
- package/cpp/core/src/languages/data/breton.c +52 -0
- package/cpp/core/src/languages/data/bulgarian.c +144 -0
- package/cpp/core/src/languages/data/burmese.c +48 -0
- package/cpp/core/src/languages/data/catalan.c +84 -0
- package/cpp/core/src/languages/data/chinese.c +70 -0
- package/cpp/core/src/languages/data/croatian.c +72 -0
- package/cpp/core/src/languages/data/czech.c +72 -0
- package/cpp/core/src/languages/data/dagbani.c +88 -0
- package/cpp/core/src/languages/data/danish.c +56 -0
- package/cpp/core/src/languages/data/declarations.h +114 -0
- package/cpp/core/src/languages/data/dutch.c +58 -0
- package/cpp/core/src/languages/data/english.c +172 -0
- package/cpp/core/src/languages/data/esperanto.c +71 -0
- package/cpp/core/src/languages/data/estonian.c +417 -0
- package/cpp/core/src/languages/data/ewe.c +89 -0
- package/cpp/core/src/languages/data/faroese.c +54 -0
- package/cpp/core/src/languages/data/fijian.c +44 -0
- package/cpp/core/src/languages/data/finnish.c +100 -0
- package/cpp/core/src/languages/data/french.c +74 -0
- package/cpp/core/src/languages/data/ga.c +83 -0
- package/cpp/core/src/languages/data/galician.c +70 -0
- package/cpp/core/src/languages/data/georgian.c +57 -0
- package/cpp/core/src/languages/data/german.c +96 -0
- package/cpp/core/src/languages/data/greek.c +202 -0
- package/cpp/core/src/languages/data/guarani.c +110 -0
- package/cpp/core/src/languages/data/gujarati.c +90 -0
- package/cpp/core/src/languages/data/haitian-creole.c +54 -0
- package/cpp/core/src/languages/data/hausa.c +85 -0
- package/cpp/core/src/languages/data/hawaiian.c +50 -0
- package/cpp/core/src/languages/data/hebrew.c +85 -0
- package/cpp/core/src/languages/data/hindi.c +91 -0
- package/cpp/core/src/languages/data/hungarian.c +98 -0
- package/cpp/core/src/languages/data/icelandic.c +73 -0
- package/cpp/core/src/languages/data/igbo.c +90 -0
- package/cpp/core/src/languages/data/indonesian.c +296 -0
- package/cpp/core/src/languages/data/irish.c +60 -0
- package/cpp/core/src/languages/data/italian.c +107 -0
- package/cpp/core/src/languages/data/japanese.c +52 -0
- package/cpp/core/src/languages/data/kannada.c +60 -0
- package/cpp/core/src/languages/data/kazakh.c +57 -0
- package/cpp/core/src/languages/data/khmer.c +71 -0
- package/cpp/core/src/languages/data/kinyarwanda.c +54 -0
- package/cpp/core/src/languages/data/kirundi.c +53 -0
- package/cpp/core/src/languages/data/korean.c +74 -0
- package/cpp/core/src/languages/data/kurmanji.c +43 -0
- package/cpp/core/src/languages/data/kyrgyz.c +65 -0
- package/cpp/core/src/languages/data/lao.c +46 -0
- package/cpp/core/src/languages/data/latin.c +46 -0
- package/cpp/core/src/languages/data/latvian.c +75 -0
- package/cpp/core/src/languages/data/lingala.c +88 -0
- package/cpp/core/src/languages/data/lithuanian.c +65 -0
- package/cpp/core/src/languages/data/luxembourgish.c +80 -0
- package/cpp/core/src/languages/data/macedonian.c +286 -0
- package/cpp/core/src/languages/data/malagasy.c +51 -0
- package/cpp/core/src/languages/data/malay.c +184 -0
- package/cpp/core/src/languages/data/malayalam.c +64 -0
- package/cpp/core/src/languages/data/maltese.c +102 -0
- package/cpp/core/src/languages/data/maori.c +52 -0
- package/cpp/core/src/languages/data/marathi.c +62 -0
- package/cpp/core/src/languages/data/nepali.c +72 -0
- package/cpp/core/src/languages/data/norwegian.c +74 -0
- package/cpp/core/src/languages/data/oromo.c +51 -0
- package/cpp/core/src/languages/data/persian.c +150 -0
- package/cpp/core/src/languages/data/polish.c +111 -0
- package/cpp/core/src/languages/data/portuguese.c +91 -0
- package/cpp/core/src/languages/data/punjabi.c +80 -0
- package/cpp/core/src/languages/data/registry.c +116 -0
- package/cpp/core/src/languages/data/romanian.c +93 -0
- package/cpp/core/src/languages/data/russian.c +76 -0
- package/cpp/core/src/languages/data/samoan.c +47 -0
- package/cpp/core/src/languages/data/sanskrit.c +53 -0
- package/cpp/core/src/languages/data/scottish-gaelic.c +119 -0
- package/cpp/core/src/languages/data/serbian.c +84 -0
- package/cpp/core/src/languages/data/shona.c +55 -0
- package/cpp/core/src/languages/data/sinhala.c +78 -0
- package/cpp/core/src/languages/data/slovak.c +135 -0
- package/cpp/core/src/languages/data/slovenian.c +139 -0
- package/cpp/core/src/languages/data/sorani.c +55 -0
- package/cpp/core/src/languages/data/spanish.c +84 -0
- package/cpp/core/src/languages/data/swahili.c +59 -0
- package/cpp/core/src/languages/data/swedish.c +60 -0
- package/cpp/core/src/languages/data/tagalog.c +75 -0
- package/cpp/core/src/languages/data/tamil.c +69 -0
- package/cpp/core/src/languages/data/tatar.c +548 -0
- package/cpp/core/src/languages/data/telugu.c +54 -0
- package/cpp/core/src/languages/data/thai.c +46 -0
- package/cpp/core/src/languages/data/tibetan.c +55 -0
- package/cpp/core/src/languages/data/tigrinya.c +73 -0
- package/cpp/core/src/languages/data/tongan.c +47 -0
- package/cpp/core/src/languages/data/turkish.c +100 -0
- package/cpp/core/src/languages/data/twi.c +88 -0
- package/cpp/core/src/languages/data/ukrainian.c +99 -0
- package/cpp/core/src/languages/data/urdu.c +174 -0
- package/cpp/core/src/languages/data/vietnamese.c +88 -0
- package/cpp/core/src/languages/data/welsh.c +143 -0
- package/cpp/core/src/languages/data/wolof.c +51 -0
- package/cpp/core/src/languages/data/xhosa.c +56 -0
- package/cpp/core/src/languages/data/yoruba.c +93 -0
- package/cpp/core/src/languages/data/zulu.c +58 -0
- package/cpp/core/src/languages/marks.c +64 -0
- package/cpp/core/src/languages/rules.c +63 -0
- package/cpp/core/src/languages/rules.h +68 -0
- package/cpp/core/src/languages/sanskrit_stemmer.c +50 -0
- package/cpp/core/src/languages/scripts.c +143 -0
- package/cpp/core/src/languages/slovenian_stemmer.c +46 -0
- package/cpp/core/src/languages/snowball/api.c +52 -0
- package/cpp/core/src/languages/snowball/api.h +43 -0
- package/cpp/core/src/languages/snowball/arabic_stemmer.c +1506 -0
- package/cpp/core/src/languages/snowball/arabic_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/armenian_stemmer.c +523 -0
- package/cpp/core/src/languages/snowball/armenian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/basque_stemmer.c +1089 -0
- package/cpp/core/src/languages/snowball/basque_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/catalan_stemmer.c +1380 -0
- package/cpp/core/src/languages/snowball/catalan_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/czech_stemmer.c +582 -0
- package/cpp/core/src/languages/snowball/czech_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/danish_stemmer.c +352 -0
- package/cpp/core/src/languages/snowball/danish_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/dutch_stemmer.c +1657 -0
- package/cpp/core/src/languages/snowball/dutch_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/english_stemmer.c +1019 -0
- package/cpp/core/src/languages/snowball/english_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/esperanto_stemmer.c +716 -0
- package/cpp/core/src/languages/snowball/esperanto_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/estonian_stemmer.c +1361 -0
- package/cpp/core/src/languages/snowball/estonian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/finnish_stemmer.c +800 -0
- package/cpp/core/src/languages/snowball/finnish_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/french_stemmer.c +1217 -0
- package/cpp/core/src/languages/snowball/french_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/german_stemmer.c +567 -0
- package/cpp/core/src/languages/snowball/german_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/greek_stemmer.c +3450 -0
- package/cpp/core/src/languages/snowball/greek_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/hindi_stemmer.c +325 -0
- package/cpp/core/src/languages/snowball/hindi_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/hungarian_stemmer.c +742 -0
- package/cpp/core/src/languages/snowball/hungarian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/indonesian_stemmer.c +443 -0
- package/cpp/core/src/languages/snowball/indonesian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/irish_stemmer.c +428 -0
- package/cpp/core/src/languages/snowball/irish_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/italian_stemmer.c +983 -0
- package/cpp/core/src/languages/snowball/italian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/lithuanian_stemmer.c +794 -0
- package/cpp/core/src/languages/snowball/lithuanian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/nepali_stemmer.c +361 -0
- package/cpp/core/src/languages/snowball/nepali_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/norwegian_stemmer.c +332 -0
- package/cpp/core/src/languages/snowball/norwegian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/persian_stemmer.c +538 -0
- package/cpp/core/src/languages/snowball/persian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/polish_stemmer.c +501 -0
- package/cpp/core/src/languages/snowball/polish_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/portuguese_stemmer.c +866 -0
- package/cpp/core/src/languages/snowball/portuguese_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/romanian_stemmer.c +940 -0
- package/cpp/core/src/languages/snowball/romanian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/russian_stemmer.c +598 -0
- package/cpp/core/src/languages/snowball/russian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/serbian_stemmer.c +6765 -0
- package/cpp/core/src/languages/snowball/serbian_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/snowball_runtime.h +122 -0
- package/cpp/core/src/languages/snowball/spanish_stemmer.c +955 -0
- package/cpp/core/src/languages/snowball/spanish_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/swedish_stemmer.c +364 -0
- package/cpp/core/src/languages/snowball/swedish_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/tamil_stemmer.c +1305 -0
- package/cpp/core/src/languages/snowball/tamil_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/turkish_stemmer.c +1700 -0
- package/cpp/core/src/languages/snowball/turkish_stemmer.h +24 -0
- package/cpp/core/src/languages/snowball/utilities.c +716 -0
- package/cpp/core/src/languages/substitutions.c +131 -0
- package/cpp/core/src/languages/swahili_stemmer.c +85 -0
- package/cpp/core/src/languages/ukrainian_stemmer.c +168 -0
- package/cpp/core/src/locks.c +2 -15
- package/cpp/core/src/math/apply.c +44 -0
- package/cpp/core/src/math/fdlibm.h +16 -0
- package/cpp/core/src/math/inverse.c +242 -0
- package/cpp/core/src/math/log.c +90 -0
- package/cpp/core/src/math/reduce.c +325 -0
- package/cpp/core/src/math/trig.c +188 -0
- package/cpp/core/src/math/words.h +45 -0
- package/cpp/core/src/thread_yield.h +18 -0
- package/cpp/core/src/unicode/decompositions.c +310 -0
- package/cpp/core/src/unicode/lowercase.c +172 -0
- package/cpp/core/src/unicode/properties.c +214 -0
- package/cpp/core/src/workspace.c +5 -1
- package/lib/engine/analysis.d.ts +3 -0
- package/lib/engine/analysis.js +76 -0
- package/lib/engine/core.js +5 -0
- package/lib/engine/keyword.d.ts +3 -0
- package/lib/engine/keyword.js +25 -0
- package/lib/specs/core.nitro.d.ts +1 -0
- package/nitrogen/generated/shared/c++/HybridNarsilCoreSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridNarsilCoreSpec.hpp +1 -0
- package/package.json +4 -3
- package/src/engine/analysis.ts +87 -0
- package/src/engine/core.ts +6 -0
- package/src/engine/keyword.ts +26 -0
- package/src/specs/core.nitro.ts +1 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
#include "fdlibm.h"
|
|
2
|
+
#include "words.h"
|
|
3
|
+
|
|
4
|
+
#include <math.h>
|
|
5
|
+
#include <stdint.h>
|
|
6
|
+
|
|
7
|
+
#define PI_OVER_FOUR_HIGH_WORD 0x3FE921FB
|
|
8
|
+
#define TINY_SINE_HIGH_WORD 0x3E400000
|
|
9
|
+
#define TINY_TANGENT_HIGH_WORD 0x3E300000
|
|
10
|
+
#define SMALL_COSINE_HIGH_WORD 0x3FD33333
|
|
11
|
+
#define LARGE_COSINE_HIGH_WORD 0x3FE90000
|
|
12
|
+
#define QUARTER_EXPONENT_STEP 0x00200000
|
|
13
|
+
#define TANGENT_REFLECTION_HIGH_WORD 0x3FE59428
|
|
14
|
+
#define TANGENT_SIGN_SHIFT 30U
|
|
15
|
+
#define TANGENT_SIGN_MASK 2U
|
|
16
|
+
#define QUADRANT_MASK 3
|
|
17
|
+
|
|
18
|
+
static const double half = 5.00000000000000000000e-01;
|
|
19
|
+
static const double two = 2.0;
|
|
20
|
+
static const double large_cosine_quarter = 0.28125;
|
|
21
|
+
|
|
22
|
+
static const double cos1 = 4.16666666666666019037e-02;
|
|
23
|
+
static const double cos2 = -1.38888888888741095749e-03;
|
|
24
|
+
static const double cos3 = 2.48015872894767294178e-05;
|
|
25
|
+
static const double cos4 = -2.75573143513906633035e-07;
|
|
26
|
+
static const double cos5 = 2.08757232129817482790e-09;
|
|
27
|
+
static const double cos6 = -1.13596475577881948265e-11;
|
|
28
|
+
|
|
29
|
+
static const double sin1 = -1.66666666666666324348e-01;
|
|
30
|
+
static const double sin2 = 8.33333333332248946124e-03;
|
|
31
|
+
static const double sin3 = -1.98412698298579493134e-04;
|
|
32
|
+
static const double sin4 = 2.75573137070700676789e-06;
|
|
33
|
+
static const double sin5 = -2.50507602534068634195e-08;
|
|
34
|
+
static const double sin6 = 1.58969099521155010221e-10;
|
|
35
|
+
|
|
36
|
+
static const double tan0 = 3.33333333333334091986e-01;
|
|
37
|
+
static const double tan1 = 1.33333333333201242699e-01;
|
|
38
|
+
static const double tan2 = 5.39682539762260521377e-02;
|
|
39
|
+
static const double tan3 = 2.18694882948595424599e-02;
|
|
40
|
+
static const double tan4 = 8.86323982359930005737e-03;
|
|
41
|
+
static const double tan5 = 3.59207910759131235356e-03;
|
|
42
|
+
static const double tan6 = 1.45620945432529025516e-03;
|
|
43
|
+
static const double tan7 = 5.88041240820264096874e-04;
|
|
44
|
+
static const double tan8 = 2.46463134818469906812e-04;
|
|
45
|
+
static const double tan9 = 7.81794442939557092300e-05;
|
|
46
|
+
static const double tan10 = 7.14072491382608190305e-05;
|
|
47
|
+
static const double tan11 = -1.85586374855275456654e-05;
|
|
48
|
+
static const double tan12 = 2.59073051863633712884e-05;
|
|
49
|
+
|
|
50
|
+
static const double pio4 = 7.85398163397448278999e-01;
|
|
51
|
+
static const double pio4lo = 3.06161699786838301793e-17;
|
|
52
|
+
|
|
53
|
+
static double kernel_cos(const double *angle) {
|
|
54
|
+
double head = angle[0];
|
|
55
|
+
double tail = angle[1];
|
|
56
|
+
int32_t magnitude = high_word(head) & MAGNITUDE_MASK;
|
|
57
|
+
if (magnitude < TINY_SINE_HIGH_WORD && (int32_t)head == 0) { return 1.0; }
|
|
58
|
+
double square = head * head;
|
|
59
|
+
double poly =
|
|
60
|
+
square * (cos1 + (square * (cos2 + (square * (cos3 + (square * (cos4 + (square * (cos5 + (square * cos6))))))))));
|
|
61
|
+
if (magnitude < SMALL_COSINE_HIGH_WORD) { return 1.0 - ((half * square) - ((square * poly) - (head * tail))); }
|
|
62
|
+
double quarter =
|
|
63
|
+
magnitude > LARGE_COSINE_HIGH_WORD ? large_cosine_quarter : from_words(magnitude - QUARTER_EXPONENT_STEP, 0);
|
|
64
|
+
double shifted = (half * square) - quarter;
|
|
65
|
+
double rest = 1.0 - quarter;
|
|
66
|
+
return rest - (shifted - ((square * poly) - (head * tail)));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static double kernel_sin(const double *angle, int with_tail) {
|
|
70
|
+
double head = angle[0];
|
|
71
|
+
double tail = angle[1];
|
|
72
|
+
int32_t magnitude = high_word(head) & MAGNITUDE_MASK;
|
|
73
|
+
if (magnitude < TINY_SINE_HIGH_WORD && (int32_t)head == 0) { return head; }
|
|
74
|
+
double square = head * head;
|
|
75
|
+
double cube = square * head;
|
|
76
|
+
double poly = sin2 + (square * (sin3 + (square * (sin4 + (square * (sin5 + (square * sin6)))))));
|
|
77
|
+
if (with_tail == 0) { return head + (cube * (sin1 + (square * poly))); }
|
|
78
|
+
return head - (((square * ((half * tail) - (cube * poly))) - tail) - (cube * sin1));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static double careful_reciprocal(const double *parts) {
|
|
82
|
+
double sum = parts[0] + parts[1];
|
|
83
|
+
double sum_head = with_low_word(sum, 0);
|
|
84
|
+
double sum_tail = parts[1] - (sum_head - parts[0]);
|
|
85
|
+
double reciprocal = -1.0 / sum;
|
|
86
|
+
double reciprocal_head = with_low_word(reciprocal, 0);
|
|
87
|
+
double error = 1.0 + (reciprocal_head * sum_head);
|
|
88
|
+
return reciprocal_head + (reciprocal * (error + (reciprocal_head * sum_tail)));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
static double tiny_tangent(const double *angle, int sign) {
|
|
92
|
+
double head = angle[0];
|
|
93
|
+
int32_t magnitude = high_word(head) & MAGNITUDE_MASK;
|
|
94
|
+
if ((((uint32_t)magnitude | low_word(head)) | (uint32_t)(sign + 1)) == 0U) { return 1.0 / fabs(head); }
|
|
95
|
+
if (sign == 1) { return head; }
|
|
96
|
+
return careful_reciprocal(angle);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static double kernel_tan(const double *angle, int sign) {
|
|
100
|
+
double head = angle[0];
|
|
101
|
+
double tail = angle[1];
|
|
102
|
+
int32_t high = high_word(head);
|
|
103
|
+
int32_t magnitude = high & MAGNITUDE_MASK;
|
|
104
|
+
if (magnitude < TINY_TANGENT_HIGH_WORD && (int32_t)head == 0) { return tiny_tangent(angle, sign); }
|
|
105
|
+
int reflected = magnitude >= TANGENT_REFLECTION_HIGH_WORD;
|
|
106
|
+
if (reflected) {
|
|
107
|
+
if (is_negative_word(high)) {
|
|
108
|
+
head = -head;
|
|
109
|
+
tail = -tail;
|
|
110
|
+
}
|
|
111
|
+
double offset = pio4 - head;
|
|
112
|
+
double offset_tail = pio4lo - tail;
|
|
113
|
+
head = offset + offset_tail;
|
|
114
|
+
tail = 0.0;
|
|
115
|
+
}
|
|
116
|
+
double square = head * head;
|
|
117
|
+
double fourth = square * square;
|
|
118
|
+
double odd = tan1 + (fourth * (tan3 + (fourth * (tan5 + (fourth * (tan7 + (fourth * (tan9 + (fourth * tan11)))))))));
|
|
119
|
+
double even =
|
|
120
|
+
square *
|
|
121
|
+
(tan2 + (fourth * (tan4 + (fourth * (tan6 + (fourth * (tan8 + (fourth * (tan10 + (fourth * tan12))))))))));
|
|
122
|
+
double cube = square * head;
|
|
123
|
+
double rest = tail + (square * ((cube * (odd + even)) + tail));
|
|
124
|
+
rest += tan0 * cube;
|
|
125
|
+
double sum = head + rest;
|
|
126
|
+
if (reflected) {
|
|
127
|
+
double turn = (double)sign;
|
|
128
|
+
double direction = (double)(1 - (int32_t)(((uint32_t)high >> TANGENT_SIGN_SHIFT) & TANGENT_SIGN_MASK));
|
|
129
|
+
return direction * (turn - (two * (head - (((sum * sum) / (sum + turn)) - rest))));
|
|
130
|
+
}
|
|
131
|
+
if (sign == 1) { return sum; }
|
|
132
|
+
double parts[2] = {head, rest};
|
|
133
|
+
return careful_reciprocal(parts);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
double fdlibm_sin(double value) {
|
|
137
|
+
int32_t magnitude = high_word(value) & MAGNITUDE_MASK;
|
|
138
|
+
if (magnitude <= PI_OVER_FOUR_HIGH_WORD) {
|
|
139
|
+
double angle[2] = {value, 0.0};
|
|
140
|
+
return kernel_sin(angle, 0);
|
|
141
|
+
}
|
|
142
|
+
if (magnitude >= INFINITE_HIGH_WORD) { return (double)NAN; }
|
|
143
|
+
double reduced[2] = {0.0, 0.0};
|
|
144
|
+
int32_t turns = fdlibm_rem_pio2(value, reduced);
|
|
145
|
+
switch (turns & QUADRANT_MASK) {
|
|
146
|
+
case 0:
|
|
147
|
+
return kernel_sin(reduced, 1);
|
|
148
|
+
case 1:
|
|
149
|
+
return kernel_cos(reduced);
|
|
150
|
+
case 2:
|
|
151
|
+
return -kernel_sin(reduced, 1);
|
|
152
|
+
default:
|
|
153
|
+
return -kernel_cos(reduced);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
double fdlibm_cos(double value) {
|
|
158
|
+
int32_t magnitude = high_word(value) & MAGNITUDE_MASK;
|
|
159
|
+
if (magnitude <= PI_OVER_FOUR_HIGH_WORD) {
|
|
160
|
+
double angle[2] = {value, 0.0};
|
|
161
|
+
return kernel_cos(angle);
|
|
162
|
+
}
|
|
163
|
+
if (magnitude >= INFINITE_HIGH_WORD) { return (double)NAN; }
|
|
164
|
+
double reduced[2] = {0.0, 0.0};
|
|
165
|
+
int32_t turns = fdlibm_rem_pio2(value, reduced);
|
|
166
|
+
switch (turns & QUADRANT_MASK) {
|
|
167
|
+
case 0:
|
|
168
|
+
return kernel_cos(reduced);
|
|
169
|
+
case 1:
|
|
170
|
+
return -kernel_sin(reduced, 1);
|
|
171
|
+
case 2:
|
|
172
|
+
return -kernel_cos(reduced);
|
|
173
|
+
default:
|
|
174
|
+
return kernel_sin(reduced, 1);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
double fdlibm_tan(double value) {
|
|
179
|
+
int32_t magnitude = high_word(value) & MAGNITUDE_MASK;
|
|
180
|
+
if (magnitude <= PI_OVER_FOUR_HIGH_WORD) {
|
|
181
|
+
double angle[2] = {value, 0.0};
|
|
182
|
+
return kernel_tan(angle, 1);
|
|
183
|
+
}
|
|
184
|
+
if (magnitude >= INFINITE_HIGH_WORD) { return (double)NAN; }
|
|
185
|
+
double reduced[2] = {0.0, 0.0};
|
|
186
|
+
int32_t turns = fdlibm_rem_pio2(value, reduced);
|
|
187
|
+
return kernel_tan(reduced, 1 - ((turns & 1) << 1));
|
|
188
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#ifndef NARSIL_MATH_WORDS_H
|
|
2
|
+
#define NARSIL_MATH_WORDS_H
|
|
3
|
+
|
|
4
|
+
#include <stdint.h>
|
|
5
|
+
#include <string.h>
|
|
6
|
+
|
|
7
|
+
#define WORD_BITS 32U
|
|
8
|
+
#define SIGN_BIT 31U
|
|
9
|
+
#define MAGNITUDE_MASK 0x7FFFFFFF
|
|
10
|
+
#define EXPONENT_SHIFT 20U
|
|
11
|
+
#define EXPONENT_MASK 0x7FFU
|
|
12
|
+
#define INFINITE_HIGH_WORD 0x7FF00000
|
|
13
|
+
#define SMALLEST_NORMAL_HIGH_WORD 0x00100000
|
|
14
|
+
|
|
15
|
+
static inline uint64_t bits_of(double value) {
|
|
16
|
+
uint64_t bits = 0;
|
|
17
|
+
memcpy(&bits, &value, sizeof bits);
|
|
18
|
+
return bits;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static inline double double_of(uint64_t bits) {
|
|
22
|
+
double value = 0;
|
|
23
|
+
memcpy(&value, &bits, sizeof value);
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static inline int32_t high_word(double value) { return (int32_t)(uint32_t)(bits_of(value) >> WORD_BITS); }
|
|
28
|
+
|
|
29
|
+
static inline uint32_t low_word(double value) { return (uint32_t)bits_of(value); }
|
|
30
|
+
|
|
31
|
+
static inline double from_words(int32_t high, uint32_t low) {
|
|
32
|
+
return double_of(((uint64_t)(uint32_t)high << WORD_BITS) | low);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static inline double with_high_word(double value, int32_t high) { return from_words(high, low_word(value)); }
|
|
36
|
+
|
|
37
|
+
static inline double with_low_word(double value, uint32_t low) { return from_words(high_word(value), low); }
|
|
38
|
+
|
|
39
|
+
static inline int32_t floor_shift(int32_t value, uint32_t shift) {
|
|
40
|
+
return value >= 0 ? value >> shift : -1 - ((-1 - value) >> shift);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static inline int is_negative_word(int32_t high) { return (((uint32_t)high >> SIGN_BIT) & 1U) != 0; }
|
|
44
|
+
|
|
45
|
+
#endif
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#ifndef NARSIL_THREAD_YIELD_H
|
|
2
|
+
#define NARSIL_THREAD_YIELD_H
|
|
3
|
+
|
|
4
|
+
#ifdef _WIN32
|
|
5
|
+
#include <windows.h>
|
|
6
|
+
#else
|
|
7
|
+
#include <sched.h>
|
|
8
|
+
#endif
|
|
9
|
+
|
|
10
|
+
static inline void narsil_yield_thread(void) {
|
|
11
|
+
#ifdef _WIN32
|
|
12
|
+
SwitchToThread();
|
|
13
|
+
#else
|
|
14
|
+
sched_yield();
|
|
15
|
+
#endif
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
#endif
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
#include "../analysis/unicode.h"
|
|
2
|
+
|
|
3
|
+
#include <stdint.h>
|
|
4
|
+
|
|
5
|
+
const uint32_t narsil_unicode_decompositions[6243] = {
|
|
6
|
+
192, 65, 768, 193, 65, 769, 194, 65, 770, 195, 65, 771, 196, 65, 776, 197, 65, 778, 199, 67, 807, 200, 69, 768, 201,
|
|
7
|
+
69, 769, 202, 69, 770, 203, 69, 776, 204, 73, 768, 205, 73, 769, 206, 73, 770, 207, 73, 776, 209, 78, 771, 210, 79,
|
|
8
|
+
768, 211, 79, 769, 212, 79, 770, 213, 79, 771, 214, 79, 776, 217, 85, 768, 218, 85, 769, 219, 85, 770, 220, 85, 776,
|
|
9
|
+
221, 89, 769, 224, 97, 768, 225, 97, 769, 226, 97, 770, 227, 97, 771, 228, 97, 776, 229, 97, 778, 231, 99, 807, 232,
|
|
10
|
+
101, 768, 233, 101, 769, 234, 101, 770, 235, 101, 776, 236, 105, 768, 237, 105, 769, 238, 105, 770, 239, 105, 776,
|
|
11
|
+
241, 110, 771, 242, 111, 768, 243, 111, 769, 244, 111, 770, 245, 111, 771, 246, 111, 776, 249, 117, 768, 250, 117,
|
|
12
|
+
769, 251, 117, 770, 252, 117, 776, 253, 121, 769, 255, 121, 776, 256, 65, 772, 257, 97, 772, 258, 65, 774, 259, 97,
|
|
13
|
+
774, 260, 65, 808, 261, 97, 808, 262, 67, 769, 263, 99, 769, 264, 67, 770, 265, 99, 770, 266, 67, 775, 267, 99, 775,
|
|
14
|
+
268, 67, 780, 269, 99, 780, 270, 68, 780, 271, 100, 780, 274, 69, 772, 275, 101, 772, 276, 69, 774, 277, 101, 774,
|
|
15
|
+
278, 69, 775, 279, 101, 775, 280, 69, 808, 281, 101, 808, 282, 69, 780, 283, 101, 780, 284, 71, 770, 285, 103, 770,
|
|
16
|
+
286, 71, 774, 287, 103, 774, 288, 71, 775, 289, 103, 775, 290, 71, 807, 291, 103, 807, 292, 72, 770, 293, 104, 770,
|
|
17
|
+
296, 73, 771, 297, 105, 771, 298, 73, 772, 299, 105, 772, 300, 73, 774, 301, 105, 774, 302, 73, 808, 303, 105, 808,
|
|
18
|
+
304, 73, 775, 308, 74, 770, 309, 106, 770, 310, 75, 807, 311, 107, 807, 313, 76, 769, 314, 108, 769, 315, 76, 807,
|
|
19
|
+
316, 108, 807, 317, 76, 780, 318, 108, 780, 323, 78, 769, 324, 110, 769, 325, 78, 807, 326, 110, 807, 327, 78, 780,
|
|
20
|
+
328, 110, 780, 332, 79, 772, 333, 111, 772, 334, 79, 774, 335, 111, 774, 336, 79, 779, 337, 111, 779, 340, 82, 769,
|
|
21
|
+
341, 114, 769, 342, 82, 807, 343, 114, 807, 344, 82, 780, 345, 114, 780, 346, 83, 769, 347, 115, 769, 348, 83, 770,
|
|
22
|
+
349, 115, 770, 350, 83, 807, 351, 115, 807, 352, 83, 780, 353, 115, 780, 354, 84, 807, 355, 116, 807, 356, 84, 780,
|
|
23
|
+
357, 116, 780, 360, 85, 771, 361, 117, 771, 362, 85, 772, 363, 117, 772, 364, 85, 774, 365, 117, 774, 366, 85, 778,
|
|
24
|
+
367, 117, 778, 368, 85, 779, 369, 117, 779, 370, 85, 808, 371, 117, 808, 372, 87, 770, 373, 119, 770, 374, 89, 770,
|
|
25
|
+
375, 121, 770, 376, 89, 776, 377, 90, 769, 378, 122, 769, 379, 90, 775, 380, 122, 775, 381, 90, 780, 382, 122, 780,
|
|
26
|
+
416, 79, 795, 417, 111, 795, 431, 85, 795, 432, 117, 795, 461, 65, 780, 462, 97, 780, 463, 73, 780, 464, 105, 780,
|
|
27
|
+
465, 79, 780, 466, 111, 780, 467, 85, 780, 468, 117, 780, 469, 220, 772, 470, 252, 772, 471, 220, 769, 472, 252, 769,
|
|
28
|
+
473, 220, 780, 474, 252, 780, 475, 220, 768, 476, 252, 768, 478, 196, 772, 479, 228, 772, 480, 550, 772, 481, 551,
|
|
29
|
+
772, 482, 198, 772, 483, 230, 772, 486, 71, 780, 487, 103, 780, 488, 75, 780, 489, 107, 780, 490, 79, 808, 491, 111,
|
|
30
|
+
808, 492, 490, 772, 493, 491, 772, 494, 439, 780, 495, 658, 780, 496, 106, 780, 500, 71, 769, 501, 103, 769, 504, 78,
|
|
31
|
+
768, 505, 110, 768, 506, 197, 769, 507, 229, 769, 508, 198, 769, 509, 230, 769, 510, 216, 769, 511, 248, 769, 512, 65,
|
|
32
|
+
783, 513, 97, 783, 514, 65, 785, 515, 97, 785, 516, 69, 783, 517, 101, 783, 518, 69, 785, 519, 101, 785, 520, 73, 783,
|
|
33
|
+
521, 105, 783, 522, 73, 785, 523, 105, 785, 524, 79, 783, 525, 111, 783, 526, 79, 785, 527, 111, 785, 528, 82, 783,
|
|
34
|
+
529, 114, 783, 530, 82, 785, 531, 114, 785, 532, 85, 783, 533, 117, 783, 534, 85, 785, 535, 117, 785, 536, 83, 806,
|
|
35
|
+
537, 115, 806, 538, 84, 806, 539, 116, 806, 542, 72, 780, 543, 104, 780, 550, 65, 775, 551, 97, 775, 552, 69, 807,
|
|
36
|
+
553, 101, 807, 554, 214, 772, 555, 246, 772, 556, 213, 772, 557, 245, 772, 558, 79, 775, 559, 111, 775, 560, 558, 772,
|
|
37
|
+
561, 559, 772, 562, 89, 772, 563, 121, 772, 832, 768, 0, 833, 769, 0, 835, 787, 0, 836, 776, 769, 884, 697, 0, 894,
|
|
38
|
+
59, 0, 901, 168, 769, 902, 913, 769, 903, 183, 0, 904, 917, 769, 905, 919, 769, 906, 921, 769, 908, 927, 769, 910,
|
|
39
|
+
933, 769, 911, 937, 769, 912, 970, 769, 938, 921, 776, 939, 933, 776, 940, 945, 769, 941, 949, 769, 942, 951, 769,
|
|
40
|
+
943, 953, 769, 944, 971, 769, 970, 953, 776, 971, 965, 776, 972, 959, 769, 973, 965, 769, 974, 969, 769, 979, 978,
|
|
41
|
+
769, 980, 978, 776, 1024, 1045, 768, 1025, 1045, 776, 1027, 1043, 769, 1031, 1030, 776, 1036, 1050, 769, 1037, 1048,
|
|
42
|
+
768, 1038, 1059, 774, 1049, 1048, 774, 1081, 1080, 774, 1104, 1077, 768, 1105, 1077, 776, 1107, 1075, 769, 1111, 1110,
|
|
43
|
+
776, 1116, 1082, 769, 1117, 1080, 768, 1118, 1091, 774, 1142, 1140, 783, 1143, 1141, 783, 1217, 1046, 774, 1218, 1078,
|
|
44
|
+
774, 1232, 1040, 774, 1233, 1072, 774, 1234, 1040, 776, 1235, 1072, 776, 1238, 1045, 774, 1239, 1077, 774, 1242, 1240,
|
|
45
|
+
776, 1243, 1241, 776, 1244, 1046, 776, 1245, 1078, 776, 1246, 1047, 776, 1247, 1079, 776, 1250, 1048, 772, 1251, 1080,
|
|
46
|
+
772, 1252, 1048, 776, 1253, 1080, 776, 1254, 1054, 776, 1255, 1086, 776, 1258, 1256, 776, 1259, 1257, 776, 1260, 1069,
|
|
47
|
+
776, 1261, 1101, 776, 1262, 1059, 772, 1263, 1091, 772, 1264, 1059, 776, 1265, 1091, 776, 1266, 1059, 779, 1267, 1091,
|
|
48
|
+
779, 1268, 1063, 776, 1269, 1095, 776, 1272, 1067, 776, 1273, 1099, 776, 1570, 1575, 1619, 1571, 1575, 1620, 1572,
|
|
49
|
+
1608, 1620, 1573, 1575, 1621, 1574, 1610, 1620, 1728, 1749, 1620, 1730, 1729, 1620, 1747, 1746, 1620, 2345, 2344,
|
|
50
|
+
2364, 2353, 2352, 2364, 2356, 2355, 2364, 2392, 2325, 2364, 2393, 2326, 2364, 2394, 2327, 2364, 2395, 2332, 2364,
|
|
51
|
+
2396, 2337, 2364, 2397, 2338, 2364, 2398, 2347, 2364, 2399, 2351, 2364, 2507, 2503, 2494, 2508, 2503, 2519, 2524,
|
|
52
|
+
2465, 2492, 2525, 2466, 2492, 2527, 2479, 2492, 2611, 2610, 2620, 2614, 2616, 2620, 2649, 2582, 2620, 2650, 2583,
|
|
53
|
+
2620, 2651, 2588, 2620, 2654, 2603, 2620, 2888, 2887, 2902, 2891, 2887, 2878, 2892, 2887, 2903, 2908, 2849, 2876,
|
|
54
|
+
2909, 2850, 2876, 2964, 2962, 3031, 3018, 3014, 3006, 3019, 3015, 3006, 3020, 3014, 3031, 3144, 3142, 3158, 3264,
|
|
55
|
+
3263, 3285, 3271, 3270, 3285, 3272, 3270, 3286, 3274, 3270, 3266, 3275, 3274, 3285, 3402, 3398, 3390, 3403, 3399,
|
|
56
|
+
3390, 3404, 3398, 3415, 3546, 3545, 3530, 3548, 3545, 3535, 3549, 3548, 3530, 3550, 3545, 3551, 3907, 3906, 4023,
|
|
57
|
+
3917, 3916, 4023, 3922, 3921, 4023, 3927, 3926, 4023, 3932, 3931, 4023, 3945, 3904, 4021, 3955, 3953, 3954, 3957,
|
|
58
|
+
3953, 3956, 3958, 4018, 3968, 3960, 4019, 3968, 3969, 3953, 3968, 3987, 3986, 4023, 3997, 3996, 4023, 4002, 4001,
|
|
59
|
+
4023, 4007, 4006, 4023, 4012, 4011, 4023, 4025, 3984, 4021, 4134, 4133, 4142, 6918, 6917, 6965, 6920, 6919, 6965,
|
|
60
|
+
6922, 6921, 6965, 6924, 6923, 6965, 6926, 6925, 6965, 6930, 6929, 6965, 6971, 6970, 6965, 6973, 6972, 6965, 6976,
|
|
61
|
+
6974, 6965, 6977, 6975, 6965, 6979, 6978, 6965, 7680, 65, 805, 7681, 97, 805, 7682, 66, 775, 7683, 98, 775, 7684, 66,
|
|
62
|
+
803, 7685, 98, 803, 7686, 66, 817, 7687, 98, 817, 7688, 199, 769, 7689, 231, 769, 7690, 68, 775, 7691, 100, 775, 7692,
|
|
63
|
+
68, 803, 7693, 100, 803, 7694, 68, 817, 7695, 100, 817, 7696, 68, 807, 7697, 100, 807, 7698, 68, 813, 7699, 100, 813,
|
|
64
|
+
7700, 274, 768, 7701, 275, 768, 7702, 274, 769, 7703, 275, 769, 7704, 69, 813, 7705, 101, 813, 7706, 69, 816, 7707,
|
|
65
|
+
101, 816, 7708, 552, 774, 7709, 553, 774, 7710, 70, 775, 7711, 102, 775, 7712, 71, 772, 7713, 103, 772, 7714, 72, 775,
|
|
66
|
+
7715, 104, 775, 7716, 72, 803, 7717, 104, 803, 7718, 72, 776, 7719, 104, 776, 7720, 72, 807, 7721, 104, 807, 7722, 72,
|
|
67
|
+
814, 7723, 104, 814, 7724, 73, 816, 7725, 105, 816, 7726, 207, 769, 7727, 239, 769, 7728, 75, 769, 7729, 107, 769,
|
|
68
|
+
7730, 75, 803, 7731, 107, 803, 7732, 75, 817, 7733, 107, 817, 7734, 76, 803, 7735, 108, 803, 7736, 7734, 772, 7737,
|
|
69
|
+
7735, 772, 7738, 76, 817, 7739, 108, 817, 7740, 76, 813, 7741, 108, 813, 7742, 77, 769, 7743, 109, 769, 7744, 77, 775,
|
|
70
|
+
7745, 109, 775, 7746, 77, 803, 7747, 109, 803, 7748, 78, 775, 7749, 110, 775, 7750, 78, 803, 7751, 110, 803, 7752, 78,
|
|
71
|
+
817, 7753, 110, 817, 7754, 78, 813, 7755, 110, 813, 7756, 213, 769, 7757, 245, 769, 7758, 213, 776, 7759, 245, 776,
|
|
72
|
+
7760, 332, 768, 7761, 333, 768, 7762, 332, 769, 7763, 333, 769, 7764, 80, 769, 7765, 112, 769, 7766, 80, 775, 7767,
|
|
73
|
+
112, 775, 7768, 82, 775, 7769, 114, 775, 7770, 82, 803, 7771, 114, 803, 7772, 7770, 772, 7773, 7771, 772, 7774, 82,
|
|
74
|
+
817, 7775, 114, 817, 7776, 83, 775, 7777, 115, 775, 7778, 83, 803, 7779, 115, 803, 7780, 346, 775, 7781, 347, 775,
|
|
75
|
+
7782, 352, 775, 7783, 353, 775, 7784, 7778, 775, 7785, 7779, 775, 7786, 84, 775, 7787, 116, 775, 7788, 84, 803, 7789,
|
|
76
|
+
116, 803, 7790, 84, 817, 7791, 116, 817, 7792, 84, 813, 7793, 116, 813, 7794, 85, 804, 7795, 117, 804, 7796, 85, 816,
|
|
77
|
+
7797, 117, 816, 7798, 85, 813, 7799, 117, 813, 7800, 360, 769, 7801, 361, 769, 7802, 362, 776, 7803, 363, 776, 7804,
|
|
78
|
+
86, 771, 7805, 118, 771, 7806, 86, 803, 7807, 118, 803, 7808, 87, 768, 7809, 119, 768, 7810, 87, 769, 7811, 119, 769,
|
|
79
|
+
7812, 87, 776, 7813, 119, 776, 7814, 87, 775, 7815, 119, 775, 7816, 87, 803, 7817, 119, 803, 7818, 88, 775, 7819, 120,
|
|
80
|
+
775, 7820, 88, 776, 7821, 120, 776, 7822, 89, 775, 7823, 121, 775, 7824, 90, 770, 7825, 122, 770, 7826, 90, 803, 7827,
|
|
81
|
+
122, 803, 7828, 90, 817, 7829, 122, 817, 7830, 104, 817, 7831, 116, 776, 7832, 119, 778, 7833, 121, 778, 7835, 383,
|
|
82
|
+
775, 7840, 65, 803, 7841, 97, 803, 7842, 65, 777, 7843, 97, 777, 7844, 194, 769, 7845, 226, 769, 7846, 194, 768, 7847,
|
|
83
|
+
226, 768, 7848, 194, 777, 7849, 226, 777, 7850, 194, 771, 7851, 226, 771, 7852, 7840, 770, 7853, 7841, 770, 7854, 258,
|
|
84
|
+
769, 7855, 259, 769, 7856, 258, 768, 7857, 259, 768, 7858, 258, 777, 7859, 259, 777, 7860, 258, 771, 7861, 259, 771,
|
|
85
|
+
7862, 7840, 774, 7863, 7841, 774, 7864, 69, 803, 7865, 101, 803, 7866, 69, 777, 7867, 101, 777, 7868, 69, 771, 7869,
|
|
86
|
+
101, 771, 7870, 202, 769, 7871, 234, 769, 7872, 202, 768, 7873, 234, 768, 7874, 202, 777, 7875, 234, 777, 7876, 202,
|
|
87
|
+
771, 7877, 234, 771, 7878, 7864, 770, 7879, 7865, 770, 7880, 73, 777, 7881, 105, 777, 7882, 73, 803, 7883, 105, 803,
|
|
88
|
+
7884, 79, 803, 7885, 111, 803, 7886, 79, 777, 7887, 111, 777, 7888, 212, 769, 7889, 244, 769, 7890, 212, 768, 7891,
|
|
89
|
+
244, 768, 7892, 212, 777, 7893, 244, 777, 7894, 212, 771, 7895, 244, 771, 7896, 7884, 770, 7897, 7885, 770, 7898, 416,
|
|
90
|
+
769, 7899, 417, 769, 7900, 416, 768, 7901, 417, 768, 7902, 416, 777, 7903, 417, 777, 7904, 416, 771, 7905, 417, 771,
|
|
91
|
+
7906, 416, 803, 7907, 417, 803, 7908, 85, 803, 7909, 117, 803, 7910, 85, 777, 7911, 117, 777, 7912, 431, 769, 7913,
|
|
92
|
+
432, 769, 7914, 431, 768, 7915, 432, 768, 7916, 431, 777, 7917, 432, 777, 7918, 431, 771, 7919, 432, 771, 7920, 431,
|
|
93
|
+
803, 7921, 432, 803, 7922, 89, 768, 7923, 121, 768, 7924, 89, 803, 7925, 121, 803, 7926, 89, 777, 7927, 121, 777,
|
|
94
|
+
7928, 89, 771, 7929, 121, 771, 7936, 945, 787, 7937, 945, 788, 7938, 7936, 768, 7939, 7937, 768, 7940, 7936, 769,
|
|
95
|
+
7941, 7937, 769, 7942, 7936, 834, 7943, 7937, 834, 7944, 913, 787, 7945, 913, 788, 7946, 7944, 768, 7947, 7945, 768,
|
|
96
|
+
7948, 7944, 769, 7949, 7945, 769, 7950, 7944, 834, 7951, 7945, 834, 7952, 949, 787, 7953, 949, 788, 7954, 7952, 768,
|
|
97
|
+
7955, 7953, 768, 7956, 7952, 769, 7957, 7953, 769, 7960, 917, 787, 7961, 917, 788, 7962, 7960, 768, 7963, 7961, 768,
|
|
98
|
+
7964, 7960, 769, 7965, 7961, 769, 7968, 951, 787, 7969, 951, 788, 7970, 7968, 768, 7971, 7969, 768, 7972, 7968, 769,
|
|
99
|
+
7973, 7969, 769, 7974, 7968, 834, 7975, 7969, 834, 7976, 919, 787, 7977, 919, 788, 7978, 7976, 768, 7979, 7977, 768,
|
|
100
|
+
7980, 7976, 769, 7981, 7977, 769, 7982, 7976, 834, 7983, 7977, 834, 7984, 953, 787, 7985, 953, 788, 7986, 7984, 768,
|
|
101
|
+
7987, 7985, 768, 7988, 7984, 769, 7989, 7985, 769, 7990, 7984, 834, 7991, 7985, 834, 7992, 921, 787, 7993, 921, 788,
|
|
102
|
+
7994, 7992, 768, 7995, 7993, 768, 7996, 7992, 769, 7997, 7993, 769, 7998, 7992, 834, 7999, 7993, 834, 8000, 959, 787,
|
|
103
|
+
8001, 959, 788, 8002, 8000, 768, 8003, 8001, 768, 8004, 8000, 769, 8005, 8001, 769, 8008, 927, 787, 8009, 927, 788,
|
|
104
|
+
8010, 8008, 768, 8011, 8009, 768, 8012, 8008, 769, 8013, 8009, 769, 8016, 965, 787, 8017, 965, 788, 8018, 8016, 768,
|
|
105
|
+
8019, 8017, 768, 8020, 8016, 769, 8021, 8017, 769, 8022, 8016, 834, 8023, 8017, 834, 8025, 933, 788, 8027, 8025, 768,
|
|
106
|
+
8029, 8025, 769, 8031, 8025, 834, 8032, 969, 787, 8033, 969, 788, 8034, 8032, 768, 8035, 8033, 768, 8036, 8032, 769,
|
|
107
|
+
8037, 8033, 769, 8038, 8032, 834, 8039, 8033, 834, 8040, 937, 787, 8041, 937, 788, 8042, 8040, 768, 8043, 8041, 768,
|
|
108
|
+
8044, 8040, 769, 8045, 8041, 769, 8046, 8040, 834, 8047, 8041, 834, 8048, 945, 768, 8049, 940, 0, 8050, 949, 768,
|
|
109
|
+
8051, 941, 0, 8052, 951, 768, 8053, 942, 0, 8054, 953, 768, 8055, 943, 0, 8056, 959, 768, 8057, 972, 0, 8058, 965,
|
|
110
|
+
768, 8059, 973, 0, 8060, 969, 768, 8061, 974, 0, 8064, 7936, 837, 8065, 7937, 837, 8066, 7938, 837, 8067, 7939, 837,
|
|
111
|
+
8068, 7940, 837, 8069, 7941, 837, 8070, 7942, 837, 8071, 7943, 837, 8072, 7944, 837, 8073, 7945, 837, 8074, 7946, 837,
|
|
112
|
+
8075, 7947, 837, 8076, 7948, 837, 8077, 7949, 837, 8078, 7950, 837, 8079, 7951, 837, 8080, 7968, 837, 8081, 7969, 837,
|
|
113
|
+
8082, 7970, 837, 8083, 7971, 837, 8084, 7972, 837, 8085, 7973, 837, 8086, 7974, 837, 8087, 7975, 837, 8088, 7976, 837,
|
|
114
|
+
8089, 7977, 837, 8090, 7978, 837, 8091, 7979, 837, 8092, 7980, 837, 8093, 7981, 837, 8094, 7982, 837, 8095, 7983, 837,
|
|
115
|
+
8096, 8032, 837, 8097, 8033, 837, 8098, 8034, 837, 8099, 8035, 837, 8100, 8036, 837, 8101, 8037, 837, 8102, 8038, 837,
|
|
116
|
+
8103, 8039, 837, 8104, 8040, 837, 8105, 8041, 837, 8106, 8042, 837, 8107, 8043, 837, 8108, 8044, 837, 8109, 8045, 837,
|
|
117
|
+
8110, 8046, 837, 8111, 8047, 837, 8112, 945, 774, 8113, 945, 772, 8114, 8048, 837, 8115, 945, 837, 8116, 940, 837,
|
|
118
|
+
8118, 945, 834, 8119, 8118, 837, 8120, 913, 774, 8121, 913, 772, 8122, 913, 768, 8123, 902, 0, 8124, 913, 837, 8126,
|
|
119
|
+
953, 0, 8129, 168, 834, 8130, 8052, 837, 8131, 951, 837, 8132, 942, 837, 8134, 951, 834, 8135, 8134, 837, 8136, 917,
|
|
120
|
+
768, 8137, 904, 0, 8138, 919, 768, 8139, 905, 0, 8140, 919, 837, 8141, 8127, 768, 8142, 8127, 769, 8143, 8127, 834,
|
|
121
|
+
8144, 953, 774, 8145, 953, 772, 8146, 970, 768, 8147, 912, 0, 8150, 953, 834, 8151, 970, 834, 8152, 921, 774, 8153,
|
|
122
|
+
921, 772, 8154, 921, 768, 8155, 906, 0, 8157, 8190, 768, 8158, 8190, 769, 8159, 8190, 834, 8160, 965, 774, 8161, 965,
|
|
123
|
+
772, 8162, 971, 768, 8163, 944, 0, 8164, 961, 787, 8165, 961, 788, 8166, 965, 834, 8167, 971, 834, 8168, 933, 774,
|
|
124
|
+
8169, 933, 772, 8170, 933, 768, 8171, 910, 0, 8172, 929, 788, 8173, 168, 768, 8174, 901, 0, 8175, 96, 0, 8178, 8060,
|
|
125
|
+
837, 8179, 969, 837, 8180, 974, 837, 8182, 969, 834, 8183, 8182, 837, 8184, 927, 768, 8185, 908, 0, 8186, 937, 768,
|
|
126
|
+
8187, 911, 0, 8188, 937, 837, 8189, 180, 0, 8192, 8194, 0, 8193, 8195, 0, 8486, 937, 0, 8490, 75, 0, 8491, 197, 0,
|
|
127
|
+
8602, 8592, 824, 8603, 8594, 824, 8622, 8596, 824, 8653, 8656, 824, 8654, 8660, 824, 8655, 8658, 824, 8708, 8707, 824,
|
|
128
|
+
8713, 8712, 824, 8716, 8715, 824, 8740, 8739, 824, 8742, 8741, 824, 8769, 8764, 824, 8772, 8771, 824, 8775, 8773, 824,
|
|
129
|
+
8777, 8776, 824, 8800, 61, 824, 8802, 8801, 824, 8813, 8781, 824, 8814, 60, 824, 8815, 62, 824, 8816, 8804, 824, 8817,
|
|
130
|
+
8805, 824, 8820, 8818, 824, 8821, 8819, 824, 8824, 8822, 824, 8825, 8823, 824, 8832, 8826, 824, 8833, 8827, 824, 8836,
|
|
131
|
+
8834, 824, 8837, 8835, 824, 8840, 8838, 824, 8841, 8839, 824, 8876, 8866, 824, 8877, 8872, 824, 8878, 8873, 824, 8879,
|
|
132
|
+
8875, 824, 8928, 8828, 824, 8929, 8829, 824, 8930, 8849, 824, 8931, 8850, 824, 8938, 8882, 824, 8939, 8883, 824, 8940,
|
|
133
|
+
8884, 824, 8941, 8885, 824, 9001, 12296, 0, 9002, 12297, 0, 10972, 10973, 824, 12364, 12363, 12441, 12366, 12365,
|
|
134
|
+
12441, 12368, 12367, 12441, 12370, 12369, 12441, 12372, 12371, 12441, 12374, 12373, 12441, 12376, 12375, 12441, 12378,
|
|
135
|
+
12377, 12441, 12380, 12379, 12441, 12382, 12381, 12441, 12384, 12383, 12441, 12386, 12385, 12441, 12389, 12388, 12441,
|
|
136
|
+
12391, 12390, 12441, 12393, 12392, 12441, 12400, 12399, 12441, 12401, 12399, 12442, 12403, 12402, 12441, 12404, 12402,
|
|
137
|
+
12442, 12406, 12405, 12441, 12407, 12405, 12442, 12409, 12408, 12441, 12410, 12408, 12442, 12412, 12411, 12441, 12413,
|
|
138
|
+
12411, 12442, 12436, 12358, 12441, 12446, 12445, 12441, 12460, 12459, 12441, 12462, 12461, 12441, 12464, 12463, 12441,
|
|
139
|
+
12466, 12465, 12441, 12468, 12467, 12441, 12470, 12469, 12441, 12472, 12471, 12441, 12474, 12473, 12441, 12476, 12475,
|
|
140
|
+
12441, 12478, 12477, 12441, 12480, 12479, 12441, 12482, 12481, 12441, 12485, 12484, 12441, 12487, 12486, 12441, 12489,
|
|
141
|
+
12488, 12441, 12496, 12495, 12441, 12497, 12495, 12442, 12499, 12498, 12441, 12500, 12498, 12442, 12502, 12501, 12441,
|
|
142
|
+
12503, 12501, 12442, 12505, 12504, 12441, 12506, 12504, 12442, 12508, 12507, 12441, 12509, 12507, 12442, 12532, 12454,
|
|
143
|
+
12441, 12535, 12527, 12441, 12536, 12528, 12441, 12537, 12529, 12441, 12538, 12530, 12441, 12542, 12541, 12441, 63744,
|
|
144
|
+
35912, 0, 63745, 26356, 0, 63746, 36554, 0, 63747, 36040, 0, 63748, 28369, 0, 63749, 20018, 0, 63750, 21477, 0, 63751,
|
|
145
|
+
40860, 0, 63752, 40860, 0, 63753, 22865, 0, 63754, 37329, 0, 63755, 21895, 0, 63756, 22856, 0, 63757, 25078, 0, 63758,
|
|
146
|
+
30313, 0, 63759, 32645, 0, 63760, 34367, 0, 63761, 34746, 0, 63762, 35064, 0, 63763, 37007, 0, 63764, 27138, 0, 63765,
|
|
147
|
+
27931, 0, 63766, 28889, 0, 63767, 29662, 0, 63768, 33853, 0, 63769, 37226, 0, 63770, 39409, 0, 63771, 20098, 0, 63772,
|
|
148
|
+
21365, 0, 63773, 27396, 0, 63774, 29211, 0, 63775, 34349, 0, 63776, 40478, 0, 63777, 23888, 0, 63778, 28651, 0, 63779,
|
|
149
|
+
34253, 0, 63780, 35172, 0, 63781, 25289, 0, 63782, 33240, 0, 63783, 34847, 0, 63784, 24266, 0, 63785, 26391, 0, 63786,
|
|
150
|
+
28010, 0, 63787, 29436, 0, 63788, 37070, 0, 63789, 20358, 0, 63790, 20919, 0, 63791, 21214, 0, 63792, 25796, 0, 63793,
|
|
151
|
+
27347, 0, 63794, 29200, 0, 63795, 30439, 0, 63796, 32769, 0, 63797, 34310, 0, 63798, 34396, 0, 63799, 36335, 0, 63800,
|
|
152
|
+
38706, 0, 63801, 39791, 0, 63802, 40442, 0, 63803, 30860, 0, 63804, 31103, 0, 63805, 32160, 0, 63806, 33737, 0, 63807,
|
|
153
|
+
37636, 0, 63808, 40575, 0, 63809, 35542, 0, 63810, 22751, 0, 63811, 24324, 0, 63812, 31840, 0, 63813, 32894, 0, 63814,
|
|
154
|
+
29282, 0, 63815, 30922, 0, 63816, 36034, 0, 63817, 38647, 0, 63818, 22744, 0, 63819, 23650, 0, 63820, 27155, 0, 63821,
|
|
155
|
+
28122, 0, 63822, 28431, 0, 63823, 32047, 0, 63824, 32311, 0, 63825, 38475, 0, 63826, 21202, 0, 63827, 32907, 0, 63828,
|
|
156
|
+
20956, 0, 63829, 20940, 0, 63830, 31260, 0, 63831, 32190, 0, 63832, 33777, 0, 63833, 38517, 0, 63834, 35712, 0, 63835,
|
|
157
|
+
25295, 0, 63836, 27138, 0, 63837, 35582, 0, 63838, 20025, 0, 63839, 23527, 0, 63840, 24594, 0, 63841, 29575, 0, 63842,
|
|
158
|
+
30064, 0, 63843, 21271, 0, 63844, 30971, 0, 63845, 20415, 0, 63846, 24489, 0, 63847, 19981, 0, 63848, 27852, 0, 63849,
|
|
159
|
+
25976, 0, 63850, 32034, 0, 63851, 21443, 0, 63852, 22622, 0, 63853, 30465, 0, 63854, 33865, 0, 63855, 35498, 0, 63856,
|
|
160
|
+
27578, 0, 63857, 36784, 0, 63858, 27784, 0, 63859, 25342, 0, 63860, 33509, 0, 63861, 25504, 0, 63862, 30053, 0, 63863,
|
|
161
|
+
20142, 0, 63864, 20841, 0, 63865, 20937, 0, 63866, 26753, 0, 63867, 31975, 0, 63868, 33391, 0, 63869, 35538, 0, 63870,
|
|
162
|
+
37327, 0, 63871, 21237, 0, 63872, 21570, 0, 63873, 22899, 0, 63874, 24300, 0, 63875, 26053, 0, 63876, 28670, 0, 63877,
|
|
163
|
+
31018, 0, 63878, 38317, 0, 63879, 39530, 0, 63880, 40599, 0, 63881, 40654, 0, 63882, 21147, 0, 63883, 26310, 0, 63884,
|
|
164
|
+
27511, 0, 63885, 36706, 0, 63886, 24180, 0, 63887, 24976, 0, 63888, 25088, 0, 63889, 25754, 0, 63890, 28451, 0, 63891,
|
|
165
|
+
29001, 0, 63892, 29833, 0, 63893, 31178, 0, 63894, 32244, 0, 63895, 32879, 0, 63896, 36646, 0, 63897, 34030, 0, 63898,
|
|
166
|
+
36899, 0, 63899, 37706, 0, 63900, 21015, 0, 63901, 21155, 0, 63902, 21693, 0, 63903, 28872, 0, 63904, 35010, 0, 63905,
|
|
167
|
+
35498, 0, 63906, 24265, 0, 63907, 24565, 0, 63908, 25467, 0, 63909, 27566, 0, 63910, 31806, 0, 63911, 29557, 0, 63912,
|
|
168
|
+
20196, 0, 63913, 22265, 0, 63914, 23527, 0, 63915, 23994, 0, 63916, 24604, 0, 63917, 29618, 0, 63918, 29801, 0, 63919,
|
|
169
|
+
32666, 0, 63920, 32838, 0, 63921, 37428, 0, 63922, 38646, 0, 63923, 38728, 0, 63924, 38936, 0, 63925, 20363, 0, 63926,
|
|
170
|
+
31150, 0, 63927, 37300, 0, 63928, 38584, 0, 63929, 24801, 0, 63930, 20102, 0, 63931, 20698, 0, 63932, 23534, 0, 63933,
|
|
171
|
+
23615, 0, 63934, 26009, 0, 63935, 27138, 0, 63936, 29134, 0, 63937, 30274, 0, 63938, 34044, 0, 63939, 36988, 0, 63940,
|
|
172
|
+
40845, 0, 63941, 26248, 0, 63942, 38446, 0, 63943, 21129, 0, 63944, 26491, 0, 63945, 26611, 0, 63946, 27969, 0, 63947,
|
|
173
|
+
28316, 0, 63948, 29705, 0, 63949, 30041, 0, 63950, 30827, 0, 63951, 32016, 0, 63952, 39006, 0, 63953, 20845, 0, 63954,
|
|
174
|
+
25134, 0, 63955, 38520, 0, 63956, 20523, 0, 63957, 23833, 0, 63958, 28138, 0, 63959, 36650, 0, 63960, 24459, 0, 63961,
|
|
175
|
+
24900, 0, 63962, 26647, 0, 63963, 29575, 0, 63964, 38534, 0, 63965, 21033, 0, 63966, 21519, 0, 63967, 23653, 0, 63968,
|
|
176
|
+
26131, 0, 63969, 26446, 0, 63970, 26792, 0, 63971, 27877, 0, 63972, 29702, 0, 63973, 30178, 0, 63974, 32633, 0, 63975,
|
|
177
|
+
35023, 0, 63976, 35041, 0, 63977, 37324, 0, 63978, 38626, 0, 63979, 21311, 0, 63980, 28346, 0, 63981, 21533, 0, 63982,
|
|
178
|
+
29136, 0, 63983, 29848, 0, 63984, 34298, 0, 63985, 38563, 0, 63986, 40023, 0, 63987, 40607, 0, 63988, 26519, 0, 63989,
|
|
179
|
+
28107, 0, 63990, 33256, 0, 63991, 31435, 0, 63992, 31520, 0, 63993, 31890, 0, 63994, 29376, 0, 63995, 28825, 0, 63996,
|
|
180
|
+
35672, 0, 63997, 20160, 0, 63998, 33590, 0, 63999, 21050, 0, 64000, 20999, 0, 64001, 24230, 0, 64002, 25299, 0, 64003,
|
|
181
|
+
31958, 0, 64004, 23429, 0, 64005, 27934, 0, 64006, 26292, 0, 64007, 36667, 0, 64008, 34892, 0, 64009, 38477, 0, 64010,
|
|
182
|
+
35211, 0, 64011, 24275, 0, 64012, 20800, 0, 64013, 21952, 0, 64016, 22618, 0, 64018, 26228, 0, 64021, 20958, 0, 64022,
|
|
183
|
+
29482, 0, 64023, 30410, 0, 64024, 31036, 0, 64025, 31070, 0, 64026, 31077, 0, 64027, 31119, 0, 64028, 38742, 0, 64029,
|
|
184
|
+
31934, 0, 64030, 32701, 0, 64032, 34322, 0, 64034, 35576, 0, 64037, 36920, 0, 64038, 37117, 0, 64042, 39151, 0, 64043,
|
|
185
|
+
39164, 0, 64044, 39208, 0, 64045, 40372, 0, 64046, 37086, 0, 64047, 38583, 0, 64048, 20398, 0, 64049, 20711, 0, 64050,
|
|
186
|
+
20813, 0, 64051, 21193, 0, 64052, 21220, 0, 64053, 21329, 0, 64054, 21917, 0, 64055, 22022, 0, 64056, 22120, 0, 64057,
|
|
187
|
+
22592, 0, 64058, 22696, 0, 64059, 23652, 0, 64060, 23662, 0, 64061, 24724, 0, 64062, 24936, 0, 64063, 24974, 0, 64064,
|
|
188
|
+
25074, 0, 64065, 25935, 0, 64066, 26082, 0, 64067, 26257, 0, 64068, 26757, 0, 64069, 28023, 0, 64070, 28186, 0, 64071,
|
|
189
|
+
28450, 0, 64072, 29038, 0, 64073, 29227, 0, 64074, 29730, 0, 64075, 30865, 0, 64076, 31038, 0, 64077, 31049, 0, 64078,
|
|
190
|
+
31048, 0, 64079, 31056, 0, 64080, 31062, 0, 64081, 31069, 0, 64082, 31117, 0, 64083, 31118, 0, 64084, 31296, 0, 64085,
|
|
191
|
+
31361, 0, 64086, 31680, 0, 64087, 32244, 0, 64088, 32265, 0, 64089, 32321, 0, 64090, 32626, 0, 64091, 32773, 0, 64092,
|
|
192
|
+
33261, 0, 64093, 33401, 0, 64094, 33401, 0, 64095, 33879, 0, 64096, 35088, 0, 64097, 35222, 0, 64098, 35585, 0, 64099,
|
|
193
|
+
35641, 0, 64100, 36051, 0, 64101, 36104, 0, 64102, 36790, 0, 64103, 36920, 0, 64104, 38627, 0, 64105, 38911, 0, 64106,
|
|
194
|
+
38971, 0, 64107, 24693, 0, 64108, 148206, 0, 64109, 33304, 0, 64112, 20006, 0, 64113, 20917, 0, 64114, 20840, 0,
|
|
195
|
+
64115, 20352, 0, 64116, 20805, 0, 64117, 20864, 0, 64118, 21191, 0, 64119, 21242, 0, 64120, 21917, 0, 64121, 21845, 0,
|
|
196
|
+
64122, 21913, 0, 64123, 21986, 0, 64124, 22618, 0, 64125, 22707, 0, 64126, 22852, 0, 64127, 22868, 0, 64128, 23138, 0,
|
|
197
|
+
64129, 23336, 0, 64130, 24274, 0, 64131, 24281, 0, 64132, 24425, 0, 64133, 24493, 0, 64134, 24792, 0, 64135, 24910, 0,
|
|
198
|
+
64136, 24840, 0, 64137, 24974, 0, 64138, 24928, 0, 64139, 25074, 0, 64140, 25140, 0, 64141, 25540, 0, 64142, 25628, 0,
|
|
199
|
+
64143, 25682, 0, 64144, 25942, 0, 64145, 26228, 0, 64146, 26391, 0, 64147, 26395, 0, 64148, 26454, 0, 64149, 27513, 0,
|
|
200
|
+
64150, 27578, 0, 64151, 27969, 0, 64152, 28379, 0, 64153, 28363, 0, 64154, 28450, 0, 64155, 28702, 0, 64156, 29038, 0,
|
|
201
|
+
64157, 30631, 0, 64158, 29237, 0, 64159, 29359, 0, 64160, 29482, 0, 64161, 29809, 0, 64162, 29958, 0, 64163, 30011, 0,
|
|
202
|
+
64164, 30237, 0, 64165, 30239, 0, 64166, 30410, 0, 64167, 30427, 0, 64168, 30452, 0, 64169, 30538, 0, 64170, 30528, 0,
|
|
203
|
+
64171, 30924, 0, 64172, 31409, 0, 64173, 31680, 0, 64174, 31867, 0, 64175, 32091, 0, 64176, 32244, 0, 64177, 32574, 0,
|
|
204
|
+
64178, 32773, 0, 64179, 33618, 0, 64180, 33775, 0, 64181, 34681, 0, 64182, 35137, 0, 64183, 35206, 0, 64184, 35222, 0,
|
|
205
|
+
64185, 35519, 0, 64186, 35576, 0, 64187, 35531, 0, 64188, 35585, 0, 64189, 35582, 0, 64190, 35565, 0, 64191, 35641, 0,
|
|
206
|
+
64192, 35722, 0, 64193, 36104, 0, 64194, 36664, 0, 64195, 36978, 0, 64196, 37273, 0, 64197, 37494, 0, 64198, 38524, 0,
|
|
207
|
+
64199, 38627, 0, 64200, 38742, 0, 64201, 38875, 0, 64202, 38911, 0, 64203, 38923, 0, 64204, 38971, 0, 64205, 39698, 0,
|
|
208
|
+
64206, 40860, 0, 64207, 141386, 0, 64208, 141380, 0, 64209, 144341, 0, 64210, 15261, 0, 64211, 16408, 0, 64212, 16441,
|
|
209
|
+
0, 64213, 152137, 0, 64214, 154832, 0, 64215, 163539, 0, 64216, 40771, 0, 64217, 40846, 0, 64285, 1497, 1460, 64287,
|
|
210
|
+
1522, 1463, 64298, 1513, 1473, 64299, 1513, 1474, 64300, 64329, 1473, 64301, 64329, 1474, 64302, 1488, 1463, 64303,
|
|
211
|
+
1488, 1464, 64304, 1488, 1468, 64305, 1489, 1468, 64306, 1490, 1468, 64307, 1491, 1468, 64308, 1492, 1468, 64309,
|
|
212
|
+
1493, 1468, 64310, 1494, 1468, 64312, 1496, 1468, 64313, 1497, 1468, 64314, 1498, 1468, 64315, 1499, 1468, 64316,
|
|
213
|
+
1500, 1468, 64318, 1502, 1468, 64320, 1504, 1468, 64321, 1505, 1468, 64323, 1507, 1468, 64324, 1508, 1468, 64326,
|
|
214
|
+
1510, 1468, 64327, 1511, 1468, 64328, 1512, 1468, 64329, 1513, 1468, 64330, 1514, 1468, 64331, 1493, 1465, 64332,
|
|
215
|
+
1489, 1471, 64333, 1499, 1471, 64334, 1508, 1471, 67017, 67026, 775, 67044, 67034, 775, 69786, 69785, 69818, 69788,
|
|
216
|
+
69787, 69818, 69803, 69797, 69818, 69934, 69937, 69927, 69935, 69938, 69927, 70475, 70471, 70462, 70476, 70471, 70487,
|
|
217
|
+
70531, 70530, 70601, 70533, 70532, 70587, 70542, 70539, 70594, 70545, 70544, 70601, 70597, 70594, 70594, 70599, 70594,
|
|
218
|
+
70584, 70600, 70594, 70601, 70843, 70841, 70842, 70844, 70841, 70832, 70846, 70841, 70845, 71098, 71096, 71087, 71099,
|
|
219
|
+
71097, 71087, 71992, 71989, 71984, 90401, 90398, 90398, 90402, 90398, 90409, 90403, 90398, 90399, 90404, 90409, 90399,
|
|
220
|
+
90405, 90398, 90400, 90406, 90401, 90399, 90407, 90402, 90399, 90408, 90401, 90400, 93544, 93543, 93543, 93545, 93539,
|
|
221
|
+
93543, 93546, 93545, 93543, 119134, 119127, 119141, 119135, 119128, 119141, 119136, 119135, 119150, 119137, 119135,
|
|
222
|
+
119151, 119138, 119135, 119152, 119139, 119135, 119153, 119140, 119135, 119154, 119227, 119225, 119141, 119228,
|
|
223
|
+
119226, 119141, 119229, 119227, 119150, 119230, 119228, 119150, 119231, 119227, 119151, 119232, 119228, 119151,
|
|
224
|
+
194560, 20029, 0, 194561, 20024, 0, 194562, 20033, 0, 194563, 131362, 0, 194564, 20320, 0, 194565, 20398, 0, 194566,
|
|
225
|
+
20411, 0, 194567, 20482, 0, 194568, 20602, 0, 194569, 20633, 0, 194570, 20711, 0, 194571, 20687, 0, 194572, 13470, 0,
|
|
226
|
+
194573, 132666, 0, 194574, 20813, 0, 194575, 20820, 0, 194576, 20836, 0, 194577, 20855, 0, 194578, 132380, 0, 194579,
|
|
227
|
+
13497, 0, 194580, 20839, 0, 194581, 20877, 0, 194582, 132427, 0, 194583, 20887, 0, 194584, 20900, 0, 194585, 20172, 0,
|
|
228
|
+
194586, 20908, 0, 194587, 20917, 0, 194588, 168415, 0, 194589, 20981, 0, 194590, 20995, 0, 194591, 13535, 0, 194592,
|
|
229
|
+
21051, 0, 194593, 21062, 0, 194594, 21106, 0, 194595, 21111, 0, 194596, 13589, 0, 194597, 21191, 0, 194598, 21193, 0,
|
|
230
|
+
194599, 21220, 0, 194600, 21242, 0, 194601, 21253, 0, 194602, 21254, 0, 194603, 21271, 0, 194604, 21321, 0, 194605,
|
|
231
|
+
21329, 0, 194606, 21338, 0, 194607, 21363, 0, 194608, 21373, 0, 194609, 21375, 0, 194610, 21375, 0, 194611, 21375, 0,
|
|
232
|
+
194612, 133676, 0, 194613, 28784, 0, 194614, 21450, 0, 194615, 21471, 0, 194616, 133987, 0, 194617, 21483, 0, 194618,
|
|
233
|
+
21489, 0, 194619, 21510, 0, 194620, 21662, 0, 194621, 21560, 0, 194622, 21576, 0, 194623, 21608, 0, 194624, 21666, 0,
|
|
234
|
+
194625, 21750, 0, 194626, 21776, 0, 194627, 21843, 0, 194628, 21859, 0, 194629, 21892, 0, 194630, 21892, 0, 194631,
|
|
235
|
+
21913, 0, 194632, 21931, 0, 194633, 21939, 0, 194634, 21954, 0, 194635, 22294, 0, 194636, 22022, 0, 194637, 22295, 0,
|
|
236
|
+
194638, 22097, 0, 194639, 22132, 0, 194640, 20999, 0, 194641, 22766, 0, 194642, 22478, 0, 194643, 22516, 0, 194644,
|
|
237
|
+
22541, 0, 194645, 22411, 0, 194646, 22578, 0, 194647, 22577, 0, 194648, 22700, 0, 194649, 136420, 0, 194650, 22770, 0,
|
|
238
|
+
194651, 22775, 0, 194652, 22790, 0, 194653, 22810, 0, 194654, 22818, 0, 194655, 22882, 0, 194656, 136872, 0, 194657,
|
|
239
|
+
136938, 0, 194658, 23020, 0, 194659, 23067, 0, 194660, 23079, 0, 194661, 23000, 0, 194662, 23142, 0, 194663, 14062, 0,
|
|
240
|
+
194664, 14076, 0, 194665, 23304, 0, 194666, 23358, 0, 194667, 23358, 0, 194668, 137672, 0, 194669, 23491, 0, 194670,
|
|
241
|
+
23512, 0, 194671, 23527, 0, 194672, 23539, 0, 194673, 138008, 0, 194674, 23551, 0, 194675, 23558, 0, 194676, 24403, 0,
|
|
242
|
+
194677, 23586, 0, 194678, 14209, 0, 194679, 23648, 0, 194680, 23662, 0, 194681, 23744, 0, 194682, 23693, 0, 194683,
|
|
243
|
+
138724, 0, 194684, 23875, 0, 194685, 138726, 0, 194686, 23918, 0, 194687, 23915, 0, 194688, 23932, 0, 194689, 24033,
|
|
244
|
+
0, 194690, 24034, 0, 194691, 14383, 0, 194692, 24061, 0, 194693, 24104, 0, 194694, 24125, 0, 194695, 24169, 0, 194696,
|
|
245
|
+
14434, 0, 194697, 139651, 0, 194698, 14460, 0, 194699, 24240, 0, 194700, 24243, 0, 194701, 24246, 0, 194702, 24266, 0,
|
|
246
|
+
194703, 172946, 0, 194704, 24318, 0, 194705, 140081, 0, 194706, 140081, 0, 194707, 33281, 0, 194708, 24354, 0, 194709,
|
|
247
|
+
24354, 0, 194710, 14535, 0, 194711, 144056, 0, 194712, 156122, 0, 194713, 24418, 0, 194714, 24427, 0, 194715, 14563,
|
|
248
|
+
0, 194716, 24474, 0, 194717, 24525, 0, 194718, 24535, 0, 194719, 24569, 0, 194720, 24705, 0, 194721, 14650, 0, 194722,
|
|
249
|
+
14620, 0, 194723, 24724, 0, 194724, 141012, 0, 194725, 24775, 0, 194726, 24904, 0, 194727, 24908, 0, 194728, 24910, 0,
|
|
250
|
+
194729, 24908, 0, 194730, 24954, 0, 194731, 24974, 0, 194732, 25010, 0, 194733, 24996, 0, 194734, 25007, 0, 194735,
|
|
251
|
+
25054, 0, 194736, 25074, 0, 194737, 25078, 0, 194738, 25104, 0, 194739, 25115, 0, 194740, 25181, 0, 194741, 25265, 0,
|
|
252
|
+
194742, 25300, 0, 194743, 25424, 0, 194744, 142092, 0, 194745, 25405, 0, 194746, 25340, 0, 194747, 25448, 0, 194748,
|
|
253
|
+
25475, 0, 194749, 25572, 0, 194750, 142321, 0, 194751, 25634, 0, 194752, 25541, 0, 194753, 25513, 0, 194754, 14894, 0,
|
|
254
|
+
194755, 25705, 0, 194756, 25726, 0, 194757, 25757, 0, 194758, 25719, 0, 194759, 14956, 0, 194760, 25935, 0, 194761,
|
|
255
|
+
25964, 0, 194762, 143370, 0, 194763, 26083, 0, 194764, 26360, 0, 194765, 26185, 0, 194766, 15129, 0, 194767, 26257, 0,
|
|
256
|
+
194768, 15112, 0, 194769, 15076, 0, 194770, 20882, 0, 194771, 20885, 0, 194772, 26368, 0, 194773, 26268, 0, 194774,
|
|
257
|
+
32941, 0, 194775, 17369, 0, 194776, 26391, 0, 194777, 26395, 0, 194778, 26401, 0, 194779, 26462, 0, 194780, 26451, 0,
|
|
258
|
+
194781, 144323, 0, 194782, 15177, 0, 194783, 26618, 0, 194784, 26501, 0, 194785, 26706, 0, 194786, 26757, 0, 194787,
|
|
259
|
+
144493, 0, 194788, 26766, 0, 194789, 26655, 0, 194790, 26900, 0, 194791, 15261, 0, 194792, 26946, 0, 194793, 27043, 0,
|
|
260
|
+
194794, 27114, 0, 194795, 27304, 0, 194796, 145059, 0, 194797, 27355, 0, 194798, 15384, 0, 194799, 27425, 0, 194800,
|
|
261
|
+
145575, 0, 194801, 27476, 0, 194802, 15438, 0, 194803, 27506, 0, 194804, 27551, 0, 194805, 27578, 0, 194806, 27579, 0,
|
|
262
|
+
194807, 146061, 0, 194808, 138507, 0, 194809, 146170, 0, 194810, 27726, 0, 194811, 146620, 0, 194812, 27839, 0,
|
|
263
|
+
194813, 27853, 0, 194814, 27751, 0, 194815, 27926, 0, 194816, 27966, 0, 194817, 28023, 0, 194818, 27969, 0, 194819,
|
|
264
|
+
28009, 0, 194820, 28024, 0, 194821, 28037, 0, 194822, 146718, 0, 194823, 27956, 0, 194824, 28207, 0, 194825, 28270, 0,
|
|
265
|
+
194826, 15667, 0, 194827, 28363, 0, 194828, 28359, 0, 194829, 147153, 0, 194830, 28153, 0, 194831, 28526, 0, 194832,
|
|
266
|
+
147294, 0, 194833, 147342, 0, 194834, 28614, 0, 194835, 28729, 0, 194836, 28702, 0, 194837, 28699, 0, 194838, 15766,
|
|
267
|
+
0, 194839, 28746, 0, 194840, 28797, 0, 194841, 28791, 0, 194842, 28845, 0, 194843, 132389, 0, 194844, 28997, 0,
|
|
268
|
+
194845, 148067, 0, 194846, 29084, 0, 194847, 148395, 0, 194848, 29224, 0, 194849, 29237, 0, 194850, 29264, 0, 194851,
|
|
269
|
+
149000, 0, 194852, 29312, 0, 194853, 29333, 0, 194854, 149301, 0, 194855, 149524, 0, 194856, 29562, 0, 194857, 29579,
|
|
270
|
+
0, 194858, 16044, 0, 194859, 29605, 0, 194860, 16056, 0, 194861, 16056, 0, 194862, 29767, 0, 194863, 29788, 0, 194864,
|
|
271
|
+
29809, 0, 194865, 29829, 0, 194866, 29898, 0, 194867, 16155, 0, 194868, 29988, 0, 194869, 150582, 0, 194870, 30014, 0,
|
|
272
|
+
194871, 150674, 0, 194872, 30064, 0, 194873, 139679, 0, 194874, 30224, 0, 194875, 151457, 0, 194876, 151480, 0,
|
|
273
|
+
194877, 151620, 0, 194878, 16380, 0, 194879, 16392, 0, 194880, 30452, 0, 194881, 151795, 0, 194882, 151794, 0, 194883,
|
|
274
|
+
151833, 0, 194884, 151859, 0, 194885, 30494, 0, 194886, 30495, 0, 194887, 30495, 0, 194888, 30538, 0, 194889, 16441,
|
|
275
|
+
0, 194890, 30603, 0, 194891, 16454, 0, 194892, 16534, 0, 194893, 152605, 0, 194894, 30798, 0, 194895, 30860, 0,
|
|
276
|
+
194896, 30924, 0, 194897, 16611, 0, 194898, 153126, 0, 194899, 31062, 0, 194900, 153242, 0, 194901, 153285, 0, 194902,
|
|
277
|
+
31119, 0, 194903, 31211, 0, 194904, 16687, 0, 194905, 31296, 0, 194906, 31306, 0, 194907, 31311, 0, 194908, 153980, 0,
|
|
278
|
+
194909, 154279, 0, 194910, 154279, 0, 194911, 31470, 0, 194912, 16898, 0, 194913, 154539, 0, 194914, 31686, 0, 194915,
|
|
279
|
+
31689, 0, 194916, 16935, 0, 194917, 154752, 0, 194918, 31954, 0, 194919, 17056, 0, 194920, 31976, 0, 194921, 31971, 0,
|
|
280
|
+
194922, 32000, 0, 194923, 155526, 0, 194924, 32099, 0, 194925, 17153, 0, 194926, 32199, 0, 194927, 32258, 0, 194928,
|
|
281
|
+
32325, 0, 194929, 17204, 0, 194930, 156200, 0, 194931, 156231, 0, 194932, 17241, 0, 194933, 156377, 0, 194934, 32634,
|
|
282
|
+
0, 194935, 156478, 0, 194936, 32661, 0, 194937, 32762, 0, 194938, 32773, 0, 194939, 156890, 0, 194940, 156963, 0,
|
|
283
|
+
194941, 32864, 0, 194942, 157096, 0, 194943, 32880, 0, 194944, 144223, 0, 194945, 17365, 0, 194946, 32946, 0, 194947,
|
|
284
|
+
33027, 0, 194948, 17419, 0, 194949, 33086, 0, 194950, 23221, 0, 194951, 157607, 0, 194952, 157621, 0, 194953, 144275,
|
|
285
|
+
0, 194954, 144284, 0, 194955, 33281, 0, 194956, 33284, 0, 194957, 36766, 0, 194958, 17515, 0, 194959, 33425, 0,
|
|
286
|
+
194960, 33419, 0, 194961, 33437, 0, 194962, 21171, 0, 194963, 33457, 0, 194964, 33459, 0, 194965, 33469, 0, 194966,
|
|
287
|
+
33510, 0, 194967, 158524, 0, 194968, 33509, 0, 194969, 33565, 0, 194970, 33635, 0, 194971, 33709, 0, 194972, 33571, 0,
|
|
288
|
+
194973, 33725, 0, 194974, 33767, 0, 194975, 33879, 0, 194976, 33619, 0, 194977, 33738, 0, 194978, 33740, 0, 194979,
|
|
289
|
+
33756, 0, 194980, 158774, 0, 194981, 159083, 0, 194982, 158933, 0, 194983, 17707, 0, 194984, 34033, 0, 194985, 34035,
|
|
290
|
+
0, 194986, 34070, 0, 194987, 160714, 0, 194988, 34148, 0, 194989, 159532, 0, 194990, 17757, 0, 194991, 17761, 0,
|
|
291
|
+
194992, 159665, 0, 194993, 159954, 0, 194994, 17771, 0, 194995, 34384, 0, 194996, 34396, 0, 194997, 34407, 0, 194998,
|
|
292
|
+
34409, 0, 194999, 34473, 0, 195000, 34440, 0, 195001, 34574, 0, 195002, 34530, 0, 195003, 34681, 0, 195004, 34600, 0,
|
|
293
|
+
195005, 34667, 0, 195006, 34694, 0, 195007, 17879, 0, 195008, 34785, 0, 195009, 34817, 0, 195010, 17913, 0, 195011,
|
|
294
|
+
34912, 0, 195012, 34915, 0, 195013, 161383, 0, 195014, 35031, 0, 195015, 35038, 0, 195016, 17973, 0, 195017, 35066, 0,
|
|
295
|
+
195018, 13499, 0, 195019, 161966, 0, 195020, 162150, 0, 195021, 18110, 0, 195022, 18119, 0, 195023, 35488, 0, 195024,
|
|
296
|
+
35565, 0, 195025, 35722, 0, 195026, 35925, 0, 195027, 162984, 0, 195028, 36011, 0, 195029, 36033, 0, 195030, 36123, 0,
|
|
297
|
+
195031, 36215, 0, 195032, 163631, 0, 195033, 133124, 0, 195034, 36299, 0, 195035, 36284, 0, 195036, 36336, 0, 195037,
|
|
298
|
+
133342, 0, 195038, 36564, 0, 195039, 36664, 0, 195040, 165330, 0, 195041, 165357, 0, 195042, 37012, 0, 195043, 37105,
|
|
299
|
+
0, 195044, 37137, 0, 195045, 165678, 0, 195046, 37147, 0, 195047, 37432, 0, 195048, 37591, 0, 195049, 37592, 0,
|
|
300
|
+
195050, 37500, 0, 195051, 37881, 0, 195052, 37909, 0, 195053, 166906, 0, 195054, 38283, 0, 195055, 18837, 0, 195056,
|
|
301
|
+
38327, 0, 195057, 167287, 0, 195058, 18918, 0, 195059, 38595, 0, 195060, 23986, 0, 195061, 38691, 0, 195062, 168261,
|
|
302
|
+
0, 195063, 168474, 0, 195064, 19054, 0, 195065, 19062, 0, 195066, 38880, 0, 195067, 168970, 0, 195068, 19122, 0,
|
|
303
|
+
195069, 169110, 0, 195070, 38923, 0, 195071, 38923, 0, 195072, 38953, 0, 195073, 169398, 0, 195074, 39138, 0, 195075,
|
|
304
|
+
19251, 0, 195076, 39209, 0, 195077, 39335, 0, 195078, 39362, 0, 195079, 39422, 0, 195080, 19406, 0, 195081, 170800, 0,
|
|
305
|
+
195082, 39698, 0, 195083, 40000, 0, 195084, 40189, 0, 195085, 19662, 0, 195086, 19693, 0, 195087, 40295, 0, 195088,
|
|
306
|
+
172238, 0, 195089, 19704, 0, 195090, 172293, 0, 195091, 172558, 0, 195092, 172689, 0, 195093, 40635, 0, 195094, 19798,
|
|
307
|
+
0, 195095, 40697, 0, 195096, 40702, 0, 195097, 40709, 0, 195098, 40719, 0, 195099, 40726, 0, 195100, 40763, 0, 195101,
|
|
308
|
+
173568, 0,
|
|
309
|
+
};
|
|
310
|
+
const uint32_t narsil_unicode_decompositions_length = 6243;
|