HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
ucd_lexical_classes.hpp
1// This file was generated by generate_unicode_data.py
2
3#pragma once
4
5#include "../utility/utility.hpp"
6#include <cstdint>
7#include <optional>
8#include <bit>
9#include <string_view>
10#include <string>
11
12hi_export_module(hikogui.unicode.ucd_lexical_classes);
13
14hi_export namespace hi {
15inline namespace v1 {
16namespace detail {
17
18constexpr auto ucd_lexical_classes_chunk_size = 128_uz;
19constexpr auto ucd_lexical_classes_index_width = 8_uz;
20constexpr auto ucd_lexical_classes_indices_size = 7173_uz;
21constexpr auto ucd_lexical_class_width = 3_uz;
22
23static_assert(std::has_single_bit(ucd_lexical_classes_chunk_size));
24
25constexpr uint8_t ucd_lexical_classes_indices_bytes[7189] = {
26 0, 1, 2, 2, 2, 3, 4, 5, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
27 29, 30, 2, 2, 31, 32, 33, 34, 35, 2, 2, 2, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 2, 50, 2, 2, 51, 52,
28 53, 54, 55, 56, 57, 57, 57, 57, 58, 59, 57, 57, 57, 57, 60, 61, 57, 57, 57, 57, 57, 57, 57, 57, 2, 62, 63, 64, 57, 59, 59, 59,
29 65, 66, 67, 68, 59, 59, 59, 59, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
30 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 69, 2, 2, 2, 2,
31 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
32 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
33 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
34 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
35 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
36 2, 2, 2, 2, 2, 2, 2, 2, 2, 70, 2, 2, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 2, 2, 2, 2, 2, 2, 2, 2,
37 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
38 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
39 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 83, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
40 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
41 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 2, 2, 84, 85, 86, 87, 2, 2, 88, 89, 90, 91, 92, 93,
42 94, 95, 96, 97, 59, 98, 99,100, 2,101,102,103, 2, 2,104,105,106,107,108,109,110,111,112,113,114,115,116, 59, 59,117,118,119,
43 120,121,122,123,124,125,126, 59,127,128, 59,129,130,131,132, 59,133,134,135,136,137,138, 59, 59,139,140,141,142, 59,143,144,145,
44 2, 2, 2, 2, 2, 2, 2,146,147, 2,148, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,149,
45 2, 2, 2, 2, 2, 2, 2, 2,150, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
46 59, 59, 59, 59, 59, 59, 59, 59, 2, 2, 2, 2,151, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
47 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
48 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 2, 2, 2, 2,152,153,154,155, 59, 59, 59, 59,156, 59,157,158,
49 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
50 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,159, 2, 2, 2, 2, 2, 2, 2, 2, 2,160,161, 59, 59, 59, 59, 59,
51 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
52 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,162,
53 2, 2,163, 2, 2,164, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,165,166, 59, 59, 59, 59, 59, 59,
54 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,167, 59,
55 59, 59,168,169,170, 59, 59, 59,171,172,173, 2, 2,174,175,176, 59, 59, 59, 59,177,178, 59, 59, 59, 59, 59, 59, 59, 59,179, 59,
56 180,181,182, 59, 59,183, 59, 59, 59,184, 59, 59, 59, 59, 59,185, 2,186,187, 59, 59, 59, 59, 59, 59, 59, 59, 59,188,189, 59, 59,
57 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,190, 59, 59, 59, 59, 59, 59, 59, 59,
58 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
59 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
60 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
61 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
62 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
63 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
64 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
68 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,191, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
69 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,192, 2,193, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
70 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,194, 2, 2,
71 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
72 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,195, 59, 59, 59, 59, 59, 59, 59, 59,
73 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 2, 2, 2, 2,196, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
74 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
75 2, 2, 2, 2, 2, 2,197, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
76 2, 2, 2, 2, 2, 2, 2,198, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
77 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
78 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
79 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
80 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
81 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
82 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
83 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
84 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
85 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
86 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
87 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
88 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
89 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
90 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
91 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
92 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
93 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
94 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
95 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
96 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
97 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
98 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
99 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
100 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
101 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
102 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
103 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
104 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
105 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
106 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
107 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
108 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
109 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
110 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
111 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
112 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
113 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
114 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
115 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
116 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
117 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
118 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
119 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
120 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
121 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
122 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
123 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
124 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
125 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
126 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
127 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
128 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
129 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
130 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
131 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
132 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
133 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
134 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
135 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
136 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
137 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
138 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
139 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
140 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
141 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
142 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
143 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
144 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
145 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
146 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
147 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
148 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
149 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
150 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
151 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
152 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
153 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
154 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
155 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
156 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
157 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
158 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
159 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
160 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
161 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
162 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
163 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
164 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
165 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
166 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
167 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
168 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
169 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
170 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
171 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
172 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
173 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
174 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
175 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
176 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
177 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
178 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
179 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
180 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
181 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
182 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
183 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
184 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
185 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
186 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
187 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
188 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
189 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
190 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
191 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
192 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
193 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
194 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
195 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
196 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
197 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
198 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
199 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
200 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
201 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
202 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
203 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
204 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
205 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
206 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
207 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
208 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
209 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
210 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
211 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
212 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
213 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
214 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
215 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
216 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
217 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
218 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
219 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
220 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
221 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
222 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
223 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
224 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
225 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
226 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
227 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
228 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
229 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
230 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
231 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
232 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
233 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
234 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
235 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
236 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
237 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
238 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
239 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
240 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
241 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
242 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
243 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
244 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
245 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
246 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
247 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
248 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
249 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
250 59, 59,199,200, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
251};
252
253constexpr uint8_t ucd_lexical_classes_bytes[9664] = {
254 0, 0, 0, 18, 73, 0, 0, 0, 0, 0, 0, 0,141,182,219,109,182,219, 36,146, 73, 37,182,219,105, 36,146, 73, 36,146, 73, 36,
255 146, 73, 54,217,105, 36,146, 73, 36,146, 73, 36,146, 73, 54,216, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,182,219, 13,
256 54, 24,108, 0,153, 1, 48, 3, 73, 36,146, 73, 36,146, 73, 36,147, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,147, 73, 36,146,
257 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
258 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
259 36,146, 73, 36,146, 73, 36,146, 72, 0, 18, 73, 36,146, 72, 0, 0, 0, 0, 0, 73, 36, 0, 0, 4, 16, 0, 0, 0, 0, 0, 0,
260 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
261 73, 36,146, 73, 36,146, 73, 36,146, 73, 73, 36, 18, 1, 36,130, 0, 0, 17, 73, 4, 18, 73, 36,146, 73, 36,146, 72, 36,146, 73,
262 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,130, 73, 36,146,
263 72, 18, 73, 1, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
264 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
265 36,146, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 8, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
266 73, 36,146, 64, 0, 0, 4,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 65, 4,130, 65, 0, 0, 0, 73, 36,
267 146, 73, 36,146, 73, 36,146, 73, 0, 2, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,146, 73, 36,128, 0, 73, 36,146, 73,
268 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 18, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 18, 41, 36,146, 73, 36,146,
269 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32,
270 137, 36,146, 1, 36,146,145, 32,146, 82, 36,146, 73, 37, 36, 2, 0, 0, 0, 0, 0, 0, 69, 36,146, 73, 36,146, 73, 36,146, 73,
271 36,146, 36,146, 73, 36,146, 73, 36,146, 73, 36,128,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
272 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,137, 36,146, 73, 40, 0, 0, 0, 0, 0, 36,146, 73, 37, 36,146, 73, 36,
273 146, 73, 36,146, 73, 36,146, 73, 18, 73, 36,148,128, 1, 0, 64, 73, 36,146, 73, 36,146, 73, 36,137, 37, 18, 73, 36,148, 73, 68,
274 146, 64, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 68,144, 0, 73, 36,146, 73, 0, 0, 73, 36,146, 73, 36,146,
275 73, 36,146, 9, 36,144, 0, 0, 0, 36,146, 73, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 72,146, 73, 36,146,
276 73, 36,146, 73, 36, 18, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,148,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
277 36,146, 73, 36,146, 72,146,137, 36,146, 73, 36,146, 73, 68,146, 73, 73, 36,146, 72,144, 9, 36,146, 73, 9, 36,146, 73, 36,146,
278 68,144,146, 73, 36, 2, 64, 36,146, 73, 36,146, 73, 36,146, 65, 36,146, 65, 0, 18, 72, 2,137, 36,146, 1, 32, 18, 80, 0, 0,
279 1, 0, 4,130, 72,144, 9, 36,146, 73, 72, 0, 0, 0, 4, 8, 4,144,146, 73, 0, 2, 64, 36,146, 73, 36,146, 73, 36,146, 65,
280 36,146, 65, 32,144, 72, 2, 9, 36,128, 1, 32, 18, 64, 4, 0, 0, 9, 36, 16, 0, 0, 9, 36,146, 73, 37, 36, 64, 0, 0, 0,
281 4,144,146, 73, 36,130, 72, 36,146, 73, 36,146, 73, 36,146, 65, 36,146, 65, 32,146, 72, 2,137, 36,146, 65, 36, 18, 64, 64, 0,
282 0, 0, 0, 0, 72,144, 9, 36,146, 73, 0, 0, 0, 8,146, 73, 4,144,146, 73, 36, 2, 64, 36,146, 73, 36,146, 73, 36,146, 65,
283 36,146, 65, 32,146, 72, 2,137, 36,146, 1, 32, 18, 64, 0, 0, 73, 0, 4,130, 72,144, 9, 36,146, 73, 8, 0, 0, 0, 0, 0,
284 0,160,146, 73, 0, 18, 65, 36,128, 9, 4, 18, 0, 36, 0, 73, 0, 18, 73, 36,146, 72, 0, 9, 36,128, 9, 32,146, 64, 64, 0,
285 1, 0, 0, 0, 0, 0, 9, 36,146, 73, 0, 0, 0, 0, 0, 0, 36,146,146, 73, 36, 18, 65, 36,146, 73, 36,146, 73, 36,146, 65,
286 36,146, 73, 36,146, 72, 2,137, 36,146, 9, 32,146, 64, 0, 0, 72, 73, 0,128, 72,144, 9, 36,146, 73, 0, 0, 0, 0, 0, 0,
287 68,144,146, 73, 36, 18, 65, 36,146, 73, 36,146, 73, 36,146, 65, 36,146, 73, 32,146, 72, 2,137, 36,146, 9, 32,146, 64, 0, 0,
288 72, 0, 0,144, 72,144, 9, 36,146, 73, 9, 16, 0, 0, 0, 0, 36,148,146, 73, 36, 18, 65, 36,146, 73, 36,146, 73, 36,146, 73,
289 36,146, 73, 36,146, 73, 18,137, 36,146, 9, 32,146, 80, 0, 4,145, 0, 0, 2, 72,144, 9, 36,146, 73, 0, 0, 0, 1, 36,146,
290 4,144,146, 73, 36,146, 73, 36,144, 1, 36,146, 73, 36,146, 73, 36,146, 72, 36,146, 73, 32,128, 73, 36,144, 0,128, 1, 36,146,
291 8, 36,146, 73, 0, 0, 9, 36,146, 73, 0,144, 0, 0, 0, 0, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
292 36,146, 69, 34, 73, 36,128, 0, 73, 36,145, 36,146, 72, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 9, 4, 18, 73, 4,146, 73, 36,146, 73, 36,146, 73, 32,130, 73, 36,146, 69, 34, 73, 36,146,128, 73, 36, 16, 36,146, 72, 36,146,
294 73, 36, 4,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 36,146, 73, 36,
295 0, 0, 0, 0, 65, 4, 0, 9, 73, 36,146, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 4,146, 73, 36,146, 73,
296 36,146, 9, 73, 36, 73, 36,146, 73, 4,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 8, 0, 0, 0, 0, 0,
297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
298 18, 73, 36,146, 73, 36,146, 74, 36,146, 73, 36, 0, 0, 73, 36,137, 37, 36,137, 40,146,145, 36,146, 82, 68,146,146, 73, 36,146,
299 72,146, 73, 36,146, 81, 36,146, 73, 36,146, 64, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,130, 0, 0,128, 73, 36,
300 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 4,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
301 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 65, 36,128, 73, 36,144, 65, 36,128, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
302 73, 36,146, 65, 36,128, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 65, 36,128, 73, 36,144, 65, 36,128, 73, 36,146, 73, 36,
303 144, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 65, 36,128, 73, 36,146, 73, 36,146, 73,
304 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 73, 0, 0, 0, 4,146, 73, 36, 0, 0, 0, 0, 0,
305 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
306 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,128, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
307 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
308 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
309 146, 73, 36,146, 73, 36,146, 73, 36, 2, 73, 36,146, 73, 36,146, 9, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 73, 36,146, 73,
310 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 18, 73, 36,146, 64, 0, 0,
311 73, 36,146, 73, 36,146, 72,146, 64, 0, 0, 2, 73, 36,146, 73, 36,146, 72,146, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 72,144,
312 0, 0, 0, 0, 73, 36,146, 73, 36, 18, 64,144, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
313 36,146, 73, 34, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 2, 0, 4, 64, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0,
314 0, 0, 0, 0, 18, 65, 36,146, 73, 36, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
315 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 69,
316 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 0, 0, 0,
317 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 36,146, 73, 36,144, 0, 36,146, 73, 36,144, 0, 0, 0, 9, 36,146, 73, 73, 36,
318 146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
319 32, 0, 73, 36,146, 73, 36,146, 73, 36,146, 72, 0, 0, 36,146, 73, 36,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
320 73, 36,146, 73, 36,146, 73, 36,145, 36,144, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
321 73, 36,146, 72, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 1, 36,146, 73, 36, 0, 0, 36,146, 73, 36, 0, 0, 0, 0, 2, 0,
322 0, 0, 36,146, 73, 36,146, 65, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
323 36,146,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,146, 73, 36,146,146, 73, 36, 0, 36,146,
324 73, 36, 0, 0, 0, 0, 0, 0, 18, 73, 36,144, 0, 0, 0, 0, 36,164,146, 73, 36,146, 73, 36,146, 73, 36,146, 68,146, 73, 36,
325 146, 82, 36,146, 73, 37, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,137, 36,146, 73, 36,144, 0, 0, 0, 0,
326 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,146, 73, 36,146, 73, 0, 0, 0, 36,146, 73, 36, 0,146, 36,146,
327 73, 37, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,146, 64, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73,
328 36,146, 73, 36,146, 73, 0,146, 0, 0, 0, 0, 0, 0, 36,130, 73, 36,146, 73, 36,146, 73, 41, 36, 82, 73, 34,145, 37, 0, 0,
329 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 36,146, 73, 36,146, 73, 36,146,
330 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,128, 73, 36,146, 73,
331 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,128, 73, 36,146, 8, 32,130, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128,
332 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 18, 73, 36, 16, 1, 36, 18, 73, 36, 0, 73, 32,
333 18, 73, 32, 0, 73, 36,146, 73, 36, 0, 1, 36, 18, 73, 36, 0, 0, 0, 0, 0, 0, 36,109,182,219,109,182,219,109,182,219,144,
334 0, 0,109,182,219,109,182,217, 45,182,219,109,182,219,109,178,219,109,182,216, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2,
335 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,146,
336 73, 36,146, 0, 4, 0, 73, 36,146, 73, 32, 0, 0, 0, 0, 0, 1, 0, 2, 1, 36,146, 73, 32,128, 73, 36,128, 0, 4, 16, 65,
337 36,146, 73, 36,146, 72, 4,146, 0, 0,146, 72, 0, 16, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
338 73, 36,146, 64, 0, 0,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,
339 219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,
340 182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,
341 109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,
342 219,109,182,219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
344 109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,
345 219,109,182,219,109,182,219,109,182,219,109,182,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,219,109,182,219,109,182,219,109,
346 182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,109,182,219,
347 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
348 146, 73, 36,146, 73, 36, 0, 0, 36,145, 37, 32, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,130, 0,
349 0,128, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 2, 0, 0, 0, 0, 0, 1,
350 73, 36,146, 73, 36,146, 73, 36,144, 0, 0, 0, 73, 36,144, 73, 36,144, 73, 36,144, 73, 36,144, 73, 36,144, 73, 36,144, 73, 36,
351 144, 73, 36,144, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 13,176,146,109,182,219,109,182,219,109,182,219,105, 36,146, 72,
352 146, 73,105, 36,128, 73, 36, 0, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
353 73, 36,146, 73, 36,146, 73, 36,144, 4,164,146, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
354 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 4,146, 0, 0,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
355 36,146, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
356 73, 36,146, 73, 36,144, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0,
357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
358 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
359 73, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,
360 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,146, 73, 36, 0, 73, 36,146, 73, 36,146, 36,146, 73, 37,
361 32, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,145, 0, 2, 73, 36,146, 66,
362 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,137, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
363 146, 73, 36,146, 73, 36,146, 73, 36,146, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 73, 36,146, 1, 36,146, 73,
364 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
365 73, 36,146, 64, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 72, 32,
366 146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 1, 36,146, 73, 36,146, 72,164,138, 73, 20,146, 73, 36,146, 73, 36,146, 73, 18, 73, 0,
367 2, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0, 0, 0, 0,
368 37, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,146, 73, 36,146, 64, 0, 0, 0, 36,146,
369 73, 36, 0, 0, 36,146, 73, 36,146, 73, 37, 36,146, 0, 32,145, 36,146, 73, 37, 36,146, 73, 36,146, 73, 36,146, 73, 36,137, 36,
370 146, 64, 73, 36,146, 73, 36,146, 73, 36,145, 36,146, 73, 36,144, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0,
371 36,148,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 18, 73, 36,146, 73, 32, 0, 0, 0, 0, 2, 36,146,
372 73, 36, 0, 0, 73, 36, 82, 73, 36,146, 36,146, 73, 37, 36,144, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 68,
373 146, 73, 36,146, 72, 0, 0, 0, 73, 20,146, 73, 34, 64, 36,146, 73, 36, 0, 0, 73, 36,146, 73, 36,146, 73, 36,144, 1, 18, 82,
374 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 40,146,145, 41, 36,137, 69, 0, 0, 0, 0, 0, 0, 0,
375 0, 0, 36,128, 73, 36,146, 73, 18, 73, 1, 36, 72, 0, 0, 0, 9, 36,144, 9, 36,144, 9, 36,144, 0, 0, 0, 73, 36,144, 73,
376 36,144, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 4,146, 73, 36,146, 72, 0, 0, 73, 36,146, 73, 36,146,
377 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
378 146, 73, 36,146, 73, 18, 73, 36,130, 64, 36,146, 73, 36, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0, 0,
379 0, 0, 73, 36,146, 73, 36,146, 73, 36,144, 0, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0,
380 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
381 146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
382 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383 73, 36,144, 0, 0, 0, 0, 36,146, 0, 0,138, 73, 36,146, 65, 36,146, 73, 36,144, 73, 36, 16, 72, 36, 18, 73, 36,146, 73, 36,
384 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
385 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
386 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,155, 0, 0, 0, 0, 0, 0, 73, 36,
387 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 1, 36,146, 73, 36,146, 73, 36,146, 73,
388 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 32, 0,
389 36,146, 73, 36,146, 73, 0, 0, 0, 0, 0, 0, 36,146, 73, 36,146, 73, 0, 18, 0, 0, 0, 0, 0, 0,216, 0, 0, 73, 0, 0,
390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36, 18, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
391 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0,
392 0, 0, 0, 0, 0, 0, 36,146, 73, 36, 0, 0, 9, 36,146, 73, 36,146, 73, 36,146, 73, 0, 1, 9, 36,146, 73, 36,146, 73, 36,
393 146, 73, 0, 0, 0, 0, 18, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
394 36,146, 73, 36,146, 73, 36,144, 1, 36,146, 1, 36,146, 1, 36,146, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 73, 36,146, 73, 32,146, 73, 36,146, 73, 36,146, 73, 36,144, 73, 36,146, 73, 36,146, 73, 4,130, 73, 36,146, 73, 36,128, 73, 36,
396 146, 73, 36,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
397 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,
399 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,
401 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0,
402 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0,
403 0,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,137, 36,128, 0,
404 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0, 73, 36,146, 9, 36,
405 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 36,146, 73, 36,
406 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0,
407 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
408 146, 73, 36,146, 73, 32, 0, 0, 0, 0, 73, 36,146, 73, 4,146, 73, 36,146, 73, 4,146, 73, 4,130, 73, 36,146, 72, 36,146, 73,
409 36,146, 72, 36,146, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,
411 128, 0, 0, 0, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,130, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
412 36,146, 65, 36,146, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
413 73, 36,128, 65, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,130, 64, 4, 2, 73, 36,146, 73, 36,146, 73, 36,
414 128, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,144, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 0, 0, 0, 0,
415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 4,128, 0, 0, 0,
416 73, 36,146, 73, 36,146, 73, 36,128, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
418 36,146, 73, 36,146, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
419 68,144, 72, 0, 2, 73, 73, 32,146, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 36,128, 1, 0, 0, 0, 0, 0, 0, 0, 0,
420 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 0, 0, 0, 0,
421 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 9, 36,146, 73, 36,146, 73, 36,146, 73, 36, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,
423 128, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
425 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0, 0, 0, 0,
426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
427 36,146, 73, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 0, 0, 0,
428 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 0, 0, 0, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 72,
430 18, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
431 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 0, 0, 2, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,137, 36,146, 73, 32, 0,
432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 72,146, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433 0, 0, 73, 36,146, 73, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,144, 0, 0, 0,
434 36,164,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0,
435 0, 0, 0, 0, 0, 0, 9, 36,146, 73, 41, 18,128, 0, 0, 1, 36,164,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
436 36,146, 36,146, 73, 36,128, 0, 0,128, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0, 0, 36,146, 73, 36, 0, 0,
437 36,164,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,145, 36,146, 73, 36,146, 9, 36,146, 73, 0, 4, 74, 0, 0, 0, 73, 36,
438 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 16, 16, 0, 0, 0, 36,164,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
439 36,146, 73, 18, 73, 36,146, 73, 41, 36, 0, 4,146, 9, 36,146, 73, 37, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440 73, 36,146, 73, 36,146, 72, 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,146, 73, 0, 0, 10, 68, 0, 0, 0, 0, 0, 0, 0,
441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,144, 65, 36,130, 73, 36,146, 73, 36,130, 73, 36,146, 64,
442 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,145, 36,146, 73, 36,128, 0, 36,146, 73, 36, 0, 0,
443 36,144,146, 73, 36, 2, 64, 36,146, 73, 36,146, 73, 36,146, 65, 36,146, 65, 32,146, 72, 18,137, 36,146, 1, 32, 18, 64, 64, 0,
444 1, 0, 0,146, 72,144, 9, 36,146, 0, 36,146, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
445 36,146, 73, 36, 73, 36,146, 73, 36,146, 74, 73, 0, 0, 36,146, 73, 36, 0, 10, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
446 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 36,146, 73, 36,146, 73, 36,148,130, 0, 0, 0, 36,146,
447 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
448 36,145, 36,146, 64, 36,146, 73, 32, 0, 0, 0, 0, 0, 0, 0, 0, 73, 34, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
449 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 36,146, 73, 36,146, 73, 32, 4, 0, 0, 0, 0, 36,146,
450 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
451 18, 73, 36,146, 73, 64, 0, 0, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
452 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 73, 36,146, 73, 36,144, 0, 36,146, 73, 36, 0, 0, 73, 36,144, 0, 0, 0, 0, 0,
453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
454 34, 73, 36,146, 73, 36,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
456 146, 73, 36,146, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 2, 73, 36,144, 8, 4,146, 73, 32,144, 73, 36,146, 73, 36,146, 73,
457 36,146, 36,146, 65, 32, 18, 74, 40,144, 0, 0, 0, 0, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 1, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 68,146,
459 73, 0,146, 73, 40, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,146, 73, 36,164,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
460 36,146, 73, 18, 73, 37, 18, 72, 0, 0, 1, 0, 0, 0, 68,146, 73, 36,148,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
461 73, 36,146, 72,146, 73, 36,146, 73, 36, 0,128, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
462 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0, 0, 73, 36,146, 65, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
463 36,145, 36,146, 72, 36,146, 73, 64, 0, 0, 0, 0, 0, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 1, 36,146, 73, 36,146,
464 73, 36,146, 73, 36,146, 0,146, 73, 36,146, 73, 36,146, 73, 4,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,144, 72, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
466 36,146, 68,146, 72, 0,130, 65, 36,146, 81, 0, 0, 0, 36,146, 73, 36, 0, 0, 73, 36,130, 65, 36,146, 73, 36,146, 73, 36,146,
467 73, 36,146, 72,146, 72, 36, 18, 73, 64, 0, 0, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 18, 72, 0, 0, 0,
470 37, 20,146, 73, 36,146, 65, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,128, 9, 36,128, 0, 0, 0, 0, 36,146,
471 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
472 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
473 73, 36,146, 73, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
475 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 0, 0, 0, 0, 0, 0,
476 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0, 0, 0, 0, 0, 0,
477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73,
478 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0, 0, 0, 0, 0,
479 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 41, 36,145, 36,146, 73, 36,146,
480 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
481 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0, 0, 73, 36,146, 73, 36,146, 73, 36,
483 146, 73, 36,144, 36,146, 73, 36, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
484 36,146, 73, 36,146, 73, 36,144, 36,146, 73, 36, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 36,146, 0, 0, 0, 0,
485 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 36,146, 72, 0, 0, 0, 73, 32, 0, 0, 0, 0, 36,146,
486 73, 36, 0, 0, 0, 36,146, 73, 36,146, 73, 36,146, 0, 0,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,
489 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
490 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 1, 68,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
491 36,146, 73, 0, 0, 1, 36,164,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
492 0, 0, 0, 0, 72, 34, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
493 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0,
494 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
495 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 32,146, 73, 32,144, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 0,
499 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,128, 0, 0, 0, 0, 4,146, 0, 0, 0, 73, 36,146, 73, 36,146,
500 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
501 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 32, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
502 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 73, 36,146, 73, 36, 0,
503 73, 36,146, 64, 0, 0, 73, 36,146, 72, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
505 146, 64, 36,146, 73, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 73, 36, 0, 73, 36,128, 0, 0, 18, 73, 36,128, 73, 36,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 146, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
511 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 18, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
512 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 18, 1, 0,144, 9, 36, 18, 73, 36,146, 72, 32,146, 73, 32,146, 73, 36,146, 73, 36,
513 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,130, 73, 0,146, 73, 36, 18, 73, 36, 18, 73, 36,146, 73,
514 36,146, 73, 36,146, 72, 36,144, 73, 36, 16, 1, 36,146, 65, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
515 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,146, 73, 36,146, 73, 36,146, 65, 36,146, 73, 36,146, 73, 36,
516 146, 73, 4,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 4,146, 73, 36,146, 73, 36,146, 73, 36, 18, 73, 36,146, 73, 36,146, 73,
517 36,146, 73, 36, 18, 73, 36,146, 73, 36,146, 73, 36,144, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 73, 36,146, 73, 36,146,
518 73, 36,146, 65, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 65, 36,146, 73, 36,146, 73, 36,146, 73, 4,146, 73, 32, 9, 36,146,
519 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
520 146, 73, 36,146, 72, 0, 18, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 64, 0, 0, 0,
521 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 18, 73, 4,146, 73, 36,146, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,144, 0, 0,146, 73,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524 36,146, 72, 36,146, 73, 36,146, 73, 32, 18, 73, 36, 18, 9, 36,128, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
525 146, 73, 36,146, 73, 36,146, 73, 36,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 36,146, 74, 73, 36,128, 36,146, 73, 36, 0, 16, 0, 0,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73,
529 36,136, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,146, 73, 36, 0, 0,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,
531 146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,144, 73, 32,144, 73, 36,146, 73, 36,144,
533 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36, 0, 0, 0, 0, 36,146,
534 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
535 36,146, 73, 36,146, 73, 36,146, 73, 34, 73, 36,160, 0, 36,146, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
536 73, 32,146, 73, 36,146, 73, 36,146, 73, 36,146, 9, 4, 2, 9, 36,146, 73, 4,146, 8, 32, 0, 1, 0, 2, 8, 32,146, 9, 4,
537 2, 8, 32,130, 9, 4, 2, 73, 4,146, 73, 4,146, 9, 36, 16, 73, 36,146, 72, 36,146, 73, 36,146, 73, 32, 0, 9, 32,146, 72,
538 36,146, 73, 36,146, 73, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,146, 73, 36, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
541 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
542 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 72, 0, 0, 73, 36,146, 73, 36,146, 73, 36,
543 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 73, 36,146, 73,
544 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
545 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 72, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
546 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
547 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
548 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
550 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
551 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,
553 146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73,
554 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146, 73, 36,146,
555 73, 36,146, 73, 36,146, 73, 36,146, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
556};
557
558
559} // namespace detail
560
561enum class unicode_lexical_class : uint8_t {
562 other = 0,
563 id_continue = 1,
564 id_start = 2,
565 syntax = 3,
566 white_space = 4,
567};
568
569[[nodiscard]] constexpr unicode_lexical_class ucd_get_lexical_class(char32_t code_point) noexcept
570{
571 constexpr auto max_code_point_hi = detail::ucd_lexical_classes_indices_size - 1;
572
573 auto code_point_hi = code_point / detail::ucd_lexical_classes_chunk_size;
574 auto const code_point_lo = code_point % detail::ucd_lexical_classes_chunk_size;
575
576 if (code_point_hi > max_code_point_hi) {
577 code_point_hi = max_code_point_hi;
578 }
579
580 auto const chunk_index = load_bits_be<detail::ucd_lexical_classes_index_width>(
581 detail::ucd_lexical_classes_indices_bytes,
582 code_point_hi * detail::ucd_lexical_classes_index_width);
583
584 // Add back in the lower-bits of the code-point.
585 auto const index = (chunk_index * detail::ucd_lexical_classes_chunk_size) + code_point_lo;
586
587 // Get the canonical combining class from the table.
588 auto const value = load_bits_be<detail::ucd_lexical_class_width>(
589 detail::ucd_lexical_classes_bytes, index * detail::ucd_lexical_class_width);
590
591 return static_cast<unicode_lexical_class>(value);
592}
593
594}} // namespace hi::v1
595
@ other
The gui_event does not have associated data.
The HikoGUI namespace.
Definition array_generic.hpp:20
DOXYGEN BUG.
Definition algorithm_misc.hpp:20