├── README.md ├── img ├── aitendo_ht16k33.jpg ├── banner.png ├── download.png ├── fontFormat.png ├── led_matrix_scroll.jpg ├── misaki_tvout.jpg ├── sample.png ├── sample1.png └── sample2.png └── misakiUTF16 ├── examples ├── aitendo_ht16k33 │ └── aitendo_ht16k33.ino ├── banner │ └── banner.ino ├── led_matrix_scroll │ └── led_matrix_scroll.ino └── misaki_tvout │ └── misaki_tvout.ino ├── keywords.txt ├── library.properties └── src ├── misakiUTF16.cpp ├── misakiUTF16.h └── misakiUTF16FontData.h /README.md: -------------------------------------------------------------------------------- 1 | # Arduino-misakiUTF16 2 | 3 | Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版 4 | 5 | ## 更新情報 6 | 7 | 2024/03/18 更新 v1.2 8 | ・美咲フォントの最新版 2021-05-05(美咲ゴシック第2)利用に変更 9 |  (以前は2012-06-03 正式公開初版を利用) 10 | ・isZenkaku()の追加、 11 |  ⇒ 半角(4ドット)・全角(8ドット)幅判定により半角文字を詰めて表示可能となりました 12 | ・いくつかのバグ対応(半角・全角変換ミスなど) 13 | 14 | ## 概要 15 | 16 | Arduino用の美咲フォントドライバライブラリです。 17 | 18 | フォントを教育漢字1,006字(小学校で習う漢字)+ひらがな・カタカナ・記号・半角等の1,710字に絞って 19 | Arduino Uno(Atmega328)のフラッシュメモリ上に格納しました。 20 | 本ライブラリは約16kバイト、フラッシュメモリを消費します。 21 | 22 | ※ 美咲フォントは、Little Limitさんが開発し、配布しているフォントです。 23 |   8×8 ドット日本語フォント「美咲フォント」 24 |     25 | 26 | ### 収録文字 27 | 28 | ````収録文字 29 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi 30 | jklmnopqrstuvwxyz{|}¢£¥§¨¬°±´¶×÷ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρ 31 | στυφχψωЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяё 32 | ‐―‖‘’“”†‡‥…′″※‾℃№℡ÅⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ←↑→↓⇒⇔∀∂∃∇∈∋∑−√∝∞∟∠∧∨∩∪ 33 | ∫∬∮∴∵∽≒≠≡≦≧≪≫⊂⊃⊆⊇⊥⊥⊿⌒①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳■□▲△▼▽◆◇○◎●◯ 34 | ★☆♀♂♪♭♯ 、。〃々〆〇〈〉《》「」『』【】〒〓〔〕〜〝〟ぁあぃいぅうぇえぉおか 35 | がきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひび 36 | ぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん゛゜ゝゞァアィイ 37 | ゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌ 38 | ネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴ 39 | ヵヶ・ーヽヾ㈱㈲㈹㊤㊥㊦㊧㊨㎎㎏㎜㎝㎞㎡㏄㏍一丁七万三上下不世両並中丸主久乗九乱 40 | 乳予争事二五亡交京人仁今仏仕他付代令以仮仲件任休会伝似位低住体何余作使例供価便係 41 | 保信修俳俵倉個倍候借値停健側備傷働像億優元兄兆先光児党入全八公六共兵具典内円冊再 42 | 写冬冷処出刀分切刊列初判別利制刷券刻則前副割創劇力功加助努労効勇勉動務勝勢勤包化 43 | 北区医十千午半卒協南単博印危卵厚原厳去参友反収取受口古句可台史右号司各合同名后向 44 | 君否吸告周味呼命和品員唱商問善喜営器四回因団困囲図固国園土圧在地坂均垂型城域基埼 45 | 堂報場塩境墓増士声売変夏夕外多夜夢大天太夫央失奏奮女好妹妻姉始委姿婦子字存孝季学 46 | 孫宅宇守安完宗官宙定宝実客宣室宮害家容宿寄密富寒察寸寺対専射将尊導小少就尺局居届 47 | 屋展属層山岩岸島川州巣工左差己巻市布希師席帯帰帳常幕干平年幸幹幼庁広序底店府度座 48 | 庫庭康延建弁式弓引弟弱張強当形役往径待律後徒従得復徳心必志忘応忠快念思急性恩息悪 49 | 悲情想意愛感態慣憲成我戦戸所手才打批承技投折担招拝拡拾持指挙捨授採探接推提揮損操 50 | 支改放政故救敗教散敬数整敵文料断新方旅族旗日旧早明易昔星映春昨昭昼時晩景晴暑暖暗 51 | 暮暴曜曲書最月有服朗望朝期木未末本札机材村束条来東松板林枚果枝染柱査栄校株根格案 52 | 桜梅械棒森植検業極楽構様標模権横樹橋機欠次欲歌止正武歩歯歴死残段殺母毎毒比毛氏民 53 | 気水氷永求池決汽河油治沿泉法波泣注泳洋洗活派流浅浴海消液深混清済減温測港湖湯満源 54 | 準漁演漢潔潮激火灯灰災炭点無然焼照熟熱燃父片版牛牧物特犬犯状独率玉王班現球理生産 55 | 用田由申男町画界畑留略番異疑病痛発登白百的皇皮皿益盛盟目直相省看県真眼着矢知短石 56 | 砂研破確磁示礼社祖祝神票祭禁福私秋科秒秘移程税種穀積穴究空窓立章童競竹笑笛第筆等 57 | 筋答策算管箱節築簡米粉精糖糸系紀約紅納純紙級素細終組経結給統絵絶絹続綿総緑線編練 58 | 縦縮績織罪置署羊美群義羽翌習老考者耕耳聖聞職肉肥育肺胃背胸能脈脳腸腹臓臣臨自至興 59 | 舌舎航船良色花芸芽若苦英茶草荷菜落葉著蒸蔵薬虫蚕血衆行術街衛衣表裁装裏補製複西要 60 | 見規視覚覧親観角解言計討訓記訪設許訳証評詞試詩話誌認誕語誠誤説読課調談論諸講謝識 61 | 警議護谷豆豊象貝負財貧貨責貯貴買貸費貿賀賃資賛賞質赤走起足路身車軍転軽輪輸辞農辺 62 | 近返述迷追退送逆通速造連週進遊運過道達遠適選遺郡部郵郷都配酒酸里重野量金針鉄鉱銀 63 | 銅銭鋼録鏡長門閉開間関閣防降限陛院除陸険陽隊階際障集雑難雨雪雲電青静非面革音頂順 64 | 預領頭題額顔願類風飛食飯飲飼養館首馬駅験骨高魚鳥鳴麦黄黒鼻!#$%&()*+,. 65 | /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV 66 | WXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}。「」、 67 | ・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚ ̄¥ 68 | ```` 69 | 70 | ## 仕様 71 | 72 | * 文字コード UTF16/UTF-8 73 | * フォントサイズ 8x8ドッド(美咲フォント) 74 | * フォント格納形式 75 | ![format](img/fontFormat.png) 76 | 77 | * 利用可能フォント数 1,710字(Arduinoのフラッシュメモリ上に格納) 78 | * 漢字 教育漢字 1,006字(小学校で習う漢字) 79 | * 非漢字 全角 546字(全角英数字、ひらがな、かたかな、記号) 80 | * 半角フォント 158字(半角記号、半角英数、半角カタカナ) 81 | 82 | ## インストール方法 83 | 84 | ライブラリ公開先のリンクをクリックし、ページ右上の「Clone or download」を 85 | クリックして、さらに「Dounload ZIP」をクリックするとダウンロードできます。 86 | ![download](img/download.png) 87 | 88 | ダウンロード後、ファイルを解凍し、フォルダ内のmisakiUTF16 フォルダを 89 | 各自のライブラリ配置場所(\libraries)に入れます。 90 | 91 | ## API関数 92 | 93 | ### ■ UTF8文字列をUTF16文字列に一括変換 94 | 95 | 【書式】 96 | `int16_t Utf8ToUtf16(uint16_t* pUTF16, char *pUTF8)` 97 | 98 | 【引数】 99 | `pUTF16`: UTF16文字列格納アドレス(OUT) 100 | `pUTF8`: UTF8文字列格納アドレス(IN) 101 | 102 | 【戻り値】 103 | 変換したUTF16文字列の長さ(変換失敗時は-1を返す) 104 | 105 | 【説明】 106 | `pUTF8`のアドレスに格納されているUTF8コード文字列を、UTF16コードに変換し、 107 | `pUTF16`のアドレスに格納します。 108 | 半角文字を含め、すべての文字は2バイトコードであるUTF16に変換されますので、 109 | `pUTF16`には十分な領域を確保してください。 110 | 変換したUTF16文字領域を確保しない、1文字単位で変換を行う`charUFT8toUTF16()`、 111 | 1文字単位でフォントデータを取得する`getFontData()`での代替えも可能です。 112 | 113 | ### ■ 先頭UTF8文字(1~3バイト)をUTF16(2バイト)に変換 114 | 115 | 【書式】 116 | `byte charUFT8toUTF16(char *pUTF8, uint16_t *pUTF16)` 117 | 118 | 【引数】 119 | `pUTF16`: UTF16文字格納アドレス(OUT) 120 | `pUTF8`: UTF8文字格納アドレス(IN) 121 | 122 | 【戻り値】 123 | 変換処理したUTF8文字のバイト数(0~3、変換失敗時は0を返す) 124 | 125 | 【説明】 126 | `pUTF8`のアドレスに格納されている先頭の1文字UTF8コード文字列を、 127 | UTF16コードに変換し、 `pUTF16`のアドレスに格納します。 128 | 次文字を処理する場合は、戻り値のバイト数分を`pUTF8`に加算して、 129 | 再度`charUFT8toUTF16()`を呼び出します。 130 | 131 | ### ■ UTF16半角コード(記号英数字、カナ)をUTF16全角コードに変換 132 | 133 | 【書式】 134 | `uint16_t utf16_HantoZen(uint16_t utf16)` 135 | 136 | 【引数】 137 | `utf16`: UTF16文字コード(IN) 138 | 139 | 【戻り値】 140 | 変換処理したUTF16文字コード(指定したコードが全角の場合はそのままコードを返す) 141 | 142 | 【説明】 143 | `utf16`で指定したUTF16半角文字コードをUTF16全角文字コードに変換します。 144 | 指定した文字が半角文字でない場合は、その値をそのまま返します。 145 | 半角文字としては、記号英数字、カナが対象となります。 146 | 147 | ### ■ 全角判定 148 | 149 | 【書式】 150 | `boolean isZenkaku(uint16_t utf16)` 151 | 152 | 【引数】 153 | `utf16`: UTF16文字コード(IN) 154 | 155 | 【戻り値】 156 | true:指定した文字コードが全角幅フォントである 157 | false:指定した文字コードが半角幅フォントである 158 | 159 | 【説明】 160 | 指定した文字コードが全角幅(8ドット)か半角幅(4ドット)かを判定します。 161 | 162 | ### ■ 半角カナを全角に変換 163 | 164 | 【書式】 165 | `uint16_t hkana2kana(uint16_t utf16)` 166 | 167 | 【引数】 168 | `utf16`: UTF16文字コード(IN) 169 | 170 | 【戻り値】 171 | 変換処理したUTF16文字コード(指定したコードが全角の場合はそのままコードを返す) 172 | 173 | 【説明】 174 | `utf16`で指定したUTF16半角カタカナに対応するUTF16全角文字コードを返します。 175 | 半角文字でない場合は、その値をそのまま返します。 176 | 177 | ### ■ UTF16文字に対応するフォントデータ(8バイト)取得 178 | 179 | 【書式】 180 | `boolean getFontDataByUTF16(byte* fontdata, uint16_t utf16)` 181 | 182 | 【引数】 183 | `fontdata`: フォントデータ格納アドレス(OUT) 184 | `utf16`: UTF16文字コード(IN) 185 | 186 | 【戻り値】 187 | `true`: 正常終了 `false`: 異常終了 188 | 189 | 【説明】 190 | `utf16`で指定したUTF16コードに対応するフォントデータを取得し、 191 | `fontdata`のアドレスに格納します。該当するフォントが存在しない場合は、 192 | "□":豆腐( コード:`0x25a1`)フォントを格納します。 193 | 194 | (注意) 195 | 戻り値は該当するフォントが無く、"□":豆腐取得の場合でも`true`を返します。 196 | 異常終了は、何等かの理由で豆腐フォントも取得できない場合です。 197 | 198 | ### ■ UTF8文字列に対応する先頭文字のフォントデータ取得 199 | 200 | 【書式】 201 | `char* getFontData(byte* fontdata, char *pUTF8,bool h2z=false)` 202 | 203 | 【引数】 204 | `fontdata`: フォントデータ格納アドレス(OUT) 205 | `pUTF8`: UTF8文字列(IN) 206 | `h2z`: 半角全角変換指定(IN)  `true`:全角変換あり `false` 全角変換なし(省略時デフォルト) 207 | 208 | 【戻り値】 209 | 変換を行った文字の次位置のアドレスを返します(文列末は0x00を指す位置となる)。 210 | 取得失敗時は`NULL`(=0)を返します。 211 | 212 | 【説明】 213 | UTF8文字列が格納されているアドレス`pUTF8`より、先頭から1文字を取得し、 214 | 対応するフォントデータを`fontdata`に格納します。 215 | 該当フォントが存在しない場合、"□":豆腐( コード:`0x25a1`)フォントを格納します。 216 | 戻り値として、`pUTF8`に格納されている次の文字のアドレスを返します。 217 | 何らかのエラーが生じた場合は`NULL`(=0)を返します。 218 | 219 | ### ■ フォントデータテーブル先頭アドレス取得 220 | 221 | 【書式】 222 | `const uint8_t* getFontTableAddress()` 223 | 224 | 【引数】 225 | なし 226 | 227 | 【戻り値】 228 | フォントデータを格納しているデータ領域の先頭アドレスを返します。 229 | 230 | 【説明】 231 | フォントデータテーブルの先頭アドレスを返します。 232 | AVR環境で利用する場合、アドレスはフラッシュメモリ領域となります。 233 | 領域参照は`pgm_read_byte()`を利用する必要があります。 234 | ARM、EPS8266、ESP32環境では通常のメモリアドレスとして参照可能です。 235 | 236 | フォントテーブル内の任意の文字の格納アドレスは次の計算で取得できます。 237 | `getFontTableAddress() + findcode(ucode)*7` 238 | 239 | ### ■ フォントの検索 240 | 241 | 【書式】 242 | `int findcode(uint16_t ucode)` 243 | 244 | 【引数】 245 | `ucode`: UTF16文字コード(IN) 246 | 247 | 【戻り値】 248 | 指定したコードに対するフォントコード(0~1709)を返します。 249 | 該当するフォントが存在ししない場合は-1 を返します。 250 | 本関数で取得したコードはフォントデータテーブル上の格納順番を示すコードです。 251 | 252 | 【説明】 253 | フォントテーブル内の任意の文字の格納アドレスは次の計算で取得できます。 254 | `getFontTableAddress()+findcode(ucode)*7` 255 | 256 | AVR環境で利用する場合、アドレスはフラッシュメモリ領域となります。 257 | 領域参照は`pgm_read_byte()`を利用する必要があります。 258 | ARM、EPS8266、ESP32環境では通常のメモリアドレスとして参照可能です。 259 | 260 | ## ライブラリの使い方 261 | 262 | ### 簡単な記述例1(1文字分のフォント取得) 263 | 264 | ````sample1.ino 265 | #include 266 | 267 | void setup() { 268 | Serial.begin(115200); 269 | 270 | char font[8]; // フォント格納バッファ 271 | getFontData(font, "あ"); // "あ"のフォントを取得 272 | 273 | // 取得フォントの確認 274 | for (uint8_t row=0; row<8; row++) { 275 | for (uint8_t col=0; col<8; col++) { 276 | Serial.write( (0x80>>col) & font[row] ? '#':' '); 277 | } 278 | Serial.write('\n'); 279 | } 280 | } 281 | 282 | void loop() { 283 | 284 | } 285 | ```` 286 | 287 | 実行結果 288 | ![sample1](img/sample1.png) 289 | 290 | フォントデータの取得処理は、`getFontData(font,"あ")` のみで完了です。 291 | 後半のネストしている`for`文は取得したフォントの確認用です。 292 | 293 | ### 簡単な記述例2(文字列分のフォントを繰り返し取得) 294 | 295 | ````sample2.ino 296 | #include 297 | 298 | void setup() { 299 | Serial.begin(115200); 300 | 301 | char font[8]; // フォント格納バッファ 302 | char *str="Abcあいうえお、埼玉"; // 文字列 303 | 304 | char *ptr = str; 305 | while(*ptr) { // 文字列分ループ 306 | ptr = getFontData(font, ptr); // 1文字分のフォント取得 307 | if (!ptr) 308 | break; // エラーの場合は終了 309 | 310 | // 取得フォントの確認 311 | for (uint8_t row=0; row<8; row++) { 312 | for (uint8_t col=0; col<8; col++) { 313 | Serial.write( (0x80>>col) & font[row] ? '#':' '); 314 | } 315 | Serial.write('\n'); 316 | } 317 | } 318 | } 319 | 320 | void loop() { 321 | 322 | } 323 | ```` 324 | 325 | 実行結果 326 | ![sample1](img/sample2.png) 327 | 328 | 文字列に対しても、`getFontData()`関数で処理できます。 329 | UTF8文字コードは可変バイト長なのですが、`getFontData()`関数は 330 | 次の文字へのポインタを返すので簡単に逐次取得処理を実装出来ます。 331 | 332 | ちなみに、`getFontData()`関数の省略している第3引数にtrueを指定すると 333 | 半角文字は全角文字に変換してフォントデータを取得します。 334 | 335 | ## サンプルスケッチの実行結果 336 | 337 | 添付のサンプルスケッチの実行結果を示します。 338 | スケッチの処理内容については、各スケッチを直接参照下さい。 339 | 340 | ■ banner 341 | ![banner](img/banner.png) 342 | 343 | コンソール(シリアルポート)にキャラクターを使ったバナー表示をします。 344 | 半角文字は横幅4ドットで表示しています。 345 | 346 | ■ misaki_tvout(TVoutライブラリ利用) 347 | ![misaki_tvout](img/misaki_tvout.jpg) 348 | 349 | Arduino uno 3(atmega328)用のTVoutライブラリを利用してビデオ出力を行うデモです。 350 | 351 | ■ aitendo_ht16k33 352 | ![aitendo_ht16k33](img/aitendo_ht16k33.jpg) 353 | 354 | aitendoで販売しているLEDドライバHT16K33を利用したLEDドットマトリックス表示を行うデモです。 355 | 356 | ■ led_matrix_scroll 357 | ![led_matrix_scroll](img/led_matrix_scroll.jpg) 358 | 359 | Arduino Uno R4 WiFiボードに搭載しているLEDマトリックスにて文字表示を行うデモです。 360 | 361 | ## ライセンスについて 362 | 363 | 本フォントライブラリは、「美咲フォント」と同様にフリー(自由な)ソフトウエアです。 364 | あらゆる改変の有無に関わらず、また商業的な利用であっても、 365 | 自由にご利用、複製、再配布することができます。 366 | ただし、全て無保証とさせていただきます。 367 | -------------------------------------------------------------------------------- /img/aitendo_ht16k33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/aitendo_ht16k33.jpg -------------------------------------------------------------------------------- /img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/banner.png -------------------------------------------------------------------------------- /img/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/download.png -------------------------------------------------------------------------------- /img/fontFormat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/fontFormat.png -------------------------------------------------------------------------------- /img/led_matrix_scroll.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/led_matrix_scroll.jpg -------------------------------------------------------------------------------- /img/misaki_tvout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/misaki_tvout.jpg -------------------------------------------------------------------------------- /img/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/sample.png -------------------------------------------------------------------------------- /img/sample1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/sample1.png -------------------------------------------------------------------------------- /img/sample2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tamakichi/Arduino-misakiUTF16/def7b4a5fcc28f8884d901f21ae10abfe17e6217/img/sample2.png -------------------------------------------------------------------------------- /misakiUTF16/examples/aitendo_ht16k33/aitendo_ht16k33.ino: -------------------------------------------------------------------------------- 1 | // 2 | // aitendoドットマトリックスデモ by たま吉さん 2016/03/15 3 | // 2016/07/10,美咲フォントライブラリ用サンプルに特化のための修正 4 | // 5 | 6 | #include 7 | #include 8 | 9 | // アドレス 10 | #define HT_I2C_ADDRESS 0x70 11 | 12 | // コマンド 13 | #define HT_CMS_DATA 0x00 14 | #define HT_CMD_SYSSET 0x20 15 | #define HT_CMD_BLINK 0x80 16 | #define HT_CMD_BRIGHTNESS 0xE0 17 | 18 | // System Setup レジスタ設定値 19 | #define HT_SYSSET_OSC_ON 1 20 | 21 | // Display setup 設定値 22 | #define HT_BLINK_DISPLAY_ON B00000001 23 | #define HT_BLINK_OFF B00000000 24 | #define HT_BLINK_2HZ B00000010 25 | #define HT_BLINK_1HZ B00000100 26 | #define HT_BLINK_05HZ B00000110 27 | 28 | // 表示パターン用バッファ(R16xC8) 29 | uint8_t buf[8]; 30 | 31 | // HT16K33の初期化 32 | void ht_init() { 33 | Wire.begin(); 34 | ht_system_Seup(HT_I2C_ADDRESS, HT_SYSSET_OSC_ON); // システムオシレータをONにする 35 | ht_display_setup(HT_I2C_ADDRESS,HT_BLINK_OFF) ; // 点滅表示周期の設定 36 | ht_setBrightness(HT_I2C_ADDRESS,1); // 明るさの設定 37 | } 38 | 39 | // SystemSetup Registerの設定 40 | // (システムオシレータのモード設定) 41 | void ht_system_Seup(uint8_t addr, uint8_t p) { 42 | Wire.beginTransmission(addr); 43 | Wire.write(HT_CMD_SYSSET | p); 44 | Wire.endTransmission(); 45 | } 46 | 47 | // 明るさの設定 48 | void ht_setBrightness(uint8_t addr, uint8_t p) { 49 | if (p > 15) p = 15; 50 | Wire.beginTransmission(addr); 51 | Wire.write(HT_CMD_BRIGHTNESS | p); 52 | Wire.endTransmission(); 53 | } 54 | 55 | // Display setup(点滅周期の設定) 56 | void ht_display_setup(uint8_t addr, uint8_t p) { 57 | if (p > 3) p = 0; 58 | Wire.beginTransmission(addr); 59 | Wire.write(HT_CMD_BLINK | HT_BLINK_DISPLAY_ON | p); 60 | Wire.endTransmission(); 61 | } 62 | 63 | // 左右ビット入れ替え 64 | uint8_t revRL(uint8_t d) { 65 | uint8_t rc = 0; 66 | for (uint8_t i=0; i<8; i++) { 67 | rc <<=1; 68 | rc |= ( d>>i ) & 1; 69 | } 70 | return rc; 71 | } 72 | 73 | // 表示パターンの送信 74 | void ht_update(void) { 75 | uint8_t d; 76 | 77 | // HT16K33 にデータ転送 78 | Wire.beginTransmission(HT_I2C_ADDRESS); 79 | Wire.write(HT_CMS_DATA); 80 | 81 | for (uint8_t i = 0; i<8; i++) { 82 | 83 | // モジュールの設置向きに応じて回転・反転の調整 84 | d = buf[7-i]; // 上下反転 85 | d = revRL(d); // 左右反転 86 | 87 | // データの送信 88 | Wire.write(d); 89 | Wire.write(0); 90 | } 91 | Wire.endTransmission(); 92 | } 93 | 94 | // バッファのクリア 95 | void ht_clear_buffer() { 96 | for (uint8_t i = 0; i <8; i++) 97 | buf[i] = 0; 98 | } 99 | 100 | // 表示のクリア 101 | void ht_clear() { 102 | ht_clear_buffer(); 103 | ht_update(); 104 | } 105 | 106 | // バッファの指定座標のON/OFF 107 | void ht_set_dot(int8_t x, int8_t y, uint8_t d) { 108 | if ( (x > 7) || (y > 7) || (x < 0) || (y < 0) ) 109 | return; 110 | if (d) 111 | buf[y] |= 0x80 >> x; 112 | else 113 | buf[y] &= ~(0x80 >>x); 114 | } 115 | 116 | // バッファ上の指定座標に8x8パターンをセット(負座標指定可能) 117 | void ht_write_at(uint8_t* p, int8_t x, int8_t y) { 118 | int8_t i; 119 | if ((x > 7) || (y > 7) || (x < -7) || (y < -7) ) 120 | return; 121 | for (i = 0; i <8; i++) { 122 | if ((i+y >= 0) && (i+y < 8) ) { 123 | if (x >= 0) 124 | buf[i+y] |= p[i]>>x; 125 | else 126 | buf[i+y] |= p[i]<<(-x); 127 | } 128 | } 129 | } 130 | 131 | // バッファ左スクロール 132 | void scroll() { 133 | for (uint8_t i = 0; i < 8; i++) { 134 | buf[i]<<=1; // 各行を左にシフトする 135 | } 136 | } 137 | 138 | // 1文字左スクロール挿入 139 | void ht_scrollIn(uint8_t* p, int wt) { 140 | int8_t i,j; 141 | for (j = 0; j < 8; j++) { 142 | for (i = 0; i < 8; i++) { 143 | buf[i]<<=1; 144 | } 145 | ht_write_at(p, 7-j, 0); 146 | ht_update(); 147 | delay(wt); 148 | } 149 | } 150 | 151 | void setup() { 152 | Serial.begin(115200); 153 | ht_init(); 154 | ht_clear(); 155 | } 156 | 157 | // デモ4 漢字フォント利用 158 | void demo() { 159 | uint8_t fnt[8]; 160 | int8_t len; 161 | 162 | // テスト用文字列 163 | char msg_str[] = "あいうえお、今日は7月10日です。かんたんなかんじの表示ができます。"; 164 | 165 | char *str = msg_str; 166 | ht_clear(); 167 | while(*str) { 168 | if (! (str = getFontData(fnt, str)) ) { 169 | Serial.println("Error"); 170 | break; 171 | } 172 | ht_scrollIn(fnt, 150); 173 | } 174 | } 175 | 176 | void loop() { 177 | demo(); 178 | delay(1000); 179 | } 180 | -------------------------------------------------------------------------------- /misakiUTF16/examples/banner/banner.ino: -------------------------------------------------------------------------------- 1 | // 2 | // 美咲フォントライブラリサンプルプログラム by たま吉さん 3 | // 2016/03/15 作成 4 | // 2016/07/10 UTF-8文字列から直接フォントデータを取得するように修正 5 | // 2024/03/18 半角文字の4ドット幅を考慮した表示に修正 6 | // 7 | 8 | #include 9 | 10 | // 11 | // フォントパターンをコンソールに表示する 12 | // 引数 13 | // pUTF8 表示する文字列 14 | // fore ドットに使用するキャラクタ 15 | // back 空白に使用するキャラクタ 16 | // 17 | // ※半角文字は全角文字に置き換えを行う 18 | // 19 | void banner(char* pUTF8, char* fore, char* back) { 20 | byte buf[8*20]; // 160x8ドットのバナー表示パターン 21 | uint8_t font[8]; // フォントデータ 22 | uint8_t width; // フォント幅 23 | 24 | // バナー用パターン作成 25 | uint8_t n=0; 26 | while(*pUTF8) { 27 | uint16_t ucode; // utf16文字コード 28 | 29 | pUTF8 += charUFT8toUTF16(&ucode, pUTF8); // utf8 1文字分をutf16に変換 30 | width = isZenkaku(ucode) ? 8: 4; // フォント幅の取得 31 | getFontDataByUTF16(font, ucode); // フォントデータの取得 32 | 33 | // 表示用バッファにデータの格納 34 | for (uint8_t w = 0; w < width; w++) { 35 | uint8_t data = 0; 36 | for (uint8_t row=0; row<8; row++) 37 | if (font[row] & (0x80>>w)) 38 | data |= (0x80>>row); 39 | buf[n++] = data; 40 | } 41 | } 42 | 43 | // 表示用バッファの表示 44 | for (uint8_t row=0; row < 8; row++) { 45 | for(uint8_t i=0; i < n; i++) { 46 | Serial.print(buf[i] & (0x80>>row) ? fore : back); 47 | } 48 | Serial.println(); 49 | } 50 | } 51 | 52 | void setup() { 53 | Serial.begin(115200); 54 | banner("埼玉☆さいたま サイタマ!", "##", " "); 55 | banner("misakiUTF16ライブラリ","%%", " "); 56 | banner("あいうえお", "##", " "); 57 | banner("みさきフォント", "@", " "); 58 | } 59 | 60 | void loop() { 61 | } 62 | -------------------------------------------------------------------------------- /misakiUTF16/examples/led_matrix_scroll/led_matrix_scroll.ino: -------------------------------------------------------------------------------- 1 | #include "Arduino_LED_Matrix.h" 2 | #include "misakiUTF16.h" 3 | 4 | ArduinoLEDMatrix matrix; // LEDマトリックスドライバ 5 | unsigned long frame[] = {0,0,0}; // 12x8ドット フレームバッファ 6 | 7 | // フレームバッファの指定座標にドットをセット 8 | void setAt(uint8_t x, uint8_t y, uint8_t color) { 9 | if (x>=12 || y >=8) { 10 | return; 11 | } 12 | 13 | uint8_t bitno = y*12+x; // 書込み位置を96ビットの連番に変換 14 | uint8_t index = bitno / 32; // 連番からlongバイト配列位置を取得 15 | uint8_t pos = bitno % 32; // 配列内ビット位置を取得 16 | 17 | // 指定位置のビットにデータをセットする 18 | if (color) { 19 | frame[index]|=0b10000000000000000000000000000000>>pos; // ドットのセット 20 | } else { 21 | frame[index]&=~(0b10000000000000000000000000000000>>pos); // ドットのリセット 22 | } 23 | } 24 | 25 | // フレームバッファの1ドット左スクロール 26 | void scroll() { 27 | uint8_t mlb[3]; // キャリーオーバービットの退避用 28 | 29 | // longデータの左ビットシフト 30 | for (uint8_t i=0; i<3; i++) { 31 | mlb[i] = frame[i] & 0b10000000000000000000000000000000 ?1:0; // MSBのキャリーオーバービットの退避 32 | frame[i]=frame[i]<<1; // 左ビットシフト 33 | } 34 | 35 | // 0~7行の右端ビットクリアのためのマスク処理 36 | frame[0] &= 0b11111111111011111111111011111111; 37 | frame[1] &= 0b11101111111111101111111111101111; 38 | frame[2] &= 0b11111110111111111110111111111110; 39 | 40 | // キャリーオーバービットを元に戻す 41 | frame[0] = mlb[1] ? frame[0]|1:frame[0]&~1; 42 | frame[1] = mlb[2] ? frame[1]|1:frame[1]&~1; 43 | } 44 | 45 | // フレームバッファのクリア 46 | void clear() { 47 | for (uint8_t i=0; i<3; i++) { 48 | frame[i] = 0; 49 | } 50 | } 51 | 52 | // 1文字左スクロール挿入 53 | void scrollIn(uint8_t* font, uint8_t fw, uint8_t ypos, int wt) { 54 | int8_t wx,wy; 55 | 56 | // 1文字分 横幅fwドットフォントの挿入(縦位置オフセットyposを考慮) 57 | for (wx = 0; wx < fw; wx++) { 58 | scroll(); // 左に1ドットスクロール 59 | for (wy = 0; wy < 8; wy++) { 60 | setAt(11, wy+ypos, font[wy] & 0x80>>wx ? 1:0); 61 | } 62 | matrix.loadFrame(frame); 63 | delay(wt); 64 | } 65 | } 66 | 67 | // デモ4 漢字フォント利用 68 | void demo() { 69 | uint8_t font[8]; 70 | uint8_t width; // フォント幅 71 | 72 | // テスト用文字列 73 | char msg_str[] = "あいうえお123abcABCアイウエオ、今日は3月18日です。かんたんなかんじの表示ができます。"; 74 | char *str = msg_str; 75 | 76 | while(*str) { 77 | uint16_t ucode; // utf16文字コード 78 | str += charUFT8toUTF16(&ucode, str); // utf8 1文字分をutf16に変換 79 | width = isZenkaku(ucode) ? 8: 4; // フォント幅の取得 80 | getFontDataByUTF16(font, ucode); // フォントデータの取得 81 | scrollIn(font, width, 1, 80); // 1文字分のスクロール表示 82 | } 83 | } 84 | 85 | void setup() { 86 | matrix.begin(); 87 | } 88 | 89 | void loop() { 90 | demo(); 91 | } 92 | -------------------------------------------------------------------------------- /misakiUTF16/examples/misaki_tvout/misaki_tvout.ino: -------------------------------------------------------------------------------- 1 | // 2 | // TVout with 美咲フォント 3 | // 2016/07/10 たま吉さん 4 | // 2016/08/19 ライブラリの仕様変更対応 5 | // 6 | 7 | #include 8 | #include 9 | 10 | TVout TV; 11 | 12 | // 指定位置に1文字表示 13 | void mputc(uint8_t x, uint8_t y, uint16_t code) { 14 | int16_t pos; // フォントデータテーブルコード 15 | if ( (pos = findcode(code)) < 0) 16 | return; 17 | TV.bitmap(x,y, getFontTableAddress()+pos*8 ,0,8,8); 18 | } 19 | 20 | // 指定位置に文字列表示 21 | void mprint(uint8_t x, uint8_t y, char* str) { 22 | uint16_t utf16; 23 | int8_t len; 24 | 25 | while(1) { 26 | len = charUFT8toUTF16(&utf16, str); // 先頭文字のutf16コードの取得 27 | if (!len) 28 | break; // コードエラー 29 | mputc(x, y, utf16); // 1文字表示 30 | x+=8; 31 | if (x >= 120) { 32 | x = 0; y+=8; 33 | } 34 | str+=len; 35 | if (!*str) 36 | break; // 文末に達した 37 | } 38 | } 39 | 40 | void setup() { 41 | TV.begin(NTSC, 120, 96); 42 | mprint(0,0,"【みさきフォント表示テスト】"); 43 | mprint(15,14,"今日は3月16日です。"); 44 | mprint(5,30,"ねこにコ・ン・バ・ン・ワ"); 45 | mprint(0,45,"ArduinoでTV出力です。"); 46 | mprint(0,60,"TVOUTライブラリ使用です。"); 47 | mprint(0,75,"そこそこ読めますね!"); 48 | } 49 | 50 | void loop() { 51 | } 52 | -------------------------------------------------------------------------------- /misakiUTF16/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For misakiUTF16 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | ####################################### 10 | # Methods and Functions (KEYWORD2) 11 | ####################################### 12 | misakiUTF16 KEYWORD2 13 | findcode KEYWORD2 14 | getFontDataByUTF16 KEYWORD2 15 | getFontData KEYWORD2 16 | utf16_HantoZen KEYWORD2 17 | hkana2kana KEYWORD2 18 | HantoZen KEYWORD2 19 | charUFT8toUTF16 KEYWORD2 20 | Utf8ToUtf16 KEYWORD2 21 | getFontTableAddress KEYWORD2 22 | isZenkaku KEYWORD2 23 | LatenS2Zen KEYWORD2 24 | isBasicLatin KEYWORD2 25 | isLatinSupple KEYWORD2 26 | ####################################### 27 | # Constants (LITERAL1) 28 | ####################################### 29 | 30 | 31 | -------------------------------------------------------------------------------- /misakiUTF16/library.properties: -------------------------------------------------------------------------------- 1 | name=misakiUTF16 2 | version=1.2.0 3 | author=Tamakichi 4 | maintainer=Tamakichi 5 | email=tamacat2014@gmail.com 6 | sentence=Japanese font data and driver 7 | paragraph=8x8dots Misaki font driver for Arduino Uno 8 | category=Other 9 | url=https://github.com/Tamakichi/Arduino-misakiUTF16 10 | architectures=* 11 | -------------------------------------------------------------------------------- /misakiUTF16/src/misakiUTF16.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // 美咲フォントドライバ v1.1B by たま吉さん 2016/03/14 3 | // 内部フラッシュメモリバージョン 4 | // 5 | // 2016/03/16 全角小文字英数字の不具合対応 6 | // 2016/07/05 getFontData()関数の追加 7 | // 2016/07/10 getFontTableAddress()関数の追加 8 | // 2016/08/07 getFontData()に半角=>全角変換指定を追加 9 | // 2016/08/19 charUFT8toUTF16()の引数を変更 10 | // 2016/09/30 半角カナ全角変換テーブルをフラッシュメモリ配置に変更 11 | // 2016/12/15 findcode()の不具合対応(flg_stopの初期値を-1から0に訂正) 12 | // 2016/12/18 getFontDataByUTF16()で未登録フォント指定時に豆腐(□:0x25a1)を返すように修正 13 | // 2019/01/30 _hkremap[]の非AVR系対応 14 | // 2019/01/30 Utf8ToUtf16()の戻り値の型をbyteからint16_tに変更 15 | // 2019/07/16 ファイル名misakiUTF16FontData.inc misakiUTF16FontData.hに変更 16 | // 2019/07/16 1フォントを7バイトに圧縮 17 | // 2022/11/24 utf16_HantoZen()の半角スペース対応漏れの不具合対応 18 | // 2024/03/15 isBasicLatin(),isLatinSupple(),LatenS2Zen(),isZenkaku()の追加 19 | 20 | #include 21 | #ifdef __AVR__ 22 | #include 23 | #endif // __AVR__ 24 | #include "misakiUTF16.h" 25 | #include "misakiUTF16FontData.h" 26 | 27 | // 半角カナ全角変換テーブル 28 | #ifdef __AVR__ 29 | PROGMEM static const uint8_t _hkremap[] = { 30 | #else // __AVR__ 31 | static const uint8_t _hkremap[] = { 32 | #endif // __AVR__ 33 | 0x02,0x0c,0x0d,0x01,0xfb,0xf2,0xa1,0xa3, 34 | 0xa5,0xa7,0xa9,0xe3,0xe5,0xe7,0xc3,0xfc, 35 | 0xa2,0xa4,0xa6,0xa8,0xaa,0xab,0xad,0xaf, 36 | 0xb1,0xb3,0xb5,0xb7,0xb9,0xbb,0xbd,0xbf, 37 | 0xc1,0xc4,0xc6,0xc8,0xca,0xcb,0xcc,0xcd, 38 | 0xce,0xcf,0xd2,0xd5,0xd8,0xdb,0xde,0xdf, 39 | 0xe0,0xe1,0xe2,0xe4,0xe6,0xe8,0xe9,0xea, 40 | 0xeb,0xec,0xed,0xef,0xf3,0x9b,0x9c, 41 | }; 42 | 43 | // nバイト読込 44 | // rcvdata: 読込データ格納アドレス 45 | // n : 読込みデータ数 46 | // 戻り値 : 読み込んだバイト数 47 | // 48 | byte Sequential_read(unsigned long address, byte* rcvdata, byte n) { 49 | for (int i = 0; i < n ; i++) 50 | rcvdata[i] = pgm_read_byte(address + fdata + i); 51 | return n; 52 | } 53 | 54 | // フォントコード検索 55 | // (コードでROM上のテーブルを参照し、フォントコードを取得する) 56 | // ucode(in) UTF-16 コード 57 | // 戻り値 該当フォントがある場合 フォントコード(0-FTABLESIZE) 58 | // 該当フォントが無い場合 -1 59 | 60 | int findcode(uint16_t ucode) { 61 | int t_p = 0; // 検索範囲上限 62 | int e_p = FTABLESIZE-1; // 検索範囲下限 63 | int pos; 64 | uint16_t d = 0; 65 | int flg_stop = 0; 66 | 67 | while(true) { 68 | pos = t_p + ((e_p - t_p+1)>>1); 69 | d = pgm_read_word (ftable+pos); 70 | if (d == ucode) { 71 | // 等しい 72 | flg_stop = 1; 73 | break; 74 | } else if (ucode > d) { 75 | // 大きい 76 | t_p = pos + 1; 77 | if (t_p > e_p) { 78 | break; 79 | } 80 | } else { 81 | // 小さい 82 | e_p = pos -1; 83 | if (e_p < t_p) 84 | break; 85 | } 86 | } 87 | 88 | if (!flg_stop) { 89 | return -1; 90 | } 91 | return pos; 92 | } 93 | 94 | // 基本ラテン文字判定 95 | // 指定した文字コードが0x20~0x7eの場合true、そうでない場合falseを返す 96 | // 引数 ucode: UTF-16 コード 97 | boolean isBasicLatin(uint16_t ucode) { 98 | return (ucode >=0x20) && (ucode <= 0x7e); 99 | } 100 | 101 | // ラテン1補助判定 102 | // 指定した文字コードが0x20~0x7eの場合true、そうでない場合falseを返す 103 | // 引数 ucode: UTF-16 コード 104 | boolean isLatinSupple(uint16_t ucode) { 105 | return (ucode >=0xa1) && (ucode <= 0xff); 106 | } 107 | 108 | // 半角カナコード判定 109 | // 引数 ucode: UTF-16 コード 110 | boolean isHkana(uint16_t ucode) { 111 | return (ucode >=0xFF61) && (ucode <= 0xFF9F); 112 | } 113 | 114 | // 半角カナ全角変換 115 | // 引数 ucode: UTF-16 コード 116 | uint16_t hkana2kana(uint16_t ucode) { 117 | if (isHkana(ucode)) 118 | return pgm_read_byte(_hkremap + ucode - 0xFF61) + 0x3000; 119 | return ucode; 120 | } 121 | 122 | // 半角ラテン1補助全角文字変換(美咲フォント用) 123 | // 指定した半角ラテン1補助文字に対応する全角文字コードを返す 124 | // 引数 ucode: UTF-16 コード 125 | // 戻り値: 全角カタカナコード(半角ラテン1補助文字コードでない場合はそのまま返す) 126 | // 127 | // ※本関数は利用しているフォントに依存する('¢', '£', '¥', '¦', '¬', '¯') 128 | // 129 | uint16_t LatenS2Zen(uint16_t ucode) { 130 | uint16_t c = 0; 131 | switch (ucode) { 132 | case 0xa2: c = 0xffe0; break; // '¢' 133 | case 0xa3: c = 0xffe1; break; // '£' 134 | case 0xa5: c = 0xffe5; break; // '¥' 135 | case 0xa6: c = 0xffe4; break; // '¦' 136 | case 0xac: c = 0xffe2; break; // '¬' 137 | case 0xaf: c = 0xffe3; break; // '¯' 138 | default: c = ucode; break; 139 | } 140 | return c; 141 | } 142 | 143 | // 144 | // UTF16に対応する美咲フォントデータ8バイトを取得する 145 | // data(out): フォントデータ格納アドレス 146 | // utf16(in): UTF16コード 147 | // 戻り値: true 正常終了1, false 異常終了 148 | // 149 | boolean getFontDataByUTF16(byte* fontdata, uint16_t utf16) { 150 | int16_t code; 151 | boolean rc = false; 152 | 153 | if ( 0 > (code = findcode(utf16))) { 154 | // 該当するフォントが存在しない 155 | code = findcode(FONT_TOFU); // add by Tamakichi,2016/12/18 156 | rc = false; 157 | } 158 | 159 | if ( FONT_LEN == Sequential_read((code)*7, fontdata, (byte)FONT_LEN) ) { 160 | rc = true; 161 | fontdata[7]=0; // 8バイト目に0をセット 162 | } 163 | return rc; 164 | } 165 | 166 | // 167 | // UTF16半角コードをUTF16全角コードに変換する 168 | // (変換できない場合は元のコードを返す) 169 | // utf16(in): UTF16文字コード 170 | // 戻り値: 変換コード 171 | uint16_t utf16_HantoZen(uint16_t utf16) { 172 | if (utf16 == 0x20) { // 全角スペース文字 173 | return 0x3000; 174 | } else if(isBasicLatin(utf16)) { // 基本ラテン文字 175 | return utf16 - 0x20 + 0xff00; 176 | } else if (isLatinSupple(utf16)) { // ラテン1補助 177 | return LatenS2Zen(utf16); 178 | } else if(isHkana(utf16)) { // 半角カタカナ 179 | return hkana2kana(utf16); 180 | } 181 | return utf16; 182 | } 183 | 184 | /// 全角・半角判定 185 | /// 186 | /// 引数 ucode UTF-16 コード 187 | /// 戻り値: 半角幅 False、全角幅 True 188 | boolean isZenkaku(uint16_t ucode) { 189 | if (isBasicLatin(ucode)) // 基本ラテン文字 190 | return false; 191 | else if (isLatinSupple(ucode)) // ラテン1補助 192 | return (LatenS2Zen(ucode) == ucode) ? false : true; 193 | else if (isHkana(ucode)) // 半角カタカナ 194 | return false; 195 | else if (ucode < 0x20) // C0 196 | return false; 197 | else if ((ucode>=0x7f) && (ucode<=0xa0)) // C1 198 | return false; 199 | return true; // その他 200 | } 201 | 202 | // 203 | // UTF8文字(1~3バイト)をUTF16に変換する 204 | // pUTF16(out): UTF16文字列格納アドレス 205 | // pUTF8(in): UTF8文字列格納アドレス 206 | // 戻り値: 変換処理したUTF8文字バイト数 207 | 208 | byte charUFT8toUTF16(uint16_t *pUTF16, char *pUTF8) { 209 | byte bytes[3]; 210 | uint16_t unicode16; 211 | 212 | bytes[0] = *pUTF8++; 213 | if( bytes[0] < 0x80 ) { 214 | *pUTF16 = bytes[0]; 215 | return(1); 216 | } 217 | bytes[1] = *pUTF8++; 218 | if( bytes[0] >= 0xC0 && bytes[0] < 0xE0 ) { 219 | unicode16 = 0x1f&bytes[0]; 220 | *pUTF16 = (unicode16<<6)+(0x3f&bytes[1]); 221 | return(2); 222 | } 223 | 224 | bytes[2] = *pUTF8++; 225 | if( bytes[0] >= 0xE0 && bytes[0] < 0xF0 ) { 226 | unicode16 = 0x0f&bytes[0]; 227 | unicode16 = (unicode16<<6)+(0x3f&bytes[1]); 228 | *pUTF16 = (unicode16<<6)+(0x3f&bytes[2]); 229 | return(3); 230 | } else 231 | return(0); 232 | } 233 | 234 | // UTF8文字列をUTF16文字列に変換する 235 | // pUTF16(out): UFT16文字列 236 | // pUTF8(in): UTF8文字列 237 | // 戻り値: UFT16文字長さ (変換失敗時は-1を返す) 238 | // 239 | int16_t Utf8ToUtf16(uint16_t* pUTF16, char *pUTF8) { 240 | int len = 0; 241 | int n; 242 | 243 | while (*pUTF8) { 244 | n = charUFT8toUTF16(pUTF16, pUTF8); 245 | if (n == 0) 246 | return -1; 247 | 248 | pUTF8 += n; 249 | len++; 250 | pUTF16++; 251 | } 252 | return len; 253 | } 254 | 255 | // 指定したUTF8文字列の先頭のフォントデータの取得 256 | // data(out): フォントデータ格納アドレス 257 | // utf8(in) : UTF8文字列 258 | // h3z(in) : true :半角を全角に変換する false: 変換しない 259 | // 戻り値 : 次の文字列位置、取得失敗の場合NULLを返す 260 | // 261 | char* getFontData(byte* fontdata,char *pUTF8, bool h2z) { 262 | uint16_t utf16; 263 | uint8_t n; 264 | 265 | if (pUTF8 == NULL) 266 | return NULL; 267 | if (*pUTF8 == 0) 268 | return NULL; 269 | 270 | n = charUFT8toUTF16(&utf16, pUTF8); 271 | if (n == 0) 272 | return NULL; 273 | if (h2z) { 274 | utf16 = utf16_HantoZen(utf16); 275 | } 276 | if (false == getFontDataByUTF16(fontdata, utf16) ) 277 | return NULL; 278 | return (pUTF8+n); 279 | } 280 | 281 | // フォントデータテーブル先頭アドレス取得 282 | // 戻り値 フォントデータテーブル先頭アドレス(PROGMEM上) 283 | const uint8_t* getFontTableAddress() { 284 | return fdata; 285 | } 286 | -------------------------------------------------------------------------------- /misakiUTF16/src/misakiUTF16.h: -------------------------------------------------------------------------------- 1 | // 2 | // misakiUTF16.h 美咲フォントドライバ ヘッダーファイル v1.1B by たま吉さん 2016/03/15 3 | // 内部フラッシュメモリバージョン 4 | // 5 | // 2016/03/16 全角小文字英数字の不具合対応 6 | // 2016/07/05 getFontData()関数の追加 7 | // 2016/07/10 getFontTableAddress()関数の追加, fdata[],ftable[]の公開禁止 8 | // 2016/08/07 getFontData()に半角=>全角変換指定を追加 9 | // 2016/08/19 charUFT8toUTF16()の引数を変更 10 | // 2019/01/30 Utf8ToUtf16()の戻り値の型をbyteからint16_tに変更 11 | // 2019/07/16 FTABLESIZEを実配列から算出に変更 12 | // 2024/03/15 isBasicLatin(),isLatinSupple(),LatenS2Zen(),isZenkaku()の追加 13 | // 14 | 15 | #ifndef misakiUTF16_h 16 | #define misakiUTF16_h 17 | 18 | #include 19 | 20 | #define FTABLESIZE (sizeof ftable / sizeof ftable[0]) // フォントテーブルデータサイズ 21 | #define FONT_LEN 7 // 1フォントのバイト数 22 | #define FONT_TOFU 0x25a1 // 豆腐"□"コード 23 | 24 | int findcode(uint16_t ucode) ; // フォントコード検索 25 | boolean getFontDataByUTF16(byte* fontdata, uint16_t utf16) ; // UTF16に対応する美咲フォントデータ8バイトを取得 26 | uint16_t hkana2kana(uint16_t utf16); // 半角カナを全角に変換 27 | uint16_t utf16_HantoZen(uint16_t utf16); // UTF16半角コードをUTF16全角コードに変換 28 | byte charUFT8toUTF16(uint16_t *pUTF16, char *pUTF8); // UTF8文字(1~3バイ)をUTF16に変換 29 | int16_t Utf8ToUtf16(uint16_t* pUTF16, char *pUTF8); // UTF8文字列をUTF16文字列に変換 30 | 31 | char* getFontData(byte* fontdata,char *pUTF8,bool h2z=false); // フォントデータ取得 32 | const uint8_t* getFontTableAddress(); // フォントデータテーブル先頭アドレス取得 33 | 34 | boolean isBasicLatin(uint16_t ucode); // 基本ラテン文字判定 35 | boolean isLatinSupple(uint16_t ucode); // ラテン1補助判定 36 | uint16_t LatenS2Zen(uint16_t ucode); // 半角ラテン1補助全角文字変換 37 | boolean isZenkaku(uint16_t ucode); // 全角・半角判定 38 | #endif 39 | -------------------------------------------------------------------------------- /misakiUTF16/src/misakiUTF16FontData.h: -------------------------------------------------------------------------------- 1 | // 2 | // 美咲フォント 教育フォント1710字(半角+全角) by たま吉さん 3 | // 2016/03/16 全角小文字英数字の不具合対応 4 | // 2016/07/10 fdata[]を競合しないよう、static宣言追加 5 | // 2019/01/30 fdata[]ftable[]の非AVR系対応 6 | // 2019/07/16 1フォントを7バイトに圧縮 7 | // 2024/02/22 フォントを美咲ゴシック第2に変更(半角文字の見栄え改善) 8 | // 9 | 10 | #ifndef misakiUTF16FontData_h 11 | #define misakiUTF16FontData_h 12 | 13 | #ifdef __AVR__ 14 | PROGMEM static const uint8_t fdata[] = { 15 | #else // __AVR__ 16 | static const uint8_t fdata[] = { 17 | #endif // __AVR__ 18 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x00,0x40, 19 | 0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0xa0,0xe0,0xa0,0xa0,0xa0,0xe0,0xa0, 20 | 0x40,0xe0,0x80,0xe0,0x20,0xe0,0x40,0x00,0x80,0x20,0x40,0x80,0x20,0x00, 21 | 0x40,0xa0,0xa0,0x40,0xa0,0x80,0x60,0x40,0x40,0x00,0x00,0x00,0x00,0x00, 22 | 0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x80,0x40,0x40,0x40,0x40,0x40,0x80, 23 | 0x00,0xa0,0x40,0xe0,0x40,0xa0,0x00,0x00,0x40,0x40,0xe0,0x40,0x40,0x00, 24 | 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0xe0,0x00,0x00,0x00, 25 | 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x20,0x40,0x80,0x00,0x00, 26 | 0x40,0xa0,0xa0,0xe0,0xa0,0xa0,0x40,0x40,0xc0,0x40,0x40,0x40,0x40,0xe0, 27 | 0x40,0xa0,0x20,0x40,0x40,0x80,0xe0,0x40,0xa0,0x20,0x40,0x20,0xa0,0x40, 28 | 0x20,0x60,0xa0,0xa0,0xe0,0x20,0x20,0xe0,0x80,0xc0,0xa0,0x20,0xa0,0x40, 29 | 0x40,0xa0,0x80,0xc0,0xa0,0xa0,0x40,0xe0,0xa0,0x20,0x40,0x40,0x40,0x40, 30 | 0x40,0xa0,0xa0,0x40,0xa0,0xa0,0x40,0x40,0xa0,0xa0,0x60,0x20,0xa0,0x40, 31 | 0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x80, 32 | 0x00,0x20,0x40,0x80,0x40,0x20,0x00,0x00,0x00,0xe0,0x00,0xe0,0x00,0x00, 33 | 0x00,0x80,0x40,0x20,0x40,0x80,0x00,0x40,0xa0,0x20,0x40,0x40,0x00,0x40, 34 | 0x40,0xa0,0xe0,0xa0,0xc0,0x80,0x60,0x40,0xa0,0xa0,0xa0,0xe0,0xa0,0xa0, 35 | 0xc0,0xa0,0xa0,0xc0,0xa0,0xa0,0xc0,0x40,0xa0,0x80,0x80,0x80,0xa0,0x40, 36 | 0xc0,0xa0,0xa0,0xa0,0xa0,0xa0,0xc0,0xe0,0x80,0x80,0xc0,0x80,0x80,0xe0, 37 | 0xe0,0x80,0x80,0xc0,0x80,0x80,0x80,0x40,0xa0,0x80,0xa0,0xa0,0xa0,0x60, 38 | 0xa0,0xa0,0xa0,0xe0,0xa0,0xa0,0xa0,0xe0,0x40,0x40,0x40,0x40,0x40,0xe0, 39 | 0x20,0x20,0x20,0x20,0x20,0xa0,0x40,0xa0,0xa0,0xc0,0xc0,0xa0,0xa0,0xa0, 40 | 0x80,0x80,0x80,0x80,0x80,0x80,0xe0,0xa0,0xe0,0xe0,0xe0,0xa0,0xa0,0xa0, 41 | 0xc0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0x40,0xa0,0xa0,0xa0,0xa0,0xa0,0x40, 42 | 0xc0,0xa0,0xa0,0xc0,0x80,0x80,0x80,0x40,0xa0,0xa0,0xa0,0xe0,0xa0,0x60, 43 | 0xc0,0xa0,0xa0,0xc0,0xa0,0xa0,0xa0,0x40,0xa0,0x80,0x40,0x20,0xa0,0x40, 44 | 0xe0,0x40,0x40,0x40,0x40,0x40,0x40,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xe0, 45 | 0xa0,0xa0,0xa0,0xa0,0xa0,0x40,0x40,0xa0,0xa0,0xa0,0xe0,0xe0,0xe0,0xa0, 46 | 0xa0,0xa0,0x40,0x40,0x40,0xa0,0xa0,0xa0,0xa0,0xa0,0x40,0x40,0x40,0x40, 47 | 0xe0,0x20,0x40,0x40,0x40,0x80,0xe0,0x60,0x40,0x40,0x40,0x40,0x40,0x60, 48 | 0x00,0x00,0x80,0x40,0x20,0x00,0x00,0xc0,0x40,0x40,0x40,0x40,0x40,0xc0, 49 | 0x40,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0, 50 | 0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x20,0x60,0xa0,0x60, 51 | 0x80,0x80,0xc0,0xa0,0xa0,0xa0,0xc0,0x00,0x00,0x60,0x80,0x80,0x80,0x60, 52 | 0x20,0x20,0x60,0xa0,0xa0,0xa0,0x60,0x00,0x00,0x40,0xa0,0xe0,0x80,0x60, 53 | 0x60,0x40,0xe0,0x40,0x40,0x40,0x40,0x00,0x00,0x60,0xa0,0x60,0x20,0xc0, 54 | 0x80,0x80,0xc0,0xa0,0xa0,0xa0,0xa0,0x40,0x00,0x40,0x40,0x40,0x40,0x40, 55 | 0x20,0x00,0x20,0x20,0x20,0xa0,0x40,0x80,0x80,0xa0,0xa0,0xc0,0xa0,0xa0, 56 | 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0xc0,0xe0,0xe0,0xe0,0xa0, 57 | 0x00,0x00,0xc0,0xa0,0xa0,0xa0,0xa0,0x00,0x00,0x40,0xa0,0xa0,0xa0,0x40, 58 | 0x00,0x00,0xc0,0xa0,0xa0,0xc0,0x80,0x00,0x00,0x60,0xa0,0xa0,0x60,0x20, 59 | 0x00,0x00,0xa0,0xc0,0x80,0x80,0x80,0x00,0x00,0x60,0x80,0x40,0x20,0xc0, 60 | 0x00,0x40,0xe0,0x40,0x40,0x40,0x60,0x00,0x00,0xa0,0xa0,0xa0,0xa0,0xe0, 61 | 0x00,0x00,0xa0,0xa0,0xa0,0x40,0x40,0x00,0x00,0xa0,0xa0,0xe0,0xe0,0xa0, 62 | 0x00,0x00,0xa0,0xa0,0x40,0xa0,0xa0,0x00,0x00,0xa0,0xa0,0x60,0x20,0xc0, 63 | 0x00,0x00,0xe0,0x20,0x40,0x80,0xe0,0x20,0x40,0x40,0x80,0x40,0x40,0x20, 64 | 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x20,0x40,0x40,0x80, 65 | 0x40,0x40,0xe0,0x80,0xe0,0x40,0x40,0x60,0x40,0xe0,0x40,0x40,0x80,0xe0, 66 | 0xa0,0x40,0xe0,0x40,0xe0,0x40,0x40,0x1c,0x20,0x18,0x24,0x18,0x04,0x38, 67 | 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x20,0x00,0x00, 68 | 0x60,0x90,0x90,0x60,0x00,0x00,0x00,0x10,0x10,0xfe,0x10,0x10,0x00,0xfe, 69 | 0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x3c,0x74,0x74,0x34,0x14,0x14,0x14, 70 | 0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x00,0x10,0x00,0xfe,0x00,0x10,0x00, 71 | 0x10,0x28,0x28,0x44,0x7c,0x82,0x82,0x7c,0x42,0x42,0x7c,0x42,0x42,0x7c, 72 | 0x7e,0x40,0x40,0x40,0x40,0x40,0x40,0x10,0x28,0x28,0x44,0x44,0x82,0xfe, 73 | 0x7e,0x40,0x40,0x7c,0x40,0x40,0x7e,0x7e,0x02,0x04,0x08,0x10,0x20,0x7e, 74 | 0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x38,0x44,0x82,0xba,0x82,0x44,0x38, 75 | 0x38,0x10,0x10,0x10,0x10,0x10,0x38,0x42,0x44,0x48,0x50,0x68,0x44,0x42, 76 | 0x10,0x28,0x28,0x44,0x44,0x82,0x82,0x82,0xc6,0xaa,0xaa,0x92,0x92,0x82, 77 | 0x42,0x62,0x52,0x4a,0x46,0x42,0x42,0x7e,0x00,0x00,0x3c,0x00,0x00,0x7e, 78 | 0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x7e,0x42,0x42,0x42,0x42,0x42,0x42, 79 | 0x7c,0x42,0x42,0x7c,0x40,0x40,0x40,0x7e,0x20,0x10,0x08,0x10,0x20,0x7e, 80 | 0xfe,0x10,0x10,0x10,0x10,0x10,0x10,0x82,0x44,0x28,0x10,0x10,0x10,0x10, 81 | 0x10,0x7c,0x92,0x92,0x92,0x7c,0x10,0x82,0x44,0x28,0x10,0x28,0x44,0x82, 82 | 0x92,0x54,0x54,0x38,0x10,0x10,0x10,0x38,0x44,0x82,0x82,0x44,0x28,0xee, 83 | 0x00,0x00,0x1a,0x24,0x48,0x4a,0x34,0x0c,0x12,0x2c,0x22,0x32,0x4c,0x40, 84 | 0x00,0x00,0x64,0x18,0x10,0x30,0x20,0x18,0x24,0x10,0x28,0x48,0x48,0x30, 85 | 0x00,0x00,0x18,0x24,0x30,0x44,0x38,0x2c,0x10,0x20,0x20,0x18,0x04,0x18, 86 | 0x00,0x00,0x2c,0x52,0x12,0x24,0x04,0x18,0x24,0x24,0x7c,0x48,0x48,0x30, 87 | 0x00,0x00,0x10,0x10,0x20,0x28,0x10,0x00,0x00,0x24,0x28,0x30,0x50,0x4c, 88 | 0x10,0x08,0x08,0x18,0x28,0x28,0x44,0x00,0x00,0x12,0x12,0x24,0x3a,0x40, 89 | 0x00,0x00,0x44,0x24,0x28,0x30,0x20,0x1c,0x20,0x3c,0x40,0x38,0x04,0x18, 90 | 0x00,0x00,0x18,0x24,0x44,0x48,0x30,0x00,0x00,0x3e,0x54,0x14,0x24,0x46, 91 | 0x00,0x00,0x1c,0x22,0x22,0x5c,0x40,0x00,0x00,0x1e,0x24,0x44,0x48,0x30, 92 | 0x00,0x00,0x3e,0x48,0x10,0x14,0x08,0x00,0x00,0x32,0x52,0x22,0x24,0x18, 93 | 0x04,0x04,0x3c,0x4a,0x4a,0x3c,0x10,0x00,0x00,0x34,0x08,0x10,0x30,0x4c, 94 | 0x04,0x04,0x68,0x2a,0x4a,0x3c,0x10,0x00,0x00,0x22,0x4a,0x4a,0x5a,0x24, 95 | 0x24,0x7e,0x40,0x7c,0x40,0x40,0x7e,0x10,0x28,0x28,0x44,0x7c,0x82,0x82, 96 | 0x7e,0x40,0x40,0x7c,0x42,0x42,0x7c,0x7c,0x42,0x42,0x7c,0x42,0x42,0x7c, 97 | 0x7e,0x40,0x40,0x40,0x40,0x40,0x40,0x3c,0x24,0x24,0x24,0x44,0xfe,0x82, 98 | 0x7e,0x40,0x40,0x7c,0x40,0x40,0x7e,0x92,0x54,0x54,0x38,0x54,0x54,0x92, 99 | 0x3c,0x42,0x02,0x1c,0x02,0x42,0x3c,0x42,0x42,0x46,0x4a,0x52,0x62,0x42, 100 | 0x24,0x5a,0x46,0x4a,0x52,0x62,0x42,0x46,0x48,0x48,0x70,0x48,0x44,0x42, 101 | 0x3e,0x22,0x22,0x22,0x22,0x22,0xc2,0x44,0x44,0x44,0xaa,0xaa,0x92,0x92, 102 | 0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c, 103 | 0x7e,0x42,0x42,0x42,0x42,0x42,0x42,0x7c,0x42,0x42,0x7c,0x40,0x40,0x40, 104 | 0x3c,0x42,0x40,0x40,0x40,0x42,0x3c,0xfe,0x10,0x10,0x10,0x10,0x10,0x10, 105 | 0x42,0x24,0x24,0x18,0x08,0x10,0x60,0x10,0x7c,0x92,0x92,0x92,0x7c,0x10, 106 | 0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x44,0x44,0x44,0x44,0x44,0x7e,0x02, 107 | 0x42,0x42,0x42,0x42,0x3e,0x02,0x02,0x92,0x92,0x92,0x92,0x92,0x92,0xfe, 108 | 0x92,0x92,0x92,0x92,0x92,0xfe,0x02,0x60,0x20,0x20,0x3c,0x22,0x22,0x3c, 109 | 0x42,0x42,0x42,0x72,0x4a,0x4a,0x72,0x20,0x20,0x20,0x3c,0x22,0x22,0x3c, 110 | 0x3c,0x42,0x02,0x3e,0x02,0x42,0x3c,0x9c,0xa2,0xa2,0xe2,0xa2,0xa2,0x9c, 111 | 0x3e,0x42,0x42,0x3e,0x22,0x22,0x42,0x00,0x00,0x38,0x04,0x3c,0x44,0x3c, 112 | 0x1c,0x20,0x78,0x44,0x44,0x44,0x38,0x00,0x00,0x78,0x44,0x78,0x44,0x78, 113 | 0x00,0x00,0x7c,0x40,0x40,0x40,0x40,0x00,0x00,0x38,0x28,0x28,0x7c,0x44, 114 | 0x00,0x00,0x38,0x44,0x7c,0x40,0x38,0x00,0x00,0x92,0x54,0x38,0x54,0x92, 115 | 0x00,0x00,0x38,0x44,0x18,0x44,0x38,0x00,0x00,0x44,0x4c,0x54,0x64,0x44, 116 | 0x28,0x10,0x44,0x4c,0x54,0x64,0x44,0x00,0x00,0x4c,0x50,0x70,0x48,0x44, 117 | 0x00,0x00,0x3c,0x24,0x24,0x24,0xc4,0x00,0x00,0x44,0x6c,0x54,0x54,0x44, 118 | 0x00,0x00,0x44,0x44,0x7c,0x44,0x44,0x00,0x00,0x38,0x44,0x44,0x44,0x38, 119 | 0x00,0x00,0x7c,0x44,0x44,0x44,0x44,0x00,0x00,0x78,0x44,0x44,0x78,0x40, 120 | 0x00,0x00,0x38,0x44,0x40,0x44,0x38,0x00,0x00,0x7c,0x10,0x10,0x10,0x10, 121 | 0x00,0x00,0x44,0x28,0x28,0x10,0x60,0x10,0x10,0x38,0x54,0x54,0x38,0x10, 122 | 0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00,0x00,0x48,0x48,0x48,0x7c,0x04, 123 | 0x00,0x00,0x44,0x44,0x44,0x3c,0x04,0x00,0x00,0x54,0x54,0x54,0x54,0x7c, 124 | 0x00,0x00,0x54,0x54,0x54,0x7e,0x02,0x00,0x00,0x60,0x20,0x3c,0x22,0x3c, 125 | 0x00,0x00,0x44,0x44,0x74,0x4c,0x74,0x00,0x00,0x40,0x40,0x78,0x44,0x78, 126 | 0x00,0x00,0x38,0x44,0x1c,0x44,0x38,0x00,0x00,0x4c,0x52,0x72,0x52,0x4c, 127 | 0x00,0x00,0x3c,0x44,0x3c,0x24,0x44,0x28,0x00,0x38,0x44,0x7c,0x40,0x38, 128 | 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00, 129 | 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x04,0x08,0x0c,0x00,0x00,0x00,0x00, 130 | 0x60,0x20,0x40,0x00,0x00,0x00,0x00,0x24,0x48,0x6c,0x00,0x00,0x00,0x00, 131 | 0x6c,0x24,0x48,0x00,0x00,0x00,0x00,0x10,0x38,0x10,0x10,0x10,0x10,0x10, 132 | 0x10,0x38,0x10,0x10,0x10,0x38,0x10,0x00,0x00,0x00,0x44,0x00,0x00,0x00, 133 | 0x00,0x00,0x00,0x92,0x00,0x00,0x00,0x20,0x20,0x40,0x00,0x00,0x00,0x00, 134 | 0x28,0x28,0x50,0x00,0x00,0x00,0x00,0x92,0x44,0x28,0x92,0x28,0x44,0x92, 135 | 0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xac,0x52,0x10,0x10,0x12,0x0c, 136 | 0x90,0x90,0xd4,0xba,0x9a,0x9a,0x94,0xe2,0x42,0x4a,0x56,0x5a,0x52,0x4a, 137 | 0x10,0x28,0x10,0x28,0x44,0x7c,0x82,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 138 | 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x54,0x54,0x54,0x54,0x54,0x54,0x54, 139 | 0xa2,0xa2,0x94,0x94,0x94,0x88,0x88,0x44,0x44,0x28,0x28,0x28,0x10,0x10, 140 | 0x8a,0x8a,0x52,0x52,0x52,0x22,0x22,0xaa,0xaa,0xaa,0xaa,0xaa,0x4a,0x4a, 141 | 0xba,0xba,0xba,0xba,0x5a,0x5a,0x5a,0xa2,0x94,0x94,0x88,0x94,0x94,0xa2, 142 | 0x44,0x28,0x28,0x10,0x28,0x28,0x44,0x00,0x20,0x40,0xfe,0x40,0x20,0x00, 143 | 0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x00,0x08,0x04,0xfe,0x04,0x08,0x00, 144 | 0x10,0x10,0x10,0x10,0x54,0x38,0x10,0x00,0x08,0xfc,0x02,0xfc,0x08,0x00, 145 | 0x00,0x28,0x7c,0x82,0x7c,0x28,0x00,0x82,0x82,0x7c,0x44,0x28,0x28,0x10, 146 | 0x18,0x24,0x04,0x34,0x48,0x48,0x30,0x7e,0x02,0x02,0x7e,0x02,0x02,0x7e, 147 | 0xfe,0x82,0x44,0x44,0x28,0x28,0x10,0x00,0x3e,0x40,0x7e,0x40,0x3e,0x00, 148 | 0x00,0x7c,0x02,0x7e,0x02,0x7c,0x00,0x7e,0x20,0x10,0x08,0x10,0x20,0x7e, 149 | 0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x1e,0x10,0x20,0x20,0xe0,0x40,0x40, 150 | 0x00,0x6c,0x92,0x90,0x92,0x6c,0x00,0x00,0x6c,0x92,0x92,0x92,0x6c,0x00, 151 | 0x00,0x40,0x40,0x40,0x40,0x40,0x7e,0x00,0x02,0x04,0x08,0x10,0x20,0x7e, 152 | 0x10,0x10,0x28,0x28,0x44,0x44,0x82,0x82,0x44,0x44,0x28,0x28,0x10,0x10, 153 | 0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00, 154 | 0x18,0x20,0x20,0x10,0x08,0x08,0x30,0x36,0x48,0x48,0x24,0x12,0x12,0x6c, 155 | 0x18,0x20,0x38,0x54,0x38,0x08,0x30,0x00,0x10,0x00,0x00,0x00,0x44,0x00, 156 | 0x00,0x44,0x00,0x00,0x00,0x10,0x00,0x00,0x4c,0x92,0x92,0x92,0x64,0x00, 157 | 0x40,0x00,0xfe,0x00,0xfe,0x00,0x04,0x00,0x04,0xfe,0x10,0xfe,0x40,0x00, 158 | 0x00,0x7e,0x00,0x7e,0x00,0x7e,0x00,0x06,0x38,0xc0,0x38,0x06,0x00,0xfe, 159 | 0xc0,0x38,0x06,0x38,0xc0,0x00,0xfe,0x00,0x24,0x48,0x90,0x48,0x24,0x00, 160 | 0x00,0x48,0x24,0x12,0x24,0x48,0x00,0x00,0x3e,0x40,0x40,0x40,0x3e,0x00, 161 | 0x00,0x7c,0x02,0x02,0x02,0x7c,0x00,0x3e,0x40,0x40,0x40,0x3e,0x00,0x7e, 162 | 0x7c,0x02,0x02,0x02,0x7c,0x00,0x7e,0x00,0x10,0x10,0x10,0x10,0x10,0xfe, 163 | 0x00,0x10,0x10,0x10,0x10,0x10,0xfe,0x00,0x02,0x06,0x0a,0x12,0x22,0x7e, 164 | 0x7c,0x82,0x00,0x00,0x00,0x00,0x00,0x7c,0x92,0xb2,0x92,0x92,0x92,0x7c, 165 | 0x7c,0xb2,0x8a,0x92,0xa2,0xba,0x7c,0x7c,0xb2,0x8a,0x92,0x8a,0xb2,0x7c, 166 | 0x7c,0x8a,0x9a,0xaa,0xba,0x8a,0x7c,0x7c,0xba,0xa2,0xb2,0x8a,0xb2,0x7c, 167 | 0x7c,0x9a,0xa2,0xb2,0xaa,0x92,0x7c,0x7c,0xba,0x8a,0x92,0x92,0x92,0x7c, 168 | 0x7c,0x92,0xaa,0x92,0xaa,0x92,0x7c,0x7c,0x92,0xaa,0x9a,0x8a,0xb2,0x7c, 169 | 0x7c,0xa2,0xee,0xaa,0xae,0xa2,0x7c,0x7c,0xa6,0xee,0xa6,0xa6,0xa6,0x7c, 170 | 0x7c,0xaa,0xe6,0xae,0xaa,0xae,0x7c,0x7c,0xaa,0xe6,0xaa,0xa6,0xaa,0x7c, 171 | 0x7c,0xaa,0xea,0xae,0xae,0xa6,0x7c,0x7c,0xae,0xea,0xae,0xa6,0xaa,0x7c, 172 | 0x7c,0xa6,0xea,0xae,0xae,0xae,0x7c,0x7c,0xae,0xe6,0xaa,0xaa,0xaa,0x7c, 173 | 0x7c,0xae,0xee,0xa2,0xae,0xae,0x7c,0x7c,0xae,0xee,0xae,0xa6,0xaa,0x7c, 174 | 0x7c,0xe2,0xae,0xea,0xce,0xe2,0x7c,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, 175 | 0xfe,0x82,0x82,0x82,0x82,0x82,0xfe,0x10,0x10,0x38,0x38,0x7c,0x7c,0xfe, 176 | 0x10,0x10,0x28,0x28,0x44,0x44,0xfe,0xfe,0x7c,0x7c,0x38,0x38,0x10,0x10, 177 | 0xfe,0x44,0x44,0x28,0x28,0x10,0x10,0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10, 178 | 0x10,0x28,0x44,0x82,0x44,0x28,0x10,0x38,0x44,0x82,0x82,0x82,0x44,0x38, 179 | 0x38,0x44,0xba,0xaa,0xba,0x44,0x38,0x38,0x7c,0xfe,0xfe,0xfe,0x7c,0x38, 180 | 0x7c,0x82,0x82,0x82,0x82,0x82,0x7c,0x10,0x10,0xfe,0x7c,0x38,0x7c,0x44, 181 | 0x10,0x10,0xee,0x44,0x28,0x7c,0x44,0x38,0x44,0x44,0x38,0x10,0x7c,0x10, 182 | 0x1e,0x06,0x0a,0x72,0x90,0x90,0x60,0x10,0x1c,0x16,0x12,0x14,0x70,0x60, 183 | 0x20,0x20,0x28,0x34,0x24,0x28,0x30,0x04,0x26,0x3c,0x66,0x3c,0x64,0x20, 184 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40, 185 | 0x00,0x00,0x00,0x00,0x40,0xa0,0x40,0x00,0x00,0x24,0x24,0x24,0x48,0x00, 186 | 0x00,0x20,0x3c,0x44,0xa8,0x10,0x08,0x02,0x04,0x68,0x90,0xa8,0xc4,0x80, 187 | 0x00,0x38,0x44,0x82,0x82,0x44,0x38,0x04,0x08,0x10,0x20,0x10,0x08,0x04, 188 | 0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x0a,0x14,0x28,0x50,0x28,0x14,0x0a, 189 | 0xa0,0x50,0x28,0x14,0x28,0x50,0xa0,0x1e,0x10,0x10,0x10,0x10,0x10,0x00, 190 | 0x00,0x10,0x10,0x10,0x10,0x10,0xf0,0x3e,0x22,0x2e,0x28,0x28,0x38,0x00, 191 | 0x00,0x38,0x28,0x28,0xe8,0x88,0xf8,0x1c,0x18,0x10,0x10,0x10,0x18,0x1c, 192 | 0x70,0x30,0x10,0x10,0x10,0x30,0x70,0xfe,0x00,0xfe,0x10,0x10,0x10,0x10, 193 | 0x00,0xfe,0xfe,0x00,0xfe,0xfe,0x00,0x0c,0x30,0x20,0x20,0x20,0x30,0x0c, 194 | 0x60,0x18,0x08,0x08,0x08,0x18,0x60,0x00,0x00,0x60,0x92,0x0c,0x00,0x00, 195 | 0x14,0x14,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x50,0x50, 196 | 0x00,0x20,0x78,0x20,0x78,0xac,0x74,0x20,0x7c,0x20,0x7c,0xaa,0xb2,0x64, 197 | 0x00,0x00,0x88,0x84,0x84,0xa0,0x40,0x00,0x84,0x82,0x82,0x82,0xa0,0x40, 198 | 0x00,0x78,0x00,0x78,0x84,0x08,0x30,0x7c,0x00,0x7c,0x82,0x02,0x0c,0x30, 199 | 0x00,0x78,0x00,0xf8,0x20,0x70,0x9c,0x7c,0x00,0xfc,0x10,0x38,0x48,0x8e, 200 | 0x00,0x20,0xf4,0x20,0x78,0xa4,0x68,0x20,0xf6,0x20,0x3c,0x62,0xa2,0x6c, 201 | 0x20,0xf4,0x2a,0x4a,0x48,0x88,0xb0,0x2a,0xf0,0x2a,0x4a,0x48,0x88,0xb0, 202 | 0x10,0x7c,0x08,0xfe,0x24,0x40,0x3c,0x14,0x7c,0x08,0xfe,0x24,0x40,0x3c, 203 | 0x04,0x18,0x60,0x80,0x60,0x18,0x04,0x04,0x18,0x6a,0x80,0x60,0x18,0x04, 204 | 0x88,0xbe,0x88,0x88,0x88,0x88,0x10,0x8a,0xbe,0x88,0x88,0x88,0x88,0x10, 205 | 0x00,0x7c,0x00,0x00,0x40,0x80,0x7e,0x0a,0x7c,0x00,0x00,0x40,0x80,0x7e, 206 | 0x08,0xfe,0x08,0x74,0x8c,0x40,0x38,0x0a,0xfe,0x08,0x74,0x8c,0x40,0x38, 207 | 0x40,0x40,0x40,0x40,0x42,0x44,0x38,0x54,0x40,0x40,0x40,0x42,0x44,0x38, 208 | 0x08,0xfe,0x28,0x48,0x38,0x08,0x30,0x0a,0xfe,0x28,0x48,0x38,0x08,0x30, 209 | 0x44,0x44,0xfe,0x44,0x4c,0x40,0x3c,0x4a,0x44,0xfe,0x44,0x4c,0x40,0x3c, 210 | 0x7c,0x10,0x20,0xfe,0x10,0x20,0x1c,0x7a,0x10,0x20,0xfe,0x10,0x20,0x1c, 211 | 0x20,0xf0,0x2e,0x40,0x48,0x90,0x8e,0x2a,0xf0,0x2e,0x40,0x48,0x90,0x8e, 212 | 0x20,0xfe,0x20,0x5c,0x62,0x04,0x38,0x2a,0xfe,0x20,0x5c,0x62,0x04,0x38, 213 | 0x00,0x00,0x38,0xc4,0x04,0x08,0x30,0x00,0x3c,0xc2,0x02,0x02,0x04,0x38, 214 | 0x0a,0x3c,0xc2,0x02,0x02,0x04,0x38,0x00,0xfe,0x10,0x20,0x20,0x20,0x1c, 215 | 0x00,0xfe,0x10,0x2a,0x20,0x20,0x1c,0x20,0x20,0x2c,0x30,0x40,0x80,0x7e, 216 | 0x2a,0x20,0x2c,0x30,0x40,0x80,0x7e,0x20,0xf6,0x24,0x44,0x9c,0xa6,0x1c, 217 | 0x80,0x9c,0x80,0x80,0x90,0xa0,0x9e,0x48,0x5c,0x6a,0xaa,0xb6,0xaa,0x46, 218 | 0x20,0xec,0x32,0x22,0x66,0xaa,0x26,0x00,0x7c,0x92,0x92,0xa2,0xc2,0x1c, 219 | 0x88,0xbe,0x88,0x88,0xb8,0xcc,0xba,0x8a,0xbe,0x88,0x88,0xb8,0xcc,0xba, 220 | 0x8c,0xba,0x8c,0x88,0xb8,0xcc,0xba,0xe8,0x24,0x46,0x44,0x44,0x44,0x38, 221 | 0xea,0x24,0x46,0x44,0x44,0x44,0x38,0xe4,0x2a,0x46,0x44,0x44,0x44,0x38, 222 | 0x30,0x08,0x10,0x10,0x4c,0x4a,0xb2,0x30,0x0a,0x10,0x10,0x4c,0x4a,0xb2, 223 | 0x34,0x0a,0x14,0x10,0x4c,0x4a,0xb2,0x00,0x20,0x50,0x48,0x84,0x02,0x00, 224 | 0x0a,0x20,0x50,0x48,0x84,0x02,0x00,0x04,0x2a,0x54,0x48,0x84,0x02,0x00, 225 | 0xbe,0x88,0xbe,0x88,0xb8,0xcc,0xba,0xba,0x88,0xbe,0x88,0xb8,0xcc,0xba, 226 | 0xb4,0x8a,0xbc,0x88,0xb8,0xcc,0xba,0x10,0xfe,0x10,0xfe,0x50,0x98,0x76, 227 | 0x70,0x10,0x24,0x7e,0xa4,0xa4,0x48,0x20,0xf6,0x20,0x60,0xa2,0xe2,0x3c, 228 | 0x48,0x5c,0x6a,0xaa,0xb2,0xa2,0x4c,0x10,0xfc,0x20,0xfc,0x22,0x22,0x1c, 229 | 0x00,0x50,0x58,0xe4,0x28,0x20,0x10,0x48,0x5c,0xea,0x22,0x24,0x10,0x10, 230 | 0x00,0x20,0xb8,0xd4,0x94,0xb8,0x20,0x10,0xbc,0xca,0x8a,0xaa,0x9c,0x20, 231 | 0x00,0x10,0x18,0x10,0x70,0x98,0x64,0x10,0x1c,0x10,0x10,0x78,0x94,0x62, 232 | 0x70,0x08,0x40,0xbc,0xc2,0x04,0x38,0x58,0x64,0x44,0x44,0x04,0x08,0x30, 233 | 0x7c,0x10,0x3c,0x42,0xb2,0x4a,0x3c,0x20,0xec,0x34,0x24,0x64,0xa4,0x26, 234 | 0x7c,0x10,0x20,0x7c,0x82,0x02,0x3c,0x00,0x40,0xd8,0x64,0x44,0xc4,0x58, 235 | 0x20,0xec,0x32,0x22,0x62,0xa2,0x2c,0x70,0x10,0x3c,0x52,0x96,0xaa,0x46, 236 | 0x7c,0x10,0x38,0x44,0x18,0x6c,0x92,0x10,0xfc,0x20,0x76,0x98,0x28,0x3e, 237 | 0x10,0x10,0x20,0x30,0x4a,0x4a,0x84,0xa0,0x50,0x00,0x00,0x00,0x00,0x00, 238 | 0x40,0xa0,0x40,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x04,0x0c,0x30,0x00, 239 | 0x0a,0x60,0x18,0x04,0x0c,0x30,0x00,0x00,0x00,0xfc,0x24,0x38,0x20,0x40, 240 | 0xfe,0x02,0x14,0x18,0x10,0x10,0x60,0x00,0x04,0x08,0x30,0xd0,0x10,0x10, 241 | 0x02,0x04,0x08,0x38,0xc8,0x08,0x08,0x00,0x10,0xfc,0x84,0x04,0x08,0x30, 242 | 0x10,0xfe,0x82,0x82,0x04,0x08,0x30,0x00,0x00,0x7c,0x10,0x10,0x10,0x7c, 243 | 0x00,0xfe,0x10,0x10,0x10,0x10,0xfe,0x00,0x08,0xfc,0x08,0x38,0xc8,0x18, 244 | 0x08,0xfe,0x08,0x18,0x28,0xc8,0x18,0x20,0xfe,0x22,0x22,0x22,0x42,0x8c, 245 | 0x2a,0xfe,0x22,0x22,0x22,0x42,0x8c,0x10,0xfc,0x10,0x10,0xfe,0x08,0x08, 246 | 0x14,0xfc,0x10,0x10,0xfe,0x08,0x08,0x20,0x3e,0x42,0x82,0x04,0x18,0x60, 247 | 0x2a,0x3e,0x42,0x82,0x04,0x18,0x60,0x40,0x7e,0x48,0x88,0x08,0x10,0x20, 248 | 0x4a,0x7e,0x48,0x88,0x08,0x10,0x20,0x00,0xfe,0x02,0x02,0x02,0x02,0xfe, 249 | 0x0a,0xfe,0x02,0x02,0x02,0x02,0xfe,0x44,0xfe,0x44,0x44,0x04,0x08,0x30, 250 | 0x4a,0xfe,0x44,0x44,0x04,0x08,0x30,0x60,0x10,0xc0,0x22,0x04,0x18,0x60, 251 | 0x6a,0x10,0xc0,0x22,0x04,0x18,0x60,0x00,0x7c,0x04,0x04,0x08,0x34,0xc2, 252 | 0x0a,0x7c,0x04,0x04,0x08,0x34,0xc2,0x20,0x2e,0xf2,0x22,0x24,0x20,0x3e, 253 | 0x2a,0x2e,0xf2,0x22,0x24,0x20,0x3e,0x82,0x42,0x44,0x04,0x08,0x10,0x20, 254 | 0x8a,0x40,0x44,0x04,0x08,0x10,0x20,0x20,0x3e,0x42,0xba,0x04,0x18,0x60, 255 | 0x2a,0x3e,0x42,0xba,0x04,0x18,0x60,0x0c,0x70,0x10,0xfe,0x10,0x10,0x60, 256 | 0x0a,0x70,0x10,0xfe,0x10,0x10,0x60,0x00,0x00,0xa4,0x54,0x54,0x08,0x30, 257 | 0x00,0xa2,0x52,0x52,0x04,0x08,0x30,0x0a,0xa0,0x52,0x52,0x04,0x08,0x30, 258 | 0x7c,0x00,0xfe,0x10,0x10,0x10,0x60,0x7a,0x00,0xfe,0x10,0x10,0x10,0x60, 259 | 0x20,0x20,0x20,0x38,0x26,0x20,0x20,0x2a,0x20,0x20,0x38,0x26,0x20,0x20, 260 | 0x10,0x10,0xfe,0x10,0x10,0x10,0x60,0x00,0x7c,0x00,0x00,0x00,0x00,0xfe, 261 | 0x7c,0x04,0x24,0x18,0x0c,0x32,0xc0,0x10,0xfc,0x04,0x08,0x34,0xd2,0x10, 262 | 0x04,0x04,0x08,0x08,0x10,0x20,0xc0,0x28,0x24,0x24,0x44,0x42,0x42,0x82, 263 | 0x2a,0x20,0x24,0x44,0x42,0x42,0x82,0x24,0x2a,0x24,0x44,0x42,0x42,0x82, 264 | 0x40,0x40,0x4e,0x70,0x40,0x40,0x3e,0x4a,0x40,0x4e,0x70,0x40,0x40,0x3e, 265 | 0x44,0x4a,0x4e,0x70,0x40,0x40,0x3e,0x00,0xfe,0x02,0x02,0x04,0x18,0x60, 266 | 0x0a,0xfe,0x02,0x02,0x04,0x18,0x60,0x04,0xfa,0x06,0x04,0x04,0x18,0x60, 267 | 0x00,0x20,0x50,0x88,0x04,0x02,0x00,0x0a,0x20,0x50,0x88,0x04,0x02,0x00, 268 | 0x04,0x2a,0x54,0x88,0x04,0x02,0x00,0x10,0xfe,0x10,0x54,0x52,0x92,0x30, 269 | 0x14,0xfe,0x10,0x54,0x52,0x92,0x30,0x14,0xfa,0x14,0x50,0x54,0x92,0x30, 270 | 0x00,0xfe,0x02,0x04,0x28,0x10,0x08,0x70,0x0c,0x60,0x1c,0x00,0xf0,0x0e, 271 | 0x10,0x10,0x20,0x20,0x48,0x84,0xfa,0x04,0x64,0x14,0x08,0x14,0x22,0xc0, 272 | 0x7c,0x20,0x20,0xfe,0x20,0x20,0x1e,0x00,0x40,0x5c,0xe4,0x28,0x20,0x10, 273 | 0x40,0x5e,0xe2,0x24,0x20,0x10,0x10,0x00,0x00,0x00,0x78,0x08,0x08,0xfc, 274 | 0x00,0x78,0x08,0x08,0x08,0x08,0xfe,0x00,0x00,0x7c,0x04,0x3c,0x04,0x7c, 275 | 0x00,0xfe,0x02,0x7e,0x02,0x02,0xfe,0x7c,0x00,0xfe,0x02,0x02,0x0c,0x30, 276 | 0x44,0x44,0x44,0x44,0x04,0x08,0x30,0x08,0x28,0x28,0x28,0x2a,0x4a,0x8c, 277 | 0x40,0x40,0x40,0x42,0x44,0x58,0x60,0x00,0xfe,0x82,0x82,0x82,0x82,0xfe, 278 | 0x00,0x00,0xfc,0x84,0x04,0x08,0x30,0x00,0xfe,0x82,0x82,0x04,0x08,0x30, 279 | 0x08,0xfe,0x48,0x48,0x48,0xfe,0x08,0x00,0xfe,0x12,0x14,0x10,0x10,0xfe, 280 | 0xfe,0x02,0x7e,0x02,0x04,0x18,0x60,0xc0,0x20,0x00,0x02,0x04,0x18,0x60, 281 | 0x2a,0x20,0xfe,0x82,0x82,0x0c,0x30,0x00,0x20,0xfc,0x24,0x24,0x44,0x98, 282 | 0x00,0x40,0x7c,0x90,0x10,0x10,0x20,0x00,0x00,0x00,0x30,0x30,0x00,0x00, 283 | 0x00,0x00,0x80,0x7e,0x00,0x00,0x00,0x00,0x60,0x10,0x08,0x04,0x04,0x00, 284 | 0x0a,0x60,0x10,0x08,0x04,0x04,0x00,0x44,0xf2,0xbe,0xea,0xfe,0xaa,0x6c, 285 | 0x54,0xba,0x92,0xbe,0xd6,0x9e,0x54,0x44,0xaa,0xbe,0xea,0xaa,0xa6,0x44, 286 | 0x7c,0x92,0x9a,0x92,0x92,0xba,0x7c,0x7c,0x92,0xfe,0xd6,0xfe,0x92,0x7c, 287 | 0x7c,0xba,0x92,0x9a,0x92,0x92,0x7c,0x7c,0xfa,0xa2,0xba,0xd2,0xba,0x7c, 288 | 0x7c,0xa2,0xfa,0xa2,0xda,0x9a,0x7c,0x00,0x00,0xc6,0xea,0xe6,0xe2,0xac, 289 | 0x80,0x80,0xa6,0xaa,0xc6,0xa2,0xac,0x00,0x00,0xcc,0xee,0xee,0xee,0xaa, 290 | 0x00,0x00,0x6c,0x8e,0x8e,0x8e,0x6a,0x80,0x80,0xac,0xae,0xce,0xae,0xaa, 291 | 0x06,0x02,0xd4,0xae,0xa8,0xa8,0xa8,0x00,0x00,0x66,0x88,0x88,0x88,0x66, 292 | 0xaa,0xaa,0xcc,0xcc,0xaa,0xaa,0xaa,0x00,0x00,0x04,0xfe,0x00,0x00,0x00, 293 | 0xfe,0x10,0x10,0x10,0x10,0x10,0x30,0x20,0x20,0x2e,0xf0,0x20,0x22,0x1e, 294 | 0xfe,0x20,0x3c,0x24,0x24,0x44,0x8c,0x00,0x7c,0x00,0x38,0x00,0x00,0xfe, 295 | 0x10,0x10,0x1c,0x10,0x10,0x10,0xfe,0xfe,0x10,0x18,0x14,0x10,0x10,0x10, 296 | 0xfe,0x10,0x10,0x34,0xd2,0x10,0x10,0x54,0x54,0xfe,0x54,0x5c,0x40,0x7e, 297 | 0xfe,0x10,0xfe,0x92,0xd6,0xfe,0x82,0x44,0xfe,0x28,0xaa,0xac,0x28,0xfe, 298 | 0x10,0xfe,0x92,0x92,0xfe,0x10,0x10,0x20,0xf8,0x28,0x68,0x38,0x4a,0x8e, 299 | 0x20,0x10,0xfe,0x10,0x7c,0x10,0xfe,0x20,0x3c,0x44,0x88,0x08,0x34,0xc2, 300 | 0x0c,0x70,0xfe,0x54,0xfe,0x38,0xd6,0x20,0xf8,0x28,0x28,0x48,0x4a,0x8e, 301 | 0x14,0x64,0xfc,0x24,0x74,0x54,0x76,0x3c,0xd4,0x04,0x74,0x14,0xfc,0x26, 302 | 0x7c,0x28,0x10,0xfe,0x12,0x10,0x30,0x38,0xc8,0x3c,0xfe,0x14,0x7c,0x30, 303 | 0x10,0xfe,0x54,0xfc,0x16,0xfc,0x30,0x00,0x7c,0x00,0x00,0x00,0x04,0xfe, 304 | 0x7c,0x10,0x10,0x7c,0x24,0x24,0xfe,0x10,0xfe,0x40,0x40,0x40,0x40,0x3e, 305 | 0x10,0xfe,0x28,0xc6,0x28,0x10,0xee,0x10,0xfe,0x44,0x7c,0x10,0x54,0xb2, 306 | 0x10,0x10,0x10,0x28,0x28,0x44,0x82,0x20,0x5e,0xc0,0x40,0x40,0x40,0x5e, 307 | 0x10,0x28,0xde,0x00,0x7c,0x08,0x30,0x28,0x48,0xc8,0x48,0x50,0x54,0x7a, 308 | 0x28,0x48,0xfe,0x48,0x48,0x48,0x5c,0x24,0x54,0xde,0x76,0x54,0x52,0x5e, 309 | 0x24,0x5e,0xc4,0x54,0x4c,0x44,0x4c,0x2a,0x48,0xde,0x48,0x44,0x44,0x42, 310 | 0x10,0x28,0xde,0x00,0xfe,0x12,0x10,0x44,0x54,0x4c,0x44,0x64,0x8c,0x32, 311 | 0x3e,0x50,0xde,0x5a,0x5a,0x64,0x5a,0x28,0x7e,0xea,0x6a,0x7e,0x48,0x48, 312 | 0x2c,0x4e,0xd4,0x44,0x5e,0x44,0x44,0x24,0x58,0xc8,0x7e,0x48,0x48,0x5c, 313 | 0x28,0x7e,0xc8,0x5c,0x5c,0x6a,0x48,0x10,0x28,0xde,0x00,0xfe,0x24,0xfa, 314 | 0x3c,0x40,0xfe,0x48,0x48,0x54,0x7a,0x32,0x56,0xd2,0x5a,0x72,0x44,0x5a, 315 | 0x28,0x7e,0xd4,0x54,0x54,0x58,0x7e,0x22,0x5c,0xd4,0x5e,0x54,0x52,0x5e, 316 | 0x28,0x44,0xde,0x44,0x4e,0x44,0x5e,0x28,0x7e,0xc8,0x5c,0x6a,0x5c,0x48, 317 | 0x3e,0x42,0xde,0x56,0x5e,0x42,0x46,0x10,0x28,0xfe,0x10,0xfe,0x54,0xb2, 318 | 0x28,0x4e,0xd8,0x4e,0x48,0x4e,0x48,0x28,0x7e,0xda,0x5e,0x78,0x48,0x76, 319 | 0x3a,0x56,0xde,0x6e,0x5a,0x52,0x66,0x54,0x7e,0xd4,0xd4,0x7e,0x40,0x62, 320 | 0x3e,0x48,0xde,0x5a,0x5a,0x5a,0x5e,0x3e,0x5c,0xdc,0x48,0x58,0x48,0x76, 321 | 0x3e,0x48,0xd0,0x4a,0x7e,0x48,0x6a,0x3c,0x54,0xdc,0x48,0x7e,0x5c,0x6a, 322 | 0x2c,0x5e,0xc0,0x4c,0x40,0x5e,0x5e,0x28,0x6e,0xf4,0x6a,0x64,0x62,0x4c, 323 | 0x54,0x76,0xd4,0xf6,0x54,0x76,0x54,0x28,0x7e,0xc8,0x7c,0x5a,0x74,0x5a, 324 | 0x10,0x28,0xfe,0x38,0x20,0x5c,0x9c,0x3e,0x6a,0xfe,0x6a,0x76,0x7e,0x7e, 325 | 0x28,0x7e,0xd4,0x7e,0x40,0x5c,0x5c,0x2c,0x64,0xfe,0x68,0x7e,0x64,0x5a, 326 | 0x54,0x7e,0xd4,0xfe,0x5c,0x54,0x5c,0x24,0x5e,0xc4,0x56,0x56,0x50,0x5e, 327 | 0x28,0x7e,0xd4,0x7e,0x5e,0x48,0x58,0x34,0x5e,0xee,0x54,0x7e,0x54,0x6e, 328 | 0x3a,0x6e,0xfe,0x6e,0x7a,0x42,0x6a,0x54,0x7e,0xd4,0xfe,0x60,0x5e,0x56, 329 | 0x30,0x5e,0xf4,0x5c,0x5e,0x6a,0x56,0x34,0x5e,0xf6,0x76,0x56,0x7a,0x4a, 330 | 0x2c,0x74,0xdc,0x5c,0x5a,0x6c,0x5a,0x28,0x7e,0xd4,0x7e,0x5c,0x72,0x6e, 331 | 0x3e,0x5c,0xdc,0x7e,0x76,0x48,0x76,0x7c,0x00,0xfe,0x28,0x28,0x4a,0x8e, 332 | 0x7c,0x44,0x44,0x7c,0x28,0x2a,0xce,0x28,0xaa,0x2c,0x6c,0xaa,0x28,0xce, 333 | 0x50,0x7c,0x90,0xfe,0x28,0x2a,0xce,0x10,0x54,0x10,0xfe,0x28,0x2a,0xce, 334 | 0x5c,0x54,0x5c,0x54,0x5c,0x2a,0xce,0x54,0xfe,0xba,0x28,0x38,0x2a,0xce, 335 | 0x70,0x10,0x10,0x28,0x28,0x44,0x82,0x10,0x28,0xfe,0x10,0x7c,0x10,0xfe, 336 | 0x28,0x28,0x28,0x28,0x44,0x44,0x82,0x28,0x28,0x44,0x92,0x10,0x24,0xfa, 337 | 0x10,0xfe,0x00,0x28,0x28,0x44,0x82,0x28,0x7c,0x28,0x28,0xfe,0x00,0xc6, 338 | 0x0c,0x70,0x7c,0x48,0xfe,0x00,0xc6,0x7c,0x44,0x7c,0x44,0xfe,0x00,0xc6, 339 | 0x28,0x7c,0x6c,0x7c,0xfe,0x00,0xc6,0x10,0xfe,0x92,0xaa,0xc6,0x82,0x86, 340 | 0xfe,0x92,0x92,0xfe,0x82,0x82,0x86,0x7e,0x6a,0x6a,0xfe,0x6a,0x6a,0x42, 341 | 0xfe,0x54,0x7c,0x54,0xfe,0x44,0x4c,0xfe,0xa2,0x3c,0x20,0xfe,0x08,0x18, 342 | 0x18,0x68,0x10,0x28,0xd6,0x30,0x0c,0x88,0x14,0x2e,0x00,0xbe,0x8a,0x88, 343 | 0x40,0x7c,0x54,0xd4,0x26,0x50,0x8e,0x10,0x54,0x54,0x7c,0x92,0x92,0xfe, 344 | 0xfe,0x12,0x12,0x22,0x22,0x42,0x86,0x28,0x28,0x44,0xbe,0x14,0x24,0xcc, 345 | 0x5e,0x4a,0xea,0x4a,0x4a,0x6a,0x16,0x72,0x2a,0x2a,0xfa,0x22,0x22,0x26, 346 | 0xf2,0x4a,0x6a,0xaa,0x62,0x42,0x86,0x5e,0xea,0x2a,0x4a,0xea,0x6a,0x56, 347 | 0x22,0xaa,0x22,0xfa,0x22,0xfa,0x26,0xf2,0x9a,0xfa,0x4a,0x72,0x52,0xb6, 348 | 0x72,0x2a,0xfa,0x2a,0x72,0xa2,0x26,0x62,0x7a,0xaa,0x7a,0x22,0xfa,0xaa, 349 | 0x7a,0x4a,0x7a,0x52,0x7a,0x5a,0x96,0x54,0x38,0xfe,0x44,0xbe,0x14,0x6c, 350 | 0x22,0xfa,0x4a,0xaa,0x52,0x22,0xd6,0xe2,0xaa,0xea,0xaa,0xe2,0x02,0xa6, 351 | 0x44,0xfe,0x00,0xea,0xaa,0xe2,0xa6,0xfa,0x56,0x76,0x06,0xfa,0xaa,0xfa, 352 | 0x22,0xfa,0xaa,0x7a,0x22,0xfa,0x76,0x22,0x5a,0xea,0x6a,0x42,0x72,0xb6, 353 | 0x22,0x3a,0xea,0xda,0xb2,0xda,0xb6,0x10,0xfe,0x12,0x22,0x22,0x42,0x86, 354 | 0x08,0xfe,0x4a,0x4a,0x6a,0xca,0x16,0x40,0xfe,0x5a,0x5a,0x5a,0x5a,0xbe, 355 | 0x74,0x5e,0x76,0x56,0x76,0x5a,0xea,0x2e,0xfa,0x54,0x6a,0xbc,0x14,0x6c, 356 | 0x54,0xfe,0x92,0x7c,0x14,0x24,0xcc,0x28,0xfe,0x5a,0x8a,0x5a,0x2a,0xd6, 357 | 0x7c,0x08,0x7c,0x54,0xfe,0x22,0xc6,0x64,0xae,0x76,0x76,0x2a,0x6a,0xbe, 358 | 0xe8,0x5e,0xea,0xea,0xea,0x4a,0xf6,0xe8,0x2e,0x54,0xea,0x7e,0xaa,0x76, 359 | 0xf6,0xa4,0xfe,0xac,0xfe,0xaa,0xb6,0x28,0x7c,0xec,0x76,0xbc,0x14,0x6c, 360 | 0x54,0xfe,0x56,0xf6,0xf6,0x2a,0xfa,0x40,0x7e,0xba,0x0a,0x7a,0x40,0x7e, 361 | 0x30,0x50,0xd2,0x5c,0x50,0x52,0x5e,0x28,0x28,0xea,0x2c,0x68,0xaa,0x2e, 362 | 0xfe,0x84,0xb4,0x88,0x94,0xa0,0xfe,0xfe,0x90,0x9c,0xbe,0x88,0xb6,0xfe, 363 | 0x10,0x10,0xfe,0x10,0x10,0x10,0x10,0x0c,0x70,0x10,0xfe,0x10,0x10,0x10, 364 | 0x40,0x7c,0x90,0x10,0xfe,0x10,0x10,0x10,0x54,0x10,0x7c,0x10,0xfe,0x10, 365 | 0x10,0xfe,0x44,0x44,0xaa,0xfe,0x10,0x48,0x5e,0xea,0x40,0x4a,0x7e,0x56, 366 | 0x10,0xfe,0x10,0xfe,0xaa,0xfe,0x92,0x54,0x7c,0x54,0x7c,0x54,0xfe,0x10, 367 | 0x4a,0x7e,0xdc,0x5c,0x7e,0x54,0x4c,0x2e,0xca,0x8a,0xea,0x8a,0xe8,0x08, 368 | 0x38,0xc8,0x7e,0x5c,0x54,0x52,0x9e,0x2e,0xca,0xee,0xaa,0xea,0x28,0x48, 369 | 0x7e,0x5c,0x5c,0x44,0x7e,0x48,0x98,0x7e,0x48,0x5c,0x5c,0x48,0x6a,0x98, 370 | 0x54,0x7e,0x60,0x76,0x5a,0x74,0x9a,0x10,0x7c,0x10,0xfe,0x10,0x24,0xfa, 371 | 0x28,0x74,0xfe,0x54,0xa2,0x08,0x70,0x20,0xfe,0x20,0x3c,0x54,0x48,0xb6, 372 | 0x7e,0x40,0x7c,0x54,0x54,0x48,0xb6,0x2e,0xa2,0xaa,0xaa,0xb4,0xe4,0x2a, 373 | 0xf0,0x5e,0x72,0x7a,0x54,0xfa,0x10,0xfe,0x54,0xfe,0xba,0x28,0x10,0xee, 374 | 0x00,0x7e,0x42,0x42,0x42,0x7e,0x42,0x10,0x10,0xfe,0x10,0x7c,0x44,0x7c, 375 | 0x20,0x3e,0x42,0xba,0x2a,0x3a,0x06,0xfe,0x04,0x74,0x54,0x74,0x04,0x0c, 376 | 0x10,0x10,0x24,0xfa,0x00,0x7c,0x7c,0x10,0x7c,0x54,0x7c,0x30,0x10,0xee, 377 | 0x20,0xfe,0x20,0x7c,0xa4,0x24,0x3c,0x38,0x28,0xfe,0x20,0x3c,0x04,0x1c, 378 | 0xfe,0x02,0x7a,0x02,0x7a,0x7a,0x06,0x18,0x68,0x10,0x28,0xc6,0x38,0x38, 379 | 0x10,0x28,0xde,0x00,0x7c,0x44,0x7c,0xfe,0x82,0xba,0x82,0xba,0xaa,0xba, 380 | 0x3c,0x24,0x58,0x10,0x3e,0xd2,0x1e,0x0c,0x70,0x40,0x7e,0x40,0x5c,0x9c, 381 | 0x10,0xfe,0x82,0xba,0xaa,0xba,0x86,0x7c,0x14,0xfe,0x14,0x3e,0xe2,0x3e, 382 | 0xfe,0x10,0x34,0xd2,0x7c,0x44,0x7c,0x3c,0xd4,0xd6,0xd2,0xea,0x24,0x5a, 383 | 0x50,0x7c,0x90,0xfe,0x00,0x7c,0x7c,0x7e,0x52,0x7a,0x52,0x7e,0x6a,0xba, 384 | 0x08,0xfc,0xa8,0xbe,0xe8,0x1c,0x2a,0x06,0xf8,0xea,0xc8,0xfe,0x08,0x18, 385 | 0x10,0x28,0xde,0x00,0xee,0xea,0x08,0x70,0x2e,0xfa,0x2a,0x7a,0xaa,0x2e, 386 | 0x7c,0x44,0x7c,0x00,0xee,0xaa,0xee,0x38,0x28,0x7c,0x7c,0x44,0x7c,0xc6, 387 | 0x1c,0xf4,0xbe,0xa2,0xfe,0x22,0x3e,0x10,0xfe,0x24,0xfe,0xaa,0xde,0x9a, 388 | 0xee,0xaa,0xee,0x82,0xba,0xaa,0xba,0x44,0xfe,0x10,0xfe,0x54,0xfe,0x7c, 389 | 0x10,0xfe,0x7c,0x28,0xfe,0x44,0x7c,0x54,0xfe,0xaa,0x38,0x10,0x7c,0x7c, 390 | 0x6c,0x6c,0x10,0xfe,0x10,0xee,0x6c,0xfe,0xaa,0xaa,0xae,0xc2,0x82,0xfe, 391 | 0xfe,0x82,0xba,0xaa,0xba,0x82,0xfe,0xfe,0x92,0xfe,0x92,0xaa,0xc6,0xfe, 392 | 0xfe,0x8a,0xfe,0xaa,0x8a,0x9a,0xfe,0xfe,0x92,0xfe,0xba,0xd6,0x92,0xfe, 393 | 0xfe,0xaa,0xfe,0xaa,0xfe,0xaa,0xfe,0xfe,0xd2,0x86,0xaa,0x9a,0xa6,0xfe, 394 | 0xfe,0x92,0xba,0x92,0xaa,0xba,0xfe,0xfe,0xba,0x92,0xba,0x96,0xba,0xfe, 395 | 0xfe,0xba,0xfe,0xaa,0xba,0xd6,0xfe,0x10,0x10,0x7c,0x10,0x10,0x10,0xfe, 396 | 0x7e,0x48,0x48,0x5c,0x48,0x48,0xbe,0x20,0xfe,0x28,0x5c,0xc8,0x48,0x7e, 397 | 0x44,0x54,0xde,0x76,0x54,0xd2,0x1e,0x5e,0x50,0xfe,0x5a,0x5a,0xe4,0x1a, 398 | 0x50,0x5e,0xe2,0x4a,0x66,0xda,0x06,0x0c,0x70,0xfe,0x54,0xfe,0x10,0xfe, 399 | 0xfa,0x56,0xfe,0x52,0xba,0x10,0xfe,0x44,0x7e,0xe4,0x7c,0x6e,0xf4,0x2a, 400 | 0x44,0x7e,0xc4,0x74,0x76,0xcc,0x32,0x28,0x7c,0x28,0xfe,0x44,0x92,0x38, 401 | 0x48,0x7e,0xc8,0x54,0x7e,0xc4,0x14,0x54,0xfe,0xaa,0x38,0x7c,0x10,0xfe, 402 | 0x2e,0x7a,0xf8,0x5e,0xfa,0x74,0x2a,0x5c,0x54,0xfe,0x50,0x5e,0xea,0x16, 403 | 0x50,0x5e,0xf4,0x5c,0x40,0xdc,0x3e,0x48,0x7e,0xd4,0x7e,0x5c,0xdc,0x26, 404 | 0x28,0xfe,0x38,0xfe,0x44,0x92,0x38,0x54,0x7e,0xea,0x7e,0x5c,0xd4,0x1c, 405 | 0x10,0x10,0xfe,0x10,0x10,0x10,0x7c,0x10,0xfe,0x10,0x7c,0x54,0x7c,0x80, 406 | 0x10,0xfe,0x10,0xfe,0x82,0x28,0xce,0x10,0xfe,0x28,0xba,0x68,0x10,0xee, 407 | 0xfe,0x38,0x38,0x38,0x68,0x10,0xee,0x10,0x1e,0x22,0xda,0x04,0x08,0x70, 408 | 0x48,0x78,0x58,0xbc,0x1a,0x28,0xc8,0x18,0x68,0x10,0xee,0x32,0x0c,0x70, 409 | 0x10,0xfe,0x28,0x4e,0xda,0x44,0x5a,0x28,0xfe,0x54,0xfe,0xaa,0x18,0x70, 410 | 0x10,0x10,0xfe,0x10,0x10,0x28,0xc6,0xfe,0x10,0x7c,0x10,0x10,0x28,0xc6, 411 | 0x10,0xfe,0x10,0x28,0x28,0x44,0x92,0x10,0x7c,0x10,0xfe,0x10,0x28,0xc6, 412 | 0x10,0x7c,0x54,0xfe,0x10,0x28,0xc6,0x50,0x7c,0x90,0xfe,0x10,0x28,0xc6, 413 | 0x10,0x7c,0x38,0xfe,0x54,0x92,0x28,0x10,0xfe,0x74,0xba,0x7c,0x54,0x7c, 414 | 0x10,0x10,0xfe,0x24,0x68,0x18,0xe6,0x2e,0x22,0xf4,0x5e,0x64,0x34,0xcc, 415 | 0x48,0x5c,0xe8,0xbe,0xc8,0x5c,0xaa,0x10,0xfe,0x14,0x7c,0xfe,0x28,0xf6, 416 | 0x44,0x5e,0xe4,0xbe,0xd6,0x76,0x84,0x24,0x24,0xfa,0x5e,0x60,0x3e,0xce, 417 | 0x38,0xfe,0x38,0xd6,0x7c,0x28,0xf6,0x90,0x1e,0xaa,0x14,0xfe,0x28,0xf6, 418 | 0x5c,0x44,0xfe,0xaa,0xdc,0x7c,0x88,0x7c,0x08,0x10,0xfe,0x10,0x10,0x30, 419 | 0x10,0xfe,0xba,0x08,0xfe,0x10,0x30,0x20,0xfe,0x2c,0x44,0xfe,0x48,0x58, 420 | 0x12,0x7c,0x18,0xfe,0x24,0xde,0x08,0x38,0xfe,0x3c,0xda,0x08,0xfe,0x10, 421 | 0x54,0xfe,0xba,0x08,0xfe,0x10,0x30,0xee,0x24,0x48,0x64,0xde,0x44,0xd6, 422 | 0x10,0xfe,0xba,0x10,0xfe,0x10,0x1e,0x10,0xfe,0xba,0x10,0xfe,0x10,0x30, 423 | 0x10,0xfe,0x82,0x08,0xfe,0x28,0x18,0x10,0xfe,0x92,0x7c,0x28,0x18,0xe6, 424 | 0x10,0xfe,0xba,0x00,0xfe,0x28,0xce,0x10,0xfe,0xba,0x00,0xfe,0x54,0xb2, 425 | 0x10,0xfe,0xba,0x28,0x3c,0x24,0x3c,0x10,0xfe,0x92,0x7c,0x7c,0x54,0x7c, 426 | 0x10,0xfe,0xba,0x10,0x5c,0x50,0xbe,0x10,0xfe,0xba,0x10,0x38,0x14,0xfe, 427 | 0x10,0xfe,0xba,0x10,0xfe,0x10,0xee,0x10,0xfe,0x9a,0x68,0x10,0xee,0x38, 428 | 0x10,0xfe,0xba,0x00,0x38,0x28,0xfe,0x10,0xfe,0xb2,0x28,0x74,0x10,0xfe, 429 | 0x10,0xfe,0xaa,0x38,0x10,0x7c,0x7c,0x10,0xfe,0x92,0x7c,0x10,0xfe,0x38, 430 | 0x10,0xfe,0xba,0x30,0xda,0x2c,0xda,0x10,0xfe,0xaa,0x54,0x28,0xfe,0x38, 431 | 0x10,0xfe,0x82,0x5e,0xc8,0x5e,0x5e,0x10,0xfe,0x92,0x28,0xfe,0x54,0x74, 432 | 0x10,0xfe,0xaa,0x60,0xba,0x54,0x7c,0x10,0xfe,0xaa,0x38,0x7c,0x54,0x7c, 433 | 0x10,0xfe,0xaa,0x7c,0x7c,0xb2,0x08,0x10,0xfe,0xea,0x44,0xba,0x54,0xb2, 434 | 0x08,0xfe,0x08,0x48,0x28,0x08,0x18,0x10,0x7c,0x10,0xfe,0x08,0xfe,0x28, 435 | 0x22,0xfe,0x12,0x5a,0x26,0x52,0x86,0x10,0xfe,0x38,0x38,0xfe,0x28,0x18, 436 | 0x22,0x7e,0x52,0x7a,0xd6,0x32,0xd6,0x46,0x78,0xea,0x44,0xfe,0x54,0x4c, 437 | 0x44,0xfe,0x5c,0x6c,0xfe,0x28,0x18,0x54,0x3e,0xdc,0x5c,0xfe,0x28,0x18, 438 | 0x10,0x10,0x54,0x52,0x92,0x10,0x30,0x10,0x54,0x52,0x90,0x34,0x18,0xe0, 439 | 0x26,0xf4,0x5e,0x74,0x24,0xb4,0x6a,0x7c,0x44,0x7c,0x50,0x48,0x44,0x82, 440 | 0x7c,0x44,0x7c,0x40,0x7e,0x6a,0xba,0x7e,0x7e,0x44,0x5e,0x44,0x5e,0x9e, 441 | 0x7e,0x42,0x7e,0x48,0x7e,0x6a,0xbe,0x7e,0x42,0x7e,0x54,0x7a,0x48,0xbe, 442 | 0x7e,0x42,0x7e,0x54,0x7e,0x68,0xb6,0x7e,0x7e,0x4c,0x5c,0x7e,0x6e,0xba, 443 | 0x7e,0x7e,0x54,0x6a,0x7e,0x54,0x9c,0x10,0x10,0x92,0x92,0x92,0x92,0xfe, 444 | 0x54,0x7c,0x00,0xfe,0x40,0xbc,0x3c,0x92,0xfe,0x40,0x5c,0x48,0x7e,0x88, 445 | 0x10,0x7c,0x7c,0x40,0x7e,0xaa,0xfa,0x42,0x52,0x52,0x52,0x52,0x42,0x82, 446 | 0x52,0x52,0xf6,0xf6,0x52,0x52,0x92,0x54,0x7c,0x7c,0x10,0xfe,0x38,0xd6, 447 | 0x00,0x7c,0x10,0x10,0x10,0x10,0xfe,0x20,0xfe,0x20,0x3c,0x48,0x88,0x7e, 448 | 0x44,0xfe,0x10,0xfe,0x5c,0x48,0xbe,0xfc,0x04,0x04,0xfc,0x80,0x82,0x7e, 449 | 0x54,0x38,0xfe,0x4c,0xba,0x20,0x3c,0x10,0xfe,0x10,0x7c,0x54,0x54,0x10, 450 | 0x20,0xfe,0x28,0x7e,0xaa,0x2a,0x08,0x64,0x18,0x24,0xfe,0x48,0xbe,0x2a, 451 | 0x5e,0xe8,0xfe,0xaa,0xea,0xea,0x08,0x08,0x7e,0x54,0x7e,0x48,0x7e,0xaa, 452 | 0x54,0xfe,0x54,0xfe,0x92,0x7c,0x54,0x5c,0xc4,0xfe,0xea,0x5c,0x5c,0x88, 453 | 0x5e,0xd0,0xdc,0xd0,0x7e,0x54,0x5a,0x54,0xfe,0xaa,0x38,0xfe,0x92,0x10, 454 | 0x28,0xfe,0x38,0xfe,0x56,0xbc,0x34,0x7c,0x10,0x10,0xfe,0x10,0x10,0x10, 455 | 0xfe,0x54,0x38,0x10,0xfe,0x10,0x10,0x40,0x7e,0x90,0x7c,0x50,0xfe,0x10, 456 | 0x10,0x7c,0xfe,0x28,0xfe,0x7c,0x10,0xe4,0x4a,0xe0,0xae,0x44,0xee,0x44, 457 | 0x28,0x2e,0xda,0x6a,0x2a,0x5a,0xf6,0x08,0x7e,0x40,0x7e,0x48,0x48,0x98, 458 | 0x08,0x7e,0x40,0x48,0x48,0x54,0xba,0x08,0x7e,0x5c,0x44,0x7e,0x4a,0x98, 459 | 0x08,0x7e,0x5e,0x54,0x5e,0x54,0xba,0x08,0x7e,0x48,0x4e,0x48,0x5e,0x9e, 460 | 0x08,0x7e,0x52,0x5e,0x72,0x5a,0x96,0x08,0x7e,0x54,0x7e,0x54,0x48,0xb6, 461 | 0x08,0x7e,0x54,0x6a,0x5c,0x48,0xbe,0x08,0x7e,0x48,0x7e,0x5c,0x7e,0x88, 462 | 0x08,0x7e,0x72,0x54,0x6e,0x54,0xae,0x08,0x7e,0x4e,0x7c,0x6a,0x5c,0xaa, 463 | 0xc2,0x5c,0x86,0x54,0xde,0x40,0xbe,0xdc,0x4e,0x9c,0x48,0xde,0x48,0xbe, 464 | 0x10,0x24,0xfa,0x28,0xfe,0x28,0x48,0x0a,0xfe,0x08,0x78,0x24,0x34,0xc2, 465 | 0x7c,0x04,0x7c,0x40,0xfe,0x02,0x0e,0xf2,0x12,0xf2,0x82,0xf2,0x12,0x32, 466 | 0x28,0xfc,0x14,0x7c,0x50,0x3e,0xd2,0xee,0x22,0xee,0x88,0x66,0xaa,0x66, 467 | 0xde,0x50,0xdc,0x90,0xfe,0x54,0xda,0xc8,0x52,0xfe,0x9c,0xdc,0x4a,0xfe, 468 | 0x52,0x34,0x7e,0x02,0x3e,0x02,0x7e,0xfa,0x54,0x52,0xfc,0x50,0x52,0x94, 469 | 0x5c,0x94,0x66,0xdc,0x54,0x48,0x76,0x50,0x88,0x7e,0xc8,0x5c,0x48,0x7e, 470 | 0x7c,0x94,0x48,0xf6,0x5c,0x48,0x7e,0x48,0x9c,0x48,0xfe,0x44,0x7e,0x54, 471 | 0x48,0xbc,0x4e,0xfc,0x48,0x7e,0x48,0x48,0x90,0x4a,0xfe,0x54,0x48,0x76, 472 | 0x48,0x9c,0x48,0xfe,0x4c,0x58,0x6e,0x52,0xbe,0x44,0xd6,0x54,0x54,0x6e, 473 | 0x5c,0x94,0x7e,0xc4,0x7e,0x54,0x4c,0x50,0x9e,0x6c,0xcc,0x54,0x48,0x76, 474 | 0x48,0xbe,0x5c,0xdc,0x40,0x72,0x6e,0x20,0x10,0x20,0x64,0x62,0xa4,0x3c, 475 | 0x20,0x14,0x24,0xaa,0xb2,0x20,0xde,0x10,0xfe,0x10,0x7c,0x00,0xca,0xba, 476 | 0x10,0xfe,0x40,0x7c,0x54,0xca,0xba,0x08,0x7e,0x50,0x48,0x50,0x76,0x9c, 477 | 0x10,0x7c,0x54,0x7c,0x10,0xca,0xba,0x48,0xdc,0xcc,0x7e,0x48,0x48,0x76, 478 | 0x10,0x28,0xde,0x38,0x08,0xc2,0xba,0x7c,0x54,0x7c,0x54,0x7c,0xca,0xba, 479 | 0x38,0xc8,0x7c,0x04,0x7c,0xca,0xba,0x58,0xde,0xe8,0x48,0x5c,0x48,0x7e, 480 | 0x7c,0x54,0x6c,0x7c,0x54,0xca,0xba,0x10,0x7c,0x44,0x7c,0x7c,0xca,0xba, 481 | 0xfe,0x7c,0x7c,0xfe,0x54,0xca,0xba,0x28,0xee,0x28,0xee,0x28,0xc2,0xba, 482 | 0x48,0xdc,0xc8,0x7e,0x54,0x5c,0x54,0x2e,0xfa,0x6e,0xba,0x2e,0xc0,0xba, 483 | 0x10,0x7c,0x28,0xfe,0x38,0xca,0xba,0xfe,0x54,0xfe,0xaa,0x64,0x18,0xe6, 484 | 0x04,0x7e,0x74,0xb2,0x00,0xca,0xba,0x54,0xf6,0x50,0x74,0x56,0xc8,0xba, 485 | 0x5c,0xf6,0xdc,0x5c,0x5c,0x5c,0x62,0x10,0xfe,0x92,0x7c,0x38,0xca,0xba, 486 | 0x04,0x7e,0x44,0x74,0x56,0x54,0xaa,0x1a,0x68,0xfe,0x28,0xfa,0x24,0x6a, 487 | 0xaa,0x08,0xfe,0xf4,0x26,0xf4,0x2a,0xfe,0x00,0x7c,0x44,0x7c,0x40,0x80, 488 | 0xf2,0x0c,0x78,0x5e,0x7a,0x4a,0x92,0x0c,0x70,0xfe,0x10,0xfe,0x10,0x30, 489 | 0x08,0xfe,0x08,0x0c,0x18,0xe8,0x18,0x5e,0xe4,0x44,0x64,0xc4,0x44,0xcc, 490 | 0x54,0xd4,0x5e,0x54,0xd4,0x5c,0xf6,0x38,0x08,0xd2,0x7c,0x54,0xba,0x10, 491 | 0x48,0xfe,0x48,0x7c,0xd4,0x48,0xf6,0x5c,0xd4,0x66,0x5c,0xd4,0x48,0xf6, 492 | 0x44,0xd8,0x50,0x5e,0xd4,0x64,0xc4,0x5e,0xf2,0x5e,0x72,0xde,0x40,0xde, 493 | 0x5e,0xea,0x52,0x66,0xde,0x52,0xde,0x7e,0xdc,0x48,0x5c,0xc8,0x7e,0xc8, 494 | 0x44,0xde,0x50,0x54,0xd4,0x6a,0xce,0x48,0xd4,0x6e,0x40,0xdc,0x54,0xdc, 495 | 0x48,0xdc,0x48,0x7e,0xc4,0x7e,0xd4,0x52,0xdc,0x52,0x5e,0xc0,0x5e,0xde, 496 | 0x54,0xfe,0x44,0xba,0x7c,0xfe,0x30,0x48,0xd4,0x6a,0x5c,0xfe,0x54,0xdc, 497 | 0x7e,0xd4,0x7e,0x62,0xdc,0x48,0xf6,0x46,0xf8,0x6a,0x44,0xfe,0x5c,0xea, 498 | 0x7e,0xe2,0x54,0x66,0xfe,0x5c,0xea,0x48,0xfe,0x54,0x7e,0xd4,0x4c,0xf2, 499 | 0x54,0xde,0x74,0x5e,0xd4,0x54,0xde,0x4c,0xec,0x5e,0x44,0xd6,0x54,0xee, 500 | 0x7e,0xea,0x7e,0x5c,0xdc,0x7e,0xc8,0x4c,0xec,0x5e,0x72,0xde,0x40,0xd2, 501 | 0x5c,0xd4,0x7e,0x6a,0xfe,0x5c,0xea,0x10,0xfe,0x10,0x78,0x28,0x10,0xee, 502 | 0xe8,0x2e,0xfa,0x8a,0xaa,0xe4,0x1a,0x24,0xf6,0x4a,0x7a,0x5a,0x54,0xba, 503 | 0xf4,0x26,0x2a,0xba,0xaa,0xb4,0xca,0x48,0xee,0x5a,0xea,0xaa,0xe4,0x1a, 504 | 0x24,0xf6,0x2a,0xba,0x6a,0xb4,0x6a,0xe8,0xae,0xfa,0xaa,0xea,0x04,0xaa, 505 | 0x24,0x76,0x2a,0xfa,0x5a,0xb4,0x2a,0x54,0xf6,0x5a,0xfa,0x5a,0x74,0x5a, 506 | 0x54,0xf6,0x5a,0x7a,0x9a,0x54,0x3a,0xac,0x76,0xaa,0x4a,0xfa,0x54,0xea, 507 | 0x26,0xfa,0x74,0xaa,0xfe,0x5c,0xfe,0x24,0xf6,0x5a,0xfa,0xaa,0xdc,0xfa, 508 | 0x10,0xfe,0x28,0x28,0x10,0x28,0xc6,0xa4,0x54,0xe4,0x54,0xc6,0xfc,0x44, 509 | 0xd2,0xac,0xf8,0xae,0xda,0x8a,0xf2,0x22,0xfc,0x58,0x2e,0xfa,0x72,0xaa, 510 | 0x10,0xfe,0x20,0x3c,0x24,0x44,0x8c,0x48,0xee,0x54,0x68,0xba,0x2c,0x6a, 511 | 0x48,0xee,0x58,0x6c,0xbe,0x24,0x6a,0x48,0xee,0x5c,0x6c,0xbe,0x20,0x72, 512 | 0x7e,0x42,0x42,0x7e,0x42,0x42,0x7e,0xbe,0xa2,0xa2,0xbe,0xa2,0xa2,0xbe, 513 | 0x7c,0x44,0x7c,0x44,0x7c,0xfe,0x10,0xee,0xaa,0xee,0xaa,0xee,0x12,0x26, 514 | 0x7c,0x44,0x7c,0x20,0x7e,0xaa,0x56,0x28,0x7c,0x28,0xfe,0x7c,0x44,0x7c, 515 | 0x7c,0x44,0x7e,0x50,0xbc,0x10,0xfe,0x08,0xfc,0xb4,0xfe,0xa8,0xe8,0x36, 516 | 0x10,0x7c,0x38,0xfe,0x44,0xba,0x38,0x08,0xee,0xb8,0xee,0xa8,0xee,0x08, 517 | 0x1e,0xea,0xb2,0xe6,0xbe,0xf2,0x1e,0x7c,0x44,0x78,0x44,0xba,0x28,0xfe, 518 | 0x08,0xfc,0xa8,0xfe,0xa4,0xfe,0x14,0x0c,0xf4,0xbe,0xea,0xbe,0xd4,0x26, 519 | 0x7c,0x44,0xfe,0x44,0x7c,0x54,0xb2,0x04,0xee,0xa4,0xfe,0xaa,0xee,0x0a, 520 | 0x7c,0x44,0x7c,0x38,0xfe,0x34,0xdc,0x06,0xf8,0xaa,0xfe,0xaa,0xf4,0x2a, 521 | 0x08,0xfe,0xb4,0xfe,0xa0,0xec,0x0c,0x28,0xfe,0x38,0xfe,0x44,0xba,0x38, 522 | 0x7c,0x7c,0x28,0xfe,0x54,0x38,0xd6,0x1e,0xea,0xbe,0xe4,0xae,0xfc,0x0e, 523 | 0x28,0xfe,0xaa,0xfe,0xaa,0xaa,0xfe,0x10,0x7c,0x16,0xfc,0x10,0xfe,0x7c, 524 | 0x7c,0x44,0xfe,0x52,0x5a,0xf4,0x1a,0x3e,0x22,0x3e,0x22,0x3e,0x42,0x86, 525 | 0x20,0xfe,0x20,0x7c,0xa4,0x3c,0x24,0x7e,0x52,0x70,0x5e,0x7a,0x54,0xba, 526 | 0x4e,0xea,0xae,0xea,0x8e,0xaa,0xd6,0x2e,0xfa,0x4e,0x72,0xfe,0x10,0xfe, 527 | 0xee,0x4a,0xee,0xaa,0x4e,0xea,0x56,0x5e,0xfa,0x5e,0x7a,0xfe,0x0a,0x96, 528 | 0x10,0xfe,0x10,0x38,0x54,0x92,0x10,0x10,0x7c,0x10,0xfe,0x10,0x38,0xd6, 529 | 0x10,0xfe,0x10,0x7c,0x10,0x38,0xd6,0x10,0xfe,0x10,0x38,0x54,0xba,0x10, 530 | 0x28,0xf8,0x28,0x78,0x68,0xaa,0x2e,0x5c,0xd4,0x54,0xd4,0xd4,0x54,0x66, 531 | 0x44,0xfe,0x44,0xc6,0xcc,0x74,0x4c,0x24,0xfe,0x24,0x74,0x6c,0xa4,0x2c, 532 | 0x10,0xfe,0x54,0x7c,0x10,0x38,0xd6,0x18,0x68,0x10,0xee,0x7c,0x38,0xd6, 533 | 0x10,0xfe,0x54,0x10,0xfe,0x38,0xd6,0x10,0xfe,0x54,0x7c,0x54,0x38,0xd6, 534 | 0x54,0xd4,0x62,0xc8,0xc8,0x54,0x7a,0x5e,0xd0,0x5e,0xda,0xda,0x64,0x5a, 535 | 0x24,0xfe,0x24,0x6c,0x76,0xa4,0x24,0x50,0xde,0x74,0xd4,0xd4,0x48,0x76, 536 | 0x7c,0x54,0x7c,0x54,0xfe,0x38,0xd6,0x48,0xfe,0x48,0xfc,0xd4,0x48,0x76, 537 | 0x90,0x3c,0x94,0x26,0xfe,0x38,0xd6,0x50,0xc8,0x7e,0xc8,0xdc,0x48,0x7e, 538 | 0x10,0xfe,0x38,0xd6,0x7c,0x44,0xfe,0x54,0xfe,0x92,0x7c,0x10,0x38,0xd6, 539 | 0x48,0xfe,0x54,0xe2,0xd4,0x48,0x76,0x58,0xdc,0x68,0xfe,0xc8,0x5c,0x6a, 540 | 0x5e,0xf2,0x5e,0xf2,0xde,0x54,0x5a,0x4c,0xd4,0x48,0xd4,0xe2,0x5c,0x5c, 541 | 0x10,0xfe,0xaa,0x74,0xfe,0x38,0xd6,0x6a,0xc4,0x48,0xfe,0xd4,0x4c,0x72, 542 | 0x50,0xde,0x4c,0xfe,0xd4,0x5e,0x44,0x44,0xfe,0x54,0xfc,0xd6,0x54,0x4a, 543 | 0x48,0xdc,0x7e,0xd4,0xea,0x5c,0x48,0x10,0x7c,0x38,0x54,0xfe,0x6c,0xb6, 544 | 0x44,0xde,0x44,0xd6,0xd6,0x50,0x5e,0x48,0xd4,0x7e,0xea,0xfe,0x48,0x76, 545 | 0xaa,0xfe,0x28,0x7c,0xfe,0x38,0xd6,0x5e,0xe8,0x4c,0xf6,0xd6,0x44,0x5e, 546 | 0x92,0x6c,0xba,0x10,0xfe,0x38,0xd6,0x54,0xfe,0x54,0xfe,0xdc,0x7e,0x54, 547 | 0x54,0xfe,0x5c,0xfe,0xea,0x5c,0x6a,0x7e,0xdc,0x5c,0xc0,0xfe,0x48,0x6a, 548 | 0x54,0xfe,0x5c,0xd4,0xfe,0x48,0x76,0x48,0xee,0x54,0xee,0xdc,0x4c,0x4e, 549 | 0x54,0xfe,0x54,0xfe,0xdc,0x5c,0x62,0x52,0xfe,0x52,0xfa,0xee,0x52,0x7a, 550 | 0x5c,0xfe,0x54,0xea,0xfe,0x62,0x6a,0x52,0xe4,0x52,0xfc,0xd6,0x54,0x6a, 551 | 0x40,0x7e,0x52,0x90,0x10,0x28,0xc6,0x90,0x1e,0x2a,0x08,0x88,0x94,0xa2, 552 | 0x54,0x86,0x2a,0x54,0x84,0x74,0x7a,0xe8,0x2e,0xb6,0xe4,0x24,0xa4,0x7a, 553 | 0x10,0x10,0x5c,0x50,0x50,0x50,0xfe,0xfe,0x10,0x10,0x5c,0x50,0x50,0xfe, 554 | 0x6a,0x08,0xfe,0x14,0x5c,0x52,0xfa,0x10,0x5c,0x50,0xfe,0x54,0x9a,0x70, 555 | 0x10,0x5e,0xfc,0x76,0x5a,0x76,0x7e,0x7e,0x54,0x7e,0x54,0x46,0x54,0xbe, 556 | 0xfe,0x48,0x6a,0xac,0x68,0x4a,0x8e,0xea,0x5e,0x68,0xbc,0x6a,0x44,0x9a, 557 | 0x2e,0x4a,0x60,0x4e,0x6a,0xc4,0x5a,0x5e,0x2a,0xd0,0x2e,0xfa,0x74,0xaa, 558 | 0x3c,0x34,0x24,0xfe,0x54,0x7e,0x0c,0x40,0x7e,0xb4,0xfe,0x54,0x7e,0x0c, 559 | 0x10,0x7c,0x10,0xfe,0x54,0xfe,0x7c,0x48,0x48,0x7a,0x4c,0x48,0x7a,0xce, 560 | 0x0c,0x70,0x1e,0xf0,0x1e,0xf0,0x1e,0x0c,0x70,0x50,0x7e,0x48,0x44,0xe2, 561 | 0x7c,0x44,0x7c,0x50,0x7e,0x48,0xe6,0x40,0x7e,0xb8,0x7c,0x54,0x24,0xd2, 562 | 0x10,0x12,0xf4,0x38,0x54,0x92,0x30,0x50,0x12,0xf4,0x38,0x54,0x92,0x30, 563 | 0x30,0x00,0x32,0xd4,0x58,0x94,0x32,0x14,0xfe,0x10,0x54,0x38,0xd4,0x32, 564 | 0x84,0x14,0x9e,0x36,0x94,0x92,0x9e,0x88,0x1c,0x8c,0x3e,0x88,0x88,0xb6, 565 | 0xa0,0x3e,0xd8,0x3c,0x84,0x84,0x82,0xbe,0x02,0xba,0x2a,0xba,0x82,0x86, 566 | 0x88,0x3e,0xaa,0x3e,0xaa,0xaa,0xbe,0x88,0x08,0x94,0x3a,0x80,0x9c,0x9c, 567 | 0x94,0x14,0x94,0x22,0x9c,0x94,0x9c,0x10,0x7c,0x44,0x7c,0xda,0x54,0xb2, 568 | 0x88,0x1c,0x88,0x3e,0x88,0x94,0xba,0x88,0x3e,0xaa,0x3c,0xb4,0xc8,0xb6, 569 | 0x88,0x3e,0x94,0x14,0x94,0x98,0xbe,0x90,0x08,0xbe,0x08,0x9c,0x88,0xbe, 570 | 0x98,0x00,0x98,0x6a,0xac,0xca,0x98,0x94,0x3e,0x88,0x1c,0x88,0xbe,0x88, 571 | 0x98,0x1e,0xa8,0x3e,0x94,0x94,0xa6,0x84,0x18,0xbe,0x08,0x9c,0x94,0x9c, 572 | 0x84,0x38,0xa6,0x38,0xb6,0xb4,0xd2,0x88,0x3e,0x94,0x3a,0x98,0x9a,0xaa, 573 | 0x8a,0x3e,0x88,0x3c,0x8a,0x84,0xba,0x94,0x22,0x88,0x14,0xa2,0x9c,0x9c, 574 | 0xa0,0x3e,0x9c,0x7e,0xb4,0xbe,0x8c,0xaa,0x08,0xbe,0x22,0xbe,0xa2,0xa6, 575 | 0x88,0x3e,0x90,0x16,0xba,0x94,0x9a,0xbe,0x22,0x94,0x26,0xbe,0x9c,0xaa, 576 | 0xbe,0x22,0xbe,0x24,0xb6,0xa4,0xb6,0x88,0x1c,0x88,0x3e,0x94,0x9c,0x94, 577 | 0x88,0x3e,0x94,0x08,0xb6,0x9c,0xa4,0x84,0x3e,0xa4,0x3c,0xa6,0xbc,0xda, 578 | 0xbc,0x24,0xbc,0x00,0xbc,0xac,0xfe,0xba,0x2e,0xbe,0x2e,0xba,0x82,0xaa, 579 | 0x94,0x3e,0x94,0x7e,0xaa,0xd0,0x9c,0xae,0x7a,0xae,0x7a,0xde,0xfa,0x8a, 580 | 0x9c,0x14,0xbe,0x10,0x9e,0xaa,0x96,0x94,0x3e,0x94,0x7e,0xaa,0xbe,0xa2, 581 | 0xbe,0x24,0xae,0x2e,0xa4,0xb6,0xcc,0x94,0x1e,0xb4,0x1e,0x90,0xfe,0x10, 582 | 0x8c,0x34,0x9e,0x1a,0x9e,0x80,0xaa,0x88,0x3e,0xa2,0x1c,0xaa,0x9c,0xa2, 583 | 0x94,0x7e,0xaa,0x3e,0xfe,0x88,0xb6,0x96,0x3e,0x96,0x3a,0xbe,0x88,0xaa, 584 | 0xbe,0x1a,0xbe,0x3a,0x9e,0xba,0x92,0x94,0x36,0xba,0x7a,0x9a,0xac,0xda, 585 | 0x10,0x10,0x54,0x58,0x10,0x28,0xc6,0x5e,0x44,0xe4,0xc4,0x44,0x64,0x8c, 586 | 0x7e,0x48,0x6a,0x6c,0x48,0x54,0xa2,0x4a,0x94,0x4a,0x10,0x54,0x28,0xc6, 587 | 0x92,0xfe,0x48,0x6a,0x6c,0x48,0xb6,0x10,0x1c,0x10,0x7c,0x7c,0x00,0xaa, 588 | 0x80,0xfe,0x54,0xfe,0x54,0xfe,0xaa,0x74,0x5e,0xb4,0x24,0xca,0x00,0xaa, 589 | 0x48,0x5c,0xfe,0xd4,0x7e,0x54,0xa6,0xfe,0xaa,0xf2,0xae,0xee,0x00,0xaa, 590 | 0x28,0xfc,0x5c,0x7c,0xae,0x00,0xaa,0x28,0x6c,0xf4,0x6c,0xb6,0x00,0xaa, 591 | 0x54,0x5e,0xec,0xd4,0x6a,0x40,0xaa,0x28,0xc6,0x28,0x28,0x10,0x28,0xc6, 592 | 0x48,0x48,0x7e,0x40,0x7c,0x44,0x84,0xae,0xa8,0xee,0x8a,0xea,0xb4,0xaa, 593 | 0x50,0x7c,0x90,0x10,0xfe,0x10,0x10,0xd0,0xde,0xf4,0x54,0xd4,0x48,0x76, 594 | 0xd0,0xde,0xee,0x4e,0xd6,0x6a,0x56,0xc8,0xdc,0xc8,0x7e,0xc4,0x7e,0x54, 595 | 0x14,0x10,0xfe,0x10,0x10,0x28,0xc6,0xbe,0x52,0xb2,0x76,0xb0,0x32,0xde, 596 | 0x4a,0x48,0xfe,0x48,0xc8,0x54,0x62,0xa8,0x5e,0xba,0x7e,0xa8,0x2a,0xde, 597 | 0x10,0xfe,0x54,0x20,0x54,0xfe,0x10,0xfe,0x10,0x10,0x7c,0x10,0x14,0xfe, 598 | 0xfe,0x10,0x10,0x7c,0x10,0x10,0xfe,0xe6,0x4c,0x6c,0xee,0x4c,0xd4,0x2e, 599 | 0xfe,0x52,0x5e,0xf2,0x5e,0xec,0x16,0xca,0x7e,0x48,0xea,0x5c,0xea,0x18, 600 | 0xfe,0x6a,0x7e,0xea,0x7e,0xc8,0x3e,0x50,0x7e,0x90,0x10,0x7c,0x10,0xfe, 601 | 0x10,0xfe,0x24,0x7e,0x5c,0x48,0xbe,0x7e,0x52,0x7e,0x52,0x7e,0x52,0x96, 602 | 0xfe,0x92,0x92,0xfe,0x92,0x92,0xfe,0x10,0xfe,0x92,0xfe,0x92,0x92,0xfe, 603 | 0x10,0xfe,0x92,0xfe,0x92,0xfe,0x10,0x7c,0x54,0x7c,0x54,0xfe,0x22,0xc6, 604 | 0xf0,0xbe,0xf4,0xb4,0xb4,0xf4,0x0c,0xfe,0x10,0xba,0xba,0xba,0x82,0xfe, 605 | 0x7c,0x54,0x7c,0x54,0x7c,0xaa,0x48,0x5e,0x56,0xf6,0xde,0x56,0x76,0x9e, 606 | 0x2e,0xc6,0x96,0xea,0x7c,0x54,0x7c,0x06,0xea,0xe4,0xea,0xf0,0xee,0x0e, 607 | 0xfe,0x54,0xfe,0x38,0xd6,0x7c,0x7c,0x7c,0x54,0x7c,0x28,0xfe,0x00,0xc6, 608 | 0x9e,0xe4,0x9e,0x6a,0xec,0x58,0xb6,0x08,0x7e,0xdc,0x7e,0xea,0x76,0xa2, 609 | 0x08,0x7e,0xc4,0x7e,0xea,0x7e,0xaa,0x74,0xaa,0x44,0xba,0x7c,0x28,0xce, 610 | 0x74,0xaa,0x44,0xba,0x28,0x10,0xfe,0x10,0x7e,0x42,0x7e,0x42,0x42,0x7e, 611 | 0xfe,0x10,0x7c,0x44,0x7c,0x44,0x7c,0x48,0xee,0xb2,0xea,0xa6,0xe2,0x06, 612 | 0x10,0x7c,0x44,0x7c,0xfe,0x10,0xfe,0x08,0x7e,0x4a,0x7c,0x54,0x48,0xb6, 613 | 0x00,0x7c,0x54,0x54,0x54,0x54,0xfe,0x44,0xfe,0x44,0x82,0x7c,0x54,0xfe, 614 | 0x04,0x7e,0x64,0xaa,0x7c,0x54,0xfe,0xee,0xaa,0xee,0x12,0x7c,0x54,0xfe, 615 | 0x7e,0x42,0x7e,0x42,0x7e,0x42,0x7e,0x10,0xfe,0x10,0xbc,0xa4,0xbc,0xfe, 616 | 0x2e,0xfa,0x2e,0x7a,0x6e,0xaa,0x2e,0x10,0x54,0x92,0x3c,0xe4,0x3c,0x3c, 617 | 0x0c,0x70,0x3c,0xfe,0x7c,0xa4,0x3c,0x3c,0xa4,0xbc,0xa4,0xfe,0x10,0x92, 618 | 0x10,0xfe,0x38,0x38,0xfe,0x00,0xc6,0xfe,0xb2,0xfe,0xb2,0xfe,0xb4,0xfa, 619 | 0x44,0xfe,0x10,0xfe,0x5c,0x5c,0x9c,0x40,0x7c,0x90,0xfe,0x10,0x28,0xc6, 620 | 0x40,0x7e,0xaa,0x7a,0x2a,0x5a,0x8e,0x9e,0xe0,0x5e,0xf2,0x5e,0x6c,0x9e, 621 | 0xfe,0x20,0x20,0x7c,0xa4,0x24,0x3c,0xe8,0x5c,0x5a,0x88,0x6a,0x64,0x18, 622 | 0xfe,0x4a,0x4a,0x9e,0x6a,0x6a,0x12,0xe4,0x5e,0x56,0x9e,0x7a,0x74,0x0a, 623 | 0xe4,0x5e,0x56,0x8c,0x7e,0x6c,0x0e,0xea,0x5e,0x4a,0x94,0x6a,0x74,0x1e, 624 | 0x7c,0x00,0xfe,0x10,0x54,0x92,0x30,0x48,0xe8,0x28,0x48,0xe8,0x4a,0x4e, 625 | 0x44,0xe4,0x2e,0x44,0xe4,0x44,0x5e,0x5c,0xf4,0x3c,0x54,0xfc,0x54,0x7e, 626 | 0x5e,0xf2,0x32,0x5e,0xec,0x4c,0x56,0x48,0xfe,0x2a,0x7e,0xea,0x7e,0x48, 627 | 0xfe,0x54,0x7c,0x00,0xfe,0x54,0xb2,0x76,0x52,0xac,0x44,0xba,0x54,0xb2, 628 | 0x24,0xfe,0x6c,0xb6,0xfe,0x54,0xb2,0x5e,0xec,0x2c,0x40,0xfe,0x56,0x5e, 629 | 0x74,0x24,0xf4,0x24,0x78,0xaa,0x2e,0xc8,0x48,0xea,0x6c,0xc8,0xd4,0x62, 630 | 0xe4,0x54,0xe4,0x54,0xc6,0xfc,0x44,0xc8,0x5c,0xda,0x68,0xca,0xc4,0x58, 631 | 0xd0,0x4a,0xd2,0x74,0xfa,0xd0,0x6e,0xec,0x54,0xe8,0x56,0xea,0xc4,0x58, 632 | 0xdc,0x54,0xfe,0x48,0xdc,0xc8,0x7e,0xd4,0x7e,0xe2,0x7e,0xd4,0xd4,0x66, 633 | 0xc4,0x58,0xfe,0x5c,0xdc,0xc8,0x7e,0x2e,0xfa,0x20,0xfe,0xaa,0x74,0xaa, 634 | 0xc8,0x5c,0xc8,0x7e,0xdc,0xdc,0x62,0x10,0xfe,0x82,0x28,0x28,0x44,0x82, 635 | 0x10,0xfe,0xaa,0x4c,0xf8,0x2a,0xce,0x10,0xfe,0xaa,0x4c,0x38,0x10,0xfe, 636 | 0x10,0xfe,0xaa,0x4c,0x30,0xca,0xba,0x10,0xfe,0x44,0x24,0x28,0x28,0xfe, 637 | 0x10,0x7c,0x28,0xfe,0x44,0xfe,0x10,0x10,0x7c,0x28,0xfe,0x7c,0x10,0xfe, 638 | 0x24,0xfe,0x5a,0xfe,0x5a,0x6c,0xb6,0x48,0x6e,0xb4,0x24,0x24,0x24,0x2c, 639 | 0x48,0x6e,0xb4,0x10,0xfe,0x10,0xee,0x48,0x6e,0xb4,0x10,0x7c,0x54,0x7c, 640 | 0x48,0x6e,0xb4,0x7c,0x50,0x3e,0xd2,0x48,0x6e,0xb4,0x7e,0x14,0xfe,0x10, 641 | 0x48,0x6e,0xb4,0x18,0xfe,0x28,0x18,0x48,0x6e,0xb4,0x68,0x7e,0x6a,0xb6, 642 | 0x48,0x6e,0xb4,0x38,0xc6,0x38,0x38,0x48,0x6e,0xb4,0xfe,0x92,0x38,0xd6, 643 | 0x48,0x6e,0xb4,0x7c,0x44,0xfe,0x48,0x48,0x6e,0xb4,0xfe,0xb2,0x3c,0x3c, 644 | 0x48,0x6e,0xb4,0x2a,0xfe,0x7a,0xae,0x48,0x6e,0xb4,0xee,0xea,0x9a,0xe8, 645 | 0x48,0x6e,0xb4,0x4c,0xee,0x38,0xd6,0x48,0x6e,0xb4,0xee,0xee,0xba,0xba, 646 | 0x54,0x10,0xfe,0x10,0x38,0xd6,0x10,0xb4,0x54,0xe2,0x5c,0xd4,0xd4,0x6c, 647 | 0xa8,0x5c,0xc8,0x7e,0xd4,0xdc,0x54,0xa4,0x7e,0xec,0x66,0xfc,0xea,0x4e, 648 | 0x10,0x64,0x18,0x24,0xfa,0x10,0x92,0x7c,0x10,0x60,0x14,0xfa,0x10,0x92, 649 | 0x5e,0x82,0x42,0xbe,0x50,0xf2,0x5e,0x48,0x8e,0x52,0xaa,0x46,0xe2,0x46, 650 | 0x40,0x9e,0x44,0xa4,0x44,0xe4,0x5e,0x48,0xbe,0x6a,0xaa,0x76,0xe2,0x66, 651 | 0x48,0xbe,0x48,0xaa,0x7e,0xc8,0x4e,0x42,0x9c,0x54,0xbe,0x54,0xf4,0x5a, 652 | 0x7c,0x94,0x56,0x92,0x5a,0xe4,0x5a,0x10,0x7c,0xfe,0x24,0xfa,0x10,0x92, 653 | 0x5e,0x96,0x56,0xbe,0x56,0xf6,0x5e,0x4c,0x94,0x48,0xb6,0x48,0xe0,0x4c, 654 | 0x5c,0x94,0x5c,0xb4,0x5c,0xd4,0x7e,0x7c,0x94,0x48,0xb6,0x5c,0xc8,0x7e, 655 | 0x48,0xbe,0x48,0x9c,0x40,0xdc,0x5c,0x48,0x94,0x6e,0x80,0x5c,0xd4,0x5c, 656 | 0x48,0xbe,0x54,0xba,0x54,0xd4,0x66,0x48,0x94,0x6e,0x80,0x7e,0xd4,0x7a, 657 | 0x4c,0x94,0x5e,0xba,0x5e,0xf0,0x5e,0x4c,0x8c,0x40,0xbe,0x52,0xfe,0x52, 658 | 0x48,0xbe,0x48,0xbe,0x62,0xd4,0x66,0x48,0x9c,0x54,0x9c,0x7e,0xea,0x48, 659 | 0x54,0xa2,0x54,0xba,0x40,0xf2,0x6e,0x5c,0x84,0x7e,0x88,0x6a,0xdc,0x6a, 660 | 0x48,0x9c,0x54,0x9c,0x7a,0xdc,0x6a,0x7e,0x94,0x5c,0x90,0x5e,0xee,0x4a, 661 | 0x48,0xbe,0x5c,0x9c,0x48,0xdc,0x6a,0x5a,0xae,0x54,0xb6,0x54,0xdc,0x56, 662 | 0x48,0xbe,0x62,0x9e,0x74,0xd6,0x56,0x48,0x9c,0x48,0xbe,0x5c,0xdc,0x62, 663 | 0x56,0xbc,0x5e,0xbc,0x46,0xdc,0x5a,0xfe,0xfe,0x28,0xee,0x28,0xee,0x48, 664 | 0xfe,0xaa,0xfe,0x24,0xbc,0xa4,0xfe,0xfe,0xaa,0xfe,0x38,0xfe,0x34,0xdc, 665 | 0x44,0xfe,0x10,0x7c,0x10,0xfe,0x10,0x44,0xfe,0x7c,0x10,0xfe,0x10,0xee, 666 | 0xfa,0x5e,0xf4,0x5e,0x64,0xfe,0x74,0x44,0xfe,0x10,0xfe,0x2a,0xfc,0x2a, 667 | 0xfe,0x12,0x5a,0x12,0x36,0xda,0x36,0xfe,0x5a,0x36,0xda,0x7c,0x28,0xfe, 668 | 0xfe,0x5a,0x36,0xda,0x20,0x7c,0x7c,0x12,0x7c,0x18,0xfe,0x3c,0xd0,0x1e, 669 | 0x12,0x7c,0x18,0xfe,0x30,0xde,0x02,0x12,0x7c,0x18,0xfe,0x20,0xdc,0x1c, 670 | 0x54,0xfe,0x54,0xd4,0x7e,0xd4,0x64,0xfe,0x24,0x3c,0x3c,0x24,0xfe,0x04, 671 | 0xfe,0x6a,0xfe,0x10,0x7c,0x10,0xfe,0xee,0xee,0x82,0xfe,0xba,0xfa,0x8a, 672 | 0xf6,0x7c,0x6e,0x7c,0x66,0xf4,0x3a,0x10,0xfe,0x92,0xaa,0x92,0xaa,0x86, 673 | 0xfe,0xaa,0xea,0xbe,0xe0,0xa2,0xbe,0x10,0xfe,0x24,0xfa,0x44,0x7c,0x44, 674 | 0xe4,0xbe,0xe4,0xbe,0xf6,0xb6,0xa4,0xfe,0x92,0xfe,0x7c,0x44,0x7c,0x44, 675 | 0x28,0xee,0x28,0xfe,0x44,0x7c,0x44,0xe8,0xae,0xf6,0xaa,0xf6,0xbe,0xa2, 676 | 0x24,0x56,0xf4,0x76,0x56,0x74,0x56,0xe4,0xb8,0xe6,0xb8,0xf6,0xb4,0xb2, 677 | 0xea,0xa2,0xf4,0xaa,0xf6,0xb2,0xbe,0xee,0xaa,0xfe,0xa8,0xee,0xb6,0xaa, 678 | 0xf0,0xbe,0xec,0xac,0xf4,0xa8,0xb6,0xf4,0xbe,0xe4,0xbe,0xf4,0xb4,0xba, 679 | 0xfe,0x90,0xfc,0x84,0xfc,0x90,0xfe,0xf4,0xa6,0xfe,0x96,0xf0,0xae,0xfe, 680 | 0x10,0x7e,0x42,0x7a,0x5e,0x42,0x7e,0xfe,0x28,0x74,0x10,0x7c,0x10,0xfe, 681 | 0x46,0xba,0xee,0xba,0xfe,0x00,0xc6,0x0c,0x70,0xfe,0x10,0x7c,0x44,0x7c, 682 | 0x10,0x28,0xd6,0x38,0xfe,0x44,0x7c,0x48,0xfe,0xa0,0xbc,0xf4,0xb4,0xa6, 683 | 0x4a,0xea,0xaa,0xb0,0xee,0xaa,0xae,0x10,0x7c,0x44,0x7c,0x54,0x48,0xe6, 684 | 0x38,0xc8,0x7c,0x54,0x7c,0x42,0x3e,0x28,0xfe,0x28,0x4a,0xcc,0x4a,0x4e, 685 | 0x28,0xfe,0x28,0x7c,0xfe,0x24,0xfa,0x28,0xfe,0x7c,0x48,0xfe,0x28,0xd8, 686 | 0x28,0xfe,0x20,0xfe,0x40,0xbc,0x3c,0x28,0xfe,0x28,0xfe,0x10,0x7c,0x7c, 687 | 0x28,0xfe,0x28,0x54,0xfe,0x10,0xee,0x28,0xfe,0x10,0x28,0xfe,0x10,0x92, 688 | 0x28,0xfe,0x7c,0x44,0x7c,0xfe,0x10,0x28,0xfe,0x28,0x5e,0xc2,0x5a,0x5a, 689 | 0x28,0xfe,0x54,0x08,0xfe,0x38,0xd6,0x28,0xfe,0x8c,0x34,0x88,0x36,0x9c, 690 | 0x28,0xfe,0x5c,0x40,0xfe,0x38,0xd6,0x28,0xfe,0x3c,0x18,0xfe,0x34,0xdc, 691 | 0x28,0xfe,0x32,0xd4,0x52,0xfe,0xaa,0x28,0xfe,0x28,0x7c,0x76,0x74,0xba, 692 | 0x28,0xfe,0xba,0x6c,0xfe,0x38,0xd6,0x10,0x7c,0x54,0x54,0x7c,0x14,0xfa, 693 | 0xfe,0x10,0xee,0x54,0x7c,0x14,0xfa,0x20,0x7c,0x54,0x54,0x54,0x54,0xfe, 694 | 0x10,0x7c,0xfe,0x50,0x9a,0x54,0x92,0x5c,0x80,0x7e,0xc4,0x44,0x44,0x4c, 695 | 0x56,0xb8,0x56,0xfa,0x7a,0x52,0x56,0x56,0xb8,0x56,0xfa,0x52,0x7a,0x46, 696 | 0x56,0xb8,0x5e,0xea,0x52,0x7a,0x56,0x10,0xfe,0x10,0x2a,0xec,0x24,0x72, 697 | 0x10,0x7c,0x10,0xfc,0x2a,0xe4,0x32,0x28,0x7a,0x28,0xfe,0x66,0xd4,0x6a, 698 | 0x48,0xfe,0x48,0xdc,0xfe,0x68,0xb6,0x10,0xfe,0x54,0x7c,0xfe,0x68,0xb6, 699 | 0x4a,0xfe,0x28,0x5e,0xfa,0x7e,0x5a,0x62,0x7a,0xaa,0x72,0xfe,0x68,0xb6, 700 | 0x50,0xfe,0x2c,0x4c,0xf4,0x68,0x56,0xfe,0x28,0xfe,0xaa,0xce,0x82,0xfe, 701 | 0xfe,0x54,0x7c,0x10,0xfe,0x28,0xf6,0x7c,0x44,0x7c,0x44,0x7c,0x2a,0xce, 702 | 0x5e,0xf2,0x5e,0xf2,0x5e,0x6c,0x96,0x5e,0xf2,0x3e,0x52,0xfe,0x4c,0x56, 703 | 0x54,0xfe,0xaa,0x38,0x28,0x3a,0xce,0xe8,0xce,0xe6,0x38,0x38,0x3a,0xce, 704 | 0x2e,0xfa,0x5e,0x2a,0xfe,0x74,0xaa,0x4e,0x7a,0xae,0x7a,0xee,0x6c,0x76, 705 | 0x38,0xc8,0x7e,0x52,0x7e,0x42,0x86,0x6e,0xa6,0x7a,0x7e,0x74,0x5e,0xb4, 706 | 0x38,0xfe,0x00,0x38,0x00,0x7c,0x7c,0x44,0xe4,0x1e,0xc4,0x04,0xe4,0xe4, 707 | 0x44,0xde,0x04,0xd4,0x0c,0xc4,0xcc,0x52,0xda,0x1a,0xda,0x1a,0xd2,0xe2, 708 | 0x5e,0xe2,0x02,0xde,0x10,0xd2,0xde,0x48,0xfe,0x10,0xde,0x12,0xd2,0xe6, 709 | 0x5c,0xd4,0x26,0xdc,0x14,0xc8,0xf6,0x50,0xdc,0x28,0xc8,0x3e,0xc8,0xc8, 710 | 0x5e,0xd2,0x1e,0xd4,0x14,0xd2,0xe2,0x5e,0xe4,0x04,0xd6,0x14,0xd4,0xfe, 711 | 0xbe,0xc8,0x2a,0xc8,0x3e,0xc8,0xc8,0x5e,0xe2,0x1a,0xc2,0x1a,0xda,0xc6, 712 | 0x4a,0xc8,0x3e,0xc4,0x3c,0xd4,0xfa,0x48,0xdc,0x08,0xbe,0x04,0xfe,0xd4, 713 | 0x44,0xd8,0x3e,0xc8,0x1c,0xd4,0xdc,0x48,0xfe,0x08,0xdc,0x00,0xd2,0xee, 714 | 0x5e,0xd6,0x0a,0xd6,0x00,0xd2,0xee,0xb2,0xdc,0x26,0x94,0x3e,0xd0,0xee, 715 | 0x5c,0xc8,0x3c,0xd4,0x3e,0xd4,0xdc,0x44,0xfe,0x24,0xbc,0x2e,0xf4,0xea, 716 | 0x46,0xd6,0x1c,0xc4,0x1e,0xc0,0xd2,0x94,0xfe,0x22,0xbe,0x14,0xd4,0xe6, 717 | 0x48,0xfe,0x08,0xbe,0x22,0xd4,0xe6,0xbe,0xea,0x3e,0xc8,0x3e,0xdc,0xea, 718 | 0xbe,0xea,0x3e,0xaa,0x36,0xfe,0xe2,0xaa,0xd4,0x22,0xc8,0x2a,0xd4,0xe2, 719 | 0x48,0xd4,0x2e,0xc0,0x3e,0xfe,0xea,0x4a,0xdc,0x08,0xbe,0x10,0xee,0xce, 720 | 0x94,0xfe,0x14,0xbe,0x1c,0xfe,0xd4,0x52,0xfe,0x2a,0xbe,0x2e,0xda,0xea, 721 | 0x56,0xfc,0x1e,0xbc,0x06,0xdc,0xda,0x56,0xfa,0x74,0x9a,0x30,0xfe,0x38, 722 | 0x94,0xfe,0x08,0xbe,0x16,0xfc,0xd2,0x94,0xfe,0x1c,0xde,0x14,0xc8,0xf6, 723 | 0x28,0x44,0x10,0x28,0xc6,0x38,0x38,0xfe,0x00,0x7c,0x44,0x7c,0x28,0xfe, 724 | 0x28,0x7c,0x7c,0xfe,0x44,0x38,0xfe,0x38,0xc8,0x3c,0x3c,0xda,0x2c,0xda, 725 | 0x7c,0x44,0x7c,0x44,0x7c,0x00,0xc6,0x38,0xc8,0x7c,0x44,0x7c,0x7c,0xc6, 726 | 0xe4,0xbe,0xe4,0xa6,0xec,0x14,0xac,0x28,0x44,0xfa,0x28,0x7c,0x7c,0xc6, 727 | 0x28,0x4e,0xc8,0x4e,0x3c,0x3c,0xc6,0x10,0x7c,0x10,0xfe,0x44,0x7c,0xc6, 728 | 0xe4,0xbe,0xf2,0xae,0xe4,0x04,0xac,0x10,0x7c,0x54,0xfe,0x44,0x7c,0xc6, 729 | 0xfe,0xaa,0xfe,0x7c,0x44,0x7c,0xc6,0x2a,0x5e,0xc4,0x42,0x3c,0x3c,0xc6, 730 | 0x28,0xfe,0x2a,0xfe,0xc4,0x7c,0xc6,0x2e,0xc6,0xea,0x7c,0x44,0x7c,0xc6, 731 | 0x40,0xfe,0x5a,0xbe,0x24,0x3c,0xc6,0x24,0x58,0xfe,0x48,0x3c,0x3c,0xc6, 732 | 0x90,0x1e,0x2a,0x94,0x7c,0x7c,0xc6,0x44,0xee,0x44,0xaa,0x7c,0x7c,0xc6, 733 | 0x54,0xfe,0xaa,0x7c,0x44,0x7c,0xc6,0x24,0x48,0x6e,0xbc,0x24,0x3c,0xc6, 734 | 0x10,0x7c,0x10,0xfe,0x28,0xaa,0x58,0x10,0x7c,0x10,0xfe,0x1c,0x50,0xbe, 735 | 0x2e,0xf2,0x2e,0xf8,0x6e,0x60,0x9e,0x7c,0x44,0x7c,0x10,0x5c,0x50,0xbe, 736 | 0xe6,0xaa,0xe4,0x4a,0xf0,0xce,0xee,0x10,0x3c,0x24,0x3e,0xfc,0x14,0x6c, 737 | 0x10,0xfe,0x54,0x7c,0x54,0xfe,0x10,0xfe,0x92,0xfe,0x7c,0x54,0xfe,0x10, 738 | 0xee,0x40,0xfe,0xe4,0x44,0xea,0x5e,0xfc,0x54,0xc8,0xf6,0x5c,0xc8,0x7e, 739 | 0xe8,0x54,0xee,0xe0,0x5e,0xfe,0x56,0xe8,0x54,0xee,0xe0,0x5a,0xfa,0x5a, 740 | 0x24,0xde,0xea,0x5e,0xe4,0xbe,0xe4,0x28,0x7c,0x7c,0x00,0x7e,0x68,0xb6, 741 | 0xbe,0x4a,0x0a,0xd2,0x66,0x40,0xbe,0x84,0x58,0x10,0xde,0x54,0x64,0xbe, 742 | 0x9e,0x50,0x1e,0xda,0x54,0x6a,0xbe,0x8a,0x3e,0x08,0xea,0x6a,0x48,0xbe, 743 | 0xaa,0x08,0x3e,0xdc,0x6a,0x48,0xbe,0x88,0x5e,0x1e,0xd0,0x5e,0x52,0xbe, 744 | 0x9e,0x52,0x1e,0xd2,0x5c,0x56,0xbe,0x94,0x3e,0x08,0xdc,0x48,0x54,0xbe, 745 | 0x94,0x3e,0x08,0xea,0x7e,0x50,0xbe,0xbe,0x04,0x3e,0xea,0x7e,0x6a,0xbe, 746 | 0x88,0x7e,0x2a,0xfe,0x5c,0x6a,0xbe,0x98,0x1c,0x28,0xfe,0x54,0x5c,0xbe, 747 | 0x88,0x3e,0x1c,0xdc,0x7e,0x48,0xbe,0xbe,0x2a,0x3e,0xea,0x76,0x5e,0xbe, 748 | 0x94,0x1e,0x34,0xde,0x54,0x5e,0xbe,0x94,0x3e,0x16,0xda,0x6e,0x54,0xbe, 749 | 0xbe,0x2a,0x1c,0xdc,0x7e,0x48,0xbe,0x8e,0x4a,0x0a,0xde,0x52,0x5a,0xbe, 750 | 0x94,0x3e,0x08,0xd4,0x5c,0x54,0xbe,0x88,0x1c,0x3e,0xd4,0x7e,0x48,0xbe, 751 | 0x88,0x1c,0x3e,0xd4,0x5c,0x6a,0xbe,0x88,0x3e,0x14,0xfe,0x6a,0x76,0xbe, 752 | 0xb6,0x12,0x24,0xf6,0x5c,0x62,0xbe,0x88,0x3e,0x2a,0xfe,0x5c,0x62,0xbe, 753 | 0xf6,0x56,0xfc,0x56,0x66,0xf4,0x74,0x2e,0xfa,0x5c,0xfa,0x0a,0x6c,0x68, 754 | 0x7e,0x2a,0xfc,0x6a,0xfa,0x2c,0xf8,0x46,0xbe,0x6c,0xbe,0xe6,0x6c,0xb4, 755 | 0x2e,0x7a,0x2c,0xfa,0x4a,0xbc,0x38,0xee,0x42,0xe2,0xee,0xa8,0xea,0xee, 756 | 0xbe,0x14,0xbe,0x36,0xa2,0xbe,0xbe,0xea,0x5e,0xea,0xf2,0xac,0xf4,0xea, 757 | 0x7c,0x54,0x7c,0x54,0x7c,0x10,0xfe,0x38,0xfe,0x54,0x7c,0x54,0x38,0xfe, 758 | 0xfe,0xb2,0xf4,0xbe,0xf6,0x24,0xfc,0x7c,0x44,0xfe,0x54,0x7c,0x10,0xfe, 759 | 0x10,0x28,0xfe,0x10,0xfe,0x54,0xfe,0x44,0xa4,0xfe,0x44,0xe4,0x64,0xc4, 760 | 0x4c,0xae,0xf4,0x5e,0xe4,0x64,0xda,0x44,0xbe,0xf0,0x54,0xf4,0x6a,0xce, 761 | 0x5e,0xb2,0xfe,0x52,0xfe,0x74,0xda,0x5e,0xb2,0xfe,0x52,0xfe,0x7e,0xd2, 762 | 0x4a,0xbe,0xe8,0x5c,0xea,0x64,0xda,0x7e,0xa2,0xf6,0x6a,0xf6,0x7e,0xe2, 763 | 0x5c,0xa4,0xfe,0x48,0xea,0x5c,0xea,0x48,0xbe,0xd4,0x7e,0xdc,0x5c,0xe6, 764 | 0x3c,0x20,0x38,0x20,0xfe,0x28,0x76,0xee,0xaa,0xee,0x82,0x82,0x82,0x86, 765 | 0xee,0xaa,0xee,0x92,0xfa,0xb2,0xd6,0xee,0xee,0x82,0xfe,0xaa,0xfe,0xaa, 766 | 0xee,0xaa,0xfe,0xaa,0xba,0xaa,0xba,0xee,0xee,0xaa,0x92,0xfe,0x92,0xaa, 767 | 0xee,0xee,0x9a,0xaa,0x92,0xee,0xba,0xe4,0xbe,0xc8,0xae,0xaa,0xca,0x96, 768 | 0xcc,0xd4,0x88,0xf6,0xdc,0xbe,0x84,0xfe,0xb2,0xde,0xb2,0xbe,0xd4,0x9a, 769 | 0xe4,0xf6,0xa4,0xf6,0xdc,0x88,0xbe,0xc8,0xfe,0xae,0xc0,0xfe,0x94,0xa6, 770 | 0xc8,0xd4,0xbe,0xc8,0xfe,0x88,0xaa,0xc8,0xdc,0xbe,0xd4,0xe6,0x88,0xbe, 771 | 0xc8,0xd4,0xbe,0xea,0xfe,0x88,0xb6,0xdc,0xd4,0xbe,0xd0,0xde,0xaa,0x96, 772 | 0xd4,0xfe,0x90,0xea,0xdc,0xaa,0x98,0xe4,0xb6,0xe4,0xb6,0xa8,0xdc,0x9c, 773 | 0xde,0xea,0x94,0xe2,0xdc,0x88,0xaa,0xc8,0xfe,0x94,0xfe,0xdc,0xbe,0x88, 774 | 0x28,0x7c,0xa8,0x3c,0xfe,0x38,0xd6,0x4a,0xee,0x6c,0xbe,0xec,0x7c,0xae, 775 | 0x5a,0xfe,0x5c,0xfe,0xfc,0x2c,0xde,0xfe,0x10,0xfe,0x92,0xb6,0x92,0xb6, 776 | 0x38,0xfe,0xb6,0x00,0x7c,0x04,0x7c,0x38,0xfe,0xb6,0x00,0xfe,0x24,0xfa, 777 | 0x38,0xfe,0xb6,0x7c,0x54,0x7c,0x0e,0x10,0x7c,0x10,0xfe,0x44,0x7c,0x44, 778 | 0x26,0x7a,0x24,0xfe,0x56,0x7e,0x54,0x28,0xee,0x28,0xee,0x28,0xee,0x48, 779 | 0xfe,0x10,0xfe,0xaa,0xba,0xaa,0xfe,0x28,0xfe,0x28,0x7c,0x54,0xfe,0x10, 780 | 0x10,0x7c,0x28,0xfe,0x7c,0x44,0x7c,0xfe,0x48,0x5e,0x52,0x5e,0xc0,0x12, 781 | 0x5e,0x74,0x7e,0x7a,0x7e,0x50,0x9a,0xee,0x24,0x4e,0xea,0x6e,0x40,0xd2, 782 | 0x5e,0xa4,0xee,0x0a,0xee,0x60,0x52,0xee,0x04,0xee,0xaa,0x4e,0xe0,0x12, 783 | 0x6e,0x64,0xfe,0x2e,0x70,0x6a,0x9e,0x2e,0xf4,0xbe,0x5a,0x2e,0xd0,0x7a, 784 | 0x2e,0xf4,0x5e,0xfa,0xae,0x90,0xaa,0xfe,0xa4,0xfe,0xfa,0xae,0xf0,0xaa, 785 | 0xae,0x74,0xae,0x2a,0xfe,0x20,0xda,0x7c,0x54,0x7c,0x7c,0x54,0x5c,0xb6, 786 | 0xfc,0x54,0xd2,0x7c,0xd6,0x54,0x92,0x10,0x28,0xd6,0x30,0x34,0x28,0x76, 787 | 0x5e,0xb0,0x5e,0xda,0xda,0x94,0xea,0x48,0xae,0x56,0xe4,0xe4,0x84,0xea, 788 | 0x5e,0xa2,0x5a,0xc2,0xda,0x9a,0xe6,0x44,0xfe,0x10,0xfe,0x7a,0xb4,0x3a, 789 | 0x44,0xbe,0x52,0xec,0xee,0x8a,0xee,0x44,0xfe,0x10,0x7c,0x7c,0x44,0x7c, 790 | 0x7e,0x50,0x7c,0x50,0x7e,0x02,0xaa,0xee,0xca,0xea,0xcc,0xec,0x2a,0xb2, 791 | 0xe8,0xd4,0xfe,0xea,0xfe,0x28,0xb6,0x7c,0x4c,0xfe,0xc6,0x7c,0x44,0x4c, 792 | 0x10,0xfe,0x28,0x38,0xfe,0xaa,0xba,0x38,0xc8,0x7c,0x54,0x7c,0x00,0xaa, 793 | 0x10,0x7c,0x7c,0x40,0x7e,0x02,0xaa,0x08,0xdc,0xdc,0xd0,0xde,0x02,0x2a, 794 | 0x10,0x7c,0x10,0xfe,0x28,0x50,0xae,0x28,0xfe,0x28,0xfe,0x54,0x7c,0xc6, 795 | 0x7c,0x54,0x7c,0x10,0xfe,0x00,0xaa,0x10,0x38,0x28,0x7c,0x54,0xfe,0x48, 796 | 0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x14,0x7e,0x28,0x28,0x28,0xfc,0x50, 797 | 0x08,0x3e,0x48,0x3c,0x12,0x7c,0x10,0x42,0xa4,0x48,0x10,0x24,0x4a,0x84, 798 | 0x30,0x48,0x50,0x24,0x54,0x88,0x76,0x04,0x08,0x10,0x10,0x10,0x08,0x04, 799 | 0x40,0x20,0x10,0x10,0x10,0x20,0x40,0x10,0x92,0x54,0x38,0x54,0x92,0x10, 800 | 0x10,0x10,0x10,0xfe,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x60,0x20,0x40, 801 | 0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x02,0x04,0x08,0x10,0x20,0x40,0x80, 802 | 0x3c,0x42,0x46,0x5a,0x62,0x42,0x3c,0x10,0x30,0x10,0x10,0x10,0x10,0x38, 803 | 0x3c,0x42,0x02,0x0c,0x30,0x40,0x7e,0x3c,0x42,0x02,0x1c,0x02,0x42,0x3c, 804 | 0x04,0x0c,0x14,0x24,0x44,0x7e,0x04,0x7e,0x40,0x7c,0x42,0x02,0x42,0x3c, 805 | 0x1c,0x20,0x40,0x7c,0x42,0x42,0x3c,0x7e,0x02,0x04,0x08,0x08,0x10,0x10, 806 | 0x3c,0x42,0x42,0x3c,0x42,0x42,0x3c,0x3c,0x42,0x42,0x3e,0x02,0x04,0x38, 807 | 0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x00,0x30,0x10,0x20, 808 | 0x00,0x06,0x38,0xc0,0x38,0x06,0x00,0x00,0x00,0xfe,0x00,0xfe,0x00,0x00, 809 | 0x00,0xc0,0x38,0x06,0x38,0xc0,0x00,0x3c,0x42,0x02,0x0c,0x10,0x00,0x10, 810 | 0x38,0x44,0x9a,0xaa,0xb4,0x40,0x38,0x10,0x28,0x28,0x44,0x7c,0x82,0x82, 811 | 0x7c,0x42,0x42,0x7c,0x42,0x42,0x7c,0x3c,0x42,0x40,0x40,0x40,0x42,0x3c, 812 | 0x78,0x44,0x42,0x42,0x42,0x44,0x78,0x7e,0x40,0x40,0x7c,0x40,0x40,0x7e, 813 | 0x7e,0x40,0x40,0x7c,0x40,0x40,0x40,0x3c,0x42,0x40,0x4e,0x42,0x42,0x3c, 814 | 0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x38,0x10,0x10,0x10,0x10,0x10,0x38, 815 | 0x02,0x02,0x02,0x02,0x02,0x42,0x3c,0x42,0x44,0x48,0x50,0x68,0x44,0x42, 816 | 0x40,0x40,0x40,0x40,0x40,0x40,0x7e,0x82,0xc6,0xaa,0xaa,0x92,0x92,0x82, 817 | 0x42,0x62,0x52,0x4a,0x46,0x42,0x42,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c, 818 | 0x7c,0x42,0x42,0x7c,0x40,0x40,0x40,0x3c,0x42,0x42,0x42,0x4a,0x44,0x3a, 819 | 0x7c,0x42,0x42,0x7c,0x48,0x44,0x42,0x3c,0x42,0x40,0x3c,0x02,0x42,0x3c, 820 | 0xfe,0x10,0x10,0x10,0x10,0x10,0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x3c, 821 | 0x82,0x82,0x44,0x44,0x28,0x28,0x10,0x82,0x92,0x92,0xaa,0xaa,0x44,0x44, 822 | 0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x82,0x44,0x28,0x10,0x10,0x10,0x10, 823 | 0x7e,0x02,0x04,0x08,0x10,0x20,0x7e,0x1c,0x10,0x10,0x10,0x10,0x10,0x1c, 824 | 0x70,0x10,0x10,0x10,0x10,0x10,0x70,0x10,0x28,0x44,0x00,0x00,0x00,0x00, 825 | 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x20,0x10,0x00,0x00,0x00,0x00,0x00, 826 | 0x00,0x00,0x38,0x04,0x3c,0x44,0x3c,0x40,0x40,0x58,0x64,0x44,0x44,0x78, 827 | 0x00,0x00,0x38,0x44,0x40,0x44,0x38,0x04,0x04,0x34,0x4c,0x44,0x44,0x3c, 828 | 0x00,0x00,0x38,0x44,0x7c,0x40,0x38,0x0c,0x10,0x3c,0x10,0x10,0x10,0x10, 829 | 0x00,0x00,0x3c,0x44,0x3c,0x04,0x38,0x40,0x40,0x58,0x64,0x44,0x44,0x44, 830 | 0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x08,0x00,0x08,0x08,0x08,0x48,0x30, 831 | 0x20,0x20,0x24,0x28,0x30,0x28,0x24,0x30,0x10,0x10,0x10,0x10,0x10,0x10, 832 | 0x00,0x00,0xec,0x92,0x92,0x92,0x92,0x00,0x00,0x58,0x64,0x44,0x44,0x44, 833 | 0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x00,0x78,0x44,0x44,0x78,0x40, 834 | 0x00,0x00,0x3c,0x44,0x44,0x3c,0x04,0x00,0x00,0x58,0x64,0x40,0x40,0x40, 835 | 0x00,0x00,0x3c,0x40,0x38,0x04,0x78,0x00,0x20,0x78,0x20,0x20,0x24,0x18, 836 | 0x00,0x00,0x44,0x44,0x44,0x4c,0x34,0x00,0x00,0x44,0x44,0x28,0x28,0x10, 837 | 0x00,0x00,0x92,0x92,0xaa,0x44,0x44,0x00,0x00,0x44,0x28,0x10,0x28,0x44, 838 | 0x00,0x00,0x44,0x28,0x28,0x10,0x60,0x00,0x00,0x7c,0x08,0x10,0x20,0x7c, 839 | 0x0c,0x10,0x10,0x20,0x10,0x10,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 840 | 0x60,0x10,0x10,0x08,0x10,0x10,0x60,0x00,0x00,0x00,0x00,0x40,0xa0,0x40, 841 | 0xe0,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0xe0, 842 | 0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00, 843 | 0x00,0xe0,0x20,0xe0,0x20,0x40,0x80,0x00,0x00,0x00,0xe0,0x60,0x40,0x80, 844 | 0x00,0x00,0x00,0x20,0x40,0xc0,0x40,0x00,0x00,0x00,0x40,0xe0,0xa0,0x20, 845 | 0x00,0x00,0x00,0x00,0xe0,0x40,0xe0,0x00,0x00,0x00,0x20,0xe0,0x60,0xa0, 846 | 0x00,0x00,0x00,0x40,0xe0,0x60,0x40,0x00,0x00,0x00,0x00,0xc0,0x40,0xe0, 847 | 0x00,0x00,0x00,0xe0,0x60,0x20,0xe0,0x00,0x00,0x00,0xe0,0xe0,0x20,0xc0, 848 | 0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,0xe0,0x20,0x60,0x40,0x40,0x80, 849 | 0x20,0x20,0x40,0xc0,0x40,0x40,0x40,0x40,0xe0,0xa0,0xa0,0x20,0x20,0x40, 850 | 0x00,0xe0,0x40,0x40,0x40,0x40,0xe0,0x20,0xe0,0x20,0x60,0xa0,0x20,0x60, 851 | 0x40,0xe0,0x60,0x60,0xa0,0xa0,0xa0,0x40,0xe0,0x40,0x40,0xe0,0x40,0x40, 852 | 0x40,0x60,0xa0,0x20,0x20,0x40,0x80,0x80,0xe0,0xc0,0x40,0x40,0x40,0x80, 853 | 0x00,0xe0,0x20,0x20,0x20,0x20,0xe0,0xa0,0xe0,0xa0,0xa0,0x20,0x40,0x80, 854 | 0xc0,0x00,0xc0,0x00,0x20,0x20,0xc0,0x00,0xe0,0x20,0x40,0x40,0xa0,0xa0, 855 | 0x80,0xe0,0xa0,0xa0,0x80,0x80,0xe0,0xa0,0x60,0x60,0x20,0x20,0x40,0x80, 856 | 0x40,0x60,0xa0,0x60,0x20,0x40,0x80,0x20,0xc0,0x40,0xe0,0x40,0x40,0x80, 857 | 0x00,0xe0,0xe0,0xe0,0x20,0x20,0xc0,0x00,0xe0,0x00,0xe0,0x40,0x40,0x80, 858 | 0x80,0x80,0x80,0xc0,0xa0,0x80,0x80,0x40,0x40,0xe0,0x40,0x40,0x40,0x80, 859 | 0x00,0x60,0x00,0x00,0x00,0x00,0xe0,0x00,0xe0,0x20,0xa0,0x40,0x40,0xa0, 860 | 0x40,0xe0,0x20,0x40,0xe0,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x40,0x80, 861 | 0x40,0x20,0xa0,0xa0,0xa0,0xa0,0xa0,0x80,0x80,0xe0,0x80,0x80,0x80,0x60, 862 | 0x00,0xe0,0x20,0x20,0x20,0x40,0x80,0x00,0x40,0x40,0xa0,0xa0,0x20,0x20, 863 | 0x40,0xe0,0x40,0xe0,0xe0,0x40,0x40,0x00,0xe0,0x20,0x20,0xc0,0x40,0x20, 864 | 0x00,0xe0,0x00,0x60,0x00,0x00,0xe0,0x40,0x40,0x40,0x80,0xa0,0xa0,0xe0, 865 | 0x20,0xa0,0x40,0x40,0x40,0xa0,0x80,0x00,0xe0,0x40,0xe0,0x40,0x40,0x60, 866 | 0x40,0xe0,0x60,0x60,0x40,0x40,0x40,0x00,0xc0,0x40,0x40,0x40,0x40,0xe0, 867 | 0x00,0xe0,0x20,0xe0,0x20,0x20,0xe0,0x00,0xe0,0x00,0xe0,0x20,0x20,0xc0, 868 | 0xa0,0xa0,0xa0,0xa0,0x20,0x20,0x40,0x40,0x40,0xc0,0xc0,0xc0,0xc0,0xe0, 869 | 0x80,0x80,0x80,0x80,0x80,0xa0,0xc0,0x00,0xe0,0xa0,0xa0,0xa0,0xa0,0xe0, 870 | 0x00,0xe0,0xa0,0x20,0x20,0x40,0x80,0x00,0xc0,0x00,0x00,0x20,0x20,0xc0, 871 | 0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xa0,0x40,0x00,0x00,0x00,0x00, 872 | 0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x28,0x7c,0x10,0x7c,0x10, 873 | }; 874 | 875 | #ifdef __AVR__ 876 | PROGMEM static const uint16_t ftable [] = { 877 | #else // __AVR__ 878 | static const uint16_t ftable [] = { 879 | #endif 880 | 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 881 | 0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f, 882 | 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 883 | 0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f, 884 | 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 885 | 0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f, 886 | 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 887 | 0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f, 888 | 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 889 | 0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f, 890 | 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 891 | 0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x00a2,0x00a3, 892 | 0x00a5,0x00a7,0x00a8,0x00ac,0x00b0,0x00b1,0x00b4,0x00b6, 893 | 0x00d7,0x00f7,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396, 894 | 0x0397,0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e, 895 | 0x039f,0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7, 896 | 0x03a8,0x03a9,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6, 897 | 0x03b7,0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be, 898 | 0x03bf,0x03c0,0x03c1,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7, 899 | 0x03c8,0x03c9,0x0401,0x0410,0x0411,0x0412,0x0413,0x0414, 900 | 0x0415,0x0416,0x0417,0x0418,0x0419,0x041a,0x041b,0x041c, 901 | 0x041d,0x041e,0x041f,0x0420,0x0421,0x0422,0x0423,0x0424, 902 | 0x0425,0x0426,0x0427,0x0428,0x0429,0x042a,0x042b,0x042c, 903 | 0x042d,0x042e,0x042f,0x0430,0x0431,0x0432,0x0433,0x0434, 904 | 0x0435,0x0436,0x0437,0x0438,0x0439,0x043a,0x043b,0x043c, 905 | 0x043d,0x043e,0x043f,0x0440,0x0441,0x0442,0x0443,0x0444, 906 | 0x0445,0x0446,0x0447,0x0448,0x0449,0x044a,0x044b,0x044c, 907 | 0x044d,0x044e,0x044f,0x0451,0x2010,0x2015,0x2016,0x2018, 908 | 0x2019,0x201c,0x201d,0x2020,0x2021,0x2025,0x2026,0x2032, 909 | 0x2033,0x203b,0x203e,0x2103,0x2116,0x2121,0x212b,0x2160, 910 | 0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168, 911 | 0x2169,0x2190,0x2191,0x2192,0x2193,0x21d2,0x21d4,0x2200, 912 | 0x2202,0x2203,0x2207,0x2208,0x220b,0x2211,0x2212,0x221a, 913 | 0x221d,0x221e,0x221f,0x2220,0x2227,0x2228,0x2229,0x222a, 914 | 0x222b,0x222c,0x222e,0x2234,0x2235,0x223d,0x2252,0x2260, 915 | 0x2261,0x2266,0x2267,0x226a,0x226b,0x2282,0x2283,0x2286, 916 | 0x2287,0x22a5,0x22a5,0x22bf,0x2312,0x2460,0x2461,0x2462, 917 | 0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,0x246a, 918 | 0x246b,0x246c,0x246d,0x246e,0x246f,0x2470,0x2471,0x2472, 919 | 0x2473,0x25a0,0x25a1,0x25b2,0x25b3,0x25bc,0x25bd,0x25c6, 920 | 0x25c7,0x25cb,0x25ce,0x25cf,0x25ef,0x2605,0x2606,0x2640, 921 | 0x2642,0x266a,0x266d,0x266f,0x3000,0x3001,0x3002,0x3003, 922 | 0x3005,0x3006,0x3007,0x3008,0x3009,0x300a,0x300b,0x300c, 923 | 0x300d,0x300e,0x300f,0x3010,0x3011,0x3012,0x3013,0x3014, 924 | 0x3015,0x301c,0x301d,0x301f,0x3041,0x3042,0x3043,0x3044, 925 | 0x3045,0x3046,0x3047,0x3048,0x3049,0x304a,0x304b,0x304c, 926 | 0x304d,0x304e,0x304f,0x3050,0x3051,0x3052,0x3053,0x3054, 927 | 0x3055,0x3056,0x3057,0x3058,0x3059,0x305a,0x305b,0x305c, 928 | 0x305d,0x305e,0x305f,0x3060,0x3061,0x3062,0x3063,0x3064, 929 | 0x3065,0x3066,0x3067,0x3068,0x3069,0x306a,0x306b,0x306c, 930 | 0x306d,0x306e,0x306f,0x3070,0x3071,0x3072,0x3073,0x3074, 931 | 0x3075,0x3076,0x3077,0x3078,0x3079,0x307a,0x307b,0x307c, 932 | 0x307d,0x307e,0x307f,0x3080,0x3081,0x3082,0x3083,0x3084, 933 | 0x3085,0x3086,0x3087,0x3088,0x3089,0x308a,0x308b,0x308c, 934 | 0x308d,0x308e,0x308f,0x3090,0x3091,0x3092,0x3093,0x309b, 935 | 0x309c,0x309d,0x309e,0x30a1,0x30a2,0x30a3,0x30a4,0x30a5, 936 | 0x30a6,0x30a7,0x30a8,0x30a9,0x30aa,0x30ab,0x30ac,0x30ad, 937 | 0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3,0x30b4,0x30b5, 938 | 0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb,0x30bc,0x30bd, 939 | 0x30be,0x30bf,0x30c0,0x30c1,0x30c2,0x30c3,0x30c4,0x30c5, 940 | 0x30c6,0x30c7,0x30c8,0x30c9,0x30ca,0x30cb,0x30cc,0x30cd, 941 | 0x30ce,0x30cf,0x30d0,0x30d1,0x30d2,0x30d3,0x30d4,0x30d5, 942 | 0x30d6,0x30d7,0x30d8,0x30d9,0x30da,0x30db,0x30dc,0x30dd, 943 | 0x30de,0x30df,0x30e0,0x30e1,0x30e2,0x30e3,0x30e4,0x30e5, 944 | 0x30e6,0x30e7,0x30e8,0x30e9,0x30ea,0x30eb,0x30ec,0x30ed, 945 | 0x30ee,0x30ef,0x30f0,0x30f1,0x30f2,0x30f3,0x30f4,0x30f5, 946 | 0x30f6,0x30fb,0x30fc,0x30fd,0x30fe,0x3231,0x3232,0x3239, 947 | 0x32a4,0x32a5,0x32a6,0x32a7,0x32a8,0x338e,0x338f,0x339c, 948 | 0x339d,0x339e,0x33a1,0x33c4,0x33cd,0x4e00,0x4e01,0x4e03, 949 | 0x4e07,0x4e09,0x4e0a,0x4e0b,0x4e0d,0x4e16,0x4e21,0x4e26, 950 | 0x4e2d,0x4e38,0x4e3b,0x4e45,0x4e57,0x4e5d,0x4e71,0x4e73, 951 | 0x4e88,0x4e89,0x4e8b,0x4e8c,0x4e94,0x4ea1,0x4ea4,0x4eac, 952 | 0x4eba,0x4ec1,0x4eca,0x4ecf,0x4ed5,0x4ed6,0x4ed8,0x4ee3, 953 | 0x4ee4,0x4ee5,0x4eee,0x4ef2,0x4ef6,0x4efb,0x4f11,0x4f1a, 954 | 0x4f1d,0x4f3c,0x4f4d,0x4f4e,0x4f4f,0x4f53,0x4f55,0x4f59, 955 | 0x4f5c,0x4f7f,0x4f8b,0x4f9b,0x4fa1,0x4fbf,0x4fc2,0x4fdd, 956 | 0x4fe1,0x4fee,0x4ff3,0x4ff5,0x5009,0x500b,0x500d,0x5019, 957 | 0x501f,0x5024,0x505c,0x5065,0x5074,0x5099,0x50b7,0x50cd, 958 | 0x50cf,0x5104,0x512a,0x5143,0x5144,0x5146,0x5148,0x5149, 959 | 0x5150,0x515a,0x5165,0x5168,0x516b,0x516c,0x516d,0x5171, 960 | 0x5175,0x5177,0x5178,0x5185,0x5186,0x518a,0x518d,0x5199, 961 | 0x51ac,0x51b7,0x51e6,0x51fa,0x5200,0x5206,0x5207,0x520a, 962 | 0x5217,0x521d,0x5224,0x5225,0x5229,0x5236,0x5237,0x5238, 963 | 0x523b,0x5247,0x524d,0x526f,0x5272,0x5275,0x5287,0x529b, 964 | 0x529f,0x52a0,0x52a9,0x52aa,0x52b4,0x52b9,0x52c7,0x52c9, 965 | 0x52d5,0x52d9,0x52dd,0x52e2,0x52e4,0x5305,0x5316,0x5317, 966 | 0x533a,0x533b,0x5341,0x5343,0x5348,0x534a,0x5352,0x5354, 967 | 0x5357,0x5358,0x535a,0x5370,0x5371,0x5375,0x539a,0x539f, 968 | 0x53b3,0x53bb,0x53c2,0x53cb,0x53cd,0x53ce,0x53d6,0x53d7, 969 | 0x53e3,0x53e4,0x53e5,0x53ef,0x53f0,0x53f2,0x53f3,0x53f7, 970 | 0x53f8,0x5404,0x5408,0x540c,0x540d,0x540e,0x5411,0x541b, 971 | 0x5426,0x5438,0x544a,0x5468,0x5473,0x547c,0x547d,0x548c, 972 | 0x54c1,0x54e1,0x5531,0x5546,0x554f,0x5584,0x559c,0x55b6, 973 | 0x5668,0x56db,0x56de,0x56e0,0x56e3,0x56f0,0x56f2,0x56f3, 974 | 0x56fa,0x56fd,0x5712,0x571f,0x5727,0x5728,0x5730,0x5742, 975 | 0x5747,0x5782,0x578b,0x57ce,0x57df,0x57fa,0x57fc,0x5802, 976 | 0x5831,0x5834,0x5869,0x5883,0x5893,0x5897,0x58eb,0x58f0, 977 | 0x58f2,0x5909,0x590f,0x5915,0x5916,0x591a,0x591c,0x5922, 978 | 0x5927,0x5929,0x592a,0x592b,0x592e,0x5931,0x594f,0x596e, 979 | 0x5973,0x597d,0x59b9,0x59bb,0x59c9,0x59cb,0x59d4,0x59ff, 980 | 0x5a66,0x5b50,0x5b57,0x5b58,0x5b5d,0x5b63,0x5b66,0x5b6b, 981 | 0x5b85,0x5b87,0x5b88,0x5b89,0x5b8c,0x5b97,0x5b98,0x5b99, 982 | 0x5b9a,0x5b9d,0x5b9f,0x5ba2,0x5ba3,0x5ba4,0x5bae,0x5bb3, 983 | 0x5bb6,0x5bb9,0x5bbf,0x5bc4,0x5bc6,0x5bcc,0x5bd2,0x5bdf, 984 | 0x5bf8,0x5bfa,0x5bfe,0x5c02,0x5c04,0x5c06,0x5c0a,0x5c0e, 985 | 0x5c0f,0x5c11,0x5c31,0x5c3a,0x5c40,0x5c45,0x5c4a,0x5c4b, 986 | 0x5c55,0x5c5e,0x5c64,0x5c71,0x5ca9,0x5cb8,0x5cf6,0x5ddd, 987 | 0x5dde,0x5de3,0x5de5,0x5de6,0x5dee,0x5df1,0x5dfb,0x5e02, 988 | 0x5e03,0x5e0c,0x5e2b,0x5e2d,0x5e2f,0x5e30,0x5e33,0x5e38, 989 | 0x5e55,0x5e72,0x5e73,0x5e74,0x5e78,0x5e79,0x5e7c,0x5e81, 990 | 0x5e83,0x5e8f,0x5e95,0x5e97,0x5e9c,0x5ea6,0x5ea7,0x5eab, 991 | 0x5ead,0x5eb7,0x5ef6,0x5efa,0x5f01,0x5f0f,0x5f13,0x5f15, 992 | 0x5f1f,0x5f31,0x5f35,0x5f37,0x5f53,0x5f62,0x5f79,0x5f80, 993 | 0x5f84,0x5f85,0x5f8b,0x5f8c,0x5f92,0x5f93,0x5f97,0x5fa9, 994 | 0x5fb3,0x5fc3,0x5fc5,0x5fd7,0x5fd8,0x5fdc,0x5fe0,0x5feb, 995 | 0x5ff5,0x601d,0x6025,0x6027,0x6069,0x606f,0x60aa,0x60b2, 996 | 0x60c5,0x60f3,0x610f,0x611b,0x611f,0x614b,0x6163,0x61b2, 997 | 0x6210,0x6211,0x6226,0x6238,0x6240,0x624b,0x624d,0x6253, 998 | 0x6279,0x627f,0x6280,0x6295,0x6298,0x62c5,0x62db,0x62dd, 999 | 0x62e1,0x62fe,0x6301,0x6307,0x6319,0x6368,0x6388,0x63a1, 1000 | 0x63a2,0x63a5,0x63a8,0x63d0,0x63ee,0x640d,0x64cd,0x652f, 1001 | 0x6539,0x653e,0x653f,0x6545,0x6551,0x6557,0x6559,0x6563, 1002 | 0x656c,0x6570,0x6574,0x6575,0x6587,0x6599,0x65ad,0x65b0, 1003 | 0x65b9,0x65c5,0x65cf,0x65d7,0x65e5,0x65e7,0x65e9,0x660e, 1004 | 0x6613,0x6614,0x661f,0x6620,0x6625,0x6628,0x662d,0x663c, 1005 | 0x6642,0x6669,0x666f,0x6674,0x6691,0x6696,0x6697,0x66ae, 1006 | 0x66b4,0x66dc,0x66f2,0x66f8,0x6700,0x6708,0x6709,0x670d, 1007 | 0x6717,0x671b,0x671d,0x671f,0x6728,0x672a,0x672b,0x672c, 1008 | 0x672d,0x673a,0x6750,0x6751,0x675f,0x6761,0x6765,0x6771, 1009 | 0x677e,0x677f,0x6797,0x679a,0x679c,0x679d,0x67d3,0x67f1, 1010 | 0x67fb,0x6804,0x6821,0x682a,0x6839,0x683c,0x6848,0x685c, 1011 | 0x6885,0x68b0,0x68d2,0x68ee,0x690d,0x691c,0x696d,0x6975, 1012 | 0x697d,0x69cb,0x69d8,0x6a19,0x6a21,0x6a29,0x6a2a,0x6a39, 1013 | 0x6a4b,0x6a5f,0x6b20,0x6b21,0x6b32,0x6b4c,0x6b62,0x6b63, 1014 | 0x6b66,0x6b69,0x6b6f,0x6b74,0x6b7b,0x6b8b,0x6bb5,0x6bba, 1015 | 0x6bcd,0x6bce,0x6bd2,0x6bd4,0x6bdb,0x6c0f,0x6c11,0x6c17, 1016 | 0x6c34,0x6c37,0x6c38,0x6c42,0x6c60,0x6c7a,0x6c7d,0x6cb3, 1017 | 0x6cb9,0x6cbb,0x6cbf,0x6cc9,0x6cd5,0x6ce2,0x6ce3,0x6ce8, 1018 | 0x6cf3,0x6d0b,0x6d17,0x6d3b,0x6d3e,0x6d41,0x6d45,0x6d74, 1019 | 0x6d77,0x6d88,0x6db2,0x6df1,0x6df7,0x6e05,0x6e08,0x6e1b, 1020 | 0x6e29,0x6e2c,0x6e2f,0x6e56,0x6e6f,0x6e80,0x6e90,0x6e96, 1021 | 0x6f01,0x6f14,0x6f22,0x6f54,0x6f6e,0x6fc0,0x706b,0x706f, 1022 | 0x7070,0x707d,0x70ad,0x70b9,0x7121,0x7136,0x713c,0x7167, 1023 | 0x719f,0x71b1,0x71c3,0x7236,0x7247,0x7248,0x725b,0x7267, 1024 | 0x7269,0x7279,0x72ac,0x72af,0x72b6,0x72ec,0x7387,0x7389, 1025 | 0x738b,0x73ed,0x73fe,0x7403,0x7406,0x751f,0x7523,0x7528, 1026 | 0x7530,0x7531,0x7533,0x7537,0x753a,0x753b,0x754c,0x7551, 1027 | 0x7559,0x7565,0x756a,0x7570,0x7591,0x75c5,0x75db,0x767a, 1028 | 0x767b,0x767d,0x767e,0x7684,0x7687,0x76ae,0x76bf,0x76ca, 1029 | 0x76db,0x76df,0x76ee,0x76f4,0x76f8,0x7701,0x770b,0x770c, 1030 | 0x771f,0x773c,0x7740,0x77e2,0x77e5,0x77ed,0x77f3,0x7802, 1031 | 0x7814,0x7834,0x78ba,0x78c1,0x793a,0x793c,0x793e,0x7956, 1032 | 0x795d,0x795e,0x7968,0x796d,0x7981,0x798f,0x79c1,0x79cb, 1033 | 0x79d1,0x79d2,0x79d8,0x79fb,0x7a0b,0x7a0e,0x7a2e,0x7a40, 1034 | 0x7a4d,0x7a74,0x7a76,0x7a7a,0x7a93,0x7acb,0x7ae0,0x7ae5, 1035 | 0x7af6,0x7af9,0x7b11,0x7b1b,0x7b2c,0x7b46,0x7b49,0x7b4b, 1036 | 0x7b54,0x7b56,0x7b97,0x7ba1,0x7bb1,0x7bc0,0x7bc9,0x7c21, 1037 | 0x7c73,0x7c89,0x7cbe,0x7cd6,0x7cf8,0x7cfb,0x7d00,0x7d04, 1038 | 0x7d05,0x7d0d,0x7d14,0x7d19,0x7d1a,0x7d20,0x7d30,0x7d42, 1039 | 0x7d44,0x7d4c,0x7d50,0x7d66,0x7d71,0x7d75,0x7d76,0x7d79, 1040 | 0x7d9a,0x7dbf,0x7dcf,0x7dd1,0x7dda,0x7de8,0x7df4,0x7e26, 1041 | 0x7e2e,0x7e3e,0x7e54,0x7f6a,0x7f6e,0x7f72,0x7f8a,0x7f8e, 1042 | 0x7fa4,0x7fa9,0x7fbd,0x7fcc,0x7fd2,0x8001,0x8003,0x8005, 1043 | 0x8015,0x8033,0x8056,0x805e,0x8077,0x8089,0x80a5,0x80b2, 1044 | 0x80ba,0x80c3,0x80cc,0x80f8,0x80fd,0x8108,0x8133,0x8178, 1045 | 0x8179,0x81d3,0x81e3,0x81e8,0x81ea,0x81f3,0x8208,0x820c, 1046 | 0x820e,0x822a,0x8239,0x826f,0x8272,0x82b1,0x82b8,0x82bd, 1047 | 0x82e5,0x82e6,0x82f1,0x8336,0x8349,0x8377,0x83dc,0x843d, 1048 | 0x8449,0x8457,0x84b8,0x8535,0x85ac,0x866b,0x8695,0x8840, 1049 | 0x8846,0x884c,0x8853,0x8857,0x885b,0x8863,0x8868,0x88c1, 1050 | 0x88c5,0x88cf,0x88dc,0x88fd,0x8907,0x897f,0x8981,0x898b, 1051 | 0x898f,0x8996,0x899a,0x89a7,0x89aa,0x89b3,0x89d2,0x89e3, 1052 | 0x8a00,0x8a08,0x8a0e,0x8a13,0x8a18,0x8a2a,0x8a2d,0x8a31, 1053 | 0x8a33,0x8a3c,0x8a55,0x8a5e,0x8a66,0x8a69,0x8a71,0x8a8c, 1054 | 0x8a8d,0x8a95,0x8a9e,0x8aa0,0x8aa4,0x8aac,0x8aad,0x8ab2, 1055 | 0x8abf,0x8ac7,0x8ad6,0x8af8,0x8b1b,0x8b1d,0x8b58,0x8b66, 1056 | 0x8b70,0x8b77,0x8c37,0x8c46,0x8c4a,0x8c61,0x8c9d,0x8ca0, 1057 | 0x8ca1,0x8ca7,0x8ca8,0x8cac,0x8caf,0x8cb4,0x8cb7,0x8cb8, 1058 | 0x8cbb,0x8cbf,0x8cc0,0x8cc3,0x8cc7,0x8cdb,0x8cde,0x8cea, 1059 | 0x8d64,0x8d70,0x8d77,0x8db3,0x8def,0x8eab,0x8eca,0x8ecd, 1060 | 0x8ee2,0x8efd,0x8f2a,0x8f38,0x8f9e,0x8fb2,0x8fba,0x8fd1, 1061 | 0x8fd4,0x8ff0,0x8ff7,0x8ffd,0x9000,0x9001,0x9006,0x901a, 1062 | 0x901f,0x9020,0x9023,0x9031,0x9032,0x904a,0x904b,0x904e, 1063 | 0x9053,0x9054,0x9060,0x9069,0x9078,0x907a,0x90e1,0x90e8, 1064 | 0x90f5,0x90f7,0x90fd,0x914d,0x9152,0x9178,0x91cc,0x91cd, 1065 | 0x91ce,0x91cf,0x91d1,0x91dd,0x9244,0x9271,0x9280,0x9285, 1066 | 0x92ad,0x92fc,0x9332,0x93e1,0x9577,0x9580,0x9589,0x958b, 1067 | 0x9593,0x95a2,0x95a3,0x9632,0x964d,0x9650,0x965b,0x9662, 1068 | 0x9664,0x9678,0x967a,0x967d,0x968a,0x968e,0x969b,0x969c, 1069 | 0x96c6,0x96d1,0x96e3,0x96e8,0x96ea,0x96f2,0x96fb,0x9752, 1070 | 0x9759,0x975e,0x9762,0x9769,0x97f3,0x9802,0x9806,0x9810, 1071 | 0x9818,0x982d,0x984c,0x984d,0x9854,0x9858,0x985e,0x98a8, 1072 | 0x98db,0x98df,0x98ef,0x98f2,0x98fc,0x990a,0x9928,0x9996, 1073 | 0x99ac,0x99c5,0x9a13,0x9aa8,0x9ad8,0x9b5a,0x9ce5,0x9cf4, 1074 | 0x9ea6,0x9ec4,0x9ed2,0x9f3b,0xff01,0xff03,0xff04,0xff05, 1075 | 0xff06,0xff08,0xff09,0xff0a,0xff0b,0xff0c,0xff0e,0xff0f, 1076 | 0xff10,0xff11,0xff12,0xff13,0xff14,0xff15,0xff16,0xff17, 1077 | 0xff18,0xff19,0xff1a,0xff1b,0xff1c,0xff1d,0xff1e,0xff1f, 1078 | 0xff20,0xff21,0xff22,0xff23,0xff24,0xff25,0xff26,0xff27, 1079 | 0xff28,0xff29,0xff2a,0xff2b,0xff2c,0xff2d,0xff2e,0xff2f, 1080 | 0xff30,0xff31,0xff32,0xff33,0xff34,0xff35,0xff36,0xff37, 1081 | 0xff38,0xff39,0xff3a,0xff3b,0xff3d,0xff3e,0xff3f,0xff40, 1082 | 0xff41,0xff42,0xff43,0xff44,0xff45,0xff46,0xff47,0xff48, 1083 | 0xff49,0xff4a,0xff4b,0xff4c,0xff4d,0xff4e,0xff4f,0xff50, 1084 | 0xff51,0xff52,0xff53,0xff54,0xff55,0xff56,0xff57,0xff58, 1085 | 0xff59,0xff5a,0xff5b,0xff5c,0xff5d,0xff61,0xff62,0xff63, 1086 | 0xff64,0xff65,0xff66,0xff67,0xff68,0xff69,0xff6a,0xff6b, 1087 | 0xff6c,0xff6d,0xff6e,0xff6f,0xff70,0xff71,0xff72,0xff73, 1088 | 0xff74,0xff75,0xff76,0xff77,0xff78,0xff79,0xff7a,0xff7b, 1089 | 0xff7c,0xff7d,0xff7e,0xff7f,0xff80,0xff81,0xff82,0xff83, 1090 | 0xff84,0xff85,0xff86,0xff87,0xff88,0xff89,0xff8a,0xff8b, 1091 | 0xff8c,0xff8d,0xff8e,0xff8f,0xff90,0xff91,0xff92,0xff93, 1092 | 0xff94,0xff95,0xff96,0xff97,0xff98,0xff99,0xff9a,0xff9b, 1093 | 0xff9c,0xff9d,0xff9e,0xff9f,0xffe3,0xffe5,}; 1094 | 1095 | #endif 1096 | 1097 | --------------------------------------------------------------------------------