From 037edbe7eab36e36b40e31cf9e05e14d71191847 Mon Sep 17 00:00:00 2001 From: dimok321 <15055714+dimok789@users.noreply.github.com> Date: Fri, 11 Feb 2011 17:41:52 +0000 Subject: [PATCH] *Fixed crash with loading .iso files *Fixed freeze in theme menu when its empty *Optimized the game list loading on fat/ntfs/ext. This should speed up the loading process. *Added cache of game titles. This will speed up the startup after the cache file is written (in other words on second start of this rev). A TitlesCache.bin will be created in the same path as the wiitdb.xml for this. This should especial speed up the startup of fat/ntfs/ext partitions by a lot if no sub folders with the game titles are used, like GAMEID.wbfs only. That must have been painfully slow before on a lot of games. Should be at about the same speed as with sub folders now. I would still recommend to use sub folders. *Removed wiilight (disc slot) blinking when switching USB port on Hermes cIOSes (thanks rodries) *Added the ehcmodule sources from rodries to the branches *Updated language files --- HBC/META.XML | 4 +- Languages/danish.lang | 16 +- Languages/dutch.lang | 24 +- Languages/german.lang | 26 +- Languages/japanese.lang | 32 +- Languages/schinese.lang | 24 +- Languages/tchinese.lang | 50 +- source/libs/libwbfs/libwbfs.c | 36 +- source/libs/libwbfs/libwbfs.h | 3 +- source/mload/modules/ehcmodule_5.c | 1613 +++++++++++++-------------- source/mload/modules/ehcmodule_5.h | 4 +- source/prompts/PromptWindows.cpp | 1 + source/settings/GameTitles.cpp | 152 ++- source/settings/GameTitles.h | 4 + source/themes/ThemeMenu.cpp | 1 - source/usbloader/GameList.cpp | 4 +- source/usbloader/wbfs/wbfs_base.cpp | 12 +- source/usbloader/wbfs/wbfs_fat.cpp | 323 +++--- source/usbloader/wbfs/wbfs_fat.h | 6 +- 19 files changed, 1178 insertions(+), 1157 deletions(-) diff --git a/HBC/META.XML b/HBC/META.XML index 1ad230e0..8bb0cfbb 100644 --- a/HBC/META.XML +++ b/HBC/META.XML @@ -2,8 +2,8 @@ USB Loader GX USB Loader GX Team - 2.0 r1068 - 201102060936 + 2.0 r1069 + 201102061836 Loads games from USB-devices USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times. diff --git a/Languages/danish.lang b/Languages/danish.lang index 82c6c0a9..9845ea49 100644 --- a/Languages/danish.lang +++ b/Languages/danish.lang @@ -145,7 +145,7 @@ msgid "App Language" msgstr "Programsprog" msgid "Apply" -msgstr "" +msgstr "Indlæs" msgid "Apr" msgstr "" @@ -163,13 +163,13 @@ msgid "Aug" msgstr "" msgid "Author(s):" -msgstr "" +msgstr "Forfatter" msgid "AutoInit Network" msgstr "AutoInit netværk" msgid "Automatic port switching is done on the fly. You need to change all custom paths to SD-Card first for this option or else it could damage a filesystem." -msgstr "" +msgstr "Automatisk skift af port er gjort on the fly. For denne mulighed skal du skifte alle brugerdefinerede stier til SD kortet først, for ellers kan det skade dit fil system." msgid "BCA Codes Path" msgstr "Sti til BCA koder" @@ -247,7 +247,7 @@ msgid "Both" msgstr "Begge" msgid "Both Ports" -msgstr "" +msgstr "Begge porte" msgid "Can't be formatted" msgstr "Kan ikke formateres" @@ -445,7 +445,7 @@ msgid "Do you want to apply it now?" msgstr "Skal det aktiveres nu?" msgid "Do you want to apply this theme?" -msgstr "" +msgstr "Vil du inlæse dette tema?" msgid "Do you want to change language?" msgstr "Skal sproget ændres?" @@ -949,7 +949,7 @@ msgid "No themes found on the site." msgstr "Der blev ikke fundet nogle temaer på denne side." msgid "No themes found." -msgstr "" +msgstr "Ingen temaer fundet." msgid "None" msgstr "Ingen" @@ -1289,7 +1289,7 @@ msgid "Theme Downloader" msgstr "Tema-downloader" msgid "Theme Menu" -msgstr "" +msgstr "Tema menu" msgid "Theme Path" msgstr "Sti til temaer" @@ -1331,7 +1331,7 @@ msgid "USB Port" msgstr "" msgid "USB Port changing is only supported on Hermes cIOS." -msgstr "" +msgstr "Skift af USB port er kun muligt med Hermess cIOS." msgid "Uninstall" msgstr "Afinstallér" diff --git a/Languages/dutch.lang b/Languages/dutch.lang index 1e5b024b..e3b4998c 100644 --- a/Languages/dutch.lang +++ b/Languages/dutch.lang @@ -1,12 +1,12 @@ # USB Loader GX language source file. -# dutch.lang - r1061 +# dutch.lang - r1068 # don't delete/change this line (é). msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-02-06 19:36+0100\n" -"PO-Revision-Date: 2011-02-04 13:06+0100\n" +"PO-Revision-Date: 2011-02-07 08:11+0100\n" "Last-Translator: glowy\n" "Language-Team: tj_cool, glowy\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgid "App Language" msgstr "Applicatie Taal" msgid "Apply" -msgstr "" +msgstr "Toepassen" msgid "Apr" msgstr "" @@ -163,13 +163,13 @@ msgid "Aug" msgstr "" msgid "Author(s):" -msgstr "" +msgstr "Auteur(s):" msgid "AutoInit Network" msgstr "Netwerk Auto init." msgid "Automatic port switching is done on the fly. You need to change all custom paths to SD-Card first for this option or else it could damage a filesystem." -msgstr "" +msgstr "Automatisch poort wisselen word zonder onderbreking gedaan. Je moet eerst alle aangepaste paden veranderen naar SD-kaart voor deze optie anders kan het je bestandssysteem beschadigen." msgid "BCA Codes Path" msgstr "Locatie BCA codes" @@ -247,7 +247,7 @@ msgid "Both" msgstr "Beide" msgid "Both Ports" -msgstr "" +msgstr "Beide poorten" msgid "Can't be formatted" msgstr "Kan niet geformatteerd worden" @@ -445,7 +445,7 @@ msgid "Do you want to apply it now?" msgstr "Wil je dit nu toepassen?" msgid "Do you want to apply this theme?" -msgstr "" +msgstr "Wil je dit thema toepassen?" msgid "Do you want to change language?" msgstr "Wil je de taal wijzigen?" @@ -949,7 +949,7 @@ msgid "No themes found on the site." msgstr "Geen thema's gevonden op de site." msgid "No themes found." -msgstr "" +msgstr "Geen thema's gevonden." msgid "None" msgstr "Geen" @@ -1289,7 +1289,7 @@ msgid "Theme Downloader" msgstr "Thema downloader" msgid "Theme Menu" -msgstr "" +msgstr "Thema Menu" msgid "Theme Path" msgstr "Locatie thema" @@ -1328,10 +1328,10 @@ msgid "USB Loader GX is protected" msgstr "USB Loader GX is vergrendeld" msgid "USB Port" -msgstr "" +msgstr "USB Poort" msgid "USB Port changing is only supported on Hermes cIOS." -msgstr "" +msgstr "USB Poort wisselen word alleen door Hermes cIOS ondersteund." msgid "Uninstall" msgstr "Verwijderen" @@ -1394,7 +1394,7 @@ msgid "VIDTV Patch" msgstr "VIDTV patchen" msgid "Version:" -msgstr "" +msgstr "Versie:" #, c-format msgid "Version: %s" diff --git a/Languages/german.lang b/Languages/german.lang index 1879f432..83aae515 100644 --- a/Languages/german.lang +++ b/Languages/german.lang @@ -1,11 +1,11 @@ # USB Loader GX -# german language source file - r1061 +# german language source file - r1068 # don't delete/change this line (é). msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-06 19:36+0100\n" +"POT-Creation-Date: 2011-02-06 22:00+0100\n" "PO-Revision-Date: 2010-07-03 17:35-0800\n" "Last-Translator: TheRealVisitor\n" "Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n" @@ -145,7 +145,7 @@ msgid "App Language" msgstr "Sprache" msgid "Apply" -msgstr "" +msgstr "Anwenden" msgid "Apr" msgstr "April" @@ -163,13 +163,13 @@ msgid "Aug" msgstr "August" msgid "Author(s):" -msgstr "" +msgstr "Autor(en)" msgid "AutoInit Network" msgstr "Autoinit. Netzwerk" msgid "Automatic port switching is done on the fly. You need to change all custom paths to SD-Card first for this option or else it could damage a filesystem." -msgstr "" +msgstr "Automatische Portumschaltung wird jetzt direkt zur Programmlaufzeit durchgeführt. Für diese Option müssen zuerst alle eigenen Pfade auf die SD Karte verweisen, da ansonsten das Dateisystem beschädigt werden könnte." msgid "BCA Codes Path" msgstr "BCA Codes" @@ -247,7 +247,7 @@ msgid "Both" msgstr "ID und Region" msgid "Both Ports" -msgstr "" +msgstr "Beide Ports" msgid "Can't be formatted" msgstr "Kann nicht formatiert werden." @@ -445,7 +445,7 @@ msgid "Do you want to apply it now?" msgstr "Jetzt übernehmen?" msgid "Do you want to apply this theme?" -msgstr "" +msgstr "Dieses Theme angewenden?" msgid "Do you want to change language?" msgstr "Sprache ändern?" @@ -460,7 +460,7 @@ msgid "Do you want to load the default theme?" msgstr "Soll das DEFAULT Theme geladen werden?" msgid "Do you want to sync free space info sector on all FAT32 partitions?" -msgstr "" +msgstr "Soll die freier Speicher Info auf allen Partitionen synchronisiert werden?" msgid "Do you wish to update/download all language files?" msgstr "Alle Sprachdateien aktualisieren?" @@ -949,7 +949,7 @@ msgid "No themes found on the site." msgstr "Keine Themes auf der Seite gefunden." msgid "No themes found." -msgstr "" +msgstr "Keine Themes gefunden." msgid "None" msgstr "Keine" @@ -1289,7 +1289,7 @@ msgid "Theme Downloader" msgstr "Theme Downloader" msgid "Theme Menu" -msgstr "" +msgstr "Theme Menü" msgid "Theme Path" msgstr "Theme" @@ -1328,10 +1328,10 @@ msgid "USB Loader GX is protected" msgstr "USB Loader GX ist jetzt geschützt." msgid "USB Port" -msgstr "" +msgstr "USB Port" msgid "USB Port changing is only supported on Hermes cIOS." -msgstr "" +msgstr "USB-Portwechsel wird nur vom Hermes cIOS unterstützt." msgid "Uninstall" msgstr "Deinstallieren" @@ -1394,7 +1394,7 @@ msgid "VIDTV Patch" msgstr "VIDTV Patch" msgid "Version:" -msgstr "" +msgstr "Version:" #, c-format msgid "Version: %s" diff --git a/Languages/japanese.lang b/Languages/japanese.lang index 3e762d88..c29505e7 100644 --- a/Languages/japanese.lang +++ b/Languages/japanese.lang @@ -1,14 +1,14 @@ # USB Loader GX language source file. -# japanese.lang - r1046J +# japanese.lang - r1065J # don't delete/change this line (e). msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-06 19:36+0100\n" +"POT-Creation-Date: 2011-02-05 17:39+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: ichiroling\n" -"Language-Team: hosigumayuugi, papa\n" +"Language-Team: hosigumayuugi, papa, ichiroling\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -145,7 +145,7 @@ msgid "App Language" msgstr "使用言語" msgid "Apply" -msgstr "" +msgstr "適用" msgid "Apr" msgstr "4月" @@ -163,14 +163,11 @@ msgid "Aug" msgstr "8月" msgid "Author(s):" -msgstr "" +msgstr "制作者:" msgid "AutoInit Network" msgstr "自動ネット接続" -msgid "Automatic port switching is done on the fly. You need to change all custom paths to SD-Card first for this option or else it could damage a filesystem." -msgstr "" - msgid "BCA Codes Path" msgstr "BCAコード" @@ -246,9 +243,6 @@ msgstr "起動しますか?" msgid "Both" msgstr "IDとリージョンを表示" -msgid "Both Ports" -msgstr "" - msgid "Can't be formatted" msgstr "初期化できません" @@ -445,7 +439,7 @@ msgid "Do you want to apply it now?" msgstr "適用しますか?" msgid "Do you want to apply this theme?" -msgstr "" +msgstr "このテーマを使いますか?" msgid "Do you want to change language?" msgstr "言語を変更しますか?" @@ -949,7 +943,7 @@ msgid "No themes found on the site." msgstr "テーマが見つかりません" msgid "No themes found." -msgstr "" +msgstr "テーマが見つかりません" msgid "None" msgstr "なし" @@ -994,7 +988,7 @@ msgid "OFF" msgstr "使わない" msgid "OK" -msgstr "" +msgstr "確定する" msgid "ON" msgstr "使う" @@ -1289,7 +1283,7 @@ msgid "Theme Downloader" msgstr "テーマをダウンロード" msgid "Theme Menu" -msgstr "" +msgstr "テーマ" msgid "Theme Path" msgstr "テーマ" @@ -1327,12 +1321,6 @@ msgstr "USB機器が見つかりません" msgid "USB Loader GX is protected" msgstr "GXは保護されています" -msgid "USB Port" -msgstr "" - -msgid "USB Port changing is only supported on Hermes cIOS." -msgstr "" - msgid "Uninstall" msgstr "アンインストール" @@ -1394,7 +1382,7 @@ msgid "VIDTV Patch" msgstr "映像パッチ" msgid "Version:" -msgstr "" +msgstr "バージョン:" #, c-format msgid "Version: %s" diff --git a/Languages/schinese.lang b/Languages/schinese.lang index 7011eaff..3746dd58 100644 --- a/Languages/schinese.lang +++ b/Languages/schinese.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-06 19:36+0100\n" +"POT-Creation-Date: 2011-02-11 18:41+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: knife.hu kavid emul8ion\n" "Language-Team: kavid\n" @@ -145,7 +145,7 @@ msgid "App Language" msgstr "语言设定" msgid "Apply" -msgstr "" +msgstr "应用" msgid "Apr" msgstr "四月" @@ -163,7 +163,7 @@ msgid "Aug" msgstr "八月" msgid "Author(s):" -msgstr "" +msgstr "作者:" msgid "AutoInit Network" msgstr "自动检测网络" @@ -247,7 +247,7 @@ msgid "Both" msgstr "全部" msgid "Both Ports" -msgstr "" +msgstr "两个接口" msgid "Can't be formatted" msgstr "无法格式化" @@ -445,7 +445,7 @@ msgid "Do you want to apply it now?" msgstr "要现在应用吗?" msgid "Do you want to apply this theme?" -msgstr "" +msgstr "你想应用这个主题吗?" msgid "Do you want to change language?" msgstr "要变更语言吗?" @@ -943,13 +943,13 @@ msgid "No file missing!" msgstr "没有文件缺少!" msgid "No new updates." -msgstr "没有可用更新" +msgstr "没有可用更新." msgid "No themes found on the site." -msgstr "网站上没找到主题" +msgstr "网站上没找到主题." msgid "No themes found." -msgstr "" +msgstr "没有找到主题." msgid "None" msgstr "无" @@ -1289,7 +1289,7 @@ msgid "Theme Downloader" msgstr "主题下载器" msgid "Theme Menu" -msgstr "" +msgstr "主题菜单" msgid "Theme Path" msgstr "主题路径" @@ -1328,10 +1328,10 @@ msgid "USB Loader GX is protected" msgstr "USB Loader GX 被锁定" msgid "USB Port" -msgstr "" +msgstr "USB接口" msgid "USB Port changing is only supported on Hermes cIOS." -msgstr "" +msgstr "仅Hermes CIOS支持USB接口的改变" msgid "Uninstall" msgstr "删除" @@ -1394,7 +1394,7 @@ msgid "VIDTV Patch" msgstr "VIDTV修改" msgid "Version:" -msgstr "" +msgstr "版本:" #, c-format msgid "Version: %s" diff --git a/Languages/tchinese.lang b/Languages/tchinese.lang index 905361f2..738deb3e 100644 --- a/Languages/tchinese.lang +++ b/Languages/tchinese.lang @@ -27,11 +27,11 @@ msgstr "不在伺服器上" #, c-format msgid "%i files not found on the server!" -msgstr "" +msgstr "伺服器上找不到%i個檔!" #, c-format msgid "%i missing files" -msgstr "" +msgstr "缺少%i個檔案" msgid "0 (Everyone)" msgstr "0 (全年齡)" @@ -145,7 +145,7 @@ msgid "App Language" msgstr "語言設定" msgid "Apply" -msgstr "" +msgstr "套用" msgid "Apr" msgstr "四月" @@ -163,13 +163,13 @@ msgid "Aug" msgstr "八月" msgid "Author(s):" -msgstr "" +msgstr "作者(群)" msgid "AutoInit Network" msgstr "自動檢查網路" msgid "Automatic port switching is done on the fly. You need to change all custom paths to SD-Card first for this option or else it could damage a filesystem." -msgstr "" +msgstr "快速執行自動槽位切換。首先你需要在SD卡改變所有自訂路徑這個選項,否則可能會損壞檔案系統。" msgid "BCA Codes Path" msgstr "BAC代碼路徑" @@ -247,7 +247,7 @@ msgid "Both" msgstr "全部" msgid "Both Ports" -msgstr "" +msgstr "兩個插槽" msgid "Can't be formatted" msgstr "無法格式化" @@ -364,7 +364,7 @@ msgid "Credits" msgstr "作者信息" msgid "Custom Discarts" -msgstr "" +msgstr "自製光碟圖片" msgid "Custom Paths" msgstr "自訂路徑" @@ -445,7 +445,7 @@ msgid "Do you want to apply it now?" msgstr "要套用設定嗎?" msgid "Do you want to apply this theme?" -msgstr "" +msgstr "要套用這個佈景主題嗎?" msgid "Do you want to change language?" msgstr "要變更語言嗎?" @@ -484,10 +484,10 @@ msgid "Downloading Flat Covers" msgstr "下載一般封面" msgid "Downloading Full HQ Covers" -msgstr "" +msgstr "下載完整高畫質封面" msgid "Downloading Full LQ Covers" -msgstr "" +msgstr "下載完整低畫質封面" msgid "Downloading custom Discarts" msgstr "下載自製光碟圖片" @@ -622,7 +622,7 @@ msgid "Formatting, please wait..." msgstr "格式化中, 請稍候..." msgid "Found missing images." -msgstr "" +msgstr "找到缺少圖片。" msgid "Free Space" msgstr "剩餘空間" @@ -631,13 +631,13 @@ msgid "French" msgstr "法文" msgid "Full Cover Path" -msgstr "" +msgstr "完整封面路徑" msgid "Full HQ Covers" -msgstr "" +msgstr "完整高畫質封面" msgid "Full LQ Covers" -msgstr "" +msgstr "完整低畫質封面" msgid "Full Menu" msgstr "完整選單" @@ -694,7 +694,7 @@ msgid "Game is already installed:" msgstr "已安裝過遊戲:" msgid "Game/Install Partition" -msgstr "" +msgstr "遊戲/安裝磁區" msgid "Gamename [GAMEID]" msgstr "遊戲名稱 [GAMEID]" @@ -892,7 +892,7 @@ msgid "Mount DVD drive" msgstr "掛載DVD光碟" msgid "Multiple Partitions" -msgstr "" +msgstr "多重磁區" msgid "Music Loop Mode" msgstr "音樂循環模式" @@ -949,7 +949,7 @@ msgid "No themes found on the site." msgstr "在網站上找不到主題。" msgid "No themes found." -msgstr "" +msgstr "找不到佈景主題。" msgid "None" msgstr "沒有" @@ -1018,7 +1018,7 @@ msgid "Only for Install" msgstr "安裝遊戲時" msgid "Original Discarts" -msgstr "" +msgstr "原始光碟圖片" msgid "Original/Customs" msgstr "原始/自製" @@ -1153,7 +1153,7 @@ msgid "Save Game List to" msgstr "儲存遊戲清單至" msgid "Save List" -msgstr "" +msgstr "儲存清單" msgid "Saved" msgstr "已儲存" @@ -1195,7 +1195,7 @@ msgid "Sort alphabetically" msgstr "以字母順序排序" msgid "Sort by number of players" -msgstr "" +msgstr "以玩家人數排序" msgid "Sort by rank" msgstr "以等級排序" @@ -1289,7 +1289,7 @@ msgid "Theme Downloader" msgstr "佈景主題下載" msgid "Theme Menu" -msgstr "" +msgstr "佈景主題選單" msgid "Theme Path" msgstr "佈景主題路徑" @@ -1328,10 +1328,10 @@ msgid "USB Loader GX is protected" msgstr "USB Loader GX 被上鎖保護" msgid "USB Port" -msgstr "" +msgstr "USB 插槽" msgid "USB Port changing is only supported on Hermes cIOS." -msgstr "" +msgstr "USB插槽變更僅Hermes cIOS支援。" msgid "Uninstall" msgstr "移除" @@ -1394,7 +1394,7 @@ msgid "VIDTV Patch" msgstr "VIDTV 修改" msgid "Version:" -msgstr "" +msgstr "版本:" #, c-format msgid "Version: %s" @@ -1857,4 +1857,4 @@ msgstr "剩餘秒數" #~ msgstr "不存在!檔案錯誤" #~ msgid "file left" -#~ msgstr "剩餘文件" +#~ msgstr "剩餘文件" \ No newline at end of file diff --git a/source/libs/libwbfs/libwbfs.c b/source/libs/libwbfs/libwbfs.c index c4382e84..bdfa4535 100644 --- a/source/libs/libwbfs/libwbfs.c +++ b/source/libs/libwbfs/libwbfs.c @@ -289,18 +289,6 @@ u32 wbfs_sector_used(wbfs_t *p, wbfs_disc_info_t *di) return tot_blk; } -u32 wbfs_sector_used2(wbfs_t *p, wbfs_disc_info_t *di, u32 *last_blk) -{ - u32 tot_blk = 0, j; - for (j = 0; j < p->n_wbfs_sec_per_disc; j++) - if (wbfs_ntohs( di->wlba_table[j] )) - { - if (last_blk) *last_blk = j; - tot_blk++; - } - return tot_blk; -} - u32 wbfs_get_disc_info(wbfs_t*p, u32 index, u8 *header, int header_size, u32 *size)//size in 32 bit { u32 i, count = 0; @@ -790,7 +778,7 @@ int wbfs_get_fragments(wbfs_disc_t *d, _frag_append_t append_fragment, void *cal int wbfs_iso_file_read(wbfs_disc_t*d, u32 offset, u8 *data, u32 len) { if (!d || d->p != &wbfs_iso_file) return -1; - int fd = (int) d->header; + int fd = d->i; off_t off = ((u64) offset) << 2; off_t ret_off; int ret; @@ -801,26 +789,18 @@ int wbfs_iso_file_read(wbfs_disc_t*d, u32 offset, u8 *data, u32 len) return 0; } -u32 wbfs_disc_sector_used(wbfs_disc_t *d, u32 *num_blk) +u32 wbfs_disc_sector_used(wbfs_disc_t *d) { + if(!d) return 0; + if (d->p == &wbfs_iso_file) { - int fd = (int) d->header; + int fd = d->i; struct stat st; if (fstat(fd, &st) == -1) return 0; - if (num_blk) - { - *num_blk = (st.st_size >> 9); // in 512 units - } - return st.st_blocks; // in 512 units (can be sparse) + return (st.st_size >> 9); } - u32 last_blk = 0; - u32 ret; - ret = wbfs_sector_used2(d->p, d->header, &last_blk); - if (num_blk) - { - *num_blk = last_blk + 1; - } - return ret; + + return wbfs_sector_used(d->p, d->header); } diff --git a/source/libs/libwbfs/libwbfs.h b/source/libs/libwbfs/libwbfs.h index 6b712da3..1b0e9877 100644 --- a/source/libs/libwbfs/libwbfs.h +++ b/source/libs/libwbfs/libwbfs.h @@ -151,7 +151,6 @@ extern "C" void wbfs_close_disc(wbfs_disc_t*d); u32 wbfs_sector_used(wbfs_t *p, wbfs_disc_info_t *di); - u32 wbfs_sector_used2(wbfs_t *p, wbfs_disc_info_t *di, u32 *last_blk); /*! @brief accessor to the wii disc @param d: a pointer to already open disc @@ -225,7 +224,7 @@ extern "C" int wbfs_get_fragments(wbfs_disc_t *d, _frag_append_t append_fragment, void *callback_data); extern wbfs_t wbfs_iso_file; - u32 wbfs_disc_sector_used(wbfs_disc_t *d, u32 *num_blk); + u32 wbfs_disc_sector_used(wbfs_disc_t *d); int wbfs_iso_file_read(wbfs_disc_t*d, u32 offset, u8 *data, u32 len); #ifdef __cplusplus diff --git a/source/mload/modules/ehcmodule_5.c b/source/mload/modules/ehcmodule_5.c index 46e45d2d..94fd5fa6 100644 --- a/source/mload/modules/ehcmodule_5.c +++ b/source/mload/modules/ehcmodule_5.c @@ -1,82 +1,82 @@ -#define size_ehcmodule_5 25856 +#define size_ehcmodule_5 25776 -unsigned char ehcmodule_5[25856] __attribute__((aligned (32)))={ +unsigned char ehcmodule_5[25776] __attribute__((aligned (32)))={ 127, 69, 76, 70, 1, 2, 1, 97, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 40, 0, 0, 0, 1, 19, 112, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 6, 6, 0, 52, 0, 32, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 160, 0, 240, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 212, 0, 0, 0, 160, 0, 0, 0, 160, 0, 0, 0, 52, 0, 0, 0, 52, 0, 240, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 212, 0, 240, 0, - 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 0, 1, 8, 19, 112, 0, 0, 19, 112, 0, 0, 0, 0, 90, 112, 0, 0, 90, 112, 0, 240, 0, 5, 0, - 0, 0, 4, 0, 0, 0, 1, 0, 0, 91, 120, 19, 112, 96, 0, 19, 112, 96, 0, 0, 0, 9, 136, 0, 2, 152, 8, 0, 240, 0, 6, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, 9, 19, 112, 0, 0, 0, 0, 0, 125, 0, 0, 0, - 120, 0, 0, 0, 126, 0, 0, 48, 0, 0, 0, 0, 127, 19, 114, 246, 8, 227, 160, 0, 0, 227, 160, 16, 0, 229, 159, 49, 0, 225, - 47, 255, 19, 229, 159, 192, 252, 229, 156, 192, 0, 225, 160, 0, 0, 231, 156, 193, 11, 225, 160, 0, 0, 225, 47, 255, - 28, 225, 160, 0, 0, 225, 160, 0, 0, 227, 160, 176, 63, 234, 255, 255, 245, 225, 160, 0, 0, 225, 160, 0, 0, 227, 160, - 176, 64, 234, 255, 255, 241, 227, 160, 0, 0, 238, 7, 15, 21, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 225, - 160, 0, 0, 227, 24, 0, 16, 10, 0, 0, 18, 227, 200, 128, 16, 227, 160, 32, 16, 229, 135, 32, 0, 225, 160, 0, 0, 225, - 160, 32, 13, 225, 160, 0, 0, 229, 159, 208, 144, 225, 160, 0, 0, 233, 45, 95, 254, 225, 160, 0, 0, 235, 0, 0, 15, 232, - 189, 95, 254, 225, 160, 0, 0, 225, 160, 208, 2, 227, 16, 0, 1, 10, 0, 0, 2, 225, 160, 0, 0, 227, 160, 0, 4, 235, 0, - 0, 5, 227, 24, 0, 1, 10, 0, 0, 1, 229, 159, 240, 88, 225, 160, 0, 0, 229, 159, 240, 84, 225, 160, 0, 0, 229, 159, 240, - 80, 225, 160, 0, 0, 229, 159, 32, 76, 225, 47, 255, 18, 225, 160, 0, 0, 238, 19, 15, 16, 225, 47, 255, 30, 225, 160, - 0, 0, 225, 160, 0, 0, 238, 3, 15, 16, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 69, 72, 67, 95, 67, 70, 71, - 0, 18, 52, 0, 1, 0, 0, 0, 0, 19, 112, 16, 157, 19, 114, 194, 96, 19, 114, 248, 8, 255, 255, 30, 128, 255, 255, 30, 156, + 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 0, 1, 8, 19, 112, 0, 0, 19, 112, 0, 0, 0, 0, 90, 32, 0, 0, 90, 32, 0, 240, 0, 5, 0, 0, + 0, 4, 0, 0, 0, 1, 0, 0, 91, 40, 19, 112, 96, 0, 19, 112, 96, 0, 0, 0, 9, 136, 0, 2, 152, 8, 0, 240, 0, 6, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, 9, 19, 112, 0, 0, 0, 0, 0, 125, 0, 0, 0, 120, + 0, 0, 0, 126, 0, 0, 48, 0, 0, 0, 0, 127, 19, 114, 246, 8, 227, 160, 0, 0, 227, 160, 16, 0, 229, 159, 49, 0, 225, 47, + 255, 19, 229, 159, 192, 252, 229, 156, 192, 0, 225, 160, 0, 0, 231, 156, 193, 11, 225, 160, 0, 0, 225, 47, 255, 28, + 225, 160, 0, 0, 225, 160, 0, 0, 227, 160, 176, 63, 234, 255, 255, 245, 225, 160, 0, 0, 225, 160, 0, 0, 227, 160, 176, + 64, 234, 255, 255, 241, 227, 160, 0, 0, 238, 7, 15, 21, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 225, 160, + 0, 0, 227, 24, 0, 16, 10, 0, 0, 18, 227, 200, 128, 16, 227, 160, 32, 16, 229, 135, 32, 0, 225, 160, 0, 0, 225, 160, + 32, 13, 225, 160, 0, 0, 229, 159, 208, 144, 225, 160, 0, 0, 233, 45, 95, 254, 225, 160, 0, 0, 235, 0, 0, 15, 232, 189, + 95, 254, 225, 160, 0, 0, 225, 160, 208, 2, 227, 16, 0, 1, 10, 0, 0, 2, 225, 160, 0, 0, 227, 160, 0, 4, 235, 0, 0, 5, + 227, 24, 0, 1, 10, 0, 0, 1, 229, 159, 240, 88, 225, 160, 0, 0, 229, 159, 240, 84, 225, 160, 0, 0, 229, 159, 240, 80, + 225, 160, 0, 0, 229, 159, 32, 76, 225, 47, 255, 18, 225, 160, 0, 0, 238, 19, 15, 16, 225, 47, 255, 30, 225, 160, 0, + 0, 225, 160, 0, 0, 238, 3, 15, 16, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 69, 72, 67, 95, 67, 70, 71, 0, + 18, 52, 0, 1, 0, 0, 0, 0, 19, 112, 16, 157, 19, 114, 194, 96, 19, 114, 248, 8, 255, 255, 30, 128, 255, 255, 30, 156, 255, 255, 29, 68, 19, 112, 13, 61, 225, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 40, 2, 208, 16, 40, 2, 216, 4, 40, 0, 208, 7, 40, 1, 209, 19, 224, 7, 40, 16, 208, 12, 40, 17, 209, 14, 224, 11, 75, 8, 104, 24, 224, 11, 72, 7, 224, 9, 75, 7, 34, 1, 96, 26, 32, 0, 224, 4, 72, 6, 224, 2, 72, 6, 224, 0, 72, 6, 188, 2, 71, 8, 19, - 112, 96, 48, 19, 112, 72, 189, 19, 112, 105, 168, 19, 112, 65, 185, 19, 112, 67, 1, 255, 255, 253, 102, 181, 112, 28, - 12, 28, 5, 240, 5, 252, 57, 28, 6, 32, 1, 66, 64, 240, 5, 252, 40, 14, 43, 115, 35, 12, 43, 115, 99, 10, 43, 115, 163, + 112, 96, 48, 19, 112, 72, 101, 19, 112, 105, 168, 19, 112, 65, 97, 19, 112, 66, 169, 255, 255, 253, 102, 181, 112, 28, + 12, 28, 5, 240, 5, 252, 17, 28, 6, 32, 1, 66, 64, 240, 5, 252, 0, 14, 43, 115, 35, 12, 43, 115, 99, 10, 43, 115, 163, 124, 34, 124, 99, 6, 18, 4, 27, 67, 19, 124, 162, 115, 229, 2, 18, 67, 19, 124, 226, 6, 45, 67, 19, 28, 32, 96, 29, - 48, 12, 33, 4, 240, 5, 252, 40, 124, 35, 124, 96, 6, 27, 4, 0, 67, 24, 124, 163, 33, 4, 2, 27, 67, 24, 124, 227, 67, - 24, 240, 5, 252, 27, 28, 48, 240, 5, 252, 0, 32, 0, 188, 112, 188, 2, 71, 8, 181, 8, 75, 12, 28, 1, 34, 32, 104, 24, - 240, 5, 252, 33, 40, 0, 209, 13, 72, 9, 240, 5, 251, 248, 240, 4, 252, 51, 32, 200, 240, 0, 255, 33, 240, 4, 252, 56, - 32, 200, 240, 0, 255, 28, 231, 244, 188, 8, 188, 2, 71, 8, 19, 112, 96, 48, 19, 112, 96, 84, 181, 8, 75, 4, 28, 1, 104, - 24, 240, 5, 251, 204, 188, 8, 188, 1, 71, 0, 70, 192, 19, 112, 96, 48, 181, 240, 176, 139, 144, 4, 145, 5, 28, 8, 28, - 17, 28, 23, 146, 7, 240, 5, 251, 216, 76, 129, 104, 35, 43, 0, 209, 0, 224, 241, 168, 9, 240, 3, 253, 190, 75, 126, - 96, 24, 40, 0, 208, 4, 35, 128, 154, 9, 1, 27, 66, 154, 208, 4, 35, 1, 74, 122, 66, 91, 96, 19, 224, 224, 78, 121, 72, - 122, 104, 51, 24, 26, 42, 0, 208, 104, 43, 0, 219, 102, 75, 116, 104, 26, 28, 81, 209, 98, 28, 53, 75, 112, 104, 48, - 104, 28, 33, 31, 34, 16, 52, 31, 24, 18, 67, 140, 146, 2, 33, 16, 28, 34, 240, 3, 255, 118, 40, 0, 209, 0, 224, 195, + 48, 12, 33, 4, 240, 5, 252, 0, 124, 35, 124, 96, 6, 27, 4, 0, 67, 24, 124, 163, 33, 4, 2, 27, 67, 24, 124, 227, 67, + 24, 240, 5, 251, 243, 28, 48, 240, 5, 251, 216, 32, 0, 188, 112, 188, 2, 71, 8, 181, 8, 75, 12, 28, 1, 34, 32, 104, + 24, 240, 5, 251, 249, 40, 0, 209, 13, 72, 9, 240, 5, 251, 208, 240, 4, 252, 7, 32, 200, 240, 0, 255, 33, 240, 4, 252, + 12, 32, 200, 240, 0, 255, 28, 231, 244, 188, 8, 188, 2, 71, 8, 19, 112, 96, 48, 19, 112, 96, 84, 181, 8, 75, 4, 28, + 1, 104, 24, 240, 5, 251, 164, 188, 8, 188, 1, 71, 0, 70, 192, 19, 112, 96, 48, 181, 240, 176, 139, 144, 4, 145, 5, 28, + 8, 28, 17, 28, 23, 146, 7, 240, 5, 251, 176, 76, 129, 104, 35, 43, 0, 209, 0, 224, 241, 168, 9, 240, 3, 253, 172, 75, + 126, 96, 24, 40, 0, 208, 4, 35, 128, 154, 9, 1, 27, 66, 154, 208, 4, 35, 1, 74, 122, 66, 91, 96, 19, 224, 224, 78, 121, + 72, 122, 104, 51, 24, 26, 42, 0, 208, 104, 43, 0, 219, 102, 75, 116, 104, 26, 28, 81, 209, 98, 28, 53, 75, 112, 104, + 48, 104, 28, 33, 31, 34, 16, 52, 31, 24, 18, 67, 140, 146, 2, 33, 16, 28, 34, 240, 3, 255, 74, 40, 0, 209, 0, 224, 195, 120, 35, 43, 67, 209, 11, 120, 99, 43, 73, 209, 8, 120, 163, 43, 83, 209, 5, 120, 227, 43, 79, 209, 2, 75, 103, 96, 51, 224, 8, 104, 43, 43, 0, 208, 2, 35, 0, 96, 43, 231, 218, 35, 1, 66, 91, 96, 43, 121, 98, 121, 163, 2, 18, 4, 27, 24, 211, 121, 34, 77, 95, 24, 155, 121, 226, 28, 40, 6, 18, 24, 155, 10, 219, 147, 3, 154, 3, 75, 91, 33, 0, 96, 26, - 34, 128, 1, 18, 240, 5, 250, 95, 75, 84, 104, 26, 75, 85, 66, 154, 209, 30, 32, 7, 35, 0, 70, 132, 70, 102, 64, 30, + 34, 128, 1, 18, 240, 5, 250, 55, 75, 84, 104, 26, 75, 85, 66, 154, 209, 30, 32, 7, 35, 0, 70, 132, 70, 102, 64, 30, 209, 4, 16, 218, 152, 2, 73, 82, 0, 146, 80, 80, 24, 226, 122, 18, 42, 0, 208, 10, 16, 218, 92, 168, 33, 1, 64, 177, 67, 8, 84, 168, 154, 2, 28, 16, 154, 3, 24, 128, 144, 2, 34, 128, 51, 1, 1, 210, 66, 147, 209, 227, 75, 63, 34, 31, 104, 27, 153, 5, 51, 31, 67, 147, 34, 128, 2, 18, 147, 3, 145, 2, 78, 60, 146, 6, 224, 97, 155, 4, 32, 15, 10, 93, 104, 51, 67, 133, 66, 157, 208, 63, 73, 56, 75, 57, 104, 10, 96, 53, 66, 154, 209, 33, 75, 57, 28, 40, 104, 28, 28, 33, 240, - 5, 250, 241, 75, 55, 8, 193, 0, 138, 88, 210, 35, 0, 147, 1, 35, 7, 64, 24, 70, 140, 35, 0, 144, 0, 224, 9, 72, 47, + 5, 250, 201, 75, 55, 8, 193, 0, 138, 88, 210, 35, 0, 147, 1, 35, 7, 64, 24, 70, 140, 35, 0, 144, 0, 224, 9, 72, 47, 70, 97, 92, 64, 28, 1, 65, 25, 32, 1, 66, 8, 208, 0, 25, 18, 51, 1, 153, 0, 66, 139, 211, 242, 60, 1, 64, 44, 25, 21, - 75, 34, 104, 28, 27, 100, 44, 16, 220, 10, 44, 16, 208, 9, 34, 128, 152, 3, 33, 0, 2, 18, 240, 5, 249, 242, 44, 0, 221, - 8, 224, 0, 36, 16, 28, 40, 28, 33, 154, 3, 240, 3, 254, 207, 40, 0, 208, 29, 154, 4, 152, 6, 4, 209, 12, 73, 26, 67, - 28, 60, 66, 187, 216, 0, 28, 28, 154, 3, 152, 2, 24, 137, 28, 34, 240, 5, 249, 150, 152, 2, 28, 33, 240, 5, 250, 236, + 75, 34, 104, 28, 27, 100, 44, 16, 220, 10, 44, 16, 208, 9, 34, 128, 152, 3, 33, 0, 2, 18, 240, 5, 249, 202, 44, 0, 221, + 8, 224, 0, 36, 16, 28, 40, 28, 33, 154, 3, 240, 3, 254, 163, 40, 0, 208, 29, 154, 4, 152, 6, 4, 209, 12, 73, 26, 67, + 28, 60, 66, 187, 216, 0, 28, 28, 154, 3, 152, 2, 24, 137, 28, 34, 240, 5, 249, 110, 152, 2, 28, 33, 240, 5, 250, 196, 155, 2, 152, 4, 25, 27, 27, 63, 16, 164, 25, 0, 147, 2, 144, 4, 47, 0, 209, 155, 224, 5, 32, 128, 2, 0, 176, 11, 188, - 240, 188, 2, 71, 8, 152, 5, 153, 7, 240, 5, 250, 247, 32, 0, 231, 245, 70, 192, 19, 112, 106, 56, 19, 112, 105, 176, + 240, 188, 2, 71, 8, 152, 5, 153, 7, 240, 5, 250, 207, 32, 0, 231, 245, 70, 192, 19, 112, 106, 56, 19, 112, 105, 176, 19, 112, 96, 24, 19, 112, 96, 12, 128, 0, 0, 1, 127, 255, 255, 255, 19, 112, 122, 96, 19, 112, 105, 180, 19, 112, 130, - 96, 181, 56, 28, 12, 240, 5, 250, 166, 30, 5, 209, 38, 44, 0, 208, 36, 104, 34, 42, 0, 208, 33, 120, 17, 120, 83, 6, + 96, 181, 56, 28, 12, 240, 5, 250, 126, 30, 5, 209, 38, 44, 0, 208, 36, 104, 34, 42, 0, 208, 33, 120, 17, 120, 83, 6, 9, 4, 27, 67, 11, 120, 145, 2, 9, 67, 11, 120, 209, 67, 11, 43, 6, 209, 21, 123, 17, 123, 83, 6, 9, 4, 27, 67, 11, 123, 145, 2, 9, 67, 11, 123, 209, 67, 11, 43, 122, 208, 2, 43, 136, 209, 7, 224, 2, 72, 5, 33, 21, 224, 1, 72, 4, 33, 20, - 240, 4, 250, 190, 28, 40, 188, 56, 188, 2, 71, 8, 70, 192, 19, 112, 1, 153, 181, 240, 176, 145, 75, 206, 33, 128, 104, - 24, 240, 5, 250, 49, 33, 32, 240, 5, 250, 96, 144, 8, 240, 0, 251, 131, 240, 5, 250, 163, 33, 120, 240, 5, 250, 92, - 153, 8, 72, 199, 240, 5, 250, 72, 72, 198, 154, 8, 28, 1, 35, 0, 240, 5, 250, 24, 73, 196, 144, 9, 32, 205, 240, 4, - 250, 61, 33, 0, 36, 1, 145, 7, 145, 11, 145, 6, 39, 0, 152, 8, 169, 15, 34, 0, 240, 5, 250, 74, 144, 14, 155, 14, 43, - 0, 209, 246, 44, 0, 208, 2, 152, 9, 240, 5, 250, 19, 74, 185, 158, 15, 35, 0, 96, 19, 46, 0, 209, 87, 75, 183, 104, - 27, 43, 0, 208, 5, 75, 182, 104, 27, 43, 0, 209, 1, 74, 181, 96, 19, 36, 0, 47, 0, 208, 222, 75, 178, 104, 27, 43, 0, - 208, 218, 75, 175, 104, 27, 43, 0, 209, 214, 75, 175, 104, 27, 43, 0, 208, 9, 240, 3, 253, 16, 40, 0, 208, 5, 240, 3, - 253, 12, 40, 0, 208, 1, 240, 3, 253, 8, 75, 168, 104, 27, 147, 4, 43, 0, 209, 36, 77, 167, 75, 167, 104, 42, 58, 1, - 66, 154, 216, 30, 78, 159, 76, 165, 35, 1, 96, 51, 104, 32, 33, 1, 74, 164, 240, 3, 253, 234, 155, 4, 96, 51, 40, 0, - 208, 9, 35, 128, 104, 42, 0, 155, 66, 154, 209, 4, 104, 35, 33, 128, 2, 9, 24, 91, 96, 35, 75, 154, 74, 156, 104, 25, - 104, 18, 66, 145, 211, 1, 34, 0, 96, 26, 75, 145, 36, 0, 104, 27, 43, 0, 209, 153, 152, 9, 73, 138, 240, 5, 249, 171, - 36, 1, 231, 147, 120, 51, 120, 112, 6, 27, 4, 0, 67, 24, 120, 179, 2, 27, 67, 24, 120, 243, 67, 24, 56, 1, 40, 6, 217, - 0, 226, 152, 240, 4, 255, 21, 0, 10, 0, 73, 2, 151, 2, 151, 2, 151, 0, 7, 0, 92, 38, 1, 37, 1, 226, 150, 123, 51, 123, - 116, 6, 27, 4, 36, 67, 28, 123, 179, 73, 119, 2, 27, 67, 28, 123, 243, 67, 28, 28, 32, 240, 5, 249, 5, 40, 0, 209, 11, - 125, 51, 125, 117, 6, 27, 4, 45, 67, 29, 125, 179, 2, 27, 67, 29, 125, 243, 38, 1, 67, 29, 226, 122, 28, 32, 73, 120, - 240, 5, 248, 243, 40, 0, 208, 0, 226, 108, 125, 51, 125, 117, 6, 27, 4, 45, 67, 29, 125, 179, 34, 1, 2, 27, 67, 29, - 125, 243, 39, 0, 67, 29, 75, 103, 38, 1, 96, 26, 75, 103, 96, 24, 72, 110, 240, 0, 251, 48, 75, 109, 34, 4, 104, 27, - 104, 155, 96, 154, 240, 1, 248, 47, 226, 87, 122, 50, 122, 115, 6, 18, 4, 27, 67, 19, 122, 178, 2, 18, 67, 19, 122, - 242, 67, 19, 154, 6, 66, 154, 209, 0, 226, 70, 240, 1, 248, 54, 38, 1, 37, 0, 226, 68, 126, 51, 126, 116, 6, 27, 4, + 240, 4, 250, 146, 28, 40, 188, 56, 188, 2, 71, 8, 70, 192, 19, 112, 1, 153, 181, 240, 176, 145, 75, 206, 33, 128, 104, + 24, 240, 5, 250, 9, 33, 32, 240, 5, 250, 56, 144, 8, 240, 0, 251, 131, 240, 5, 250, 123, 33, 120, 240, 5, 250, 52, 153, + 8, 72, 199, 240, 5, 250, 32, 72, 198, 154, 8, 28, 1, 35, 0, 240, 5, 249, 240, 73, 196, 144, 9, 32, 205, 240, 4, 250, + 17, 33, 0, 36, 1, 145, 7, 145, 11, 145, 6, 39, 0, 152, 8, 169, 15, 34, 0, 240, 5, 250, 34, 144, 14, 155, 14, 43, 0, + 209, 246, 44, 0, 208, 2, 152, 9, 240, 5, 249, 235, 74, 185, 158, 15, 35, 0, 96, 19, 46, 0, 209, 87, 75, 183, 104, 27, + 43, 0, 208, 5, 75, 182, 104, 27, 43, 0, 209, 1, 74, 181, 96, 19, 36, 0, 47, 0, 208, 222, 75, 178, 104, 27, 43, 0, 208, + 218, 75, 175, 104, 27, 43, 0, 209, 214, 75, 175, 104, 27, 43, 0, 208, 9, 240, 3, 252, 252, 40, 0, 208, 5, 240, 3, 252, + 248, 40, 0, 208, 1, 240, 3, 252, 244, 75, 168, 104, 27, 147, 4, 43, 0, 209, 36, 77, 167, 75, 167, 104, 42, 58, 1, 66, + 154, 216, 30, 78, 159, 76, 165, 35, 1, 96, 51, 104, 32, 33, 1, 74, 164, 240, 3, 253, 190, 155, 4, 96, 51, 40, 0, 208, + 9, 35, 128, 104, 42, 0, 155, 66, 154, 209, 4, 104, 35, 33, 128, 2, 9, 24, 91, 96, 35, 75, 154, 74, 156, 104, 25, 104, + 18, 66, 145, 211, 1, 34, 0, 96, 26, 75, 145, 36, 0, 104, 27, 43, 0, 209, 153, 152, 9, 73, 138, 240, 5, 249, 131, 36, + 1, 231, 147, 120, 51, 120, 112, 6, 27, 4, 0, 67, 24, 120, 179, 2, 27, 67, 24, 120, 243, 67, 24, 56, 1, 40, 6, 217, 0, + 226, 152, 240, 4, 254, 237, 0, 10, 0, 73, 2, 151, 2, 151, 2, 151, 0, 7, 0, 92, 38, 1, 37, 1, 226, 150, 123, 51, 123, + 116, 6, 27, 4, 36, 67, 28, 123, 179, 73, 119, 2, 27, 67, 28, 123, 243, 67, 28, 28, 32, 240, 5, 248, 221, 40, 0, 209, + 11, 125, 51, 125, 117, 6, 27, 4, 45, 67, 29, 125, 179, 2, 27, 67, 29, 125, 243, 38, 1, 67, 29, 226, 122, 28, 32, 73, + 120, 240, 5, 248, 203, 40, 0, 208, 0, 226, 108, 125, 51, 125, 117, 6, 27, 4, 45, 67, 29, 125, 179, 34, 1, 2, 27, 67, + 29, 125, 243, 39, 0, 67, 29, 75, 103, 38, 1, 96, 26, 75, 103, 96, 24, 72, 110, 240, 0, 251, 48, 75, 109, 34, 4, 104, + 27, 104, 155, 96, 154, 240, 1, 248, 39, 226, 87, 122, 50, 122, 115, 6, 18, 4, 27, 67, 19, 122, 178, 2, 18, 67, 19, 122, + 242, 67, 19, 154, 6, 66, 154, 209, 0, 226, 70, 240, 1, 248, 46, 38, 1, 37, 0, 226, 68, 126, 51, 126, 116, 6, 27, 4, 36, 67, 28, 126, 179, 124, 50, 2, 27, 67, 28, 126, 243, 6, 18, 67, 28, 124, 115, 4, 27, 67, 19, 124, 178, 2, 18, 67, 19, 124, 242, 67, 26, 146, 4, 125, 51, 125, 117, 6, 27, 4, 45, 67, 29, 125, 179, 2, 27, 67, 29, 125, 243, 67, 29, 155, 6, 43, 0, 209, 16, 123, 51, 43, 0, 209, 13, 122, 50, 122, 115, 122, 176, 6, 18, 4, 27, 67, 19, 2, 0, 67, 3, 122, 240, - 67, 24, 240, 1, 248, 18, 28, 6, 224, 0, 38, 0, 153, 4, 28, 32, 25, 73, 145, 10, 0, 201, 240, 5, 249, 116, 34, 0, 28, - 37, 146, 5, 224, 7, 104, 40, 104, 105, 240, 5, 249, 108, 155, 5, 53, 8, 51, 1, 147, 5, 153, 5, 154, 10, 66, 145, 219, + 67, 24, 240, 1, 248, 10, 28, 6, 224, 0, 38, 0, 153, 4, 28, 32, 25, 73, 145, 10, 0, 201, 240, 5, 249, 76, 34, 0, 28, + 37, 146, 5, 224, 7, 104, 40, 104, 105, 240, 5, 249, 68, 155, 5, 53, 8, 51, 1, 147, 5, 153, 5, 154, 10, 66, 145, 219, 243, 73, 48, 104, 11, 147, 5, 43, 0, 208, 0, 225, 213, 154, 15, 123, 16, 123, 83, 6, 0, 4, 27, 67, 3, 123, 144, 2, 0, 67, 3, 123, 208, 67, 3, 72, 51, 66, 131, 209, 0, 225, 38, 66, 131, 216, 31, 43, 6, 216, 11, 43, 5, 211, 0, 225, 180, 43, 1, 209, 0, 224, 159, 43, 0, 208, 119, 43, 2, 208, 0, 225, 70, 225, 171, 43, 27, 216, 6, 43, 26, 211, 0, 224, 172, @@ -85,429 +85,428 @@ unsigned char ehcmodule_5[25856] __attribute__((aligned (32)))={ 209, 0, 225, 17, 50, 2, 66, 147, 208, 0, 225, 31, 225, 20, 74, 25, 66, 147, 209, 0, 225, 22, 50, 1, 66, 147, 208, 0, 225, 22, 224, 169, 70, 192, 19, 112, 96, 48, 19, 112, 96, 109, 0, 152, 150, 128, 19, 112, 1, 65, 19, 112, 105, 208, 19, 112, 105, 164, 19, 112, 105, 168, 19, 112, 96, 20, 19, 112, 106, 52, 19, 114, 198, 0, 0, 0, 15, 254, 19, 112, 105, - 160, 19, 112, 106, 96, 19, 114, 198, 4, 19, 112, 96, 121, 19, 112, 21, 85, 19, 112, 96, 60, 85, 77, 83, 3, 85, 77, 83, + 160, 19, 112, 106, 96, 19, 114, 198, 4, 19, 112, 96, 121, 19, 112, 21, 69, 19, 112, 96, 60, 85, 77, 83, 3, 85, 77, 83, 1, 85, 77, 83, 130, 85, 77, 83, 16, 85, 77, 83, 128, 73, 196, 66, 139, 209, 0, 225, 63, 66, 139, 216, 7, 73, 194, 66, 139, 208, 119, 73, 194, 66, 139, 208, 0, 224, 219, 224, 220, 74, 192, 66, 147, 209, 0, 225, 36, 50, 1, 66, 147, 208, 0, 224, 210, 225, 20, 46, 0, 209, 0, 225, 55, 105, 162, 105, 35, 136, 21, 106, 34, 136, 27, 136, 16, 104, 34, 2, 25, 10, 27, 120, 18, 67, 11, 2, 41, 10, 45, 67, 13, 146, 5, 4, 45, 104, 162, 12, 45, 120, 18, 149, 0, 2, 5, 10, 0, 67, 40, - 4, 0, 12, 0, 144, 1, 107, 32, 4, 27, 144, 2, 12, 27, 28, 48, 153, 5, 240, 1, 251, 52, 225, 3, 46, 0, 209, 0, 225, 17, - 104, 35, 28, 48, 120, 25, 104, 163, 136, 26, 105, 35, 240, 1, 251, 20, 224, 247, 46, 0, 208, 0, 225, 5, 104, 35, 105, - 34, 120, 24, 104, 163, 120, 25, 105, 163, 240, 0, 255, 54, 224, 235, 38, 0, 37, 1, 225, 4, 154, 11, 42, 0, 209, 1, 240, - 0, 254, 211, 240, 3, 249, 47, 39, 0, 28, 5, 40, 0, 219, 3, 75, 151, 34, 1, 96, 26, 39, 1, 155, 15, 38, 1, 122, 25, 122, + 4, 0, 12, 0, 144, 1, 107, 32, 4, 27, 144, 2, 12, 27, 28, 48, 153, 5, 240, 1, 251, 44, 225, 3, 46, 0, 209, 0, 225, 17, + 104, 35, 28, 48, 120, 25, 104, 163, 136, 26, 105, 35, 240, 1, 251, 12, 224, 247, 46, 0, 208, 0, 225, 5, 104, 35, 105, + 34, 120, 24, 104, 163, 120, 25, 105, 163, 240, 0, 255, 46, 224, 235, 38, 0, 37, 1, 225, 4, 154, 11, 42, 0, 209, 1, 240, + 0, 254, 203, 240, 3, 249, 29, 39, 0, 28, 5, 40, 0, 219, 3, 75, 151, 34, 1, 96, 26, 39, 1, 155, 15, 38, 1, 122, 25, 122, 90, 6, 9, 4, 18, 67, 10, 122, 153, 122, 219, 2, 9, 67, 10, 67, 19, 147, 6, 150, 11, 224, 230, 75, 141, 153, 5, 38, 1, 96, 25, 37, 0, 39, 0, 224, 223, 104, 35, 104, 26, 75, 138, 224, 97, 104, 35, 37, 0, 120, 222, 75, 136, 120, 27, 66, - 179, 208, 16, 75, 135, 104, 27, 43, 0, 208, 12, 240, 3, 248, 224, 240, 0, 254, 214, 240, 0, 254, 188, 75, 129, 112, - 30, 240, 0, 254, 154, 240, 3, 248, 246, 28, 5, 75, 126, 112, 30, 224, 165, 35, 1, 96, 11, 154, 5, 75, 121, 72, 124, - 96, 26, 240, 0, 249, 164, 75, 123, 34, 4, 104, 27, 39, 0, 104, 155, 96, 154, 240, 0, 254, 162, 77, 120, 28, 40, 240, - 3, 250, 0, 75, 119, 96, 24, 104, 35, 43, 0, 208, 1, 104, 42, 96, 26, 75, 116, 104, 29, 224, 135, 104, 35, 105, 34, 104, - 24, 104, 163, 38, 1, 104, 25, 240, 3, 251, 206, 75, 111, 28, 5, 120, 26, 42, 0, 209, 0, 224, 148, 70, 105, 34, 23, 92, - 81, 112, 25, 104, 35, 40, 0, 221, 2, 104, 25, 72, 105, 224, 1, 104, 25, 72, 105, 240, 1, 248, 32, 224, 133, 104, 35, - 105, 34, 104, 24, 104, 163, 104, 25, 240, 3, 252, 86, 224, 97, 75, 100, 104, 26, 66, 81, 65, 74, 96, 26, 224, 105, 104, - 35, 104, 26, 75, 85, 96, 26, 38, 1, 231, 106, 122, 17, 122, 83, 6, 9, 4, 27, 67, 11, 122, 145, 122, 210, 2, 9, 67, 11, - 67, 26, 104, 37, 35, 0, 146, 6, 147, 13, 120, 42, 42, 95, 209, 26, 120, 106, 42, 68, 209, 23, 120, 170, 42, 86, 209, - 20, 120, 234, 42, 68, 209, 17, 77, 82, 74, 69, 96, 43, 104, 227, 33, 1, 96, 17, 43, 4, 209, 6, 104, 161, 168, 13, 34, - 4, 240, 4, 254, 86, 155, 13, 96, 43, 240, 3, 254, 220, 224, 17, 104, 227, 43, 4, 209, 4, 104, 161, 168, 13, 34, 4, 240, - 4, 254, 73, 28, 40, 153, 13, 240, 3, 255, 19, 144, 7, 40, 0, 208, 46, 75, 53, 34, 1, 96, 26, 38, 1, 37, 0, 224, 43, - 240, 3, 251, 18, 38, 1, 28, 5, 40, 0, 209, 42, 35, 1, 74, 60, 66, 91, 96, 19, 224, 37, 75, 45, 34, 1, 96, 26, 104, 35, - 105, 33, 104, 24, 104, 163, 104, 26, 247, 255, 251, 159, 28, 5, 38, 1, 224, 24, 154, 7, 42, 0, 208, 18, 104, 35, 105, - 34, 104, 25, 104, 163, 152, 7, 104, 27, 240, 4, 250, 225, 38, 1, 37, 0, 224, 10, 38, 1, 37, 6, 224, 6, 37, 1, 38, 1, - 66, 109, 39, 1, 224, 2, 38, 1, 37, 1, 66, 109, 153, 4, 0, 203, 24, 228, 224, 7, 104, 32, 104, 97, 240, 4, 255, 93, 154, - 4, 52, 8, 50, 1, 146, 4, 155, 4, 153, 10, 66, 139, 219, 243, 224, 9, 38, 1, 37, 1, 224, 1, 38, 1, 37, 6, 66, 109, 224, - 2, 37, 0, 38, 1, 149, 6, 74, 12, 36, 0, 104, 19, 43, 0, 208, 4, 152, 9, 73, 23, 240, 4, 254, 239, 36, 1, 46, 0, 209, - 0, 228, 213, 152, 15, 28, 41, 240, 4, 255, 69, 228, 208, 87, 70, 83, 2, 85, 77, 83, 131, 87, 70, 83, 1, 87, 70, 83, - 3, 19, 112, 96, 20, 19, 112, 105, 164, 19, 112, 1, 12, 19, 112, 106, 24, 19, 112, 21, 85, 19, 112, 96, 60, 19, 114, - 198, 0, 19, 114, 198, 4, 19, 112, 96, 16, 19, 112, 96, 137, 19, 112, 96, 164, 19, 112, 105, 172, 19, 112, 96, 12, 19, - 112, 96, 24, 0, 152, 150, 128, 74, 3, 35, 128, 104, 17, 2, 27, 67, 11, 96, 19, 71, 112, 70, 192, 13, 4, 0, 204, 75, - 2, 74, 3, 104, 25, 64, 10, 96, 26, 71, 112, 13, 4, 0, 204, 255, 255, 127, 255, 181, 16, 247, 255, 255, 243, 32, 128, - 240, 3, 253, 224, 33, 32, 240, 4, 254, 209, 76, 9, 96, 32, 32, 4, 240, 4, 254, 220, 104, 33, 34, 0, 32, 4, 240, 4, 254, - 255, 247, 255, 255, 215, 32, 4, 240, 4, 254, 168, 188, 16, 188, 1, 71, 0, 70, 192, 19, 112, 96, 32, 181, 16, 28, 4, - 75, 15, 28, 8, 0, 137, 24, 9, 104, 26, 0, 73, 35, 1, 240, 4, 254, 123, 75, 12, 33, 16, 96, 24, 72, 11, 240, 3, 254, - 226, 33, 16, 72, 10, 240, 3, 254, 233, 75, 10, 34, 55, 96, 28, 75, 9, 32, 4, 104, 27, 104, 155, 96, 154, 240, 4, 254, - 131, 188, 16, 188, 1, 71, 0, 19, 112, 96, 32, 19, 112, 96, 28, 13, 128, 0, 56, 13, 128, 0, 60, 19, 112, 105, 192, 19, - 112, 96, 60, 181, 112, 76, 21, 75, 21, 38, 2, 66, 118, 28, 33, 104, 24, 34, 0, 96, 38, 240, 4, 254, 143, 75, 18, 77, - 18, 104, 27, 104, 154, 35, 0, 96, 147, 74, 17, 104, 40, 96, 19, 240, 4, 254, 86, 104, 40, 240, 4, 254, 157, 35, 1, 66, - 91, 96, 43, 104, 35, 43, 0, 209, 3, 75, 11, 104, 27, 96, 35, 224, 0, 96, 38, 32, 4, 240, 4, 254, 77, 75, 2, 104, 24, - 188, 112, 188, 2, 71, 8, 19, 112, 105, 184, 19, 112, 96, 32, 19, 112, 96, 60, 19, 112, 96, 28, 19, 112, 105, 192, 19, - 112, 105, 188, 75, 2, 34, 0, 96, 24, 75, 2, 96, 26, 71, 112, 19, 112, 105, 196, 19, 112, 105, 192, 181, 248, 76, 34, - 38, 16, 104, 35, 77, 33, 67, 179, 96, 35, 104, 43, 73, 32, 104, 154, 121, 19, 121, 87, 6, 27, 4, 63, 67, 31, 121, 147, - 2, 27, 67, 31, 121, 211, 67, 31, 104, 11, 43, 0, 208, 18, 28, 56, 240, 0, 248, 56, 40, 0, 220, 20, 74, 22, 35, 0, 96, - 19, 75, 22, 96, 24, 32, 4, 240, 4, 254, 18, 104, 43, 34, 55, 104, 155, 64, 23, 96, 95, 224, 22, 75, 17, 104, 27, 43, - 0, 208, 8, 28, 56, 240, 0, 248, 33, 104, 43, 34, 55, 104, 155, 64, 23, 96, 95, 224, 2, 35, 55, 64, 31, 96, 87, 104, - 35, 67, 51, 96, 35, 75, 9, 104, 26, 67, 22, 96, 30, 32, 0, 188, 248, 188, 2, 71, 8, 70, 192, 13, 128, 0, 60, 19, 112, - 96, 60, 19, 112, 105, 192, 19, 112, 105, 188, 19, 112, 105, 196, 13, 128, 0, 56, 71, 24, 70, 192, 181, 112, 28, 12, - 28, 5, 240, 4, 254, 19, 28, 6, 32, 1, 66, 64, 240, 4, 254, 2, 104, 34, 75, 17, 66, 154, 209, 25, 75, 16, 73, 17, 34, - 1, 67, 19, 96, 75, 28, 32, 34, 8, 240, 4, 252, 171, 28, 32, 27, 100, 8, 164, 33, 8, 60, 2, 240, 4, 254, 6, 2, 36, 35, - 234, 10, 36, 6, 27, 67, 35, 96, 43, 28, 40, 33, 4, 240, 4, 253, 252, 28, 48, 240, 4, 253, 225, 188, 112, 188, 1, 71, - 0, 230, 0, 1, 112, 19, 112, 4, 153, 19, 112, 96, 36, 181, 56, 28, 4, 240, 4, 253, 154, 44, 38, 208, 72, 44, 38, 216, - 5, 44, 36, 208, 9, 44, 37, 208, 0, 224, 169, 224, 14, 44, 57, 208, 112, 44, 60, 208, 0, 224, 163, 224, 110, 73, 83, - 75, 84, 72, 84, 96, 75, 34, 8, 240, 4, 252, 115, 72, 82, 224, 150, 72, 82, 73, 82, 247, 255, 255, 171, 76, 77, 75, 81, - 77, 82, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 252, 100, 28, 40, 33, 8, 240, 4, 253, 194, 75, 77, 77, 78, 96, 99, 34, - 8, 28, 40, 28, 33, 240, 4, 252, 88, 28, 40, 33, 8, 240, 4, 253, 182, 75, 73, 77, 74, 96, 99, 34, 8, 28, 33, 28, 40, - 240, 4, 252, 76, 28, 40, 33, 8, 240, 4, 253, 170, 75, 59, 72, 69, 96, 99, 28, 33, 34, 8, 240, 4, 252, 65, 72, 66, 224, - 100, 72, 66, 73, 66, 247, 255, 255, 121, 76, 52, 75, 65, 77, 57, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 252, 50, 28, - 40, 33, 8, 240, 4, 253, 144, 75, 60, 77, 53, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 252, 38, 28, 40, 33, 8, 240, 4, - 253, 132, 75, 55, 77, 49, 96, 99, 34, 8, 28, 33, 28, 40, 240, 4, 252, 26, 28, 40, 33, 8, 240, 4, 253, 120, 75, 34, 72, - 50, 96, 99, 28, 33, 34, 8, 240, 4, 252, 15, 72, 47, 224, 50, 72, 47, 224, 0, 72, 47, 73, 47, 247, 255, 255, 69, 76, - 26, 75, 46, 77, 31, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 251, 254, 28, 40, 33, 8, 240, 4, 253, 92, 75, 41, 77, 27, - 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 251, 242, 28, 40, 33, 8, 240, 4, 253, 80, 75, 36, 77, 23, 96, 99, 34, 8, 28, - 33, 28, 40, 240, 4, 251, 230, 28, 40, 33, 8, 240, 4, 253, 68, 75, 8, 72, 31, 96, 99, 28, 33, 34, 8, 240, 4, 251, 219, - 72, 28, 33, 8, 240, 4, 253, 57, 32, 0, 188, 56, 188, 2, 71, 8, 70, 192, 19, 112, 96, 36, 19, 112, 0, 96, 255, 255, 30, - 120, 32, 32, 93, 232, 32, 32, 64, 140, 255, 255, 31, 112, 19, 112, 0, 188, 255, 255, 31, 140, 19, 112, 0, 196, 255, - 255, 30, 52, 19, 112, 0, 204, 255, 255, 31, 104, 32, 32, 91, 20, 32, 32, 62, 108, 255, 255, 30, 176, 255, 255, 30, 204, - 255, 255, 29, 116, 255, 255, 30, 168, 32, 32, 94, 132, 32, 32, 93, 148, 32, 32, 63, 96, 255, 255, 33, 48, 255, 255, - 33, 76, 255, 255, 31, 244, 255, 255, 33, 40, 181, 56, 77, 11, 35, 0, 104, 42, 73, 10, 240, 4, 252, 153, 76, 10, 73, - 10, 34, 0, 96, 32, 104, 40, 240, 4, 252, 212, 104, 32, 240, 4, 252, 163, 104, 32, 240, 4, 252, 234, 188, 56, 188, 1, - 71, 0, 70, 192, 19, 112, 96, 44, 0, 152, 150, 128, 19, 112, 96, 52, 19, 112, 105, 200, 181, 8, 1, 67, 26, 27, 0, 155, - 24, 24, 0, 192, 247, 255, 255, 216, 188, 8, 188, 1, 71, 0, 0, 0, 181, 0, 74, 5, 2, 192, 104, 19, 104, 17, 26, 201, 213, - 0, 104, 19, 66, 129, 217, 249, 188, 1, 71, 0, 13, 128, 0, 16, 181, 8, 75, 24, 120, 26, 30, 83, 65, 154, 75, 23, 96, - 26, 240, 3, 252, 156, 75, 22, 33, 4, 96, 24, 28, 24, 240, 4, 252, 177, 240, 3, 252, 158, 34, 0, 28, 1, 72, 18, 240, - 3, 252, 211, 33, 160, 2, 73, 72, 16, 240, 4, 252, 153, 75, 16, 33, 128, 96, 24, 240, 4, 252, 74, 33, 32, 240, 4, 252, - 121, 75, 13, 96, 24, 240, 3, 250, 245, 40, 0, 219, 3, 247, 255, 250, 7, 32, 0, 224, 1, 32, 1, 66, 64, 188, 8, 188, 2, - 71, 8, 19, 112, 1, 12, 19, 112, 106, 48, 19, 114, 194, 96, 19, 112, 14, 77, 19, 113, 130, 96, 19, 112, 96, 48, 19, 112, - 96, 44, 181, 240, 7, 65, 213, 32, 34, 128, 78, 17, 77, 18, 76, 18, 35, 0, 1, 146, 104, 49, 0, 152, 104, 137, 104, 47, - 49, 68, 24, 9, 104, 8, 66, 187, 209, 10, 7, 193, 212, 12, 73, 12, 32, 2, 96, 8, 73, 12, 39, 32, 104, 8, 67, 184, 96, - 8, 224, 3, 64, 32, 40, 3, 209, 0, 96, 10, 51, 1, 43, 4, 209, 228, 188, 240, 188, 1, 71, 0, 70, 192, 19, 112, 96, 60, - 19, 112, 106, 48, 0, 0, 32, 3, 19, 112, 106, 52, 13, 128, 0, 192, 181, 240, 176, 131, 147, 1, 155, 8, 76, 14, 0, 91, - 104, 38, 28, 13, 28, 23, 147, 0, 32, 10, 247, 255, 255, 71, 104, 43, 154, 1, 64, 59, 66, 147, 208, 9, 104, 35, 27, 155, - 213, 0, 104, 38, 154, 0, 66, 147, 211, 240, 32, 2, 66, 64, 224, 0, 32, 0, 176, 3, 188, 240, 188, 2, 71, 8, 70, 192, - 13, 128, 0, 16, 181, 56, 28, 4, 240, 3, 250, 227, 33, 0, 28, 5, 34, 96, 28, 32, 240, 4, 251, 8, 35, 64, 96, 163, 35, - 128, 4, 91, 99, 101, 96, 35, 96, 99, 188, 56, 188, 1, 71, 0, 181, 16, 75, 12, 36, 0, 104, 27, 108, 26, 42, 7, 220, 13, - 73, 10, 104, 12, 0, 228, 24, 164, 0, 97, 25, 12, 106, 25, 1, 100, 25, 12, 50, 1, 100, 26, 28, 32, 247, 255, 255, 215, - 28, 32, 188, 16, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 19, 112, 106, 32, 181, 240, 28, 4, 176, 133, 28, 8, 28, 14, - 147, 3, 28, 23, 240, 4, 250, 91, 35, 0, 98, 35, 5, 53, 35, 128, 13, 45, 1, 91, 27, 93, 96, 224, 66, 175, 210, 1, 28, - 61, 224, 49, 32, 128, 1, 64, 24, 54, 11, 54, 3, 54, 150, 2, 33, 1, 28, 38, 54, 16, 145, 1, 224, 20, 152, 2, 240, 4, - 250, 65, 34, 0, 198, 1, 97, 50, 155, 2, 33, 128, 28, 24, 35, 128, 1, 91, 1, 73, 24, 192, 24, 109, 144, 2, 66, 189, 211, - 0, 28, 61, 154, 1, 50, 1, 146, 1, 66, 189, 210, 8, 152, 1, 33, 0, 15, 195, 34, 4, 66, 130, 65, 75, 6, 27, 43, 0, 209, - 223, 66, 189, 208, 4, 28, 40, 153, 10, 240, 4, 251, 138, 26, 109, 155, 3, 4, 40, 67, 24, 240, 4, 250, 24, 35, 128, 4, - 91, 96, 160, 100, 37, 96, 35, 96, 99, 176, 5, 28, 40, 188, 240, 188, 2, 71, 8, 0, 0, 181, 240, 176, 139, 28, 5, 247, - 255, 255, 133, 28, 6, 32, 0, 46, 0, 209, 0, 224, 145, 99, 245, 105, 42, 126, 107, 126, 47, 97, 104, 146, 3, 147, 7, - 47, 0, 209, 25, 35, 8, 147, 0, 35, 160, 104, 105, 34, 8, 0, 155, 28, 48, 247, 255, 255, 140, 247, 255, 255, 108, 28, - 4, 28, 56, 44, 0, 208, 121, 107, 96, 99, 229, 240, 4, 249, 230, 154, 3, 96, 48, 99, 180, 42, 0, 208, 4, 79, 58, 224, - 3, 28, 52, 39, 128, 224, 0, 79, 56, 104, 235, 154, 7, 147, 4, 42, 0, 208, 2, 35, 128, 0, 91, 67, 31, 105, 235, 150, - 9, 5, 91, 13, 91, 147, 5, 154, 5, 35, 128, 4, 91, 58, 1, 147, 6, 146, 8, 155, 5, 154, 3, 147, 0, 28, 32, 28, 59, 153, - 4, 247, 255, 255, 92, 154, 3, 155, 4, 26, 18, 146, 3, 154, 7, 24, 27, 147, 4, 42, 0, 208, 1, 155, 6, 96, 99, 154, 8, - 155, 5, 24, 128, 66, 3, 209, 2, 34, 128, 6, 18, 24, 191, 155, 3, 43, 0, 221, 11, 247, 255, 255, 38, 30, 6, 208, 52, - 107, 112, 99, 245, 240, 4, 249, 162, 99, 166, 96, 32, 28, 52, 231, 213, 35, 128, 4, 91, 96, 99, 105, 43, 158, 9, 148, - 3, 43, 0, 208, 29, 126, 42, 146, 4, 42, 0, 209, 25, 247, 255, 255, 14, 28, 4, 32, 0, 44, 0, 208, 27, 107, 96, 99, 229, - 240, 4, 249, 136, 155, 3, 34, 128, 96, 24, 99, 156, 35, 128, 0, 91, 6, 18, 64, 123, 67, 19, 154, 4, 28, 32, 146, 0, - 33, 0, 34, 0, 247, 255, 255, 20, 104, 162, 35, 128, 4, 27, 67, 19, 96, 163, 28, 48, 224, 0, 32, 0, 176, 11, 188, 240, - 188, 2, 71, 8, 128, 0, 0, 128, 128, 0, 1, 128, 181, 56, 76, 19, 37, 32, 104, 35, 104, 155, 120, 25, 120, 90, 6, 9, 4, - 18, 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, 224, 18, 104, 34, 67, 171, 104, 146, 32, 10, 96, 19, 247, 255, - 253, 235, 104, 35, 104, 155, 120, 25, 120, 90, 6, 9, 4, 18, 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, 66, 29, - 209, 234, 188, 56, 188, 1, 71, 0, 19, 112, 96, 60, 181, 56, 76, 19, 37, 32, 104, 35, 104, 155, 120, 25, 120, 90, 6, - 9, 4, 18, 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, 224, 18, 104, 34, 67, 43, 104, 146, 32, 10, 96, 19, 247, - 255, 253, 193, 104, 35, 104, 155, 120, 25, 120, 90, 6, 9, 4, 18, 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, 66, - 29, 208, 234, 188, 56, 188, 1, 71, 0, 19, 112, 96, 60, 181, 248, 28, 12, 40, 0, 209, 33, 77, 28, 76, 29, 79, 29, 38, - 0, 104, 43, 104, 155, 126, 25, 126, 90, 6, 9, 4, 18, 67, 10, 126, 153, 126, 219, 2, 9, 67, 10, 67, 19, 105, 34, 108, - 82, 66, 147, 211, 6, 105, 98, 108, 82, 66, 147, 216, 2, 247, 255, 255, 142, 224, 25, 32, 10, 54, 1, 247, 255, 253, 139, - 66, 190, 209, 226, 224, 18, 40, 1, 209, 16, 224, 6, 32, 10, 54, 1, 247, 255, 253, 129, 66, 190, 209, 3, 224, 8, 77, - 6, 79, 8, 38, 0, 104, 43, 104, 155, 105, 154, 108, 99, 66, 154, 208, 239, 32, 0, 188, 248, 188, 2, 71, 8, 70, 192, 19, - 112, 96, 60, 19, 114, 194, 128, 0, 0, 19, 136, 181, 0, 7, 67, 213, 21, 75, 12, 104, 27, 104, 154, 75, 11, 108, 81, 64, - 11, 43, 3, 209, 2, 35, 128, 1, 155, 100, 83, 75, 6, 104, 27, 104, 154, 75, 6, 108, 145, 64, 11, 43, 3, 209, 2, 35, 128, - 1, 155, 100, 147, 188, 1, 71, 0, 70, 192, 19, 112, 96, 60, 0, 0, 32, 3, 181, 16, 75, 19, 28, 4, 104, 27, 52, 16, 104, - 155, 0, 164, 25, 28, 34, 128, 104, 99, 1, 146, 66, 19, 209, 0, 64, 83, 34, 46, 67, 147, 96, 99, 32, 5, 247, 255, 253, - 98, 34, 128, 104, 99, 1, 146, 66, 19, 208, 0, 64, 83, 34, 46, 67, 147, 96, 99, 32, 5, 247, 255, 253, 86, 75, 4, 32, - 5, 96, 99, 247, 255, 253, 81, 188, 16, 188, 1, 71, 0, 19, 112, 96, 60, 0, 0, 24, 1, 181, 240, 176, 131, 75, 36, 28, - 5, 104, 27, 53, 16, 104, 155, 0, 173, 25, 93, 104, 107, 74, 33, 29, 44, 64, 26, 38, 4, 42, 1, 208, 4, 4, 154, 213, 51, - 247, 255, 255, 192, 224, 48, 39, 136, 1, 127, 34, 4, 67, 147, 67, 59, 96, 35, 32, 60, 247, 255, 253, 32, 104, 35, 74, - 24, 32, 50, 64, 19, 96, 35, 247, 255, 253, 25, 75, 22, 34, 128, 147, 0, 28, 32, 28, 33, 0, 82, 35, 0, 247, 255, 253, - 156, 40, 0, 208, 2, 104, 107, 72, 17, 224, 20, 104, 35, 34, 4, 66, 26, 209, 16, 62, 1, 46, 0, 209, 220, 34, 128, 1, - 146, 67, 19, 33, 42, 67, 139, 96, 107, 32, 10, 96, 106, 247, 255, 252, 250, 72, 8, 224, 1, 32, 1, 66, 64, 176, 3, 188, - 240, 188, 2, 71, 8, 19, 112, 96, 60, 0, 0, 32, 1, 255, 255, 254, 213, 0, 0, 19, 136, 255, 255, 248, 48, 255, 255, 251, - 161, 181, 16, 75, 20, 28, 4, 104, 27, 52, 16, 104, 155, 0, 164, 25, 28, 34, 128, 104, 99, 1, 146, 66, 19, 209, 0, 64, - 83, 34, 46, 67, 147, 96, 99, 32, 5, 247, 255, 252, 222, 34, 128, 104, 99, 1, 146, 66, 19, 208, 0, 64, 83, 34, 46, 67, - 147, 96, 99, 32, 5, 247, 255, 252, 210, 75, 5, 32, 60, 96, 99, 247, 255, 252, 205, 32, 1, 188, 16, 188, 2, 71, 8, 70, - 192, 19, 112, 96, 60, 0, 0, 24, 1, 32, 0, 71, 112, 75, 5, 48, 16, 104, 27, 0, 128, 104, 155, 24, 24, 104, 67, 35, 128, - 1, 155, 96, 67, 71, 112, 70, 192, 19, 112, 96, 60, 74, 5, 32, 0, 104, 19, 104, 153, 35, 128, 1, 155, 100, 75, 104, 18, - 104, 146, 100, 147, 71, 112, 70, 192, 19, 112, 96, 60, 181, 0, 75, 10, 104, 27, 104, 154, 35, 128, 108, 81, 1, 155, - 66, 25, 209, 0, 100, 83, 75, 5, 104, 27, 104, 154, 35, 128, 108, 145, 1, 155, 66, 25, 209, 0, 100, 147, 32, 0, 188, - 2, 71, 8, 19, 112, 96, 60, 75, 6, 33, 0, 104, 26, 35, 1, 66, 91, 28, 16, 103, 17, 103, 147, 48, 152, 50, 160, 96, 1, - 96, 19, 71, 112, 70, 192, 19, 112, 96, 60, 75, 6, 120, 27, 30, 90, 65, 147, 74, 5, 0, 152, 96, 19, 74, 5, 24, 195, 0, - 219, 104, 16, 51, 88, 24, 192, 71, 112, 19, 112, 1, 12, 19, 112, 106, 48, 19, 112, 96, 60, 181, 16, 73, 19, 120, 9, - 30, 72, 65, 129, 72, 18, 0, 140, 96, 1, 72, 17, 24, 97, 104, 0, 0, 201, 24, 64, 111, 4, 33, 0, 44, 0, 208, 16, 128, - 25, 128, 89, 28, 1, 49, 96, 136, 8, 4, 0, 10, 4, 14, 0, 67, 32, 128, 152, 136, 73, 4, 9, 10, 8, 14, 9, 67, 1, 128, 217, - 33, 1, 32, 0, 112, 17, 188, 16, 188, 2, 71, 8, 70, 192, 19, 112, 1, 12, 19, 112, 106, 48, 19, 112, 96, 60, 181, 0, 28, - 3, 224, 8, 120, 90, 58, 4, 6, 18, 14, 18, 42, 1, 217, 4, 120, 26, 26, 137, 24, 155, 41, 0, 209, 244, 26, 24, 188, 2, - 71, 8, 181, 240, 176, 133, 124, 130, 124, 195, 6, 18, 4, 27, 67, 19, 125, 2, 28, 5, 2, 18, 67, 19, 125, 66, 67, 26, - 208, 103, 34, 0, 146, 3, 146, 1, 224, 83, 6, 36, 4, 9, 2, 18, 67, 12, 67, 20, 158, 3, 67, 35, 25, 156, 122, 98, 122, - 163, 6, 18, 4, 27, 67, 19, 122, 226, 2, 18, 67, 19, 123, 34, 67, 26, 208, 58, 39, 0, 151, 2, 28, 46, 224, 36, 6, 0, - 4, 9, 2, 18, 67, 8, 67, 16, 67, 3, 25, 221, 123, 170, 123, 235, 6, 18, 4, 27, 67, 19, 124, 42, 124, 104, 2, 18, 67, - 19, 67, 24, 208, 1, 240, 2, 255, 194, 122, 106, 122, 171, 6, 18, 4, 27, 67, 19, 122, 234, 123, 40, 2, 18, 67, 19, 67, - 24, 208, 1, 240, 2, 255, 181, 154, 2, 55, 18, 50, 1, 146, 2, 121, 35, 157, 2, 70, 156, 122, 96, 122, 161, 122, 226, - 123, 35, 69, 101, 219, 209, 28, 53, 6, 6, 4, 8, 67, 48, 2, 18, 67, 16, 67, 24, 240, 2, 255, 159, 158, 1, 154, 3, 54, - 1, 50, 13, 150, 1, 146, 3, 124, 104, 158, 1, 124, 172, 124, 233, 125, 42, 125, 107, 66, 134, 219, 163, 6, 36, 4, 8, - 67, 32, 2, 18, 67, 16, 67, 24, 240, 2, 255, 137, 176, 5, 188, 240, 188, 1, 71, 0, 0, 0, 181, 248, 30, 5, 209, 4, 75, - 28, 34, 48, 112, 26, 112, 93, 224, 47, 76, 26, 28, 46, 28, 48, 33, 10, 240, 4, 248, 72, 28, 48, 28, 15, 33, 10, 240, - 4, 248, 63, 23, 251, 24, 255, 64, 95, 55, 48, 75, 20, 112, 39, 60, 1, 28, 6, 66, 156, 209, 236, 75, 15, 34, 0, 118, - 154, 45, 0, 218, 2, 34, 45, 112, 26, 34, 1, 35, 16, 72, 10, 224, 0, 51, 1, 92, 193, 41, 48, 208, 251, 66, 72, 65, 65, - 26, 91, 73, 6, 224, 2, 84, 136, 51, 1, 50, 1, 92, 200, 40, 0, 209, 249, 84, 136, 188, 248, 188, 1, 71, 0, 70, 192, 19, - 114, 196, 64, 19, 114, 196, 89, 19, 114, 196, 79, 181, 248, 30, 4, 209, 4, 75, 24, 34, 48, 112, 26, 112, 92, 224, 40, - 77, 22, 28, 47, 63, 10, 28, 32, 33, 10, 240, 3, 255, 223, 28, 32, 28, 14, 33, 10, 240, 3, 255, 230, 54, 48, 112, 46, - 61, 1, 28, 4, 66, 189, 209, 240, 74, 12, 35, 0, 118, 147, 28, 17, 35, 16, 224, 0, 51, 1, 92, 202, 42, 48, 208, 251, - 66, 81, 65, 74, 26, 155, 73, 6, 34, 0, 224, 2, 84, 136, 51, 1, 50, 1, 92, 200, 40, 0, 209, 249, 84, 136, 188, 248, 188, - 1, 71, 0, 19, 114, 196, 64, 19, 114, 196, 89, 181, 16, 40, 0, 209, 4, 75, 24, 34, 48, 112, 26, 112, 88, 224, 40, 75, - 22, 33, 15, 28, 28, 60, 8, 28, 10, 64, 2, 9, 0, 42, 9, 221, 0, 50, 7, 50, 48, 112, 26, 59, 1, 66, 163, 209, 244, 74, - 14, 35, 0, 118, 19, 35, 48, 112, 19, 35, 120, 112, 83, 35, 16, 224, 0, 51, 1, 92, 209, 41, 48, 208, 251, 66, 74, 65, - 74, 26, 155, 73, 6, 34, 2, 224, 2, 84, 136, 51, 1, 50, 1, 92, 200, 40, 0, 209, 249, 84, 136, 188, 16, 188, 1, 71, 0, - 19, 114, 196, 64, 19, 114, 196, 87, 180, 15, 181, 240, 176, 133, 171, 10, 203, 64, 34, 128, 1, 146, 169, 3, 128, 10, - 147, 2, 36, 0, 77, 46, 79, 46, 224, 81, 28, 114, 146, 1, 43, 37, 208, 12, 70, 106, 115, 19, 168, 3, 240, 3, 254, 241, - 25, 4, 158, 1, 66, 172, 220, 68, 168, 3, 240, 3, 255, 166, 224, 64, 120, 115, 43, 115, 208, 46, 43, 115, 216, 4, 43, - 100, 208, 7, 43, 105, 209, 53, 224, 4, 43, 117, 208, 9, 43, 120, 209, 48, 224, 20, 155, 2, 29, 26, 146, 2, 104, 24, - 247, 255, 255, 26, 224, 19, 155, 2, 29, 26, 146, 2, 104, 24, 247, 255, 255, 85, 28, 56, 240, 3, 254, 202, 25, 4, 28, - 56, 66, 172, 220, 27, 224, 24, 155, 2, 29, 26, 146, 2, 104, 24, 247, 255, 255, 127, 72, 16, 240, 3, 254, 188, 25, 4, - 66, 172, 220, 14, 72, 13, 224, 10, 155, 2, 29, 26, 146, 2, 104, 30, 28, 48, 240, 3, 254, 176, 25, 4, 66, 172, 220, 2, - 28, 48, 240, 3, 255, 102, 158, 1, 54, 1, 120, 51, 43, 0, 209, 170, 176, 5, 188, 240, 188, 8, 176, 4, 71, 24, 0, 0, 13, - 171, 19, 114, 196, 64, 181, 240, 28, 12, 176, 133, 28, 6, 33, 0, 32, 0, 247, 255, 252, 176, 126, 35, 43, 0, 209, 6, - 74, 218, 33, 8, 96, 19, 104, 32, 240, 2, 254, 13, 96, 96, 105, 33, 41, 0, 208, 9, 126, 99, 104, 160, 43, 0, 208, 2, - 240, 2, 254, 3, 224, 1, 240, 2, 254, 8, 96, 224, 126, 35, 43, 0, 209, 3, 75, 207, 104, 27, 105, 219, 224, 6, 126, 99, - 43, 0, 208, 1, 75, 205, 224, 0, 75, 205, 104, 27, 147, 2, 77, 204, 75, 205, 153, 2, 28, 40, 96, 25, 34, 96, 240, 2, - 255, 48, 33, 0, 34, 48, 152, 2, 240, 3, 254, 13, 75, 195, 34, 0, 104, 27, 28, 32, 100, 26, 75, 197, 34, 1, 104, 25, - 64, 74, 96, 26, 247, 255, 251, 121, 75, 195, 100, 168, 96, 24, 126, 34, 35, 15, 146, 1, 64, 26, 146, 3, 155, 3, 28, - 7, 34, 128, 105, 176, 2, 29, 1, 146, 155, 1, 67, 2, 105, 225, 67, 42, 43, 0, 209, 1, 72, 186, 224, 5, 5, 72, 35, 128, - 9, 64, 5, 219, 67, 3, 28, 24, 67, 16, 240, 3, 253, 102, 77, 176, 35, 64, 96, 171, 75, 180, 33, 255, 104, 27, 34, 255, - 108, 91, 2, 9, 4, 18, 64, 25, 64, 26, 2, 9, 10, 18, 67, 10, 14, 25, 67, 10, 33, 224, 64, 11, 33, 2, 67, 11, 6, 27, 67, - 26, 96, 104, 96, 42, 107, 120, 240, 3, 253, 74, 35, 128, 153, 1, 4, 91, 97, 40, 97, 107, 41, 0, 208, 16, 9, 203, 153, - 3, 106, 114, 1, 27, 24, 91, 64, 218, 28, 19, 7, 218, 213, 3, 105, 170, 35, 128, 67, 19, 224, 2, 105, 171, 34, 128, 67, - 147, 97, 171, 77, 150, 75, 156, 105, 170, 28, 40, 64, 19, 97, 171, 33, 96, 240, 2, 253, 139, 108, 173, 224, 4, 28, 40, - 33, 96, 240, 2, 253, 133, 107, 173, 45, 0, 209, 248, 152, 2, 73, 141, 34, 96, 240, 2, 254, 168, 75, 146, 120, 27, 43, - 0, 208, 4, 75, 145, 72, 145, 104, 25, 247, 255, 254, 218, 75, 144, 34, 1, 96, 26, 77, 130, 35, 0, 147, 1, 153, 1, 74, - 139, 49, 1, 145, 1, 72, 140, 104, 17, 247, 254, 255, 184, 104, 43, 33, 32, 105, 152, 240, 2, 253, 117, 104, 42, 73, - 124, 39, 2, 108, 75, 105, 145, 34, 255, 2, 18, 64, 26, 2, 16, 34, 255, 4, 18, 64, 26, 10, 18, 67, 2, 14, 24, 67, 2, - 32, 224, 64, 3, 67, 59, 6, 24, 28, 19, 67, 3, 96, 11, 104, 43, 33, 32, 105, 152, 240, 2, 253, 69, 247, 255, 251, 163, - 247, 254, 255, 193, 154, 1, 42, 4, 208, 6, 28, 3, 51, 9, 209, 3, 72, 118, 247, 255, 254, 158, 231, 200, 75, 114, 34, - 0, 96, 26, 75, 109, 28, 7, 120, 27, 43, 0, 208, 3, 72, 113, 28, 57, 247, 255, 254, 145, 47, 0, 209, 3, 75, 93, 104, - 27, 43, 0, 208, 15, 75, 92, 104, 27, 104, 154, 75, 107, 50, 68, 104, 27, 0, 155, 24, 211, 104, 27, 34, 5, 64, 19, 43, - 5, 208, 2, 75, 84, 34, 1, 96, 26, 66, 121, 65, 121, 145, 1, 29, 122, 208, 1, 41, 0, 208, 65, 247, 255, 251, 66, 77, - 79, 33, 32, 104, 43, 105, 152, 240, 3, 254, 88, 104, 43, 33, 32, 105, 152, 240, 2, 252, 239, 75, 82, 104, 42, 104, 27, - 105, 145, 108, 91, 34, 255, 2, 18, 64, 26, 2, 16, 34, 255, 4, 18, 64, 26, 10, 18, 67, 2, 14, 24, 67, 2, 32, 224, 64, - 3, 32, 2, 67, 3, 6, 24, 28, 19, 67, 3, 96, 11, 104, 43, 33, 32, 105, 152, 240, 3, 254, 22, 247, 255, 251, 66, 126, 34, - 42, 0, 208, 98, 9, 211, 32, 15, 64, 16, 1, 27, 24, 27, 106, 113, 34, 1, 64, 154, 67, 145, 28, 10, 73, 70, 104, 9, 6, - 9, 15, 201, 64, 153, 28, 11, 67, 19, 98, 115, 224, 79, 247, 255, 251, 0, 75, 49, 108, 157, 224, 4, 107, 104, 33, 96, - 240, 2, 252, 215, 107, 173, 45, 0, 209, 248, 77, 44, 34, 32, 28, 40, 153, 2, 240, 2, 253, 242, 126, 34, 42, 0, 208, - 16, 9, 211, 32, 15, 64, 16, 1, 27, 24, 27, 106, 113, 34, 1, 64, 154, 67, 145, 28, 10, 105, 169, 6, 9, 15, 201, 64, 153, - 28, 11, 67, 19, 98, 115, 77, 28, 33, 32, 104, 43, 38, 2, 105, 152, 240, 3, 253, 241, 104, 43, 33, 32, 105, 152, 240, - 2, 252, 136, 75, 30, 104, 42, 104, 27, 105, 145, 108, 91, 34, 255, 2, 18, 64, 26, 2, 16, 34, 255, 4, 18, 64, 26, 10, - 18, 67, 2, 14, 24, 67, 2, 32, 224, 64, 3, 67, 51, 6, 24, 28, 19, 67, 3, 96, 11, 104, 43, 33, 32, 105, 152, 240, 3, 253, - 176, 247, 255, 250, 220, 73, 10, 32, 1, 247, 255, 251, 2, 105, 33, 41, 0, 208, 48, 126, 99, 104, 224, 43, 0, 208, 42, - 240, 2, 252, 119, 224, 41, 19, 112, 106, 52, 19, 112, 96, 60, 19, 112, 105, 212, 19, 112, 106, 40, 19, 114, 195, 224, - 19, 112, 105, 220, 19, 112, 106, 32, 19, 112, 105, 244, 64, 64, 64, 0, 19, 112, 106, 36, 1, 0, 0, 128, 19, 112, 105, - 216, 19, 112, 96, 56, 19, 112, 96, 194, 19, 112, 105, 240, 19, 112, 41, 57, 19, 112, 96, 240, 19, 112, 96, 247, 19, - 112, 106, 48, 19, 112, 105, 228, 240, 2, 252, 82, 126, 35, 43, 0, 209, 3, 104, 96, 33, 8, 240, 2, 252, 69, 155, 1, 43, - 0, 208, 0, 105, 103, 176, 5, 28, 56, 188, 240, 188, 2, 71, 8, 181, 48, 176, 137, 70, 108, 118, 33, 9, 201, 118, 97, - 33, 128, 0, 137, 37, 0, 145, 7, 70, 105, 149, 0, 146, 4, 147, 2, 247, 255, 253, 246, 176, 9, 188, 48, 188, 2, 71, 8, - 181, 240, 176, 139, 28, 6, 70, 104, 48, 70, 136, 4, 72, 43, 70, 156, 104, 0, 70, 107, 51, 66, 48, 248, 104, 0, 136, - 27, 112, 66, 4, 27, 70, 98, 147, 1, 2, 19, 10, 18, 67, 19, 4, 26, 12, 19, 14, 18, 112, 1, 159, 18, 112, 130, 112, 195, - 155, 1, 4, 36, 10, 26, 14, 27, 67, 19, 4, 27, 12, 37, 12, 26, 14, 27, 113, 3, 14, 36, 2, 43, 67, 35, 4, 27, 113, 66, - 14, 26, 12, 27, 113, 195, 172, 2, 35, 0, 113, 130, 118, 35, 35, 64, 97, 227, 75, 21, 9, 201, 144, 2, 118, 97, 97, 37, - 66, 159, 217, 22, 28, 40, 240, 2, 251, 252, 28, 42, 28, 57, 96, 160, 240, 3, 251, 181, 28, 33, 28, 48, 247, 255, 253, - 171, 104, 164, 28, 6, 28, 33, 28, 56, 28, 42, 240, 3, 251, 170, 28, 32, 240, 2, 252, 7, 224, 5, 28, 48, 96, 167, 28, - 33, 247, 255, 253, 155, 28, 6, 176, 11, 28, 48, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 19, 136, 0, 0, 181, - 0, 176, 133, 145, 0, 35, 0, 33, 2, 34, 1, 147, 1, 147, 2, 247, 255, 255, 148, 176, 5, 188, 2, 71, 8, 181, 0, 176, 133, - 28, 19, 34, 0, 145, 0, 146, 1, 146, 2, 33, 1, 34, 11, 247, 255, 255, 134, 176, 5, 188, 2, 71, 8, 181, 0, 176, 133, 34, - 0, 146, 0, 146, 1, 146, 2, 28, 11, 34, 9, 33, 0, 247, 255, 255, 120, 176, 5, 188, 2, 71, 8, 181, 112, 28, 4, 176, 132, - 32, 1, 28, 14, 240, 2, 251, 168, 30, 5, 208, 18, 35, 0, 147, 0, 35, 1, 147, 1, 28, 32, 33, 128, 34, 8, 35, 0, 149, 2, - 247, 255, 255, 97, 30, 4, 219, 1, 120, 43, 112, 51, 28, 40, 240, 2, 251, 178, 224, 1, 36, 4, 66, 100, 176, 4, 28, 32, - 188, 112, 188, 2, 71, 8, 181, 16, 176, 132, 70, 108, 2, 18, 52, 27, 120, 36, 67, 19, 34, 0, 146, 0, 145, 2, 34, 6, 33, - 128, 148, 1, 247, 255, 255, 67, 176, 4, 188, 16, 188, 2, 71, 8, 181, 240, 176, 141, 144, 11, 32, 22, 28, 13, 240, 2, - 251, 114, 30, 7, 209, 0, 225, 137, 35, 18, 147, 0, 152, 11, 28, 57, 34, 1, 35, 0, 247, 255, 255, 219, 30, 4, 218, 0, - 225, 108, 28, 57, 34, 18, 28, 40, 240, 3, 251, 29, 28, 56, 240, 2, 251, 122, 120, 170, 120, 235, 2, 18, 67, 26, 4, 18, - 10, 19, 14, 18, 67, 19, 4, 27, 12, 26, 112, 234, 14, 27, 122, 42, 112, 171, 122, 107, 2, 18, 67, 26, 4, 18, 10, 19, - 14, 18, 67, 19, 4, 27, 12, 26, 114, 106, 14, 27, 122, 170, 114, 43, 122, 235, 2, 18, 67, 26, 4, 18, 10, 19, 14, 18, - 67, 19, 4, 27, 12, 26, 114, 234, 14, 27, 123, 42, 114, 171, 123, 107, 2, 18, 67, 26, 4, 18, 10, 19, 14, 18, 67, 19, - 4, 27, 12, 26, 14, 27, 115, 43, 124, 107, 115, 106, 0, 88, 24, 192, 0, 128, 24, 192, 240, 2, 251, 33, 14, 3, 116, 171, - 12, 3, 116, 235, 10, 3, 117, 43, 117, 104, 40, 0, 209, 0, 225, 45, 124, 107, 33, 0, 0, 90, 24, 210, 0, 146, 24, 210, - 240, 3, 251, 15, 33, 0, 145, 10, 145, 5, 28, 46, 225, 6, 32, 9, 240, 2, 251, 7, 30, 4, 209, 0, 225, 29, 154, 5, 28, - 33, 6, 19, 14, 27, 147, 3, 35, 9, 147, 0, 34, 2, 155, 3, 152, 11, 247, 255, 255, 108, 124, 179, 124, 245, 6, 27, 4, - 45, 67, 29, 125, 51, 28, 33, 2, 27, 67, 29, 125, 115, 34, 9, 67, 29, 155, 10, 24, 237, 28, 40, 240, 3, 250, 165, 28, - 32, 240, 2, 251, 2, 120, 170, 120, 235, 2, 18, 67, 26, 4, 18, 10, 19, 14, 18, 67, 19, 4, 27, 12, 28, 14, 27, 112, 171, - 112, 236, 28, 32, 240, 2, 250, 212, 30, 7, 209, 0, 224, 234, 120, 235, 152, 11, 147, 0, 28, 57, 34, 2, 155, 3, 247, - 255, 255, 61, 40, 0, 218, 0, 224, 204, 120, 41, 145, 2, 121, 43, 0, 216, 24, 192, 0, 64, 240, 2, 250, 190, 14, 3, 114, - 107, 12, 3, 114, 171, 10, 3, 114, 235, 115, 40, 40, 0, 209, 0, 224, 201, 155, 2, 154, 2, 26, 228, 25, 210, 146, 3, 148, - 4, 121, 43, 33, 0, 0, 218, 24, 210, 0, 82, 240, 3, 250, 167, 33, 0, 145, 9, 145, 7, 224, 144, 122, 107, 122, 172, 6, - 27, 4, 36, 67, 28, 122, 235, 154, 9, 2, 27, 67, 28, 123, 43, 153, 3, 67, 28, 24, 164, 28, 32, 34, 9, 240, 3, 250, 80, - 120, 35, 147, 2, 121, 35, 0, 216, 26, 192, 240, 2, 250, 139, 14, 3, 115, 163, 12, 3, 115, 227, 10, 3, 116, 35, 116, - 96, 40, 0, 209, 0, 224, 150, 153, 3, 155, 4, 28, 10, 153, 2, 24, 82, 153, 2, 146, 3, 26, 91, 147, 4, 121, 35, 33, 0, - 0, 218, 26, 210, 240, 3, 250, 114, 152, 3, 153, 4, 247, 255, 250, 124, 35, 11, 144, 2, 70, 106, 92, 154, 115, 98, 155, - 2, 43, 0, 208, 25, 28, 24, 240, 2, 250, 99, 14, 3, 114, 99, 12, 3, 114, 163, 10, 3, 114, 227, 115, 32, 40, 0, 209, 0, - 224, 110, 153, 3, 154, 2, 240, 3, 250, 19, 153, 3, 155, 4, 28, 10, 153, 2, 24, 82, 153, 2, 146, 3, 26, 91, 147, 4, 34, - 0, 146, 6, 146, 8, 224, 43, 123, 162, 123, 227, 6, 18, 4, 27, 67, 19, 124, 34, 153, 6, 2, 18, 67, 19, 124, 98, 67, 19, - 24, 201, 145, 2, 28, 8, 34, 7, 153, 3, 240, 3, 249, 244, 154, 2, 153, 3, 120, 19, 24, 201, 145, 3, 153, 2, 121, 18, - 121, 75, 2, 18, 67, 26, 4, 18, 10, 17, 14, 19, 67, 11, 4, 27, 153, 2, 12, 26, 14, 27, 113, 11, 113, 74, 154, 8, 155, - 6, 50, 1, 51, 7, 146, 8, 147, 6, 121, 35, 153, 8, 66, 153, 211, 207, 154, 7, 155, 9, 50, 1, 51, 18, 146, 7, 147, 9, - 121, 43, 153, 7, 66, 153, 210, 0, 231, 105, 28, 56, 240, 2, 250, 40, 154, 5, 155, 10, 50, 1, 51, 13, 146, 5, 147, 10, - 39, 0, 124, 115, 153, 5, 66, 153, 210, 0, 230, 243, 28, 53, 36, 0, 47, 0, 209, 2, 224, 9, 28, 4, 28, 53, 28, 56, 240, - 2, 250, 18, 44, 0, 208, 2, 28, 40, 247, 255, 250, 14, 176, 13, 28, 32, 188, 240, 188, 2, 71, 8, 28, 53, 36, 4, 66, 100, - 231, 238, 28, 53, 36, 4, 66, 100, 231, 239, 181, 240, 176, 137, 75, 65, 28, 2, 104, 30, 0, 129, 104, 179, 24, 9, 50, - 16, 0, 201, 0, 146, 24, 154, 28, 11, 51, 88, 28, 7, 24, 240, 144, 5, 24, 113, 32, 0, 103, 8, 104, 81, 29, 21, 74, 56, - 64, 10, 42, 1, 209, 99, 34, 4, 146, 4, 147, 7, 75, 54, 32, 10, 96, 43, 247, 254, 253, 254, 75, 52, 32, 100, 96, 43, - 247, 254, 253, 249, 75, 51, 34, 128, 96, 43, 35, 250, 0, 219, 147, 0, 0, 82, 35, 0, 28, 40, 28, 41, 247, 254, 254, 121, - 104, 42, 75, 45, 28, 4, 64, 19, 43, 5, 209, 50, 35, 192, 1, 27, 64, 26, 35, 128, 0, 219, 66, 154, 208, 43, 40, 0, 209, - 43, 32, 100, 247, 254, 253, 219, 75, 38, 74, 38, 104, 24, 96, 26, 154, 7, 35, 22, 147, 1, 24, 179, 147, 2, 35, 128, - 144, 6, 33, 128, 152, 5, 34, 6, 0, 91, 148, 0, 247, 255, 253, 81, 30, 4, 219, 12, 28, 123, 32, 0, 4, 27, 144, 0, 144, - 1, 144, 2, 12, 27, 152, 5, 33, 0, 34, 5, 247, 255, 253, 67, 28, 4, 75, 21, 154, 6, 96, 26, 44, 0, 219, 2, 224, 8, 36, - 1, 66, 100, 155, 4, 59, 1, 147, 4, 43, 0, 209, 169, 44, 0, 219, 10, 0, 187, 25, 219, 0, 219, 24, 246, 55, 1, 35, 0, - 103, 243, 103, 55, 224, 1, 36, 1, 66, 100, 176, 9, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 0, 0, - 32, 1, 0, 0, 24, 3, 0, 0, 25, 3, 0, 0, 16, 1, 0, 0, 32, 5, 19, 112, 96, 56, 0, 6, 26, 128, 181, 248, 76, 25, 28, 6, - 104, 35, 104, 157, 35, 1, 96, 171, 247, 255, 255, 97, 30, 7, 218, 24, 104, 35, 33, 55, 104, 155, 28, 52, 104, 90, 32, - 10, 64, 10, 96, 90, 52, 16, 247, 254, 253, 116, 0, 164, 75, 15, 25, 44, 96, 99, 32, 50, 247, 254, 253, 109, 75, 13, - 32, 100, 96, 99, 247, 254, 253, 104, 75, 11, 96, 99, 75, 7, 32, 55, 104, 26, 104, 146, 104, 81, 64, 1, 96, 81, 104, - 27, 34, 4, 104, 155, 28, 56, 96, 154, 188, 248, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 0, 0, 24, 3, 0, 0, 25, 3, 0, - 0, 16, 1, 181, 240, 176, 137, 75, 126, 34, 0, 104, 31, 0, 131, 24, 27, 0, 219, 28, 30, 147, 5, 54, 88, 24, 251, 28, - 4, 25, 190, 103, 26, 32, 50, 247, 254, 253, 60, 37, 3, 150, 6, 72, 118, 247, 255, 250, 69, 32, 50, 247, 254, 253, 52, - 35, 22, 147, 1, 155, 6, 34, 0, 147, 2, 35, 128, 146, 0, 28, 48, 33, 128, 34, 6, 0, 91, 247, 255, 252, 175, 40, 0, 218, - 12, 72, 109, 247, 255, 250, 48, 32, 50, 247, 254, 253, 31, 61, 1, 32, 100, 247, 254, 253, 27, 45, 0, 209, 222, 224, - 2, 154, 5, 24, 187, 224, 38, 28, 32, 247, 254, 255, 212, 75, 100, 66, 152, 209, 0, 224, 184, 32, 100, 247, 254, 253, - 11, 72, 98, 247, 255, 250, 22, 35, 22, 147, 1, 155, 6, 34, 0, 147, 2, 35, 128, 146, 0, 28, 48, 33, 128, 34, 6, 0, 91, - 247, 255, 252, 131, 40, 0, 218, 6, 72, 90, 53, 1, 247, 255, 250, 3, 45, 3, 209, 221, 224, 12, 0, 163, 25, 27, 0, 219, - 24, 251, 110, 26, 75, 85, 66, 154, 209, 46, 28, 32, 247, 255, 248, 49, 76, 83, 224, 144, 28, 32, 247, 254, 255, 120, - 32, 100, 247, 254, 252, 223, 28, 32, 247, 254, 255, 158, 74, 73, 66, 144, 209, 0, 224, 130, 32, 100, 247, 254, 252, - 213, 72, 75, 247, 255, 249, 224, 35, 0, 154, 6, 147, 0, 35, 22, 147, 1, 35, 128, 146, 2, 28, 48, 33, 128, 34, 6, 0, - 91, 247, 255, 252, 77, 40, 0, 218, 7, 72, 63, 61, 1, 247, 255, 249, 205, 45, 0, 209, 215, 76, 64, 224, 102, 72, 64, - 247, 255, 249, 198, 28, 99, 147, 5, 4, 27, 12, 27, 147, 7, 0, 163, 25, 28, 0, 228, 37, 0, 25, 63, 32, 50, 247, 254, - 252, 171, 72, 57, 28, 41, 247, 255, 249, 181, 35, 0, 147, 0, 147, 1, 147, 2, 28, 48, 33, 0, 34, 5, 155, 7, 247, 255, - 252, 37, 30, 4, 218, 7, 76, 50, 28, 41, 72, 50, 27, 100, 247, 255, 249, 163, 53, 1, 224, 3, 72, 48, 28, 41, 247, 255, - 249, 157, 155, 5, 34, 0, 103, 250, 103, 59, 44, 0, 218, 47, 33, 0, 28, 48, 247, 255, 252, 111, 32, 50, 247, 254, 252, - 130, 72, 40, 247, 255, 249, 141, 35, 22, 147, 1, 155, 6, 34, 0, 147, 2, 35, 128, 146, 0, 28, 48, 33, 128, 34, 6, 0, - 91, 247, 255, 251, 250, 30, 4, 218, 6, 72, 32, 247, 255, 249, 123, 34, 0, 103, 58, 76, 31, 224, 2, 72, 31, 247, 255, - 249, 116, 53, 1, 44, 0, 218, 7, 15, 233, 34, 0, 35, 4, 66, 171, 65, 74, 6, 18, 42, 0, 209, 172, 44, 0, 219, 4, 72, 24, - 247, 255, 249, 100, 224, 0, 76, 6, 176, 9, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 19, 112, 97, 82, - 19, 112, 97, 7, 255, 255, 251, 161, 19, 112, 97, 37, 19, 112, 97, 76, 149, 11, 32, 119, 255, 255, 251, 160, 19, 112, - 97, 113, 255, 255, 247, 103, 19, 112, 97, 162, 19, 112, 97, 188, 255, 255, 224, 192, 19, 112, 97, 219, 19, 112, 97, - 250, 19, 112, 98, 62, 19, 112, 98, 21, 255, 255, 247, 62, 19, 112, 98, 59, 19, 112, 98, 94, 181, 16, 75, 10, 34, 1, - 104, 27, 28, 4, 104, 155, 96, 154, 247, 254, 254, 223, 40, 0, 219, 2, 28, 32, 247, 255, 254, 202, 75, 3, 34, 4, 104, - 27, 104, 155, 96, 154, 188, 16, 188, 2, 71, 8, 19, 112, 96, 60, 181, 248, 28, 4, 38, 3, 39, 64, 224, 79, 104, 160, 240, - 2, 255, 76, 10, 3, 64, 51, 28, 5, 43, 2, 208, 7, 107, 227, 108, 34, 105, 89, 24, 138, 0, 65, 12, 73, 26, 82, 97, 90, - 108, 35, 43, 0, 208, 59, 66, 47, 208, 57, 75, 36, 120, 27, 43, 0, 208, 2, 72, 35, 247, 255, 248, 251, 6, 235, 213, 6, - 75, 32, 120, 27, 43, 0, 208, 2, 72, 32, 247, 255, 248, 242, 7, 107, 213, 6, 75, 27, 120, 27, 43, 0, 208, 2, 72, 28, - 247, 255, 248, 233, 6, 171, 213, 6, 75, 23, 120, 27, 43, 0, 208, 2, 72, 25, 247, 255, 248, 224, 7, 43, 213, 6, 75, 18, - 120, 27, 43, 0, 208, 2, 72, 21, 247, 255, 248, 215, 75, 15, 120, 27, 43, 0, 208, 2, 72, 19, 247, 255, 248, 208, 75, - 11, 120, 27, 43, 0, 208, 8, 72, 16, 247, 255, 248, 201, 224, 4, 107, 164, 44, 0, 209, 173, 32, 0, 224, 3, 107, 227, - 32, 1, 66, 64, 97, 88, 75, 11, 34, 0, 104, 27, 100, 26, 188, 248, 188, 2, 71, 8, 19, 112, 105, 216, 19, 112, 98, 103, - 19, 112, 98, 116, 19, 112, 98, 124, 19, 112, 98, 145, 19, 112, 98, 164, 19, 112, 98, 175, 19, 112, 104, 90, 19, 112, - 96, 60, 181, 240, 176, 131, 28, 5, 35, 9, 7, 193, 213, 60, 75, 60, 120, 27, 43, 0, 208, 2, 72, 59, 247, 255, 248, 153, - 75, 59, 104, 28, 44, 0, 208, 9, 107, 96, 33, 96, 240, 3, 248, 117, 107, 96, 33, 96, 240, 1, 255, 21, 107, 164, 231, - 243, 76, 53, 104, 35, 43, 0, 208, 24, 108, 88, 33, 32, 240, 3, 248, 103, 104, 35, 33, 32, 108, 88, 240, 1, 255, 6, 104, - 35, 34, 128, 4, 82, 97, 26, 74, 45, 108, 88, 104, 18, 33, 32, 107, 82, 97, 90, 240, 3, 248, 70, 104, 35, 105, 154, 75, - 41, 96, 26, 75, 37, 104, 24, 247, 255, 255, 78, 35, 0, 40, 0, 208, 4, 74, 38, 104, 18, 100, 19, 35, 5, 66, 91, 7, 106, - 213, 45, 75, 28, 120, 27, 43, 0, 208, 2, 72, 33, 247, 255, 248, 89, 33, 128, 1, 137, 79, 30, 78, 31, 35, 1, 34, 0, 145, - 1, 104, 56, 104, 49, 104, 128, 0, 148, 48, 68, 25, 0, 70, 140, 104, 4, 69, 98, 209, 12, 32, 1, 66, 32, 209, 15, 75, - 24, 36, 32, 96, 24, 75, 23, 104, 24, 67, 160, 96, 24, 35, 1, 66, 91, 224, 5, 73, 21, 64, 12, 44, 3, 209, 1, 153, 1, - 96, 1, 50, 1, 42, 4, 209, 223, 43, 0, 208, 4, 34, 18, 66, 42, 208, 1, 35, 6, 66, 91, 176, 3, 28, 24, 188, 240, 188, - 2, 71, 8, 19, 112, 105, 216, 19, 112, 98, 192, 19, 112, 105, 244, 19, 112, 105, 220, 19, 112, 105, 232, 19, 112, 105, - 228, 19, 112, 96, 60, 19, 112, 98, 225, 19, 112, 106, 48, 19, 112, 106, 52, 13, 128, 0, 192, 0, 0, 32, 3, 181, 240, - 176, 131, 147, 1, 70, 107, 51, 39, 120, 30, 28, 5, 30, 115, 6, 27, 14, 27, 145, 0, 28, 23, 43, 15, 216, 61, 28, 4, 52, - 160, 104, 32, 40, 0, 208, 56, 33, 0, 34, 31, 240, 2, 254, 171, 104, 35, 74, 29, 96, 26, 28, 43, 51, 152, 104, 24, 240, - 2, 254, 39, 104, 35, 96, 88, 28, 56, 240, 2, 254, 34, 104, 35, 70, 105, 96, 152, 29, 202, 120, 17, 104, 35, 70, 106, - 115, 25, 28, 209, 104, 35, 120, 10, 115, 90, 104, 34, 35, 6, 46, 6, 217, 0, 35, 10, 28, 44, 115, 147, 52, 160, 104, - 32, 153, 8, 28, 50, 48, 15, 240, 2, 254, 66, 28, 43, 51, 144, 104, 24, 123, 105, 104, 35, 34, 31, 247, 255, 250, 46, - 40, 31, 208, 6, 40, 0, 219, 5, 72, 5, 224, 3, 32, 3, 66, 64, 224, 0, 32, 0, 176, 3, 188, 240, 188, 2, 71, 8, 85, 83, - 66, 67, 255, 255, 216, 238, 181, 240, 28, 4, 176, 131, 52, 160, 28, 5, 145, 0, 28, 23, 33, 255, 34, 13, 104, 32, 240, - 2, 254, 94, 28, 43, 51, 144, 104, 24, 123, 41, 104, 35, 34, 13, 247, 255, 250, 8, 40, 13, 208, 1, 40, 0, 218, 40, 40, - 0, 219, 43, 28, 43, 51, 160, 104, 28, 104, 32, 240, 2, 253, 206, 144, 1, 104, 96, 240, 2, 253, 202, 28, 6, 104, 160, - 240, 2, 253, 198, 74, 16, 153, 1, 123, 35, 66, 145, 209, 21, 47, 0, 208, 0, 96, 56, 154, 0, 42, 0, 208, 0, 112, 19, - 53, 152, 104, 43, 66, 158, 209, 12, 28, 179, 4, 27, 12, 54, 12, 27, 4, 54, 67, 30, 96, 46, 32, 0, 224, 4, 72, 5, 224, - 2, 72, 5, 224, 0, 72, 5, 176, 3, 188, 240, 188, 2, 71, 8, 83, 66, 83, 85, 255, 255, 216, 237, 255, 255, 216, 236, 255, - 255, 216, 235, 181, 240, 176, 135, 74, 75, 75, 76, 120, 18, 28, 6, 104, 31, 42, 0, 208, 1, 73, 74, 224, 0, 73, 74, 96, - 25, 28, 51, 51, 144, 104, 24, 75, 72, 104, 27, 104, 153, 105, 195, 49, 68, 0, 155, 24, 203, 104, 25, 35, 1, 66, 11, - 209, 6, 74, 68, 36, 1, 96, 19, 75, 62, 66, 100, 96, 31, 224, 113, 75, 60, 42, 0, 208, 1, 74, 60, 224, 0, 74, 60, 96, - 26, 75, 62, 120, 27, 43, 0, 208, 17, 136, 243, 34, 255, 147, 0, 33, 33, 35, 0, 147, 1, 147, 2, 247, 255, 249, 168, 28, - 4, 28, 33, 72, 55, 247, 254, 255, 41, 32, 60, 247, 254, 250, 24, 224, 6, 33, 0, 247, 255, 249, 254, 32, 5, 247, 254, - 250, 17, 36, 0, 75, 41, 120, 26, 75, 41, 42, 0, 208, 1, 74, 41, 224, 0, 74, 41, 28, 53, 96, 26, 53, 144, 44, 0, 218, - 10, 32, 50, 247, 254, 250, 0, 104, 40, 33, 0, 247, 255, 249, 230, 32, 5, 247, 254, 249, 249, 224, 48, 123, 49, 104, - 40, 247, 255, 249, 222, 28, 4, 32, 5, 247, 254, 249, 240, 72, 33, 28, 33, 247, 254, 254, 250, 44, 0, 219, 34, 123, 113, - 104, 40, 247, 255, 249, 208, 28, 4, 32, 5, 247, 254, 249, 226, 72, 27, 28, 33, 247, 254, 254, 236, 44, 0, 219, 20, 32, - 10, 247, 254, 249, 217, 70, 105, 49, 23, 104, 40, 247, 255, 249, 231, 28, 4, 28, 33, 72, 20, 247, 254, 254, 221, 44, - 0, 219, 5, 72, 19, 247, 254, 254, 216, 75, 7, 96, 31, 224, 4, 75, 6, 34, 1, 96, 31, 75, 8, 96, 26, 176, 7, 28, 32, 188, - 240, 188, 2, 71, 8, 70, 192, 19, 112, 1, 15, 19, 112, 96, 56, 0, 15, 66, 64, 0, 3, 13, 64, 19, 112, 96, 60, 19, 112, - 106, 52, 19, 112, 1, 13, 19, 112, 99, 2, 19, 112, 99, 35, 19, 112, 99, 74, 19, 112, 99, 114, 19, 112, 99, 161, 181, - 240, 176, 141, 146, 6, 70, 106, 50, 79, 120, 18, 28, 31, 70, 107, 51, 95, 146, 7, 70, 106, 120, 27, 50, 83, 120, 18, - 6, 27, 22, 27, 146, 8, 70, 106, 50, 47, 147, 4, 35, 0, 112, 19, 74, 147, 77, 148, 28, 6, 145, 5, 147, 10, 96, 19, 147, - 3, 36, 0, 28, 163, 43, 1, 216, 0, 225, 6, 44, 0, 208, 33, 28, 48, 33, 0, 247, 255, 255, 38, 30, 4, 219, 1, 32, 5, 224, - 0, 32, 60, 247, 254, 249, 117, 75, 137, 104, 27, 104, 154, 75, 136, 50, 68, 104, 27, 0, 155, 24, 211, 104, 27, 44, 0, - 218, 9, 154, 3, 50, 1, 146, 3, 42, 2, 221, 0, 224, 232, 32, 10, 247, 254, 249, 97, 224, 219, 35, 0, 147, 3, 155, 4, - 154, 8, 59, 1, 6, 27, 22, 27, 147, 4, 42, 0, 208, 59, 104, 43, 74, 123, 147, 2, 120, 19, 43, 0, 208, 1, 75, 121, 224, - 0, 75, 121, 96, 43, 154, 7, 155, 18, 146, 1, 147, 0, 28, 58, 35, 0, 28, 48, 153, 5, 247, 255, 254, 66, 75, 110, 154, - 2, 28, 4, 96, 26, 28, 131, 43, 1, 216, 0, 224, 190, 40, 0, 218, 0, 224, 178, 155, 6, 34, 144, 25, 146, 28, 60, 147, - 2, 146, 9, 224, 18, 155, 9, 123, 113, 104, 24, 28, 34, 155, 2, 247, 255, 248, 157, 28, 131, 43, 1, 216, 0, 224, 159, - 40, 0, 219, 69, 66, 160, 209, 67, 154, 2, 26, 36, 24, 18, 146, 2, 44, 0, 209, 234, 224, 62, 104, 43, 74, 93, 147, 2, - 120, 19, 43, 0, 208, 1, 75, 91, 224, 0, 75, 91, 96, 43, 154, 7, 155, 18, 146, 1, 147, 0, 28, 58, 35, 128, 28, 48, 153, - 5, 247, 255, 254, 6, 75, 80, 154, 2, 28, 4, 96, 26, 40, 0, 218, 3, 72, 83, 28, 33, 247, 254, 254, 10, 28, 163, 43, 1, - 217, 125, 44, 0, 218, 22, 224, 113, 28, 51, 51, 144, 104, 24, 123, 49, 28, 58, 155, 6, 247, 255, 248, 98, 30, 4, 218, - 3, 72, 74, 28, 33, 247, 254, 253, 246, 28, 163, 43, 1, 217, 96, 44, 0, 219, 5, 66, 188, 208, 5, 224, 2, 47, 0, 209, - 231, 224, 1, 76, 68, 224, 86, 75, 59, 74, 61, 104, 27, 147, 2, 120, 19, 43, 0, 208, 1, 75, 59, 224, 0, 75, 59, 74, 54, - 70, 105, 96, 19, 28, 48, 49, 47, 170, 10, 247, 255, 254, 33, 30, 4, 218, 34, 72, 58, 28, 33, 247, 254, 253, 209, 28, - 99, 209, 3, 75, 46, 154, 2, 96, 26, 224, 65, 28, 52, 52, 144, 104, 32, 123, 49, 247, 255, 248, 161, 123, 51, 32, 15, - 104, 34, 64, 24, 9, 219, 1, 27, 106, 81, 24, 27, 32, 1, 64, 152, 67, 129, 98, 81, 70, 105, 28, 48, 49, 47, 170, 10, - 247, 255, 253, 253, 28, 4, 75, 31, 154, 2, 96, 26, 28, 163, 43, 1, 217, 34, 155, 10, 43, 0, 208, 7, 75, 37, 104, 27, - 43, 0, 208, 3, 70, 107, 34, 1, 51, 47, 112, 26, 44, 0, 219, 12, 75, 32, 36, 0, 104, 27, 43, 0, 208, 7, 70, 107, 51, - 47, 120, 27, 43, 0, 208, 2, 76, 28, 224, 0, 28, 4, 155, 4, 43, 0, 221, 2, 44, 0, 218, 0, 230, 247, 34, 0, 44, 0, 218, - 0, 34, 1, 75, 9, 96, 26, 154, 21, 42, 0, 208, 3, 70, 107, 51, 47, 120, 27, 112, 19, 155, 22, 43, 0, 208, 2, 155, 10, - 154, 22, 96, 19, 176, 13, 28, 32, 188, 240, 188, 2, 71, 8, 19, 112, 106, 52, 19, 112, 96, 56, 19, 112, 96, 60, 19, 112, - 106, 48, 19, 112, 1, 15, 0, 15, 66, 64, 0, 3, 13, 64, 19, 112, 99, 171, 19, 112, 99, 190, 255, 255, 216, 233, 19, 112, - 99, 214, 19, 112, 105, 252, 255, 255, 216, 234, 181, 240, 28, 3, 176, 143, 51, 160, 104, 30, 145, 7, 70, 109, 33, 128, - 1, 9, 53, 55, 35, 0, 172, 9, 24, 118, 28, 7, 112, 43, 28, 32, 33, 0, 34, 16, 240, 2, 251, 250, 46, 0, 208, 91, 35, 6, - 147, 1, 35, 1, 33, 0, 147, 2, 35, 10, 145, 4, 147, 5, 28, 56, 153, 7, 34, 0, 35, 0, 149, 3, 148, 0, 247, 255, 254, 130, - 30, 5, 218, 5, 72, 41, 28, 41, 247, 254, 253, 46, 28, 107, 208, 71, 45, 0, 219, 4, 70, 107, 51, 55, 120, 27, 43, 0, - 208, 64, 153, 7, 171, 9, 34, 3, 112, 26, 1, 74, 112, 90, 34, 18, 113, 26, 34, 0, 113, 90, 28, 48, 33, 0, 34, 18, 240, - 2, 251, 202, 75, 28, 53, 2, 209, 1, 74, 28, 224, 0, 74, 28, 96, 26, 171, 9, 147, 0, 35, 6, 147, 1, 35, 0, 147, 2, 147, - 3, 147, 4, 35, 10, 147, 5, 153, 7, 28, 56, 28, 50, 35, 18, 247, 255, 254, 77, 28, 5, 28, 41, 72, 19, 247, 254, 252, - 250, 45, 0, 219, 19, 120, 179, 33, 15, 70, 108, 64, 25, 52, 55, 72, 15, 112, 33, 247, 254, 252, 239, 120, 35, 59, 2, - 6, 27, 14, 27, 43, 2, 217, 3, 224, 3, 37, 4, 66, 109, 224, 0, 77, 9, 176, 15, 28, 40, 188, 240, 188, 2, 71, 8, 70, 192, + 179, 208, 16, 75, 135, 104, 27, 43, 0, 208, 12, 240, 3, 248, 206, 240, 0, 254, 206, 240, 0, 254, 180, 75, 129, 112, + 30, 240, 0, 254, 146, 240, 3, 248, 228, 28, 5, 75, 126, 112, 30, 224, 165, 35, 1, 96, 11, 154, 5, 75, 121, 72, 124, + 96, 26, 240, 0, 249, 164, 75, 123, 34, 4, 104, 27, 39, 0, 104, 155, 96, 154, 240, 0, 254, 154, 77, 120, 28, 40, 240, + 3, 249, 238, 75, 119, 96, 24, 104, 35, 43, 0, 208, 1, 104, 42, 96, 26, 75, 116, 104, 29, 224, 135, 104, 35, 105, 34, + 104, 24, 104, 163, 38, 1, 104, 25, 240, 3, 251, 162, 75, 111, 28, 5, 120, 26, 42, 0, 209, 0, 224, 148, 70, 105, 34, + 23, 92, 81, 112, 25, 104, 35, 40, 0, 221, 2, 104, 25, 72, 105, 224, 1, 104, 25, 72, 105, 240, 1, 248, 24, 224, 133, + 104, 35, 105, 34, 104, 24, 104, 163, 104, 25, 240, 3, 252, 42, 224, 97, 75, 100, 104, 26, 66, 81, 65, 74, 96, 26, 224, + 105, 104, 35, 104, 26, 75, 85, 96, 26, 38, 1, 231, 106, 122, 17, 122, 83, 6, 9, 4, 27, 67, 11, 122, 145, 122, 210, 2, + 9, 67, 11, 67, 26, 104, 37, 35, 0, 146, 6, 147, 13, 120, 42, 42, 95, 209, 26, 120, 106, 42, 68, 209, 23, 120, 170, 42, + 86, 209, 20, 120, 234, 42, 68, 209, 17, 77, 82, 74, 69, 96, 43, 104, 227, 33, 1, 96, 17, 43, 4, 209, 6, 104, 161, 168, + 13, 34, 4, 240, 4, 254, 46, 155, 13, 96, 43, 240, 3, 254, 176, 224, 17, 104, 227, 43, 4, 209, 4, 104, 161, 168, 13, + 34, 4, 240, 4, 254, 33, 28, 40, 153, 13, 240, 3, 254, 231, 144, 7, 40, 0, 208, 46, 75, 53, 34, 1, 96, 26, 38, 1, 37, + 0, 224, 43, 240, 3, 250, 230, 38, 1, 28, 5, 40, 0, 209, 42, 35, 1, 74, 60, 66, 91, 96, 19, 224, 37, 75, 45, 34, 1, 96, + 26, 104, 35, 105, 33, 104, 24, 104, 163, 104, 26, 247, 255, 251, 159, 28, 5, 38, 1, 224, 24, 154, 7, 42, 0, 208, 18, + 104, 35, 105, 34, 104, 25, 104, 163, 152, 7, 104, 27, 240, 4, 250, 181, 38, 1, 37, 0, 224, 10, 38, 1, 37, 6, 224, 6, + 37, 1, 38, 1, 66, 109, 39, 1, 224, 2, 38, 1, 37, 1, 66, 109, 153, 4, 0, 203, 24, 228, 224, 7, 104, 32, 104, 97, 240, + 4, 255, 53, 154, 4, 52, 8, 50, 1, 146, 4, 155, 4, 153, 10, 66, 139, 219, 243, 224, 9, 38, 1, 37, 1, 224, 1, 38, 1, 37, + 6, 66, 109, 224, 2, 37, 0, 38, 1, 149, 6, 74, 12, 36, 0, 104, 19, 43, 0, 208, 4, 152, 9, 73, 23, 240, 4, 254, 199, 36, + 1, 46, 0, 209, 0, 228, 213, 152, 15, 28, 41, 240, 4, 255, 29, 228, 208, 87, 70, 83, 2, 85, 77, 83, 131, 87, 70, 83, + 1, 87, 70, 83, 3, 19, 112, 96, 20, 19, 112, 105, 164, 19, 112, 1, 12, 19, 112, 106, 24, 19, 112, 21, 69, 19, 112, 96, + 60, 19, 114, 198, 0, 19, 114, 198, 4, 19, 112, 96, 16, 19, 112, 96, 137, 19, 112, 96, 164, 19, 112, 105, 172, 19, 112, + 96, 12, 19, 112, 96, 24, 0, 152, 150, 128, 74, 3, 35, 128, 104, 17, 2, 27, 67, 11, 96, 19, 71, 112, 70, 192, 13, 4, + 0, 204, 75, 2, 74, 3, 104, 25, 64, 10, 96, 26, 71, 112, 13, 4, 0, 204, 255, 255, 127, 255, 181, 16, 247, 255, 255, 243, + 32, 128, 240, 3, 253, 180, 33, 32, 240, 4, 254, 169, 76, 9, 96, 32, 32, 4, 240, 4, 254, 180, 104, 33, 34, 0, 32, 4, + 240, 4, 254, 215, 247, 255, 255, 215, 32, 4, 240, 4, 254, 128, 188, 16, 188, 1, 71, 0, 70, 192, 19, 112, 96, 32, 181, + 16, 28, 4, 75, 15, 28, 8, 0, 137, 24, 9, 104, 26, 0, 73, 35, 1, 240, 4, 254, 83, 75, 12, 33, 16, 96, 24, 72, 11, 240, + 3, 254, 182, 33, 16, 72, 10, 240, 3, 254, 189, 75, 10, 34, 55, 96, 28, 75, 9, 32, 4, 104, 27, 104, 155, 96, 154, 240, + 4, 254, 91, 188, 16, 188, 1, 71, 0, 19, 112, 96, 32, 19, 112, 96, 28, 13, 128, 0, 56, 13, 128, 0, 60, 19, 112, 105, + 192, 19, 112, 96, 60, 181, 112, 76, 21, 75, 21, 38, 2, 66, 118, 28, 33, 104, 24, 34, 0, 96, 38, 240, 4, 254, 103, 75, + 18, 77, 18, 104, 27, 104, 154, 35, 0, 96, 147, 74, 17, 104, 40, 96, 19, 240, 4, 254, 46, 104, 40, 240, 4, 254, 117, + 35, 1, 66, 91, 96, 43, 104, 35, 43, 0, 209, 3, 75, 11, 104, 27, 96, 35, 224, 0, 96, 38, 32, 4, 240, 4, 254, 37, 75, + 2, 104, 24, 188, 112, 188, 2, 71, 8, 19, 112, 105, 184, 19, 112, 96, 32, 19, 112, 96, 60, 19, 112, 96, 28, 19, 112, + 105, 192, 19, 112, 105, 188, 75, 2, 34, 0, 96, 24, 75, 2, 96, 26, 71, 112, 19, 112, 105, 196, 19, 112, 105, 192, 181, + 248, 76, 34, 38, 16, 104, 35, 77, 33, 67, 179, 96, 35, 104, 43, 73, 32, 104, 154, 121, 19, 121, 87, 6, 27, 4, 63, 67, + 31, 121, 147, 2, 27, 67, 31, 121, 211, 67, 31, 104, 11, 43, 0, 208, 18, 28, 56, 240, 0, 248, 56, 40, 0, 220, 20, 74, + 22, 35, 0, 96, 19, 75, 22, 96, 24, 32, 4, 240, 4, 253, 234, 104, 43, 34, 55, 104, 155, 64, 23, 96, 95, 224, 22, 75, + 17, 104, 27, 43, 0, 208, 8, 28, 56, 240, 0, 248, 33, 104, 43, 34, 55, 104, 155, 64, 23, 96, 95, 224, 2, 35, 55, 64, + 31, 96, 87, 104, 35, 67, 51, 96, 35, 75, 9, 104, 26, 67, 22, 96, 30, 32, 0, 188, 248, 188, 2, 71, 8, 70, 192, 13, 128, + 0, 60, 19, 112, 96, 60, 19, 112, 105, 192, 19, 112, 105, 188, 19, 112, 105, 196, 13, 128, 0, 56, 71, 24, 70, 192, 181, + 112, 28, 12, 28, 5, 240, 4, 253, 235, 28, 6, 32, 1, 66, 64, 240, 4, 253, 218, 104, 34, 75, 17, 66, 154, 209, 25, 75, + 16, 73, 17, 34, 1, 67, 19, 96, 75, 28, 32, 34, 8, 240, 4, 252, 131, 28, 32, 27, 100, 8, 164, 33, 8, 60, 2, 240, 4, 253, + 222, 2, 36, 35, 234, 10, 36, 6, 27, 67, 35, 96, 43, 28, 40, 33, 4, 240, 4, 253, 212, 28, 48, 240, 4, 253, 185, 188, + 112, 188, 1, 71, 0, 230, 0, 1, 112, 19, 112, 4, 153, 19, 112, 96, 36, 181, 56, 28, 4, 240, 4, 253, 114, 44, 38, 208, + 72, 44, 38, 216, 5, 44, 36, 208, 9, 44, 37, 208, 0, 224, 169, 224, 14, 44, 57, 208, 112, 44, 60, 208, 0, 224, 163, 224, + 110, 73, 83, 75, 84, 72, 84, 96, 75, 34, 8, 240, 4, 252, 75, 72, 82, 224, 150, 72, 82, 73, 82, 247, 255, 255, 171, 76, + 77, 75, 81, 77, 82, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 252, 60, 28, 40, 33, 8, 240, 4, 253, 154, 75, 77, 77, 78, + 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 252, 48, 28, 40, 33, 8, 240, 4, 253, 142, 75, 73, 77, 74, 96, 99, 34, 8, 28, + 33, 28, 40, 240, 4, 252, 36, 28, 40, 33, 8, 240, 4, 253, 130, 75, 59, 72, 69, 96, 99, 28, 33, 34, 8, 240, 4, 252, 25, + 72, 66, 224, 100, 72, 66, 73, 66, 247, 255, 255, 121, 76, 52, 75, 65, 77, 57, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, + 252, 10, 28, 40, 33, 8, 240, 4, 253, 104, 75, 60, 77, 53, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 251, 254, 28, 40, 33, + 8, 240, 4, 253, 92, 75, 55, 77, 49, 96, 99, 34, 8, 28, 33, 28, 40, 240, 4, 251, 242, 28, 40, 33, 8, 240, 4, 253, 80, + 75, 34, 72, 50, 96, 99, 28, 33, 34, 8, 240, 4, 251, 231, 72, 47, 224, 50, 72, 47, 224, 0, 72, 47, 73, 47, 247, 255, + 255, 69, 76, 26, 75, 46, 77, 31, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 251, 214, 28, 40, 33, 8, 240, 4, 253, 52, 75, + 41, 77, 27, 96, 99, 34, 8, 28, 40, 28, 33, 240, 4, 251, 202, 28, 40, 33, 8, 240, 4, 253, 40, 75, 36, 77, 23, 96, 99, + 34, 8, 28, 33, 28, 40, 240, 4, 251, 190, 28, 40, 33, 8, 240, 4, 253, 28, 75, 8, 72, 31, 96, 99, 28, 33, 34, 8, 240, + 4, 251, 179, 72, 28, 33, 8, 240, 4, 253, 17, 32, 0, 188, 56, 188, 2, 71, 8, 70, 192, 19, 112, 96, 36, 19, 112, 0, 96, + 255, 255, 30, 120, 32, 32, 93, 232, 32, 32, 64, 140, 255, 255, 31, 112, 19, 112, 0, 188, 255, 255, 31, 140, 19, 112, + 0, 196, 255, 255, 30, 52, 19, 112, 0, 204, 255, 255, 31, 104, 32, 32, 91, 20, 32, 32, 62, 108, 255, 255, 30, 176, 255, + 255, 30, 204, 255, 255, 29, 116, 255, 255, 30, 168, 32, 32, 94, 132, 32, 32, 93, 148, 32, 32, 63, 96, 255, 255, 33, + 48, 255, 255, 33, 76, 255, 255, 31, 244, 255, 255, 33, 40, 181, 56, 77, 11, 35, 0, 104, 42, 73, 10, 240, 4, 252, 113, + 76, 10, 73, 10, 34, 0, 96, 32, 104, 40, 240, 4, 252, 172, 104, 32, 240, 4, 252, 123, 104, 32, 240, 4, 252, 194, 188, + 56, 188, 1, 71, 0, 70, 192, 19, 112, 96, 44, 0, 152, 150, 128, 19, 112, 96, 52, 19, 112, 105, 200, 181, 8, 1, 67, 26, + 27, 0, 155, 24, 24, 0, 192, 247, 255, 255, 216, 188, 8, 188, 1, 71, 0, 0, 0, 181, 0, 74, 5, 2, 192, 104, 19, 104, 17, + 26, 201, 213, 0, 104, 19, 66, 129, 217, 249, 188, 1, 71, 0, 13, 128, 0, 16, 181, 8, 75, 24, 120, 26, 30, 83, 65, 154, + 75, 23, 96, 26, 240, 3, 252, 112, 75, 22, 33, 4, 96, 24, 28, 24, 240, 4, 252, 137, 240, 3, 252, 114, 34, 0, 28, 1, 72, + 18, 240, 3, 252, 167, 33, 160, 2, 73, 72, 16, 240, 4, 252, 113, 75, 16, 33, 128, 96, 24, 240, 4, 252, 34, 33, 32, 240, + 4, 252, 81, 75, 13, 96, 24, 240, 3, 250, 201, 40, 0, 219, 3, 247, 255, 250, 7, 32, 0, 224, 1, 32, 1, 66, 64, 188, 8, + 188, 2, 71, 8, 19, 112, 1, 12, 19, 112, 106, 48, 19, 114, 194, 96, 19, 112, 14, 77, 19, 113, 130, 96, 19, 112, 96, 48, + 19, 112, 96, 44, 181, 240, 7, 65, 213, 27, 34, 128, 78, 14, 77, 15, 76, 15, 35, 0, 1, 146, 104, 49, 0, 152, 104, 137, + 104, 47, 49, 68, 24, 9, 104, 8, 66, 187, 209, 5, 7, 193, 212, 7, 73, 9, 32, 2, 96, 8, 224, 3, 64, 32, 40, 3, 209, 0, + 96, 10, 51, 1, 43, 4, 209, 233, 188, 240, 188, 1, 71, 0, 19, 112, 96, 60, 19, 112, 106, 48, 0, 0, 32, 3, 19, 112, 106, + 52, 181, 240, 176, 131, 147, 1, 155, 8, 76, 14, 0, 91, 104, 38, 28, 13, 28, 23, 147, 0, 32, 10, 247, 255, 255, 79, 104, + 43, 154, 1, 64, 59, 66, 147, 208, 9, 104, 35, 27, 155, 213, 0, 104, 38, 154, 0, 66, 147, 211, 240, 32, 2, 66, 64, 224, + 0, 32, 0, 176, 3, 188, 240, 188, 2, 71, 8, 70, 192, 13, 128, 0, 16, 181, 56, 28, 4, 240, 3, 250, 191, 33, 0, 28, 5, + 34, 96, 28, 32, 240, 4, 250, 232, 35, 64, 96, 163, 35, 128, 4, 91, 99, 101, 96, 35, 96, 99, 188, 56, 188, 1, 71, 0, + 181, 16, 75, 12, 36, 0, 104, 27, 108, 26, 42, 7, 220, 13, 73, 10, 104, 12, 0, 228, 24, 164, 0, 97, 25, 12, 106, 25, + 1, 100, 25, 12, 50, 1, 100, 26, 28, 32, 247, 255, 255, 215, 28, 32, 188, 16, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, + 19, 112, 106, 32, 181, 240, 28, 4, 176, 133, 28, 8, 28, 14, 147, 3, 28, 23, 240, 4, 250, 59, 35, 0, 98, 35, 5, 53, 35, + 128, 13, 45, 1, 91, 27, 93, 96, 224, 66, 175, 210, 1, 28, 61, 224, 49, 32, 128, 1, 64, 24, 54, 11, 54, 3, 54, 150, 2, + 33, 1, 28, 38, 54, 16, 145, 1, 224, 20, 152, 2, 240, 4, 250, 33, 34, 0, 198, 1, 97, 50, 155, 2, 33, 128, 28, 24, 35, + 128, 1, 91, 1, 73, 24, 192, 24, 109, 144, 2, 66, 189, 211, 0, 28, 61, 154, 1, 50, 1, 146, 1, 66, 189, 210, 8, 152, 1, + 33, 0, 15, 195, 34, 4, 66, 130, 65, 75, 6, 27, 43, 0, 209, 223, 66, 189, 208, 4, 28, 40, 153, 10, 240, 4, 251, 106, + 26, 109, 155, 3, 4, 40, 67, 24, 240, 4, 249, 248, 35, 128, 4, 91, 96, 160, 100, 37, 96, 35, 96, 99, 176, 5, 28, 40, + 188, 240, 188, 2, 71, 8, 0, 0, 181, 240, 176, 139, 28, 5, 247, 255, 255, 133, 28, 6, 32, 0, 46, 0, 209, 0, 224, 145, + 99, 245, 105, 42, 126, 107, 126, 47, 97, 104, 146, 3, 147, 7, 47, 0, 209, 25, 35, 8, 147, 0, 35, 160, 104, 105, 34, + 8, 0, 155, 28, 48, 247, 255, 255, 140, 247, 255, 255, 108, 28, 4, 28, 56, 44, 0, 208, 121, 107, 96, 99, 229, 240, 4, + 249, 198, 154, 3, 96, 48, 99, 180, 42, 0, 208, 4, 79, 58, 224, 3, 28, 52, 39, 128, 224, 0, 79, 56, 104, 235, 154, 7, + 147, 4, 42, 0, 208, 2, 35, 128, 0, 91, 67, 31, 105, 235, 150, 9, 5, 91, 13, 91, 147, 5, 154, 5, 35, 128, 4, 91, 58, + 1, 147, 6, 146, 8, 155, 5, 154, 3, 147, 0, 28, 32, 28, 59, 153, 4, 247, 255, 255, 92, 154, 3, 155, 4, 26, 18, 146, 3, + 154, 7, 24, 27, 147, 4, 42, 0, 208, 1, 155, 6, 96, 99, 154, 8, 155, 5, 24, 128, 66, 3, 209, 2, 34, 128, 6, 18, 24, 191, + 155, 3, 43, 0, 221, 11, 247, 255, 255, 38, 30, 6, 208, 52, 107, 112, 99, 245, 240, 4, 249, 130, 99, 166, 96, 32, 28, + 52, 231, 213, 35, 128, 4, 91, 96, 99, 105, 43, 158, 9, 148, 3, 43, 0, 208, 29, 126, 42, 146, 4, 42, 0, 209, 25, 247, + 255, 255, 14, 28, 4, 32, 0, 44, 0, 208, 27, 107, 96, 99, 229, 240, 4, 249, 104, 155, 3, 34, 128, 96, 24, 99, 156, 35, + 128, 0, 91, 6, 18, 64, 123, 67, 19, 154, 4, 28, 32, 146, 0, 33, 0, 34, 0, 247, 255, 255, 20, 104, 162, 35, 128, 4, 27, + 67, 19, 96, 163, 28, 48, 224, 0, 32, 0, 176, 11, 188, 240, 188, 2, 71, 8, 128, 0, 0, 128, 128, 0, 1, 128, 181, 56, 76, + 19, 37, 32, 104, 35, 104, 155, 120, 25, 120, 90, 6, 9, 4, 18, 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, 224, + 18, 104, 34, 67, 171, 104, 146, 32, 10, 96, 19, 247, 255, 253, 243, 104, 35, 104, 155, 120, 25, 120, 90, 6, 9, 4, 18, + 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, 66, 29, 209, 234, 188, 56, 188, 1, 71, 0, 19, 112, 96, 60, 181, 56, + 76, 19, 37, 32, 104, 35, 104, 155, 120, 25, 120, 90, 6, 9, 4, 18, 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, + 224, 18, 104, 34, 67, 43, 104, 146, 32, 10, 96, 19, 247, 255, 253, 201, 104, 35, 104, 155, 120, 25, 120, 90, 6, 9, 4, + 18, 67, 10, 120, 153, 120, 219, 2, 9, 67, 10, 67, 19, 66, 29, 208, 234, 188, 56, 188, 1, 71, 0, 19, 112, 96, 60, 181, + 248, 28, 12, 40, 0, 209, 33, 77, 28, 76, 29, 79, 29, 38, 0, 104, 43, 104, 155, 126, 25, 126, 90, 6, 9, 4, 18, 67, 10, + 126, 153, 126, 219, 2, 9, 67, 10, 67, 19, 105, 34, 108, 82, 66, 147, 211, 6, 105, 98, 108, 82, 66, 147, 216, 2, 247, + 255, 255, 142, 224, 25, 32, 10, 54, 1, 247, 255, 253, 147, 66, 190, 209, 226, 224, 18, 40, 1, 209, 16, 224, 6, 32, 10, + 54, 1, 247, 255, 253, 137, 66, 190, 209, 3, 224, 8, 77, 6, 79, 8, 38, 0, 104, 43, 104, 155, 105, 154, 108, 99, 66, 154, + 208, 239, 32, 0, 188, 248, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 19, 114, 194, 128, 0, 0, 19, 136, 181, 0, 7, 67, + 213, 21, 75, 12, 104, 27, 104, 154, 75, 11, 108, 81, 64, 11, 43, 3, 209, 2, 35, 128, 1, 155, 100, 83, 75, 6, 104, 27, + 104, 154, 75, 6, 108, 145, 64, 11, 43, 3, 209, 2, 35, 128, 1, 155, 100, 147, 188, 1, 71, 0, 70, 192, 19, 112, 96, 60, + 0, 0, 32, 3, 181, 16, 75, 19, 28, 4, 104, 27, 52, 16, 104, 155, 0, 164, 25, 28, 34, 128, 104, 99, 1, 146, 66, 19, 209, + 0, 64, 83, 34, 46, 67, 147, 96, 99, 32, 5, 247, 255, 253, 106, 34, 128, 104, 99, 1, 146, 66, 19, 208, 0, 64, 83, 34, + 46, 67, 147, 96, 99, 32, 5, 247, 255, 253, 94, 75, 4, 32, 5, 96, 99, 247, 255, 253, 89, 188, 16, 188, 1, 71, 0, 19, + 112, 96, 60, 0, 0, 24, 1, 181, 240, 176, 131, 75, 36, 28, 5, 104, 27, 53, 16, 104, 155, 0, 173, 25, 93, 104, 107, 74, + 33, 29, 44, 64, 26, 38, 4, 42, 1, 208, 4, 4, 154, 213, 51, 247, 255, 255, 192, 224, 48, 39, 136, 1, 127, 34, 4, 67, + 147, 67, 59, 96, 35, 32, 60, 247, 255, 253, 40, 104, 35, 74, 24, 32, 50, 64, 19, 96, 35, 247, 255, 253, 33, 75, 22, + 34, 128, 147, 0, 28, 32, 28, 33, 0, 82, 35, 0, 247, 255, 253, 156, 40, 0, 208, 2, 104, 107, 72, 17, 224, 20, 104, 35, + 34, 4, 66, 26, 209, 16, 62, 1, 46, 0, 209, 220, 34, 128, 1, 146, 67, 19, 33, 42, 67, 139, 96, 107, 32, 10, 96, 106, + 247, 255, 253, 2, 72, 8, 224, 1, 32, 1, 66, 64, 176, 3, 188, 240, 188, 2, 71, 8, 19, 112, 96, 60, 0, 0, 32, 1, 255, + 255, 254, 213, 0, 0, 19, 136, 255, 255, 248, 48, 255, 255, 251, 161, 181, 16, 75, 20, 28, 4, 104, 27, 52, 16, 104, 155, + 0, 164, 25, 28, 34, 128, 104, 99, 1, 146, 66, 19, 209, 0, 64, 83, 34, 46, 67, 147, 96, 99, 32, 5, 247, 255, 252, 230, + 34, 128, 104, 99, 1, 146, 66, 19, 208, 0, 64, 83, 34, 46, 67, 147, 96, 99, 32, 5, 247, 255, 252, 218, 75, 5, 32, 60, + 96, 99, 247, 255, 252, 213, 32, 1, 188, 16, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 0, 0, 24, 1, 32, 0, 71, 112, 75, + 5, 48, 16, 104, 27, 0, 128, 104, 155, 24, 24, 35, 128, 1, 155, 96, 67, 32, 0, 71, 112, 70, 192, 19, 112, 96, 60, 74, + 5, 32, 0, 104, 19, 104, 153, 35, 128, 1, 155, 100, 75, 104, 18, 104, 146, 100, 147, 71, 112, 70, 192, 19, 112, 96, 60, + 181, 0, 75, 10, 104, 27, 104, 154, 35, 128, 108, 81, 1, 155, 66, 25, 209, 0, 100, 83, 75, 5, 104, 27, 104, 154, 35, + 128, 108, 145, 1, 155, 66, 25, 209, 0, 100, 147, 32, 0, 188, 2, 71, 8, 19, 112, 96, 60, 75, 6, 33, 0, 104, 26, 35, 1, + 66, 91, 28, 16, 103, 17, 103, 147, 48, 152, 50, 160, 96, 1, 96, 19, 71, 112, 70, 192, 19, 112, 96, 60, 75, 6, 120, 27, + 30, 90, 65, 147, 74, 5, 0, 152, 96, 19, 74, 5, 24, 195, 0, 219, 104, 16, 51, 88, 24, 192, 71, 112, 19, 112, 1, 12, 19, + 112, 106, 48, 19, 112, 96, 60, 181, 16, 73, 19, 120, 9, 30, 72, 65, 129, 72, 18, 0, 140, 96, 1, 72, 17, 24, 97, 104, + 0, 0, 201, 24, 64, 111, 4, 33, 0, 44, 0, 208, 16, 128, 25, 128, 89, 28, 1, 49, 96, 136, 8, 4, 0, 10, 4, 14, 0, 67, 32, + 128, 152, 136, 73, 4, 9, 10, 8, 14, 9, 67, 1, 128, 217, 33, 1, 32, 0, 112, 17, 188, 16, 188, 2, 71, 8, 70, 192, 19, + 112, 1, 12, 19, 112, 106, 48, 19, 112, 96, 60, 181, 0, 28, 3, 224, 8, 120, 90, 58, 4, 6, 18, 14, 18, 42, 1, 217, 4, + 120, 26, 26, 137, 24, 155, 41, 0, 209, 244, 26, 24, 188, 2, 71, 8, 181, 240, 176, 133, 124, 130, 124, 195, 6, 18, 4, + 27, 67, 19, 125, 2, 28, 5, 2, 18, 67, 19, 125, 66, 67, 26, 208, 103, 34, 0, 146, 3, 146, 1, 224, 83, 6, 36, 4, 9, 2, + 18, 67, 12, 67, 20, 158, 3, 67, 35, 25, 156, 122, 98, 122, 163, 6, 18, 4, 27, 67, 19, 122, 226, 2, 18, 67, 19, 123, + 34, 67, 26, 208, 58, 39, 0, 151, 2, 28, 46, 224, 36, 6, 0, 4, 9, 2, 18, 67, 8, 67, 16, 67, 3, 25, 221, 123, 170, 123, + 235, 6, 18, 4, 27, 67, 19, 124, 42, 124, 104, 2, 18, 67, 19, 67, 24, 208, 1, 240, 2, 255, 158, 122, 106, 122, 171, 6, + 18, 4, 27, 67, 19, 122, 234, 123, 40, 2, 18, 67, 19, 67, 24, 208, 1, 240, 2, 255, 145, 154, 2, 55, 18, 50, 1, 146, 2, + 121, 35, 157, 2, 70, 156, 122, 96, 122, 161, 122, 226, 123, 35, 69, 101, 219, 209, 28, 53, 6, 6, 4, 8, 67, 48, 2, 18, + 67, 16, 67, 24, 240, 2, 255, 123, 158, 1, 154, 3, 54, 1, 50, 13, 150, 1, 146, 3, 124, 104, 158, 1, 124, 172, 124, 233, + 125, 42, 125, 107, 66, 134, 219, 163, 6, 36, 4, 8, 67, 32, 2, 18, 67, 16, 67, 24, 240, 2, 255, 101, 176, 5, 188, 240, + 188, 1, 71, 0, 0, 0, 181, 248, 30, 5, 209, 4, 75, 28, 34, 48, 112, 26, 112, 93, 224, 47, 76, 26, 28, 46, 28, 48, 33, + 10, 240, 4, 248, 40, 28, 48, 28, 15, 33, 10, 240, 4, 248, 31, 23, 251, 24, 255, 64, 95, 55, 48, 75, 20, 112, 39, 60, + 1, 28, 6, 66, 156, 209, 236, 75, 15, 34, 0, 118, 154, 45, 0, 218, 2, 34, 45, 112, 26, 34, 1, 35, 16, 72, 10, 224, 0, + 51, 1, 92, 193, 41, 48, 208, 251, 66, 72, 65, 65, 26, 91, 73, 6, 224, 2, 84, 136, 51, 1, 50, 1, 92, 200, 40, 0, 209, + 249, 84, 136, 188, 248, 188, 1, 71, 0, 70, 192, 19, 114, 196, 64, 19, 114, 196, 89, 19, 114, 196, 79, 181, 248, 30, + 4, 209, 4, 75, 24, 34, 48, 112, 26, 112, 92, 224, 40, 77, 22, 28, 47, 63, 10, 28, 32, 33, 10, 240, 3, 255, 191, 28, + 32, 28, 14, 33, 10, 240, 3, 255, 198, 54, 48, 112, 46, 61, 1, 28, 4, 66, 189, 209, 240, 74, 12, 35, 0, 118, 147, 28, + 17, 35, 16, 224, 0, 51, 1, 92, 202, 42, 48, 208, 251, 66, 81, 65, 74, 26, 155, 73, 6, 34, 0, 224, 2, 84, 136, 51, 1, + 50, 1, 92, 200, 40, 0, 209, 249, 84, 136, 188, 248, 188, 1, 71, 0, 19, 114, 196, 64, 19, 114, 196, 89, 181, 16, 40, + 0, 209, 4, 75, 24, 34, 48, 112, 26, 112, 88, 224, 40, 75, 22, 33, 15, 28, 28, 60, 8, 28, 10, 64, 2, 9, 0, 42, 9, 221, + 0, 50, 7, 50, 48, 112, 26, 59, 1, 66, 163, 209, 244, 74, 14, 35, 0, 118, 19, 35, 48, 112, 19, 35, 120, 112, 83, 35, + 16, 224, 0, 51, 1, 92, 209, 41, 48, 208, 251, 66, 74, 65, 74, 26, 155, 73, 6, 34, 2, 224, 2, 84, 136, 51, 1, 50, 1, + 92, 200, 40, 0, 209, 249, 84, 136, 188, 16, 188, 1, 71, 0, 19, 114, 196, 64, 19, 114, 196, 87, 180, 15, 181, 240, 176, + 133, 171, 10, 203, 64, 34, 128, 1, 146, 169, 3, 128, 10, 147, 2, 36, 0, 77, 46, 79, 46, 224, 81, 28, 114, 146, 1, 43, + 37, 208, 12, 70, 106, 115, 19, 168, 3, 240, 3, 254, 209, 25, 4, 158, 1, 66, 172, 220, 68, 168, 3, 240, 3, 255, 134, + 224, 64, 120, 115, 43, 115, 208, 46, 43, 115, 216, 4, 43, 100, 208, 7, 43, 105, 209, 53, 224, 4, 43, 117, 208, 9, 43, + 120, 209, 48, 224, 20, 155, 2, 29, 26, 146, 2, 104, 24, 247, 255, 255, 26, 224, 19, 155, 2, 29, 26, 146, 2, 104, 24, + 247, 255, 255, 85, 28, 56, 240, 3, 254, 170, 25, 4, 28, 56, 66, 172, 220, 27, 224, 24, 155, 2, 29, 26, 146, 2, 104, + 24, 247, 255, 255, 127, 72, 16, 240, 3, 254, 156, 25, 4, 66, 172, 220, 14, 72, 13, 224, 10, 155, 2, 29, 26, 146, 2, + 104, 30, 28, 48, 240, 3, 254, 144, 25, 4, 66, 172, 220, 2, 28, 48, 240, 3, 255, 70, 158, 1, 54, 1, 120, 51, 43, 0, 209, + 170, 176, 5, 188, 240, 188, 8, 176, 4, 71, 24, 0, 0, 13, 171, 19, 114, 196, 64, 181, 240, 28, 12, 176, 133, 28, 6, 33, + 0, 32, 0, 247, 255, 252, 176, 126, 35, 43, 0, 209, 6, 74, 218, 33, 8, 96, 19, 104, 32, 240, 2, 253, 233, 96, 96, 105, + 33, 41, 0, 208, 9, 126, 99, 104, 160, 43, 0, 208, 2, 240, 2, 253, 223, 224, 1, 240, 2, 253, 228, 96, 224, 126, 35, 43, + 0, 209, 3, 75, 207, 104, 27, 105, 219, 224, 6, 126, 99, 43, 0, 208, 1, 75, 205, 224, 0, 75, 205, 104, 27, 147, 2, 77, + 204, 75, 205, 153, 2, 28, 40, 96, 25, 34, 96, 240, 2, 255, 12, 33, 0, 34, 48, 152, 2, 240, 3, 253, 237, 75, 195, 34, + 0, 104, 27, 28, 32, 100, 26, 75, 197, 34, 1, 104, 25, 64, 74, 96, 26, 247, 255, 251, 121, 75, 195, 100, 168, 96, 24, + 126, 34, 35, 15, 146, 1, 64, 26, 146, 3, 155, 3, 28, 7, 34, 128, 105, 176, 2, 29, 1, 146, 155, 1, 67, 2, 105, 225, 67, + 42, 43, 0, 209, 1, 72, 186, 224, 5, 5, 72, 35, 128, 9, 64, 5, 219, 67, 3, 28, 24, 67, 16, 240, 3, 253, 70, 77, 176, + 35, 64, 96, 171, 75, 180, 33, 255, 104, 27, 34, 255, 108, 91, 2, 9, 4, 18, 64, 25, 64, 26, 2, 9, 10, 18, 67, 10, 14, + 25, 67, 10, 33, 224, 64, 11, 33, 2, 67, 11, 6, 27, 67, 26, 96, 104, 96, 42, 107, 120, 240, 3, 253, 42, 35, 128, 153, + 1, 4, 91, 97, 40, 97, 107, 41, 0, 208, 16, 9, 203, 153, 3, 106, 114, 1, 27, 24, 91, 64, 218, 28, 19, 7, 218, 213, 3, + 105, 170, 35, 128, 67, 19, 224, 2, 105, 171, 34, 128, 67, 147, 97, 171, 77, 150, 75, 156, 105, 170, 28, 40, 64, 19, + 97, 171, 33, 96, 240, 2, 253, 103, 108, 173, 224, 4, 28, 40, 33, 96, 240, 2, 253, 97, 107, 173, 45, 0, 209, 248, 152, + 2, 73, 141, 34, 96, 240, 2, 254, 132, 75, 146, 120, 27, 43, 0, 208, 4, 75, 145, 72, 145, 104, 25, 247, 255, 254, 218, + 75, 144, 34, 1, 96, 26, 77, 130, 35, 0, 147, 1, 153, 1, 74, 139, 49, 1, 145, 1, 72, 140, 104, 17, 247, 254, 255, 192, + 104, 43, 33, 32, 105, 152, 240, 2, 253, 81, 104, 42, 73, 124, 39, 2, 108, 75, 105, 145, 34, 255, 2, 18, 64, 26, 2, 16, + 34, 255, 4, 18, 64, 26, 10, 18, 67, 2, 14, 24, 67, 2, 32, 224, 64, 3, 67, 59, 6, 24, 28, 19, 67, 3, 96, 11, 104, 43, + 33, 32, 105, 152, 240, 2, 253, 33, 247, 255, 251, 163, 247, 254, 255, 201, 154, 1, 42, 4, 208, 6, 28, 3, 51, 9, 209, + 3, 72, 118, 247, 255, 254, 158, 231, 200, 75, 114, 34, 0, 96, 26, 75, 109, 28, 7, 120, 27, 43, 0, 208, 3, 72, 113, 28, + 57, 247, 255, 254, 145, 47, 0, 209, 3, 75, 93, 104, 27, 43, 0, 208, 15, 75, 92, 104, 27, 104, 154, 75, 107, 50, 68, + 104, 27, 0, 155, 24, 211, 104, 27, 34, 5, 64, 19, 43, 5, 208, 2, 75, 84, 34, 1, 96, 26, 66, 121, 65, 121, 145, 1, 29, + 122, 208, 1, 41, 0, 208, 65, 247, 255, 251, 66, 77, 79, 33, 32, 104, 43, 105, 152, 240, 3, 254, 56, 104, 43, 33, 32, + 105, 152, 240, 2, 252, 203, 75, 82, 104, 42, 104, 27, 105, 145, 108, 91, 34, 255, 2, 18, 64, 26, 2, 16, 34, 255, 4, + 18, 64, 26, 10, 18, 67, 2, 14, 24, 67, 2, 32, 224, 64, 3, 32, 2, 67, 3, 6, 24, 28, 19, 67, 3, 96, 11, 104, 43, 33, 32, + 105, 152, 240, 3, 253, 246, 247, 255, 251, 66, 126, 34, 42, 0, 208, 98, 9, 211, 32, 15, 64, 16, 1, 27, 24, 27, 106, + 113, 34, 1, 64, 154, 67, 145, 28, 10, 73, 70, 104, 9, 6, 9, 15, 201, 64, 153, 28, 11, 67, 19, 98, 115, 224, 79, 247, + 255, 251, 0, 75, 49, 108, 157, 224, 4, 107, 104, 33, 96, 240, 2, 252, 179, 107, 173, 45, 0, 209, 248, 77, 44, 34, 32, + 28, 40, 153, 2, 240, 2, 253, 206, 126, 34, 42, 0, 208, 16, 9, 211, 32, 15, 64, 16, 1, 27, 24, 27, 106, 113, 34, 1, 64, + 154, 67, 145, 28, 10, 105, 169, 6, 9, 15, 201, 64, 153, 28, 11, 67, 19, 98, 115, 77, 28, 33, 32, 104, 43, 38, 2, 105, + 152, 240, 3, 253, 209, 104, 43, 33, 32, 105, 152, 240, 2, 252, 100, 75, 30, 104, 42, 104, 27, 105, 145, 108, 91, 34, + 255, 2, 18, 64, 26, 2, 16, 34, 255, 4, 18, 64, 26, 10, 18, 67, 2, 14, 24, 67, 2, 32, 224, 64, 3, 67, 51, 6, 24, 28, + 19, 67, 3, 96, 11, 104, 43, 33, 32, 105, 152, 240, 3, 253, 144, 247, 255, 250, 220, 73, 10, 32, 1, 247, 255, 251, 2, + 105, 33, 41, 0, 208, 48, 126, 99, 104, 224, 43, 0, 208, 42, 240, 2, 252, 83, 224, 41, 19, 112, 106, 52, 19, 112, 96, + 60, 19, 112, 105, 212, 19, 112, 106, 40, 19, 114, 195, 224, 19, 112, 105, 220, 19, 112, 106, 32, 19, 112, 105, 244, + 64, 64, 64, 0, 19, 112, 106, 36, 1, 0, 0, 128, 19, 112, 105, 216, 19, 112, 96, 56, 19, 112, 96, 194, 19, 112, 105, 240, + 19, 112, 41, 41, 19, 112, 96, 240, 19, 112, 96, 247, 19, 112, 106, 48, 19, 112, 105, 228, 240, 2, 252, 46, 126, 35, + 43, 0, 209, 3, 104, 96, 33, 8, 240, 2, 252, 33, 155, 1, 43, 0, 208, 0, 105, 103, 176, 5, 28, 56, 188, 240, 188, 2, 71, + 8, 181, 48, 176, 137, 70, 108, 118, 33, 9, 201, 118, 97, 33, 128, 0, 137, 37, 0, 145, 7, 70, 105, 149, 0, 146, 4, 147, + 2, 247, 255, 253, 246, 176, 9, 188, 48, 188, 2, 71, 8, 181, 240, 176, 139, 28, 6, 70, 104, 48, 70, 136, 4, 72, 43, 70, + 156, 104, 0, 70, 107, 51, 66, 48, 248, 104, 0, 136, 27, 112, 66, 4, 27, 70, 98, 147, 1, 2, 19, 10, 18, 67, 19, 4, 26, + 12, 19, 14, 18, 112, 1, 159, 18, 112, 130, 112, 195, 155, 1, 4, 36, 10, 26, 14, 27, 67, 19, 4, 27, 12, 37, 12, 26, 14, + 27, 113, 3, 14, 36, 2, 43, 67, 35, 4, 27, 113, 66, 14, 26, 12, 27, 113, 195, 172, 2, 35, 0, 113, 130, 118, 35, 35, 64, + 97, 227, 75, 21, 9, 201, 144, 2, 118, 97, 97, 37, 66, 159, 217, 22, 28, 40, 240, 2, 251, 216, 28, 42, 28, 57, 96, 160, + 240, 3, 251, 149, 28, 33, 28, 48, 247, 255, 253, 171, 104, 164, 28, 6, 28, 33, 28, 56, 28, 42, 240, 3, 251, 138, 28, + 32, 240, 2, 251, 227, 224, 5, 28, 48, 96, 167, 28, 33, 247, 255, 253, 155, 28, 6, 176, 11, 28, 48, 188, 240, 188, 2, + 71, 8, 70, 192, 19, 112, 96, 60, 19, 136, 0, 0, 181, 0, 176, 133, 145, 0, 35, 0, 33, 2, 34, 1, 147, 1, 147, 2, 247, + 255, 255, 148, 176, 5, 188, 2, 71, 8, 181, 0, 176, 133, 28, 19, 34, 0, 145, 0, 146, 1, 146, 2, 33, 1, 34, 11, 247, 255, + 255, 134, 176, 5, 188, 2, 71, 8, 181, 0, 176, 133, 34, 0, 146, 0, 146, 1, 146, 2, 28, 11, 34, 9, 33, 0, 247, 255, 255, + 120, 176, 5, 188, 2, 71, 8, 181, 112, 28, 4, 176, 132, 32, 1, 28, 14, 240, 2, 251, 132, 30, 5, 208, 18, 35, 0, 147, + 0, 35, 1, 147, 1, 28, 32, 33, 128, 34, 8, 35, 0, 149, 2, 247, 255, 255, 97, 30, 4, 219, 1, 120, 43, 112, 51, 28, 40, + 240, 2, 251, 142, 224, 1, 36, 4, 66, 100, 176, 4, 28, 32, 188, 112, 188, 2, 71, 8, 181, 16, 176, 132, 70, 108, 2, 18, + 52, 27, 120, 36, 67, 19, 34, 0, 146, 0, 145, 2, 34, 6, 33, 128, 148, 1, 247, 255, 255, 67, 176, 4, 188, 16, 188, 2, + 71, 8, 181, 240, 176, 141, 144, 11, 32, 22, 28, 13, 240, 2, 251, 78, 30, 7, 209, 0, 225, 137, 35, 18, 147, 0, 152, 11, + 28, 57, 34, 1, 35, 0, 247, 255, 255, 219, 30, 4, 218, 0, 225, 108, 28, 57, 34, 18, 28, 40, 240, 3, 250, 253, 28, 56, + 240, 2, 251, 86, 120, 170, 120, 235, 2, 18, 67, 26, 4, 18, 10, 19, 14, 18, 67, 19, 4, 27, 12, 26, 112, 234, 14, 27, + 122, 42, 112, 171, 122, 107, 2, 18, 67, 26, 4, 18, 10, 19, 14, 18, 67, 19, 4, 27, 12, 26, 114, 106, 14, 27, 122, 170, + 114, 43, 122, 235, 2, 18, 67, 26, 4, 18, 10, 19, 14, 18, 67, 19, 4, 27, 12, 26, 114, 234, 14, 27, 123, 42, 114, 171, + 123, 107, 2, 18, 67, 26, 4, 18, 10, 19, 14, 18, 67, 19, 4, 27, 12, 26, 14, 27, 115, 43, 124, 107, 115, 106, 0, 88, 24, + 192, 0, 128, 24, 192, 240, 2, 250, 253, 14, 3, 116, 171, 12, 3, 116, 235, 10, 3, 117, 43, 117, 104, 40, 0, 209, 0, 225, + 45, 124, 107, 33, 0, 0, 90, 24, 210, 0, 146, 24, 210, 240, 3, 250, 239, 33, 0, 145, 10, 145, 5, 28, 46, 225, 6, 32, + 9, 240, 2, 250, 227, 30, 4, 209, 0, 225, 29, 154, 5, 28, 33, 6, 19, 14, 27, 147, 3, 35, 9, 147, 0, 34, 2, 155, 3, 152, + 11, 247, 255, 255, 108, 124, 179, 124, 245, 6, 27, 4, 45, 67, 29, 125, 51, 28, 33, 2, 27, 67, 29, 125, 115, 34, 9, 67, + 29, 155, 10, 24, 237, 28, 40, 240, 3, 250, 133, 28, 32, 240, 2, 250, 222, 120, 170, 120, 235, 2, 18, 67, 26, 4, 18, + 10, 19, 14, 18, 67, 19, 4, 27, 12, 28, 14, 27, 112, 171, 112, 236, 28, 32, 240, 2, 250, 176, 30, 7, 209, 0, 224, 234, + 120, 235, 152, 11, 147, 0, 28, 57, 34, 2, 155, 3, 247, 255, 255, 61, 40, 0, 218, 0, 224, 204, 120, 41, 145, 2, 121, + 43, 0, 216, 24, 192, 0, 64, 240, 2, 250, 154, 14, 3, 114, 107, 12, 3, 114, 171, 10, 3, 114, 235, 115, 40, 40, 0, 209, + 0, 224, 201, 155, 2, 154, 2, 26, 228, 25, 210, 146, 3, 148, 4, 121, 43, 33, 0, 0, 218, 24, 210, 0, 82, 240, 3, 250, + 135, 33, 0, 145, 9, 145, 7, 224, 144, 122, 107, 122, 172, 6, 27, 4, 36, 67, 28, 122, 235, 154, 9, 2, 27, 67, 28, 123, + 43, 153, 3, 67, 28, 24, 164, 28, 32, 34, 9, 240, 3, 250, 48, 120, 35, 147, 2, 121, 35, 0, 216, 26, 192, 240, 2, 250, + 103, 14, 3, 115, 163, 12, 3, 115, 227, 10, 3, 116, 35, 116, 96, 40, 0, 209, 0, 224, 150, 153, 3, 155, 4, 28, 10, 153, + 2, 24, 82, 153, 2, 146, 3, 26, 91, 147, 4, 121, 35, 33, 0, 0, 218, 26, 210, 240, 3, 250, 82, 152, 3, 153, 4, 247, 255, + 250, 124, 35, 11, 144, 2, 70, 106, 92, 154, 115, 98, 155, 2, 43, 0, 208, 25, 28, 24, 240, 2, 250, 63, 14, 3, 114, 99, + 12, 3, 114, 163, 10, 3, 114, 227, 115, 32, 40, 0, 209, 0, 224, 110, 153, 3, 154, 2, 240, 3, 249, 243, 153, 3, 155, 4, + 28, 10, 153, 2, 24, 82, 153, 2, 146, 3, 26, 91, 147, 4, 34, 0, 146, 6, 146, 8, 224, 43, 123, 162, 123, 227, 6, 18, 4, + 27, 67, 19, 124, 34, 153, 6, 2, 18, 67, 19, 124, 98, 67, 19, 24, 201, 145, 2, 28, 8, 34, 7, 153, 3, 240, 3, 249, 212, + 154, 2, 153, 3, 120, 19, 24, 201, 145, 3, 153, 2, 121, 18, 121, 75, 2, 18, 67, 26, 4, 18, 10, 17, 14, 19, 67, 11, 4, + 27, 153, 2, 12, 26, 14, 27, 113, 11, 113, 74, 154, 8, 155, 6, 50, 1, 51, 7, 146, 8, 147, 6, 121, 35, 153, 8, 66, 153, + 211, 207, 154, 7, 155, 9, 50, 1, 51, 18, 146, 7, 147, 9, 121, 43, 153, 7, 66, 153, 210, 0, 231, 105, 28, 56, 240, 2, + 250, 4, 154, 5, 155, 10, 50, 1, 51, 13, 146, 5, 147, 10, 39, 0, 124, 115, 153, 5, 66, 153, 210, 0, 230, 243, 28, 53, + 36, 0, 47, 0, 209, 2, 224, 9, 28, 4, 28, 53, 28, 56, 240, 2, 249, 238, 44, 0, 208, 2, 28, 40, 247, 255, 250, 14, 176, + 13, 28, 32, 188, 240, 188, 2, 71, 8, 28, 53, 36, 4, 66, 100, 231, 238, 28, 53, 36, 4, 66, 100, 231, 239, 181, 240, 176, + 137, 75, 65, 28, 2, 104, 30, 0, 129, 104, 179, 24, 9, 50, 16, 0, 201, 0, 146, 24, 154, 28, 11, 51, 88, 28, 7, 24, 240, + 144, 5, 24, 113, 32, 0, 103, 8, 104, 81, 29, 21, 74, 56, 64, 10, 42, 1, 209, 99, 34, 4, 146, 4, 147, 7, 75, 54, 32, + 10, 96, 43, 247, 254, 254, 6, 75, 52, 32, 100, 96, 43, 247, 254, 254, 1, 75, 51, 34, 128, 96, 43, 35, 250, 0, 219, 147, + 0, 0, 82, 35, 0, 28, 40, 28, 41, 247, 254, 254, 121, 104, 42, 75, 45, 28, 4, 64, 19, 43, 5, 209, 50, 35, 192, 1, 27, + 64, 26, 35, 128, 0, 219, 66, 154, 208, 43, 40, 0, 209, 43, 32, 100, 247, 254, 253, 227, 75, 38, 74, 38, 104, 24, 96, + 26, 154, 7, 35, 22, 147, 1, 24, 179, 147, 2, 35, 128, 144, 6, 33, 128, 152, 5, 34, 6, 0, 91, 148, 0, 247, 255, 253, + 81, 30, 4, 219, 12, 28, 123, 32, 0, 4, 27, 144, 0, 144, 1, 144, 2, 12, 27, 152, 5, 33, 0, 34, 5, 247, 255, 253, 67, + 28, 4, 75, 21, 154, 6, 96, 26, 44, 0, 219, 2, 224, 8, 36, 1, 66, 100, 155, 4, 59, 1, 147, 4, 43, 0, 209, 169, 44, 0, + 219, 10, 0, 187, 25, 219, 0, 219, 24, 246, 55, 1, 35, 0, 103, 243, 103, 55, 224, 1, 36, 1, 66, 100, 176, 9, 28, 32, + 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 60, 0, 0, 32, 1, 0, 0, 24, 3, 0, 0, 25, 3, 0, 0, 16, 1, 0, 0, 32, 5, + 19, 112, 96, 56, 0, 6, 26, 128, 181, 248, 76, 25, 28, 6, 104, 35, 104, 157, 35, 1, 96, 171, 247, 255, 255, 97, 30, 7, + 218, 24, 104, 35, 33, 55, 104, 155, 28, 52, 104, 90, 32, 10, 64, 10, 96, 90, 52, 16, 247, 254, 253, 124, 0, 164, 75, + 15, 25, 44, 96, 99, 32, 50, 247, 254, 253, 117, 75, 13, 32, 100, 96, 99, 247, 254, 253, 112, 75, 11, 96, 99, 75, 7, + 32, 55, 104, 26, 104, 146, 104, 81, 64, 1, 96, 81, 104, 27, 34, 4, 104, 155, 28, 56, 96, 154, 188, 248, 188, 2, 71, + 8, 70, 192, 19, 112, 96, 60, 0, 0, 24, 3, 0, 0, 25, 3, 0, 0, 16, 1, 181, 240, 176, 137, 75, 126, 34, 0, 104, 31, 0, + 131, 24, 27, 0, 219, 28, 30, 147, 5, 54, 88, 24, 251, 28, 4, 25, 190, 103, 26, 32, 50, 247, 254, 253, 68, 37, 3, 150, + 6, 72, 118, 247, 255, 250, 69, 32, 50, 247, 254, 253, 60, 35, 22, 147, 1, 155, 6, 34, 0, 147, 2, 35, 128, 146, 0, 28, + 48, 33, 128, 34, 6, 0, 91, 247, 255, 252, 175, 40, 0, 218, 12, 72, 109, 247, 255, 250, 48, 32, 50, 247, 254, 253, 39, + 61, 1, 32, 100, 247, 254, 253, 35, 45, 0, 209, 222, 224, 2, 154, 5, 24, 187, 224, 38, 28, 32, 247, 254, 255, 212, 75, + 100, 66, 152, 209, 0, 224, 184, 32, 100, 247, 254, 253, 19, 72, 98, 247, 255, 250, 22, 35, 22, 147, 1, 155, 6, 34, 0, + 147, 2, 35, 128, 146, 0, 28, 48, 33, 128, 34, 6, 0, 91, 247, 255, 252, 131, 40, 0, 218, 6, 72, 90, 53, 1, 247, 255, + 250, 3, 45, 3, 209, 221, 224, 12, 0, 163, 25, 27, 0, 219, 24, 251, 110, 26, 75, 85, 66, 154, 209, 46, 28, 32, 247, 255, + 248, 49, 76, 83, 224, 144, 28, 32, 247, 254, 255, 120, 32, 100, 247, 254, 252, 231, 28, 32, 247, 254, 255, 158, 74, + 73, 66, 144, 209, 0, 224, 130, 32, 100, 247, 254, 252, 221, 72, 75, 247, 255, 249, 224, 35, 0, 154, 6, 147, 0, 35, 22, + 147, 1, 35, 128, 146, 2, 28, 48, 33, 128, 34, 6, 0, 91, 247, 255, 252, 77, 40, 0, 218, 7, 72, 63, 61, 1, 247, 255, 249, + 205, 45, 0, 209, 215, 76, 64, 224, 102, 72, 64, 247, 255, 249, 198, 28, 99, 147, 5, 4, 27, 12, 27, 147, 7, 0, 163, 25, + 28, 0, 228, 37, 0, 25, 63, 32, 50, 247, 254, 252, 179, 72, 57, 28, 41, 247, 255, 249, 181, 35, 0, 147, 0, 147, 1, 147, + 2, 28, 48, 33, 0, 34, 5, 155, 7, 247, 255, 252, 37, 30, 4, 218, 7, 76, 50, 28, 41, 72, 50, 27, 100, 247, 255, 249, 163, + 53, 1, 224, 3, 72, 48, 28, 41, 247, 255, 249, 157, 155, 5, 34, 0, 103, 250, 103, 59, 44, 0, 218, 47, 33, 0, 28, 48, + 247, 255, 252, 111, 32, 50, 247, 254, 252, 138, 72, 40, 247, 255, 249, 141, 35, 22, 147, 1, 155, 6, 34, 0, 147, 2, 35, + 128, 146, 0, 28, 48, 33, 128, 34, 6, 0, 91, 247, 255, 251, 250, 30, 4, 218, 6, 72, 32, 247, 255, 249, 123, 34, 0, 103, + 58, 76, 31, 224, 2, 72, 31, 247, 255, 249, 116, 53, 1, 44, 0, 218, 7, 15, 233, 34, 0, 35, 4, 66, 171, 65, 74, 6, 18, + 42, 0, 209, 172, 44, 0, 219, 4, 72, 24, 247, 255, 249, 100, 224, 0, 76, 6, 176, 9, 28, 32, 188, 240, 188, 2, 71, 8, + 70, 192, 19, 112, 96, 60, 19, 112, 97, 82, 19, 112, 97, 7, 255, 255, 251, 161, 19, 112, 97, 37, 19, 112, 97, 76, 149, + 11, 32, 119, 255, 255, 251, 160, 19, 112, 97, 113, 255, 255, 247, 103, 19, 112, 97, 162, 19, 112, 97, 188, 255, 255, + 224, 192, 19, 112, 97, 219, 19, 112, 97, 250, 19, 112, 98, 62, 19, 112, 98, 21, 255, 255, 247, 62, 19, 112, 98, 59, + 19, 112, 98, 94, 181, 16, 75, 10, 34, 1, 104, 27, 28, 4, 104, 155, 96, 154, 247, 254, 254, 223, 40, 0, 219, 2, 28, 32, + 247, 255, 254, 202, 75, 3, 34, 4, 104, 27, 104, 155, 96, 154, 188, 16, 188, 2, 71, 8, 19, 112, 96, 60, 181, 248, 28, + 4, 38, 3, 39, 64, 224, 79, 104, 160, 240, 2, 255, 44, 10, 3, 64, 51, 28, 5, 43, 2, 208, 7, 107, 227, 108, 34, 105, 89, + 24, 138, 0, 65, 12, 73, 26, 82, 97, 90, 108, 35, 43, 0, 208, 59, 66, 47, 208, 57, 75, 36, 120, 27, 43, 0, 208, 2, 72, + 35, 247, 255, 248, 251, 6, 235, 213, 6, 75, 32, 120, 27, 43, 0, 208, 2, 72, 32, 247, 255, 248, 242, 7, 107, 213, 6, + 75, 27, 120, 27, 43, 0, 208, 2, 72, 28, 247, 255, 248, 233, 6, 171, 213, 6, 75, 23, 120, 27, 43, 0, 208, 2, 72, 25, + 247, 255, 248, 224, 7, 43, 213, 6, 75, 18, 120, 27, 43, 0, 208, 2, 72, 21, 247, 255, 248, 215, 75, 15, 120, 27, 43, + 0, 208, 2, 72, 19, 247, 255, 248, 208, 75, 11, 120, 27, 43, 0, 208, 8, 72, 16, 247, 255, 248, 201, 224, 4, 107, 164, + 44, 0, 209, 173, 32, 0, 224, 3, 107, 227, 32, 1, 66, 64, 97, 88, 75, 11, 34, 0, 104, 27, 100, 26, 188, 248, 188, 2, + 71, 8, 19, 112, 105, 216, 19, 112, 98, 103, 19, 112, 98, 116, 19, 112, 98, 124, 19, 112, 98, 145, 19, 112, 98, 164, + 19, 112, 98, 175, 19, 112, 104, 90, 19, 112, 96, 60, 181, 240, 176, 131, 28, 5, 35, 9, 7, 193, 213, 60, 75, 58, 120, + 27, 43, 0, 208, 2, 72, 57, 247, 255, 248, 153, 75, 57, 104, 28, 44, 0, 208, 9, 107, 96, 33, 96, 240, 3, 248, 85, 107, + 96, 33, 96, 240, 1, 254, 241, 107, 164, 231, 243, 76, 51, 104, 35, 43, 0, 208, 24, 108, 88, 33, 32, 240, 3, 248, 71, + 104, 35, 33, 32, 108, 88, 240, 1, 254, 226, 104, 35, 34, 128, 4, 82, 97, 26, 74, 43, 108, 88, 104, 18, 33, 32, 107, + 82, 97, 90, 240, 3, 248, 38, 104, 35, 105, 154, 75, 39, 96, 26, 75, 35, 104, 24, 247, 255, 255, 78, 35, 0, 40, 0, 208, + 4, 74, 36, 104, 18, 100, 19, 35, 5, 66, 91, 7, 106, 213, 40, 75, 26, 120, 27, 43, 0, 208, 2, 72, 31, 247, 255, 248, + 89, 33, 128, 1, 137, 79, 28, 78, 29, 35, 1, 34, 0, 145, 1, 104, 56, 104, 49, 104, 128, 0, 148, 48, 68, 25, 0, 70, 140, + 104, 4, 69, 98, 209, 7, 32, 1, 66, 32, 209, 10, 75, 22, 96, 24, 35, 1, 66, 91, 224, 5, 73, 20, 64, 12, 44, 3, 209, 1, + 153, 1, 96, 1, 50, 1, 42, 4, 209, 228, 43, 0, 208, 4, 34, 18, 66, 42, 208, 1, 35, 6, 66, 91, 176, 3, 28, 24, 188, 240, + 188, 2, 71, 8, 70, 192, 19, 112, 105, 216, 19, 112, 98, 192, 19, 112, 105, 244, 19, 112, 105, 220, 19, 112, 105, 232, + 19, 112, 105, 228, 19, 112, 96, 60, 19, 112, 98, 225, 19, 112, 106, 48, 19, 112, 106, 52, 0, 0, 32, 3, 181, 240, 176, + 131, 147, 1, 70, 107, 51, 39, 120, 30, 28, 5, 30, 115, 6, 27, 14, 27, 145, 0, 28, 23, 43, 15, 216, 61, 28, 4, 52, 160, + 104, 32, 40, 0, 208, 56, 33, 0, 34, 31, 240, 2, 254, 145, 104, 35, 74, 29, 96, 26, 28, 43, 51, 152, 104, 24, 240, 2, + 254, 13, 104, 35, 96, 88, 28, 56, 240, 2, 254, 8, 104, 35, 70, 105, 96, 152, 29, 202, 120, 17, 104, 35, 70, 106, 115, + 25, 28, 209, 104, 35, 120, 10, 115, 90, 104, 34, 35, 6, 46, 6, 217, 0, 35, 10, 28, 44, 115, 147, 52, 160, 104, 32, 153, + 8, 28, 50, 48, 15, 240, 2, 254, 40, 28, 43, 51, 144, 104, 24, 123, 105, 104, 35, 34, 31, 247, 255, 250, 52, 40, 31, + 208, 6, 40, 0, 219, 5, 72, 5, 224, 3, 32, 3, 66, 64, 224, 0, 32, 0, 176, 3, 188, 240, 188, 2, 71, 8, 85, 83, 66, 67, + 255, 255, 216, 238, 181, 240, 28, 4, 176, 131, 52, 160, 28, 5, 145, 0, 28, 23, 33, 255, 34, 13, 104, 32, 240, 2, 254, + 68, 28, 43, 51, 144, 104, 24, 123, 41, 104, 35, 34, 13, 247, 255, 250, 14, 40, 13, 208, 1, 40, 0, 218, 40, 40, 0, 219, + 43, 28, 43, 51, 160, 104, 28, 104, 32, 240, 2, 253, 180, 144, 1, 104, 96, 240, 2, 253, 176, 28, 6, 104, 160, 240, 2, + 253, 172, 74, 16, 153, 1, 123, 35, 66, 145, 209, 21, 47, 0, 208, 0, 96, 56, 154, 0, 42, 0, 208, 0, 112, 19, 53, 152, + 104, 43, 66, 158, 209, 12, 28, 179, 4, 27, 12, 54, 12, 27, 4, 54, 67, 30, 96, 46, 32, 0, 224, 4, 72, 5, 224, 2, 72, + 5, 224, 0, 72, 5, 176, 3, 188, 240, 188, 2, 71, 8, 83, 66, 83, 85, 255, 255, 216, 237, 255, 255, 216, 236, 255, 255, + 216, 235, 181, 240, 176, 135, 74, 75, 75, 76, 120, 18, 28, 6, 104, 31, 42, 0, 208, 1, 73, 74, 224, 0, 73, 74, 96, 25, + 28, 51, 51, 144, 104, 24, 75, 72, 104, 27, 104, 153, 105, 195, 49, 68, 0, 155, 24, 203, 104, 25, 35, 1, 66, 11, 209, + 6, 74, 68, 36, 1, 96, 19, 75, 62, 66, 100, 96, 31, 224, 113, 75, 60, 42, 0, 208, 1, 74, 60, 224, 0, 74, 60, 96, 26, + 75, 62, 120, 27, 43, 0, 208, 17, 136, 243, 34, 255, 147, 0, 33, 33, 35, 0, 147, 1, 147, 2, 247, 255, 249, 174, 28, 4, + 28, 33, 72, 55, 247, 254, 255, 47, 32, 60, 247, 254, 250, 38, 224, 6, 33, 0, 247, 255, 250, 4, 32, 5, 247, 254, 250, + 31, 36, 0, 75, 41, 120, 26, 75, 41, 42, 0, 208, 1, 74, 41, 224, 0, 74, 41, 28, 53, 96, 26, 53, 144, 44, 0, 218, 10, + 32, 50, 247, 254, 250, 14, 104, 40, 33, 0, 247, 255, 249, 236, 32, 5, 247, 254, 250, 7, 224, 48, 123, 49, 104, 40, 247, + 255, 249, 228, 28, 4, 32, 5, 247, 254, 249, 254, 72, 33, 28, 33, 247, 254, 255, 0, 44, 0, 219, 34, 123, 113, 104, 40, + 247, 255, 249, 214, 28, 4, 32, 5, 247, 254, 249, 240, 72, 27, 28, 33, 247, 254, 254, 242, 44, 0, 219, 20, 32, 10, 247, + 254, 249, 231, 70, 105, 49, 23, 104, 40, 247, 255, 249, 237, 28, 4, 28, 33, 72, 20, 247, 254, 254, 227, 44, 0, 219, + 5, 72, 19, 247, 254, 254, 222, 75, 7, 96, 31, 224, 4, 75, 6, 34, 1, 96, 31, 75, 8, 96, 26, 176, 7, 28, 32, 188, 240, + 188, 2, 71, 8, 70, 192, 19, 112, 1, 15, 19, 112, 96, 56, 0, 15, 66, 64, 0, 3, 13, 64, 19, 112, 96, 60, 19, 112, 106, + 52, 19, 112, 1, 13, 19, 112, 99, 2, 19, 112, 99, 35, 19, 112, 99, 74, 19, 112, 99, 114, 19, 112, 99, 161, 181, 240, + 176, 141, 146, 6, 70, 106, 50, 79, 120, 18, 28, 31, 70, 107, 51, 95, 146, 7, 70, 106, 120, 27, 50, 83, 120, 18, 6, 27, + 22, 27, 146, 8, 70, 106, 50, 47, 147, 4, 35, 0, 112, 19, 74, 147, 77, 148, 28, 6, 145, 5, 147, 10, 96, 19, 147, 3, 36, + 0, 28, 163, 43, 1, 216, 0, 225, 6, 44, 0, 208, 33, 28, 48, 33, 0, 247, 255, 255, 38, 30, 4, 219, 1, 32, 5, 224, 0, 32, + 60, 247, 254, 249, 131, 75, 137, 104, 27, 104, 154, 75, 136, 50, 68, 104, 27, 0, 155, 24, 211, 104, 27, 44, 0, 218, + 9, 154, 3, 50, 1, 146, 3, 42, 2, 221, 0, 224, 232, 32, 10, 247, 254, 249, 111, 224, 219, 35, 0, 147, 3, 155, 4, 154, + 8, 59, 1, 6, 27, 22, 27, 147, 4, 42, 0, 208, 59, 104, 43, 74, 123, 147, 2, 120, 19, 43, 0, 208, 1, 75, 121, 224, 0, + 75, 121, 96, 43, 154, 7, 155, 18, 146, 1, 147, 0, 28, 58, 35, 0, 28, 48, 153, 5, 247, 255, 254, 66, 75, 110, 154, 2, + 28, 4, 96, 26, 28, 131, 43, 1, 216, 0, 224, 190, 40, 0, 218, 0, 224, 178, 155, 6, 34, 144, 25, 146, 28, 60, 147, 2, + 146, 9, 224, 18, 155, 9, 123, 113, 104, 24, 28, 34, 155, 2, 247, 255, 248, 163, 28, 131, 43, 1, 216, 0, 224, 159, 40, + 0, 219, 69, 66, 160, 209, 67, 154, 2, 26, 36, 24, 18, 146, 2, 44, 0, 209, 234, 224, 62, 104, 43, 74, 93, 147, 2, 120, + 19, 43, 0, 208, 1, 75, 91, 224, 0, 75, 91, 96, 43, 154, 7, 155, 18, 146, 1, 147, 0, 28, 58, 35, 128, 28, 48, 153, 5, + 247, 255, 254, 6, 75, 80, 154, 2, 28, 4, 96, 26, 40, 0, 218, 3, 72, 83, 28, 33, 247, 254, 254, 16, 28, 163, 43, 1, 217, + 125, 44, 0, 218, 22, 224, 113, 28, 51, 51, 144, 104, 24, 123, 49, 28, 58, 155, 6, 247, 255, 248, 104, 30, 4, 218, 3, + 72, 74, 28, 33, 247, 254, 253, 252, 28, 163, 43, 1, 217, 96, 44, 0, 219, 5, 66, 188, 208, 5, 224, 2, 47, 0, 209, 231, + 224, 1, 76, 68, 224, 86, 75, 59, 74, 61, 104, 27, 147, 2, 120, 19, 43, 0, 208, 1, 75, 59, 224, 0, 75, 59, 74, 54, 70, + 105, 96, 19, 28, 48, 49, 47, 170, 10, 247, 255, 254, 33, 30, 4, 218, 34, 72, 58, 28, 33, 247, 254, 253, 215, 28, 99, + 209, 3, 75, 46, 154, 2, 96, 26, 224, 65, 28, 52, 52, 144, 104, 32, 123, 49, 247, 255, 248, 167, 123, 51, 32, 15, 104, + 34, 64, 24, 9, 219, 1, 27, 106, 81, 24, 27, 32, 1, 64, 152, 67, 129, 98, 81, 70, 105, 28, 48, 49, 47, 170, 10, 247, + 255, 253, 253, 28, 4, 75, 31, 154, 2, 96, 26, 28, 163, 43, 1, 217, 34, 155, 10, 43, 0, 208, 7, 75, 37, 104, 27, 43, + 0, 208, 3, 70, 107, 34, 1, 51, 47, 112, 26, 44, 0, 219, 12, 75, 32, 36, 0, 104, 27, 43, 0, 208, 7, 70, 107, 51, 47, + 120, 27, 43, 0, 208, 2, 76, 28, 224, 0, 28, 4, 155, 4, 43, 0, 221, 2, 44, 0, 218, 0, 230, 247, 34, 0, 44, 0, 218, 0, + 34, 1, 75, 9, 96, 26, 154, 21, 42, 0, 208, 3, 70, 107, 51, 47, 120, 27, 112, 19, 155, 22, 43, 0, 208, 2, 155, 10, 154, + 22, 96, 19, 176, 13, 28, 32, 188, 240, 188, 2, 71, 8, 19, 112, 106, 52, 19, 112, 96, 56, 19, 112, 96, 60, 19, 112, 106, + 48, 19, 112, 1, 15, 0, 15, 66, 64, 0, 3, 13, 64, 19, 112, 99, 171, 19, 112, 99, 190, 255, 255, 216, 233, 19, 112, 99, + 214, 19, 112, 105, 252, 255, 255, 216, 234, 181, 240, 28, 3, 176, 143, 51, 160, 104, 30, 145, 7, 70, 109, 33, 128, 1, + 9, 53, 55, 35, 0, 172, 9, 24, 118, 28, 7, 112, 43, 28, 32, 33, 0, 34, 16, 240, 2, 251, 224, 46, 0, 208, 91, 35, 6, 147, + 1, 35, 1, 33, 0, 147, 2, 35, 10, 145, 4, 147, 5, 28, 56, 153, 7, 34, 0, 35, 0, 149, 3, 148, 0, 247, 255, 254, 130, 30, + 5, 218, 5, 72, 41, 28, 41, 247, 254, 253, 52, 28, 107, 208, 71, 45, 0, 219, 4, 70, 107, 51, 55, 120, 27, 43, 0, 208, + 64, 153, 7, 171, 9, 34, 3, 112, 26, 1, 74, 112, 90, 34, 18, 113, 26, 34, 0, 113, 90, 28, 48, 33, 0, 34, 18, 240, 2, + 251, 176, 75, 28, 53, 2, 209, 1, 74, 28, 224, 0, 74, 28, 96, 26, 171, 9, 147, 0, 35, 6, 147, 1, 35, 0, 147, 2, 147, + 3, 147, 4, 35, 10, 147, 5, 153, 7, 28, 56, 28, 50, 35, 18, 247, 255, 254, 77, 28, 5, 28, 41, 72, 19, 247, 254, 253, + 0, 45, 0, 219, 19, 120, 179, 33, 15, 70, 108, 64, 25, 52, 55, 72, 15, 112, 33, 247, 254, 252, 245, 120, 35, 59, 2, 6, + 27, 14, 27, 43, 2, 217, 3, 224, 3, 37, 4, 66, 109, 224, 0, 77, 9, 176, 15, 28, 40, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 99, 229, 19, 112, 96, 56, 0, 38, 37, 160, 0, 152, 150, 128, 19, 112, 100, 6, 19, 112, 100, 37, 255, 255, 216, 239, 181, 240, 176, 147, 70, 106, 35, 0, 50, 71, 112, 19, 74, 196, 28, 4, 32, 16, 112, 16, 72, 195, 28, 34, 50, 152, - 96, 16, 174, 12, 58, 8, 96, 17, 28, 8, 130, 115, 28, 49, 130, 179, 247, 254, 255, 244, 28, 5, 28, 41, 72, 189, 247, - 254, 252, 180, 45, 0, 218, 0, 225, 195, 75, 187, 104, 27, 43, 0, 208, 37, 75, 186, 121, 50, 121, 153, 66, 145, 209, + 96, 16, 174, 12, 58, 8, 96, 17, 28, 8, 130, 115, 28, 49, 130, 179, 247, 254, 255, 250, 28, 5, 28, 41, 72, 189, 247, + 254, 252, 186, 45, 0, 218, 0, 225, 195, 75, 187, 104, 27, 43, 0, 208, 37, 75, 186, 121, 50, 121, 153, 66, 145, 209, 23, 121, 217, 121, 114, 66, 145, 209, 19, 137, 25, 137, 50, 66, 145, 209, 15, 137, 89, 137, 114, 66, 145, 209, 11, 123, 25, 123, 178, 66, 145, 209, 7, 123, 89, 123, 242, 66, 145, 209, 3, 123, 154, 124, 51, 66, 154, 208, 8, 168, 12, 247, - 254, 251, 96, 37, 1, 72, 170, 247, 254, 252, 137, 66, 109, 225, 167, 170, 12, 121, 17, 75, 166, 38, 0, 113, 153, 121, + 254, 251, 102, 37, 1, 72, 170, 247, 254, 252, 143, 66, 109, 225, 167, 170, 12, 121, 17, 75, 166, 38, 0, 113, 153, 121, 81, 113, 217, 137, 17, 129, 25, 137, 81, 129, 89, 123, 145, 115, 25, 123, 209, 115, 89, 124, 18, 115, 154, 74, 160, 35, 128, 66, 91, 96, 19, 35, 0, 147, 8, 147, 5, 224, 222, 138, 111, 138, 171, 154, 8, 4, 63, 67, 31, 24, 191, 122, 58, - 72, 154, 0, 82, 153, 5, 247, 254, 252, 98, 34, 156, 35, 0, 25, 18, 147, 10, 147, 6, 146, 11, 224, 192, 122, 123, 122, + 72, 154, 0, 82, 153, 5, 247, 254, 252, 104, 34, 156, 35, 0, 25, 18, 147, 10, 147, 6, 146, 11, 224, 192, 122, 123, 122, 189, 6, 27, 4, 45, 67, 29, 122, 251, 2, 27, 67, 29, 123, 59, 67, 29, 155, 10, 24, 237, 121, 107, 43, 8, 209, 116, 121, - 235, 43, 80, 209, 113, 121, 43, 43, 1, 217, 110, 154, 11, 35, 1, 112, 19, 121, 169, 72, 136, 34, 1, 247, 254, 252, 62, + 235, 43, 80, 209, 113, 121, 43, 43, 1, 217, 110, 154, 11, 35, 1, 112, 19, 121, 169, 72, 136, 34, 1, 247, 254, 252, 68, 35, 0, 115, 102, 115, 38, 147, 9, 147, 7, 224, 49, 123, 170, 123, 235, 6, 18, 4, 27, 67, 19, 124, 42, 2, 18, 67, 19, 124, 106, 67, 19, 154, 9, 24, 155, 120, 218, 42, 2, 209, 28, 120, 154, 6, 17, 41, 0, 218, 11, 123, 33, 41, 0, 209, 8, 42, 0, 208, 6, 115, 34, 121, 25, 121, 91, 2, 9, 67, 25, 72, 118, 224, 10, 123, 97, 41, 0, 209, 9, 42, 0, 208, 7, 115, - 98, 121, 25, 121, 91, 2, 9, 72, 113, 67, 25, 247, 254, 252, 12, 155, 7, 154, 9, 51, 1, 50, 7, 147, 7, 146, 9, 121, 43, - 154, 7, 66, 154, 211, 201, 123, 33, 41, 0, 208, 94, 123, 98, 42, 0, 208, 91, 72, 104, 247, 254, 251, 249, 75, 96, 123, + 98, 121, 25, 121, 91, 2, 9, 72, 113, 67, 25, 247, 254, 252, 18, 155, 7, 154, 9, 51, 1, 50, 7, 147, 7, 146, 9, 121, 43, + 154, 7, 66, 154, 211, 201, 123, 33, 41, 0, 208, 94, 123, 98, 42, 0, 208, 91, 72, 104, 247, 254, 251, 255, 75, 96, 123, 34, 168, 12, 116, 26, 123, 98, 116, 90, 121, 122, 70, 111, 112, 34, 120, 170, 55, 71, 96, 98, 115, 218, 120, 235, 28, - 37, 96, 163, 247, 254, 250, 186, 78, 89, 75, 94, 72, 95, 96, 51, 120, 33, 104, 162, 53, 144, 247, 254, 251, 222, 104, - 40, 28, 57, 247, 254, 254, 223, 40, 0, 218, 91, 224, 85, 123, 170, 123, 235, 6, 18, 4, 27, 67, 19, 124, 42, 124, 104, - 2, 18, 67, 19, 67, 24, 208, 1, 240, 1, 250, 156, 122, 106, 122, 171, 6, 18, 4, 27, 67, 19, 122, 234, 123, 40, 2, 18, - 67, 19, 115, 174, 115, 238, 116, 46, 116, 110, 67, 24, 208, 1, 240, 1, 250, 139, 121, 107, 114, 110, 114, 174, 114, + 37, 96, 163, 247, 254, 250, 192, 78, 89, 75, 94, 72, 95, 96, 51, 120, 33, 104, 162, 53, 144, 247, 254, 251, 228, 104, + 40, 28, 57, 247, 254, 254, 229, 40, 0, 218, 91, 224, 85, 123, 170, 123, 235, 6, 18, 4, 27, 67, 19, 124, 42, 124, 104, + 2, 18, 67, 19, 67, 24, 208, 1, 240, 1, 250, 126, 122, 106, 122, 171, 6, 18, 4, 27, 67, 19, 122, 234, 123, 40, 2, 18, + 67, 19, 115, 174, 115, 238, 116, 46, 116, 110, 67, 24, 208, 1, 240, 1, 250, 109, 121, 107, 114, 110, 114, 174, 114, 238, 115, 46, 43, 9, 209, 4, 74, 70, 75, 62, 168, 12, 96, 26, 224, 39, 43, 8, 209, 10, 121, 235, 43, 80, 209, 7, 121, 43, 43, 1, 217, 4, 121, 171, 74, 64, 26, 211, 74, 54, 96, 19, 155, 6, 154, 10, 51, 1, 50, 18, 147, 6, 146, 10, 121, 59, 154, 6, 66, 154, 210, 0, 231, 57, 155, 5, 154, 8, 51, 1, 50, 13, 147, 5, 146, 8, 173, 12, 124, 107, 154, 5, 66, - 154, 210, 0, 231, 26, 72, 52, 247, 254, 251, 134, 28, 40, 247, 254, 250, 86, 77, 48, 224, 147, 72, 49, 247, 254, 251, - 126, 77, 48, 224, 142, 120, 57, 72, 48, 120, 34, 247, 254, 251, 119, 75, 47, 104, 40, 96, 51, 120, 33, 247, 254, 254, - 104, 40, 0, 218, 2, 72, 44, 247, 254, 251, 108, 74, 43, 75, 27, 121, 225, 96, 26, 28, 35, 51, 144, 104, 24, 122, 226, - 247, 254, 254, 75, 40, 0, 218, 2, 72, 38, 247, 254, 251, 93, 72, 38, 70, 109, 247, 254, 251, 89, 53, 70, 35, 0, 112, - 43, 28, 35, 51, 144, 104, 24, 136, 227, 33, 161, 147, 0, 35, 1, 147, 1, 34, 254, 35, 0, 149, 2, 247, 254, 253, 195, - 40, 0, 218, 58, 72, 28, 247, 254, 251, 68, 35, 8, 115, 163, 224, 60, 70, 192, 19, 112, 96, 64, 44, 13, 224, 1, 19, 112, + 154, 210, 0, 231, 26, 72, 52, 247, 254, 251, 140, 28, 40, 247, 254, 250, 92, 77, 48, 224, 147, 72, 49, 247, 254, 251, + 132, 77, 48, 224, 142, 120, 57, 72, 48, 120, 34, 247, 254, 251, 125, 75, 47, 104, 40, 96, 51, 120, 33, 247, 254, 254, + 110, 40, 0, 218, 2, 72, 44, 247, 254, 251, 114, 74, 43, 75, 27, 121, 225, 96, 26, 28, 35, 51, 144, 104, 24, 122, 226, + 247, 254, 254, 81, 40, 0, 218, 2, 72, 38, 247, 254, 251, 99, 72, 38, 70, 109, 247, 254, 251, 95, 53, 70, 35, 0, 112, + 43, 28, 35, 51, 144, 104, 24, 136, 227, 33, 161, 147, 0, 35, 1, 147, 1, 34, 254, 35, 0, 149, 2, 247, 254, 253, 201, + 40, 0, 218, 58, 72, 28, 247, 254, 251, 74, 35, 8, 115, 163, 224, 60, 70, 192, 19, 112, 96, 64, 44, 13, 224, 1, 19, 112, 100, 71, 19, 112, 106, 24, 19, 112, 106, 4, 19, 112, 100, 113, 19, 112, 105, 224, 19, 112, 100, 151, 19, 112, 100, 190, 19, 112, 100, 245, 19, 112, 101, 3, 19, 112, 101, 18, 255, 255, 251, 79, 19, 112, 101, 87, 255, 255, 177, 224, 255, 255, 216, 240, 19, 112, 101, 38, 19, 112, 101, 133, 255, 255, 216, 231, 19, 112, 101, 163, 255, 255, 251, 78, 19, 112, 101, 196, 255, 255, 251, 77, 19, 112, 101, 226, 19, 112, 102, 17, 19, 112, 102, 76, 120, 41, 72, 24, 49, 1, 6, 9, 14, - 9, 115, 161, 247, 254, 251, 4, 28, 37, 53, 160, 104, 43, 43, 0, 209, 7, 32, 129, 1, 64, 240, 1, 249, 175, 35, 31, 48, + 9, 115, 161, 247, 254, 251, 10, 28, 37, 53, 160, 104, 43, 43, 0, 209, 7, 32, 129, 1, 64, 240, 1, 249, 145, 35, 31, 48, 31, 67, 152, 96, 40, 52, 160, 104, 35, 37, 0, 43, 0, 209, 4, 74, 12, 75, 13, 37, 4, 96, 26, 66, 109, 74, 12, 75, 12, - 96, 26, 45, 0, 208, 5, 75, 8, 72, 11, 104, 25, 247, 254, 250, 227, 224, 2, 72, 9, 247, 254, 250, 223, 176, 19, 28, 40, + 96, 26, 45, 0, 208, 5, 75, 8, 72, 11, 104, 25, 247, 254, 250, 233, 224, 2, 72, 9, 247, 254, 250, 229, 176, 19, 28, 40, 188, 240, 188, 2, 71, 8, 19, 112, 102, 115, 255, 255, 251, 75, 19, 112, 105, 224, 0, 15, 66, 64, 19, 112, 96, 56, 19, 112, 102, 138, 19, 112, 102, 172, 181, 8, 33, 0, 247, 255, 251, 100, 188, 8, 188, 2, 71, 8, 0, 0, 181, 240, 176, 139, 171, 8, 34, 18, 112, 26, 1, 74, 112, 90, 34, 0, 112, 154, 112, 218, 113, 90, 28, 15, 28, 2, 33, 36, 50, 160, 113, 25, - 104, 20, 34, 128, 1, 18, 24, 164, 144, 7, 44, 0, 208, 42, 38, 0, 33, 0, 34, 36, 28, 32, 240, 2, 249, 91, 171, 8, 34, + 104, 20, 34, 128, 1, 18, 24, 164, 144, 7, 44, 0, 208, 42, 38, 0, 33, 0, 34, 36, 28, 32, 240, 2, 249, 65, 171, 8, 34, 6, 147, 0, 35, 10, 37, 0, 146, 1, 147, 5, 152, 7, 28, 57, 28, 34, 35, 36, 149, 2, 149, 3, 149, 4, 247, 255, 251, 229, 40, 0, 219, 7, 120, 35, 34, 31, 64, 19, 43, 5, 208, 6, 43, 7, 209, 8, 224, 3, 54, 1, 46, 2, 208, 9, 231, 220, 75, 6, 34, 1, 96, 26, 224, 4, 75, 4, 96, 29, 224, 1, 32, 4, 66, 64, 176, 11, 188, 240, 188, 2, 71, 8, 19, 112, 105, 236, 181, 112, 176, 136, 28, 22, 28, 29, 34, 37, 171, 7, 112, 26, 1, 74, 112, 90, 28, 2, 50, 160, 104, 20, 34, 128, 1, 18, 24, 164, 44, 0, 208, 42, 147, 0, 35, 2, 147, 1, 35, 0, 147, 2, 147, 3, 147, 4, 35, 10, 147, 5, 28, 34, 35, 8, 247, 255, - 251, 170, 40, 0, 219, 29, 168, 6, 28, 33, 34, 4, 240, 2, 248, 199, 45, 0, 208, 1, 155, 6, 96, 43, 29, 33, 168, 6, 34, - 4, 240, 2, 248, 190, 46, 0, 208, 1, 155, 6, 96, 51, 35, 128, 154, 6, 1, 27, 32, 0, 66, 154, 209, 5, 75, 4, 34, 1, 96, + 251, 170, 40, 0, 219, 29, 168, 6, 28, 33, 34, 4, 240, 2, 248, 173, 45, 0, 208, 1, 155, 6, 96, 43, 29, 33, 168, 6, 34, + 4, 240, 2, 248, 164, 46, 0, 208, 1, 155, 6, 96, 51, 35, 128, 154, 6, 1, 27, 32, 0, 66, 154, 209, 5, 75, 4, 34, 1, 96, 26, 224, 1, 32, 4, 66, 64, 176, 8, 188, 112, 188, 2, 71, 8, 19, 112, 105, 236, 181, 240, 176, 131, 123, 131, 28, 15, - 28, 5, 66, 187, 217, 72, 78, 40, 73, 40, 72, 41, 96, 49, 33, 0, 247, 254, 250, 40, 75, 39, 28, 40, 96, 51, 28, 57, 247, + 28, 5, 66, 187, 217, 72, 78, 40, 73, 40, 72, 41, 96, 49, 33, 0, 247, 254, 250, 46, 75, 39, 28, 40, 96, 51, 28, 57, 247, 255, 252, 200, 30, 4, 219, 53, 74, 33, 28, 57, 96, 50, 28, 40, 247, 255, 255, 86, 28, 4, 28, 33, 72, 32, 247, 254, 250, - 21, 44, 0, 219, 40, 28, 43, 51, 160, 104, 26, 35, 128, 1, 27, 92, 211, 33, 31, 64, 25, 72, 27, 247, 254, 250, 8, 28, + 27, 44, 0, 219, 40, 28, 43, 51, 160, 104, 26, 35, 128, 1, 27, 92, 211, 33, 31, 64, 25, 72, 27, 247, 254, 250, 14, 28, 59, 29, 62, 51, 20, 0, 182, 0, 155, 25, 170, 147, 1, 28, 57, 24, 235, 28, 40, 247, 255, 255, 130, 153, 1, 28, 4, 89, - 75, 89, 114, 72, 18, 28, 33, 247, 254, 249, 244, 89, 114, 75, 17, 66, 154, 217, 3, 154, 1, 89, 83, 43, 9, 216, 1, 36, + 75, 89, 114, 72, 18, 28, 33, 247, 254, 249, 250, 89, 114, 75, 17, 66, 154, 217, 3, 154, 1, 89, 83, 43, 9, 216, 1, 36, 33, 66, 100, 74, 6, 75, 5, 96, 26, 224, 1, 36, 3, 66, 100, 176, 3, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 56, 0, 15, 66, 64, 19, 112, 102, 205, 1, 49, 45, 0, 19, 112, 102, 232, 19, 112, 102, 252, 19, 112, 103, 17, 0, 0, 1, 255, 181, 240, 176, 141, 175, 9, 37, 40, 112, 61, 1, 77, 112, 125, 14, 21, 112, 189, 70, 110, 12, 21, 36, 0, 112, @@ -521,205 +520,203 @@ unsigned char ehcmodule_5[25856] __attribute__((aligned (32)))={ 155, 7, 151, 0, 70, 98, 67, 90, 70, 148, 34, 1, 146, 2, 34, 6, 146, 5, 39, 10, 154, 18, 70, 99, 151, 1, 150, 3, 148, 4, 247, 255, 250, 158, 96, 44, 40, 0, 221, 7, 120, 51, 43, 0, 209, 3, 224, 3, 32, 3, 66, 64, 224, 0, 72, 3, 176, 13, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 105, 252, 255, 255, 216, 234, 181, 240, 176, 135, 28, 28, 147, 2, 28, 11, - 51, 4, 0, 155, 145, 3, 88, 25, 28, 6, 28, 11, 67, 99, 32, 128, 2, 64, 28, 23, 66, 131, 217, 2, 240, 2, 248, 179, 144, + 51, 4, 0, 155, 145, 3, 88, 25, 28, 6, 28, 11, 67, 99, 32, 128, 2, 64, 28, 23, 66, 131, 217, 2, 240, 2, 248, 153, 144, 2, 155, 3, 32, 1, 51, 4, 0, 155, 66, 64, 147, 5, 224, 28, 154, 2, 28, 37, 66, 148, 217, 0, 28, 21, 4, 43, 12, 27, 147, 4, 155, 12, 28, 48, 147, 0, 153, 3, 28, 58, 155, 4, 247, 255, 255, 67, 40, 0, 219, 12, 154, 4, 25, 127, 26, 164, 154, 5, 4, 36, 89, 147, 12, 36, 67, 93, 155, 12, 25, 91, 147, 12, 44, 0, 209, 224, 176, 7, 188, 240, 188, 2, 71, 8, 181, 240, 176, 135, 28, 28, 147, 2, 28, 11, 51, 4, 0, 155, 145, 3, 88, 25, 28, 6, 28, 11, 67, 99, 32, 128, 2, 64, 28, 23, - 66, 131, 217, 2, 240, 2, 248, 117, 144, 2, 155, 3, 32, 1, 51, 4, 0, 155, 66, 64, 147, 5, 224, 28, 154, 2, 28, 37, 66, + 66, 131, 217, 2, 240, 2, 248, 91, 144, 2, 155, 3, 32, 1, 51, 4, 0, 155, 66, 64, 147, 5, 224, 28, 154, 2, 28, 37, 66, 148, 217, 0, 28, 21, 4, 43, 12, 27, 147, 4, 155, 12, 28, 48, 147, 0, 153, 3, 28, 58, 155, 4, 247, 255, 255, 73, 40, 0, 219, 12, 154, 4, 25, 127, 26, 164, 154, 5, 4, 36, 89, 147, 12, 36, 67, 93, 155, 12, 25, 91, 147, 12, 44, 0, 209, - 224, 176, 7, 188, 240, 188, 2, 71, 8, 181, 240, 176, 139, 74, 137, 35, 0, 128, 19, 74, 137, 36, 0, 128, 19, 75, 136, - 74, 137, 112, 28, 75, 137, 144, 8, 112, 28, 35, 120, 66, 91, 96, 19, 240, 1, 248, 174, 79, 134, 153, 8, 28, 56, 247, - 255, 251, 216, 40, 0, 218, 0, 224, 243, 34, 1, 75, 130, 115, 186, 104, 25, 41, 0, 208, 74, 121, 91, 43, 0, 209, 3, 75, - 127, 120, 27, 66, 26, 208, 29, 76, 123, 35, 0, 115, 163, 77, 125, 75, 125, 38, 1, 96, 43, 28, 35, 51, 144, 104, 24, - 136, 227, 33, 161, 147, 0, 28, 35, 51, 14, 147, 2, 34, 254, 35, 0, 150, 1, 247, 254, 250, 253, 75, 118, 96, 43, 40, - 0, 218, 1, 115, 166, 224, 190, 123, 163, 51, 1, 115, 163, 75, 109, 72, 114, 121, 29, 28, 41, 247, 254, 248, 116, 78, - 105, 28, 41, 28, 48, 247, 255, 254, 57, 28, 4, 28, 33, 72, 109, 247, 254, 248, 106, 28, 163, 43, 1, 216, 9, 28, 48, - 247, 255, 253, 152, 74, 95, 35, 121, 66, 91, 96, 19, 34, 0, 75, 92, 224, 61, 44, 0, 218, 0, 224, 155, 75, 89, 34, 1, - 112, 26, 75, 90, 112, 29, 224, 139, 38, 1, 113, 92, 37, 0, 28, 60, 150, 6, 55, 144, 28, 40, 30, 67, 65, 152, 144, 9, - 40, 0, 209, 5, 75, 85, 120, 27, 7, 217, 213, 1, 46, 0, 209, 41, 72, 88, 28, 41, 247, 254, 248, 62, 6, 43, 14, 27, 28, - 25, 72, 77, 147, 5, 247, 255, 254, 1, 144, 7, 153, 7, 72, 81, 247, 254, 248, 50, 155, 7, 51, 2, 43, 1, 216, 16, 154, - 9, 42, 0, 208, 13, 74, 74, 75, 71, 72, 68, 96, 26, 247, 255, 253, 89, 74, 64, 35, 121, 66, 91, 96, 19, 75, 61, 34, 0, - 112, 26, 224, 107, 155, 7, 43, 0, 218, 59, 46, 0, 208, 52, 78, 62, 75, 63, 73, 67, 96, 51, 136, 227, 32, 0, 96, 8, 115, - 160, 104, 56, 147, 0, 28, 35, 34, 1, 51, 14, 146, 1, 147, 2, 33, 161, 35, 0, 34, 254, 247, 254, 250, 126, 75, 54, 144, - 5, 96, 51, 40, 0, 218, 5, 73, 56, 35, 1, 32, 0, 115, 163, 96, 8, 224, 5, 123, 163, 34, 1, 51, 1, 115, 163, 75, 43, 113, - 90, 75, 41, 72, 50, 123, 155, 153, 5, 28, 26, 147, 6, 247, 253, 255, 235, 75, 39, 38, 0, 120, 27, 7, 216, 213, 3, 153, - 5, 15, 206, 224, 0, 53, 1, 154, 6, 66, 149, 219, 144, 224, 31, 33, 23, 70, 104, 74, 30, 92, 8, 35, 1, 96, 19, 113, 16, - 154, 8, 152, 8, 137, 17, 74, 20, 128, 17, 137, 65, 74, 20, 128, 17, 74, 20, 70, 105, 112, 19, 34, 23, 75, 20, 92, 81, - 112, 25, 75, 22, 74, 24, 96, 26, 75, 16, 34, 0, 96, 26, 240, 0, 255, 203, 32, 0, 224, 14, 74, 12, 35, 122, 66, 91, 96, - 19, 72, 12, 247, 255, 252, 235, 75, 8, 34, 0, 112, 26, 72, 20, 247, 253, 255, 177, 32, 3, 66, 64, 176, 11, 188, 240, - 188, 2, 71, 8, 70, 192, 19, 112, 105, 248, 19, 112, 106, 0, 19, 112, 106, 28, 19, 112, 105, 224, 19, 112, 96, 64, 19, - 114, 196, 96, 19, 112, 106, 4, 19, 112, 1, 14, 19, 112, 96, 56, 0, 152, 150, 128, 0, 15, 66, 64, 19, 112, 103, 72, 19, - 112, 103, 102, 19, 112, 103, 77, 19, 112, 106, 52, 19, 112, 103, 131, 19, 112, 103, 172, 181, 8, 74, 10, 104, 19, 43, - 0, 208, 13, 75, 9, 33, 16, 112, 25, 35, 0, 73, 8, 96, 19, 74, 8, 112, 11, 96, 19, 72, 7, 33, 0, 34, 20, 240, 1, 254, - 41, 188, 8, 188, 1, 71, 0, 19, 112, 106, 24, 19, 112, 96, 64, 19, 112, 106, 28, 19, 112, 106, 52, 19, 112, 106, 4, 181, - 240, 176, 135, 75, 119, 36, 0, 104, 29, 45, 0, 208, 0, 224, 227, 75, 117, 32, 0, 104, 27, 104, 155, 96, 157, 247, 253, - 248, 171, 74, 115, 35, 1, 66, 91, 96, 19, 74, 114, 35, 1, 96, 19, 74, 113, 72, 114, 112, 21, 74, 114, 112, 19, 247, - 253, 255, 75, 75, 113, 120, 27, 43, 1, 208, 4, 43, 2, 208, 6, 34, 0, 146, 4, 224, 6, 35, 1, 147, 4, 36, 1, 224, 2, 34, - 1, 146, 4, 36, 0, 0, 167, 224, 174, 75, 98, 74, 104, 104, 29, 0, 163, 25, 27, 0, 219, 24, 235, 103, 92, 111, 27, 96, - 20, 43, 0, 209, 52, 104, 171, 34, 1, 51, 68, 25, 219, 104, 27, 66, 26, 209, 2, 28, 32, 247, 253, 253, 47, 78, 87, 34, - 1, 104, 51, 104, 155, 51, 68, 25, 219, 104, 27, 66, 26, 208, 33, 28, 32, 247, 254, 253, 227, 34, 140, 0, 210, 24, 131, - 43, 1, 216, 2, 75, 79, 96, 24, 224, 130, 28, 32, 247, 254, 252, 116, 144, 3, 32, 20, 247, 253, 249, 250, 104, 51, 104, - 155, 51, 68, 25, 219, 104, 26, 155, 3, 43, 0, 219, 4, 75, 77, 64, 26, 75, 77, 66, 154, 208, 2, 28, 32, 247, 254, 253, - 196, 0, 160, 25, 0, 0, 192, 24, 43, 111, 27, 43, 0, 208, 100, 75, 64, 34, 1, 48, 88, 96, 26, 24, 40, 247, 255, 254, - 42, 144, 3, 40, 0, 209, 87, 75, 56, 34, 1, 96, 26, 79, 65, 74, 57, 96, 16, 28, 56, 247, 253, 248, 48, 77, 52, 34, 4, - 104, 43, 72, 62, 104, 155, 96, 154, 247, 253, 254, 214, 32, 100, 247, 253, 249, 197, 32, 128, 1, 0, 240, 0, 253, 131, - 78, 57, 75, 57, 34, 1, 96, 51, 75, 57, 144, 4, 112, 26, 104, 43, 154, 3, 104, 155, 32, 0, 96, 154, 247, 253, 248, 19, - 72, 53, 247, 253, 254, 190, 75, 52, 34, 0, 120, 25, 155, 4, 72, 51, 147, 0, 35, 1, 247, 255, 253, 121, 144, 5, 28, 56, - 247, 253, 248, 3, 104, 43, 34, 4, 104, 155, 96, 154, 70, 107, 34, 15, 92, 210, 75, 40, 152, 4, 112, 26, 75, 43, 96, - 51, 240, 0, 253, 117, 155, 5, 43, 0, 218, 7, 72, 40, 247, 253, 254, 157, 28, 32, 247, 253, 252, 214, 76, 38, 224, 27, - 72, 38, 247, 253, 254, 149, 75, 38, 104, 27, 43, 0, 208, 20, 52, 2, 224, 18, 28, 32, 247, 253, 252, 200, 52, 1, 55, - 4, 154, 4, 66, 148, 220, 0, 231, 76, 72, 18, 247, 252, 255, 213, 74, 7, 104, 19, 34, 4, 104, 155, 96, 154, 75, 5, 104, - 28, 176, 7, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 106, 24, 19, 112, 96, 60, 19, 112, 105, 224, 19, 112, - 106, 52, 19, 112, 106, 28, 19, 112, 103, 201, 19, 112, 1, 15, 19, 112, 1, 12, 19, 112, 106, 48, 0, 0, 57, 5, 0, 0, 16, - 5, 19, 112, 17, 29, 19, 112, 104, 92, 19, 112, 96, 56, 0, 152, 150, 128, 19, 112, 105, 216, 19, 112, 104, 141, 19, 112, - 96, 64, 19, 114, 196, 96, 0, 15, 66, 64, 19, 112, 104, 114, 255, 255, 251, 162, 19, 112, 104, 138, 19, 112, 105, 236, - 181, 0, 30, 3, 208, 1, 34, 0, 96, 26, 74, 12, 32, 0, 120, 18, 42, 1, 209, 16, 74, 10, 120, 18, 42, 16, 208, 12, 43, - 0, 208, 4, 50, 4, 73, 8, 0, 146, 88, 82, 96, 26, 75, 5, 120, 26, 75, 5, 50, 20, 0, 146, 88, 208, 188, 2, 71, 8, 70, - 192, 19, 112, 106, 28, 19, 112, 96, 64, 19, 114, 196, 96, 181, 240, 176, 139, 75, 79, 104, 27, 43, 0, 209, 0, 224, 141, - 240, 0, 254, 26, 75, 77, 34, 16, 112, 26, 75, 76, 120, 26, 75, 76, 42, 0, 208, 1, 74, 76, 224, 0, 74, 76, 78, 76, 96, - 26, 172, 4, 35, 0, 28, 53, 130, 99, 130, 163, 53, 144, 28, 33, 104, 40, 247, 254, 249, 61, 75, 71, 121, 34, 121, 153, - 66, 145, 209, 23, 121, 217, 121, 98, 66, 145, 209, 19, 137, 25, 137, 34, 66, 145, 209, 15, 137, 89, 137, 98, 66, 145, - 209, 11, 123, 25, 123, 162, 66, 145, 209, 7, 123, 89, 123, 226, 66, 145, 209, 3, 123, 154, 124, 35, 66, 154, 208, 6, - 168, 4, 247, 253, 252, 181, 72, 56, 247, 253, 253, 223, 224, 80, 28, 32, 247, 253, 252, 174, 74, 54, 75, 47, 104, 40, - 96, 26, 120, 49, 247, 254, 248, 203, 40, 0, 219, 70, 104, 178, 42, 0, 208, 7, 6, 18, 104, 40, 121, 241, 14, 18, 247, - 254, 248, 178, 40, 0, 219, 61, 76, 41, 35, 0, 115, 163, 77, 36, 75, 42, 39, 1, 96, 43, 28, 35, 51, 144, 104, 24, 136, - 227, 33, 161, 147, 0, 28, 35, 51, 14, 147, 2, 34, 254, 35, 0, 151, 1, 247, 254, 248, 44, 75, 28, 96, 43, 40, 0, 218, - 6, 115, 167, 28, 32, 33, 0, 247, 254, 254, 69, 72, 30, 224, 34, 123, 163, 78, 25, 51, 1, 115, 163, 75, 28, 28, 32, 96, - 43, 121, 49, 247, 255, 248, 67, 75, 18, 96, 43, 40, 0, 219, 17, 121, 49, 28, 32, 247, 255, 250, 209, 40, 0, 219, 13, - 121, 50, 75, 9, 112, 26, 75, 19, 112, 31, 224, 8, 72, 19, 224, 6, 72, 19, 224, 4, 72, 19, 224, 2, 72, 19, 224, 0, 72, - 19, 176, 11, 188, 240, 188, 2, 71, 8, 19, 112, 106, 24, 19, 112, 96, 64, 19, 112, 1, 15, 19, 112, 96, 56, 0, 15, 66, - 64, 0, 3, 13, 64, 19, 114, 196, 96, 19, 112, 106, 4, 19, 112, 100, 113, 0, 152, 150, 128, 255, 255, 252, 20, 1, 49, - 45, 0, 19, 112, 106, 28, 255, 255, 252, 15, 255, 255, 252, 23, 255, 255, 252, 22, 255, 255, 252, 19, 255, 255, 252, - 18, 181, 240, 176, 131, 75, 69, 76, 70, 120, 26, 38, 1, 30, 83, 65, 154, 75, 68, 96, 34, 104, 27, 43, 0, 208, 123, 75, - 67, 0, 146, 104, 27, 104, 155, 28, 25, 49, 68, 24, 138, 104, 18, 66, 22, 209, 19, 36, 3, 240, 0, 253, 67, 32, 100, 247, - 253, 248, 49, 60, 1, 240, 0, 253, 71, 32, 100, 247, 253, 248, 43, 44, 0, 209, 242, 32, 250, 0, 64, 247, 253, 248, 37, - 38, 1, 224, 93, 34, 0, 32, 0, 96, 154, 247, 252, 254, 126, 104, 32, 247, 254, 250, 145, 30, 7, 218, 3, 104, 32, 247, - 254, 250, 140, 28, 7, 32, 60, 247, 253, 248, 18, 77, 43, 72, 44, 104, 43, 28, 57, 104, 154, 75, 39, 50, 68, 104, 27, - 38, 1, 0, 155, 24, 211, 104, 27, 28, 26, 147, 1, 247, 253, 253, 16, 76, 34, 35, 1, 96, 35, 47, 0, 219, 52, 155, 1, 74, - 34, 64, 26, 75, 34, 66, 154, 209, 46, 74, 34, 35, 0, 112, 19, 34, 0, 96, 34, 247, 255, 254, 220, 74, 31, 75, 32, 96, - 26, 40, 0, 219, 14, 240, 0, 253, 2, 74, 27, 35, 0, 112, 22, 96, 35, 72, 28, 247, 252, 254, 66, 104, 43, 34, 4, 104, - 155, 38, 0, 96, 154, 224, 19, 28, 57, 72, 24, 96, 38, 247, 253, 252, 229, 75, 18, 34, 0, 112, 26, 240, 0, 252, 235, - 32, 100, 247, 252, 255, 207, 72, 17, 247, 252, 254, 44, 104, 43, 34, 4, 104, 155, 96, 154, 32, 100, 247, 252, 255, 197, - 176, 3, 28, 48, 188, 240, 188, 2, 71, 8, 19, 112, 1, 12, 19, 112, 106, 48, 19, 112, 106, 52, 19, 112, 96, 60, 19, 112, - 104, 159, 0, 0, 49, 5, 0, 0, 16, 5, 19, 112, 106, 28, 0, 15, 66, 64, 19, 112, 96, 56, 19, 112, 17, 29, 19, 112, 104, - 187, 181, 240, 176, 131, 75, 30, 34, 0, 104, 27, 146, 1, 43, 0, 208, 50, 247, 255, 255, 80, 75, 27, 104, 27, 43, 0, - 209, 44, 75, 26, 120, 27, 43, 0, 208, 40, 77, 25, 79, 26, 76, 26, 78, 27, 96, 47, 121, 49, 28, 32, 247, 255, 249, 215, - 40, 0, 219, 29, 96, 47, 121, 49, 28, 32, 28, 11, 29, 10, 51, 20, 0, 146, 0, 155, 25, 18, 25, 27, 247, 255, 250, 19, - 40, 0, 219, 15, 75, 17, 104, 26, 42, 0, 208, 7, 121, 49, 35, 128, 49, 4, 0, 137, 89, 9, 1, 27, 66, 153, 209, 3, 28, - 19, 30, 90, 65, 147, 147, 1, 152, 1, 176, 3, 188, 240, 188, 2, 71, 8, 19, 112, 106, 24, 19, 112, 106, 52, 19, 112, 106, - 28, 19, 112, 96, 56, 0, 15, 66, 64, 19, 114, 196, 96, 19, 112, 106, 4, 19, 112, 105, 236, 181, 240, 176, 135, 75, 66, - 144, 3, 104, 27, 146, 4, 43, 0, 209, 7, 75, 64, 104, 27, 43, 0, 208, 3, 0, 66, 75, 63, 8, 82, 96, 26, 75, 62, 104, 27, - 43, 0, 208, 6, 75, 61, 104, 26, 42, 1, 221, 2, 34, 1, 96, 26, 224, 101, 4, 9, 12, 9, 79, 56, 38, 4, 36, 0, 145, 5, 247, - 255, 254, 231, 30, 67, 65, 152, 104, 59, 66, 64, 64, 4, 43, 0, 208, 3, 74, 50, 104, 19, 43, 3, 208, 79, 44, 0, 219, - 3, 75, 48, 120, 27, 43, 1, 208, 4, 75, 45, 34, 1, 36, 1, 96, 26, 66, 100, 75, 43, 104, 27, 43, 0, 209, 61, 75, 38, 104, - 26, 75, 42, 42, 0, 208, 1, 74, 41, 224, 0, 74, 41, 96, 26, 28, 99, 208, 24, 32, 0, 247, 252, 253, 109, 77, 39, 34, 0, - 104, 43, 72, 38, 104, 155, 96, 154, 154, 4, 75, 37, 120, 25, 155, 5, 146, 0, 154, 3, 247, 255, 250, 209, 28, 4, 72, - 34, 247, 252, 253, 91, 104, 43, 34, 4, 104, 155, 96, 154, 74, 32, 75, 24, 96, 26, 44, 0, 218, 2, 75, 20, 34, 1, 96, - 26, 75, 18, 104, 27, 43, 0, 208, 3, 75, 17, 104, 27, 43, 0, 209, 15, 75, 15, 104, 27, 43, 0, 209, 5, 75, 14, 120, 27, - 43, 1, 209, 1, 44, 0, 218, 7, 62, 1, 46, 0, 209, 162, 67, 228, 15, 224, 224, 2, 32, 0, 224, 0, 32, 1, 176, 7, 188, 240, - 188, 2, 71, 8, 19, 112, 105, 208, 19, 112, 105, 236, 19, 112, 105, 160, 19, 112, 105, 164, 19, 112, 106, 52, 19, 112, - 106, 28, 19, 112, 96, 56, 0, 152, 150, 128, 0, 45, 198, 192, 19, 112, 96, 60, 19, 114, 196, 96, 19, 112, 96, 64, 19, - 112, 17, 29, 0, 15, 66, 64, 181, 240, 176, 133, 75, 39, 28, 7, 104, 27, 28, 22, 32, 0, 43, 0, 209, 67, 4, 9, 12, 9, - 36, 0, 145, 3, 247, 255, 254, 87, 40, 0, 208, 2, 44, 0, 219, 5, 224, 0, 36, 0, 74, 31, 120, 19, 43, 1, 208, 4, 75, 30, - 34, 1, 36, 1, 96, 26, 66, 100, 75, 27, 104, 27, 43, 0, 209, 234, 73, 26, 74, 27, 96, 17, 28, 98, 208, 22, 77, 26, 32, - 0, 104, 42, 104, 146, 96, 147, 247, 252, 252, 230, 75, 23, 28, 58, 120, 25, 72, 23, 155, 3, 150, 0, 247, 255, 250, 142, - 28, 4, 72, 21, 247, 252, 252, 218, 104, 43, 34, 4, 104, 155, 96, 154, 74, 18, 75, 13, 96, 26, 44, 0, 218, 2, 75, 9, - 34, 1, 96, 26, 75, 7, 104, 27, 43, 0, 209, 194, 44, 0, 219, 192, 32, 1, 176, 5, 188, 240, 188, 2, 71, 8, 70, 192, 19, - 112, 105, 236, 19, 112, 106, 28, 19, 112, 106, 52, 0, 45, 198, 192, 19, 112, 96, 56, 19, 112, 96, 60, 19, 112, 96, 64, - 19, 114, 196, 96, 19, 112, 17, 29, 0, 15, 66, 64, 181, 240, 176, 137, 74, 95, 104, 19, 43, 0, 209, 6, 75, 94, 104, 27, - 105, 153, 96, 17, 106, 26, 75, 93, 96, 26, 75, 92, 77, 90, 104, 28, 38, 0, 28, 55, 104, 43, 55, 8, 0, 191, 80, 252, - 28, 32, 33, 0, 34, 96, 240, 1, 249, 245, 104, 43, 33, 96, 88, 248, 240, 0, 249, 214, 52, 127, 33, 31, 54, 1, 67, 140, - 46, 8, 209, 234, 37, 8, 38, 31, 28, 32, 33, 0, 34, 96, 240, 1, 249, 227, 61, 1, 28, 32, 33, 96, 52, 127, 240, 0, 249, - 195, 67, 180, 45, 0, 209, 241, 75, 72, 34, 255, 96, 28, 75, 68, 39, 128, 104, 29, 35, 255, 2, 18, 4, 27, 76, 69, 38, - 0, 5, 255, 146, 2, 147, 3, 33, 0, 96, 37, 34, 96, 28, 40, 240, 1, 249, 198, 28, 40, 240, 0, 249, 152, 28, 50, 100, 104, - 104, 35, 30, 81, 65, 138, 5, 210, 96, 90, 104, 35, 34, 0, 96, 154, 104, 35, 33, 31, 97, 159, 53, 127, 67, 141, 104, - 34, 28, 40, 146, 5, 240, 0, 249, 132, 144, 6, 28, 40, 240, 0, 249, 128, 144, 1, 28, 40, 240, 0, 249, 124, 144, 7, 28, - 40, 240, 0, 249, 120, 35, 255, 2, 27, 153, 2, 147, 4, 34, 255, 155, 1, 4, 18, 64, 11, 146, 1, 153, 3, 154, 7, 2, 27, - 64, 10, 10, 18, 67, 19, 14, 0, 154, 6, 67, 3, 32, 224, 64, 16, 33, 2, 67, 8, 154, 5, 6, 0, 67, 3, 96, 19, 104, 34, 35, - 128, 4, 91, 97, 19, 104, 34, 33, 96, 97, 83, 204, 1, 54, 1, 240, 0, 249, 100, 46, 6, 209, 175, 76, 22, 77, 26, 104, - 32, 105, 110, 240, 0, 249, 75, 144, 2, 104, 32, 240, 0, 249, 71, 28, 7, 104, 32, 240, 0, 249, 67, 144, 3, 104, 32, 240, - 0, 249, 63, 155, 4, 153, 1, 64, 31, 155, 3, 2, 63, 64, 11, 10, 27, 67, 31, 154, 2, 14, 3, 28, 56, 67, 24, 35, 224, 64, - 19, 33, 2, 67, 11, 6, 27, 67, 24, 96, 48, 105, 104, 33, 96, 240, 0, 249, 57, 176, 9, 188, 240, 188, 1, 71, 0, 70, 192, - 19, 112, 106, 44, 19, 112, 96, 60, 19, 112, 105, 204, 19, 112, 105, 232, 19, 114, 194, 128, 181, 248, 75, 16, 39, 128, - 104, 28, 38, 0, 4, 127, 28, 32, 247, 252, 254, 41, 46, 3, 208, 15, 28, 37, 35, 31, 53, 127, 67, 157, 107, 104, 240, - 1, 248, 182, 96, 103, 96, 32, 33, 96, 28, 32, 240, 0, 249, 18, 54, 1, 28, 44, 231, 234, 28, 32, 33, 96, 240, 0, 249, - 11, 188, 248, 188, 1, 71, 0, 19, 112, 105, 232, 181, 240, 176, 131, 247, 255, 255, 12, 247, 255, 255, 214, 76, 65, 75, - 66, 104, 34, 104, 24, 77, 65, 97, 144, 104, 89, 78, 65, 97, 209, 104, 154, 79, 64, 96, 42, 104, 218, 105, 27, 96, 50, - 96, 59, 33, 96, 240, 0, 249, 1, 104, 35, 33, 0, 105, 154, 100, 211, 105, 154, 100, 145, 105, 155, 28, 24, 147, 1, 240, - 0, 248, 209, 155, 1, 104, 34, 100, 88, 104, 59, 105, 145, 108, 91, 34, 255, 2, 18, 64, 26, 2, 16, 34, 255, 4, 18, 64, - 26, 10, 18, 67, 2, 14, 24, 67, 2, 32, 224, 64, 3, 39, 2, 67, 59, 6, 24, 28, 19, 67, 3, 96, 11, 104, 35, 34, 128, 105, - 153, 4, 18, 96, 74, 105, 154, 33, 0, 96, 145, 105, 153, 34, 128, 5, 210, 97, 138, 105, 153, 34, 128, 4, 82, 97, 10, - 105, 153, 97, 74, 105, 152, 33, 96, 240, 0, 248, 179, 104, 35, 33, 96, 105, 216, 240, 0, 248, 194, 104, 35, 33, 0, 105, - 218, 100, 211, 105, 218, 100, 145, 105, 223, 28, 56, 240, 0, 248, 147, 33, 96, 100, 120, 104, 40, 240, 0, 248, 179, - 104, 47, 104, 35, 28, 56, 100, 251, 35, 0, 100, 187, 240, 0, 248, 134, 33, 96, 100, 120, 104, 40, 240, 0, 248, 146, - 104, 48, 33, 96, 240, 0, 248, 162, 104, 53, 104, 35, 33, 0, 100, 235, 100, 169, 28, 40, 240, 0, 248, 117, 33, 96, 100, - 104, 104, 48, 240, 0, 248, 129, 176, 3, 188, 240, 188, 1, 71, 0, 70, 192, 19, 112, 96, 60, 19, 114, 194, 128, 19, 112, - 105, 212, 19, 112, 106, 40, 19, 112, 106, 36, 181, 248, 76, 35, 75, 35, 96, 35, 240, 0, 248, 74, 40, 0, 219, 58, 240, - 0, 249, 117, 74, 32, 104, 131, 96, 32, 96, 26, 104, 32, 35, 1, 104, 130, 104, 17, 66, 11, 209, 252, 33, 252, 240, 0, - 248, 91, 38, 128, 39, 128, 76, 23, 37, 0, 4, 118, 1, 127, 104, 35, 33, 4, 108, 219, 81, 94, 104, 35, 108, 219, 89, 88, - 53, 4, 240, 0, 248, 75, 66, 189, 209, 243, 247, 255, 255, 65, 104, 35, 34, 2, 51, 84, 112, 26, 247, 252, 255, 241, 104, - 35, 32, 0, 104, 154, 105, 155, 108, 91, 97, 147, 104, 35, 34, 4, 104, 155, 96, 154, 104, 35, 74, 8, 104, 155, 96, 26, - 104, 35, 104, 155, 104, 27, 224, 1, 32, 1, 66, 64, 188, 248, 188, 2, 71, 8, 19, 112, 96, 60, 19, 114, 197, 4, 0, 1, - 0, 32, 0, 1, 0, 33, 181, 8, 33, 224, 72, 4, 2, 9, 240, 1, 249, 66, 75, 3, 96, 24, 23, 192, 188, 8, 188, 2, 71, 8, 19, - 112, 162, 96, 19, 112, 96, 68, 71, 112, 71, 112, 181, 16, 28, 4, 240, 1, 249, 62, 28, 32, 188, 16, 188, 2, 71, 8, 181, - 16, 28, 4, 240, 1, 249, 54, 28, 32, 188, 16, 188, 2, 71, 8, 181, 16, 28, 4, 240, 1, 249, 46, 28, 32, 188, 16, 188, 2, - 71, 8, 181, 8, 240, 1, 249, 71, 188, 8, 188, 1, 71, 0, 181, 8, 240, 1, 249, 65, 188, 8, 188, 1, 71, 0, 181, 8, 240, - 1, 249, 59, 188, 8, 188, 1, 71, 0, 181, 8, 75, 12, 28, 1, 34, 32, 104, 24, 240, 1, 249, 45, 40, 0, 209, 13, 72, 9, 240, - 1, 249, 4, 240, 0, 249, 63, 32, 200, 247, 252, 252, 45, 240, 0, 249, 68, 32, 200, 247, 252, 252, 40, 231, 244, 188, - 8, 188, 2, 71, 8, 19, 112, 96, 68, 19, 112, 104, 211, 181, 8, 75, 4, 28, 1, 104, 24, 240, 1, 248, 216, 188, 8, 188, - 1, 71, 0, 70, 192, 19, 112, 96, 68, 181, 248, 76, 13, 28, 15, 104, 33, 28, 30, 28, 24, 28, 21, 67, 81, 240, 1, 248, - 228, 28, 56, 28, 41, 28, 50, 247, 255, 252, 173, 35, 1, 40, 0, 208, 5, 104, 33, 28, 48, 67, 105, 240, 1, 248, 247, 35, - 0, 28, 24, 188, 248, 188, 2, 71, 8, 19, 114, 198, 0, 181, 16, 76, 11, 104, 32, 40, 0, 208, 3, 240, 0, 252, 39, 35, 0, - 96, 35, 76, 8, 104, 35, 43, 0, 209, 3, 72, 7, 247, 251, 252, 180, 96, 32, 74, 6, 35, 1, 66, 91, 96, 19, 188, 16, 188, - 1, 71, 0, 19, 112, 106, 64, 19, 112, 106, 56, 0, 0, 128, 32, 19, 112, 96, 24, 181, 56, 75, 14, 104, 24, 40, 0, 208, - 1, 247, 251, 252, 187, 76, 12, 75, 10, 104, 32, 37, 0, 96, 29, 40, 0, 208, 2, 240, 0, 251, 254, 96, 37, 75, 8, 104, - 24, 40, 0, 208, 1, 240, 0, 251, 91, 75, 5, 34, 0, 96, 26, 188, 56, 188, 1, 71, 0, 70, 192, 19, 112, 106, 56, 19, 112, - 106, 64, 19, 112, 106, 60, 181, 240, 176, 135, 75, 37, 28, 7, 104, 24, 145, 5, 40, 0, 208, 1, 247, 251, 252, 148, 75, - 33, 77, 34, 34, 0, 96, 26, 104, 43, 43, 0, 209, 23, 247, 255, 249, 69, 78, 31, 36, 0, 28, 48, 247, 255, 250, 98, 75, - 29, 96, 24, 40, 0, 208, 43, 154, 5, 104, 51, 33, 0, 144, 0, 146, 1, 72, 26, 34, 0, 148, 2, 240, 0, 249, 238, 96, 40, - 40, 0, 208, 30, 77, 23, 104, 44, 44, 0, 208, 11, 72, 22, 28, 57, 34, 6, 240, 0, 254, 210, 40, 0, 208, 19, 28, 32, 240, - 0, 251, 179, 35, 0, 96, 43, 75, 11, 28, 57, 104, 24, 240, 0, 251, 54, 75, 12, 28, 4, 96, 24, 40, 0, 208, 4, 72, 11, - 28, 57, 34, 6, 240, 0, 254, 234, 176, 7, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 106, 56, 19, 112, 106, 60, - 19, 114, 198, 0, 19, 114, 198, 4, 19, 112, 72, 65, 19, 112, 106, 64, 19, 112, 96, 72, 181, 8, 28, 3, 28, 10, 32, 0, - 28, 25, 35, 0, 240, 1, 248, 56, 188, 8, 188, 1, 71, 0, 181, 8, 32, 1, 33, 0, 34, 0, 35, 0, 240, 1, 248, 46, 188, 8, - 188, 2, 71, 8, 181, 8, 32, 17, 33, 0, 34, 0, 35, 0, 240, 1, 248, 36, 188, 8, 188, 2, 71, 8, 181, 8, 32, 18, 33, 0, 34, - 0, 35, 0, 240, 1, 248, 26, 188, 8, 188, 2, 71, 8, 181, 56, 28, 5, 28, 12, 30, 19, 221, 4, 32, 2, 28, 41, 28, 34, 240, - 1, 248, 13, 188, 56, 188, 1, 71, 0, 181, 56, 28, 5, 28, 12, 30, 19, 221, 4, 32, 9, 28, 41, 28, 34, 240, 1, 248, 0, 188, - 56, 188, 1, 71, 0, 181, 8, 28, 3, 28, 10, 32, 5, 28, 25, 35, 0, 240, 0, 255, 245, 188, 8, 188, 1, 71, 0, 181, 8, 28, - 3, 28, 10, 32, 6, 28, 25, 35, 0, 240, 0, 255, 234, 188, 8, 188, 1, 71, 0, 181, 56, 28, 5, 28, 12, 28, 19, 28, 41, 28, - 34, 32, 16, 240, 0, 255, 222, 188, 56, 188, 2, 71, 8, 181, 8, 32, 128, 33, 0, 34, 0, 35, 0, 240, 0, 255, 212, 188, 8, - 188, 1, 71, 0, 181, 8, 32, 129, 33, 0, 34, 0, 35, 0, 240, 0, 255, 202, 188, 8, 188, 1, 71, 0, 181, 0, 35, 0, 224, 3, - 51, 1, 6, 27, 14, 27, 8, 64, 40, 0, 209, 249, 30, 88, 6, 0, 14, 0, 188, 2, 71, 8, 0, 0, 181, 240, 176, 133, 144, 1, - 32, 84, 145, 3, 146, 2, 28, 30, 159, 11, 247, 251, 251, 146, 28, 4, 30, 48, 209, 1, 32, 128, 0, 128, 247, 251, 251, - 139, 28, 5, 32, 128, 2, 0, 97, 32, 247, 255, 255, 218, 75, 125, 117, 32, 97, 227, 154, 10, 75, 124, 96, 37, 96, 30, - 11, 211, 67, 115, 97, 163, 155, 12, 98, 231, 43, 0, 208, 50, 33, 0, 28, 50, 28, 40, 240, 0, 254, 102, 35, 87, 112, 43, - 35, 66, 112, 107, 35, 70, 112, 171, 35, 83, 112, 235, 28, 48, 247, 255, 255, 188, 114, 40, 159, 10, 73, 111, 14, 59, - 113, 43, 12, 59, 113, 107, 10, 59, 113, 171, 113, 239, 105, 162, 35, 6, 66, 138, 217, 16, 73, 106, 35, 7, 66, 138, 217, - 12, 73, 105, 35, 8, 66, 138, 217, 8, 73, 104, 35, 9, 66, 138, 217, 4, 75, 103, 66, 147, 65, 155, 66, 91, 51, 10, 125, - 34, 24, 155, 114, 107, 224, 6, 28, 57, 152, 2, 34, 1, 28, 43, 159, 1, 240, 0, 248, 207, 120, 43, 120, 106, 6, 27, 4, - 18, 67, 26, 120, 171, 2, 27, 67, 26, 120, 235, 67, 26, 75, 91, 66, 154, 208, 4, 72, 90, 240, 0, 255, 49, 72, 90, 224, - 40, 75, 90, 104, 27, 66, 95, 65, 95, 46, 0, 208, 12, 47, 0, 208, 10, 28, 48, 247, 255, 255, 117, 122, 43, 66, 131, 208, - 4, 72, 81, 240, 0, 255, 30, 72, 82, 224, 21, 154, 10, 42, 0, 208, 31, 47, 0, 208, 29, 121, 42, 121, 107, 6, 18, 4, 27, - 67, 19, 121, 170, 159, 10, 2, 18, 67, 19, 121, 234, 67, 19, 66, 187, 208, 16, 72, 69, 240, 0, 255, 7, 72, 72, 240, 0, - 255, 4, 72, 71, 240, 0, 255, 1, 28, 32, 247, 251, 251, 24, 28, 40, 247, 251, 251, 21, 36, 0, 224, 100, 122, 46, 39, - 1, 28, 58, 64, 178, 96, 98, 122, 43, 28, 22, 147, 0, 114, 35, 121, 42, 121, 107, 6, 18, 4, 27, 67, 19, 121, 170, 121, - 232, 2, 18, 67, 19, 67, 24, 105, 33, 96, 224, 240, 0, 254, 168, 67, 112, 97, 160, 122, 107, 125, 34, 64, 159, 98, 99, - 26, 155, 105, 226, 64, 216, 64, 218, 4, 18, 12, 18, 4, 51, 12, 27, 133, 98, 50, 128, 4, 1, 133, 32, 0, 82, 30, 88, 24, - 130, 66, 91, 64, 26, 155, 3, 28, 37, 53, 72, 99, 99, 12, 201, 155, 0, 98, 39, 128, 42, 26, 127, 154, 1, 64, 223, 99, - 34, 100, 39, 154, 2, 159, 12, 99, 162, 47, 0, 209, 1, 100, 103, 224, 11, 30, 112, 24, 65, 66, 112, 64, 8, 247, 251, - 250, 173, 141, 34, 100, 96, 8, 210, 33, 255, 240, 0, 253, 155, 28, 35, 51, 72, 136, 25, 108, 32, 122, 35, 56, 1, 65, - 25, 240, 0, 254, 104, 4, 2, 104, 96, 12, 18, 28, 3, 59, 12, 135, 162, 66, 154, 217, 0, 135, 163, 247, 251, 250, 147, - 35, 0, 100, 224, 101, 35, 176, 5, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 0, 4, 96, 144, 19, 112, 106, 76, 0, 63, - 255, 255, 0, 127, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 3, 255, 255, 255, 87, 66, 70, 83, 19, 112, 104, 242, - 19, 112, 104, 254, 19, 112, 106, 72, 19, 112, 105, 8, 19, 112, 105, 37, 19, 112, 104, 90, 71, 56, 70, 192, 181, 240, - 176, 165, 144, 9, 28, 24, 146, 10, 147, 11, 145, 15, 247, 251, 250, 99, 35, 1, 74, 140, 77, 141, 66, 91, 96, 19, 104, - 43, 28, 4, 43, 0, 209, 3, 152, 11, 247, 251, 250, 87, 96, 40, 75, 136, 152, 11, 33, 0, 96, 24, 34, 1, 152, 10, 28, 35, + 224, 176, 7, 188, 240, 188, 2, 71, 8, 181, 240, 176, 139, 74, 135, 35, 0, 128, 19, 74, 135, 36, 0, 128, 19, 75, 134, + 74, 135, 112, 28, 75, 135, 79, 135, 112, 28, 35, 120, 144, 8, 66, 91, 96, 19, 28, 56, 153, 8, 247, 255, 251, 218, 40, + 0, 218, 0, 224, 241, 34, 1, 75, 129, 115, 186, 104, 25, 41, 0, 208, 74, 121, 91, 43, 0, 209, 3, 75, 126, 120, 27, 66, + 26, 208, 29, 76, 122, 35, 0, 115, 163, 77, 124, 75, 124, 38, 1, 96, 43, 28, 35, 51, 144, 104, 24, 136, 227, 33, 161, + 147, 0, 28, 35, 51, 14, 147, 2, 34, 254, 35, 0, 150, 1, 247, 254, 251, 5, 75, 117, 96, 43, 40, 0, 218, 1, 115, 166, + 224, 188, 123, 163, 51, 1, 115, 163, 75, 108, 72, 113, 121, 29, 28, 41, 247, 254, 248, 124, 78, 104, 28, 41, 28, 48, + 247, 255, 254, 59, 28, 4, 28, 33, 72, 108, 247, 254, 248, 114, 28, 163, 43, 1, 216, 9, 28, 48, 247, 255, 253, 154, 74, + 94, 35, 121, 66, 91, 96, 19, 34, 0, 75, 91, 224, 61, 44, 0, 218, 0, 224, 153, 75, 88, 34, 1, 112, 26, 75, 89, 112, 29, + 224, 139, 38, 1, 113, 92, 37, 0, 28, 60, 150, 6, 55, 144, 28, 40, 30, 67, 65, 152, 144, 9, 40, 0, 209, 5, 75, 84, 120, + 27, 7, 217, 213, 1, 46, 0, 209, 41, 72, 87, 28, 41, 247, 254, 248, 70, 6, 43, 14, 27, 28, 25, 72, 76, 147, 5, 247, 255, + 254, 3, 144, 7, 153, 7, 72, 80, 247, 254, 248, 58, 155, 7, 51, 2, 43, 1, 216, 16, 154, 9, 42, 0, 208, 13, 74, 73, 75, + 70, 72, 67, 96, 26, 247, 255, 253, 91, 74, 63, 35, 121, 66, 91, 96, 19, 75, 60, 34, 0, 112, 26, 224, 105, 155, 7, 43, + 0, 218, 59, 46, 0, 208, 52, 78, 61, 75, 62, 73, 66, 96, 51, 136, 227, 32, 0, 96, 8, 115, 160, 104, 56, 147, 0, 28, 35, + 34, 1, 51, 14, 146, 1, 147, 2, 33, 161, 35, 0, 34, 254, 247, 254, 250, 134, 75, 53, 144, 5, 96, 51, 40, 0, 218, 5, 73, + 55, 35, 1, 32, 0, 115, 163, 96, 8, 224, 5, 123, 163, 34, 1, 51, 1, 115, 163, 75, 42, 113, 90, 75, 40, 72, 49, 123, 155, + 153, 5, 28, 26, 147, 6, 247, 253, 255, 243, 75, 38, 38, 0, 120, 27, 7, 216, 213, 3, 153, 5, 15, 206, 224, 0, 53, 1, + 154, 6, 66, 149, 219, 144, 224, 29, 33, 23, 70, 104, 74, 29, 92, 8, 35, 1, 96, 19, 113, 16, 154, 8, 152, 8, 137, 17, + 74, 19, 128, 17, 137, 65, 74, 19, 128, 17, 74, 19, 70, 105, 112, 19, 34, 23, 75, 19, 92, 81, 112, 25, 74, 23, 75, 21, + 32, 0, 96, 26, 75, 14, 34, 0, 96, 26, 224, 14, 74, 12, 35, 122, 66, 91, 96, 19, 72, 12, 247, 255, 252, 239, 75, 8, 34, + 0, 112, 26, 72, 20, 247, 253, 255, 187, 32, 3, 66, 64, 176, 11, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 105, 248, + 19, 112, 106, 0, 19, 112, 106, 28, 19, 112, 105, 224, 19, 112, 96, 64, 19, 114, 196, 96, 19, 112, 106, 4, 19, 112, 1, + 14, 19, 112, 96, 56, 0, 152, 150, 128, 0, 15, 66, 64, 19, 112, 103, 72, 19, 112, 103, 102, 19, 112, 103, 77, 19, 112, + 106, 52, 19, 112, 103, 131, 19, 112, 103, 172, 181, 8, 74, 10, 104, 19, 43, 0, 208, 13, 75, 9, 33, 16, 112, 25, 35, + 0, 73, 8, 96, 19, 74, 8, 112, 11, 96, 19, 72, 7, 33, 0, 34, 20, 240, 1, 254, 19, 188, 8, 188, 1, 71, 0, 19, 112, 106, + 24, 19, 112, 96, 64, 19, 112, 106, 28, 19, 112, 106, 52, 19, 112, 106, 4, 181, 240, 176, 135, 75, 119, 36, 0, 104, 29, + 45, 0, 208, 0, 224, 227, 75, 117, 32, 0, 104, 27, 104, 155, 96, 157, 247, 253, 248, 189, 74, 115, 35, 1, 66, 91, 96, + 19, 74, 114, 35, 1, 96, 19, 74, 113, 72, 114, 112, 21, 74, 114, 112, 19, 247, 253, 255, 85, 75, 113, 120, 27, 43, 1, + 208, 4, 43, 2, 208, 6, 34, 0, 146, 4, 224, 6, 35, 1, 147, 4, 36, 1, 224, 2, 34, 1, 146, 4, 36, 0, 0, 167, 224, 174, + 75, 98, 74, 104, 104, 29, 0, 163, 25, 27, 0, 219, 24, 235, 103, 92, 111, 27, 96, 20, 43, 0, 209, 52, 104, 171, 34, 1, + 51, 68, 25, 219, 104, 27, 66, 26, 209, 2, 28, 32, 247, 253, 253, 57, 78, 87, 34, 1, 104, 51, 104, 155, 51, 68, 25, 219, + 104, 27, 66, 26, 208, 33, 28, 32, 247, 254, 253, 237, 34, 140, 0, 210, 24, 131, 43, 1, 216, 2, 75, 79, 96, 24, 224, + 130, 28, 32, 247, 254, 252, 126, 144, 3, 32, 20, 247, 253, 250, 12, 104, 51, 104, 155, 51, 68, 25, 219, 104, 26, 155, + 3, 43, 0, 219, 4, 75, 77, 64, 26, 75, 77, 66, 154, 208, 2, 28, 32, 247, 254, 253, 206, 0, 160, 25, 0, 0, 192, 24, 43, + 111, 27, 43, 0, 208, 100, 75, 64, 34, 1, 48, 88, 96, 26, 24, 40, 247, 255, 254, 46, 144, 3, 40, 0, 209, 87, 75, 56, + 34, 1, 96, 26, 79, 65, 74, 57, 96, 16, 28, 56, 247, 253, 248, 66, 77, 52, 34, 4, 104, 43, 72, 62, 104, 155, 96, 154, + 247, 253, 254, 224, 32, 100, 247, 253, 249, 215, 32, 128, 1, 0, 240, 0, 253, 105, 78, 57, 75, 57, 34, 1, 96, 51, 75, + 57, 144, 4, 112, 26, 104, 43, 154, 3, 104, 155, 32, 0, 96, 154, 247, 253, 248, 37, 72, 53, 247, 253, 254, 200, 75, 52, + 34, 0, 120, 25, 155, 4, 72, 51, 147, 0, 35, 1, 247, 255, 253, 125, 144, 5, 28, 56, 247, 253, 248, 21, 104, 43, 34, 4, + 104, 155, 96, 154, 70, 107, 34, 15, 92, 210, 75, 40, 152, 4, 112, 26, 75, 43, 96, 51, 240, 0, 253, 91, 155, 5, 43, 0, + 218, 7, 72, 40, 247, 253, 254, 167, 28, 32, 247, 253, 252, 224, 76, 38, 224, 27, 72, 38, 247, 253, 254, 159, 75, 38, + 104, 27, 43, 0, 208, 20, 52, 2, 224, 18, 28, 32, 247, 253, 252, 210, 52, 1, 55, 4, 154, 4, 66, 148, 220, 0, 231, 76, + 72, 18, 247, 252, 255, 231, 74, 7, 104, 19, 34, 4, 104, 155, 96, 154, 75, 5, 104, 28, 176, 7, 28, 32, 188, 240, 188, + 2, 71, 8, 70, 192, 19, 112, 106, 24, 19, 112, 96, 60, 19, 112, 105, 224, 19, 112, 106, 52, 19, 112, 106, 28, 19, 112, + 103, 201, 19, 112, 1, 15, 19, 112, 1, 12, 19, 112, 106, 48, 0, 0, 57, 5, 0, 0, 16, 5, 19, 112, 17, 29, 19, 112, 104, + 92, 19, 112, 96, 56, 0, 152, 150, 128, 19, 112, 105, 216, 19, 112, 104, 141, 19, 112, 96, 64, 19, 114, 196, 96, 0, 15, + 66, 64, 19, 112, 104, 114, 255, 255, 251, 162, 19, 112, 104, 138, 19, 112, 105, 236, 181, 0, 30, 3, 208, 1, 34, 0, 96, + 26, 74, 12, 32, 0, 120, 18, 42, 1, 209, 16, 74, 10, 120, 18, 42, 16, 208, 12, 43, 0, 208, 4, 50, 4, 73, 8, 0, 146, 88, + 82, 96, 26, 75, 5, 120, 26, 75, 5, 50, 20, 0, 146, 88, 208, 188, 2, 71, 8, 70, 192, 19, 112, 106, 28, 19, 112, 96, 64, + 19, 114, 196, 96, 181, 240, 176, 139, 75, 78, 104, 27, 43, 0, 209, 0, 224, 139, 75, 77, 34, 16, 112, 26, 75, 76, 120, + 26, 75, 76, 42, 0, 208, 1, 74, 76, 224, 0, 74, 76, 78, 76, 96, 26, 172, 4, 35, 0, 28, 53, 130, 99, 130, 163, 53, 144, + 28, 33, 104, 40, 247, 254, 249, 73, 75, 71, 121, 34, 121, 153, 66, 145, 209, 23, 121, 217, 121, 98, 66, 145, 209, 19, + 137, 25, 137, 34, 66, 145, 209, 15, 137, 89, 137, 98, 66, 145, 209, 11, 123, 25, 123, 162, 66, 145, 209, 7, 123, 89, + 123, 226, 66, 145, 209, 3, 123, 154, 124, 35, 66, 154, 208, 6, 168, 4, 247, 253, 252, 193, 72, 56, 247, 253, 253, 235, + 224, 80, 28, 32, 247, 253, 252, 186, 74, 54, 75, 47, 104, 40, 96, 26, 120, 49, 247, 254, 248, 215, 40, 0, 219, 70, 104, + 178, 42, 0, 208, 7, 6, 18, 104, 40, 121, 241, 14, 18, 247, 254, 248, 190, 40, 0, 219, 61, 76, 41, 35, 0, 115, 163, 77, + 36, 75, 42, 39, 1, 96, 43, 28, 35, 51, 144, 104, 24, 136, 227, 33, 161, 147, 0, 28, 35, 51, 14, 147, 2, 34, 254, 35, + 0, 151, 1, 247, 254, 248, 56, 75, 28, 96, 43, 40, 0, 218, 6, 115, 167, 28, 32, 33, 0, 247, 254, 254, 75, 72, 30, 224, + 34, 123, 163, 78, 25, 51, 1, 115, 163, 75, 28, 28, 32, 96, 43, 121, 49, 247, 255, 248, 73, 75, 18, 96, 43, 40, 0, 219, + 17, 121, 49, 28, 32, 247, 255, 250, 215, 40, 0, 219, 13, 121, 50, 75, 9, 112, 26, 75, 19, 112, 31, 224, 8, 72, 19, 224, + 6, 72, 19, 224, 4, 72, 19, 224, 2, 72, 19, 224, 0, 72, 19, 176, 11, 188, 240, 188, 2, 71, 8, 19, 112, 106, 24, 19, 112, + 96, 64, 19, 112, 1, 15, 19, 112, 96, 56, 0, 15, 66, 64, 0, 3, 13, 64, 19, 114, 196, 96, 19, 112, 106, 4, 19, 112, 100, + 113, 0, 152, 150, 128, 255, 255, 252, 20, 1, 49, 45, 0, 19, 112, 106, 28, 255, 255, 252, 15, 255, 255, 252, 23, 255, + 255, 252, 22, 255, 255, 252, 19, 255, 255, 252, 18, 181, 240, 176, 131, 75, 57, 76, 58, 120, 26, 38, 1, 30, 83, 65, + 154, 75, 56, 96, 34, 104, 27, 43, 0, 208, 99, 75, 55, 0, 146, 104, 27, 104, 155, 28, 25, 49, 68, 24, 138, 104, 18, 66, + 22, 208, 89, 34, 0, 32, 0, 96, 154, 247, 252, 254, 166, 104, 32, 247, 254, 250, 177, 30, 7, 218, 3, 104, 32, 247, 254, + 250, 172, 28, 7, 32, 60, 247, 253, 248, 58, 77, 41, 72, 42, 104, 43, 28, 57, 104, 154, 75, 37, 50, 68, 104, 27, 38, + 1, 0, 155, 24, 211, 104, 27, 28, 26, 147, 1, 247, 253, 253, 48, 76, 32, 35, 1, 96, 35, 47, 0, 219, 48, 155, 1, 74, 32, + 64, 26, 75, 32, 66, 154, 209, 42, 74, 32, 35, 0, 112, 19, 34, 0, 96, 34, 247, 255, 254, 242, 74, 29, 75, 30, 96, 26, + 40, 0, 219, 12, 74, 26, 35, 0, 112, 22, 96, 35, 72, 27, 247, 252, 254, 108, 104, 43, 34, 4, 104, 155, 38, 0, 96, 154, + 224, 17, 28, 57, 72, 23, 96, 38, 247, 253, 253, 7, 75, 17, 34, 0, 112, 26, 32, 100, 247, 252, 255, 251, 72, 17, 247, + 252, 254, 88, 104, 43, 34, 4, 104, 155, 96, 154, 32, 100, 247, 252, 255, 241, 176, 3, 28, 48, 188, 240, 188, 2, 71, + 8, 19, 112, 1, 12, 19, 112, 106, 48, 19, 112, 106, 52, 19, 112, 96, 60, 19, 112, 104, 159, 0, 0, 49, 5, 0, 0, 16, 5, + 19, 112, 106, 28, 0, 15, 66, 64, 19, 112, 96, 56, 19, 112, 17, 29, 19, 112, 104, 187, 181, 240, 176, 131, 75, 30, 34, + 0, 104, 27, 146, 1, 43, 0, 208, 50, 247, 255, 255, 104, 75, 27, 104, 27, 43, 0, 209, 44, 75, 26, 120, 27, 43, 0, 208, + 40, 77, 25, 79, 26, 76, 26, 78, 27, 96, 47, 121, 49, 28, 32, 247, 255, 249, 245, 40, 0, 219, 29, 96, 47, 121, 49, 28, + 32, 28, 11, 29, 10, 51, 20, 0, 146, 0, 155, 25, 18, 25, 27, 247, 255, 250, 49, 40, 0, 219, 15, 75, 17, 104, 26, 42, + 0, 208, 7, 121, 49, 35, 128, 49, 4, 0, 137, 89, 9, 1, 27, 66, 153, 209, 3, 28, 19, 30, 90, 65, 147, 147, 1, 152, 1, + 176, 3, 188, 240, 188, 2, 71, 8, 19, 112, 106, 24, 19, 112, 106, 52, 19, 112, 106, 28, 19, 112, 96, 56, 0, 15, 66, 64, + 19, 114, 196, 96, 19, 112, 106, 4, 19, 112, 105, 236, 181, 240, 176, 135, 75, 66, 144, 3, 104, 27, 146, 4, 43, 0, 209, + 7, 75, 64, 104, 27, 43, 0, 208, 3, 0, 66, 75, 63, 8, 82, 96, 26, 75, 62, 104, 27, 43, 0, 208, 6, 75, 61, 104, 26, 42, + 1, 221, 2, 34, 1, 96, 26, 224, 101, 4, 9, 12, 9, 79, 56, 38, 4, 36, 0, 145, 5, 247, 255, 254, 255, 30, 67, 65, 152, + 104, 59, 66, 64, 64, 4, 43, 0, 208, 3, 74, 50, 104, 19, 43, 3, 208, 79, 44, 0, 219, 3, 75, 48, 120, 27, 43, 1, 208, + 4, 75, 45, 34, 1, 36, 1, 96, 26, 66, 100, 75, 43, 104, 27, 43, 0, 209, 61, 75, 38, 104, 26, 75, 42, 42, 0, 208, 1, 74, + 41, 224, 0, 74, 41, 96, 26, 28, 99, 208, 24, 32, 0, 247, 252, 253, 153, 77, 39, 34, 0, 104, 43, 72, 38, 104, 155, 96, + 154, 154, 4, 75, 37, 120, 25, 155, 5, 146, 0, 154, 3, 247, 255, 250, 239, 28, 4, 72, 34, 247, 252, 253, 135, 104, 43, + 34, 4, 104, 155, 96, 154, 74, 32, 75, 24, 96, 26, 44, 0, 218, 2, 75, 20, 34, 1, 96, 26, 75, 18, 104, 27, 43, 0, 208, + 3, 75, 17, 104, 27, 43, 0, 209, 15, 75, 15, 104, 27, 43, 0, 209, 5, 75, 14, 120, 27, 43, 1, 209, 1, 44, 0, 218, 7, 62, + 1, 46, 0, 209, 162, 67, 228, 15, 224, 224, 2, 32, 0, 224, 0, 32, 1, 176, 7, 188, 240, 188, 2, 71, 8, 19, 112, 105, 208, + 19, 112, 105, 236, 19, 112, 105, 160, 19, 112, 105, 164, 19, 112, 106, 52, 19, 112, 106, 28, 19, 112, 96, 56, 0, 152, + 150, 128, 0, 45, 198, 192, 19, 112, 96, 60, 19, 114, 196, 96, 19, 112, 96, 64, 19, 112, 17, 29, 0, 15, 66, 64, 181, + 240, 176, 133, 75, 39, 28, 7, 104, 27, 28, 22, 32, 0, 43, 0, 209, 67, 4, 9, 12, 9, 36, 0, 145, 3, 247, 255, 254, 111, + 40, 0, 208, 2, 44, 0, 219, 5, 224, 0, 36, 0, 74, 31, 120, 19, 43, 1, 208, 4, 75, 30, 34, 1, 36, 1, 96, 26, 66, 100, + 75, 27, 104, 27, 43, 0, 209, 234, 73, 26, 74, 27, 96, 17, 28, 98, 208, 22, 77, 26, 32, 0, 104, 42, 104, 146, 96, 147, + 247, 252, 253, 18, 75, 23, 28, 58, 120, 25, 72, 23, 155, 3, 150, 0, 247, 255, 250, 172, 28, 4, 72, 21, 247, 252, 253, + 6, 104, 43, 34, 4, 104, 155, 96, 154, 74, 18, 75, 13, 96, 26, 44, 0, 218, 2, 75, 9, 34, 1, 96, 26, 75, 7, 104, 27, 43, + 0, 209, 194, 44, 0, 219, 192, 32, 1, 176, 5, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 105, 236, 19, 112, 106, 28, + 19, 112, 106, 52, 0, 45, 198, 192, 19, 112, 96, 56, 19, 112, 96, 60, 19, 112, 96, 64, 19, 114, 196, 96, 19, 112, 17, + 29, 0, 15, 66, 64, 181, 240, 176, 137, 74, 95, 104, 19, 43, 0, 209, 6, 75, 94, 104, 27, 105, 153, 96, 17, 106, 26, 75, + 93, 96, 26, 75, 92, 77, 90, 104, 28, 38, 0, 28, 55, 104, 43, 55, 8, 0, 191, 80, 252, 28, 32, 33, 0, 34, 96, 240, 1, + 249, 249, 104, 43, 33, 96, 88, 248, 240, 0, 249, 214, 52, 127, 33, 31, 54, 1, 67, 140, 46, 8, 209, 234, 37, 8, 38, 31, + 28, 32, 33, 0, 34, 96, 240, 1, 249, 231, 61, 1, 28, 32, 33, 96, 52, 127, 240, 0, 249, 195, 67, 180, 45, 0, 209, 241, + 75, 72, 34, 255, 96, 28, 75, 68, 39, 128, 104, 29, 35, 255, 2, 18, 4, 27, 76, 69, 38, 0, 5, 255, 146, 2, 147, 3, 33, + 0, 96, 37, 34, 96, 28, 40, 240, 1, 249, 202, 28, 40, 240, 0, 249, 152, 28, 50, 100, 104, 104, 35, 30, 81, 65, 138, 5, + 210, 96, 90, 104, 35, 34, 0, 96, 154, 104, 35, 33, 31, 97, 159, 53, 127, 67, 141, 104, 34, 28, 40, 146, 5, 240, 0, 249, + 132, 144, 6, 28, 40, 240, 0, 249, 128, 144, 1, 28, 40, 240, 0, 249, 124, 144, 7, 28, 40, 240, 0, 249, 120, 35, 255, + 2, 27, 153, 2, 147, 4, 34, 255, 155, 1, 4, 18, 64, 11, 146, 1, 153, 3, 154, 7, 2, 27, 64, 10, 10, 18, 67, 19, 14, 0, + 154, 6, 67, 3, 32, 224, 64, 16, 33, 2, 67, 8, 154, 5, 6, 0, 67, 3, 96, 19, 104, 34, 35, 128, 4, 91, 97, 19, 104, 34, + 33, 96, 97, 83, 204, 1, 54, 1, 240, 0, 249, 100, 46, 6, 209, 175, 76, 22, 77, 26, 104, 32, 105, 110, 240, 0, 249, 75, + 144, 2, 104, 32, 240, 0, 249, 71, 28, 7, 104, 32, 240, 0, 249, 67, 144, 3, 104, 32, 240, 0, 249, 63, 155, 4, 153, 1, + 64, 31, 155, 3, 2, 63, 64, 11, 10, 27, 67, 31, 154, 2, 14, 3, 28, 56, 67, 24, 35, 224, 64, 19, 33, 2, 67, 11, 6, 27, + 67, 24, 96, 48, 105, 104, 33, 96, 240, 0, 249, 57, 176, 9, 188, 240, 188, 1, 71, 0, 70, 192, 19, 112, 106, 44, 19, 112, + 96, 60, 19, 112, 105, 204, 19, 112, 105, 232, 19, 114, 194, 128, 181, 248, 75, 16, 39, 128, 104, 28, 38, 0, 4, 127, + 28, 32, 247, 252, 254, 77, 46, 3, 208, 15, 28, 37, 35, 31, 53, 127, 67, 157, 107, 104, 240, 1, 248, 186, 96, 103, 96, + 32, 33, 96, 28, 32, 240, 0, 249, 18, 54, 1, 28, 44, 231, 234, 28, 32, 33, 96, 240, 0, 249, 11, 188, 248, 188, 1, 71, + 0, 19, 112, 105, 232, 181, 240, 176, 131, 247, 255, 255, 12, 247, 255, 255, 214, 76, 65, 75, 66, 104, 34, 104, 24, 77, + 65, 97, 144, 104, 89, 78, 65, 97, 209, 104, 154, 79, 64, 96, 42, 104, 218, 105, 27, 96, 50, 96, 59, 33, 96, 240, 0, + 249, 1, 104, 35, 33, 0, 105, 154, 100, 211, 105, 154, 100, 145, 105, 155, 28, 24, 147, 1, 240, 0, 248, 209, 155, 1, + 104, 34, 100, 88, 104, 59, 105, 145, 108, 91, 34, 255, 2, 18, 64, 26, 2, 16, 34, 255, 4, 18, 64, 26, 10, 18, 67, 2, + 14, 24, 67, 2, 32, 224, 64, 3, 39, 2, 67, 59, 6, 24, 28, 19, 67, 3, 96, 11, 104, 35, 34, 128, 105, 153, 4, 18, 96, 74, + 105, 154, 33, 0, 96, 145, 105, 153, 34, 128, 5, 210, 97, 138, 105, 153, 34, 128, 4, 82, 97, 10, 105, 153, 97, 74, 105, + 152, 33, 96, 240, 0, 248, 179, 104, 35, 33, 96, 105, 216, 240, 0, 248, 194, 104, 35, 33, 0, 105, 218, 100, 211, 105, + 218, 100, 145, 105, 223, 28, 56, 240, 0, 248, 147, 33, 96, 100, 120, 104, 40, 240, 0, 248, 179, 104, 47, 104, 35, 28, + 56, 100, 251, 35, 0, 100, 187, 240, 0, 248, 134, 33, 96, 100, 120, 104, 40, 240, 0, 248, 146, 104, 48, 33, 96, 240, + 0, 248, 162, 104, 53, 104, 35, 33, 0, 100, 235, 100, 169, 28, 40, 240, 0, 248, 117, 33, 96, 100, 104, 104, 48, 240, + 0, 248, 129, 176, 3, 188, 240, 188, 1, 71, 0, 70, 192, 19, 112, 96, 60, 19, 114, 194, 128, 19, 112, 105, 212, 19, 112, + 106, 40, 19, 112, 106, 36, 181, 248, 76, 35, 75, 35, 96, 35, 240, 0, 248, 74, 40, 0, 219, 58, 240, 0, 249, 117, 74, + 32, 104, 131, 96, 32, 96, 26, 104, 32, 35, 1, 104, 130, 104, 17, 66, 11, 209, 252, 33, 252, 240, 0, 248, 91, 38, 128, + 39, 128, 76, 23, 37, 0, 4, 118, 1, 127, 104, 35, 33, 4, 108, 219, 81, 94, 104, 35, 108, 219, 89, 88, 53, 4, 240, 0, + 248, 75, 66, 189, 209, 243, 247, 255, 255, 65, 104, 35, 34, 2, 51, 84, 112, 26, 247, 253, 248, 21, 104, 35, 32, 0, 104, + 154, 105, 155, 108, 91, 97, 147, 104, 35, 34, 4, 104, 155, 96, 154, 104, 35, 74, 8, 104, 155, 96, 26, 104, 35, 104, + 155, 104, 27, 224, 1, 32, 1, 66, 64, 188, 248, 188, 2, 71, 8, 19, 112, 96, 60, 19, 114, 197, 4, 0, 1, 0, 32, 0, 1, 0, + 33, 181, 8, 33, 224, 72, 4, 2, 9, 240, 1, 249, 70, 75, 3, 96, 24, 23, 192, 188, 8, 188, 2, 71, 8, 19, 112, 162, 96, + 19, 112, 96, 68, 71, 112, 71, 112, 181, 16, 28, 4, 240, 1, 249, 66, 28, 32, 188, 16, 188, 2, 71, 8, 181, 16, 28, 4, + 240, 1, 249, 58, 28, 32, 188, 16, 188, 2, 71, 8, 181, 16, 28, 4, 240, 1, 249, 50, 28, 32, 188, 16, 188, 2, 71, 8, 181, + 8, 240, 1, 249, 75, 188, 8, 188, 1, 71, 0, 181, 8, 240, 1, 249, 69, 188, 8, 188, 1, 71, 0, 181, 8, 240, 1, 249, 63, + 188, 8, 188, 1, 71, 0, 181, 8, 75, 12, 28, 1, 34, 32, 104, 24, 240, 1, 249, 49, 40, 0, 209, 13, 72, 9, 240, 1, 249, + 8, 240, 0, 249, 63, 32, 200, 247, 252, 252, 89, 240, 0, 249, 68, 32, 200, 247, 252, 252, 84, 231, 244, 188, 8, 188, + 2, 71, 8, 19, 112, 96, 68, 19, 112, 104, 211, 181, 8, 75, 4, 28, 1, 104, 24, 240, 1, 248, 220, 188, 8, 188, 1, 71, 0, + 70, 192, 19, 112, 96, 68, 181, 248, 76, 13, 28, 15, 104, 33, 28, 30, 28, 24, 28, 21, 67, 81, 240, 1, 248, 232, 28, 56, + 28, 41, 28, 50, 247, 255, 252, 173, 35, 1, 40, 0, 208, 5, 104, 33, 28, 48, 67, 105, 240, 1, 248, 251, 35, 0, 28, 24, + 188, 248, 188, 2, 71, 8, 19, 114, 198, 0, 181, 16, 76, 11, 104, 32, 40, 0, 208, 3, 240, 0, 252, 39, 35, 0, 96, 35, 76, + 8, 104, 35, 43, 0, 209, 3, 72, 7, 247, 251, 252, 224, 96, 32, 74, 6, 35, 1, 66, 91, 96, 19, 188, 16, 188, 1, 71, 0, + 19, 112, 106, 64, 19, 112, 106, 56, 0, 0, 128, 32, 19, 112, 96, 24, 181, 56, 75, 14, 104, 24, 40, 0, 208, 1, 247, 251, + 252, 231, 76, 12, 75, 10, 104, 32, 37, 0, 96, 29, 40, 0, 208, 2, 240, 0, 251, 254, 96, 37, 75, 8, 104, 24, 40, 0, 208, + 1, 240, 0, 251, 91, 75, 5, 34, 0, 96, 26, 188, 56, 188, 1, 71, 0, 70, 192, 19, 112, 106, 56, 19, 112, 106, 64, 19, 112, + 106, 60, 181, 240, 176, 135, 75, 37, 28, 7, 104, 24, 145, 5, 40, 0, 208, 1, 247, 251, 252, 192, 75, 33, 77, 34, 34, + 0, 96, 26, 104, 43, 43, 0, 209, 23, 247, 255, 249, 95, 78, 31, 36, 0, 28, 48, 247, 255, 250, 124, 75, 29, 96, 24, 40, + 0, 208, 43, 154, 5, 104, 51, 33, 0, 144, 0, 146, 1, 72, 26, 34, 0, 148, 2, 240, 0, 249, 238, 96, 40, 40, 0, 208, 30, + 77, 23, 104, 44, 44, 0, 208, 11, 72, 22, 28, 57, 34, 6, 240, 0, 254, 214, 40, 0, 208, 19, 28, 32, 240, 0, 251, 179, + 35, 0, 96, 43, 75, 11, 28, 57, 104, 24, 240, 0, 251, 54, 75, 12, 28, 4, 96, 24, 40, 0, 208, 4, 72, 11, 28, 57, 34, 6, + 240, 0, 254, 238, 176, 7, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 106, 56, 19, 112, 106, 60, 19, 114, 198, + 0, 19, 114, 198, 4, 19, 112, 71, 233, 19, 112, 106, 64, 19, 112, 96, 72, 181, 8, 28, 3, 28, 10, 32, 0, 28, 25, 35, 0, + 240, 1, 248, 60, 188, 8, 188, 1, 71, 0, 181, 8, 32, 1, 33, 0, 34, 0, 35, 0, 240, 1, 248, 50, 188, 8, 188, 2, 71, 8, + 181, 8, 32, 17, 33, 0, 34, 0, 35, 0, 240, 1, 248, 40, 188, 8, 188, 2, 71, 8, 181, 8, 32, 18, 33, 0, 34, 0, 35, 0, 240, + 1, 248, 30, 188, 8, 188, 2, 71, 8, 181, 56, 28, 5, 28, 12, 30, 19, 221, 4, 32, 2, 28, 41, 28, 34, 240, 1, 248, 17, 188, + 56, 188, 1, 71, 0, 181, 56, 28, 5, 28, 12, 30, 19, 221, 4, 32, 9, 28, 41, 28, 34, 240, 1, 248, 4, 188, 56, 188, 1, 71, + 0, 181, 8, 28, 3, 28, 10, 32, 5, 28, 25, 35, 0, 240, 0, 255, 249, 188, 8, 188, 1, 71, 0, 181, 8, 28, 3, 28, 10, 32, + 6, 28, 25, 35, 0, 240, 0, 255, 238, 188, 8, 188, 1, 71, 0, 181, 56, 28, 5, 28, 12, 28, 19, 28, 41, 28, 34, 32, 16, 240, + 0, 255, 226, 188, 56, 188, 2, 71, 8, 181, 8, 32, 128, 33, 0, 34, 0, 35, 0, 240, 0, 255, 216, 188, 8, 188, 1, 71, 0, + 181, 8, 32, 129, 33, 0, 34, 0, 35, 0, 240, 0, 255, 206, 188, 8, 188, 1, 71, 0, 181, 0, 35, 0, 224, 3, 51, 1, 6, 27, + 14, 27, 8, 64, 40, 0, 209, 249, 30, 88, 6, 0, 14, 0, 188, 2, 71, 8, 0, 0, 181, 240, 176, 133, 144, 1, 32, 84, 145, 3, + 146, 2, 28, 30, 159, 11, 247, 251, 251, 190, 28, 4, 30, 48, 209, 1, 32, 128, 0, 128, 247, 251, 251, 183, 28, 5, 32, + 128, 2, 0, 97, 32, 247, 255, 255, 218, 75, 125, 117, 32, 97, 227, 154, 10, 75, 124, 96, 37, 96, 30, 11, 211, 67, 115, + 97, 163, 155, 12, 98, 231, 43, 0, 208, 50, 33, 0, 28, 50, 28, 40, 240, 0, 254, 106, 35, 87, 112, 43, 35, 66, 112, 107, + 35, 70, 112, 171, 35, 83, 112, 235, 28, 48, 247, 255, 255, 188, 114, 40, 159, 10, 73, 111, 14, 59, 113, 43, 12, 59, + 113, 107, 10, 59, 113, 171, 113, 239, 105, 162, 35, 6, 66, 138, 217, 16, 73, 106, 35, 7, 66, 138, 217, 12, 73, 105, + 35, 8, 66, 138, 217, 8, 73, 104, 35, 9, 66, 138, 217, 4, 75, 103, 66, 147, 65, 155, 66, 91, 51, 10, 125, 34, 24, 155, + 114, 107, 224, 6, 28, 57, 152, 2, 34, 1, 28, 43, 159, 1, 240, 0, 248, 207, 120, 43, 120, 106, 6, 27, 4, 18, 67, 26, + 120, 171, 2, 27, 67, 26, 120, 235, 67, 26, 75, 91, 66, 154, 208, 4, 72, 90, 240, 0, 255, 53, 72, 90, 224, 40, 75, 90, + 104, 27, 66, 95, 65, 95, 46, 0, 208, 12, 47, 0, 208, 10, 28, 48, 247, 255, 255, 117, 122, 43, 66, 131, 208, 4, 72, 81, + 240, 0, 255, 34, 72, 82, 224, 21, 154, 10, 42, 0, 208, 31, 47, 0, 208, 29, 121, 42, 121, 107, 6, 18, 4, 27, 67, 19, + 121, 170, 159, 10, 2, 18, 67, 19, 121, 234, 67, 19, 66, 187, 208, 16, 72, 69, 240, 0, 255, 11, 72, 72, 240, 0, 255, + 8, 72, 71, 240, 0, 255, 5, 28, 32, 247, 251, 251, 68, 28, 40, 247, 251, 251, 65, 36, 0, 224, 100, 122, 46, 39, 1, 28, + 58, 64, 178, 96, 98, 122, 43, 28, 22, 147, 0, 114, 35, 121, 42, 121, 107, 6, 18, 4, 27, 67, 19, 121, 170, 121, 232, + 2, 18, 67, 19, 67, 24, 105, 33, 96, 224, 240, 0, 254, 172, 67, 112, 97, 160, 122, 107, 125, 34, 64, 159, 98, 99, 26, + 155, 105, 226, 64, 216, 64, 218, 4, 18, 12, 18, 4, 51, 12, 27, 133, 98, 50, 128, 4, 1, 133, 32, 0, 82, 30, 88, 24, 130, + 66, 91, 64, 26, 155, 3, 28, 37, 53, 72, 99, 99, 12, 201, 155, 0, 98, 39, 128, 42, 26, 127, 154, 1, 64, 223, 99, 34, + 100, 39, 154, 2, 159, 12, 99, 162, 47, 0, 209, 1, 100, 103, 224, 11, 30, 112, 24, 65, 66, 112, 64, 8, 247, 251, 250, + 217, 141, 34, 100, 96, 8, 210, 33, 255, 240, 0, 253, 159, 28, 35, 51, 72, 136, 25, 108, 32, 122, 35, 56, 1, 65, 25, + 240, 0, 254, 108, 4, 2, 104, 96, 12, 18, 28, 3, 59, 12, 135, 162, 66, 154, 217, 0, 135, 163, 247, 251, 250, 191, 35, + 0, 100, 224, 101, 35, 176, 5, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 0, 4, 96, 144, 19, 112, 106, 76, 0, 63, 255, + 255, 0, 127, 255, 255, 0, 255, 255, 255, 1, 255, 255, 255, 3, 255, 255, 255, 87, 66, 70, 83, 19, 112, 104, 242, 19, + 112, 104, 254, 19, 112, 106, 72, 19, 112, 105, 8, 19, 112, 105, 37, 19, 112, 104, 90, 71, 56, 70, 192, 181, 240, 176, + 165, 144, 9, 28, 24, 146, 10, 147, 11, 145, 15, 247, 251, 250, 143, 35, 1, 74, 140, 77, 141, 66, 91, 96, 19, 104, 43, + 28, 4, 43, 0, 209, 3, 152, 11, 247, 251, 250, 131, 96, 40, 75, 136, 152, 11, 33, 0, 96, 24, 34, 1, 152, 10, 28, 35, 157, 9, 240, 0, 249, 24, 40, 0, 208, 0, 224, 246, 35, 255, 0, 91, 92, 227, 43, 85, 209, 28, 51, 171, 51, 255, 92, 227, - 43, 170, 209, 23, 28, 224, 73, 125, 34, 4, 240, 0, 253, 138, 40, 0, 208, 16, 77, 123, 28, 32, 48, 54, 28, 41, 34, 3, - 240, 0, 253, 129, 40, 0, 208, 7, 28, 32, 48, 82, 28, 41, 34, 3, 240, 0, 253, 121, 40, 0, 209, 5, 168, 20, 33, 0, 34, - 64, 240, 0, 253, 22, 224, 6, 28, 33, 49, 191, 49, 255, 168, 20, 34, 64, 240, 0, 252, 204, 175, 32, 151, 5, 32, 228, + 43, 170, 209, 23, 28, 224, 73, 125, 34, 4, 240, 0, 253, 142, 40, 0, 208, 16, 77, 123, 28, 32, 48, 54, 28, 41, 34, 3, + 240, 0, 253, 133, 40, 0, 208, 7, 28, 32, 48, 82, 28, 41, 34, 3, 240, 0, 253, 125, 40, 0, 209, 5, 168, 20, 33, 0, 34, + 64, 240, 0, 253, 26, 224, 6, 28, 33, 49, 191, 49, 255, 168, 20, 34, 64, 240, 0, 252, 208, 175, 32, 151, 5, 32, 228, 39, 1, 66, 127, 0, 64, 38, 0, 173, 20, 144, 14, 151, 8, 122, 235, 122, 47, 122, 105, 122, 170, 147, 7, 120, 32, 120, 99, 6, 0, 4, 27, 67, 24, 120, 163, 2, 27, 67, 24, 120, 227, 67, 24, 75, 97, 66, 152, 208, 3, 121, 40, 40, 0, 209, 0, 224, 162, 2, 9, 4, 18, 67, 17, 67, 57, 159, 7, 6, 59, 67, 25, 145, 7, 121, 43, 43, 15, 209, 101, 33, 227, 32, 0, 0, @@ -732,30 +729,30 @@ unsigned char ehcmodule_5[25856] __attribute__((aligned (32)))={ 4, 42, 152, 16, 153, 19, 67, 19, 67, 3, 6, 10, 67, 19, 208, 53, 154, 12, 50, 1, 146, 12, 42, 8, 209, 162, 224, 47, 152, 10, 153, 7, 34, 1, 28, 35, 159, 9, 240, 0, 248, 79, 40, 0, 209, 45, 120, 34, 120, 99, 6, 18, 4, 27, 67, 19, 120, 162, 73, 29, 2, 18, 67, 19, 120, 226, 67, 19, 66, 139, 209, 27, 154, 43, 66, 150, 209, 15, 155, 7, 144, 0, 157, 44, 147, - 1, 152, 9, 153, 15, 154, 10, 155, 11, 149, 2, 247, 255, 253, 201, 28, 5, 28, 32, 247, 251, 249, 127, 224, 17, 159, 7, + 1, 152, 9, 153, 15, 154, 10, 155, 11, 149, 2, 247, 255, 253, 201, 28, 5, 28, 32, 247, 251, 249, 171, 224, 17, 159, 7, 152, 8, 66, 135, 208, 4, 54, 1, 151, 8, 224, 1, 157, 4, 151, 8, 153, 5, 66, 141, 208, 1, 53, 16, 231, 65, 28, 32, 247, - 251, 249, 109, 37, 0, 176, 37, 28, 40, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 80, 19, 112, 106, 68, 19, 112, + 251, 249, 153, 37, 0, 176, 37, 28, 40, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 80, 19, 112, 106, 68, 19, 112, 106, 76, 19, 112, 105, 65, 19, 112, 105, 70, 87, 66, 70, 83, 0, 0, 1, 199, 0, 0, 1, 201, 0, 0, 1, 215, 0, 0, 1, 217, - 71, 40, 71, 56, 181, 16, 109, 3, 28, 4, 43, 0, 208, 9, 72, 13, 240, 0, 253, 46, 72, 12, 240, 0, 253, 43, 72, 12, 240, - 0, 253, 40, 224, 13, 104, 0, 247, 251, 249, 62, 108, 224, 247, 251, 249, 59, 108, 96, 40, 0, 208, 1, 247, 251, 249, - 54, 28, 32, 247, 251, 249, 51, 188, 16, 188, 1, 71, 0, 19, 112, 104, 242, 19, 112, 105, 74, 19, 112, 104, 90, 181, 240, + 71, 40, 71, 56, 181, 16, 109, 3, 28, 4, 43, 0, 208, 9, 72, 13, 240, 0, 253, 50, 72, 12, 240, 0, 253, 47, 72, 12, 240, + 0, 253, 44, 224, 13, 104, 0, 247, 251, 249, 106, 108, 224, 247, 251, 249, 103, 108, 96, 40, 0, 208, 1, 247, 251, 249, + 98, 28, 32, 247, 251, 249, 95, 188, 16, 188, 1, 71, 0, 19, 112, 104, 242, 19, 112, 105, 74, 19, 112, 104, 90, 181, 240, 28, 3, 51, 72, 176, 131, 136, 26, 122, 3, 28, 5, 65, 26, 146, 1, 35, 1, 74, 48, 66, 91, 96, 19, 34, 0, 28, 14, 146, 0, 39, 0, 224, 79, 104, 43, 25, 219, 123, 27, 43, 0, 208, 68, 106, 233, 155, 0, 49, 1, 24, 201, 34, 1, 107, 168, 108, - 235, 107, 44, 240, 0, 248, 83, 108, 233, 28, 48, 34, 6, 240, 0, 251, 106, 40, 0, 209, 51, 32, 12, 247, 251, 248, 225, - 30, 6, 209, 9, 72, 32, 240, 0, 252, 224, 72, 31, 240, 0, 252, 221, 72, 31, 240, 0, 252, 218, 224, 46, 28, 43, 51, 72, - 96, 53, 96, 183, 136, 24, 247, 251, 248, 206, 28, 3, 96, 112, 40, 0, 209, 12, 72, 21, 240, 0, 252, 203, 72, 21, 240, - 0, 252, 200, 72, 20, 240, 0, 252, 197, 28, 48, 247, 251, 248, 220, 224, 21, 106, 233, 154, 0, 49, 1, 24, 137, 107, 168, + 235, 107, 44, 240, 0, 248, 83, 108, 233, 28, 48, 34, 6, 240, 0, 251, 110, 40, 0, 209, 51, 32, 12, 247, 251, 249, 13, + 30, 6, 209, 9, 72, 32, 240, 0, 252, 228, 72, 31, 240, 0, 252, 225, 72, 31, 240, 0, 252, 222, 224, 46, 28, 43, 51, 72, + 96, 53, 96, 183, 136, 24, 247, 251, 248, 250, 28, 3, 96, 112, 40, 0, 209, 12, 72, 21, 240, 0, 252, 207, 72, 21, 240, + 0, 252, 204, 72, 20, 240, 0, 252, 201, 28, 48, 247, 251, 249, 8, 224, 21, 106, 233, 154, 0, 49, 1, 24, 137, 107, 168, 107, 44, 154, 1, 240, 0, 248, 28, 109, 43, 51, 1, 101, 43, 224, 9, 155, 0, 55, 1, 28, 26, 155, 1, 24, 210, 146, 0, 143, 171, 66, 159, 211, 172, 38, 0, 176, 3, 28, 48, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, 96, 80, 19, 112, 104, 242, 19, 112, 105, 118, 19, 112, 104, 90, 71, 32, 70, 192, 181, 16, 104, 3, 28, 4, 109, 26, 58, 1, 101, 26, 104, 64, 247, - 251, 248, 171, 28, 32, 247, 251, 248, 168, 188, 16, 188, 1, 71, 0, 0, 0, 181, 240, 176, 137, 104, 5, 147, 0, 106, 107, + 251, 248, 215, 28, 32, 247, 251, 248, 212, 188, 16, 188, 1, 71, 0, 0, 0, 181, 240, 176, 137, 104, 5, 147, 0, 106, 107, 146, 1, 28, 6, 30, 154, 28, 8, 64, 208, 4, 2, 12, 18, 104, 104, 146, 4, 70, 132, 152, 4, 104, 116, 48, 128, 0, 64, 90, 32, 122, 47, 106, 42, 144, 2, 36, 1, 40, 0, 209, 0, 224, 194, 58, 1, 64, 250, 27, 219, 146, 6, 63, 2, 28, 10, 64, 250, 147, 5, 155, 6, 28, 23, 70, 96, 64, 31, 8, 131, 59, 1, 28, 26, 64, 10, 146, 7, 209, 0, 224, 133, 155, 2, 152, 5, 106, 233, 64, 131, 24, 121, 147, 3, 24, 201, 75, 87, 104, 26, 108, 235, 66, 138, 209, 5, 74, 85, 28, 24, 104, 17, 74, 85, 104, 18, 224, 18, 107, 44, 107, 168, 34, 1, 240, 0, 248, 165, 30, 4, 208, 0, 224, 149, 106, 235, 152, 3, 73, 76, 24, - 251, 24, 27, 96, 11, 75, 75, 108, 233, 104, 24, 75, 75, 104, 26, 240, 0, 250, 227, 154, 7, 104, 108, 0, 145, 155, 0, - 26, 100, 66, 156, 217, 0, 28, 28, 108, 235, 152, 1, 24, 89, 28, 34, 240, 0, 250, 213, 152, 0, 153, 1, 27, 0, 25, 9, + 251, 24, 27, 96, 11, 75, 75, 108, 233, 104, 24, 75, 75, 104, 26, 240, 0, 250, 231, 154, 7, 104, 108, 0, 145, 155, 0, + 26, 100, 66, 156, 217, 0, 28, 28, 108, 235, 152, 1, 24, 89, 28, 34, 240, 0, 250, 217, 152, 0, 153, 1, 27, 0, 25, 9, 144, 0, 145, 1, 55, 1, 40, 0, 208, 71, 154, 6, 66, 186, 210, 68, 155, 4, 104, 114, 51, 1, 4, 27, 12, 27, 147, 4, 51, 128, 0, 91, 90, 211, 36, 1, 147, 2, 39, 0, 43, 0, 209, 54, 224, 95, 122, 43, 152, 0, 64, 216, 106, 43, 25, 194, 144, 3, 66, 154, 217, 1, 27, 219, 147, 3, 154, 5, 106, 233, 155, 2, 24, 121, 64, 147, 24, 201, 107, 168, 107, 44, 154, 3, @@ -763,168 +760,168 @@ unsigned char ehcmodule_5[25856] __attribute__((aligned (32)))={ 0, 208, 15, 152, 6, 66, 184, 210, 12, 154, 4, 104, 113, 50, 1, 4, 18, 12, 18, 146, 4, 50, 128, 0, 82, 90, 138, 146, 2, 42, 0, 208, 42, 39, 0, 153, 1, 24, 201, 145, 1, 104, 107, 154, 0, 66, 154, 210, 197, 36, 0, 42, 0, 208, 34, 155, 5, 158, 2, 106, 233, 64, 158, 24, 121, 107, 44, 107, 168, 25, 137, 108, 235, 34, 1, 240, 0, 248, 35, 30, 4, 209, 20, - 106, 235, 108, 233, 24, 255, 75, 11, 25, 190, 96, 30, 75, 11, 104, 24, 75, 11, 104, 26, 240, 0, 250, 99, 108, 233, 152, - 1, 154, 0, 240, 0, 250, 94, 224, 2, 36, 1, 224, 0, 28, 4, 176, 9, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, 112, - 96, 80, 19, 112, 106, 68, 19, 112, 106, 76, 71, 32, 70, 192, 239, 0, 0, 204, 225, 47, 255, 30, 225, 160, 0, 0, 225, - 160, 0, 0, 230, 0, 0, 16, 225, 47, 255, 30, 230, 0, 0, 48, 225, 47, 255, 30, 230, 0, 0, 80, 225, 47, 255, 30, 230, 0, - 0, 112, 225, 47, 255, 30, 230, 0, 0, 144, 225, 47, 255, 30, 230, 0, 0, 176, 225, 47, 255, 30, 230, 0, 0, 208, 225, 47, - 255, 30, 230, 0, 0, 240, 225, 47, 255, 30, 230, 0, 1, 16, 225, 47, 255, 30, 230, 0, 1, 48, 225, 47, 255, 30, 230, 0, - 1, 80, 225, 47, 255, 30, 230, 0, 1, 112, 225, 47, 255, 30, 230, 0, 1, 144, 225, 47, 255, 30, 230, 0, 1, 176, 225, 47, - 255, 30, 230, 0, 1, 208, 225, 47, 255, 30, 230, 0, 1, 240, 225, 47, 255, 30, 230, 0, 2, 16, 225, 47, 255, 30, 230, 0, - 2, 48, 225, 47, 255, 30, 230, 0, 2, 80, 225, 47, 255, 30, 230, 0, 2, 112, 225, 47, 255, 30, 230, 0, 2, 144, 225, 47, - 255, 30, 230, 0, 2, 176, 225, 47, 255, 30, 230, 0, 2, 208, 225, 47, 255, 30, 230, 0, 2, 240, 225, 47, 255, 30, 230, - 0, 3, 16, 225, 47, 255, 30, 230, 0, 3, 48, 225, 47, 255, 30, 230, 0, 3, 80, 225, 47, 255, 30, 230, 0, 3, 112, 225, 47, - 255, 30, 230, 0, 3, 144, 225, 47, 255, 30, 230, 0, 3, 176, 225, 47, 255, 30, 230, 0, 3, 208, 225, 47, 255, 30, 230, - 0, 3, 240, 225, 47, 255, 30, 230, 0, 4, 16, 225, 47, 255, 30, 230, 0, 4, 48, 225, 47, 255, 30, 230, 0, 4, 80, 225, 47, - 255, 30, 230, 0, 4, 112, 225, 47, 255, 30, 230, 0, 4, 144, 225, 47, 255, 30, 230, 0, 4, 176, 225, 47, 255, 30, 230, - 0, 4, 208, 225, 47, 255, 30, 230, 0, 4, 240, 225, 47, 255, 30, 230, 0, 5, 16, 225, 47, 255, 30, 230, 0, 5, 48, 225, - 47, 255, 30, 230, 0, 5, 80, 225, 47, 255, 30, 230, 0, 6, 144, 225, 47, 255, 30, 230, 0, 7, 240, 225, 47, 255, 30, 230, - 0, 8, 16, 225, 47, 255, 30, 230, 0, 10, 16, 225, 47, 255, 30, 226, 144, 16, 0, 227, 176, 0, 4, 239, 0, 0, 171, 225, - 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 180, 3, 70, 113, 8, 73, 0, 64, 0, 73, 90, 9, 0, 73, 68, 142, 188, 3, 71, - 112, 226, 81, 32, 1, 1, 47, 255, 30, 58, 0, 0, 54, 225, 80, 0, 1, 154, 0, 0, 34, 225, 17, 0, 2, 10, 0, 0, 35, 227, 17, - 2, 14, 1, 160, 17, 129, 3, 160, 48, 8, 19, 160, 48, 1, 227, 81, 2, 1, 49, 81, 0, 0, 49, 160, 18, 1, 49, 160, 50, 3, - 58, 255, 255, 250, 227, 81, 1, 2, 49, 81, 0, 0, 49, 160, 16, 129, 49, 160, 48, 131, 58, 255, 255, 250, 227, 160, 32, - 0, 225, 80, 0, 1, 32, 64, 0, 1, 33, 130, 32, 3, 225, 80, 0, 161, 32, 64, 0, 161, 33, 130, 32, 163, 225, 80, 1, 33, 32, - 64, 1, 33, 33, 130, 33, 35, 225, 80, 1, 161, 32, 64, 1, 161, 33, 130, 33, 163, 227, 80, 0, 0, 17, 176, 50, 35, 17, 160, - 18, 33, 26, 255, 255, 239, 225, 160, 0, 2, 225, 47, 255, 30, 3, 160, 0, 1, 19, 160, 0, 0, 225, 47, 255, 30, 227, 81, - 8, 1, 33, 160, 24, 33, 35, 160, 32, 16, 51, 160, 32, 0, 227, 81, 12, 1, 33, 160, 20, 33, 34, 130, 32, 8, 227, 81, 0, - 16, 33, 160, 18, 33, 34, 130, 32, 4, 227, 81, 0, 4, 130, 130, 32, 3, 144, 130, 32, 161, 225, 160, 2, 48, 225, 47, 255, - 30, 225, 47, 255, 31, 225, 160, 0, 0, 227, 80, 0, 0, 19, 224, 0, 0, 234, 0, 1, 11, 227, 81, 0, 0, 10, 255, 255, 248, - 233, 45, 64, 3, 235, 255, 255, 188, 232, 189, 64, 6, 224, 3, 0, 146, 224, 65, 16, 3, 225, 47, 255, 30, 227, 81, 0, 0, - 10, 0, 0, 67, 224, 32, 192, 1, 66, 97, 16, 0, 226, 81, 32, 1, 10, 0, 0, 39, 225, 176, 48, 0, 66, 96, 48, 0, 225, 83, - 0, 1, 154, 0, 0, 38, 225, 17, 0, 2, 10, 0, 0, 40, 227, 17, 2, 14, 1, 160, 17, 129, 3, 160, 32, 8, 19, 160, 32, 1, 227, - 81, 2, 1, 49, 81, 0, 3, 49, 160, 18, 1, 49, 160, 34, 2, 58, 255, 255, 250, 227, 81, 1, 2, 49, 81, 0, 3, 49, 160, 16, - 129, 49, 160, 32, 130, 58, 255, 255, 250, 227, 160, 0, 0, 225, 83, 0, 1, 32, 67, 48, 1, 33, 128, 0, 2, 225, 83, 0, 161, - 32, 67, 48, 161, 33, 128, 0, 162, 225, 83, 1, 33, 32, 67, 49, 33, 33, 128, 1, 34, 225, 83, 1, 161, 32, 67, 49, 161, - 33, 128, 1, 162, 227, 83, 0, 0, 17, 176, 34, 34, 17, 160, 18, 33, 26, 255, 255, 239, 227, 92, 0, 0, 66, 96, 0, 0, 225, - 47, 255, 30, 225, 60, 0, 0, 66, 96, 0, 0, 225, 47, 255, 30, 51, 160, 0, 0, 1, 160, 15, 204, 3, 128, 0, 1, 225, 47, 255, - 30, 227, 81, 8, 1, 33, 160, 24, 33, 35, 160, 32, 16, 51, 160, 32, 0, 227, 81, 12, 1, 33, 160, 20, 33, 34, 130, 32, 8, - 227, 81, 0, 16, 33, 160, 18, 33, 34, 130, 32, 4, 227, 81, 0, 4, 130, 130, 32, 3, 144, 130, 32, 161, 227, 92, 0, 0, 225, - 160, 2, 51, 66, 96, 0, 0, 225, 47, 255, 30, 225, 47, 255, 31, 225, 160, 0, 0, 227, 80, 0, 0, 195, 224, 1, 2, 179, 160, - 1, 2, 234, 0, 0, 183, 227, 81, 0, 0, 10, 255, 255, 247, 233, 45, 64, 3, 235, 255, 255, 177, 232, 189, 64, 6, 224, 3, - 0, 146, 224, 65, 16, 3, 225, 47, 255, 30, 71, 112, 70, 192, 33, 16, 6, 2, 14, 3, 65, 200, 67, 19, 6, 2, 14, 0, 67, 16, - 65, 200, 67, 24, 71, 112, 70, 192, 181, 112, 28, 4, 28, 13, 42, 3, 217, 33, 28, 11, 67, 3, 7, 158, 208, 18, 120, 32, - 120, 41, 66, 136, 209, 29, 58, 1, 35, 0, 224, 5, 52, 1, 51, 1, 120, 32, 92, 233, 66, 136, 209, 20, 66, 154, 209, 247, - 32, 0, 188, 112, 188, 2, 71, 8, 28, 13, 28, 4, 201, 8, 200, 64, 66, 158, 209, 4, 58, 4, 28, 4, 28, 13, 42, 3, 216, 244, - 32, 0, 42, 0, 209, 222, 231, 237, 26, 64, 231, 235, 70, 192, 181, 240, 28, 5, 28, 14, 28, 20, 42, 15, 217, 3, 28, 11, - 67, 3, 7, 159, 208, 10, 44, 0, 208, 5, 35, 0, 92, 242, 84, 234, 51, 1, 66, 163, 209, 250, 188, 240, 188, 2, 71, 8, 28, - 21, 28, 12, 28, 3, 104, 38, 96, 30, 104, 102, 96, 94, 104, 166, 96, 158, 104, 230, 61, 16, 96, 222, 52, 16, 51, 16, - 45, 15, 216, 242, 58, 16, 9, 23, 28, 126, 1, 63, 1, 54, 27, 215, 25, 133, 28, 60, 25, 142, 47, 3, 217, 217, 28, 52, - 28, 59, 28, 42, 204, 2, 59, 4, 194, 2, 43, 3, 216, 250, 63, 4, 8, 188, 28, 99, 0, 155, 0, 164, 24, 237, 24, 246, 27, - 60, 231, 200, 70, 192, 181, 112, 28, 3, 7, 132, 208, 13, 42, 0, 208, 64, 6, 13, 58, 1, 14, 45, 36, 3, 224, 2, 42, 0, - 208, 57, 58, 1, 112, 29, 51, 1, 66, 35, 209, 248, 42, 3, 217, 41, 37, 255, 64, 13, 2, 44, 67, 37, 4, 44, 28, 30, 67, - 37, 42, 15, 217, 18, 28, 28, 28, 22, 62, 16, 96, 37, 96, 101, 96, 165, 96, 229, 52, 16, 46, 15, 216, 247, 58, 16, 9, - 22, 54, 1, 1, 54, 25, 158, 35, 15, 64, 26, 42, 3, 217, 12, 28, 52, 28, 19, 59, 4, 196, 32, 43, 3, 216, 251, 58, 4, 8, - 147, 51, 1, 0, 155, 24, 246, 35, 3, 64, 26, 28, 51, 42, 0, 208, 6, 6, 9, 14, 12, 33, 0, 84, 92, 49, 1, 66, 138, 209, - 251, 188, 112, 188, 2, 71, 8, 120, 2, 120, 11, 48, 1, 49, 1, 42, 0, 208, 1, 66, 154, 208, 247, 26, 208, 71, 112, 35, - 0, 92, 194, 51, 1, 42, 0, 209, 251, 30, 88, 71, 112, 70, 192, 181, 240, 28, 3, 32, 0, 42, 0, 208, 72, 28, 8, 67, 24, - 36, 3, 30, 85, 64, 4, 209, 42, 28, 30, 28, 13, 42, 3, 217, 67, 104, 31, 104, 8, 66, 135, 209, 63, 58, 4, 28, 32, 42, - 0, 208, 54, 72, 34, 24, 61, 67, 189, 79, 33, 28, 32, 66, 61, 209, 47, 29, 28, 29, 8, 224, 11, 204, 8, 200, 2, 66, 139, - 209, 45, 58, 4, 42, 0, 208, 40, 77, 25, 25, 89, 67, 153, 66, 57, 209, 35, 28, 38, 28, 5, 42, 3, 216, 239, 28, 35, 28, - 1, 42, 0, 208, 33, 30, 85, 120, 28, 120, 8, 66, 132, 209, 18, 32, 0, 45, 0, 208, 16, 44, 0, 208, 14, 61, 1, 34, 0, 224, - 4, 66, 170, 208, 12, 50, 1, 44, 0, 208, 9, 24, 152, 120, 68, 24, 136, 120, 64, 66, 132, 208, 244, 26, 32, 188, 240, - 188, 2, 71, 8, 32, 0, 231, 250, 28, 41, 28, 51, 30, 85, 231, 222, 120, 36, 120, 0, 26, 32, 231, 242, 70, 192, 254, 254, - 254, 255, 128, 128, 128, 128, 0, 0, 0, 0, 71, 120, 70, 192, 234, 255, 254, 125, 71, 120, 70, 192, 234, 255, 254, 137, - 71, 120, 70, 192, 234, 255, 254, 123, 71, 120, 70, 192, 234, 255, 254, 253, 71, 120, 70, 192, 234, 255, 233, 173, 71, - 120, 70, 192, 234, 255, 254, 119, 71, 120, 70, 192, 234, 255, 254, 184, 71, 120, 70, 192, 234, 255, 254, 163, 71, 120, - 70, 192, 234, 255, 233, 198, 229, 159, 192, 0, 225, 47, 255, 28, 19, 112, 86, 241, 71, 120, 70, 192, 234, 255, 254, - 124, 71, 120, 70, 192, 234, 255, 254, 244, 71, 120, 70, 192, 234, 255, 255, 62, 71, 120, 70, 192, 234, 255, 254, 84, - 71, 120, 70, 192, 234, 255, 254, 80, 71, 120, 70, 192, 234, 255, 254, 112, 71, 120, 70, 192, 234, 255, 254, 86, 71, - 120, 70, 192, 234, 255, 254, 88, 71, 120, 70, 192, 234, 255, 233, 186, 71, 120, 70, 192, 234, 255, 254, 96, 71, 120, - 70, 192, 234, 255, 254, 144, 71, 120, 70, 192, 234, 255, 233, 176, 71, 120, 70, 192, 234, 255, 254, 136, 71, 120, 70, - 192, 234, 255, 254, 84, 71, 120, 70, 192, 234, 255, 233, 130, 71, 120, 70, 192, 234, 255, 254, 124, 71, 120, 70, 192, - 234, 255, 254, 34, 71, 120, 70, 192, 234, 255, 254, 66, 71, 120, 70, 192, 234, 255, 233, 118, 71, 120, 70, 192, 234, - 255, 254, 82, 71, 120, 70, 192, 234, 255, 254, 118, 71, 120, 70, 192, 234, 255, 254, 34, 0, 0, 0, 0, 73, 79, 83, 32, - 109, 111, 100, 117, 108, 101, 0, 0, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 1, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 229, 31, 240, 4, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 15, - 66, 64, 19, 114, 197, 4, 16, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 87, 66, 70, 83, - 32, 110, 111, 116, 32, 101, 110, 111, 117, 103, 104, 32, 109, 101, 109, 111, 114, 121, 33, 10, 0, 47, 100, 101, 118, - 47, 117, 115, 98, 49, 50, 51, 0, 47, 100, 101, 118, 47, 117, 115, 98, 49, 50, 51, 47, 79, 70, 70, 0, 102, 105, 114, - 115, 116, 32, 114, 101, 97, 100, 32, 115, 101, 99, 116, 111, 114, 32, 40, 37, 105, 41, 32, 79, 75, 10, 0, 102, 105, - 114, 115, 116, 32, 114, 101, 97, 100, 32, 115, 101, 99, 116, 111, 114, 32, 40, 37, 105, 41, 32, 69, 82, 82, 79, 82, - 10, 0, 101, 104, 99, 105, 95, 105, 110, 116, 95, 119, 111, 114, 107, 105, 110, 103, 95, 99, 97, 108, 108, 98, 97, 99, - 107, 95, 112, 97, 114, 116, 49, 44, 32, 116, 105, 109, 101, 111, 117, 116, 58, 32, 37, 117, 10, 0, 114, 101, 116, 114, - 121, 10, 0, 117, 114, 98, 32, 114, 101, 116, 118, 97, 108, 58, 32, 37, 105, 10, 0, 117, 110, 97, 98, 108, 101, 32, 116, - 111, 32, 103, 101, 116, 32, 100, 101, 118, 105, 99, 101, 32, 100, 101, 115, 99, 46, 46, 46, 10, 0, 103, 101, 116, 116, - 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, 82, 32, 45, 32, 114, - 101, 115, 101, 116, 10, 0, 101, 114, 114, 111, 114, 32, 103, 101, 116, 116, 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, - 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, 82, 10, 0, 103, 101, 116, 116, 105, 110, 103, 32, 85, 83, 66, - 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, 82, 32, 45, 32, 97, 100, 113, 117, 105, 114, 101, - 32, 45, 32, 114, 101, 115, 101, 116, 10, 0, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, - 84, 79, 82, 32, 111, 107, 10, 0, 116, 114, 121, 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 83, 69, 84, 65, 68, - 68, 82, 69, 83, 83, 58, 32, 37, 100, 10, 0, 117, 110, 97, 98, 108, 101, 32, 116, 111, 32, 115, 101, 116, 32, 100, 101, - 118, 105, 99, 101, 32, 97, 100, 100, 114, 58, 32, 37, 100, 10, 0, 85, 83, 66, 95, 82, 69, 81, 95, 83, 69, 84, 65, 68, - 68, 82, 69, 83, 83, 32, 111, 107, 58, 32, 37, 100, 10, 0, 101, 114, 114, 111, 114, 32, 99, 104, 101, 99, 107, 105, 110, - 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, 82, 10, 0, 111, 107, 32, 99, - 104, 101, 99, 107, 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, - 82, 10, 0, 105, 110, 105, 116, 32, 111, 107, 10, 0, 10, 113, 116, 100, 32, 101, 114, 114, 111, 114, 33, 58, 0, 32, 66, - 65, 66, 66, 76, 69, 0, 32, 32, 109, 105, 115, 115, 101, 100, 32, 109, 105, 99, 114, 111, 32, 102, 114, 97, 109, 101, - 0, 32, 32, 100, 97, 116, 97, 98, 117, 102, 102, 101, 114, 32, 101, 114, 114, 111, 114, 0, 32, 119, 114, 111, 110, 103, - 32, 97, 99, 107, 0, 32, 116, 111, 111, 32, 109, 97, 110, 121, 32, 101, 114, 114, 111, 114, 115, 0, 105, 110, 116, 101, - 114, 114, 117, 112, 116, 95, 99, 97, 108, 108, 98, 97, 99, 107, 95, 104, 97, 110, 100, 32, 83, 84, 83, 95, 73, 78, 84, - 10, 0, 105, 110, 116, 101, 114, 114, 117, 112, 116, 95, 99, 97, 108, 108, 98, 97, 99, 107, 95, 104, 97, 110, 100, 32, - 83, 84, 83, 95, 80, 67, 68, 10, 0, 117, 115, 98, 115, 116, 111, 114, 97, 103, 101, 32, 114, 101, 115, 101, 116, 58, - 32, 66, 85, 76, 75, 32, 82, 69, 83, 69, 84, 32, 37, 105, 10, 0, 117, 115, 98, 115, 116, 111, 114, 97, 103, 101, 32, - 114, 101, 115, 101, 116, 58, 32, 99, 108, 101, 97, 114, 104, 97, 108, 116, 32, 105, 110, 32, 114, 101, 116, 32, 37, - 105, 10, 0, 117, 115, 98, 115, 116, 111, 114, 97, 103, 101, 32, 114, 101, 115, 101, 116, 58, 32, 99, 108, 101, 97, 114, - 104, 97, 108, 116, 32, 111, 117, 116, 32, 114, 101, 116, 32, 37, 105, 10, 0, 117, 115, 98, 115, 116, 111, 114, 97, 103, - 101, 32, 114, 101, 115, 101, 116, 58, 32, 85, 83, 66, 95, 71, 101, 116, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, - 105, 111, 110, 32, 114, 101, 116, 32, 37, 105, 10, 0, 114, 101, 115, 101, 116, 32, 111, 107, 10, 0, 95, 95, 115, 101, - 110, 100, 95, 99, 98, 119, 32, 114, 101, 116, 32, 37, 105, 10, 0, 95, 95, 85, 83, 66, 95, 66, 108, 107, 77, 115, 103, - 84, 105, 109, 101, 111, 117, 116, 32, 37, 105, 10, 0, 95, 95, 114, 101, 97, 100, 95, 99, 115, 119, 32, 37, 105, 10, - 0, 32, 32, 32, 32, 83, 67, 83, 73, 95, 84, 69, 83, 84, 95, 85, 78, 73, 84, 95, 82, 69, 65, 68, 89, 32, 114, 101, 116, - 32, 37, 105, 10, 0, 32, 32, 32, 32, 83, 67, 83, 73, 95, 82, 69, 81, 85, 69, 83, 84, 95, 83, 69, 78, 83, 69, 32, 114, - 101, 116, 32, 37, 105, 10, 0, 32, 32, 32, 32, 83, 67, 83, 73, 95, 82, 69, 81, 85, 69, 83, 84, 95, 83, 69, 78, 83, 69, - 32, 115, 116, 97, 116, 117, 115, 32, 37, 120, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, - 110, 40, 41, 58, 32, 85, 83, 66, 95, 71, 101, 116, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 115, 32, 37, 105, - 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 100, 101, 118, 105, 99, 101, - 32, 99, 104, 97, 110, 103, 101, 100, 33, 33, 33, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, - 110, 40, 41, 58, 32, 117, 99, 100, 32, 37, 105, 32, 80, 111, 119, 101, 114, 32, 37, 105, 32, 109, 65, 10, 0, 85, 83, - 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, - 32, 115, 117, 98, 99, 108, 97, 115, 115, 32, 37, 105, 32, 97, 116, 97, 95, 112, 114, 111, 116, 32, 37, 105, 32, 10, - 0, 73, 110, 32, 80, 111, 105, 110, 116, 58, 32, 37, 105, 10, 0, 79, 117, 116, 32, 80, 111, 105, 110, 116, 58, 32, 37, - 105, 10, 0, 101, 112, 95, 105, 110, 32, 37, 120, 32, 101, 112, 95, 111, 117, 116, 32, 37, 120, 10, 0, 85, 83, 66, 83, - 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 99, 97, 110, 110, 111, 116, 32, 102, 105, 110, 100, - 32, 97, 110, 121, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 33, 33, 33, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, - 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 99, 111, 110, 102, 58, 32, 37, 120, 32, 97, 108, 116, 73, 110, 116, - 101, 114, 102, 97, 99, 101, 58, 32, 37, 120, 10, 0, 85, 83, 66, 95, 71, 101, 116, 67, 111, 110, 102, 105, 103, 117, - 114, 97, 116, 105, 111, 110, 40, 41, 32, 69, 114, 114, 111, 114, 10, 0, 65, 99, 116, 117, 97, 108, 32, 99, 111, 110, - 102, 58, 32, 37, 120, 32, 32, 32, 110, 101, 120, 116, 32, 99, 111, 110, 102, 58, 32, 37, 120, 10, 0, 85, 83, 66, 95, - 83, 101, 116, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 69, 114, 114, 111, 114, 10, - 0, 85, 83, 66, 95, 83, 101, 116, 65, 108, 116, 101, 114, 110, 97, 116, 105, 118, 101, 73, 110, 116, 101, 114, 102, 97, - 99, 101, 40, 41, 32, 69, 114, 114, 111, 114, 46, 32, 67, 111, 110, 116, 105, 110, 117, 101, 10, 0, 85, 83, 66, 95, 83, - 101, 116, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 38, 32, 85, 83, 66, 95, 83, 101, - 116, 65, 108, 116, 101, 114, 110, 97, 116, 105, 118, 101, 73, 110, 116, 101, 114, 102, 97, 99, 101, 40, 41, 32, 79, - 75, 10, 0, 71, 101, 116, 95, 77, 97, 120, 95, 76, 117, 110, 40, 41, 58, 32, 101, 114, 114, 44, 32, 100, 101, 102, 97, - 117, 108, 116, 32, 109, 97, 120, 95, 108, 117, 110, 61, 56, 10, 0, 71, 101, 116, 95, 77, 97, 120, 95, 76, 117, 110, - 40, 41, 58, 32, 79, 75, 58, 32, 37, 105, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, - 40, 41, 58, 32, 116, 114, 121, 95, 115, 116, 97, 116, 117, 115, 32, 37, 105, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, - 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 79, 75, 44, 32, 114, 101, 116, 117, 114, 110, 32, 48, 10, 0, 32, 32, - 32, 32, 115, 116, 97, 114, 116, 95, 115, 116, 111, 112, 32, 99, 109, 100, 32, 114, 101, 116, 32, 37, 105, 10, 0, 32, - 32, 32, 32, 73, 110, 113, 117, 105, 114, 121, 32, 114, 101, 116, 32, 37, 105, 10, 0, 32, 32, 32, 32, 68, 101, 118, 105, - 99, 101, 32, 84, 121, 112, 101, 58, 32, 37, 120, 10, 0, 32, 32, 32, 32, 82, 101, 97, 100, 67, 97, 112, 97, 99, 105, - 116, 121, 32, 114, 101, 116, 32, 37, 105, 32, 32, 115, 101, 99, 116, 111, 114, 95, 115, 105, 122, 101, 58, 32, 37, 117, - 32, 32, 115, 101, 99, 116, 111, 114, 115, 58, 32, 37, 117, 10, 0, 70, 97, 115, 116, 32, 85, 83, 66, 83, 116, 111, 114, - 97, 103, 101, 95, 77, 111, 117, 110, 116, 76, 85, 78, 32, 37, 105, 35, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, - 101, 95, 77, 111, 117, 110, 116, 76, 85, 78, 58, 32, 114, 101, 116, 32, 37, 105, 10, 0, 85, 83, 66, 83, 84, 79, 82, - 65, 71, 69, 95, 71, 69, 84, 95, 77, 65, 88, 95, 76, 85, 78, 32, 114, 101, 116, 32, 37, 105, 32, 109, 97, 120, 108, 117, - 110, 32, 37, 105, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 77, 111, 117, 110, 116, 76, 85, 78, 32, 102, - 97, 105, 108, 33, 33, 33, 10, 0, 10, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 106, 235, 108, 233, 24, 255, 75, 11, 25, 190, 96, 30, 75, 11, 104, 24, 75, 11, 104, 26, 240, 0, 250, 103, 108, 233, + 152, 1, 154, 0, 240, 0, 250, 98, 224, 2, 36, 1, 224, 0, 28, 4, 176, 9, 28, 32, 188, 240, 188, 2, 71, 8, 70, 192, 19, + 112, 96, 80, 19, 112, 106, 68, 19, 112, 106, 76, 71, 32, 70, 192, 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, 204, 225, 47, 255, + 30, 225, 160, 0, 0, 225, 160, 0, 0, 230, 0, 0, 16, 225, 47, 255, 30, 230, 0, 0, 48, 225, 47, 255, 30, 230, 0, 0, 80, + 225, 47, 255, 30, 230, 0, 0, 112, 225, 47, 255, 30, 230, 0, 0, 144, 225, 47, 255, 30, 230, 0, 0, 176, 225, 47, 255, + 30, 230, 0, 0, 208, 225, 47, 255, 30, 230, 0, 0, 240, 225, 47, 255, 30, 230, 0, 1, 16, 225, 47, 255, 30, 230, 0, 1, + 48, 225, 47, 255, 30, 230, 0, 1, 80, 225, 47, 255, 30, 230, 0, 1, 112, 225, 47, 255, 30, 230, 0, 1, 144, 225, 47, 255, + 30, 230, 0, 1, 176, 225, 47, 255, 30, 230, 0, 1, 208, 225, 47, 255, 30, 230, 0, 1, 240, 225, 47, 255, 30, 230, 0, 2, + 16, 225, 47, 255, 30, 230, 0, 2, 48, 225, 47, 255, 30, 230, 0, 2, 80, 225, 47, 255, 30, 230, 0, 2, 112, 225, 47, 255, + 30, 230, 0, 2, 144, 225, 47, 255, 30, 230, 0, 2, 176, 225, 47, 255, 30, 230, 0, 2, 208, 225, 47, 255, 30, 230, 0, 2, + 240, 225, 47, 255, 30, 230, 0, 3, 16, 225, 47, 255, 30, 230, 0, 3, 48, 225, 47, 255, 30, 230, 0, 3, 80, 225, 47, 255, + 30, 230, 0, 3, 112, 225, 47, 255, 30, 230, 0, 3, 144, 225, 47, 255, 30, 230, 0, 3, 176, 225, 47, 255, 30, 230, 0, 3, + 208, 225, 47, 255, 30, 230, 0, 3, 240, 225, 47, 255, 30, 230, 0, 4, 16, 225, 47, 255, 30, 230, 0, 4, 48, 225, 47, 255, + 30, 230, 0, 4, 80, 225, 47, 255, 30, 230, 0, 4, 112, 225, 47, 255, 30, 230, 0, 4, 144, 225, 47, 255, 30, 230, 0, 4, + 176, 225, 47, 255, 30, 230, 0, 4, 208, 225, 47, 255, 30, 230, 0, 4, 240, 225, 47, 255, 30, 230, 0, 5, 16, 225, 47, 255, + 30, 230, 0, 5, 48, 225, 47, 255, 30, 230, 0, 5, 80, 225, 47, 255, 30, 230, 0, 6, 144, 225, 47, 255, 30, 230, 0, 7, 240, + 225, 47, 255, 30, 230, 0, 8, 16, 225, 47, 255, 30, 230, 0, 10, 16, 225, 47, 255, 30, 226, 144, 16, 0, 227, 176, 0, 4, + 239, 0, 0, 171, 225, 47, 255, 30, 225, 160, 0, 0, 225, 160, 0, 0, 180, 3, 70, 113, 8, 73, 0, 64, 0, 73, 90, 9, 0, 73, + 68, 142, 188, 3, 71, 112, 226, 81, 32, 1, 1, 47, 255, 30, 58, 0, 0, 54, 225, 80, 0, 1, 154, 0, 0, 34, 225, 17, 0, 2, + 10, 0, 0, 35, 227, 17, 2, 14, 1, 160, 17, 129, 3, 160, 48, 8, 19, 160, 48, 1, 227, 81, 2, 1, 49, 81, 0, 0, 49, 160, + 18, 1, 49, 160, 50, 3, 58, 255, 255, 250, 227, 81, 1, 2, 49, 81, 0, 0, 49, 160, 16, 129, 49, 160, 48, 131, 58, 255, + 255, 250, 227, 160, 32, 0, 225, 80, 0, 1, 32, 64, 0, 1, 33, 130, 32, 3, 225, 80, 0, 161, 32, 64, 0, 161, 33, 130, 32, + 163, 225, 80, 1, 33, 32, 64, 1, 33, 33, 130, 33, 35, 225, 80, 1, 161, 32, 64, 1, 161, 33, 130, 33, 163, 227, 80, 0, + 0, 17, 176, 50, 35, 17, 160, 18, 33, 26, 255, 255, 239, 225, 160, 0, 2, 225, 47, 255, 30, 3, 160, 0, 1, 19, 160, 0, + 0, 225, 47, 255, 30, 227, 81, 8, 1, 33, 160, 24, 33, 35, 160, 32, 16, 51, 160, 32, 0, 227, 81, 12, 1, 33, 160, 20, 33, + 34, 130, 32, 8, 227, 81, 0, 16, 33, 160, 18, 33, 34, 130, 32, 4, 227, 81, 0, 4, 130, 130, 32, 3, 144, 130, 32, 161, + 225, 160, 2, 48, 225, 47, 255, 30, 225, 47, 255, 31, 225, 160, 0, 0, 227, 80, 0, 0, 19, 224, 0, 0, 234, 0, 1, 11, 227, + 81, 0, 0, 10, 255, 255, 248, 233, 45, 64, 3, 235, 255, 255, 188, 232, 189, 64, 6, 224, 3, 0, 146, 224, 65, 16, 3, 225, + 47, 255, 30, 227, 81, 0, 0, 10, 0, 0, 67, 224, 32, 192, 1, 66, 97, 16, 0, 226, 81, 32, 1, 10, 0, 0, 39, 225, 176, 48, + 0, 66, 96, 48, 0, 225, 83, 0, 1, 154, 0, 0, 38, 225, 17, 0, 2, 10, 0, 0, 40, 227, 17, 2, 14, 1, 160, 17, 129, 3, 160, + 32, 8, 19, 160, 32, 1, 227, 81, 2, 1, 49, 81, 0, 3, 49, 160, 18, 1, 49, 160, 34, 2, 58, 255, 255, 250, 227, 81, 1, 2, + 49, 81, 0, 3, 49, 160, 16, 129, 49, 160, 32, 130, 58, 255, 255, 250, 227, 160, 0, 0, 225, 83, 0, 1, 32, 67, 48, 1, 33, + 128, 0, 2, 225, 83, 0, 161, 32, 67, 48, 161, 33, 128, 0, 162, 225, 83, 1, 33, 32, 67, 49, 33, 33, 128, 1, 34, 225, 83, + 1, 161, 32, 67, 49, 161, 33, 128, 1, 162, 227, 83, 0, 0, 17, 176, 34, 34, 17, 160, 18, 33, 26, 255, 255, 239, 227, 92, + 0, 0, 66, 96, 0, 0, 225, 47, 255, 30, 225, 60, 0, 0, 66, 96, 0, 0, 225, 47, 255, 30, 51, 160, 0, 0, 1, 160, 15, 204, + 3, 128, 0, 1, 225, 47, 255, 30, 227, 81, 8, 1, 33, 160, 24, 33, 35, 160, 32, 16, 51, 160, 32, 0, 227, 81, 12, 1, 33, + 160, 20, 33, 34, 130, 32, 8, 227, 81, 0, 16, 33, 160, 18, 33, 34, 130, 32, 4, 227, 81, 0, 4, 130, 130, 32, 3, 144, 130, + 32, 161, 227, 92, 0, 0, 225, 160, 2, 51, 66, 96, 0, 0, 225, 47, 255, 30, 225, 47, 255, 31, 225, 160, 0, 0, 227, 80, + 0, 0, 195, 224, 1, 2, 179, 160, 1, 2, 234, 0, 0, 183, 227, 81, 0, 0, 10, 255, 255, 247, 233, 45, 64, 3, 235, 255, 255, + 177, 232, 189, 64, 6, 224, 3, 0, 146, 224, 65, 16, 3, 225, 47, 255, 30, 71, 112, 70, 192, 33, 16, 6, 2, 14, 3, 65, 200, + 67, 19, 6, 2, 14, 0, 67, 16, 65, 200, 67, 24, 71, 112, 70, 192, 181, 112, 28, 4, 28, 13, 42, 3, 217, 33, 28, 11, 67, + 3, 7, 158, 208, 18, 120, 32, 120, 41, 66, 136, 209, 29, 58, 1, 35, 0, 224, 5, 52, 1, 51, 1, 120, 32, 92, 233, 66, 136, + 209, 20, 66, 154, 209, 247, 32, 0, 188, 112, 188, 2, 71, 8, 28, 13, 28, 4, 201, 8, 200, 64, 66, 158, 209, 4, 58, 4, + 28, 4, 28, 13, 42, 3, 216, 244, 32, 0, 42, 0, 209, 222, 231, 237, 26, 64, 231, 235, 70, 192, 181, 240, 28, 5, 28, 14, + 28, 20, 42, 15, 217, 3, 28, 11, 67, 3, 7, 159, 208, 10, 44, 0, 208, 5, 35, 0, 92, 242, 84, 234, 51, 1, 66, 163, 209, + 250, 188, 240, 188, 2, 71, 8, 28, 21, 28, 12, 28, 3, 104, 38, 96, 30, 104, 102, 96, 94, 104, 166, 96, 158, 104, 230, + 61, 16, 96, 222, 52, 16, 51, 16, 45, 15, 216, 242, 58, 16, 9, 23, 28, 126, 1, 63, 1, 54, 27, 215, 25, 133, 28, 60, 25, + 142, 47, 3, 217, 217, 28, 52, 28, 59, 28, 42, 204, 2, 59, 4, 194, 2, 43, 3, 216, 250, 63, 4, 8, 188, 28, 99, 0, 155, + 0, 164, 24, 237, 24, 246, 27, 60, 231, 200, 70, 192, 181, 112, 28, 3, 7, 132, 208, 13, 42, 0, 208, 64, 6, 13, 58, 1, + 14, 45, 36, 3, 224, 2, 42, 0, 208, 57, 58, 1, 112, 29, 51, 1, 66, 35, 209, 248, 42, 3, 217, 41, 37, 255, 64, 13, 2, + 44, 67, 37, 4, 44, 28, 30, 67, 37, 42, 15, 217, 18, 28, 28, 28, 22, 62, 16, 96, 37, 96, 101, 96, 165, 96, 229, 52, 16, + 46, 15, 216, 247, 58, 16, 9, 22, 54, 1, 1, 54, 25, 158, 35, 15, 64, 26, 42, 3, 217, 12, 28, 52, 28, 19, 59, 4, 196, + 32, 43, 3, 216, 251, 58, 4, 8, 147, 51, 1, 0, 155, 24, 246, 35, 3, 64, 26, 28, 51, 42, 0, 208, 6, 6, 9, 14, 12, 33, + 0, 84, 92, 49, 1, 66, 138, 209, 251, 188, 112, 188, 2, 71, 8, 120, 2, 120, 11, 48, 1, 49, 1, 42, 0, 208, 1, 66, 154, + 208, 247, 26, 208, 71, 112, 35, 0, 92, 194, 51, 1, 42, 0, 209, 251, 30, 88, 71, 112, 70, 192, 181, 240, 28, 3, 32, 0, + 42, 0, 208, 72, 28, 8, 67, 24, 36, 3, 30, 85, 64, 4, 209, 42, 28, 30, 28, 13, 42, 3, 217, 67, 104, 31, 104, 8, 66, 135, + 209, 63, 58, 4, 28, 32, 42, 0, 208, 54, 72, 34, 24, 61, 67, 189, 79, 33, 28, 32, 66, 61, 209, 47, 29, 28, 29, 8, 224, + 11, 204, 8, 200, 2, 66, 139, 209, 45, 58, 4, 42, 0, 208, 40, 77, 25, 25, 89, 67, 153, 66, 57, 209, 35, 28, 38, 28, 5, + 42, 3, 216, 239, 28, 35, 28, 1, 42, 0, 208, 33, 30, 85, 120, 28, 120, 8, 66, 132, 209, 18, 32, 0, 45, 0, 208, 16, 44, + 0, 208, 14, 61, 1, 34, 0, 224, 4, 66, 170, 208, 12, 50, 1, 44, 0, 208, 9, 24, 152, 120, 68, 24, 136, 120, 64, 66, 132, + 208, 244, 26, 32, 188, 240, 188, 2, 71, 8, 32, 0, 231, 250, 28, 41, 28, 51, 30, 85, 231, 222, 120, 36, 120, 0, 26, 32, + 231, 242, 70, 192, 254, 254, 254, 255, 128, 128, 128, 128, 0, 0, 0, 0, 71, 120, 70, 192, 234, 255, 254, 125, 71, 120, + 70, 192, 234, 255, 254, 137, 71, 120, 70, 192, 234, 255, 254, 123, 71, 120, 70, 192, 234, 255, 254, 253, 71, 120, 70, + 192, 234, 255, 233, 193, 71, 120, 70, 192, 234, 255, 254, 119, 71, 120, 70, 192, 234, 255, 254, 184, 71, 120, 70, 192, + 234, 255, 254, 163, 71, 120, 70, 192, 234, 255, 233, 218, 229, 159, 192, 0, 225, 47, 255, 28, 19, 112, 86, 161, 71, + 120, 70, 192, 234, 255, 254, 124, 71, 120, 70, 192, 234, 255, 254, 244, 71, 120, 70, 192, 234, 255, 255, 62, 71, 120, + 70, 192, 234, 255, 254, 84, 71, 120, 70, 192, 234, 255, 254, 80, 71, 120, 70, 192, 234, 255, 254, 112, 71, 120, 70, + 192, 234, 255, 254, 86, 71, 120, 70, 192, 234, 255, 254, 88, 71, 120, 70, 192, 234, 255, 233, 206, 71, 120, 70, 192, + 234, 255, 254, 96, 71, 120, 70, 192, 234, 255, 254, 144, 71, 120, 70, 192, 234, 255, 233, 196, 71, 120, 70, 192, 234, + 255, 254, 136, 71, 120, 70, 192, 234, 255, 254, 84, 71, 120, 70, 192, 234, 255, 233, 150, 71, 120, 70, 192, 234, 255, + 254, 124, 71, 120, 70, 192, 234, 255, 254, 34, 71, 120, 70, 192, 234, 255, 254, 66, 71, 120, 70, 192, 234, 255, 233, + 138, 71, 120, 70, 192, 234, 255, 254, 82, 71, 120, 70, 192, 234, 255, 254, 118, 71, 120, 70, 192, 234, 255, 254, 34, + 0, 0, 0, 0, 73, 79, 83, 32, 109, 111, 100, 117, 108, 101, 0, 0, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 1, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 31, 240, 4, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 0, 15, 66, 64, 19, 114, 197, 4, 16, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, + 255, 255, 87, 66, 70, 83, 32, 110, 111, 116, 32, 101, 110, 111, 117, 103, 104, 32, 109, 101, 109, 111, 114, 121, 33, + 10, 0, 47, 100, 101, 118, 47, 117, 115, 98, 49, 50, 51, 0, 47, 100, 101, 118, 47, 117, 115, 98, 49, 50, 51, 47, 79, + 70, 70, 0, 102, 105, 114, 115, 116, 32, 114, 101, 97, 100, 32, 115, 101, 99, 116, 111, 114, 32, 40, 37, 105, 41, 32, + 79, 75, 10, 0, 102, 105, 114, 115, 116, 32, 114, 101, 97, 100, 32, 115, 101, 99, 116, 111, 114, 32, 40, 37, 105, 41, + 32, 69, 82, 82, 79, 82, 10, 0, 101, 104, 99, 105, 95, 105, 110, 116, 95, 119, 111, 114, 107, 105, 110, 103, 95, 99, + 97, 108, 108, 98, 97, 99, 107, 95, 112, 97, 114, 116, 49, 44, 32, 116, 105, 109, 101, 111, 117, 116, 58, 32, 37, 117, + 10, 0, 114, 101, 116, 114, 121, 10, 0, 117, 114, 98, 32, 114, 101, 116, 118, 97, 108, 58, 32, 37, 105, 10, 0, 117, 110, + 97, 98, 108, 101, 32, 116, 111, 32, 103, 101, 116, 32, 100, 101, 118, 105, 99, 101, 32, 100, 101, 115, 99, 46, 46, 46, + 10, 0, 103, 101, 116, 116, 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, + 84, 79, 82, 32, 45, 32, 114, 101, 115, 101, 116, 10, 0, 101, 114, 114, 111, 114, 32, 103, 101, 116, 116, 105, 110, 103, + 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, 82, 10, 0, 103, 101, 116, 116, 105, + 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, 82, 32, 45, 32, 97, 100, + 113, 117, 105, 114, 101, 32, 45, 32, 114, 101, 115, 101, 116, 10, 0, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, + 69, 83, 67, 82, 73, 80, 84, 79, 82, 32, 111, 107, 10, 0, 116, 114, 121, 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, + 95, 83, 69, 84, 65, 68, 68, 82, 69, 83, 83, 58, 32, 37, 100, 10, 0, 117, 110, 97, 98, 108, 101, 32, 116, 111, 32, 115, + 101, 116, 32, 100, 101, 118, 105, 99, 101, 32, 97, 100, 100, 114, 58, 32, 37, 100, 10, 0, 85, 83, 66, 95, 82, 69, 81, + 95, 83, 69, 84, 65, 68, 68, 82, 69, 83, 83, 32, 111, 107, 58, 32, 37, 100, 10, 0, 101, 114, 114, 111, 114, 32, 99, 104, + 101, 99, 107, 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, 67, 82, 73, 80, 84, 79, 82, + 10, 0, 111, 107, 32, 99, 104, 101, 99, 107, 105, 110, 103, 32, 85, 83, 66, 95, 82, 69, 81, 95, 71, 69, 84, 68, 69, 83, + 67, 82, 73, 80, 84, 79, 82, 10, 0, 105, 110, 105, 116, 32, 111, 107, 10, 0, 10, 113, 116, 100, 32, 101, 114, 114, 111, + 114, 33, 58, 0, 32, 66, 65, 66, 66, 76, 69, 0, 32, 32, 109, 105, 115, 115, 101, 100, 32, 109, 105, 99, 114, 111, 32, + 102, 114, 97, 109, 101, 0, 32, 32, 100, 97, 116, 97, 98, 117, 102, 102, 101, 114, 32, 101, 114, 114, 111, 114, 0, 32, + 119, 114, 111, 110, 103, 32, 97, 99, 107, 0, 32, 116, 111, 111, 32, 109, 97, 110, 121, 32, 101, 114, 114, 111, 114, + 115, 0, 105, 110, 116, 101, 114, 114, 117, 112, 116, 95, 99, 97, 108, 108, 98, 97, 99, 107, 95, 104, 97, 110, 100, 32, + 83, 84, 83, 95, 73, 78, 84, 10, 0, 105, 110, 116, 101, 114, 114, 117, 112, 116, 95, 99, 97, 108, 108, 98, 97, 99, 107, + 95, 104, 97, 110, 100, 32, 83, 84, 83, 95, 80, 67, 68, 10, 0, 117, 115, 98, 115, 116, 111, 114, 97, 103, 101, 32, 114, + 101, 115, 101, 116, 58, 32, 66, 85, 76, 75, 32, 82, 69, 83, 69, 84, 32, 37, 105, 10, 0, 117, 115, 98, 115, 116, 111, + 114, 97, 103, 101, 32, 114, 101, 115, 101, 116, 58, 32, 99, 108, 101, 97, 114, 104, 97, 108, 116, 32, 105, 110, 32, + 114, 101, 116, 32, 37, 105, 10, 0, 117, 115, 98, 115, 116, 111, 114, 97, 103, 101, 32, 114, 101, 115, 101, 116, 58, + 32, 99, 108, 101, 97, 114, 104, 97, 108, 116, 32, 111, 117, 116, 32, 114, 101, 116, 32, 37, 105, 10, 0, 117, 115, 98, + 115, 116, 111, 114, 97, 103, 101, 32, 114, 101, 115, 101, 116, 58, 32, 85, 83, 66, 95, 71, 101, 116, 67, 111, 110, 102, + 105, 103, 117, 114, 97, 116, 105, 111, 110, 32, 114, 101, 116, 32, 37, 105, 10, 0, 114, 101, 115, 101, 116, 32, 111, + 107, 10, 0, 95, 95, 115, 101, 110, 100, 95, 99, 98, 119, 32, 114, 101, 116, 32, 37, 105, 10, 0, 95, 95, 85, 83, 66, + 95, 66, 108, 107, 77, 115, 103, 84, 105, 109, 101, 111, 117, 116, 32, 37, 105, 10, 0, 95, 95, 114, 101, 97, 100, 95, + 99, 115, 119, 32, 37, 105, 10, 0, 32, 32, 32, 32, 83, 67, 83, 73, 95, 84, 69, 83, 84, 95, 85, 78, 73, 84, 95, 82, 69, + 65, 68, 89, 32, 114, 101, 116, 32, 37, 105, 10, 0, 32, 32, 32, 32, 83, 67, 83, 73, 95, 82, 69, 81, 85, 69, 83, 84, 95, + 83, 69, 78, 83, 69, 32, 114, 101, 116, 32, 37, 105, 10, 0, 32, 32, 32, 32, 83, 67, 83, 73, 95, 82, 69, 81, 85, 69, 83, + 84, 95, 83, 69, 78, 83, 69, 32, 115, 116, 97, 116, 117, 115, 32, 37, 120, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, + 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 85, 83, 66, 95, 71, 101, 116, 68, 101, 115, 99, 114, 105, 112, 116, + 111, 114, 115, 32, 37, 105, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, + 100, 101, 118, 105, 99, 101, 32, 99, 104, 97, 110, 103, 101, 100, 33, 33, 33, 10, 0, 85, 83, 66, 83, 116, 111, 114, + 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 117, 99, 100, 32, 37, 105, 32, 80, 111, 119, 101, 114, 32, 37, + 105, 32, 109, 65, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 105, 110, + 116, 101, 114, 102, 97, 99, 101, 32, 115, 117, 98, 99, 108, 97, 115, 115, 32, 37, 105, 32, 97, 116, 97, 95, 112, 114, + 111, 116, 32, 37, 105, 32, 10, 0, 73, 110, 32, 80, 111, 105, 110, 116, 58, 32, 37, 105, 10, 0, 79, 117, 116, 32, 80, + 111, 105, 110, 116, 58, 32, 37, 105, 10, 0, 101, 112, 95, 105, 110, 32, 37, 120, 32, 101, 112, 95, 111, 117, 116, 32, + 37, 120, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 99, 97, 110, 110, + 111, 116, 32, 102, 105, 110, 100, 32, 97, 110, 121, 32, 105, 110, 116, 101, 114, 102, 97, 99, 101, 33, 33, 33, 10, 0, + 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 99, 111, 110, 102, 58, 32, 37, 120, + 32, 97, 108, 116, 73, 110, 116, 101, 114, 102, 97, 99, 101, 58, 32, 37, 120, 10, 0, 85, 83, 66, 95, 71, 101, 116, 67, + 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, 69, 114, 114, 111, 114, 10, 0, 65, 99, 116, 117, + 97, 108, 32, 99, 111, 110, 102, 58, 32, 37, 120, 32, 32, 32, 110, 101, 120, 116, 32, 99, 111, 110, 102, 58, 32, 37, + 120, 10, 0, 85, 83, 66, 95, 83, 101, 116, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, + 69, 114, 114, 111, 114, 10, 0, 85, 83, 66, 95, 83, 101, 116, 65, 108, 116, 101, 114, 110, 97, 116, 105, 118, 101, 73, + 110, 116, 101, 114, 102, 97, 99, 101, 40, 41, 32, 69, 114, 114, 111, 114, 46, 32, 67, 111, 110, 116, 105, 110, 117, + 101, 10, 0, 85, 83, 66, 95, 83, 101, 116, 67, 111, 110, 102, 105, 103, 117, 114, 97, 116, 105, 111, 110, 40, 41, 32, + 38, 32, 85, 83, 66, 95, 83, 101, 116, 65, 108, 116, 101, 114, 110, 97, 116, 105, 118, 101, 73, 110, 116, 101, 114, 102, + 97, 99, 101, 40, 41, 32, 79, 75, 10, 0, 71, 101, 116, 95, 77, 97, 120, 95, 76, 117, 110, 40, 41, 58, 32, 101, 114, 114, + 44, 32, 100, 101, 102, 97, 117, 108, 116, 32, 109, 97, 120, 95, 108, 117, 110, 61, 56, 10, 0, 71, 101, 116, 95, 77, + 97, 120, 95, 76, 117, 110, 40, 41, 58, 32, 79, 75, 58, 32, 37, 105, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, + 95, 79, 112, 101, 110, 40, 41, 58, 32, 116, 114, 121, 95, 115, 116, 97, 116, 117, 115, 32, 37, 105, 10, 0, 85, 83, 66, + 83, 116, 111, 114, 97, 103, 101, 95, 79, 112, 101, 110, 40, 41, 58, 32, 79, 75, 44, 32, 114, 101, 116, 117, 114, 110, + 32, 48, 10, 0, 32, 32, 32, 32, 115, 116, 97, 114, 116, 95, 115, 116, 111, 112, 32, 99, 109, 100, 32, 114, 101, 116, + 32, 37, 105, 10, 0, 32, 32, 32, 32, 73, 110, 113, 117, 105, 114, 121, 32, 114, 101, 116, 32, 37, 105, 10, 0, 32, 32, + 32, 32, 68, 101, 118, 105, 99, 101, 32, 84, 121, 112, 101, 58, 32, 37, 120, 10, 0, 32, 32, 32, 32, 82, 101, 97, 100, + 67, 97, 112, 97, 99, 105, 116, 121, 32, 114, 101, 116, 32, 37, 105, 32, 32, 115, 101, 99, 116, 111, 114, 95, 115, 105, + 122, 101, 58, 32, 37, 117, 32, 32, 115, 101, 99, 116, 111, 114, 115, 58, 32, 37, 117, 10, 0, 70, 97, 115, 116, 32, 85, + 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 77, 111, 117, 110, 116, 76, 85, 78, 32, 37, 105, 35, 10, 0, 85, 83, 66, + 83, 116, 111, 114, 97, 103, 101, 95, 77, 111, 117, 110, 116, 76, 85, 78, 58, 32, 114, 101, 116, 32, 37, 105, 10, 0, + 85, 83, 66, 83, 84, 79, 82, 65, 71, 69, 95, 71, 69, 84, 95, 77, 65, 88, 95, 76, 85, 78, 32, 114, 101, 116, 32, 37, 105, + 32, 109, 97, 120, 108, 117, 110, 32, 37, 105, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 77, 111, 117, + 110, 116, 76, 85, 78, 32, 102, 97, 105, 108, 33, 33, 33, 10, 0, 10, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 10, 82, 111, 100, 114, 105, 101, 115, 32, 101, 104, 99, 109, 111, 100, 117, 108, 101, 32, 49, 46, 48, 10, 85, - 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 73, 110, 105, 116, 40, 41, 10, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 82, 111, 100, 114, 105, 101, 115, 32, 101, 104, 99, 109, 111, 100, 117, + 108, 101, 32, 49, 46, 48, 10, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 73, 110, 105, 116, 40, 41, 10, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 10, 0, 85, 83, 66, 83, 116, 111, 114, 97, 103, 101, 95, 73, 110, - 105, 116, 40, 41, 32, 79, 107, 10, 0, 69, 114, 114, 111, 114, 32, 82, 101, 97, 100, 105, 110, 103, 32, 115, 101, 99, - 116, 111, 114, 32, 48, 10, 0, 79, 75, 32, 82, 101, 97, 100, 105, 110, 103, 32, 115, 101, 99, 116, 111, 114, 32, 48, - 10, 0, 85, 110, 112, 108, 117, 103, 58, 32, 114, 101, 115, 101, 116, 32, 37, 105, 32, 115, 116, 97, 116, 117, 115, 32, - 37, 120, 10, 0, 102, 97, 115, 116, 95, 114, 101, 109, 111, 117, 110, 116, 32, 75, 79, 32, 114, 101, 116, 32, 37, 105, - 10, 0, 85, 83, 66, 32, 65, 108, 108, 111, 99, 58, 32, 110, 111, 116, 32, 101, 110, 111, 117, 103, 104, 32, 109, 101, - 109, 111, 114, 121, 33, 10, 0, 119, 98, 102, 115, 32, 101, 114, 114, 111, 114, 32, 0, 98, 97, 100, 32, 109, 97, 103, - 105, 99, 0, 104, 100, 32, 115, 101, 99, 116, 111, 114, 32, 115, 105, 122, 101, 32, 100, 111, 101, 115, 110, 39, 116, - 32, 109, 97, 116, 99, 104, 0, 104, 100, 32, 110, 117, 109, 32, 115, 101, 99, 116, 111, 114, 32, 100, 111, 101, 115, - 110, 39, 116, 32, 109, 97, 116, 99, 104, 0, 78, 84, 70, 83, 0, 70, 65, 84, 0, 116, 114, 121, 105, 110, 103, 32, 116, - 111, 32, 99, 108, 111, 115, 101, 32, 119, 98, 102, 115, 32, 119, 104, 105, 108, 101, 32, 100, 105, 115, 99, 115, 32, - 115, 116, 105, 108, 108, 32, 111, 112, 101, 110, 0, 97, 108, 108, 111, 99, 97, 116, 105, 110, 103, 32, 109, 101, 109, - 111, 114, 121, 0 + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 10, 0, 85, 83, 66, 83, 116, 111, + 114, 97, 103, 101, 95, 73, 110, 105, 116, 40, 41, 32, 79, 107, 10, 0, 69, 114, 114, 111, 114, 32, 82, 101, 97, 100, + 105, 110, 103, 32, 115, 101, 99, 116, 111, 114, 32, 48, 10, 0, 79, 75, 32, 82, 101, 97, 100, 105, 110, 103, 32, 115, + 101, 99, 116, 111, 114, 32, 48, 10, 0, 85, 110, 112, 108, 117, 103, 58, 32, 114, 101, 115, 101, 116, 32, 37, 105, 32, + 115, 116, 97, 116, 117, 115, 32, 37, 120, 10, 0, 102, 97, 115, 116, 95, 114, 101, 109, 111, 117, 110, 116, 32, 75, 79, + 32, 114, 101, 116, 32, 37, 105, 10, 0, 85, 83, 66, 32, 65, 108, 108, 111, 99, 58, 32, 110, 111, 116, 32, 101, 110, 111, + 117, 103, 104, 32, 109, 101, 109, 111, 114, 121, 33, 10, 0, 119, 98, 102, 115, 32, 101, 114, 114, 111, 114, 32, 0, 98, + 97, 100, 32, 109, 97, 103, 105, 99, 0, 104, 100, 32, 115, 101, 99, 116, 111, 114, 32, 115, 105, 122, 101, 32, 100, 111, + 101, 115, 110, 39, 116, 32, 109, 97, 116, 99, 104, 0, 104, 100, 32, 110, 117, 109, 32, 115, 101, 99, 116, 111, 114, + 32, 100, 111, 101, 115, 110, 39, 116, 32, 109, 97, 116, 99, 104, 0, 78, 84, 70, 83, 0, 70, 65, 84, 0, 116, 114, 121, + 105, 110, 103, 32, 116, 111, 32, 99, 108, 111, 115, 101, 32, 119, 98, 102, 115, 32, 119, 104, 105, 108, 101, 32, 100, + 105, 115, 99, 115, 32, 115, 116, 105, 108, 108, 32, 111, 112, 101, 110, 0, 97, 108, 108, 111, 99, 97, 116, 105, 110, + 103, 32, 109, 101, 109, 111, 114, 121, 0 }; diff --git a/source/mload/modules/ehcmodule_5.h b/source/mload/modules/ehcmodule_5.h index dc43bc91..c0a0f306 100644 --- a/source/mload/modules/ehcmodule_5.h +++ b/source/mload/modules/ehcmodule_5.h @@ -1,3 +1,3 @@ -#define size_ehcmodule_5 25856 +#define size_ehcmodule_5 25776 -extern unsigned char ehcmodule_5[25856]; +extern unsigned char ehcmodule_5[25776]; diff --git a/source/prompts/PromptWindows.cpp b/source/prompts/PromptWindows.cpp index d747bef7..a8d26718 100644 --- a/source/prompts/PromptWindows.cpp +++ b/source/prompts/PromptWindows.cpp @@ -543,6 +543,7 @@ int WindowPrompt(const char *title, const char *msg, const char *btn1Label, cons mainWindow->SetState(STATE_DISABLED); mainWindow->Append(Window); mainWindow->ChangeFocus(Window); + ResumeGui(); while (choice == -1) { diff --git a/source/settings/GameTitles.cpp b/source/settings/GameTitles.cpp index b8d5bd04..9a32c7cb 100644 --- a/source/settings/GameTitles.cpp +++ b/source/settings/GameTitles.cpp @@ -23,13 +23,7 @@ void CGameTitles::SetGameTitle(const char * id, const char * title) GameTitle newTitle; newTitle.Title = title; - - //! Just in case a 0 termination is missing - int n; - for(n = 0; n < 6; ++n) - newTitle.GameID[n] = id[n]; - - newTitle.GameID[n] = '\0'; + snprintf(newTitle.GameID, sizeof(newTitle.GameID), id); TitleList.push_back(newTitle); } @@ -98,6 +92,113 @@ void CGameTitles::SetDefault() std::vector().swap(TitleList); } +typedef struct _CacheTitle +{ + char GameID[7]; + char Title[100]; + int ParentalRating; + int PlayersCount; + +} ATTRIBUTE_PACKED CacheTitle; + +u32 CGameTitles::ReadCachedTitles(const char * path) +{ + //! Load cached least so that the titles are preloaded before reading list + FILE * f = fopen(path, "rb"); + if(!f) return 0; + + char LangCode[11]; + memset(LangCode, 0, sizeof(LangCode)); + + fread(LangCode, 1, 10, f); + + //! Check if cache has correct language code + if(strcmp(LangCode, Settings.db_language) != 0) + { + fclose(f); + return 0; + } + + u32 count = 0; + fread(&count, 1, 4, f); + + std::vector CachedList(count); + TitleList.resize(count); + + fread(&CachedList[0], 1, count*sizeof(CacheTitle), f); + fclose(f); + + for(u32 i = 0; i < count; ++i) + { + strcpy(TitleList[i].GameID, CachedList[i].GameID); + TitleList[i].Title = CachedList[i].Title; + TitleList[i].ParentalRating = CachedList[i].ParentalRating; + TitleList[i].PlayersCount = CachedList[i].PlayersCount; + } + + return count; +} + +void CGameTitles::WriteCachedTitles(const char * path) +{ + FILE *f = fopen(path, "wb"); + if(!f) + return; + + CacheTitle Cache; + u32 count = TitleList.size(); + + fwrite(Settings.db_language, 1, 10, f); + fwrite(&count, 1, 4, f); + + for(u32 i = 0; i < count; ++i) + { + memset(&Cache, 0, sizeof(CacheTitle)); + + strcpy(Cache.GameID, TitleList[i].GameID); + snprintf(Cache.Title, sizeof(Cache.Title), TitleList[i].Title.c_str()); + Cache.ParentalRating = TitleList[i].ParentalRating; + Cache.PlayersCount = TitleList[i].PlayersCount; + + fwrite(&Cache, 1, sizeof(CacheTitle), f); + } + + fclose(f); +} + +void CGameTitles::RemoveUnusedCache(std::vector &MissingTitles) +{ + std::vector UsedCachedList(TitleList.size(), false); + + for(int i = 0; i < gameList.GameCount(); ++i) + { + bool isCached = false; + + for(u32 n = 0; n < TitleList.size(); ++n) + { + if(strncmp(TitleList[n].GameID, (const char *) gameList[i]->id, 6) == 0) + { + UsedCachedList[n] = true; + isCached = true; + break; + } + } + + if(!isCached) + { + char gameID[7]; + snprintf(gameID, sizeof(gameID), (const char *) gameList[i]->id); + MissingTitles.push_back(std::string(gameID)); + } + } + + for(u32 n = 0; n < TitleList.size(); ++n) + { + if(!UsedCachedList[n]) + TitleList.erase(TitleList.begin()+n); + } +} + void CGameTitles::LoadTitlesFromWiiTDB(const char * path) { this->SetDefault(); @@ -105,39 +206,58 @@ void CGameTitles::LoadTitlesFromWiiTDB(const char * path) if(!path || !Settings.titlesOverride) return; - gameList.LoadUnfiltered(); - - std::string Title; std::string Filepath = path; if(path[strlen(path)-1] != '/') Filepath += '/'; + + std::string Cachepath = Filepath; + Cachepath += "TitlesCache.bin"; Filepath += "wiitdb.xml"; + //! Read game titles cache database + ReadCachedTitles(Cachepath.c_str()); + + //! Read game list + gameList.LoadUnfiltered(); + + //! Removed unused cache titles and get the still missing ones + std::vector MissingTitles; + RemoveUnusedCache(MissingTitles); + if(MissingTitles.size() == 0) + { + WriteCachedTitles(Cachepath.c_str()); + return; + } + + std::string Title; + WiiTDB XML_DB(Filepath.c_str()); XML_DB.SetLanguageCode(Settings.db_language); int Rating; std::string RatValTxt; - for(int i = 0; i < gameList.GameCount(); ++i) + for(u32 i = 0; i < MissingTitles.size(); ++i) { - if(!XML_DB.GetTitle((const char *) gameList[i]->id, Title)) + if(!XML_DB.GetTitle(MissingTitles[i].c_str(), Title)) continue; - this->SetGameTitle(gameList[i]->id, Title.c_str()); + this->SetGameTitle(MissingTitles[i].c_str(), Title.c_str()); TitleList[TitleList.size()-1].ParentalRating = -1; TitleList[TitleList.size()-1].PlayersCount = 1; - Rating = XML_DB.GetRating((const char *) gameList[i]->id); + Rating = XML_DB.GetRating(MissingTitles[i].c_str()); if(Rating < 0) continue; - if(!XML_DB.GetRatingValue((const char *) gameList[i]->id, RatValTxt)) + if(!XML_DB.GetRatingValue(MissingTitles[i].c_str(), RatValTxt)) continue; TitleList[TitleList.size()-1].ParentalRating = ConvertRating(RatValTxt.c_str(), WiiTDB::RatingToString(Rating), "PEGI"); - int ret = XML_DB.GetPlayers((const char *) gameList[i]->id); + int ret = XML_DB.GetPlayers(MissingTitles[i].c_str()); if(ret > 0) TitleList[TitleList.size()-1].PlayersCount = ret; } + + WriteCachedTitles(Cachepath.c_str()); } diff --git a/source/settings/GameTitles.h b/source/settings/GameTitles.h index 526894b3..35fa09a6 100644 --- a/source/settings/GameTitles.h +++ b/source/settings/GameTitles.h @@ -39,6 +39,10 @@ class CGameTitles //! Set default game titles void SetDefault(); protected: + u32 ReadCachedTitles(const char * path); + void WriteCachedTitles(const char * path); + void RemoveUnusedCache(std::vector &MissingTitles); + std::vector TitleList; }; diff --git a/source/themes/ThemeMenu.cpp b/source/themes/ThemeMenu.cpp index 262c20f6..8ea10068 100644 --- a/source/themes/ThemeMenu.cpp +++ b/source/themes/ThemeMenu.cpp @@ -191,7 +191,6 @@ void ThemeMenu::SetupMainButtons() if (ThemeDir.GetFilecount() == 0) { WindowPrompt(tr( "No themes found." ), 0, "OK"); - returnMenu = MENU_SETTINGS; } for(int i = 0; i < ThemeDir.GetFilecount(); ++i) diff --git a/source/usbloader/GameList.cpp b/source/usbloader/GameList.cpp index c8bd20b9..9ad9b5e8 100644 --- a/source/usbloader/GameList.cpp +++ b/source/usbloader/GameList.cpp @@ -129,6 +129,8 @@ int GameList::InternalReadList(int part) u32 oldSize = FullGameList.size(); std::vector PartGameList(cnt); memcpy(&PartGameList[0], buffer, len); + free(buffer); + for (u32 i = 0; i < PartGameList.size(); i++) { for(u32 j = 0; j < FullGameList.size(); j++) @@ -144,8 +146,6 @@ int GameList::InternalReadList(int part) FullGameList.resize(oldSize+PartGameList.size()); memcpy(&FullGameList[oldSize], &PartGameList[0], PartGameList.size()*sizeof(struct discHdr)); - free(buffer); - GamePartitionList.resize(oldSize+PartGameList.size()); for(u32 i = oldSize; i < GamePartitionList.size(); ++i) diff --git a/source/usbloader/wbfs/wbfs_base.cpp b/source/usbloader/wbfs/wbfs_base.cpp index 7d3537a1..ee811704 100644 --- a/source/usbloader/wbfs/wbfs_base.cpp +++ b/source/usbloader/wbfs/wbfs_base.cpp @@ -79,19 +79,17 @@ s32 Wbfs::CheckGame(u8 *discid) s32 Wbfs::GameSize(u8 *discid, f32 *size) { - wbfs_disc_t *disc = NULL; - - u32 sectors; + if(!discid) return 0; /* Open disc */ - disc = OpenDisc(discid); + wbfs_disc_t *disc = OpenDisc(discid); if (!disc) return -2; - /* Get game size in sectors */ - sectors = wbfs_sector_used(disc->p, disc->header); + u32 sectors = wbfs_disc_sector_used(disc); /* Copy value */ - *size = (disc->p->wbfs_sec_sz / GB_SIZE) * sectors; + if(size) + *size = (disc->p->wbfs_sec_sz / GB_SIZE) * sectors; /* Close disc */ CloseDisc(disc); diff --git a/source/usbloader/wbfs/wbfs_fat.cpp b/source/usbloader/wbfs/wbfs_fat.cpp index e4510f33..12b0c265 100644 --- a/source/usbloader/wbfs/wbfs_fat.cpp +++ b/source/usbloader/wbfs/wbfs_fat.cpp @@ -92,7 +92,14 @@ wbfs_disc_t* Wbfs_Fat::OpenDisc(u8 *discid) // mark with a special wbfs_part wbfs_iso_file.wbfs_sec_sz = 512; iso_file->p = &wbfs_iso_file; - iso_file->header = (wbfs_disc_info_t*) fd; + iso_file->header = (wbfs_disc_info_t*) malloc(sizeof(wbfs_disc_info_t)); + if(!iso_file->header) + { + free(iso_file); + return NULL; + } + read(fd, iso_file->header, sizeof(wbfs_disc_info_t)); + iso_file->i = fd; return iso_file; } @@ -117,7 +124,8 @@ void Wbfs_Fat::CloseDisc(wbfs_disc_t* disc) // is this really a .iso file? if (part == &wbfs_iso_file) { - close((int) disc->header); + close(disc->i); + free(disc->header); free(disc); return; } @@ -129,37 +137,19 @@ void Wbfs_Fat::CloseDisc(wbfs_disc_t* disc) s32 Wbfs_Fat::GetCount(u32 *count) { - *count = 0; GetHeadersCount(); - if (fat_hdr_count && fat_hdr_list) - { - // for compacter mem - move up as it will be freed later - int size = fat_hdr_count * sizeof(struct discHdr); - struct discHdr *buf = (struct discHdr *) malloc(size); - if (buf) - { - memcpy(buf, fat_hdr_list, size); - SAFE_FREE( fat_hdr_list ); - fat_hdr_list = buf; - } - } *count = fat_hdr_count; return 0; } s32 Wbfs_Fat::GetHeaders(struct discHdr *outbuf, u32 cnt, u32 len) { - u32 i; - if (len > sizeof(struct discHdr)) - { - len = sizeof(struct discHdr); - } + if(cnt*len > fat_hdr_count*sizeof(struct discHdr)) + return -1; - for (i = 0; i < cnt && i < fat_hdr_count; i++) - { - memcpy(&outbuf[i], &fat_hdr_list[i], len); - } - SAFE_FREE( fat_hdr_list ); + memcpy(outbuf, fat_hdr_list, cnt*len); + + SAFE_FREE(fat_hdr_list); fat_hdr_count = 0; return 0; @@ -187,7 +177,6 @@ s32 Wbfs_Fat::AddGame(void) ClosePart(part); if (ret < 0) return ret; - mk_title_txt(&header, path); return 0; } @@ -368,19 +357,13 @@ s32 Wbfs_Fat::GetHeadersCount() char fpath[MAX_FAT_PATH]; struct discHdr tmpHdr; struct stat st; - wbfs_t *part = NULL; u8 id[8]; - int ret; - char *p; - u32 size; int is_dir; int len; - char dir_title[65]; char fname_title[TITLE_LEN]; const char *title; DIR *dir_iter; struct dirent *dirent; - //dbg_time1(); SAFE_FREE( fat_hdr_list ); fat_hdr_count = 0; @@ -393,119 +376,97 @@ s32 Wbfs_Fat::GetHeadersCount() while ((dirent = readdir(dir_iter)) != 0) { - snprintf(fname, sizeof(fname), "%s/%s", path, dirent->d_name); - - if(stat(fname, &st) != 0) - continue; + if (dirent->d_name[0] == '.') continue; snprintf(fname, sizeof(fname), dirent->d_name); - //printf("found: %s\n", fname); Wpad_WaitButtonsCommon(); - if ((char) fname[0] == '.') continue; - len = strlen(fname); - if (len < 8) continue; // "GAMEID_x" - - memcpy(id, fname, 6); - id[6] = 0; + // reset id and title + memset(id, 0, sizeof(id)); *fname_title = 0; - is_dir = S_ISDIR( st.st_mode ); - //printf("mode: %d %d %x\n", is_dir, st.st_mode, st.st_mode); - if (is_dir) - { - int lay_a = 0; - int lay_b = 0; - if (fname[6] == '_' && is_gameid((char*) id)) - { - // usb:/wbfs/GAMEID_TITLE/GAMEID.wbfs - lay_a = 1; - } - if (CheckLayoutB(fname, len, NULL, fname_title)) - { - // usb:/wbfs/TITLE[GAMEID]/GAMEID.wbfs - lay_b = 1; - } - if (!lay_a && !lay_b) continue; - if (lay_a) - { - strncpy(dir_title, &fname[7], sizeof(dir_title)); - } - else - { - try_lay_b: if (!CheckLayoutB(fname, len, id, fname_title)) continue; - } - snprintf(fpath, sizeof(fpath), "%s/%s/%s.wbfs", path, fname, id); - //printf("path2: %s\n", fpath); - // if more than 50 games, skip second stat to improve speed - // but if ambiguous layout check anyway - if (fat_hdr_count < 50 || (lay_a && lay_b)) - { - if (stat(fpath, &st) == -1) - { - //printf("missing: %s\n", fpath); - // try .iso - strcpy(strrchr(fpath, '.'), ".iso"); // replace .wbfs with .iso - if (stat(fpath, &st) == -1) - { - //printf("missing: %s\n", fpath); - // try .ciso - strcpy(strrchr(fpath, '.'), ".ciso"); // replace .iso with .ciso - if (stat(fpath, &st) == -1) - { - if (lay_a && lay_b == 1) - { - // mark lay_b so that the stat check is still done, - // but lay_b is not re-tried again - lay_b = 2; - // retry with layout b - goto try_lay_b; - } - continue; - } - } - } - } - else - { - st.st_size = 1024 * 1024; - } - } - else + const char * fileext = strrchr(fname, '.'); + if(fileext && (strcasecmp(fileext, ".wbfs") == 0 || + strcasecmp(fileext, ".iso") == 0 || strcasecmp(fileext, ".ciso") == 0)) { // usb:/wbfs/GAMEID.wbfs // or usb:/wbfs/GAMEID.iso // or usb:/wbfs/GAMEID.ciso - p = strrchr(fname, '.'); - if (!p) continue; - if ((strcasecmp(p, ".wbfs") != 0) && (strcasecmp(p, ".iso") != 0) && (strcasecmp(p, ".ciso") != 0)) continue; - int n = p - fname; // length withouth .wbfs + int n = fileext - fname; // length withouth .wbfs + sprintf((char *) id, "%.6s", fname); if (n != 6) { // TITLE [GAMEID].wbfs if (!CheckLayoutB(fname, n, id, fname_title)) continue; } snprintf(fpath, sizeof(fpath), "%s/%s", path, fname); + is_dir = 0; + } + else + { + snprintf(fname, sizeof(fname), "%s/%s", path, dirent->d_name); + + if(stat(fname, &st) != 0) + continue; + + is_dir = S_ISDIR( st.st_mode ); + if(!is_dir) continue; + + snprintf(fname, sizeof(fname), dirent->d_name); + + len = strlen(fname); + if (len < 8) continue; // "GAMEID_x" + + int lay_a = 0; + int lay_b = 0; + if (CheckLayoutB(fname, len, id, fname_title)) + { + // usb:/wbfs/TITLE[GAMEID]/GAMEID.wbfs + lay_b = 1; + } + else if (fname[6] == '_' && is_gameid((char*) id)) + { + // usb:/wbfs/GAMEID_TITLE/GAMEID.wbfs + lay_a = 1; + memcpy(id, fname, 6); + snprintf(fname_title, sizeof(fname_title), &fname[7]); + } + + if (!lay_a && !lay_b) continue; + + // check ahead, make sure it succeeds + snprintf(fpath, sizeof(fpath), "%s/%s/%.6s.wbfs", path, fname, (char *) id); } - //printf("found: %s %d MB\n", fpath, (int)(st.st_size/1024/1024)); - // size must be at least 1MB to be considered a valid wbfs file - if (st.st_size < 1024 * 1024) continue; // if we have titles.txt entry use that title = GameTitles.GetTitle(id); // if no titles.txt get title from dir or file name if (!title && *fname_title) - { title = fname_title; - } + if (title) { memset(&tmpHdr, 0, sizeof(tmpHdr)); memcpy(tmpHdr.id, id, 6); - strncpy(tmpHdr.title, title, sizeof(tmpHdr.title) - 1); + snprintf(tmpHdr.title, sizeof(tmpHdr.title), title); tmpHdr.magic = 0x5D1C9EA3; goto add_hdr; } + if(is_dir) + { + if (stat(fpath, &st) != 0) + { + // look for direct .iso file + sprintf(strrchr(fpath, '.'), ".iso"); // replace .wbfs with .iso + if (stat(fpath, &st) != 0) + { + // look for direct .ciso file + sprintf(strrchr(fpath, '.'), ".ciso"); // replace .iso with .ciso + if (stat(fpath, &st) != 0) continue; + } + } + } + // else read it from file directly if (strcasecmp(strrchr(fpath, '.'), ".wbfs") == 0) { @@ -525,18 +486,17 @@ s32 Wbfs_Fat::GetHeadersCount() // no title found, read it from wbfs file // but this is a little bit slower // open 'partition' file - part = OpenPart(fpath); + wbfs_t *part = OpenPart(fpath); if (!part) - { continue; - } + + u32 size; // Get header - ret = wbfs_get_disc_info(part, 0, (u8*) &tmpHdr, sizeof(struct discHdr), &size); + int ret = wbfs_get_disc_info(part, 0, (u8*) &tmpHdr, sizeof(struct discHdr), &size); ClosePart(part); if (ret == 0) - { goto add_hdr; - } + } else if (strcasecmp(strrchr(fpath, '.'), ".iso") == 0) { @@ -573,19 +533,23 @@ s32 Wbfs_Fat::GetHeadersCount() // fail: continue; - // succes: add tmpHdr to list: - add_hdr: memset(&st, 0, sizeof(st)); - //printf("added: %.6s %.20s\n", tmpHdr.id, tmpHdr.title); Wpad_WaitButtons(); + // success: add tmpHdr to list: + add_hdr: + //! First allocate before reallocating if(!fat_hdr_list) fat_hdr_list = (struct discHdr *) malloc(sizeof(struct discHdr)); fat_hdr_count++; - fat_hdr_list = (struct discHdr *) realloc(fat_hdr_list, fat_hdr_count * sizeof(struct discHdr)); + struct discHdr *tmpList = (struct discHdr *) realloc(fat_hdr_list, fat_hdr_count * sizeof(struct discHdr)); + if(!tmpList) + break; //out of memory, keep the list until now and stop + + fat_hdr_list = tmpList; memcpy(&fat_hdr_list[fat_hdr_count - 1], &tmpHdr, sizeof(struct discHdr)); } + closedir(dir_iter); - //dbg_time2("\nFAT_GetCount"); Wpad_WaitButtonsCommon(); return 0; } @@ -602,79 +566,71 @@ int Wbfs_Fat::FindFilename(u8 *id, char *fname, int len) // look for direct .ciso file strcpy(strrchr(fname, '.'), ".ciso"); // replace .iso with .ciso if (stat(fname, &st) == 0) return 1; + // direct file not found, check subdirs *fname = 0; DIR *dir_iter; struct dirent *dirent; + char gameID[7]; + snprintf(gameID, sizeof(gameID), (char *) id); char path[MAX_FAT_PATH]; - char name[MAX_FAT_PATH]; strcpy(path, wbfs_fs_drive); strcat(path, wbfs_fat_dir); + dir_iter = opendir(path); - //printf("dir: %s %p\n", path, dir); Wpad_WaitButtons(); if (!dir_iter) - { return 0; - } + while ((dirent = readdir(dir_iter)) != 0) { - snprintf(name, sizeof(name), "%s/%s", path, dirent->d_name); + if(strcasestr(dirent->d_name, gameID) == NULL) continue; - if(stat(name, &st) != 0) - continue; - - snprintf(name, sizeof(name), dirent->d_name); - //dbg_printf("name:%s\n", name); - if (name[0] == '.') continue; - int n = strlen(name); + if (dirent->d_name[0] == '.') continue; + int n = strlen(dirent->d_name); if (n < 8) continue; - if (S_ISDIR( st.st_mode )) - { - if (name[6] == '_') - { - // GAMEID_TITLE - if (strncmp(name, (char*) id, 6) != 0) goto try_alter; - } - else - { - try_alter: - // TITLE [GAMEID] - if (name[n - 8] != '[' || name[n - 1] != ']') continue; - if (strncmp(&name[n - 7], (char*) id, 6) != 0) continue; - } - // look for .wbfs file - snprintf(fname, len, "%s/%s/%.6s.wbfs", path, name, id); - if (stat(fname, &st) == 0) break; - // look for .iso file - snprintf(fname, len, "%s/%s/%.6s.iso", path, name, id); - if (stat(fname, &st) == 0) break; - // look for .ciso file - snprintf(fname, len, "%s/%s/%.6s.ciso", path, name, id); - } - else + + const char *fileext = strrchr(dirent->d_name, '.'); + if(fileext && (strcasecmp(fileext, ".wbfs") == 0 || + strcasecmp(fileext, ".iso") == 0 || strcasecmp(fileext, ".ciso") == 0)) { // TITLE [GAMEID].wbfs char fn_title[TITLE_LEN]; u8 fn_id[8]; - char *p = strrchr(name, '.'); - if (!p) continue; - if ((strcasecmp(p, ".wbfs") != 0) && (strcasecmp(p, ".iso") != 0) && (strcasecmp(p, ".ciso") != 0)) continue; - int n = p - name; // length withouth .wbfs - if (!CheckLayoutB(name, n, fn_id, fn_title)) continue; - if (strncmp((char*) fn_id, (char*) id, 6) != 0) continue; - snprintf(fname, len, "%s/%s", path, name); + int n = fileext - dirent->d_name; // length withouth .wbfs + if (!CheckLayoutB(dirent->d_name, n, fn_id, fn_title)) continue; + if (strncmp((char*) fn_id, gameID, 6) != 0) continue; + snprintf(fname, len, "%s/%s", path, dirent->d_name); + if (stat(fname, &st) == 0) break; } - if (stat(fname, &st) == 0) break; + + snprintf(fname, sizeof(fname), "%s/%s", path, dirent->d_name); + + if(stat(fname, &st) != 0) + { + *fname = 0; + continue; + } + + if (S_ISDIR( st.st_mode )) + { + // look for .wbfs file + snprintf(fname, len, "%s/%s/%.6s.wbfs", path, dirent->d_name, gameID); + if (stat(fname, &st) == 0) break; + // look for .iso file + snprintf(fname, len, "%s/%s/%.6s.iso", path, dirent->d_name, gameID); + if (stat(fname, &st) == 0) break; + // look for .ciso file + snprintf(fname, len, "%s/%s/%.6s.ciso", path, dirent->d_name, gameID); + if (stat(fname, &st) == 0) break; + } + *fname = 0; } closedir(dir_iter); + if (*fname) - { - // found - //printf("found:%s\n", fname); return 2; - } - // not found + return 0; } @@ -777,23 +733,6 @@ wbfs_t* Wbfs_Fat::CreatePart(u8 *id, char *path) return part; } -void Wbfs_Fat::mk_title_txt(struct discHdr *header, char *path) -{ - char fname[MAX_FAT_PATH]; - FILE *f; - - strcpy(fname, path); - strcat(fname, "/"); - mk_gameid_title(header, fname + strlen(fname), 1, 0); - strcat(fname, ".txt"); - - f = fopen(fname, "wb"); - if (!f) return; - fprintf(f, "%.6s = %.64s\n", header->id, GameTitles.GetTitle(header)); - fclose(f); - printf("Info file: %s\n", fname); -} - void Wbfs_Fat::mk_gameid_title(struct discHdr *header, char *name, int re_space, int layout) { int i, len; diff --git a/source/usbloader/wbfs/wbfs_fat.h b/source/usbloader/wbfs/wbfs_fat.h index 5416c0d2..54b6a9cd 100644 --- a/source/usbloader/wbfs/wbfs_fat.h +++ b/source/usbloader/wbfs/wbfs_fat.h @@ -49,15 +49,11 @@ class Wbfs_Fat: public Wbfs s32 GetHeadersCount(); void GetDir(struct discHdr *header, char *path); - void mk_title_txt(struct discHdr *header, char *path); void mk_gameid_title(struct discHdr *header, char *name, int re_space, int layout); void title_filename(char *title); bool is_gameid(char *id); - static int nop_rw_sector(void *_fp, u32 lba, u32 count, void* buf) - { - return 0; - } + static int nop_rw_sector(void *_fp, u32 lba, u32 count, void* buf) { return 0; } }; #endif //_WBFS_FAT_H