diff --git a/NOTES.md b/NOTES.md index 539cca2..c241290 100644 --- a/NOTES.md +++ b/NOTES.md @@ -1336,3 +1336,5 @@ fast MSS restart re-attach needs investigation; single unreproduced cases (pc1 n - Formal run directly from lk1st: PASS (e6849a2b). Nothing flashed. - Open: lk1st reflash with the panel code (separate GO); ~1 s dark gap at handoff (Linux gpio-backlight pinctrl/fbcon re-init); DT model string "RAM boot B9B"; screen UI. Next stage: battery / charging / power management. +- B9L-PERSIST (2026-10-03, GO): aboot := lk1st-b9l **15208dbb** (B9L_ABOOT_WRITE_VERIFIED, backup 3b8cd266, rollback b9/b9l/persist/B9L-rollback.sh). + First normal boot: splash at LK +340 ms → b9c → Linux fbcon, LTE/Wi-Fi OK. logs/b9/b9l/B9L-PERSIST-RESULT.md. diff --git a/README.md b/README.md index 6727eab..b30b621 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ ## Рабочая цепочка загрузки (baseline B5) ``` -Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot) +Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot, splash на ST7735S через ~0.4 с) → cache: ext2 + extlinux/extlinux.conf → B9C (ядро b9c + DTB b9b + initramfs: модем, время, Wi-Fi, дисплей) → ARM64 Linux → LTE + Wi-Fi AP + консоль на экране Fallback: extlinux не найден / не парсится / не грузится → Android boot image из раздела boot (emmc1 rescue) ``` @@ -46,7 +46,7 @@ Fallback: extlinux не найден / не парсится / не грузит | GPT | stock + tz 512K→1M, tzbak перенесён в свободный промежуток @LBA 305184 | primary `6e850a5d`, backup `795952a1` | | tz | DB410c TZ.BF.3.0-00714, дополнен нулями до 1 MiB | `8481892f` | | hyp | qhypstub, до 512 KiB | `1a963047` | -| aboot | lk1st (lk2nd 23.1) autoboot, подписан qtestsign, до 1 MiB | `3b8cd266` | +| aboot | lk1st (lk2nd 23.1 + патч B9L: SPI-панель ST7735S + splash) autoboot, подписан qtestsign, до 1 MiB | `15208dbb` (откат: B5a lk1st `3b8cd266`) | | boot | emmc1 rescue image (+ нули до 16 MiB) | `e9579f33` | | cache | ext2 + extlinux + B9C (ядро 7.2.7-aurora-b9c, DTB b9b, initramfs B8F + дисплей) | `b9ce13c9` (откат: B8F `857c9c30` → B7C `14fe453a` → T4 `9d3bc890` → B6P `9fea693a`) | | recovery | lk2nd 23.1 (fastboot) | `0dfa60a0` | @@ -64,9 +64,11 @@ Golden mm1 (Android boot image, для `fastboot boot`): `aurora-mm1.img` sha256 `getty` на tty1, UART-консоль сохранена (`console=tty0` стоит **до** `console=ttyMSM0`). Подсветка: pinctrl MPP `function "sink"`, `drive-strength 7` + `gpio-backlight` (регистры = стоковые 0x61/0x07/0x80), включается сервисом `aurora-display` через sysfs. - Cache B9C: 3 холодных загрузки с eMMC без ввода (2× class A + 1× class B, принято) — консоль ядра на экране, LTE + Wi-Fi AP, время, ошибок дисплея 0. -- B9L (только RAM): lk2nd второй стадии с портом SPI-панели под msm8916 (`b9/b9l/lk2nd-23.1-aurora-b9l.patch`) показывает картинку **до** Linux; - L17/L6 на этапе LK уже включены SBL. lk1st с этим кодом не прошит. -- Открыто: UI вместо консоли ядра, регулировка яркости, ~1 с темноты при передаче LK → Linux, прошивка lk1st с заставкой. Материалы: `b9/`, `logs/b9/`, NOTES.md сессия 37. +- B9L: порт SPI-панели в lk2nd/lk1st под msm8916 (CAF `spi_qup`, клоки QUP4 16 МГц, модуль `lk2nd/aurora`; L17/L6 на этапе LK уже включены SBL). + Сначала проверен в RAM (второй lk2nd через `fastboot boot`), затем **прошит в aboot** (lk1st `15208dbb`, сборка воспроизводима, запись с readback + и сверкой всех разделов). Теперь при включении splash (`b9/b9l/splash/swag.png` → RGB565) появляется через ~0.4 с, до Linux; затем fbcon. + Патч: `b9/b9l/persist/lk2nd-23.1-aurora-b9l-lk1st.patch`, запись/откат: `b9/b9l/persist/B9L-write.sh` / `B9L-rollback.sh`. +- Открыто: UI вместо консоли ядра, регулировка яркости, ~1 с темноты при передаче LK → Linux. Материалы: `b9/`, `logs/b9/`, NOTES.md сессия 37. ## B8 status — Wi-Fi PASS (2026-10-03) @@ -138,6 +140,6 @@ Safety: Полные дампы eMMC и разделов, NV/EFS (`modemst1/2`, `fsg`, `fsc`), `persist`, `userdata`, файлы прошивки модема, стоковые SBL1/RPM/TZ/aboot/boot/recovery/system, Firehose-программер, DB410c TZ, собранные бинарники, -Wi-Fi NV (`WCNSS_qcom_wlan_nv.bin`), PSK тестовой AP и образы с ним (B8F/B9C initramfs/cache), логотип из stock LK и картинка-заставка B9L. +Wi-Fi NV (`WCNSS_qcom_wlan_nv.bin`), PSK тестовой AP и образы с ним (B8F/B9C initramfs/cache), логотип из stock LK. Идентификаторы (IMEI, IMSI, ICCID, eMMC CID/serial, Sahara serial, MAC, номера сот, cookies) заменены на ``. Как это сделано — `tools/publish-sanitize.py`; значения идентификаторов в репозиторий не попадают. diff --git a/b9/b9l/BUILD-B9L.md b/b9/b9l/BUILD-B9L.md index cd6191b..f6e500e 100644 --- a/b9/b9l/BUILD-B9L.md +++ b/b9/b9l/BUILD-B9L.md @@ -1,5 +1,5 @@ # B9L lk2nd 2nd-stage build (RAM test only — never flash without a separate GO) -- Base: lk2nd 23.1 e9c8b217 (same tree as lk2nd-build/src, cloned to /home/q/aurora-lkbuild/b9l-src; the original tree is untouched). +- Base: lk2nd 23.1 e9c8b217 (same tree as lk2nd-build/src, cloned to ~/aurora-lkbuild/b9l-src; the original tree is untouched). - Patch: lk2nd-23.1-aurora-b9l.patch (msm8916 QUP4 SPI clock + iomap, gpio_config_blsp_spi, clock_config_blsp_spi clamped to 16 MHz, module lk2nd/aurora (st7735s.c), project hook AURORA_SPI_PANEL=1). - Command (in b9l-src): make -j4 TOOLCHAIN_PREFIX=arm-none-eabi- LK2ND_DTBS="msm8916-512mb-mtp.dtb" AURORA_SPI_PANEL=1 lk2nd-msm8916 diff --git a/b9/b9l/SHA256SUMS b/b9/b9l/SHA256SUMS index 9c30b45..8a233c1 100644 --- a/b9/b9l/SHA256SUMS +++ b/b9/b9l/SHA256SUMS @@ -8,3 +8,4 @@ bb86eb620c96064b30f03b7165db793a795e23f188a3d1d684baf3680699307e lk2nd-23.1-aur f126eb214ab89d3f3f71abd7ebe8960bb4ab4a13a3a7aba7115c12614d9c7adf splash/swag.png 476c9077eeb82386f0bb6c9b17b4583945d60cf262996acf971896bb94141ec6 splash/mk-splash.py eb3e0f33bb273a7939208f58f9249dab44e044211a1933cfaf645cf9081d9f5c splash/aurora_splash.h +94a94490e5eb9cce0d6c712f1ae228719d2f54903c7fbf104f3444459b8c8fd2 BUILD-B9L.md diff --git a/b9/b9l/persist/B9L-PERSIST-PLAN.md b/b9/b9l/persist/B9L-PERSIST-PLAN.md new file mode 100644 index 0000000..22f0e24 --- /dev/null +++ b/b9/b9l/persist/B9L-PERSIST-PLAN.md @@ -0,0 +1,34 @@ +# B9L-PERSIST — lk1st with ST7735S splash: build done, write NOT done (waiting for a separate GO) + +## Images +| | file | size | sha256 | +|---|---|---|---| +| unsigned | lk1st-b9l-unsigned.mbn | 446664 B | 16f9ec0ad8289fbf62acfa05733025fd254503229cf9cf5266ec190ecbd35ec7 | +| signed (qtestsign 0eef3b5 `-v 3 aboot`) | aboot-lk1st-b9l.mbn | 367380 B | 0ddbc29a6bbdf0c8ba280dd7a4eaad793531600bce32528a92d59c9110f6bd0a | +| final (zero-padded to the aboot partition, 1 MiB) | aboot-lk1st-b9l.pad1M | 1048576 B | 15208dbb4feafccd72d2b06db5714cd746c216701f0ef8822c58bb47105d37c4 | +| current aboot (B5a) for comparison/rollback | b5a/aboot-lk1st-aurora-autoboot.pad1M | 1048576 B (signed 327196) | 3b8cd266… (unsigned 33c452e4, signed 7b3fb5b3) | + +Reproducibility: a clean lk2nd 23.1 e9c8b217 clone with the same command (`lk1st-msm8916 LK2ND_BUNDLE_DTB=msm8916-512mb-mtp.dtb`) + the same +qtestsign gives 33c452e4 → 7b3fb5b3 → 3b8cd266, i.e. bit-identical to the flashed aboot. The B9L build differs only by the patch and the flags. + +## Difference from the current lk1st +- config.h: `+AURORA_SPLASH 1`, `+WITH_LK2ND_AURORA 1` only (config-vs-current-lk1st.diff). +- Objects: NEW lk2nd/aurora/st7735s.o, platform/msm_shared/spi_qup.o; changed platform/msm8916/{gpio,acpuclock,msm8916-clock}.o, + lk2nd/version/tag.o ("23.1-dirty"). Everything else is identical (normalised objdump compare). +- st7735s.o, spi_qup.o, gpio.o, acpuclock.o, msm8916-clock.o are **identical** to the RAM-tested B9L lk2nd (e6849a2b, formal PASS). +- ELF: the same 4-phdr layout. LOAD 0x8f600000 filesz 0x49b0c (was 0x3fe14), memsz 0x82dd8 (was 0x76dd0) → heap up to 0x8f700000 = 500 KiB (was 548); + the hash segment is at 0x8f683000, after the image. +- Present in the final image: all [B9L …] log strings, "frame source: splash image", the 32768-byte splash blob (×1). + No "Fastboot mode was forced" (autoboot kept). +- Behaviour change: every lk1st start (normal boot and RESET fastboot) runs the panel init (+~380 ms) before lk2nd boot/fastboot. + +## Plan (after GO only; on 480s; board in HW EDL 9008) +1. `b9/b9l/persist/B9L-write.sh`: + - G0: loader sha, candidate 15208dbb/1 MiB, rollback image 3b8cd266/1 MiB, 9008 present. + - G1: printgpt + serial, aboot geometry 0x8100000/0x100000, GPT == A3, boot == e9579f33, cache == B9C b9ce13c9. + **Backup:** live aboot read to `logs/b9/b9l/W/pre-aboot.bin`, must be 3b8cd266. + - W: write aboot only → readback → cmp → ABOOT_MATCH. + - V: GPT p/b, tzbak, boot, cache, sbl1 rpm tz hyp recovery modemst1/2 fsg fsc persist == A3, modem/system/userdata == A4pre → `B9L_ABOOT_WRITE_VERIFIED`. +2. Full power-off → normal power-on: expect the splash ~0.4 s after LK start → lk2nd extlinux `b9c` → Linux fbcon. Check UART + operator. +3. Rollback if anything fails (lk1st does not start / no UART / boot regression): HW EDL → `b9/b9l/persist/B9L-rollback.sh` → aboot := 3b8cd266 + (boot/cache untouched). If readback mismatches during the write: do not reboot, run the rollback at once. diff --git a/b9/b9l/persist/B9L-rollback.sh b/b9/b9l/persist/B9L-rollback.sh new file mode 100755 index 0000000..de0cb9f --- /dev/null +++ b/b9/b9l/persist/B9L-rollback.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# B9L rollback — restore the B5a lk1st autoboot aboot (3b8cd266, operational since 2026-09-30). Needs 9008 via HW EDL (D+ -> GND). +# Only aboot is written; boot/cache untouched. Pre-write backup of the live aboot: logs/b9/b9l/W/pre-aboot.bin (must also be 3b8cd266). +cd ~/doc/modem/jz08-aurora || exit 1 +L=firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin ; O=logs/b9/b9l/rollback ; mkdir -p $O +B=b5a/aboot-lk1st-aurora-autoboot.pad1M +[ "$(sha256sum $B | cut -d' ' -f1)" = 3b8cd2667837fc7083cb28991d849f9b408a07fa743bfd05eafee7b053760f85 ] || { echo "STOP: rollback image hash"; exit 1; } +lsusb | grep -q 05c6:9008 || { echo "STOP: no 9008"; exit 1; } +edl --loader=$L printgpt > $O/00-printgpt.log 2>&1 +edl --loader=$L w aboot $B > $O/aboot-w.log 2>&1 +edl --loader=$L r aboot $O/aboot-rb.bin > /dev/null 2>&1 ; cmp $B $O/aboot-rb.bin && echo ABOOT_RESTORED_B5A +sha256sum $B $O/aboot-rb.bin diff --git a/b9/b9l/persist/B9L-write.sh b/b9/b9l/persist/B9L-write.sh new file mode 100755 index 0000000..40d9d70 --- /dev/null +++ b/b9/b9l/persist/B9L-write.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# B9L-PERSIST — the ONLY write: aboot := lk1st autoboot + B9L ST7735S panel/splash (lk2nd 23.1 + b9l patch, AURORA_SPI_PANEL=1 AURORA_SPLASH=1). +# Run on 480s ONLY after an explicit GO for the write. Derived from b5a/A4-write.sh + b9/b9c/cache/B9C-write.sh (gates/verify). Only aboot is written; +# boot (emmc1 e9579f33), cache (B9C b9ce13c9) and everything else are checked before and after. The live aboot (must be 3b8cd266) is read back first = backup. +# Entry: HW EDL (battery on, D+ -> GND, plug USB, release). Never `edl reset`. Stops at the first failed gate. +cd ~/doc/modem/jz08-aurora || exit 1 +L=firehose/007050e100000000_394a2e47cf830150_fhprg_peek.bin +O=logs/b9/b9l/W ; A3=logs/b5a/A3 ; P=logs/b5a/A4pre ; mkdir -p $O +NEW=b9/b9l/persist/aboot-lk1st-b9l.pad1M ; NEW_SHA=15208dbb4feafccd72d2b06db5714cd746c216701f0ef8822c58bb47105d37c4 +OLD=b5a/aboot-lk1st-aurora-autoboot.pad1M ; OLD_SHA=3b8cd2667837fc7083cb28991d849f9b408a07fa743bfd05eafee7b053760f85 # current aboot (B5a) +BOOT_SHA=e9579f33c7304cd47f487f2b61cd9226dc04fd3a63775d62b4b95fc15bd3ebff +CACHE_SHA=b9ce13c9f48e36a5054c0ae3c39dc3f184b1fc2eea1d57d4b8bd8e9ae800a37b +die(){ echo "STOP: $*"; exit 1; } +sha(){ sha256sum "$1" | cut -d" " -f1; } +E(){ edl --loader=$L "$@"; } +echo "== G0 inputs" +[ "$(sha $L)" = 53f193500c03248f0d671ab57bfe9ca8a42967e97f28403294b4b3f854075aca ] || die loader +[ "$(sha $NEW)" = $NEW_SHA ] && [ $(stat -c %s $NEW) = 1048576 ] || die candidate +[ "$(sha $OLD)" = $OLD_SHA ] && [ $(stat -c %s $OLD) = 1048576 ] || die rollback-image +lsusb | grep -q 05c6:9008 || die "no 9008" +echo "== G1 identity + geometry + baseline" +E printgpt > $O/00-printgpt.log 2>&1 || die printgpt +grep -aq "Serial: *0x" $O/00-printgpt.log || grep -aq "Mode detected: firehose" $O/00-printgpt.log || die serial +grep -a "^aboot:" $O/00-printgpt.log | grep -q "Offset 0x0000000008100000, Length 0x0000000000100000" || die aboot-geometry +E rs 0 34 $O/pre-gptp.bin >/dev/null 2>&1; cmp $O/pre-gptp.bin $A3/gpt-primary-34.bin || die gpt-changed +E r boot $O/pre-boot.bin >/dev/null 2>&1; [ "$(sha $O/pre-boot.bin)" = $BOOT_SHA ] || die boot-not-emmc1 +E r cache $O/pre-cache.bin >/dev/null 2>&1; [ "$(sha $O/pre-cache.bin)" = $CACHE_SHA ] || die cache-not-b9c +E r aboot $O/pre-aboot.bin >/dev/null 2>&1; [ "$(sha $O/pre-aboot.bin)" = $OLD_SHA ] || die aboot-not-3b8cd266 +echo "== W aboot := lk1st-b9l (LBA 264192, 2048 sectors)" +E w aboot $NEW > $O/10-aboot-write.log 2>&1; echo "rc=$?"; grep -a "Wrote" $O/10-aboot-write.log +E r aboot $O/11-aboot-readback.bin > $O/11-aboot-readback.log 2>&1 || die readback-rc +sha256sum $NEW $O/11-aboot-readback.bin +cmp $NEW $O/11-aboot-readback.bin || die "ABOOT READBACK MISMATCH — do NOT reboot; run b9/b9l/persist/B9L-rollback.sh" +echo ABOOT_MATCH +echo "== V everything else unchanged" +E rs 0 34 $O/post-gptp.bin >/dev/null 2>&1; cmp $O/post-gptp.bin $A3/gpt-primary-34.bin || die gptp +E rs 7634911 33 $O/post-gptb.bin >/dev/null 2>&1; cmp $O/post-gptb.bin $A3/gpt-backup-33.bin || die gptb +E rs 305184 1024 $O/post-tzbak.bin >/dev/null 2>&1; cmp $O/post-tzbak.bin $A3/tzbak-305184.bin || die tzbak +E r boot $O/post-boot.bin >/dev/null 2>&1; [ "$(sha $O/post-boot.bin)" = $BOOT_SHA ] || die boot +E r cache $O/post-cache.bin >/dev/null 2>&1; [ "$(sha $O/post-cache.bin)" = $CACHE_SHA ] || die cache +for p in sbl1 rpm tz hyp recovery modemst1 modemst2 fsg fsc persist; do + E r $p $O/post-$p.bin >/dev/null 2>&1; cmp $O/post-$p.bin $A3/$p.bin || die "$p changed"; echo "$p == A3" +done +for p in modem system userdata; do + E r $p $O/post-$p.bin >/dev/null 2>&1; cmp $O/post-$p.bin $P/$p.bin || die "$p changed"; echo "$p == A4pre"; rm -f $O/post-$p.bin +done +(cd $O && sha256sum *.bin > SHA256SUMS) +echo "B9L_ABOOT_WRITE_VERIFIED — power off fully (USB, then battery) before the first boot" diff --git a/b9/b9l/persist/SHA256SUMS b/b9/b9l/persist/SHA256SUMS new file mode 100644 index 0000000..bad9125 --- /dev/null +++ b/b9/b9l/persist/SHA256SUMS @@ -0,0 +1,11 @@ +16f9ec0ad8289fbf62acfa05733025fd254503229cf9cf5266ec190ecbd35ec7 lk1st-b9l-unsigned.mbn +0ddbc29a6bbdf0c8ba280dd7a4eaad793531600bce32528a92d59c9110f6bd0a aboot-lk1st-b9l.mbn +15208dbb4feafccd72d2b06db5714cd746c216701f0ef8822c58bb47105d37c4 aboot-lk1st-b9l.pad1M +9f2b267244450f6674e80f01e30c9dd843659a131028278827aa666e3975c268 B9L-write.sh +9358f0cb2b05a1a2525dd57496d41cc01a90ac1618db93863a24ce6936525eab B9L-rollback.sh +dcd182d495046ce30ebba70d1c04b5a119f3d426feb5bff29912a4b81feaf816 lk2nd-23.1-aurora-b9l-lk1st.patch +f0a0a032533ad2c180f872d9e896b9ed1ef274d1ab610c157a62a17d8724fd39 config-vs-current-lk1st.diff +1b8f6b19eb4b23e6a69ff10391c3b7c201c8fefe9eff10e0e2d083d8dd235f51 build-lk1st-b9l.log +7085dd78a92e1e488220bf4e405a4f3b336ff0eae1ca053172a9cbbead1659ab sign-b9l.log +d7250389fe48c22266cfc10dcd698aa2c2950f35c9637c97018d1493a8fd44ed structure-vs-current.txt +5ffd39d58cd6c29e1dd3977c122da0361182671e965c852712df188744be4cc0 B9L-PERSIST-PLAN.md diff --git a/b9/b9l/persist/b9l-boot.sh b/b9/b9l/persist/b9l-boot.sh new file mode 100644 index 0000000..30237ca --- /dev/null +++ b/b9/b9l/persist/b9l-boot.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# 480s side, B9C boot K MODE (derived from b8f-boot.sh). MODE=ram: RESET-held power-on -> lk1st fastboot -> `fastboot boot` B9C RAM image. +# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet; +# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot. +K=$1; MODE=$2; case "$MODE" in ram|cold) ;; *) echo "usage: $0 K ram|cold"; exit 2;; esac +cd ~/doc/modem/jz08-aurora; O=logs/b9/b9l/boot$MODE$K; mkdir -p $O; IMG=b9/b9c/out/aurora-b9c.img +A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; } +tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; } +OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1 +U=logs/uart/b9l-boot$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null & +if [ $MODE = ram ]; then + echo "fa855e1c84763861d8b2f6bd7ed669e8ab625aa42178317883fabff39dec4fce $IMG" | sha256sum -c || exit 1 + act "B9L-PERSIST $MODE$K: waiting for fastboot (power off >= 90 s, then RESET held + battery -> USB)" + if fastboot devices 2>/dev/null | grep -q ; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q ; do sleep 1; done; fi + i=0; until fastboot devices 2>/dev/null | grep -q ; do i=$((i+1)); [ $i -ge 600 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done + act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A +else + act "B9L-PERSIST $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET" + until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)" + until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done +fi +i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok" +R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C" +printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w +i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done +tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A +printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a +i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done +act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)" +printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s +i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')" +cat > $O/.c <<'C' +echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline +echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4 +echo ---modem; /etc/init.d/aurora-modem status +echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log +for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev +echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog" +echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log +echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/" +echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done +echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done +echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17" +echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn" +echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +echo SNAP-END +C +tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)" +printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full +cp $U.log $O/uart.log; act "B9L-PERSIST $MODE$K END - operator visual check next" diff --git a/b9/b9l/persist/config-vs-current-lk1st.diff b/b9/b9l/persist/config-vs-current-lk1st.diff new file mode 100644 index 0000000..44a4092 --- /dev/null +++ b/b9/b9l/persist/config-vs-current-lk1st.diff @@ -0,0 +1,4 @@ +54a55 +> #define AURORA_SPLASH 1 +79a81 +> #define WITH_LK2ND_AURORA 1 diff --git a/b9/b9l/persist/lk2nd-23.1-aurora-b9l-lk1st.patch b/b9/b9l/persist/lk2nd-23.1-aurora-b9l-lk1st.patch new file mode 100644 index 0000000..86f8e2c --- /dev/null +++ b/b9/b9l/persist/lk2nd-23.1-aurora-b9l-lk1st.patch @@ -0,0 +1,1813 @@ +diff --git a/lk2nd/aurora/aurora_splash.h b/lk2nd/aurora/aurora_splash.h +new file mode 100644 +index 00000000..6a386939 +--- /dev/null ++++ b/lk2nd/aurora/aurora_splash.h +@@ -0,0 +1,1369 @@ ++/* Generated by b9/b9l/splash/mk-splash.py from swag.png: 128x128 RGB565 (LE u16 in memory) */ ++static const uint16_t aurora_splash[128 * 128] = { ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xe73c, 0xd6ba, 0xce59, 0xc618, 0xbdf7, 0xdedb, ++ 0xef5d, 0xe71c, 0xd6ba, 0xce79, 0xce79, 0xd69a, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xef5d, 0xef7d, 0xffdf, 0xffdf, ++ 0xffff, 0xffdf, 0xf79e, 0xef7d, 0xe73c, 0xdefb, 0xdedb, 0xef5d, 0xf7be, 0xef7d, 0xef5d, 0xef5d, ++ 0xef5d, 0xef7d, 0xf7be, 0xf7be, 0xe73c, 0xd69a, 0xce79, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xdefb, 0xc638, 0xd69a, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xf79e, 0xf79e, 0xf79e, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, ++ 0xdefb, 0xc638, 0xb5b6, 0xe71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xce59, ++ 0xa514, 0xbdd7, 0xdefb, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe71c, ++ 0xdedb, 0xef5d, 0xf7be, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xef5d, 0xdefb, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xce59, 0xa514, 0xbdf7, 0xe71c, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xef5d, 0xf79e, 0xf79e, 0xf7be, 0xf7be, ++ 0xf79e, 0xef7d, 0xf79e, 0xffdf, 0xffdf, 0xffdf, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xdedb, 0xbdf7, 0xd69a, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef5d, ++ 0xdefb, 0xc638, 0xb596, 0x9cf3, 0x8c71, 0x8c71, 0x8c51, 0x8c51, 0x8c71, 0x94b2, 0xa534, 0xc618, ++ 0xdedb, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, ++ 0xd6ba, 0xdefb, 0xe73c, 0xef5d, 0xe73c, 0xdefb, 0xd69a, 0xbdf7, 0xa534, 0x9492, 0x8410, 0x73ae, ++ 0x738e, 0x738e, 0x738e, 0x738e, 0x73ae, 0x8430, 0x94b2, 0xa534, 0xbdd7, 0xc638, 0xd6ba, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xdedb, 0xd69a, 0xc618, 0xb596, ++ 0x9cf3, 0x8c71, 0x8430, 0x7bef, 0x73ae, 0x73ae, 0x7bcf, 0xbdf7, 0xef5d, 0xef7d, 0xef7d, 0xef7d, ++ 0xef7d, 0xf79e, 0xef7d, 0xdefb, 0xbdf7, 0xa514, 0x9cd3, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xdefb, 0xbdf7, 0xa514, 0x8410, 0x630c, 0x4228, 0x39c7, 0x39e7, 0x4a69, ++ 0x632c, 0x7bef, 0x94b2, 0xbdf7, 0xdedb, 0xe73c, 0xf79e, 0xffdf, 0xffdf, 0xffdf, 0xf7be, 0xef7d, ++ 0xd6ba, 0xbdf7, 0xb5b6, 0xe71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xce59, ++ 0x8c71, 0x6b4d, 0x4208, 0x2104, 0x1082, 0x0861, 0x10a2, 0x31a6, 0x6b4d, 0x94b2, 0xbdd7, 0xb5b6, ++ 0xad55, 0xad55, 0xad75, 0xad55, 0xad55, 0xad55, 0xad75, 0xbdd7, 0xbdf7, 0xbdf7, 0xce59, 0xef7d, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf79e, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xef5d, 0xd69a, 0xce59, 0xef5d, 0xc618, 0x8410, 0x632c, 0x4a69, 0x39e7, ++ 0x39e7, 0x39e7, 0x4228, 0x5acb, 0x8410, 0xad55, 0xc638, 0xb596, 0x94b2, 0x8c71, 0x8410, 0x7bcf, ++ 0x73ae, 0x73ae, 0x8410, 0x9492, 0xad55, 0xb5b6, 0xc638, 0xef5d, 0xffdf, 0xef7d, 0xdefb, 0xd6ba, ++ 0xdedb, 0xe73c, 0xf79e, 0xffdf, 0xf7be, 0xef7d, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xb5b6, ++ 0x73ae, 0x632c, 0xc618, 0xc618, 0xad55, 0xa534, 0xa534, 0xa514, 0xa514, 0xa514, 0xa514, 0xa534, ++ 0xad55, 0xad75, 0xb596, 0xb596, 0xb596, 0xb596, 0xad75, 0xad75, 0xad55, 0xad75, 0xad75, 0xb596, ++ 0xb596, 0xb5b6, 0xbdf7, 0xe71c, 0xef5d, 0xc618, 0x94b2, 0x8410, 0x8c71, 0xb596, 0xd6ba, 0xef7d, ++ 0xe73c, 0xd69a, 0xc638, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, ++ 0xe73c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xf7be, 0xd6ba, 0x8c71, 0x9cf3, 0xbdf7, 0x94b2, 0xa534, ++ 0xc618, 0xc618, 0xc618, 0xc618, 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xc618, 0xc618, 0xbdf7, ++ 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, 0xb5b6, 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, 0xd69a, ++ 0xce79, 0xa534, 0x8c51, 0x8410, 0x9492, 0xbdf7, 0xe71c, 0xf7be, 0xef7d, 0xd69a, 0xc618, 0xef5d, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xffdf, 0xffdf, 0xf7be, ++ 0xf79e, 0xce59, 0x9cf3, 0xad75, 0xdedb, 0xe73c, 0x94b2, 0xb596, 0xe71c, 0xe71c, 0xe71c, 0xe71c, ++ 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xdefb, 0xd69a, 0xbdf7, 0xc618, 0xbdf7, 0xbdf7, ++ 0xc618, 0xbdf7, 0xbdf7, 0xbdf7, 0xbdf7, 0xbdf7, 0xbdf7, 0xbdf7, 0xb596, 0x94b2, 0x8410, 0x8430, ++ 0x9cd3, 0xc638, 0xef5d, 0xffdf, 0xf79e, 0xe71c, 0xd6ba, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xe73c, 0xbdd7, 0x9492, 0x94b2, 0xe71c, ++ 0xf7be, 0xe73c, 0xb5b6, 0xd69a, 0xffdf, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, ++ 0xffdf, 0xffdf, 0xf7be, 0xdefb, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, ++ 0xce59, 0xce59, 0xce59, 0xbdf7, 0xa534, 0x9492, 0x8410, 0x7bef, 0x9492, 0xb5b6, 0xd6ba, 0xf79e, ++ 0xffdf, 0xf7be, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xef7d, 0xe73c, 0xce59, 0x5aeb, 0x9492, 0xef5d, 0xffdf, 0xef5d, 0xdedb, 0xdefb, 0xef7d, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe73c, ++ 0xdedb, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xce79, ++ 0xbdd7, 0xa514, 0x8410, 0x738e, 0x738e, 0x8430, 0xad55, 0xd6ba, 0xf79e, 0xffff, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xad55, 0x630c, ++ 0x8c71, 0xc638, 0xef5d, 0xf7be, 0xef5d, 0xdefb, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xe73c, 0xe73c, 0xe71c, ++ 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe73c, 0xef7d, 0xdefb, 0xc618, 0x9492, 0x6b6d, ++ 0x4a69, 0x52aa, 0x73ae, 0xad55, 0xe71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xbdf7, 0x8430, 0x73ae, 0xbdf7, 0xe71c, 0xef5d, 0xd69a, ++ 0xdedb, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xf79e, 0xf79e, 0xf79e, 0xf79e, 0xf79e, 0xf79e, 0xf79e, 0xf79e, ++ 0xf79e, 0xf79e, 0xf79e, 0xffdf, 0xf7be, 0xe71c, 0xb5b6, 0x8410, 0x528a, 0x39e7, 0x52aa, 0x8410, ++ 0xd69a, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, ++ 0xd6ba, 0x7bef, 0x8c51, 0xc618, 0xdedb, 0xe71c, 0xdedb, 0xc618, 0xd6ba, 0xf7be, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, ++ 0xffff, 0xffdf, 0xdedb, 0xad75, 0x8410, 0x5acb, 0x4a69, 0x6b4d, 0xad55, 0xdedb, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdedb, 0xa534, 0x7bcf, 0xad75, 0xf79e, ++ 0xf7be, 0xd6ba, 0xbdf7, 0xe73c, 0xef5d, 0xe71c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffdf, 0xe73c, ++ 0xc638, 0x9492, 0x6b4d, 0x5aeb, 0x73ae, 0x9cd3, 0xbdf7, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xad55, 0x5acb, 0xb5b6, 0xef5d, 0xffdf, 0xf79e, 0xef5d, 0xef5d, 0xef5d, ++ 0xef7d, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xe73c, 0xe71c, 0xffdf, 0xffff, 0xffdf, 0xef7d, 0xc638, 0x9492, 0x630c, ++ 0x4a69, 0x528a, 0x73ae, 0xd69a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xf79e, 0xffff, 0xffff, 0xf7be, 0xdefb, 0xad55, 0x632c, ++ 0x4a69, 0xb5b6, 0xef5d, 0xffff, 0xf7be, 0xf7be, 0xffdf, 0xef7d, 0xf79e, 0xffdf, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, ++ 0xe71c, 0xf79e, 0xffdf, 0xffdf, 0xffdf, 0xef5d, 0xce59, 0x9cd3, 0x5acb, 0x31a6, 0x39e7, 0xb596, ++ 0xe73c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xdedb, 0xdedb, 0xf7be, ++ 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xe73c, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xe71c, 0xf7be, 0xffff, 0xffff, ++ 0xef7d, 0xef7d, 0xffff, 0xffff, 0xef5d, 0xbdd7, 0x5aeb, 0x5acb, 0x8c51, 0xb596, 0xd6ba, 0xf7be, ++ 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xef5d, 0xef5d, 0xf79e, 0xffdf, ++ 0xffff, 0xffff, 0xf79e, 0xce59, 0x73ae, 0x3186, 0x2104, 0x94b2, 0xce79, 0xdefb, 0xf79e, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xe73c, 0xce59, 0xbdd7, 0xb5b6, 0xef7d, 0xffff, 0xffdf, 0xef7d, 0xdedb, ++ 0xc638, 0xc618, 0xce79, 0xdefb, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf79e, 0xe71c, 0xf7be, 0xffdf, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffdf, ++ 0xdefb, 0xb596, 0x7bcf, 0xa534, 0xe73c, 0xe73c, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xffdf, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf79e, 0xef5d, 0xe73c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xce79, ++ 0x7bcf, 0x31a6, 0x2104, 0x9492, 0xce59, 0xdedb, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xf7be, 0xe73c, ++ 0xce79, 0xbdf7, 0xbdd7, 0xef5d, 0xf7be, 0xe73c, 0xd69a, 0xbdd7, 0xad55, 0xa534, 0xb596, 0xc638, ++ 0xdefb, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, ++ 0xef5d, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xf7be, 0xd69a, 0xb596, 0xa514, 0xa514, 0xce79, ++ 0xffdf, 0xffdf, 0xf7be, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, ++ 0xe73c, 0xdefb, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xf79e, 0xd69a, 0x8430, 0x4208, 0x2104, 0x8430, ++ 0xbdd7, 0xce79, 0xe73c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xf79e, 0xdedb, 0xce59, 0xc618, 0xd69a, ++ 0xd69a, 0xc638, 0xad75, 0xa514, 0x9cd3, 0x9cd3, 0xa534, 0xb5b6, 0xce79, 0xdedb, 0xef5d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xef5d, 0xf79e, 0xffff, ++ 0xffff, 0xffdf, 0xe73c, 0xa534, 0x8c51, 0x94b2, 0xce59, 0xef7d, 0xffff, 0xffff, 0xffdf, 0xffdf, ++ 0xf7be, 0xe73c, 0xd6ba, 0xd69a, 0xdefb, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xe73c, 0xdedb, 0xd6ba, 0xdefb, ++ 0xf79e, 0xffff, 0xf79e, 0xd6ba, 0x94b2, 0x528a, 0x2965, 0x8410, 0xad75, 0xc618, 0xdefb, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xe71c, 0xd6ba, 0xce59, 0xc618, 0xbdd7, 0xb596, 0xad55, 0xa534, ++ 0xa534, 0xad55, 0xb5b6, 0xc638, 0xd69a, 0xdefb, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xf79e, 0xffff, 0xffff, 0xf7be, 0xd6ba, 0x8430, ++ 0x738e, 0x94b2, 0xe71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe73c, 0xbdd7, 0x9cd3, 0x9492, ++ 0xad75, 0xd69a, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf79e, 0xe71c, 0xce79, 0xce59, 0xce79, 0xe71c, 0xf79e, 0xf7be, 0xdedb, ++ 0xa534, 0x6b6d, 0x4a49, 0x7bcf, 0x9cf3, 0xb596, 0xd69a, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf79e, 0xe73c, 0xd6ba, 0xbdd7, 0xb5b6, 0xb5b6, 0xbdd7, 0xbdf7, 0xce59, 0xce79, 0xdedb, 0xe71c, ++ 0xef5d, 0xf79e, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xf79e, 0xf7be, 0xffff, 0xffff, 0xef7d, 0xce59, 0x8410, 0x73ae, 0x9cf3, 0xe73c, 0xffff, ++ 0xffdf, 0xffdf, 0xf79e, 0xe71c, 0xbdd7, 0x9492, 0x738e, 0x6b4d, 0x8430, 0xad55, 0xce79, 0xef7d, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, ++ 0xdedb, 0xc638, 0xbdf7, 0xbdf7, 0xce59, 0xe73c, 0xef7d, 0xdefb, 0xb5b6, 0x8c51, 0x630c, 0x73ae, ++ 0x8c71, 0xa534, 0xc638, 0xe71c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xbdf7, ++ 0xbdd7, 0xc638, 0xd6ba, 0xe73c, 0xf79e, 0xf7be, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf79e, ++ 0xf79e, 0xdedb, 0xbdd7, 0x9492, 0x9492, 0xb5b6, 0xef5d, 0xffdf, 0xef5d, 0xce79, 0xb596, 0x94b2, ++ 0x8430, 0x8430, 0x8c71, 0x94b2, 0x9cd3, 0x9cd3, 0x9cd3, 0xce59, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xdedb, 0xc618, 0xad75, 0xad55, ++ 0xbdd7, 0xd6ba, 0xe73c, 0xe73c, 0xc638, 0xa514, 0x7bef, 0x738e, 0x7bef, 0x94b2, 0xbdd7, 0xdefb, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xbdd7, 0xad75, 0xc638, 0xdefb, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xce79, 0xbdd7, 0xad75, 0xb5b6, ++ 0xbdf7, 0xce59, 0xd6ba, 0xd6ba, 0xc638, 0xa534, 0x8c71, 0x7bef, 0x8c51, 0xa534, 0xc618, 0xce79, ++ 0xbdf7, 0xa534, 0x8c51, 0xc638, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef7d, 0xdedb, 0xbdd7, 0xa514, 0x9cf3, 0xad55, 0xce59, 0xdefb, 0xe73c, ++ 0xd69a, 0xb5b6, 0x94b2, 0x6b6d, 0x6b6d, 0x8c51, 0xad75, 0xd6ba, 0xf7be, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xef5d, 0x9cd3, 0x8c51, 0xad75, 0xd69a, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf79e, 0xd6ba, 0xa534, 0x9492, 0xa534, 0xd69a, 0xe73c, 0xe71c, 0xc618, 0xa534, ++ 0x9492, 0x8c71, 0x94b2, 0xa534, 0xbdd7, 0xd6ba, 0xef7d, 0xef7d, 0xe71c, 0xc638, 0xb596, 0xdedb, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, ++ 0xd6ba, 0xb5b6, 0x94b2, 0x9492, 0x9cf3, 0xbdf7, 0xdedb, 0xef5d, 0xdedb, 0xc638, 0xa534, 0x6b6d, ++ 0x632c, 0x8410, 0xad55, 0xd69a, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0x7bcf, ++ 0x5aeb, 0x8410, 0xad75, 0xdedb, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xef5d, 0xc638, ++ 0x8c51, 0x8430, 0xad55, 0xe71c, 0xffdf, 0xef7d, 0xad75, 0x73ae, 0x632c, 0x8430, 0xbdd7, 0xe71c, ++ 0xef7d, 0xffdf, 0xffdf, 0xef5d, 0xe73c, 0xef5d, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xf7be, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xd6ba, 0xb5b6, 0x9cd3, 0x9492, ++ 0x9cf3, 0xbdd7, 0xd69a, 0xe71c, 0xe71c, 0xd6ba, 0xb5b6, 0x7bef, 0x6b4d, 0x8410, 0xa514, 0xc638, ++ 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, 0x630c, 0x39e7, 0x630c, 0x8c71, 0xbdf7, ++ 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef5d, 0xce79, 0xe71c, 0xc618, 0x9492, 0xad55, 0xc638, 0xe71c, 0xe73c, ++ 0xf79e, 0xe71c, 0x8430, 0x738e, 0x8430, 0x7bcf, 0x8430, 0xa534, 0xd69a, 0xef7d, 0xffdf, 0xef5d, ++ 0xe73c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xdedb, 0xce79, 0xce79, 0xce79, 0xdedb, ++ 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xffdf, 0xf79e, 0xce79, 0xa514, 0xb596, 0xf7be, ++ 0xffff, 0xffdf, 0xf7be, 0xf7be, 0xef7d, 0xdefb, 0xdedb, 0xce79, 0xbdf7, 0xa514, 0xa514, 0xb5b6, ++ 0xe71c, 0xf79e, 0xef5d, 0xdedb, 0xbdf7, 0xa514, 0x8c71, 0x9492, 0xad75, 0xdefb, 0xf7be, 0xffff, ++ 0xffff, 0xffff, 0xe73c, 0x8410, 0x6b4d, 0x7bcf, 0x94b2, 0xbdd7, 0xdedb, 0xf79e, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffdf, 0xf79e, 0xe71c, 0xd6ba, 0xce79, 0xce79, 0xd6ba, 0xe71c, ++ 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, ++ 0xbdf7, 0xc638, 0xa534, 0x8410, 0xbdf7, 0xef5d, 0xffdf, 0xef5d, 0xe71c, 0xce79, 0x7bef, 0x8c71, ++ 0xbdf7, 0x9cd3, 0x8c71, 0x9cf3, 0xd6ba, 0xf79e, 0xffdf, 0xef5d, 0xe73c, 0xef7d, 0xffdf, 0xffff, ++ 0xffff, 0xf79e, 0xdefb, 0xce79, 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, 0xe71c, 0xf7be, 0xffff, 0xffff, ++ 0xf7be, 0xef5d, 0xf79e, 0xe73c, 0xad55, 0x7bcf, 0x94b2, 0xf79e, 0xffff, 0xffdf, 0xf7be, 0xf7be, ++ 0xf7be, 0xf79e, 0xf7be, 0xef5d, 0xce59, 0x9cf3, 0x8c71, 0xa534, 0xe71c, 0xffdf, 0xffff, 0xffff, ++ 0xe71c, 0xb596, 0x8430, 0x7bef, 0x94b2, 0xce79, 0xf79e, 0xffff, 0xffff, 0xffff, 0xef5d, 0x9cd3, ++ 0x8410, 0x8c71, 0xa514, 0xbdd7, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf7be, 0xef5d, 0xd6ba, 0xc618, 0xbdd7, 0xbdd7, 0xc618, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xce59, 0xad55, 0x8c71, 0x8c71, ++ 0xd69a, 0xf7be, 0xffdf, 0xef5d, 0xce59, 0xad55, 0x8c51, 0xb5b6, 0xef5d, 0xce79, 0xc618, 0xce79, ++ 0xf7be, 0xffff, 0xffdf, 0xe73c, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xdefb, 0xce59, ++ 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, 0xe71c, 0xf7be, 0xffdf, 0xffdf, 0xf7be, 0xef5d, 0xf7be, 0xe71c, ++ 0x9cd3, 0x8410, 0xa534, 0xf79e, 0xf7be, 0xf79e, 0xf7be, 0xef7d, 0xef7d, 0xf7be, 0xffdf, 0xef5d, ++ 0xce79, 0xa534, 0x9cd3, 0xa534, 0xdedb, 0xf7be, 0xffff, 0xffff, 0xe71c, 0xbdd7, 0x9492, 0x8430, ++ 0x9cd3, 0xce59, 0xef5d, 0xffff, 0xffff, 0xffff, 0xef5d, 0x9cf3, 0x8c51, 0x94b2, 0xa534, 0xbdd7, ++ 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xd69a, 0xc618, ++ 0xbdd7, 0xbdd7, 0xc618, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xdefb, 0x8c71, 0x73ae, 0x9cf3, 0xe71c, 0xffff, 0xffdf, 0xe71c, ++ 0xad75, 0x8410, 0xa514, 0xd6ba, 0xffdf, 0xf7be, 0xf7be, 0xf7be, 0xffff, 0xffdf, 0xf79e, 0xd69a, ++ 0xc618, 0xce79, 0xf79e, 0xffff, 0xffff, 0xf79e, 0xdefb, 0xce59, 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, ++ 0xe71c, 0xf7be, 0xffdf, 0xf7be, 0xf79e, 0xf7be, 0xffdf, 0xdedb, 0x9492, 0x94b2, 0xbdf7, 0xef7d, ++ 0xd6ba, 0xce79, 0xe73c, 0xe71c, 0xe73c, 0xffdf, 0xffdf, 0xef7d, 0xd69a, 0xbdd7, 0xad75, 0xad75, ++ 0xce79, 0xef5d, 0xffff, 0xffff, 0xef5d, 0xce59, 0xad55, 0x9cd3, 0xa514, 0xc638, 0xe73c, 0xffdf, ++ 0xffff, 0xffff, 0xef7d, 0xad55, 0x94b2, 0xa514, 0xad75, 0xbdf7, 0xd6ba, 0xef7d, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xd69a, 0xc618, 0xbdd7, 0xbdd7, 0xc618, 0xd6ba, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xe73c, 0x7bcf, 0x6b4d, 0xad75, 0xef5d, 0xffff, 0xffdf, 0xdefb, 0x94b2, 0x630c, 0xbdd7, 0xef7d, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xdedb, 0xa514, 0x8c71, 0x9cd3, 0xce59, 0xef5d, ++ 0xffdf, 0xf79e, 0xdefb, 0xce59, 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, 0xe71c, 0xf7be, 0xffdf, 0xe73c, ++ 0xdefb, 0xf7be, 0xe73c, 0xbdf7, 0x9cd3, 0xbdd7, 0xd69a, 0xce59, 0xad75, 0xb596, 0xce79, 0xc638, ++ 0xd69a, 0xffdf, 0xffdf, 0xef7d, 0xd69a, 0xce59, 0xc618, 0xb5b6, 0xc618, 0xdedb, 0xffdf, 0xffff, ++ 0xef7d, 0xdedb, 0xbdf7, 0xad75, 0xad75, 0xbdf7, 0xd69a, 0xef7d, 0xffdf, 0xffff, 0xf79e, 0xb5b6, ++ 0xa534, 0xad75, 0xbdd7, 0xce59, 0xd6ba, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xbdd7, 0xc618, 0xdedb, 0xef7d, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe71c, 0x6b6d, 0x6b6d, 0xbdf7, ++ 0xef7d, 0xffff, 0xf7be, 0xce79, 0x8410, 0x52aa, 0xce59, 0xffdf, 0xffff, 0xffdf, 0xffdf, 0xffdf, ++ 0xffdf, 0xdedb, 0xa534, 0x5aeb, 0x4228, 0x5acb, 0x94b2, 0xd69a, 0xffdf, 0xf79e, 0xdefb, 0xce59, ++ 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, 0xe71c, 0xf7be, 0xffdf, 0xd6ba, 0xce59, 0xf79e, 0xc618, 0xa514, ++ 0xad75, 0xdedb, 0xd69a, 0x9492, 0x9492, 0x9cd3, 0xa514, 0xa514, 0xc618, 0xf7be, 0xffff, 0xef7d, ++ 0xd6ba, 0xe71c, 0xd6ba, 0xbdf7, 0xb596, 0xce79, 0xffdf, 0xffff, 0xf7be, 0xef7d, 0xd6ba, 0xc638, ++ 0xb5b6, 0xbdd7, 0xc618, 0xd6ba, 0xef5d, 0xffdf, 0xf79e, 0xc618, 0xb596, 0xbdd7, 0xc638, 0xce79, ++ 0xdedb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef5d, 0xd69a, 0xc618, ++ 0xb5b6, 0xbdd7, 0xc618, 0xdedb, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf79e, 0xd69a, 0x738e, 0x7bef, 0xce79, 0xf79e, 0xffff, 0xf7be, 0xc618, ++ 0x7bcf, 0x5aeb, 0xd69a, 0xf7be, 0xef7d, 0xe73c, 0xef5d, 0xf79e, 0xef7d, 0xbdd7, 0x6b6d, 0x2104, ++ 0x0861, 0x2945, 0x6b6d, 0xc618, 0xffdf, 0xf79e, 0xdefb, 0xce59, 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, ++ 0xe71c, 0xf7be, 0xffdf, 0xd69a, 0xc638, 0xef7d, 0xad55, 0x9492, 0xce79, 0xf79e, 0xc638, 0x5aeb, ++ 0x73ae, 0x8430, 0x73ae, 0x7bef, 0xb596, 0xf7be, 0xffff, 0xef7d, 0xdedb, 0xf79e, 0xef5d, 0xc638, ++ 0xa534, 0xbdf7, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xdedb, 0xc618, 0xb596, 0xad75, 0xbdd7, ++ 0xdedb, 0xef7d, 0xf7be, 0xd69a, 0xc618, 0xc638, 0xce79, 0xd6ba, 0xdedb, 0xe73c, 0xef5d, 0xf79e, ++ 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xbdd7, 0xc618, 0xdedb, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe71c, ++ 0xb596, 0x8410, 0x9cd3, 0xd6ba, 0xf79e, 0xffff, 0xef7d, 0xb596, 0x7bef, 0x73ae, 0xce59, 0xdedb, ++ 0xc638, 0xc638, 0xd6ba, 0xe73c, 0xe71c, 0xa534, 0x528a, 0x10a2, 0x0020, 0x2124, 0x6b6d, 0xc638, ++ 0xffdf, 0xf79e, 0xdefb, 0xce59, 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, 0xe71c, 0xf7be, 0xffdf, 0xdefb, ++ 0xd69a, 0xef5d, 0xad75, 0x9cf3, 0xef5d, 0xf7be, 0xc618, 0x4a49, 0x5acb, 0x630c, 0x4a69, 0x5aeb, ++ 0xa514, 0xf79e, 0xffff, 0xef7d, 0xdedb, 0xf79e, 0xef7d, 0xce59, 0x94b2, 0xb596, 0xf7be, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xef5d, 0xce79, 0xad55, 0x9cf3, 0xa514, 0xc638, 0xe73c, 0xf7be, 0xdefb, ++ 0xd6ba, 0xd6ba, 0xdedb, 0xdefb, 0xdefb, 0xe71c, 0xe71c, 0xef5d, 0xef5d, 0xef5d, 0xef7d, 0xffdf, ++ 0xffdf, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xbdd7, 0xc618, 0xdedb, 0xef7d, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd69a, 0x9492, 0x9cd3, 0xbdf7, 0xe71c, ++ 0xf7be, 0xffdf, 0xe71c, 0x9cf3, 0x8c51, 0x9cf3, 0xc618, 0xc618, 0xb596, 0xbdf7, 0xdedb, 0xf79e, ++ 0xef7d, 0xad75, 0x5acb, 0x18c3, 0x0841, 0x39c7, 0x9492, 0xd6ba, 0xffdf, 0xf79e, 0xdefb, 0xce59, ++ 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, 0xe71c, 0xf7be, 0xffdf, 0xf79e, 0xdefb, 0xbdd7, 0xb596, 0xce59, ++ 0xf7be, 0xef5d, 0xad75, 0x52aa, 0x39e7, 0x31a6, 0x3186, 0x4a69, 0x94b2, 0xf79e, 0xffff, 0xf79e, ++ 0xdefb, 0xf79e, 0xf79e, 0xce79, 0x8c71, 0xad55, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, ++ 0xd6ba, 0xa514, 0x8c71, 0x8c71, 0xb596, 0xdefb, 0xffdf, 0xef5d, 0xe71c, 0xe71c, 0xe71c, 0xe71c, ++ 0xe71c, 0xe71c, 0xe71c, 0xdefb, 0xdefb, 0xdefb, 0xe73c, 0xffdf, 0xffdf, 0xef5d, 0xd69a, 0xc618, ++ 0xb5b6, 0xb5b6, 0xc638, 0xdedb, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xc618, 0x73ae, 0xbdd7, 0xdefb, 0xe71c, 0xf7be, 0xf79e, 0xd69a, 0x8c71, ++ 0x94b2, 0xbdf7, 0xbdf7, 0xb596, 0xb596, 0xc638, 0xe71c, 0xffdf, 0xffdf, 0xbdf7, 0x6b6d, 0x2124, ++ 0x2104, 0x5aeb, 0xc618, 0xef5d, 0xffdf, 0xf79e, 0xdefb, 0xce59, 0xbdd7, 0xb5b6, 0xbdf7, 0xce79, ++ 0xe71c, 0xf7be, 0xffdf, 0xffff, 0xd69a, 0x73ae, 0xad75, 0xef5d, 0xf7be, 0xce59, 0x9cd3, 0x73ae, ++ 0x39c7, 0x10a2, 0x2945, 0x4208, 0x8c71, 0xef7d, 0xffff, 0xf79e, 0xdefb, 0xf79e, 0xf79e, 0xd69a, ++ 0x8430, 0xa514, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xdedb, 0xa514, 0x8410, 0x8410, ++ 0xad55, 0xd6ba, 0xffdf, 0xef7d, 0xef5d, 0xef5d, 0xe73c, 0xe73c, 0xe71c, 0xdefb, 0xdefb, 0xdedb, ++ 0xd6ba, 0xd6ba, 0xdefb, 0xffdf, 0xffdf, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xb5b6, 0xc618, 0xdedb, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xf7be, 0xf79e, 0xf79e, 0xf79e, 0xc618, ++ 0x8430, 0xce59, 0xe73c, 0xdefb, 0xf7be, 0xf79e, 0xce79, 0x9492, 0xa514, 0xd69a, 0xc638, 0xbdf7, ++ 0xc638, 0xdedb, 0xef7d, 0xffff, 0xffff, 0xd6ba, 0x9cd3, 0x630c, 0x6b4d, 0x9cd3, 0xef5d, 0xf7be, ++ 0xef7d, 0xe73c, 0xdedb, 0xce59, 0xbdf7, 0xbdf7, 0xc638, 0xd6ba, 0xe73c, 0xf7be, 0xffdf, 0xf79e, ++ 0xbdd7, 0x52aa, 0xad55, 0xf79e, 0xf79e, 0xc618, 0xad55, 0xad55, 0x6b6d, 0x4a69, 0x5aeb, 0x6b4d, ++ 0x9cf3, 0xef7d, 0xffdf, 0xf7be, 0xe73c, 0xf7be, 0xf79e, 0xd69a, 0x8c51, 0x94b2, 0xdefb, 0xf7be, ++ 0xffff, 0xffff, 0xffff, 0xf79e, 0xd69a, 0x9cf3, 0x7bef, 0x7bef, 0xad55, 0xdedb, 0xffdf, 0xf79e, ++ 0xef7d, 0xf79e, 0xef7d, 0xef5d, 0xe71c, 0xc618, 0xc638, 0xd6ba, 0xdedb, 0xdedb, 0xdefb, 0xffdf, ++ 0xffdf, 0xef5d, 0xd6ba, 0xc638, 0xb5b6, 0xa534, 0xbdf7, 0xdefb, 0xf79e, 0xf7be, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xf79e, 0xe73c, 0xdefb, 0xd69a, 0xce59, 0xc618, 0xbdf7, 0xce59, 0xdefb, 0xce79, 0xc618, 0xc618, ++ 0xef5d, 0xffdf, 0xef5d, 0xbdf7, 0xb5b6, 0xce59, 0xe73c, 0xf7be, 0xf7be, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xe73c, 0xef7d, 0xffdf, 0xdefb, 0xc618, 0xc618, 0xc618, 0xce59, ++ 0xd69a, 0xdedb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffdf, 0xd69a, 0xad55, 0x9cf3, 0xb5b6, 0xce79, ++ 0xd6ba, 0xdefb, 0xe73c, 0xef7d, 0xe73c, 0xe71c, 0xe73c, 0xdedb, 0xe71c, 0xffdf, 0xffdf, 0xffff, ++ 0xffdf, 0xffff, 0xf79e, 0xd69a, 0xa514, 0x8c51, 0x94b2, 0xdefb, 0xffff, 0xffff, 0xffff, 0xef5d, ++ 0xce59, 0x94b2, 0x8410, 0x8c51, 0xb5b6, 0xe71c, 0xf7be, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, ++ 0xdedb, 0x738e, 0x9492, 0xdefb, 0xf7be, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xf79e, 0xd6ba, 0xdedb, ++ 0xc618, 0x738e, 0xb5b6, 0xf7be, 0xffdf, 0xef7d, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd6ba, 0xce79, ++ 0xc618, 0xbdd7, 0xb5b6, 0xc638, 0xe71c, 0xce79, 0xc638, 0xce79, 0xf79e, 0xffff, 0xf7be, 0xd6ba, ++ 0xc638, 0xce59, 0xdefb, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xdedb, 0xb5b6, 0xbdd7, 0xbdf7, 0xce59, 0xd6ba, 0xe71c, 0xef7d, 0xf7be, ++ 0xffff, 0xffff, 0xffdf, 0xce79, 0xad55, 0xb596, 0xbdd7, 0xc638, 0xd69a, 0xe71c, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xce59, ++ 0xb596, 0x9cd3, 0x94b2, 0xdefb, 0xffff, 0xffff, 0xffff, 0xef5d, 0xc638, 0x9cd3, 0x8c51, 0x8c71, ++ 0xb5b6, 0xe71c, 0xf7be, 0xdefb, 0xef5d, 0xffff, 0xffff, 0xffff, 0xdedb, 0x630c, 0x8c51, 0xe71c, ++ 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffff, 0xf79e, 0xdedb, 0xdefb, 0xc638, 0x6b4d, 0xb5b6, 0xffff, ++ 0xffff, 0xef5d, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd6ba, 0xce79, 0xc618, 0xbdd7, 0xb5b6, 0xb5b6, ++ 0xc618, 0xce59, 0xd6ba, 0xef5d, 0xffdf, 0xffff, 0xffdf, 0xef7d, 0xdedb, 0xce79, 0xc618, 0xd6ba, ++ 0xef5d, 0xef5d, 0xef5d, 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xef5d, 0xce79, ++ 0xb5b6, 0xbdd7, 0xc618, 0xce59, 0xd6ba, 0xe71c, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffdf, 0xd69a, ++ 0xb5b6, 0xbdd7, 0xc618, 0xce59, 0xd6ba, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xf79e, 0xef5d, 0xdefb, 0xd6ba, 0xc638, 0xbdf7, 0xb5b6, 0xbdd7, 0xef5d, ++ 0xffff, 0xffff, 0xffff, 0xef7d, 0xd69a, 0xa534, 0x9492, 0x9492, 0xb5b6, 0xdefb, 0xf7be, 0xdefb, ++ 0xef5d, 0xffff, 0xffff, 0xffff, 0xdedb, 0x5aeb, 0x8c51, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xf7be, 0xdedb, 0xdefb, 0xc638, 0x6b4d, 0xb5b6, 0xffff, 0xffff, 0xef5d, 0xe71c, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xe71c, 0xd6ba, 0xce79, 0xc618, 0xbdd7, 0xb5b6, 0xa514, 0x9492, 0xc618, 0xef5d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xce79, 0x9cd3, 0xad55, 0xd69a, 0xd6ba, 0xd6ba, 0xd6ba, ++ 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xd6ba, 0xdedb, 0xd6ba, 0xc638, 0xb5b6, 0xbdd7, 0xc618, 0xce59, ++ 0xd6ba, 0xe71c, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xdefb, 0xc638, 0xc638, 0xce59, 0xce79, ++ 0xdedb, 0xe71c, 0xef5d, 0xf79e, 0xffdf, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xef7d, 0xdedb, ++ 0xce59, 0xc618, 0xbdf7, 0xc618, 0xce79, 0xd6ba, 0xdefb, 0xf79e, 0xffff, 0xffff, 0xffff, 0xf7be, ++ 0xdefb, 0xb596, 0x9cd3, 0x94b2, 0xb596, 0xdedb, 0xef7d, 0xdefb, 0xef5d, 0xffff, 0xffff, 0xffff, ++ 0xdedb, 0x5aeb, 0x8c51, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xdedb, 0xdefb, ++ 0xc638, 0x6b4d, 0xb5b6, 0xffff, 0xffff, 0xef5d, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd6ba, 0xce79, ++ 0xc618, 0xbdd7, 0xb5b6, 0x9492, 0x738e, 0xbdf7, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf79e, 0xce79, 0x7bef, 0x9cf3, 0xdefb, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, ++ 0xe71c, 0xe71c, 0xe71c, 0xce59, 0xb5b6, 0xbdd7, 0xc618, 0xce59, 0xd6ba, 0xe71c, 0xef7d, 0xf7be, ++ 0xffff, 0xffff, 0xffff, 0xe71c, 0xd69a, 0xd69a, 0xd6ba, 0xdedb, 0xdefb, 0xe71c, 0xe73c, 0xef5d, ++ 0xef5d, 0xef5d, 0xef7d, 0xf7be, 0xffff, 0xffdf, 0xe71c, 0xce59, 0xb5b6, 0xad55, 0xb596, 0xc638, ++ 0xdefb, 0xef7d, 0xf7be, 0xf7be, 0xffdf, 0xffdf, 0xffff, 0xffdf, 0xef7d, 0xc618, 0xa534, 0x9cd3, ++ 0xb596, 0xce79, 0xe71c, 0xdedb, 0xe73c, 0xffff, 0xffff, 0xffff, 0xdedb, 0x5aeb, 0x8c51, 0xe71c, ++ 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xdedb, 0xdefb, 0xc638, 0x6b4d, 0xb5b6, 0xffff, ++ 0xffff, 0xef5d, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd6ba, 0xce79, 0xc618, 0xbdd7, 0xb5b6, 0x9492, ++ 0x6b4d, 0xbdd7, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xce79, 0x7bcf, 0xa514, ++ 0xef7d, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xd69a, ++ 0xb5b6, 0xbdd7, 0xc618, 0xce59, 0xd6ba, 0xe71c, 0xef7d, 0xf7be, 0xffff, 0xffff, 0xffff, 0xef7d, ++ 0xe71c, 0xe73c, 0xe73c, 0xe71c, 0xe71c, 0xe71c, 0xdefb, 0xdefb, 0xdefb, 0xdefb, 0xe71c, 0xf79e, ++ 0xffdf, 0xf79e, 0xd6ba, 0xbdf7, 0xad55, 0xad55, 0xb5b6, 0xce79, 0xef7d, 0xffdf, 0xffdf, 0xef7d, ++ 0xef7d, 0xffff, 0xffff, 0xffff, 0xf79e, 0xce79, 0xb596, 0xa514, 0xad75, 0xc618, 0xd6ba, 0xd6ba, ++ 0xe73c, 0xffff, 0xffff, 0xffff, 0xdedb, 0x5aeb, 0x8c51, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xf7be, 0xdedb, 0xdefb, 0xc638, 0x6b4d, 0xb5b6, 0xffff, 0xffff, 0xe73c, 0xe71c, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xe71c, 0xd6ba, 0xce79, 0xc618, 0xbdd7, 0xb5b6, 0x9cd3, 0x7bef, 0xbdf7, 0xef7d, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xce79, 0x8c51, 0xa514, 0xdefb, 0xe71c, 0xe71c, 0xe71c, ++ 0xe71c, 0xdefb, 0xdefb, 0xdefb, 0xdefb, 0xdefb, 0xdefb, 0xce59, 0xb5b6, 0xbdd7, 0xc618, 0xce59, ++ 0xd6ba, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf7be, 0xf79e, 0xf79e, 0xef5d, ++ 0xe71c, 0xdefb, 0xdedb, 0xd6ba, 0xd69a, 0xce79, 0xce79, 0xe71c, 0xe73c, 0xdefb, 0xce59, 0xbdf7, ++ 0xb5b6, 0xb5b6, 0xc638, 0xdefb, 0xf7be, 0xffff, 0xffdf, 0xe71c, 0xe73c, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xdefb, 0xbdf7, 0xa534, 0xa534, 0xb5b6, 0xc638, 0xd69a, 0xe73c, 0xffff, 0xffff, 0xffff, ++ 0xdedb, 0x5aeb, 0x8c51, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xdedb, 0xdefb, ++ 0xc638, 0x6b4d, 0xb5b6, 0xffff, 0xffff, 0xe73c, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd6ba, 0xce79, ++ 0xc618, 0xbdd7, 0xb5b6, 0xad55, 0xa534, 0xc638, 0xe71c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef5d, 0xce79, 0xad55, 0xa514, 0xa534, 0xa534, 0xa534, 0xa534, 0xa534, 0xa534, 0xa534, 0xa534, ++ 0xa534, 0xa534, 0xa534, 0xad55, 0xb5b6, 0xbdd7, 0xc618, 0xce59, 0xd6ba, 0xe71c, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xef7d, 0xe73c, 0xdefb, 0xd6ba, 0xce79, ++ 0xc638, 0xbdf7, 0xbdf7, 0xc638, 0xce59, 0xc638, 0xc638, 0xc638, 0xce59, 0xd6ba, 0xdefb, 0xef7d, ++ 0xffdf, 0xffff, 0xf7be, 0xd6ba, 0xdedb, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xe73c, 0xce59, 0xad75, ++ 0xa534, 0xad55, 0xbdd7, 0xce79, 0xe73c, 0xffff, 0xffff, 0xffff, 0xdedb, 0x5aeb, 0x8c51, 0xe71c, ++ 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xdedb, 0xdefb, 0xc638, 0x6b4d, 0xb5b6, 0xffff, ++ 0xffff, 0xef5d, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe71c, 0xd6ba, 0xce79, 0xc618, 0xbdd7, 0xb5b6, 0xc618, ++ 0xd69a, 0xce59, 0xce79, 0xdefb, 0xf7be, 0xffff, 0xffdf, 0xe71c, 0xd69a, 0xce79, 0xd69a, 0xad75, ++ 0x8410, 0x7bef, 0x8410, 0x8410, 0x7bef, 0x7bef, 0x7bef, 0x7bef, 0x7bef, 0x7bef, 0x8410, 0x9cf3, ++ 0xb596, 0xbdd7, 0xc618, 0xce59, 0xd6ba, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdefb, 0xd69a, 0xc638, 0xbdd7, 0xb596, 0xad75, 0xa514, ++ 0xa514, 0xad75, 0xc618, 0xd6ba, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xf7be, 0xce59, ++ 0xd69a, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xd6ba, 0xad75, 0xa514, 0xa534, 0xb596, 0xce79, ++ 0xef5d, 0xffff, 0xffff, 0xffff, 0xdedb, 0x5aeb, 0x8c51, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xf7be, 0xdedb, 0xdefb, 0xc638, 0x6b4d, 0xb5b6, 0xffff, 0xffff, 0xef5d, 0xe73c, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xe71c, 0xd6ba, 0xce79, 0xc618, 0xbdd7, 0xb5b6, 0xce59, 0xef5d, 0xce79, 0xbdf7, 0xc638, ++ 0xef7d, 0xffff, 0xf7be, 0xd69a, 0xbdf7, 0xc638, 0xe73c, 0xdefb, 0xc638, 0xc638, 0xc638, 0xc638, ++ 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xc618, 0xc618, 0xbdf7, 0xb5b6, 0xbdd7, 0xc618, 0xce59, ++ 0xd6ba, 0xe71c, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xdefb, 0xd69a, 0xc618, 0xb596, 0xad75, 0xa534, 0x8c71, 0x8430, 0x9cf3, 0xc618, 0xdefb, ++ 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xc618, 0xce79, 0xf7be, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xd6ba, 0xb596, 0xa514, 0xa514, 0xad55, 0xce59, 0xef5d, 0xffff, 0xffff, 0xffff, ++ 0xdedb, 0x5aeb, 0x8c51, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf79e, 0xdedb, 0xdefb, ++ 0xc638, 0x632c, 0xb5b6, 0xffff, 0xffff, 0xef5d, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xe71c, 0xdefb, ++ 0xce79, 0xb596, 0x8c51, 0xb596, 0xf79e, 0xe71c, 0xd6ba, 0xd6ba, 0xf79e, 0xffff, 0xf7be, 0xdefb, ++ 0xd69a, 0xdedb, 0xf7be, 0xffdf, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, ++ 0xf7be, 0xf7be, 0xf7be, 0xe73c, 0xd6ba, 0xd6ba, 0xdefb, 0xe71c, 0xe73c, 0xef5d, 0xf7be, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xef5d, 0xe71c, 0xd6ba, ++ 0xd69a, 0xce79, 0xc638, 0xb596, 0xb596, 0xc618, 0xdedb, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xf7be, 0xef7d, 0xe71c, 0xd6ba, 0xdefb, 0xf79e, 0xf7be, 0xf7be, 0xffdf, 0xffdf, 0xef5d, 0xce79, ++ 0xad75, 0x9cd3, 0x9cd3, 0xce79, 0xe73c, 0xef5d, 0xe71c, 0xdefb, 0xc618, 0x7bcf, 0xa514, 0xe71c, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xdedb, 0xd6ba, 0xbdf7, 0x8430, 0xbdd7, 0xef7d, ++ 0xf7be, 0xef7d, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xef5d, 0xf79e, 0xf7be, 0xdefb, 0xa514, 0x4a69, 0x7bef, ++ 0xf79e, 0xffff, 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xef5d, 0xe71c, 0xe71c, 0xf7be, ++ 0xf7be, 0xef7d, 0xe73c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xc618, 0x9492, 0x7bef, 0xce79, ++ 0xdefb, 0xce79, 0xbdd7, 0xad75, 0xa534, 0xad55, 0xc638, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xf7be, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xb596, 0xc618, 0xdedb, 0xef7d, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xef7d, 0xe73c, 0xf79e, 0xffdf, 0xe71c, 0xa534, 0x4a49, 0x7bcf, 0xf79e, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xef5d, 0xe71c, 0xdefb, 0xdefb, 0xf7be, 0xf7be, 0xef7d, 0xe71c, 0xef5d, ++ 0xffdf, 0xffff, 0xffff, 0xf79e, 0xc638, 0x9492, 0x7bef, 0xce79, 0xdefb, 0xce59, 0xb5b6, 0xad55, ++ 0xa534, 0xb596, 0xce79, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xd69a, 0xc618, ++ 0xb5b6, 0xbdd7, 0xc618, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xf79e, 0xffdf, ++ 0xe71c, 0xa514, 0x4a49, 0x7bcf, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, ++ 0xdedb, 0xd6ba, 0xdedb, 0xf79e, 0xf7be, 0xef7d, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf79e, ++ 0xc638, 0x9492, 0x7bcf, 0xc618, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xb5b6, 0xc618, 0xd6ba, 0xef7d, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xbdd7, 0xc618, 0xd6ba, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xf79e, 0xffdf, 0xe71c, 0xa514, 0x4a49, 0x7bcf, ++ 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xdedb, 0xd69a, 0xce59, 0xce79, 0xef7d, ++ 0xf7be, 0xef7d, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xc638, 0x9492, 0x7bcf, 0xb5b6, ++ 0xc638, 0xc638, 0xc618, 0xbdf7, 0xc618, 0xce79, 0xe71c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xf7be, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xb5b6, 0xc618, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xef7d, 0xe73c, 0xf79e, 0xffdf, 0xe71c, 0xa534, 0x4a49, 0x7bcf, 0xf79e, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xe71c, 0xd6ba, 0xce79, 0xc638, 0xbdf7, 0xc618, 0xef7d, 0xf7be, 0xef7d, 0xe71c, 0xef5d, ++ 0xffdf, 0xffff, 0xffff, 0xf7be, 0xc638, 0x9492, 0x73ae, 0xad55, 0xbdd7, 0xbdf7, 0xc638, 0xc638, ++ 0xd69a, 0xdefb, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xd69a, 0xc618, ++ 0xb5b6, 0xb5b6, 0xc618, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xf79e, 0xffdf, ++ 0xe71c, 0xa534, 0x4a49, 0x7bcf, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xe71c, 0xd6ba, 0xce59, 0xc618, ++ 0xb5b6, 0xb596, 0xb5b6, 0xef5d, 0xf7be, 0xef7d, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf7be, ++ 0xc638, 0x9492, 0x73ae, 0x9cf3, 0xad75, 0xbdd7, 0xc638, 0xd69a, 0xe71c, 0xef7d, 0xf7be, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xb5b6, 0xc618, 0xd6ba, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xf79e, 0xffdf, 0xe71c, 0xa514, 0x4a49, 0x7bcf, ++ 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xf7be, 0xf79e, 0xef5d, 0xe71c, 0xd6ba, 0xce59, 0xbdf7, 0xb5b6, 0xad55, 0xa534, 0xad55, 0xe73c, ++ 0xf7be, 0xef7d, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf7be, 0xc638, 0x9492, 0x738e, 0x8c71, ++ 0xa534, 0xb5b6, 0xce59, 0xe71c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xffff, ++ 0xf7be, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xb5b6, 0xc618, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xef7d, 0xe73c, 0xf79e, 0xffdf, 0xe71c, 0xa514, 0x4a49, 0x7bcf, 0xf79e, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef7d, 0xe73c, 0xdefb, 0xd6ba, ++ 0xce59, 0xbdf7, 0xb596, 0xad55, 0x9cf3, 0x9cd3, 0xa514, 0xe71c, 0xf7be, 0xef7d, 0xe71c, 0xef5d, ++ 0xffdf, 0xffff, 0xffff, 0xf79e, 0xc638, 0x9492, 0x6b6d, 0x8430, 0x9cd3, 0xb596, 0xce79, 0xef5d, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef7d, 0xef7d, 0xffdf, 0xf7be, 0xef5d, 0xd69a, 0xc618, ++ 0xb5b6, 0xb5b6, 0xc618, 0xd6ba, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xf79e, 0xffdf, ++ 0xe71c, 0xa514, 0x4a49, 0x7bcf, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xdefb, 0xd6ba, 0xce79, 0xc618, 0xb5b6, 0xad75, 0xa514, ++ 0x94b2, 0x9492, 0x9cd3, 0xdefb, 0xf7be, 0xef7d, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf79e, ++ 0xc618, 0x9492, 0x6b6d, 0x7bcf, 0x9492, 0xad75, 0xd69a, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf79e, 0xe73c, 0xe71c, 0xf7be, 0xf7be, 0xef5d, 0xd69a, 0xc618, 0xb5b6, 0xb5b6, 0xc618, 0xd6ba, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef5d, 0xef5d, 0xf79e, 0xffdf, 0xe71c, 0xa534, 0x4a69, 0x73ae, ++ 0xef7d, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, ++ 0xe71c, 0xdedb, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xa534, 0x9cd3, 0x94b2, 0x9492, 0x9cd3, 0xe71c, ++ 0xf7be, 0xef7d, 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xc638, 0x9492, 0x6b4d, 0x7bef, ++ 0x94b2, 0xb596, 0xd6ba, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xe71c, 0xdefb, 0xf7be, ++ 0xf7be, 0xef7d, 0xd6ba, 0xc618, 0xbdd7, 0xbdd7, 0xc638, 0xd6ba, 0xef5d, 0xf7be, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xffdf, 0xffff, 0xffdf, ++ 0xef5d, 0xe73c, 0xf7be, 0xffdf, 0xef5d, 0xbdd7, 0x632c, 0x6b4d, 0xb5b6, 0xc638, 0xd6ba, 0xef5d, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf79e, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef7d, 0xe71c, 0xd69a, 0xce79, ++ 0xce79, 0xd6ba, 0xad55, 0x630c, 0xad75, 0xd6ba, 0xdedb, 0xf7be, 0xf7be, 0xef5d, 0xef7d, 0xf7be, ++ 0xffdf, 0xef7d, 0xef7d, 0xf7be, 0xe73c, 0x9cf3, 0x630c, 0xb596, 0xd6ba, 0xdefb, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf79e, 0xf79e, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdefb, ++ 0xd69a, 0xce59, 0xce59, 0xce59, 0xce79, 0xd69a, 0xdefb, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xef7d, 0xf7be, 0xffff, 0xffdf, 0xe73c, 0xe73c, 0xffdf, 0xffff, ++ 0xef7d, 0xc638, 0x738e, 0x630c, 0x8c51, 0xa514, 0xbdf7, 0xdedb, 0xf7be, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xf79e, 0xe73c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xd69a, 0xce79, 0xdedb, 0xf79e, 0xb596, 0x4208, ++ 0xc618, 0xffff, 0xffff, 0xffff, 0xf79e, 0xe73c, 0xf7be, 0xffff, 0xffdf, 0xdefb, 0xe73c, 0xffdf, ++ 0xffdf, 0xa534, 0x5acb, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xdedb, 0xce79, 0xc638, ++ 0xbdd7, 0xbdd7, 0xce59, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xf7be, 0xffff, 0xffdf, 0xe73c, 0xe73c, 0xffdf, 0xffff, 0xef7d, 0xce59, 0x6b6d, 0x630c, ++ 0x8c51, 0xa514, 0xbdf7, 0xdedb, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf7be, 0xef5d, 0xdedb, 0xd69a, 0xd6ba, 0xf79e, 0xb596, 0x4a69, 0xc638, 0xffff, 0xffff, 0xffff, ++ 0xf79e, 0xe73c, 0xffdf, 0xffff, 0xffdf, 0xdefb, 0xe73c, 0xffdf, 0xffdf, 0xa534, 0x5acb, 0xd6ba, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xdedb, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xce59, 0xf7be, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xf7be, 0xffff, 0xffdf, ++ 0xe73c, 0xe73c, 0xffdf, 0xffff, 0xef7d, 0xc638, 0x6b6d, 0x630c, 0x8c51, 0xa514, 0xbdf7, 0xdedb, ++ 0xf7be, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xef7d, 0xe71c, 0xdedb, ++ 0xd6ba, 0xe71c, 0xad75, 0x632c, 0xce79, 0xffff, 0xffff, 0xffff, 0xf79e, 0xe73c, 0xffdf, 0xffff, ++ 0xffdf, 0xe71c, 0xe73c, 0xffff, 0xffdf, 0xad55, 0x5acb, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, ++ 0xe73c, 0xdedb, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xce59, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xf7be, 0xffff, 0xffdf, 0xe73c, 0xe73c, 0xffdf, 0xffff, ++ 0xef7d, 0xc638, 0x6b6d, 0x5aeb, 0x8c51, 0xa514, 0xbdf7, 0xdedb, 0xf7be, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xf79e, 0xe73c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xf79e, 0xf79e, 0xef7d, 0xe71c, 0xd69a, 0xce79, 0xad55, 0x8410, ++ 0xd69a, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xe73c, 0xf7be, 0xffff, 0xffdf, 0xe71c, 0xe73c, 0xffdf, ++ 0xffdf, 0xad55, 0x5acb, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xdedb, 0xd69a, 0xc638, ++ 0xbdd7, 0xb5b6, 0xce59, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xffdf, 0xffff, 0xffdf, 0xe73c, 0xe73c, 0xffdf, 0xffff, 0xef7d, 0xc638, 0x6b6d, 0x630c, ++ 0x8c51, 0xa514, 0xbdf7, 0xdefb, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, ++ 0xef5d, 0xf7be, 0xf7be, 0xef5d, 0xce79, 0xb596, 0xa514, 0xa514, 0xd6ba, 0xf7be, 0xffff, 0xffff, ++ 0xf79e, 0xe73c, 0xf7be, 0xffff, 0xffdf, 0xdefb, 0xe73c, 0xffdf, 0xffff, 0xad55, 0x5acb, 0xd6ba, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xdedb, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xce59, 0xf7be, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xffdf, 0xffff, 0xffdf, ++ 0xe73c, 0xe73c, 0xffdf, 0xffff, 0xef7d, 0xc638, 0x6b6d, 0x630c, 0x8c51, 0xa514, 0xbdf7, 0xdefb, ++ 0xf7be, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0xe73c, 0xffdf, 0xffff, 0xef7d, ++ 0xce59, 0x9cd3, 0x9cd3, 0xc618, 0xd6ba, 0xef5d, 0xffdf, 0xffff, 0xf79e, 0xe73c, 0xf7be, 0xffff, ++ 0xffdf, 0xdefb, 0xe73c, 0xffdf, 0xffff, 0xad55, 0x5acb, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, ++ 0xe73c, 0xdedb, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xce59, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xe73c, 0xe73c, 0xffdf, 0xffff, ++ 0xef7d, 0xc638, 0x6b6d, 0x630c, 0x8c51, 0xa514, 0xbdf7, 0xdefb, 0xf7be, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xf79e, 0xe73c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xe71c, 0xe71c, 0xffdf, 0xffff, 0xef7d, 0xc638, 0x8410, 0x94b2, 0xe71c, ++ 0xdedb, 0xe71c, 0xffdf, 0xffff, 0xf79e, 0xe73c, 0xf7be, 0xffff, 0xffdf, 0xdefb, 0xe73c, 0xffdf, ++ 0xffff, 0xad55, 0x5acb, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xdedb, 0xd69a, 0xc638, ++ 0xbdd7, 0xb5b6, 0xce59, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xef7d, 0xffdf, 0xffff, 0xffdf, 0xe73c, 0xe73c, 0xffdf, 0xffff, 0xef7d, 0xc638, 0x738e, 0x630c, ++ 0x8c51, 0xa514, 0xbdf7, 0xdefb, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, ++ 0xdefb, 0xffdf, 0xffff, 0xef7d, 0xc618, 0x6b6d, 0x8c51, 0xef5d, 0xd6ba, 0xdedb, 0xffdf, 0xffff, ++ 0xf79e, 0xe73c, 0xf7be, 0xffff, 0xffdf, 0xdefb, 0xe73c, 0xffdf, 0xffdf, 0xad55, 0x5acb, 0xd6ba, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xdedb, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xce59, 0xf7be, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xffdf, 0xffff, 0xffff, ++ 0xe73c, 0xe73c, 0xffdf, 0xffff, 0xef7d, 0xc638, 0x738e, 0x630c, 0x8c71, 0xa514, 0xbdf7, 0xdedb, ++ 0xf7be, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xdedb, 0xdedb, 0xffdf, 0xffff, 0xef7d, ++ 0xbdf7, 0x630c, 0x8410, 0xef5d, 0xd69a, 0xdedb, 0xffdf, 0xffff, 0xf79e, 0xe73c, 0xf7be, 0xffff, ++ 0xffdf, 0xe71c, 0xe73c, 0xffff, 0xffdf, 0xa534, 0x5acb, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, ++ 0xe73c, 0xdedb, 0xd69a, 0xc638, 0xbdd7, 0xb5b6, 0xce59, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xef5d, 0xef5d, 0xffdf, 0xffff, ++ 0xf79e, 0xce79, 0x8430, 0x73ae, 0x9492, 0x9cd3, 0xb5b6, 0xdefb, 0xf79e, 0xffdf, 0xffff, 0xf7be, ++ 0xf79e, 0xef7d, 0xef5d, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xd6ba, 0xd6ba, 0xf7be, 0xffdf, 0xef5d, 0xbdf7, 0x630c, 0x7bef, 0xe71c, ++ 0xd69a, 0xdedb, 0xffdf, 0xffff, 0xf79e, 0xef5d, 0xffdf, 0xffff, 0xf7be, 0xe73c, 0xef5d, 0xffdf, ++ 0xffdf, 0xa514, 0x5aeb, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xef5d, 0xdedb, 0xce59, 0xc618, 0xbdf7, 0xbdf7, ++ 0xc618, 0xc618, 0xd69a, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe71c, 0xd69a, ++ 0xb596, 0x7bcf, 0xa514, 0xef5d, 0xdefb, 0xe73c, 0xf79e, 0xce59, 0xbdf7, 0xd69a, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xd6ba, ++ 0xce59, 0xe71c, 0xef5d, 0xdefb, 0xbdf7, 0x9492, 0x8c71, 0xbdd7, 0xe71c, 0xf7be, 0xffff, 0xf79e, ++ 0xf79e, 0xf7be, 0xffff, 0xf79e, 0xe73c, 0xef7d, 0xf7be, 0xffdf, 0xe71c, 0x9cd3, 0x632c, 0xdedb, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xe73c, 0xc618, 0x8c71, 0x630c, 0x4a49, 0x4a49, 0x6b6d, 0xa534, 0xe71c, 0xf79e, 0xf79e, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0xbdf7, 0x73ae, 0x9cf3, 0xf79e, ++ 0xdedb, 0xdefb, 0xf79e, 0xbdf7, 0xb596, 0xce79, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdedb, 0xce79, 0xd6ba, 0xd6ba, 0xce79, ++ 0xbdd7, 0xa534, 0xad55, 0xc618, 0xef7d, 0xffff, 0xffff, 0xf79e, 0xf79e, 0xffff, 0xffff, 0xf79e, ++ 0xdefb, 0xf79e, 0xffff, 0xffdf, 0xdedb, 0x94b2, 0x6b4d, 0xdedb, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef5d, 0xc618, 0x8c51, 0x4228, 0x18e3, ++ 0x1082, 0x2124, 0x632c, 0xa534, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef5d, 0xbdf7, 0x7bcf, 0xa534, 0xf79e, 0xdefb, 0xe71c, 0xf79e, 0xc618, ++ 0xbdd7, 0xd69a, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xe73c, 0xd6ba, 0xce79, 0xc618, 0xbdd7, 0xb596, 0xb5b6, 0xc638, 0xdedb, ++ 0xf7be, 0xffff, 0xffff, 0xf79e, 0xf79e, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xf79e, 0xffff, 0xffdf, ++ 0xdedb, 0x94b2, 0x6b4d, 0xdedb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xe73c, 0xc638, 0x9cf3, 0x73ae, 0x5aeb, 0x528a, 0x4a69, 0x6b6d, 0x9cf3, ++ 0xce79, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, ++ 0xc618, 0x8c51, 0xad55, 0xef7d, 0xe71c, 0xe73c, 0xf79e, 0xce79, 0xc618, 0xd6ba, 0xf7be, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xf79e, 0xef7d, 0xef7d, 0xef7d, 0xf7be, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, ++ 0xdedb, 0xc618, 0xad75, 0xa534, 0xad75, 0xc638, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xf79e, ++ 0xf79e, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xf79e, 0xffff, 0xffdf, 0xdedb, 0x94b2, 0x6b4d, 0xdedb, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xf7be, 0xef7d, 0xdedb, 0xbdd7, 0x9492, 0x8410, 0x8c71, 0xb596, 0xd6ba, 0xf79e, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xce59, 0x9cd3, 0xa534, 0xd69a, ++ 0xe73c, 0xf79e, 0xf7be, 0xd6ba, 0xd69a, 0xe71c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xf7be, 0xef7d, 0xe73c, 0xdefb, 0xdedb, 0xd69a, 0xd69a, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xdedb, 0xb5b6, 0x9cd3, 0x94b2, ++ 0xb596, 0xe71c, 0xf7be, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xef5d, 0xf79e, 0xffff, 0xffff, 0xef7d, ++ 0xdefb, 0xf79e, 0xffff, 0xffdf, 0xdedb, 0x94b2, 0x6b4d, 0xdedb, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe71c, 0xe71c, ++ 0xe73c, 0xe71c, 0xdefb, 0xe71c, 0xe73c, 0xdefb, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef7d, 0xce79, 0xad75, 0x9cf3, 0xad75, 0xe71c, 0xffdf, 0xffdf, 0xe73c, ++ 0xe71c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef7d, 0xe71c, 0xd6ba, 0xc638, ++ 0xc618, 0xb5b6, 0xb596, 0xdedb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef7d, 0xd69a, 0xb596, 0x94b2, 0x9cf3, 0xbdf7, 0xef5d, 0xffff, 0xffff, ++ 0xffff, 0xf79e, 0xdefb, 0xe71c, 0xf79e, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xf79e, 0xffff, 0xffdf, ++ 0xdedb, 0x94b2, 0x6b4d, 0xdedb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xef7d, 0xf79e, 0xef5d, 0xd69a, 0xb596, 0xa514, ++ 0x9cf3, 0x9cf3, 0xb5b6, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, ++ 0xd6ba, 0xbdf7, 0x9cd3, 0x8c51, 0xdefb, 0xffff, 0xffdf, 0xef7d, 0xef7d, 0xf79e, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xf79e, 0xe73c, 0xd6ba, 0xc638, 0xb596, 0xa534, 0x9cd3, 0x9cd3, 0xce59, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xdefb, ++ 0xbdf7, 0xad55, 0xa514, 0xad75, 0xce79, 0xf79e, 0xffff, 0xffff, 0xffff, 0xef7d, 0xd6ba, 0xe71c, ++ 0xf79e, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xf79e, 0xffff, 0xffdf, 0xdedb, 0x94b2, 0x6b4d, 0xdedb, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef5d, ++ 0xe71c, 0xe71c, 0xdefb, 0xe71c, 0xdefb, 0xc618, 0xa514, 0x8c51, 0x8410, 0x7bef, 0xa534, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xdefb, 0xce79, 0x94b2, 0x6b4d, ++ 0xd69a, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, ++ 0xdedb, 0xce59, 0xb596, 0x9cf3, 0x8c71, 0x8410, 0x8410, 0xc618, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xc638, 0xa534, 0xad55, 0xb5b6, 0xce79, ++ 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xe71c, 0xf79e, 0xffff, 0xffff, 0xef7d, ++ 0xdefb, 0xf79e, 0xffff, 0xffdf, 0xdefb, 0x94b2, 0x6b4d, 0xdedb, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xd6ba, 0xbdf7, 0xb596, 0xa534, 0xb596, ++ 0xce59, 0xe71c, 0xef5d, 0xe73c, 0xd6ba, 0xc618, 0xc638, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xe71c, 0xdedb, 0x94b2, 0x4a69, 0xce59, 0xffff, 0xffff, 0xffdf, ++ 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xd6ba, 0xbdf7, 0xa534, 0x8c71, ++ 0x7bef, 0x6b6d, 0x6b4d, 0xb5b6, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xad55, 0x8c71, 0xad75, 0xd69a, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffdf, ++ 0xf79e, 0xf79e, 0xef5d, 0xef5d, 0xf79e, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xf79e, 0xffff, 0xffdf, ++ 0xdedb, 0x94b2, 0x6b4d, 0xdedb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xdedb, 0xd6ba, 0xdefb, 0xe71c, 0xdedb, 0xd69a, 0xc638, 0xc618, 0xc638, ++ 0xd69a, 0xe71c, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, ++ 0xe73c, 0xe73c, 0x94b2, 0x4208, 0xc638, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf7be, ++ 0xffff, 0xffff, 0xffdf, 0xef5d, 0xd69a, 0xb5b6, 0x9cf3, 0x8410, 0x6b6d, 0x5aeb, 0x5acb, 0xad75, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x9cd3, ++ 0x73ae, 0xad75, 0xe71c, 0xffff, 0xffff, 0xffff, 0xf7be, 0xe73c, 0xe73c, 0xef7d, 0xf7be, 0xef7d, ++ 0xf79e, 0xffff, 0xffff, 0xef7d, 0xdefb, 0xf79e, 0xffff, 0xffdf, 0xdedb, 0x94b2, 0x6b6d, 0xdedb, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0xad75, ++ 0x9cf3, 0x9cf3, 0x9cd3, 0x94b2, 0x8c71, 0x8c71, 0x9cd3, 0xb596, 0xce59, 0xdefb, 0xf79e, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe73c, 0xce79, 0x8430, 0x4228, ++ 0xbdf7, 0xf7be, 0xf7be, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf7be, 0xffff, 0xffff, 0xffdf, 0xf79e, ++ 0xdefb, 0xce79, 0xbdd7, 0xa534, 0x9cd3, 0x8c71, 0x8c71, 0xce59, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xf7be, 0xf79e, 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xf79e, 0xf7be, 0xf7be, ++ 0xf7be, 0xf7be, 0xef7d, 0xe73c, 0xdedb, 0xd6ba, 0xce59, 0x9cf3, 0x9cf3, 0xce59, 0xef7d, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xe73c, 0xef5d, 0xf7be, 0xffdf, 0xe73c, 0xe73c, 0xf79e, 0xffdf, 0xf7be, ++ 0xef5d, 0xf7be, 0xffdf, 0xe73c, 0xb596, 0x8430, 0x94b2, 0xe73c, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0xad75, 0x9492, 0x8410, 0x632c, 0x528a, ++ 0x4a69, 0x630c, 0x7bef, 0xa514, 0xc618, 0xdefb, 0xef5d, 0xef7d, 0xf79e, 0xf7be, 0xf7be, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffdf, 0xef5d, 0xa514, 0x6b6d, 0x6b4d, 0xad75, 0xdedb, 0xe73c, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xf7be, 0xf7be, ++ 0xf7be, 0xf79e, 0xf79e, 0xf79e, 0xef7d, 0xef7d, 0xf79e, 0xf79e, 0xf7be, 0xf7be, 0xf79e, 0xe71c, ++ 0xdedb, 0xd69a, 0xce79, 0xce79, 0xd69a, 0xd6ba, 0xdefb, 0xe71c, 0xe71c, 0xd6ba, 0xc618, 0xad75, ++ 0x94b2, 0x7bef, 0x7bcf, 0xc638, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xffff, 0xffff, 0xf7be, 0xd6ba, 0xce79, 0xe71c, 0xf7be, 0xffff, 0xffdf, 0xffff, 0xef7d, 0xbdf7, ++ 0x528a, 0x7bef, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xf79e, 0xdefb, 0xad75, 0x8410, 0x5aeb, 0x5acb, 0x6b4d, 0x8c51, ++ 0xb5b6, 0xdedb, 0xe73c, 0xdedb, 0xdedb, 0xe71c, 0xef5d, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, ++ 0xdedb, 0xd6ba, 0xbdd7, 0x8c71, 0x8c51, 0xb596, 0xe73c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xce79, ++ 0xa514, 0xa514, 0xad55, 0xb5b6, 0xc618, 0xce79, 0xdefb, 0xe73c, 0xef7d, 0xf79e, 0xf79e, 0xf79e, ++ 0xef5d, 0xdefb, 0xce59, 0xbdd7, 0xad75, 0xa514, 0x9cf3, 0x9cf3, 0xa534, 0xad55, 0xb5b6, 0xe73c, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xdedb, ++ 0xd69a, 0xe71c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xef5d, 0xb5b6, 0x4a49, 0x8430, 0xf79e, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xf79e, 0xd69a, 0xb596, 0x9cf3, 0x9492, 0x94b2, 0xa514, 0xb5b6, 0xce59, 0xd69a, 0xd69a, ++ 0xd6ba, 0xdefb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, 0xb5b6, 0xe73c, 0xef5d, 0xc638, ++ 0x8c51, 0x94b2, 0xce79, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xad75, 0x5aeb, 0x632c, 0x6b6d, 0x8410, ++ 0x9492, 0xa534, 0xbdd7, 0xce79, 0xdefb, 0xef5d, 0xef7d, 0xef7d, 0xe73c, 0xd6ba, 0xbdf7, 0xa534, ++ 0x9cd3, 0x94b2, 0x9cf3, 0xad75, 0xc618, 0xdedb, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe71c, 0xdedb, 0xe73c, 0xf7be, 0xffff, ++ 0xffff, 0xffff, 0xe73c, 0xad55, 0x52aa, 0x9492, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, ++ 0xdedb, 0xd69a, 0xce79, 0xc618, 0xbdf7, 0xbdd7, 0xbdf7, 0xd69a, 0xd6ba, 0xdefb, 0xe73c, 0xf79e, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xdefb, 0xb596, 0xe71c, 0xf7be, 0xef7d, 0xad75, 0x9492, 0xa514, 0xd69a, ++ 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xbdd7, 0x7bef, 0x8410, 0x8430, 0x8c51, 0x8c51, 0x8c71, 0x9492, 0x94b2, ++ 0x9cd3, 0xa514, 0xa534, 0xb5b6, 0xbdd7, 0xbdd7, 0xb5b6, 0xb596, 0xb5b6, 0xbdd7, 0xc638, 0xd69a, ++ 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xef7d, 0xe73c, 0xef5d, 0xf7be, 0xffff, 0xffff, 0xffdf, 0xdedb, 0x9cf3, ++ 0x632c, 0xa514, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, 0xf7be, ++ 0xf7be, 0xf7be, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xe71c, ++ 0xce59, 0xbdf7, 0xbdd7, 0xce79, 0xd6ba, 0xdefb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, ++ 0xd69a, 0xdedb, 0xef5d, 0xffdf, 0xe73c, 0xad75, 0x73ae, 0x9cd3, 0xd69a, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, ++ 0xe73c, 0xe73c, 0xe71c, 0xd69a, 0xb5b6, 0x9cd3, 0x7bef, 0x630c, 0x4a69, 0x39c7, 0x39c7, 0x5aeb, ++ 0x8430, 0x9cd3, 0xb5b6, 0xd69a, 0xef5d, 0xf7be, 0xf7be, 0xffdf, 0xf7be, 0xf79e, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xf79e, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xc638, 0x8c71, 0x7bef, 0xb5b6, 0xf79e, 0xef7d, ++ 0xef5d, 0xef5d, 0xef5d, 0xef5d, 0xef5d, 0xef5d, 0xef5d, 0xef5d, 0xef5d, 0xef5d, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xdefb, 0xd69a, 0xce79, 0xd69a, ++ 0xd6ba, 0xdefb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xef7d, 0xd6ba, 0xdefb, 0xffdf, ++ 0xffdf, 0xc638, 0x8410, 0x7bef, 0xb596, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdedb, 0xb5b6, 0xb5b6, 0xbdf7, 0xc618, ++ 0xc638, 0xce59, 0xce79, 0xd69a, 0xd69a, 0xce59, 0xc638, 0x9cf3, 0x8c71, 0xa514, 0xc618, 0xe71c, ++ 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xf79e, 0xf7be, 0xffdf, ++ 0xffdf, 0xdefb, 0xad55, 0x7bef, 0x94b2, 0xce59, 0xf79e, 0xe71c, 0xdefb, 0xdefb, 0xdefb, 0xdefb, ++ 0xdefb, 0xdefb, 0xdefb, 0xdefb, 0xdefb, 0xdedb, 0xe71c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xf79e, 0xef7d, 0xef5d, 0xef5d, 0xe73c, 0xe71c, 0xd6ba, 0xd6ba, 0xdefb, 0xe73c, 0xf79e, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe71c, 0xe71c, 0xe71c, 0xd6ba, 0xb5b6, 0x8c51, ++ 0x8c71, 0xbdd7, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xe73c, 0xd69a, 0xd69a, 0xd6ba, 0xdefb, 0xe73c, 0xef7d, 0xf79e, 0xffdf, ++ 0xffff, 0xffff, 0xffdf, 0xdefb, 0xce79, 0xd69a, 0xd6ba, 0xdefb, 0xe73c, 0xe73c, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xef7d, 0xf7be, 0xf7be, 0xce79, 0x9492, 0x6b6d, ++ 0xad75, 0xdefb, 0xef7d, 0xdedb, 0xd69a, 0xd69a, 0xd69a, 0xd69a, 0xd69a, 0xd69a, 0xd69a, 0xd69a, ++ 0xd69a, 0xd69a, 0xdedb, 0xf7be, 0xffff, 0xffff, 0xffff, 0xf7be, 0xef5d, 0xdefb, 0xdefb, 0xdefb, ++ 0xdefb, 0xe73c, 0xe71c, 0xd6ba, 0xd6ba, 0xdefb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xef5d, 0xce59, 0xc618, 0xd6ba, 0xdefb, 0xad55, 0x8c71, 0x9492, 0xdedb, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xf7be, 0xef7d, 0xdefb, 0xd6ba, 0xd69a, 0xdefb, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xf7be, 0xe71c, 0xef5d, 0xf79e, 0xbdf7, 0x7bef, 0x5aeb, 0xc638, 0xf79e, 0xf79e, 0xd69a, ++ 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xc638, 0xce79, 0xef7d, ++ 0xf7be, 0xffdf, 0xffdf, 0xf7be, 0xe73c, 0xdedb, 0xce79, 0xce59, 0xc618, 0xc618, 0xce59, 0xd69a, ++ 0xd6ba, 0xdefb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0xc638, ++ 0xad55, 0xbdd7, 0xdedb, 0xce79, 0xb5b6, 0xad55, 0xce79, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, ++ 0xe73c, 0xdefb, 0xdefb, 0xef5d, 0xf79e, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xdefb, 0xe71c, ++ 0xf79e, 0xb596, 0x6b6d, 0x52aa, 0xce79, 0xffdf, 0xef7d, 0xce59, 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, ++ 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, 0xbdd7, 0xbdf7, 0xce79, 0xdedb, 0xe73c, 0xf7be, 0xffdf, ++ 0xf7be, 0xef7d, 0xd6ba, 0xbdf7, 0x9cf3, 0x8c51, 0x94b2, 0xce59, 0xd6ba, 0xdefb, 0xe73c, 0xf79e, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xdedb, 0xb596, 0x9cf3, 0xa534, 0xdedb, ++ 0xef7d, 0xd6ba, 0x9cf3, 0xbdf7, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf7be, 0xf7be, 0xf7be, ++ 0xe73c, 0xd69a, 0xce59, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xd6ba, 0xdedb, 0xef7d, 0xad55, 0x630c, 0x528a, ++ 0xce79, 0xffff, 0xef7d, 0xc638, 0xb5b6, 0xb5b6, 0xb5b6, 0xb5b6, 0xb5b6, 0xb5b6, 0xb5b6, 0xb5b6, ++ 0xb5b6, 0xb5b6, 0xad75, 0x9cd3, 0xa534, 0xce59, 0xef7d, 0xffdf, 0xffdf, 0xf7be, 0xdefb, 0xb5b6, ++ 0x7bef, 0x528a, 0x6b4d, 0xc638, 0xd6ba, 0xdefb, 0xe73c, 0xf79e, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffdf, 0xf79e, 0xdefb, 0xce79, 0xce79, 0xf79e, 0xffff, 0xf7be, 0xc638, 0xd6ba, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, 0xffdf, ++ 0xffff, 0xf7be, 0xe73c, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe71c, 0xdedb, 0xf79e, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, ++ 0xffdf, 0xffdf, 0xdedb, 0xbdd7, 0xad75, 0x9cd3, 0x9492, 0xa514, 0xe73c, 0xffdf, 0xef7d, 0xe71c, ++ 0xdedb, 0xdedb, 0xdedb, 0xdedb, 0xdedb, 0xdedb, 0xdedb, 0xdedb, 0xdedb, 0xdedb, 0xce79, 0xa514, ++ 0xa514, 0xb5b6, 0xce79, 0xd6ba, 0xd6ba, 0xd6ba, 0xc638, 0xad75, 0x8c71, 0x7bcf, 0x8c71, 0xdefb, ++ 0xef7d, 0xef7d, 0xf79e, 0xf7be, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xce59, 0xac92, 0xbdb6, 0xdedb, 0xad14, 0x9b2c, 0x9bcf, ++ 0xd69a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe73c, 0xe73c, 0xad14, 0x9248, ++ 0x7a48, 0x8c51, 0xbdf7, 0xef5d, 0xffdf, 0xf7be, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xbdf7, 0xb596, 0xb596, 0xb5b6, 0xb5b6, ++ 0xb5b6, 0xb5b6, 0xb596, 0xb596, 0xb596, 0xb596, 0xc638, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffdf, 0xbd96, 0x8964, 0x8208, 0x8aeb, 0x8964, 0xa1a1, 0x9a27, 0xce18, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xdefb, 0x9c51, 0x936d, 0x7207, 0x9920, 0x8165, 0x7b8e, 0xbdd7, 0xef7d, ++ 0xffdf, 0xf7be, 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xd69a, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, 0xce59, ++ 0xce59, 0xce59, 0xdedb, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xb575, 0x9183, 0xbb00, ++ 0xb260, 0x78a1, 0x7b0c, 0xbdb6, 0xef5d, 0xffff, 0xf79e, 0xdedb, 0xdedb, 0xf7be, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdedb, ++ 0x930c, 0xa160, 0x8900, 0xaa20, 0xbae0, 0x8207, 0xa534, 0xef5d, 0xffdf, 0xf7be, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xf79e, ++ 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xef7d, 0xef5d, 0xef7d, 0xef5d, 0xef5d, 0xf79e, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0x9c10, 0xc2c1, 0xdc40, 0xd400, 0xa1e0, 0x8b0c, 0xd679, ++ 0xffdf, 0xffdf, 0xbdb6, 0xa2a9, 0x9b0b, 0xd679, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0xa471, 0xaa02, 0xc2a0, 0xd400, ++ 0xdc40, 0x99e4, 0xad55, 0xf79e, 0xffff, 0xffdf, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xef5d, 0xef5d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xef5d, 0xe6fb, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf7be, 0xacf3, 0xaa24, 0xcb40, 0xe520, 0xd3a0, 0xa181, 0x930c, 0xce59, 0xf7be, 0xbd75, 0xa246, ++ 0x9b0b, 0xd69a, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, ++ 0xe6fb, 0xef3c, 0xffdf, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xd679, 0x8249, 0xb200, 0xd3c0, 0xcb60, 0x9162, 0x9c10, 0xd69a, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0x9410, 0x93cf, 0xe71c, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xb4f3, 0x9aa9, 0x9bef, ++ 0xce59, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xb595, 0x81e7, 0xcb80, ++ 0xdc80, 0xba60, 0x88c0, 0x9961, 0x934d, 0xc5f7, 0xb596, 0xb555, 0xd6ba, 0xf7be, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc5f7, 0x92aa, 0xacb2, 0xef5d, 0xc5b6, ++ 0xac92, 0xce38, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xef5d, 0x9c0f, 0xbac1, 0xe4c0, 0xdc80, 0xba60, 0x9982, 0x9c50, 0xf79e, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf79e, 0xa4d3, 0x91c5, 0x9a27, 0xad14, 0xe73c, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xef5d, 0xce59, 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe73c, ++ 0xc618, 0xd6ba, 0xd69a, 0xc5d7, 0xc5f7, 0x93ef, 0x9941, 0xa9a1, 0x9248, 0xacf3, 0xe71c, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0x9b8e, 0x9101, 0xbac0, 0xd3e0, 0xc2e0, 0xba60, 0xc280, ++ 0x8921, 0x7985, 0x92aa, 0xd69a, 0xffff, 0xffff, 0xffff, 0xf79e, 0xef3c, 0xf79e, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xa4d3, 0x8123, 0x8b0c, 0xa4d3, 0x9aa9, 0xa9e1, 0x830b, 0xb555, 0xc618, ++ 0xef7d, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xa4b2, 0xaa21, 0xdc40, ++ 0xdc40, 0xb200, 0xa9c2, 0xa492, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xf79e, 0xe73c, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef3c, 0x934c, ++ 0x9920, 0x88e0, 0x7165, 0xb575, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xac71, 0xaaa7, ++ 0xa3ae, 0xdedb, 0xef7d, 0xe71c, 0xf7be, 0xffff, 0xdefb, 0x8bae, 0x7985, 0x82aa, 0x82eb, 0x9143, ++ 0x7185, 0x7144, 0x8080, 0xa9c0, 0xba60, 0xaa24, 0xa492, 0xd69a, 0xdeba, 0xe71c, 0xffdf, 0xffff, ++ 0xf79e, 0xb534, 0x8a69, 0xba60, 0xcb40, 0xb200, 0xc2c0, 0xc2e0, 0x9160, 0x5820, 0x69e7, 0xb596, ++ 0xdedb, 0xef7d, 0xef7d, 0xb575, 0x830c, 0xb575, 0xffdf, 0xffff, 0xffff, 0xffff, 0xef7d, 0x93ae, ++ 0x9920, 0xa181, 0x9101, 0xa9a0, 0x9120, 0x6840, 0x8922, 0x79c6, 0x9c10, 0xbd75, 0xd6ba, 0xef7d, ++ 0xf7be, 0xf7be, 0xffdf, 0xffdf, 0xc5f7, 0x9269, 0xcba0, 0xedc2, 0xe521, 0xa1a0, 0x8164, 0xb555, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe73c, 0xe73c, 0xce38, 0xb4f3, 0xce38, 0xffdf, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xce59, 0x9c10, 0xa2eb, 0xa451, ++ 0xe73c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd69a, 0x9aa9, 0xa9c0, 0x8900, 0x80a0, 0x832c, ++ 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0x9bae, 0xc320, 0xaa43, 0x830c, 0x93ae, 0x9b0b, ++ 0xb555, 0xf79e, 0xe6fb, 0x7b2c, 0x88e0, 0xa180, 0x80c0, 0x88e0, 0x78a0, 0x7060, 0x90e0, 0xa180, ++ 0xcb00, 0xba60, 0x8923, 0x9a27, 0xaa67, 0x936d, 0xce59, 0xffdf, 0xffff, 0xef7d, 0xa492, 0xb282, ++ 0xdcc0, 0xbaa0, 0xba60, 0xcb60, 0x9980, 0x6860, 0x8901, 0x89e6, 0x9a88, 0x9bae, 0x93cf, 0x6a08, ++ 0x7208, 0xce38, 0xffdf, 0xffff, 0xffff, 0xffff, 0xdedb, 0x82eb, 0x9960, 0xba60, 0xb1e0, 0xba40, ++ 0xb200, 0x8080, 0x7060, 0x8080, 0x9920, 0x9184, 0x8a28, 0x9b8e, 0x9bef, 0xa410, 0xce38, 0xe73c, ++ 0x93cf, 0xa9c1, 0xd3c0, 0xee24, 0xeda2, 0xc320, 0xaa01, 0x9b6d, 0xe6fb, 0xffff, 0xffff, 0xffff, ++ 0xf7be, 0xbdb6, 0x9b6d, 0x9b4c, 0x8a8a, 0x9962, 0xac92, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xef5d, 0x93cf, 0x9121, 0xba60, 0x99c5, 0xa451, 0xd6ba, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xb555, 0xa1e4, 0xba40, 0xc280, 0xa180, 0x79a6, 0xc5f7, 0xffdf, 0xffff, 0xffff, ++ 0xffff, 0xf7be, 0x9c71, 0xa1a1, 0xb200, 0x8900, 0x9960, 0xbaa0, 0x9b8e, 0xe73c, 0xf79e, 0x9c10, ++ 0x9101, 0x88c0, 0xb1e0, 0xa980, 0x9920, 0x9100, 0xa1a0, 0xa1a0, 0xba80, 0xb1e0, 0xa160, 0xa9a0, ++ 0xa9c0, 0x88e1, 0x93cf, 0xef5d, 0xef7d, 0xbdd7, 0x92aa, 0xc300, 0xdc20, 0xdc00, 0xe500, 0xd3c0, ++ 0x9120, 0x9100, 0xb1e0, 0xbaa0, 0xdc20, 0xcb60, 0xb240, 0xaa20, 0x8289, 0xc638, 0xf7be, 0xffff, ++ 0xf79e, 0xdedb, 0xa492, 0x9984, 0xa160, 0xc2a0, 0xcb40, 0xba40, 0xb1c0, 0x9100, 0x99a0, 0xa9a0, ++ 0xa9c0, 0xba40, 0xa9a0, 0x90e0, 0x9120, 0xa1a1, 0x93ef, 0xdefb, 0xa4b2, 0xb262, 0xd3c0, 0xe520, ++ 0xe4e0, 0xc300, 0xba80, 0x7985, 0x9c51, 0xce59, 0xffdf, 0xffff, 0xf77d, 0xa3ef, 0xb201, 0x9920, ++ 0x88c0, 0x9163, 0xb514, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0xc5d7, 0x9c71, ++ 0x9a26, 0xba80, 0xc2c0, 0xa9c0, 0xb222, 0xa410, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xacb2, 0xaa02, ++ 0xcb80, 0xcb60, 0xa1a0, 0x6965, 0xa492, 0xef5d, 0xffff, 0xffff, 0xffff, 0xdeba, 0x93ae, 0xb221, ++ 0xc2e0, 0xcb20, 0xa9e0, 0x9121, 0xa492, 0xf7be, 0xf79e, 0xa471, 0xa9c2, 0xa160, 0x9920, 0xa180, ++ 0xba60, 0xb240, 0xd3a0, 0xcb60, 0xdc60, 0xd3e0, 0xd3a0, 0xcb40, 0xb200, 0x8a07, 0xbdd7, 0xef7d, ++ 0xb555, 0x9207, 0x90e0, 0xba60, 0xcb80, 0xdca0, 0xd400, 0xba60, 0x80c0, 0xa1a0, 0xa9a0, 0xba60, ++ 0xd3c0, 0xdc60, 0xc2e0, 0xc2a0, 0xa1c1, 0x8aaa, 0xacf3, 0xd6ba, 0xbdd7, 0x92ca, 0x7944, 0x9100, ++ 0xb200, 0xc2e0, 0xdc20, 0xc2c0, 0xb220, 0xc2c0, 0xc300, 0xa180, 0x88e0, 0xa9c0, 0xb220, 0x9100, ++ 0xa1a0, 0xb200, 0x8a48, 0xb595, 0xad14, 0xaa84, 0xe541, 0xf6a8, 0xdce1, 0xb220, 0x8a07, 0x72aa, ++ 0x8923, 0xa471, 0xef7d, 0xf79e, 0xd6ba, 0x8b2c, 0x9920, 0x88c0, 0x7880, 0x832c, 0xd6ba, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xb534, 0xa205, 0x8921, 0xb240, 0xdc00, 0xcb60, 0xb200, ++ 0x9183, 0xacd3, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xb555, 0xa1e3, 0xe501, 0xd460, 0x9940, 0x8080, ++ 0x8a08, 0xce38, 0xffff, 0xffff, 0xf7be, 0xb4f3, 0x9963, 0xb260, 0xdc40, 0xb220, 0x88e0, 0x8080, ++ 0x93ae, 0xef3c, 0xffdf, 0xc5f7, 0x9207, 0xba40, 0xba80, 0x9960, 0x9940, 0xbaa0, 0xcb40, 0xcb20, ++ 0xdc60, 0xdc60, 0xd3e0, 0xd3a0, 0xba80, 0x92eb, 0xe71c, 0xf79e, 0x9c51, 0x9962, 0x90e0, 0xcbc0, ++ 0xeda2, 0xede2, 0xdcc0, 0xcb00, 0xb220, 0xba60, 0xa9a0, 0xb1e0, 0xb220, 0xcb60, 0xa9e0, 0xbaa0, ++ 0xd3c0, 0xa1c0, 0x9983, 0x8b2c, 0x72eb, 0x9941, 0xa140, 0xba80, 0xe4c0, 0xe4c0, 0xcb40, 0xc2e0, ++ 0xc300, 0xd3c0, 0xba40, 0xa9e0, 0x9100, 0x9940, 0xc2c0, 0xd3a0, 0xc2c0, 0xcb60, 0xbaa0, 0x9268, ++ 0x9471, 0x9268, 0xcba0, 0xe542, 0xdca0, 0xba80, 0x8984, 0x71c7, 0x80c1, 0x7a08, 0x9430, 0x9c10, ++ 0x8aeb, 0xaa02, 0xb240, 0xb1e0, 0xa980, 0x938e, 0xe73c, 0xffff, 0xffff, 0xffdf, 0xef5d, 0xef3c, ++ 0xef7d, 0xb555, 0xa204, 0xba80, 0xcb00, 0xd3e0, 0xcb80, 0xc2e0, 0x8a48, 0xce79, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xe6fb, 0x9b6d, 0xb241, 0xdcc1, 0xe501, 0xa1c1, 0x832c, 0xb534, 0xe73c, 0xffff, 0xffff, ++ 0xffdf, 0xc618, 0x8b2c, 0xa1a1, 0xd3e0, 0xa1a0, 0x9100, 0x9920, 0x8acb, 0xdefb, 0xffff, 0xe71c, ++ 0x936d, 0xa1a0, 0xbaa0, 0xa9e0, 0x7060, 0xaa20, 0xd380, 0xcb40, 0xcb40, 0xe521, 0xe560, 0xe4c0, ++ 0xbac0, 0x7a69, 0xd679, 0xf7be, 0xc5f7, 0x8207, 0xaa00, 0xe521, 0xf623, 0xdc40, 0xc300, 0x9960, ++ 0xa9c0, 0xa9a0, 0xba80, 0xba60, 0xa9c0, 0xb1e0, 0xa160, 0xaa00, 0xc340, 0xba40, 0x9920, 0x70a1, ++ 0x5061, 0x88e0, 0xba40, 0xcb80, 0xd400, 0xd420, 0xcb20, 0xd3c0, 0xd3e0, 0xa9e0, 0xb240, 0xdc20, ++ 0xba40, 0xa180, 0xba40, 0xcb00, 0xcb00, 0xc2e0, 0xc300, 0xa1e4, 0x7b4d, 0x89e7, 0xc2e0, 0xdca0, ++ 0xdca0, 0xbaa0, 0x9920, 0xa9c0, 0xa180, 0x80a0, 0x7040, 0x9920, 0xa160, 0xb220, 0xcb20, 0xc280, ++ 0xb221, 0xac92, 0xf7be, 0xffff, 0xffff, 0xef7d, 0xa430, 0x9aeb, 0xacf3, 0xad34, 0x89e7, 0xba60, ++ 0xcb40, 0xd3a0, 0xd3a0, 0xcb80, 0x91e5, 0xb534, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc618, 0x91e6, 0xc2c0, ++ 0xc300, 0xdc20, 0xa1e1, 0x93cf, 0xc618, 0xf79e, 0xffff, 0xffff, 0xffff, 0xf7be, 0xbdb6, 0xa226, ++ 0xcb60, 0xc320, 0xba60, 0x9961, 0x9c71, 0xf79e, 0xffff, 0xf7be, 0xad14, 0x9984, 0x90e0, 0x9940, ++ 0x9960, 0xa1a0, 0xcb20, 0xdc80, 0xeda4, 0xf6a7, 0xed81, 0xe500, 0xaa20, 0x68e3, 0xa4f3, 0xe73c, ++ 0xa492, 0x7965, 0xa1c0, 0xe585, 0xff50, 0xe566, 0xa1c0, 0x9100, 0xa980, 0x9100, 0x9120, 0x9120, ++ 0x9940, 0xa160, 0xcb20, 0xba40, 0xb200, 0x9940, 0x80a0, 0x71a6, 0x7b6d, 0x91c5, 0xba40, 0xdc40, ++ 0xd400, 0xcb20, 0xba60, 0xaa00, 0xbaa0, 0x78a0, 0x9980, 0xba80, 0xb240, 0xdca0, 0xdc60, 0xe561, ++ 0xeda2, 0xdc60, 0xba80, 0x81c6, 0x9471, 0x8a89, 0xc320, 0xe500, 0xe4e0, 0xa1a0, 0x9920, 0xb220, ++ 0xba80, 0x8900, 0x9160, 0xcba0, 0xcb80, 0xc2a0, 0xc2a0, 0xb220, 0xaa01, 0xacd3, 0xf7be, 0xffff, ++ 0xffff, 0xd6ba, 0x8aaa, 0x90e0, 0x9143, 0x99e5, 0xb221, 0xd3e0, 0xd3e0, 0xc2e0, 0xd380, 0xbac0, ++ 0xa980, 0x9a68, 0xce38, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc5f7, 0x91e5, 0xc2e0, 0xe501, 0xe501, 0xba60, 0xa1a2, ++ 0x9289, 0xc618, 0xffdf, 0xffff, 0xffdf, 0xce38, 0x936d, 0xaa22, 0xd420, 0xe560, 0xd420, 0xa246, ++ 0xc5f7, 0xffdf, 0xffff, 0xffff, 0xdedb, 0x92eb, 0x9940, 0x9920, 0x9920, 0xc2e0, 0xcb20, 0xdca1, ++ 0xff4e, 0xee47, 0xcb60, 0xcb60, 0xc300, 0xa203, 0xbd75, 0xef5d, 0xa410, 0x8943, 0xbac0, 0xf68b, ++ 0xff94, 0xede5, 0xcb40, 0xa9a0, 0x9940, 0x9920, 0x80c1, 0x79c7, 0x8bae, 0x8a69, 0xc300, 0xc2c0, ++ 0xb220, 0x9940, 0x80a0, 0x79a6, 0x9cb2, 0x934c, 0xa9e1, 0xd3e0, 0xdc80, 0xede4, 0xdd02, 0xb240, ++ 0xa9c0, 0x9940, 0xa140, 0x9920, 0xbac0, 0xdca0, 0xdc20, 0xe520, 0xf686, 0xee04, 0xc300, 0x9981, ++ 0x79e7, 0x8943, 0xa9e0, 0xd380, 0xcb60, 0xa1a0, 0xba80, 0xdcc1, 0xeda3, 0xd420, 0xe565, 0xf688, ++ 0xdc80, 0xba80, 0xa180, 0xa180, 0xaa25, 0xb514, 0xf7be, 0xffdf, 0xe6fb, 0xa471, 0x9143, 0x88a0, ++ 0x9100, 0xb200, 0xd3a0, 0xdca0, 0xd3e0, 0xdc40, 0xd3e0, 0xa9c0, 0x9100, 0x8101, 0x8b8e, 0xbd95, ++ 0xe71c, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xd69a, 0x92a9, 0xc2e0, 0xdcc1, 0xee03, 0xcba0, 0xa9a0, 0x9101, 0x9bef, 0xef7d, 0xffff, ++ 0xf7be, 0xb4f3, 0x9143, 0xa180, 0xbaa0, 0xe541, 0xd400, 0x92a9, 0xdeba, 0xffff, 0xffff, 0xffff, ++ 0xf79e, 0xa492, 0xa9e2, 0xa9e0, 0x9900, 0xaa00, 0xba80, 0xdc80, 0xede5, 0xede2, 0xdc80, 0xba60, ++ 0xcb80, 0xb2e5, 0xc5b6, 0xf7be, 0xdedb, 0x9c10, 0xbac1, 0xee26, 0xf687, 0xdc40, 0xa9e0, 0x90e0, ++ 0xa1a2, 0x9248, 0xa492, 0xc5f7, 0xe71c, 0xa430, 0xb241, 0xdc80, 0xd400, 0xcb20, 0x9960, 0x7a69, ++ 0xbdb6, 0xacf3, 0x99c4, 0xcb40, 0xe560, 0xede4, 0xede4, 0xd3c0, 0xba40, 0xba40, 0xa160, 0x9940, ++ 0xcba0, 0xdca0, 0xdc60, 0xe561, 0xf686, 0xe562, 0xc300, 0xa1e5, 0x79a6, 0x9940, 0xba60, 0xdc80, ++ 0xed81, 0xd3c0, 0xd420, 0xedc1, 0xee03, 0xed60, 0xee25, 0xf666, 0xdca0, 0xba80, 0x78c1, 0x8b4d, ++ 0xbdb6, 0xe73c, 0xffff, 0xe73c, 0xa3ef, 0xb284, 0xa1a0, 0x88c0, 0xa9e0, 0xba80, 0xc2e0, 0xdc80, ++ 0xe500, 0xf645, 0xee26, 0xc2e0, 0x9120, 0x6020, 0x9941, 0x9184, 0x938e, 0xbd96, 0xef5d, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef5d, 0x8b6d, 0xba80, ++ 0xdc60, 0xe4e0, 0xbac0, 0x9900, 0x78c1, 0x9c30, 0xf79e, 0xffff, 0xffdf, 0xce38, 0x7acb, 0x88e0, ++ 0xbaa0, 0xe4e0, 0xc340, 0x8aeb, 0xd69a, 0xffdf, 0xffff, 0xffff, 0xf79e, 0xbdb6, 0x6a08, 0x80c0, ++ 0xb240, 0xc2e0, 0xc2e0, 0xc300, 0xba40, 0xbaa0, 0xbaa0, 0xa1a1, 0x92aa, 0xac71, 0xe71c, 0xffff, ++ 0xf79e, 0x9c71, 0xa1e2, 0xe542, 0xf664, 0xe521, 0xa9e0, 0x7124, 0xa492, 0xce59, 0xf79e, 0xffff, ++ 0xf7be, 0x9c51, 0xa1e1, 0xede4, 0xf687, 0xdce1, 0xa201, 0x9c92, 0xef5d, 0xb534, 0xa204, 0xcb80, ++ 0xede2, 0xd400, 0xbac0, 0xa9e0, 0xa9a0, 0xb220, 0xa160, 0xc2c0, 0xc2c0, 0xcb40, 0xdcc1, 0xf6c8, ++ 0xee05, 0xcba0, 0x99e5, 0x9450, 0x836d, 0x80c1, 0xb240, 0xdca0, 0xf6a7, 0xf666, 0xe4e0, 0xdc60, ++ 0xdc60, 0xedc2, 0xedc2, 0xdc60, 0xb240, 0x80e0, 0x5965, 0xb575, 0xf7be, 0xffff, 0xffff, 0xe71c, ++ 0x9bae, 0xb285, 0x9980, 0x9940, 0xba60, 0xba60, 0xcb80, 0xe521, 0xf664, 0xf643, 0xf6a7, 0xe583, ++ 0xbaa0, 0xb240, 0xc300, 0xcb80, 0xc340, 0xa268, 0xce59, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0x938e, 0xcba0, 0xee25, 0xe543, 0xaa00, 0x90e0, ++ 0x78c1, 0x9c30, 0xef7d, 0xffff, 0xe73c, 0xac92, 0x89e7, 0xb260, 0xe500, 0xd440, 0xa160, 0x8102, ++ 0x93ce, 0xe73c, 0xffff, 0xffdf, 0xc5f7, 0x8aaa, 0x6903, 0x9100, 0xcb80, 0xd3c0, 0xcb20, 0xdc60, ++ 0xd3c0, 0xa9e0, 0xb220, 0xa247, 0xc5d7, 0xf79e, 0xffff, 0xffff, 0xef5d, 0x9b6d, 0xaa00, 0xe542, ++ 0xede3, 0xcbc0, 0xb200, 0x89a5, 0xc5f7, 0xffdf, 0xf7be, 0xffdf, 0xf79e, 0xa430, 0xb261, 0xe542, ++ 0xf6c9, 0xedc3, 0xc361, 0xb4f3, 0xef7d, 0xacf3, 0xaa03, 0xd400, 0xf665, 0xcbe0, 0x9940, 0xaa00, ++ 0xa140, 0xa180, 0x9140, 0xcb80, 0xba60, 0xb220, 0xdca0, 0xe561, 0xc2e0, 0xa1c0, 0x932c, 0xbdf7, ++ 0x930b, 0x90e0, 0xbaa0, 0xe541, 0xf6c9, 0xff2d, 0xee45, 0xdc20, 0xcb60, 0xd420, 0xedc2, 0xdcc0, ++ 0xa9e0, 0x78a0, 0x8901, 0x930b, 0xc5d7, 0xffdf, 0xffff, 0xffdf, 0xe6fb, 0xbd96, 0x8248, 0xba80, ++ 0xc300, 0xba60, 0xa180, 0xdca1, 0xedc2, 0xf6a6, 0xf6e9, 0xede4, 0xdc40, 0xd3a0, 0xdc80, 0xe500, ++ 0xd440, 0x9aea, 0xd6ba, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf79e, 0xe6fb, 0x9c30, 0xc342, 0xf667, 0xee06, 0xb260, 0x9900, 0x9121, 0x9b6d, 0xdedb, 0xd6ba, ++ 0xa471, 0xa225, 0xc2a0, 0xc280, 0xcb40, 0xcb80, 0xb240, 0x9100, 0x7a69, 0xdedb, 0xffdf, 0xc5d7, ++ 0x830c, 0x70a1, 0x9960, 0xcba0, 0xe4c0, 0xe500, 0xcb20, 0xcb60, 0xb260, 0xa180, 0xb220, 0x9184, ++ 0xa492, 0xef5d, 0xffff, 0xffff, 0xf79e, 0xa4b2, 0x9983, 0xc2e0, 0xcb60, 0xc2e0, 0xc2e0, 0x91c4, ++ 0xad34, 0xbdd7, 0xa471, 0xb575, 0xad55, 0x8269, 0xa180, 0xcb40, 0xd420, 0xc300, 0x9a88, 0xc5f7, ++ 0xef5d, 0xa471, 0xa9e2, 0xdca0, 0xe541, 0xc2e0, 0xa9c0, 0xc2a0, 0x88e0, 0x7060, 0x9140, 0xdc60, ++ 0xd3c0, 0xcb00, 0xcb80, 0xc300, 0xc2c0, 0xa180, 0x828a, 0x9430, 0x81a6, 0xa180, 0xcb40, 0xee25, ++ 0xff4d, 0xf669, 0xd441, 0xc2a0, 0xc2a0, 0xa9e0, 0xdc20, 0xd3e0, 0xcb40, 0xa9a0, 0xb200, 0xa181, ++ 0x938e, 0xdedb, 0xf79e, 0xffff, 0xffff, 0xef5d, 0x9b6d, 0xa9a0, 0x9163, 0x93ae, 0x830b, 0xb240, ++ 0xdc80, 0xf686, 0xf644, 0xe4c0, 0xdc60, 0xd380, 0xcb60, 0xbac0, 0xaa00, 0x8b8e, 0xe73c, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xacd3, 0x930c, 0x7a28, 0xb260, ++ 0xe521, 0xf644, 0xd400, 0xa9e1, 0x8b4d, 0xb595, 0xc618, 0x9b6c, 0xbac2, 0xc300, 0xdc40, 0xcb20, ++ 0xdc60, 0xeda1, 0xcb60, 0x9940, 0x7a69, 0xd6ba, 0xf7be, 0xacd3, 0x8943, 0xa1c0, 0xa180, 0xd3e0, ++ 0xf643, 0xe561, 0xc300, 0xa160, 0xb1e0, 0x90e0, 0x8080, 0x9940, 0x9a47, 0xbd96, 0xc5f7, 0xbd75, ++ 0xdedb, 0xce79, 0x9aa9, 0xdc60, 0xd440, 0xcb40, 0xcb20, 0xa1e1, 0x81e7, 0x8985, 0xb201, 0x9983, ++ 0x9143, 0x9100, 0x9960, 0xd3a0, 0xd3c0, 0xcb60, 0x8aaa, 0xad14, 0xb575, 0x8a48, 0xba40, 0xba60, ++ 0xd3e0, 0xd3a0, 0xc2c0, 0xbaa0, 0x9920, 0x8080, 0xa9c0, 0xdce1, 0xeda2, 0xba80, 0x9920, 0x9920, ++ 0xa140, 0x9920, 0x88c0, 0x7924, 0x82eb, 0x9207, 0xa9e0, 0xd460, 0xf6a6, 0xe562, 0xba60, 0x88c0, ++ 0x88e0, 0xc300, 0xd3a0, 0xcb40, 0xcb20, 0xcb00, 0xc300, 0x9120, 0x7103, 0x9aca, 0xa430, 0xd679, ++ 0xffff, 0xef5d, 0x9b8d, 0xb1e0, 0x9a68, 0xc618, 0x9c71, 0xa1c1, 0xcb40, 0xdca0, 0xe520, 0xdc40, ++ 0xcb20, 0xcb80, 0x9100, 0xa9c0, 0xb220, 0x79c6, 0xa471, 0xce38, 0xffdf, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf7be, 0xacd3, 0x8a69, 0x9141, 0xd400, 0xdc80, 0xed82, 0xdca0, 0x99a1, ++ 0x82aa, 0x9b6d, 0x8a28, 0xa202, 0xd420, 0xba60, 0xb240, 0xba80, 0xe540, 0xe540, 0xd3e0, 0x9980, ++ 0x7985, 0xbd96, 0xf79e, 0xb555, 0x91a4, 0xd3a0, 0xcb40, 0xc300, 0xe561, 0xede1, 0xd420, 0xb1e0, ++ 0xcb20, 0x9960, 0x90e0, 0xa160, 0x9961, 0x838e, 0x8b0c, 0x91e6, 0xbdb6, 0xbdb6, 0x9a27, 0xdc60, ++ 0xe520, 0xd3e0, 0xdca0, 0xcb60, 0xa9a0, 0x7060, 0x88e0, 0x90e0, 0x80c0, 0x8080, 0x9940, 0xd400, ++ 0xd420, 0xd400, 0x91c5, 0x9c92, 0xa4f3, 0x9206, 0xc2a0, 0xb200, 0xd400, 0xdc40, 0xcb80, 0xbaa0, ++ 0xa9a0, 0x9920, 0x9920, 0xb280, 0xc340, 0xba60, 0x9920, 0xa9a0, 0xa140, 0x9940, 0x9940, 0x89e7, ++ 0xbdb6, 0x9c92, 0x9961, 0xd420, 0xf6a8, 0xe563, 0xb283, 0x836d, 0x8289, 0xb220, 0xc2c0, 0xcb40, ++ 0xd3a0, 0xc2c0, 0xba40, 0x8900, 0x88e0, 0xa180, 0x9983, 0xbd55, 0xffdf, 0xf79e, 0xac92, 0xaa25, ++ 0x9b8e, 0xdedb, 0xac92, 0xc2e1, 0xcb80, 0xb260, 0xb220, 0xc300, 0xba40, 0xba40, 0x8921, 0xa1c0, ++ 0xc300, 0xa140, 0x9164, 0xa492, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xf79e, 0xce79, 0x92ca, 0xc300, 0xd400, 0xe520, 0xdcc0, 0xc2c0, 0xb220, 0xc2a0, 0xbaa0, 0xa9a0, ++ 0xba60, 0xba80, 0xcb20, 0xc2c0, 0xd420, 0xdc40, 0xd3e0, 0xa180, 0x7a08, 0xc618, 0xdedb, 0x9b6d, ++ 0xbaa1, 0xd3e0, 0xdc40, 0xdcc0, 0xe4c0, 0xe560, 0xd400, 0xc2a0, 0xa9e0, 0x88c0, 0x9100, 0xb200, ++ 0x80a0, 0x9162, 0x7923, 0x9c51, 0xce59, 0x9bae, 0xb221, 0xc300, 0xe4e0, 0xeda2, 0xe500, 0xd400, ++ 0xb200, 0xa160, 0xa9e0, 0xba60, 0x88e0, 0x9120, 0xb220, 0xdc60, 0xedc1, 0xd420, 0x9a26, 0xb555, ++ 0xa492, 0xa9e3, 0xb220, 0xcb20, 0xdca0, 0xdcc0, 0xdc40, 0xc320, 0xb200, 0xba80, 0xbaa0, 0xa180, ++ 0x9940, 0xb200, 0x9940, 0xa140, 0xb220, 0xc2c0, 0x8a28, 0xa471, 0xdedb, 0xad13, 0xa1e2, 0xd3c0, ++ 0xd3e0, 0xaa00, 0x7965, 0x9cb2, 0x8b8e, 0xa9e1, 0xc2c0, 0xc2c0, 0xd400, 0xc2a0, 0xba20, 0xba60, ++ 0xb260, 0x80e1, 0x8a28, 0xc5d7, 0xffdf, 0xffff, 0xe6fb, 0xce18, 0xd6ba, 0xf7be, 0xce18, 0xa38d, ++ 0x99a4, 0xa9c0, 0xa9c0, 0xba60, 0xb241, 0x930b, 0xa4b2, 0x8aaa, 0xb221, 0x9a68, 0xad34, 0xd6ba, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x9c71, 0xa1a2, ++ 0xa9c0, 0xdc60, 0xdca0, 0xcb20, 0xba40, 0xba80, 0xa9a0, 0xa9a0, 0xbaa0, 0xd3c0, 0xcb80, 0xba80, ++ 0xdc60, 0xdcc0, 0xc2c0, 0xa1a1, 0x9c10, 0xe71c, 0xbdb6, 0x9a26, 0xdc60, 0xe4e0, 0xed60, 0xeda1, ++ 0xdc80, 0xdc20, 0xba80, 0xba80, 0xba80, 0x9100, 0x9100, 0x9940, 0x88c0, 0xa9e0, 0x9183, 0xad14, ++ 0xe71c, 0x9bae, 0x9961, 0xcb40, 0xe521, 0xee03, 0xdca0, 0xa9e0, 0xa180, 0xcb40, 0xd3c0, 0xd3e0, ++ 0xb240, 0xbaa0, 0xcb20, 0xc300, 0xdc60, 0xe4e0, 0xaa62, 0x9451, 0xa492, 0x9aea, 0x92a9, 0xaa44, ++ 0xb240, 0xa9e0, 0xb1e0, 0xa9a0, 0x9920, 0xba80, 0xd3e0, 0xa1a0, 0xb200, 0xb220, 0xa160, 0xbaa0, ++ 0xba60, 0x9a05, 0xb555, 0xef7d, 0xce59, 0x932c, 0xa181, 0xa9c0, 0xb220, 0xa9c0, 0xa1a1, 0x99e6, ++ 0x71a6, 0x79a5, 0xa180, 0xba80, 0xc2e0, 0xd3a0, 0xc2e0, 0xd3e0, 0xcb80, 0x7985, 0xa514, 0xef7d, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xe71c, 0xa471, 0xaa03, 0xa9a0, 0x9940, ++ 0x8a69, 0xce38, 0xf79e, 0xce59, 0xb514, 0xbd96, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd679, 0x7269, 0x7880, 0xc340, 0xdca0, 0xbac0, ++ 0x88e0, 0xb240, 0xc320, 0xa9a0, 0xcb40, 0xc2c0, 0xb1e0, 0xa9c0, 0xd400, 0xee03, 0xc320, 0x70a1, ++ 0x7b2c, 0xa451, 0x9289, 0xa1e1, 0xd420, 0xe541, 0xede2, 0xe500, 0xe520, 0xd400, 0xa180, 0xcb40, ++ 0xd3a0, 0xa160, 0x80a0, 0x9920, 0x9920, 0x70a1, 0x7165, 0x9430, 0xef5d, 0xc618, 0x8a48, 0xb1e0, ++ 0xc300, 0xd3e0, 0xcb80, 0xb260, 0xd3c0, 0xc2c0, 0xcba0, 0xc320, 0xb1e0, 0xd3a0, 0xcb20, 0xa1a0, ++ 0xcb60, 0xd3e0, 0xa287, 0xbdd7, 0xef5d, 0xe73c, 0xd6ba, 0x8b4d, 0xba60, 0xb240, 0x9940, 0xa140, ++ 0xa1a0, 0xd420, 0xdca0, 0xb280, 0x9920, 0x9920, 0xa1a0, 0xcb00, 0xbaa0, 0x9268, 0xce79, 0xffdf, ++ 0xbd75, 0xaa04, 0xb220, 0x88c0, 0x9940, 0xa180, 0xa9a0, 0x9162, 0x9c30, 0xad34, 0xa247, 0xba60, ++ 0xb200, 0xcb40, 0xcb40, 0xd420, 0xc2e0, 0x9121, 0x8b0c, 0xd679, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xc5f7, 0x91c5, 0x80a0, 0x81e7, 0xad13, 0xf79e, 0xffff, 0xffff, ++ 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xef3c, 0x934c, 0x88a0, 0xa180, 0xba60, 0xa160, 0x9120, 0xbaa0, 0xd3e0, 0xb200, ++ 0xb220, 0x9960, 0x9920, 0xa9a0, 0xb240, 0xd3e0, 0xbaa0, 0x80a0, 0x6081, 0xa9e1, 0xc2a0, 0xba40, ++ 0xb220, 0xbaa0, 0xbac0, 0xba60, 0xba80, 0xb1e0, 0xa180, 0xcb00, 0xba60, 0xc300, 0xc360, 0xb220, ++ 0xba80, 0x8a06, 0xad34, 0xe6fb, 0xffdf, 0xef7d, 0xacb2, 0x9a27, 0xc300, 0xe4e0, 0xcb60, 0xbac0, ++ 0xe500, 0xcba0, 0xa9c0, 0xa9c0, 0xa9a0, 0xc2c0, 0xba40, 0x88c0, 0x9120, 0xa9e1, 0x9bef, 0xef5d, ++ 0xffff, 0xffff, 0xf79e, 0xa471, 0xb262, 0xc300, 0xb220, 0xba60, 0xba60, 0xcbc0, 0xe540, 0xdca0, ++ 0xcb20, 0xd440, 0xcb40, 0xba20, 0xa9e0, 0x8aaa, 0xd69a, 0xf7be, 0xd6ba, 0x938e, 0xa9e2, 0x9940, ++ 0x88e0, 0x88a0, 0xa140, 0x8aaa, 0xce59, 0xbdb6, 0x91e6, 0x9900, 0x8164, 0xa1a3, 0xcb40, 0xcb80, ++ 0xcb80, 0x9920, 0x9961, 0x9c30, 0xef7d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xce38, 0x9a07, 0xa9c1, 0x9c30, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xa4b2, ++ 0x8964, 0xa9c0, 0x9121, 0x9121, 0xb200, 0xc2c0, 0xa1c0, 0x88e0, 0x80a0, 0xa160, 0xb220, 0xb200, ++ 0xa9e0, 0xa180, 0x80a0, 0x7a07, 0x9c71, 0x9bef, 0x932c, 0x9aa9, 0x9142, 0xa9c0, 0xa180, 0xa9e0, ++ 0xba60, 0xa160, 0x9940, 0xa9e1, 0xa9a1, 0xcbc0, 0xe561, 0xcb80, 0xd3e0, 0xaa44, 0xb595, 0xffdf, ++ 0xffff, 0xffff, 0xef7d, 0xa492, 0xa1e1, 0xd420, 0xbaa0, 0x78a0, 0xc2e0, 0xc2c0, 0xba40, 0xa9e0, ++ 0x80e1, 0x9960, 0xc2c0, 0xb220, 0x9100, 0x8943, 0xacf3, 0xf7be, 0xffff, 0xffff, 0xffff, 0xd69a, ++ 0x8b6d, 0x79a6, 0x81e7, 0xa160, 0x80a0, 0x8900, 0xc300, 0xd3c0, 0xba60, 0xc340, 0xbac0, 0xa9a0, ++ 0x78a0, 0x59c7, 0x9c10, 0xbd75, 0xf79e, 0xdefb, 0xacf3, 0x9b6d, 0xa30b, 0x89e7, 0x9207, 0xb534, ++ 0xf79e, 0xc5f7, 0x9228, 0x9248, 0xad34, 0x9bae, 0xc301, 0xd380, 0xcb40, 0xa980, 0xa9c0, 0x8b2c, ++ 0xe73c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe73c, 0x9bae, 0xa9c2, 0xac51, ++ 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe71c, 0xa430, 0x9b2c, 0x9c71, 0x936d, ++ 0x9a27, 0x8a07, 0x7944, 0x7040, 0x7923, 0x9a27, 0x9b0b, 0x93ae, 0x71e7, 0xa180, 0xa9e0, 0x932c, ++ 0xdedb, 0xf79e, 0xef7d, 0xd69a, 0x8b0b, 0xbaa0, 0xbaa0, 0xa9e0, 0xb241, 0x9101, 0x89c6, 0x9c71, ++ 0x938e, 0xa1c3, 0xd3a0, 0xcb60, 0xcba0, 0x9161, 0x8bef, 0xdedb, 0xffff, 0xffff, 0xf79e, 0x9cb2, ++ 0x8901, 0xaa41, 0xa224, 0x71a6, 0xaa02, 0xba40, 0xa9e1, 0x9289, 0x8bef, 0xa267, 0xc2e1, 0xb261, ++ 0xa205, 0x9bce, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xd69a, 0x830c, 0x836d, 0xa514, 0x92aa, ++ 0x81e7, 0x81a5, 0xcb60, 0xdc40, 0xb220, 0x80a0, 0x78a0, 0xa160, 0x79c6, 0x728a, 0x9163, 0xa3ef, ++ 0xf79e, 0xffff, 0xf7be, 0xef7d, 0xef3c, 0xce59, 0xce59, 0xf79e, 0xffff, 0xef7d, 0xce38, 0xce59, ++ 0xef7d, 0xc618, 0x9aea, 0xa267, 0xa267, 0x9a27, 0x9a48, 0xa4b2, 0xf79e, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xce38, 0xa430, 0xbd75, 0xf7be, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0xe71c, 0xf79e, 0xe71c, 0xdeba, 0xd69a, 0x9c92, 0x7103, ++ 0x8bae, 0xce59, 0xe71c, 0xe73c, 0x9410, 0xa1a1, 0xa1c2, 0xa430, 0xef5d, 0xffff, 0xffff, 0xef7d, ++ 0xa3ef, 0xb221, 0xa247, 0x9c30, 0xb4f3, 0xb4f3, 0xbd55, 0xef5d, 0xdedb, 0x9bae, 0xa245, 0xa2a8, ++ 0xa2ea, 0x8aca, 0x93ef, 0xd69a, 0xffff, 0xffff, 0xe73c, 0x8b6d, 0x7a48, 0x9c71, 0xbdd7, 0xce79, ++ 0xacf3, 0x9bce, 0xacf3, 0xce59, 0xe71c, 0xbd96, 0xb4f3, 0xad13, 0xc5f7, 0xe71c, 0xffdf, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xc5d7, 0x8985, 0x92ca, 0xce59, 0xdedb, 0xdeba, 0xbdd7, 0xa2ea, 0xbac0, ++ 0xa180, 0x6040, 0x6040, 0x8921, 0x9c71, 0xc638, 0xb514, 0xbdd7, 0xf7be, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xdedb, 0xdeba, ++ 0xdeba, 0xdeba, 0xdeba, 0xef3c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xf7be, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xa471, 0xa1c2, 0x9b6d, 0xe71c, 0xffff, 0xffdf, ++ 0xc618, 0x9bce, 0x9c51, 0xdeba, 0xffff, 0xffff, 0xffff, 0xf7be, 0xc618, 0xa492, 0xc5f7, 0xef7d, ++ 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffdf, 0xe71c, 0xc618, 0xdeba, 0xe73c, 0xe73c, 0xef7d, 0xffdf, ++ 0xffff, 0xffff, 0xf7be, 0xd679, 0xce59, 0xf79e, 0xffff, 0xffff, 0xf7be, 0xef7d, 0xffdf, 0xffff, ++ 0xffff, 0xffdf, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdeba, ++ 0x9c10, 0xacf3, 0xef7d, 0xffff, 0xffff, 0xf7be, 0xc5f7, 0x9c10, 0x938e, 0x730c, 0x8144, 0x80c1, ++ 0x832c, 0xd69a, 0xffdf, 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffdf, 0xce38, 0xac92, 0xbdb6, 0xf7be, 0xffff, 0xffff, 0xffdf, 0xf79e, 0xf7be, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0xf7be, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xf79e, 0xf79e, 0xdefb, 0xacd3, 0x8b2c, 0x82eb, 0xce38, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0xffdf, ++ 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xf7be, 0xe73c, 0xe71c, 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, ++ 0xffff, 0xffff, 0xffff, 0xffff, ++}; +diff --git a/lk2nd/aurora/rules.mk b/lk2nd/aurora/rules.mk +new file mode 100644 +index 00000000..d6015b7b +--- /dev/null ++++ b/lk2nd/aurora/rules.mk +@@ -0,0 +1,13 @@ ++# SPDX-License-Identifier: BSD-3-Clause ++# Aurora B9L (RAM test only): ST7735S SPI panel bring-up for the JZ08AU board (msm8916), stock-LK parameters. ++# Uses the CAF spi_qup driver directly; platform/msm_shared/mdss_spi.o is deliberately NOT built (it is hard-wired ++# to QM215/msm8909 and its presence would pull in lk2nd/device/2nd/spi-display.o, which dereferences a NULL panel.intf). ++LOCAL_DIR := $(GET_LOCAL_DIR) ++ ++ifeq ($(AURORA_SPLASH),1) ++DEFINES += AURORA_SPLASH=1 ++endif ++ ++OBJS += \ ++ platform/msm_shared/spi_qup.o \ ++ $(LOCAL_DIR)/st7735s.o \ +diff --git a/lk2nd/aurora/st7735s.c b/lk2nd/aurora/st7735s.c +new file mode 100644 +index 00000000..2354aa51 +--- /dev/null ++++ b/lk2nd/aurora/st7735s.c +@@ -0,0 +1,213 @@ ++// SPDX-License-Identifier: BSD-3-Clause ++/* ++ * Aurora JZ08AU (msm8916) ST7735S 128x128 SPI panel bring-up — B9L RAM test only. ++ * Every parameter is taken from the stock Aurora LK (aboot) analysis (logs/b9/b9a, logs/b9/lk): ++ * BLSP1 QUP4 (0x78b8000), 16 MHz, SPI mode 3 (CLK_IDLE_HIGH, INPUT_FIRST=0), CS0, TX only; ++ * D/C = GPIO116, RESET = GPIO118 (1, 0 for 1 ms, 1, wait 120 ms); the 19 stock init commands (ending with RAMWR); ++ * one RGB565 frame (16-bit words); backlight = PM8916 MPP4 current sink 40 mA (MODE 0x61, SINK 7, EN 0x80). ++ * No regulator is touched (stock LK has no regulator code either); L6/L17 state is only read and logged. ++ * The display is NOT registered with fbcon, so lk2nd's own display code cannot draw over the test frame. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#if AURORA_SPLASH ++#include "aurora_splash.h" /* 128x128 RGB565 LE, b9/b9l/splash/mk-splash.py */ ++#endif ++ ++#define DC_GPIO 116 ++#define RST_GPIO 118 ++#define W 128 ++#define H 128 ++ ++#define TLMM_CFG(n) (TLMM_BASE_ADDR + 0x1000 * (n)) ++#define TLMM_IO(n) (TLMM_BASE_ADDR + 0x1000 * (n) + 4) ++ ++static struct qup_spi_dev *dev; ++ ++/* stock LK table @0x8f64849c == stock dtb_01 qcom,mdss-spi-on-command (b9/b9a/decode-panel.py) */ ++static const struct { uint8_t len, wait; uint8_t d[17]; } cmds[] = { ++ { 1, 120, { 0x11 } }, ++ { 4, 0, { 0xb1, 0x05, 0x3a, 0x3a } }, ++ { 4, 0, { 0xb2, 0x05, 0x3a, 0x3a } }, ++ { 7, 0, { 0xb3, 0x05, 0x3a, 0x3a, 0x05, 0x3a, 0x3a } }, ++ { 2, 0, { 0xb4, 0x03 } }, ++ { 4, 0, { 0xc0, 0x62, 0x02, 0x04 } }, ++ { 2, 0, { 0xc1, 0xc0 } }, ++ { 3, 0, { 0xc2, 0x0d, 0x00 } }, ++ { 3, 0, { 0xc3, 0x8d, 0x6a } }, ++ { 3, 0, { 0xc4, 0x8d, 0xee } }, ++ { 2, 0, { 0xc5, 0x12 } }, ++ { 17, 0, { 0xe0, 0x03, 0x1b, 0x12, 0x11, 0x3f, 0x3a, 0x32, 0x34, 0x2f, 0x2b, 0x30, 0x3a, 0x00, 0x01, 0x02, 0x05 } }, ++ { 17, 0, { 0xe1, 0x03, 0x1b, 0x12, 0x11, 0x32, 0x2f, 0x2a, 0x2f, 0x2e, 0x2c, 0x35, 0x3f, 0x00, 0x00, 0x01, 0x05 } }, ++ { 2, 0, { 0x36, 0xc8 } }, ++ { 2, 0, { 0x3a, 0x05 } }, ++ { 5, 0, { 0x2a, 0x00, 0x02, 0x00, 0x81 } }, ++ { 5, 0, { 0x2b, 0x00, 0x03, 0x00, 0x82 } }, ++ { 1, 0, { 0x29 } }, ++ { 1, 0, { 0x2c } }, ++}; ++ ++static unsigned t0; ++#define LOG(fmt, ...) dprintf(INFO, "[B9L +%u ms] " fmt "\n", (unsigned)(current_time() - t0), ##__VA_ARGS__) ++ ++static int spi_cmd(uint8_t c) ++{ ++ int ret; ++ dev->bytes_per_word = 1; ++ dev->bit_shift_en = 1; ++ gpio_set_dir(DC_GPIO, 0); /* D/C low = command */ ++ ret = spi_qup_write(dev, &c, 1); ++ gpio_set_dir(DC_GPIO, 2); ++ return ret; ++} ++ ++static int spi_data(const uint8_t *b, unsigned len) ++{ ++ dev->bytes_per_word = 1; ++ dev->bit_shift_en = 1; ++ gpio_set_dir(DC_GPIO, 2); /* D/C high = parameters */ ++ return spi_qup_write(dev, b, len); ++} ++ ++static int spi_frame(const uint8_t *b, unsigned len) ++{ ++ dev->bytes_per_word = 2; /* RGB565, little-endian u16 in memory, sent MSB first (as stock LK) */ ++ dev->bit_shift_en = 1; ++ dev->unpack_en = 0; ++ gpio_set_dir(DC_GPIO, 2); ++ return spi_qup_write(dev, b, len); ++} ++ ++static uint16_t rgb(uint8_t r, uint8_t g, uint8_t b) ++{ ++ return (r >> 3) << 11 | (g >> 2) << 5 | b >> 3; ++} ++ ++/* same chart as the Linux B9B test: 1-px white border, R/G/B/W corners, R|G|B bars, yellow arrow up */ ++static void draw_geo(uint16_t *p) ++{ ++ const uint16_t R = rgb(255, 0, 0), G = rgb(0, 255, 0), B = rgb(0, 0, 255), Wh = rgb(255, 255, 255), Y = rgb(255, 255, 0); ++ int x, y; ++ ++ for (y = 0; y < H; y++) ++ for (x = 0; x < W; x++) { ++ uint16_t c = 0; ++ int ax = x * 2 - 127; /* 2*(x - 63.5) */ ++ if (x == 0 || x == W - 1 || y == 0 || y == H - 1) ++ c = Wh; ++ else if (x >= 2 && x < 26 && y >= 2 && y < 26) ++ c = R; ++ else if (x >= W - 26 && x < W - 2 && y >= 2 && y < 26) ++ c = G; ++ else if (x >= 2 && x < 26 && y >= H - 26 && y < H - 2) ++ c = B; ++ else if (x >= W - 26 && x < W - 2 && y >= H - 26 && y < H - 2) ++ c = Wh; ++ else if (y >= 40 && y < 88 && x >= 28 && x < 100) ++ c = (x - 28) < 24 ? R : (x - 28) < 48 ? G : B; ++ else if (y >= 6 && y < 22 && (ax < 0 ? -ax : ax) <= (y - 6)) ++ c = Y; ++ else if (y >= 22 && y < 34 && x >= 58 && x < 70) ++ c = Y; ++ p[y * W + x] = c; ++ } ++} ++ ++static void log_power(const char *when) ++{ ++ /* PM8916 SID1: LDO6 0x4500, LDO17 0x5000 (08 STATUS, 46 EN_CTL); SID0: MPP4 0xa300 (40 MODE, 46 EN, 4c SINK) */ ++ LOG("%s: L6 st=%02x en=%02x L17 st=%02x en=%02x vset=%02x MPP4 mode=%02x en=%02x sink=%02x", when, ++ pm8x41_reg_read(0x14508), pm8x41_reg_read(0x14546), ++ pm8x41_reg_read(0x15008), pm8x41_reg_read(0x15046), pm8x41_reg_read(0x15041), ++ pm8x41_reg_read(0xa340), pm8x41_reg_read(0xa346), pm8x41_reg_read(0xa34c)); ++} ++ ++static void log_hw(const char *when) ++{ ++ LOG("%s: TLMM cfg/io 12=%x/%x 13=%x 14=%x 15=%x 116=%x/%x 118=%x/%x QUP4 spi CBCR=%08x RCGR=%08x/%08x", when, ++ readl(TLMM_CFG(12)), readl(TLMM_IO(12)), readl(TLMM_CFG(13)), readl(TLMM_CFG(14)), readl(TLMM_CFG(15)), ++ readl(TLMM_CFG(DC_GPIO)), readl(TLMM_IO(DC_GPIO)), readl(TLMM_CFG(RST_GPIO)), readl(TLMM_IO(RST_GPIO)), ++ readl(CLK_CTL_BASE + 0x501C), readl(CLK_CTL_BASE + 0x5024), readl(CLK_CTL_BASE + 0x5028)); ++} ++ ++static void aurora_st7735s_init(void) ++{ ++ uint16_t *fb; ++ unsigned i, fails = 0; ++ int ret; ++ ++ t0 = current_time(); ++ LOG("ST7735S bring-up start (stock Aurora parameters)"); ++ log_power("before"); ++ log_hw("before"); ++ ++ /* RESET GPIO118: func0 out 8 mA, OE; 1 -> 1 ms -> 0 -> 1 ms -> 1 -> 120 ms (stock target_panel_reset) */ ++ gpio_tlmm_config(RST_GPIO, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA, 1); ++ gpio_set_dir(RST_GPIO, 2); mdelay(1); ++ gpio_set_dir(RST_GPIO, 0); mdelay(1); ++ gpio_set_dir(RST_GPIO, 2); mdelay(120); ++ LOG("reset done (GPIO118 high)"); ++ ++ dev = qup_blsp_spi_init(BLSP_ID_1, QUP_ID_3); ++ if (!dev) { ++ LOG("FAIL: qup_blsp_spi_init(BLSP1, QUP_ID_3)"); ++ return; ++ } ++ dev->force_cs_dis = 1; /* stock SPI_IO_CONTROL = 0x401: NO_TRI_STATE | CLK_IDLE_HIGH, CS0, no FORCE_CS */ ++ /* D/C GPIO116: func0 out 8 mA, OE (stock) */ ++ gpio_tlmm_config(DC_GPIO, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA, 1); ++ gpio_set_dir(DC_GPIO, 2); ++ LOG("QUP4 SPI init done: base=0x%x", dev->qup_base); ++ log_hw("after QUP init"); ++ ++ for (i = 0; i < sizeof(cmds) / sizeof(cmds[0]); i++) { ++ ret = spi_cmd(cmds[i].d[0]); ++ if (!ret && cmds[i].len > 1) ++ ret = spi_data(&cmds[i].d[1], cmds[i].len - 1); ++ if (ret) { ++ fails++; ++ LOG("cmd %u (0x%02x) FAILED ret=%d", i, cmds[i].d[0], ret); ++ } ++ if (cmds[i].wait) ++ mdelay(cmds[i].wait); ++ } ++ LOG("19 init commands sent, %u failures; SPI_IO_CONTROL=%x SPI_CONFIG=%x", fails, ++ readl(dev->qup_base + SPI_IO_CONTROL), readl(dev->qup_base + SPI_CONFIG)); ++ ++ fb = memalign(64, W * H * 2); ++ if (!fb) { ++ LOG("FAIL: no memory for frame"); ++ return; ++ } ++#if AURORA_SPLASH ++ memcpy(fb, aurora_splash, sizeof(aurora_splash)); ++ LOG("frame source: splash image"); ++#else ++ draw_geo(fb); ++ LOG("frame source: geo test chart"); ++#endif ++ ret = spi_frame((const uint8_t *)fb, W * H * 2); ++ LOG("frame %ux%u RGB565 (%u bytes) sent ret=%d (fb @%p)", W, H, W * H * 2, ret, fb); ++ ++ /* backlight: PM8916 MPP4 current sink, exactly the stock LK target_backlight_ctrl writes */ ++ pm8x41_reg_write(0xa340, 0x61); ++ pm8x41_reg_write(0xa34c, 0x07); ++ pm8x41_reg_write(0xa346, 0x80); ++ mdelay(20); ++ log_power("after backlight"); ++ log_hw("end"); ++ LOG("ST7735S bring-up end - continuing lk2nd boot"); ++} ++LK2ND_INIT(aurora_st7735s_init); +diff --git a/platform/msm8916/acpuclock.c b/platform/msm8916/acpuclock.c +index 158ab395..b7533e6c 100644 +--- a/platform/msm8916/acpuclock.c ++++ b/platform/msm8916/acpuclock.c +@@ -529,3 +529,39 @@ void clock_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id) + return; + } + } ++ ++/* ++ * Aurora B9L: SPI core clock, copied from msm8909 acpuclock.c. The CAF spi_qup driver always asks for MAX_SPEED_HZ ++ * (50 MHz, qup.h); the Aurora ST7735S panel runs at 16 MHz in stock LK (gcc_blsp1_qup4_spi_apps_clk = 16000000), ++ * so the rate is clamped here. ++ */ ++#define AURORA_SPI_MAX_HZ 16000000 ++void clock_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id, unsigned long rate) ++{ ++ uint8_t ret = 0; ++ char clk_name[64]; ++ ++ qup_id = qup_id + 1; ++ ++ if (blsp_id != BLSP_ID_1) { ++ dprintf(CRITICAL, "Incorrect BLSP-%d configuration\n", blsp_id); ++ ASSERT(0); ++ } ++ if (rate > AURORA_SPI_MAX_HZ) ++ rate = AURORA_SPI_MAX_HZ; ++ ++ snprintf(clk_name, sizeof(clk_name), "blsp1_ahb_iface_clk"); ++ ret = clk_get_set_enable(clk_name, 0, 1); ++ if (ret) { ++ dprintf(CRITICAL, "%s: Failed to enable %s clock\n", __func__, clk_name); ++ return; ++ } ++ ++ snprintf(clk_name, sizeof(clk_name), "gcc_blsp1_qup%u_spi_apps_clk", qup_id); ++ ret = clk_get_set_enable(clk_name, rate, 1); ++ if (ret) { ++ dprintf(CRITICAL, "%s: Failed to enable %s\n", __func__, clk_name); ++ return; ++ } ++ dprintf(INFO, "B9L: %s enabled at %lu Hz\n", clk_name, rate); ++} +diff --git a/platform/msm8916/gpio.c b/platform/msm8916/gpio.c +index 145b81ce..2912792b 100644 +--- a/platform/msm8916/gpio.c ++++ b/platform/msm8916/gpio.c +@@ -26,6 +26,7 @@ + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#include + #include + #include + #include +@@ -99,3 +100,19 @@ void gpio_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id) + ASSERT(0); + } + } ++ ++/* ++ * Aurora B9L: BLSP1 QUP4 (QUP_ID_3, 0x78b8000) SPI pins as in stock Aurora dtb_01 spi0_active/spi0_cs0_active: ++ * GPIO12 MOSI, GPIO13 MISO, GPIO15 CLK func 1, 12 mA, no pull; GPIO14 CS0 func 1 (native chip select), 2 mA, no pull. ++ */ ++void gpio_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id) ++{ ++ if (blsp_id != BLSP_ID_1 || qup_id != QUP_ID_3) { ++ dprintf(CRITICAL, "Unsupported BLSP-%d QUP-%d SPI pin configuration\n", blsp_id, qup_id); ++ ASSERT(0); ++ } ++ gpio_tlmm_config(12, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_12MA, GPIO_DISABLE); ++ gpio_tlmm_config(13, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_12MA, GPIO_DISABLE); ++ gpio_tlmm_config(14, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA, GPIO_DISABLE); ++ gpio_tlmm_config(15, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_12MA, GPIO_DISABLE); ++} +diff --git a/platform/msm8916/include/platform/clock.h b/platform/msm8916/include/platform/clock.h +index fab62591..c0f00312 100644 +--- a/platform/msm8916/include/platform/clock.h ++++ b/platform/msm8916/include/platform/clock.h +@@ -95,4 +95,5 @@ void gcc_dsi_clocks_disable(uint8_t dual_dsi); + void clock_ce_enable(uint8_t instance); + void clock_ce_disable(uint8_t instance); + void clock_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id); ++void clock_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id, unsigned long rate); + #endif +diff --git a/platform/msm8916/include/platform/gpio.h b/platform/msm8916/include/platform/gpio.h +index 0437aff4..ec4d5859 100644 +--- a/platform/msm8916/include/platform/gpio.h ++++ b/platform/msm8916/include/platform/gpio.h +@@ -70,4 +70,5 @@ void gpio_tlmm_config(uint32_t gpio, + uint8_t drvstr, + uint32_t enable); + void gpio_config_blsp_i2c(uint8_t blsp_id, uint8_t qup_id); ++void gpio_config_blsp_spi(uint8_t blsp_id, uint8_t qup_id); + #endif +diff --git a/platform/msm8916/include/platform/iomap.h b/platform/msm8916/include/platform/iomap.h +index 86a804bb..9e9e09d0 100644 +--- a/platform/msm8916/include/platform/iomap.h ++++ b/platform/msm8916/include/platform/iomap.h +@@ -126,6 +126,13 @@ + #define GCC_BLSP1_QUP4_APPS_CBCR (CLK_CTL_BASE + 0x5020) + #define GCC_BLSP1_QUP4_CFG_RCGR (CLK_CTL_BASE + 0x5004) + #define GCC_BLSP1_QUP4_CMD_RCGR (CLK_CTL_BASE + 0x5000) ++/* Aurora B9L: BLSP1 QUP4 SPI clock (== msm8909 CAF, == Linux gcc-msm8916 0x5024/0x501c) */ ++#define GCC_BLSP1_QUP4_SPI_APPS_CBCR (CLK_CTL_BASE + 0x501C) ++#define GCC_BLSP1_QUP4_SPI_APPS_CMD_RCGR (CLK_CTL_BASE + 0x5024) ++#define GCC_BLSP1_QUP4_SPI_CFG_RCGR (CLK_CTL_BASE + 0x5028) ++#define GCC_BLSP1_QUP4_SPI_APPS_M (CLK_CTL_BASE + 0x502C) ++#define GCC_BLSP1_QUP4_SPI_APPS_N (CLK_CTL_BASE + 0x5030) ++#define GCC_BLSP1_QUP4_SPI_APPS_D (CLK_CTL_BASE + 0x5034) + + /* GPLL */ + #define GPLL0_STATUS (CLK_CTL_BASE + 0x2101C) +diff --git a/platform/msm8916/msm8916-clock.c b/platform/msm8916/msm8916-clock.c +index a1b4b773..bec650a2 100644 +--- a/platform/msm8916/msm8916-clock.c ++++ b/platform/msm8916/msm8916-clock.c +@@ -587,6 +587,45 @@ static struct branch_clk gcc_blsp1_qup4_i2c_apps_clk = { + }, + }; + ++/* Aurora B9L: BLSP1 QUP4 SPI clock, copied from msm8909-clock.c (freq table == Linux gcc-msm8916) */ ++static struct clk_freq_tbl ftbl_gcc_blsp1_qup4_spi_apps_clk[] = { ++ F( 960000, cxo, 10, 1, 2), ++ F( 4800000, cxo, 4, 0, 0), ++ F( 9600000, cxo, 2, 0, 0), ++ F( 16000000, gpll0, 10, 1, 5), ++ F( 19200000, cxo, 1, 0, 0), ++ F( 25000000, gpll0, 16, 1, 2), ++ F( 50000000, gpll0, 16, 0, 0), ++ F_END ++}; ++ ++static struct rcg_clk gcc_blsp1_qup4_spi_apps_clk_src = ++{ ++ .cmd_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_CMD_RCGR, ++ .cfg_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_CFG_RCGR, ++ .m_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_M, ++ .n_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_N, ++ .d_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_D, ++ .set_rate = clock_lib2_rcg_set_rate_mnd, ++ .freq_tbl = ftbl_gcc_blsp1_qup4_spi_apps_clk, ++ .current_freq = &rcg_dummy_freq, ++ ++ .c = { ++ .dbg_name = "gcc_blsp1_qup4_spi_apps_clk_src", ++ .ops = &clk_ops_rcg, ++ }, ++}; ++ ++static struct branch_clk gcc_blsp1_qup4_spi_apps_clk = { ++ .cbcr_reg = (uint32_t *) GCC_BLSP1_QUP4_SPI_APPS_CBCR, ++ .parent = &gcc_blsp1_qup4_spi_apps_clk_src.c, ++ ++ .c = { ++ .dbg_name = "gcc_blsp1_qup4_spi_apps_clk", ++ .ops = &clk_ops_branch, ++ }, ++}; ++ + /* Need different gpll0 source value for CPU clocks */ + #undef gpll0_source_val + #define gpll0_source_val 4 +@@ -678,6 +717,9 @@ static struct clk_lookup msm_clocks_8916[] = + CLK_LOOKUP("gcc_blsp1_qup2_i2c_apps_clk", gcc_blsp1_qup2_i2c_apps_clk.c), + + CLK_LOOKUP("blsp1_qup4_ahb_iface_clk", gcc_blsp1_ahb_clk.c), ++ CLK_LOOKUP("blsp1_ahb_iface_clk", gcc_blsp1_ahb_clk.c), /* Aurora B9L: name used by clock_config_blsp_spi */ ++ CLK_LOOKUP("gcc_blsp1_qup4_spi_apps_clk_src", gcc_blsp1_qup4_spi_apps_clk_src.c), ++ CLK_LOOKUP("gcc_blsp1_qup4_spi_apps_clk", gcc_blsp1_qup4_spi_apps_clk.c), + CLK_LOOKUP("gcc_blsp1_qup4_i2c_apps_clk_src", gcc_blsp1_qup4_i2c_apps_clk_src.c), + CLK_LOOKUP("gcc_blsp1_qup4_i2c_apps_clk", gcc_blsp1_qup4_i2c_apps_clk.c), + +diff --git a/project/lk1st-msm8916.mk b/project/lk1st-msm8916.mk +index 74275fa5..3179944d 100644 +--- a/project/lk1st-msm8916.mk ++++ b/project/lk1st-msm8916.mk +@@ -1,3 +1,8 @@ + # SPDX-License-Identifier: BSD-3-Clause + TARGET := msm8916 + include lk2nd/project/lk1st.mk ++ ++# Aurora B9L: ST7735S SPI panel bring-up module (same code as the RAM-tested lk2nd second stage) ++ifeq ($(AURORA_SPI_PANEL),1) ++MODULES += lk2nd/aurora ++endif +diff --git a/project/lk2nd-msm8916.mk b/project/lk2nd-msm8916.mk +index 192ae770..88c41f4d 100644 +--- a/project/lk2nd-msm8916.mk ++++ b/project/lk2nd-msm8916.mk +@@ -1,3 +1,8 @@ + # SPDX-License-Identifier: BSD-3-Clause + TARGET := msm8916 + include lk2nd/project/lk2nd.mk ++ ++# Aurora B9L (RAM test only): ST7735S SPI panel bring-up module ++ifeq ($(AURORA_SPI_PANEL),1) ++MODULES += lk2nd/aurora ++endif diff --git a/b9/b9l/persist/structure-vs-current.txt b/b9/b9l/persist/structure-vs-current.txt new file mode 100644 index 0000000..29bc08d --- /dev/null +++ b/b9/b9l/persist/structure-vs-current.txt @@ -0,0 +1,10 @@ +current aboot 3b8cd266: file 1048576 B, non-zero end 327193 B, entry 0x8f600000, 4 phdrs + type 0x00000000 off 0x000000 vaddr 0x00000000 filesz 0x0000b4 memsz 0x000000 flags 0x07000000 + type 0x00000000 off 0x001000 vaddr 0x8f677000 filesz 0x0008d8 memsz 0x001000 flags 0x02200000 + type 0x70000001 off 0x04fe14 vaddr 0x8f63dca0 filesz 0x000008 memsz 0x000008 flags 0x00000004 + type 0x00000001 off 0x010000 vaddr 0x8f600000 filesz 0x03fe14 memsz 0x076dd0 flags 0x00000007 +B9L aboot 15208dbb: file 1048576 B, non-zero end 367377 B, entry 0x8f600000, 4 phdrs + type 0x00000000 off 0x000000 vaddr 0x00000000 filesz 0x0000b4 memsz 0x000000 flags 0x07000000 + type 0x00000000 off 0x001000 vaddr 0x8f683000 filesz 0x0008d8 memsz 0x001000 flags 0x02200000 + type 0x70000001 off 0x059b0c vaddr 0x8f647854 filesz 0x000008 memsz 0x000008 flags 0x00000004 + type 0x00000001 off 0x010000 vaddr 0x8f600000 filesz 0x049b0c memsz 0x082dd8 flags 0x00000007 diff --git a/b9/b9l/splash/swag.png b/b9/b9l/splash/swag.png new file mode 100644 index 0000000..8e4c7f0 Binary files /dev/null and b/b9/b9l/splash/swag.png differ diff --git a/logs/b9/b9l/B9L-PERSIST-RESULT.md b/logs/b9/b9l/B9L-PERSIST-RESULT.md new file mode 100644 index 0000000..ffc808b --- /dev/null +++ b/logs/b9/b9l/B9L-PERSIST-RESULT.md @@ -0,0 +1,19 @@ +# B9L-PERSIST — lk1st with ST7735S splash flashed to aboot — PASS (2026-10-03) + +**aboot = lk1st-b9l 15208dbb** (lk2nd 23.1 + b9l patch, AURORA_SPI_PANEL=1 AURORA_SPLASH=1; unsigned 16f9ec0a, signed 0ddbc29a). +Previous aboot 3b8cd266 backed up (logs/b9/b9l/W/pre-aboot.bin); rollback = `b9/b9l/persist/B9L-rollback.sh` (HW EDL, aboot only). + +## Write (HW EDL, b9/b9l/persist/B9L-write.sh) — B9L_ABOOT_WRITE_VERIFIED +pre-aboot 3b8cd266 → "Wrote … to sector 264192" → readback 15208dbb == candidate. GPT p/b, tzbak, boot e9579f33, cache b9ce13c9, +sbl1/rpm/tz/hyp/recovery/modemst1/2/fsg/fsc/persist == A3, modem/system/userdata == A4pre → W/SHA256SUMS. +Incident: the first tool call was shown as rejected but had already started on 480s and completed normally. An operator retry while it was still +verifying userdata failed harmlessly at G1 (USB busy) and overwrote W/00-printgpt.log + W-console.txt. Details: W-NOTE.txt. + +## First normal power-on (no RESET), bootcold1/ +- UART: one `welcome to lk` (new lk1st) → `[B9L +0 ms]` at LK 60 ms → 19 commands 0 failures (`SPI_IO_CONTROL=401`) → `frame source: splash image`, sent ret=0 + → MPP4 61/80/07 (L6/L17 on) → end at +380 ms → `Trying to boot 'b9c'` → Linux. +- Linux: panel-mipi-dbi 1.42 s, fbcon 21x16 1.77 s, DISPLAY READY 7.86 s (no unblank), display errors 0. +- START OK 72.4 s, AP ENABLED 76.9 s, ping 4/4, MPSS+WCNSS running, crash 0, eMMC w=0. Class B (RTC 514 s, short off-time) — not a criterion for this check. +- Operator: everything seen (own splash before Linux, then the Linux console). + +Power-on → splash (~0.4 s after LK start) → b9c → Linux fbcon is now the persistent boot path. diff --git a/logs/b9/b9l/W-NOTE.txt b/logs/b9/b9l/W-NOTE.txt new file mode 100644 index 0000000..5f09a4c --- /dev/null +++ b/logs/b9/b9l/W-NOTE.txt @@ -0,0 +1,7 @@ +B9L aboot write — reconstruction (2026-10-03): +- Run 1 (pid 30167, started ~01:54 local on 480s): the tool call was displayed as rejected but the ssh command had already started; it ran to completion: + pre-aboot.bin = 3b8cd266 (backup), "Wrote b9/b9l/persist/aboot-lk1st-b9l.pad1M to sector 264192", 11-aboot-readback.bin = 15208dbb == candidate (cmp OK), + post-* checks: GPT p/b, tzbak, boot, cache, sbl1 rpm tz hyp recovery modemst1/2 fsg fsc persist == A3, modem/system/userdata == A4pre (files removed after match), + W/SHA256SUMS written (only reached after every gate) => B9L_ABOOT_WRITE_VERIFIED. +- Run 2 (operator retry while run 1 was still reading userdata): edl got USBError 16 Resource busy, stopped at G1 printgpt; it overwrote + W/00-printgpt.log and W-console.txt (run-1 console lost). It wrote nothing. diff --git a/logs/b9/b9l/bootcold1/host-actions.txt b/logs/b9/b9l/bootcold1/host-actions.txt new file mode 100644 index 0000000..fab6ce8 --- /dev/null +++ b/logs/b9/b9l/bootcold1/host-actions.txt @@ -0,0 +1,11 @@ +23:01:46.740 B9L-PERSIST cold1: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET +23:01:47.743 board unreachable (powered off) +23:02:32.254 NCM ping ok +23:02:32.256 RTC at boot 514 s -> class B +~ # cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollb +JZ08AU Aurora (RAM boot B9B) +[82.20] === START OK in 72.4s (wwan0 10.86.108.125/30, routes: 10.10.22.3 194.186.191.1 77.88.8.8 1.1.1.1 ) +23:04:08.375 wifi: [86.68] === AP ENABLED ssid=aurora-b8f ch=6 pid=2721 in 76.93s +23:04:16.407 sntp: [97.62] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.526425 0.059569 89.109.251.22: (offset > 0 = clock behind) +23:04:42.424 snapshot: 2 end markers; RP a204000.remoteproc=running +23:04:47.461 B9L-PERSIST cold1 END - operator visual check next diff --git a/logs/b9/b9l/bootcold1/snapshot.txt b/logs/b9/b9l/bootcold1/snapshot.txt new file mode 100644 index 0000000..13cc109 --- /dev/null +++ b/logs/b9/b9l/bootcold1/snapshot.txt @@ -0,0 +1,200 @@ +�������� + + +BusyBox v1.37.0 (Debian 1:1.37.0-6+b9) built-in shell (ash) +Enter 'help' for a list of built-in commands. + +~ # echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; ech +o; uname -a; cat /proc/cmdline +SNAP-BEGIN +114.61 416.56 +Fri Oct 2 23:04:16 UTC 2026 +JZ08AU Aurora (RAM boot B9B) +Linux aurora 7.2.7-aurora-b9c #9 SMP PREEMPT Sat Oct 3 03:06:50 +06 2026 aarch64 GNU/Linux +earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +~ # echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/auror +a-modem/lifecycle.log | tail -4 +---time +1790982164 21.69 REG:registered/attached qmi-dms +[21.83] TIME probe 6 [REGISTERED]: dms_ms=1475017364075 dms_utc=1790982164.075 nitz=2026-10-02 23:02:44 dms-nitz=+0.11 clock=1790982164 -> VALID (ok) +[82.32] TIME probe 7 [BEARER_CONNECTED]: dms_ms=1475017424557 dms_utc=1790982224.557 nitz=2026-10-02 23:03:44 dms-nitz=+0.60 clock=1790982224 -> VALID (ok) +[97.62] SNTP check ( 89.109.251.21 89.109.251.22 89.109.251.23): 14 replies; best offset delay server: +0.526425 0.059569 89.109.251.22: (offset > 0 = clock behind) +[97.63] SNTP: |offset| < 1s - clock kept (no slew: STA_UNSYNC stays, RTC_SYSTOHC never engages) +~ # echo ---modem; /etc/init.d/aurora-modem status +---modem +service: idle +controller: BEARER_CONNECTED +remoteproc: 4080000.remoteproc running (/sys/class/remoteproc/remoteproc0) fw=mba.mbn +rmtfs: pid='1159' writes_logged=1 +qmi dev: /dev/wwan0qmi0 qmi-proxy='1979' +daemons: udevd='1859' dbus='1887' polkitd='1891' ModemManager='1902' + mm plugin: qcom-soc + mm primary port: wwan0qmi0 + mm state: connected + mm power state: on + mm access tech: lte + mm signal quality: 65% (recent) + mm operator name: Beeline + mm registration: home + bearer 1: Status connected: yes; interface: wwan0; address: 10.86.108.125; +wwan: wwan0 UP 10.86.108.125/30 +wwan up: 1 of 8 +routes: 1.1.1.1 dev wwan0 scope link src 10.86.108.125 ;10.10.22.3 dev wwan0 scope link src 10.86.108.125 ;10.86.108.124/30 dev wwan0 scope link src 10.86.108.125 ;77.88.8.8 dev wwan0 scope link src 10.86.108.125 ;89.109.251.21 dev wwan0 scope link src 10.86.108.125 ;89.109.251.22 dev wwan0 scope link src 10.86.108.125 ;89.109.251.23 dev wwan0 scope link src 10.86.108.125 ;194.186.191.1 dev wwan0 scope link src 10.86.108.125 ; +bam-dmux: suspended active_ms=11253 suspended_ms=103001 control=auto +usb0: 172.16.42.1/24 route-to-host: 172.16.42.2 dev usb0 src 172.16.42.1 +emmc: writes_completed=0 sectors_written=0 +time: 2026-10-02 23:04:17 UTC; set: 1790982164 21.69 REG:registered/attached qmi-dms; probes: 7 +dmesg-errs: 0 +~ # echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/auro +ra-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run +/aurora-wifi/hostapd.log +---wifi +service: idle +remoteproc: a204000.remoteproc running (/sys/class/remoteproc/remoteproc1) +crash=0 watchdog=0 fatal=0 +wlan0: wlan0: ssid aurora-b8f type AP channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz +hostapd: pid=2721 0 connects, 0 disconnects +[82.90] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[85.63] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[86.68] === AP ENABLED ssid=aurora-b8f ch=6 pid=2721 in 76.93s +---wifilog +[9.76] === WIFI START (wait for modem START OK/FAIL up to 300s) +[82.40] modem gate after 72s: [82.20] === START OK in 72.4s (wwan0 10.86.108.125/30, routes: 10.10.22.3 194.18 +[82.90] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[85.63] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[86.68] === AP ENABLED ssid=aurora-b8f ch=6 pid=2721 in 76.93s +[9.76] === WIFI START (wait for modem START OK/FAIL up to 300s) +[82.40] modem gate after 72s: [82.20] === START OK in 72.4s (wwan0 10.86.108.125/30, routes: 10.10.22.3 194.18 +[82.90] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[85.63] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[86.68] === AP ENABLED ssid=aurora-b8f ch=6 pid=2721 in 76.93s +=== service start rc=0 86.69 +---hostapdlog +1790982228.343416: VLAN: vlan_set_name_type: SET_VLAN_NAME_TYPE_CMD name_type=2 failed: No error information +1790982228.471078: wlan0: interface state UNINITIALIZED->ENABLED +1790982228.471123: wlan0: AP-ENABLED +~ # for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state) +"; done; iw dev +RP 4080000.remoteproc=running +RP a204000.remoteproc=running +phy#0 + Interface wlan0 + ifindex 12 + wdev 0x1 + addr + ssid aurora-b8f + type AP + channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz + txpower 20.00 dBm + multicast TXQ: + qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets + 0 0 0 0 0 0 0 0 0 +~ # echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora- +wifi|crash|watchdog" +---dmesg-wifi +[ 0.000000] OF: reserved mem: 0x000000008b600000..0x000000008bbfffff (6144 KiB) nomap non-reusable wcnss@8b600000 +[ 0.968838] remoteproc remoteproc0: releasing a204000.remoteproc +[ 0.996520] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.004997] a204000.remoteproc.iris: failed to get regulators +[ 1.017964] remoteproc remoteproc0: releasing a204000.remoteproc +[ 1.052715] qcom-wcnss-pil a204000.remoteproc: supply vddcx not found, using dummy regulator +[ 1.069877] remoteproc remoteproc1: a204000.remoteproc is available +[ 1.412563] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.415283] remoteproc remoteproc1: powering up a204000.remoteproc +[ 1.423459] remoteproc remoteproc1: Direct firmware load for wcnss.mdt failed with error -2 +[ 1.818893] cfg80211: Loading compiled-in X.509 certificates for regulatory database +[ 1.861144] cfg80211: failed to load regulatory.db +[ 9.910467] [aurora-wifi] === WIFI START (wait for modem START OK/FAIL up to 300s) +[ 82.551324] [aurora-wifi] modem gate after 72s: [82.20] === START OK in 72.4s (wwan0 10.86.108.125/30, routes: 10.10.22.3 194.18 +[ 82.574793] remoteproc remoteproc1: powering up a204000.remoteproc +[ 82.576346] remoteproc remoteproc1: Booting fw image wcnss.mdt, size 7260 +[ 83.036648] remoteproc remoteproc1: remote processor a204000.remoteproc is now up +[ 83.054841] [aurora-wifi] WCNSS /sys/class/remoteproc/remoteproc1 state=running +[ 83.158869] qcom_wcnss_ctrl remoteproc1:smd-edge.WCNSS_CTRL.-1.-1: WCNSS Version 1.5 1.2 +[ 83.182898] wcn36xx: mac address: +[ 85.715937] wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO' and CRM version 'CNSS-PR-1-4-2-c4-00084' +[ 85.730098] wcn36xx: firmware API 1.5.1.2, 41 stations, 2 bssids +[ 85.780989] [aurora-wifi] wlan0 up addr= (wcn36xx: firmware WLAN version 'WCN v2.0 RadioPhy vUnknown with 19.2MHz XO') +[ 86.837567] [aurora-wifi] === AP ENABLED ssid=aurora-b8f ch=6 pid=2721 in 76.93s +~ # echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 +---ping +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max = 50.071/94.370/217.949 ms +~ # echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/ +display.log; cat /run/aurora-display/service.log +---display +fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.78] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.79] backlight on -> bl_power=0 actual_brightness=1 +[7.86] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +[7.70] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[7.73] fbcon bound to fb0 +[7.78] display pipe already enabled (by fbcon takeover) - no unblank needed +[7.79] backlight on -> bl_power=0 actual_brightness=1 +[7.86] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +=== service start rc=0 7.86 +~ # echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtc +onsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0- +9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/ +" +---consoles +tty0 ttyMSM0 +/sys/class/vtconsole/vtcon0 0 (S) dummy device +/sys/class/vtconsole/vtcon1 1 (M) frame buffer device +/proc/1/fd/0 -> /dev/console +/proc/1121/fd/0 -> /dev/ttyMSM0 +/proc/626/fd/0 -> /dev/tty1 +~ # echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$" +---getty +aurora + 626 root getty 0 tty1 linux + 1121 root sh +~ # echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virt +ual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat / +sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms +---fb +crw------- 1 root root 226, 0 Oct 2 23:02 /dev/dri/card0 +crw------- 1 root root 29, 0 Oct 2 23:02 /dev/fb0 +fb0 name=panel-mipi-dbid +fb0 bits_per_pixel=16 +fb0 virtual_size=128,128 +fb0 stride=256 +enabled +On +~ # echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name) +; case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $ +r/num_users)";; esac; done +---regs +l17 enabled 2850000 users=1 +l6 enabled 1800000 users=1 +~ # echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$ +(cat /sys/class/backlight/backlight/$f)"; done +---bl +bl bl_power=0 +bl brightness=1 +bl actual_brightness=1 +~ # echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbco +n|Console: |frame buffer|backlight|aurora-display|l17" +---dmesg-display +[ 0.000000] Kernel command line: earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0 +[ 0.010996] Console: colour dummy device 80x25 +[ 0.717971] spi_qup 78b8000.spi: IN:block:16, fifo:64, OUT:block:16, fifo:64 +[ 1.069935] l17: Bringing 0uV into 2850000-2850000uV +[ 1.423536] [drm] Initialized panel-mipi-dbi 1.0.0 for spi0.0 on minor 0 +[ 1.771604] Console: switching to colour frame buffer device 21x16 +[ 1.813675] panel-mipi-dbi-spi spi0.0: [drm] fb0: panel-mipi-dbid frame buffer device +[ 7.856445] [aurora-display] start: fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=4 bl=1 +[ 7.878898] [aurora-display] fbcon bound to fb0 +[ 7.931007] [aurora-display] display pipe already enabled (by fbcon takeover) - no unblank needed +[ 7.944013] [aurora-display] backlight on -> bl_power=0 actual_brightness=1 +[ 8.010294] [aurora-display] === DISPLAY READY fb0=panel-mipi-dbid fbcon=bound conn=enabled/On l17_users=1 bl_power=0 bl=1 +~ # echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backligh +t|aurora-display" | grep -ciE "err|fail|timeout|warn" +---display-errors +0 +~ # echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat +---emmc +w=0 s=0 +~ # echo SNAP-END +SNAP-END +~ #  \ No newline at end of file diff --git a/tools/publish-sanitize.py b/tools/publish-sanitize.py index ccae412..5cc8b8b 100755 --- a/tools/publish-sanitize.py +++ b/tools/publish-sanitize.py @@ -51,6 +51,7 @@ INCLUDE = [r'^(README\.md|NOTES\.md|MANIFEST\.md|manifest\.tsv|firmware-fat-comp r'^b9/b9c/cache/([^/]+\.(md|sh|conf|txt)|SHA256SUMS)$', r'^b9/b9c/cache/emu/[^/]+\.(out|txt|sh)$', r'^b9/b9l/([^/]+\.(sh|md)|SHA256SUMS|lk2nd-23\.1-aurora-b9l\.patch|splash/mk-splash\.py)$', + r'^b9/b9l/persist/(B9L-write\.sh|B9L-rollback\.sh|b9l-boot\.sh|B9L-PERSIST-PLAN\.md|config-vs-current-lk1st\.diff|structure-vs-current\.txt|lk2nd-23\.1-aurora-b9l-lk1st\.patch|SHA256SUMS)$', r'^bootchain/(elfinfo\.txt|(boot|recovery)/(info\.txt|ramdisk\.list|ramdisk\.type))$', r'^(firehose|gpt)/SHA256SUMS$', r'^partitions/(SHA256SUMS|rawprogram0\.xml)$', r'^lk2nd-build/(BUILD\.md|WRITE-PLAN\.md|build\.log|build-lk1st\.log)$', @@ -66,7 +67,7 @@ INCLUDE = [r'^(README\.md|NOTES\.md|MANIFEST\.md|manifest\.tsv|firmware-fat-comp r'^logs/uart/[^/]+\.(log|txt)$', r'^logs/b6/all/(?!.*\.tar$)(?!b6/mm-|b6-try\d/(amd/)?mm-).*$', ] -NEVER = r'^logs/b6[jp]/.*(^|/)mm-[^/]*\.log$|^logs/b7/b7c/.*/uart[^/]*\.log$|^logs/b8/.*/uart[^/]*\.log$|^logs/b9/.*/uart[^/]*\.log$|^logs/b9/.*\.png$|^b9/b9[bc]/out/(?!SHA256SUMS$|overlay-b9[bc]\.list$|init\.diff$|panel-fw\.txt$|cmdline\.txt$)|(^|/)private/|^b8/b8f/out/(?!SHA256SUMS$|overlay-b8f\.list$)|(^|/)(dumps|partitions/.*\.bin|firmware-fat/)|\.(bin|img|mbn|pad\d*[KM]?|tar|tgz|gz|pcap|raw|apk|so|dtb|elf|mdt|b\d\d|dis)$|modemst|(^|/)(fsg|fsc|persist|userdata)\b' +NEVER = r'^logs/b6[jp]/.*(^|/)mm-[^/]*\.log$|^logs/b7/b7c/.*/uart[^/]*\.log$|^logs/b8/.*/uart[^/]*\.log$|^logs/b9/.*/uart[^/]*\.log$|^logs/b9/b9l/W/|^logs/b9/b9l/W-console\.txt$|^logs/b9/.*\.png$|^b9/b9[bc]/out/(?!SHA256SUMS$|overlay-b9[bc]\.list$|init\.diff$|panel-fw\.txt$|cmdline\.txt$)|(^|/)private/|^b8/b8f/out/(?!SHA256SUMS$|overlay-b8f\.list$)|(^|/)(dumps|partitions/.*\.bin|firmware-fat/)|\.(bin|img|mbn|pad\d*[KM]?|tar|tgz|gz|pcap|raw|apk|so|dtb|elf|mdt|b\d\d|dis)$|modemst|(^|/)(fsg|fsc|persist|userdata)\b(?!/)' inc = [re.compile(p) for p in INCLUDE]; nev = re.compile(NEVER) ids = []