From 1983248a5cd45646a9d7ab465a68c11f018c1604 Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 26 Jul 2026 21:43:14 +0900 Subject: [PATCH 01/53] chore(wm6): initialize port branch From 1eebae307ddeedf8d4c78b95b5a604d59b797183 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 22:09:04 +0900 Subject: [PATCH 02/53] feat(wm6): add iPAQ 212 VS2005 probe --- docs/WM6_IPAQ_212.md | 139 ++++++++ hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj | 151 +++++++++ hosts/wm6/vs2005/PocketJS.WM6.sln | 21 ++ hosts/wm6/vs2005/README.md | 36 +++ hosts/wm6/vs2005/src/main.cpp | 352 +++++++++++++++++++++ tests/wm6-project.test.ts | 32 ++ 6 files changed, 731 insertions(+) create mode 100644 docs/WM6_IPAQ_212.md create mode 100644 hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj create mode 100644 hosts/wm6/vs2005/PocketJS.WM6.sln create mode 100644 hosts/wm6/vs2005/README.md create mode 100644 hosts/wm6/vs2005/src/main.cpp create mode 100644 tests/wm6-project.test.ts diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md new file mode 100644 index 000000000..e028cacfb --- /dev/null +++ b/docs/WM6_IPAQ_212.md @@ -0,0 +1,139 @@ +# HP iPAQ 212 / Windows Mobile 6 port + +## Decision + +PocketJS should reach the iPAQ 212 through a native Windows Mobile host, built +by Visual C++ 2005 for the Windows Mobile 6 Professional SDK's ARMV4I target. +The repository now contains a first, deployable solution at +`hosts/wm6/vs2005/PocketJS.WM6.sln`. + +This is intentionally an experimental port, not a production target in +`POCKET_TARGETS`. Adding a target profile before the complete guest runtime and +its capabilities work on hardware would make build admission promise behavior +that the host does not deliver. + +## Why this target + +The HP iPAQ 212 belongs to the iPAQ 210 series. It has a 624 MHz Marvell +PXA310, 128 MB SDRAM, and a 4-inch 480×640 touch display, and ships with +Windows Mobile 6 Classic. Despite the device name, Microsoft's SDK mapping is: + +| Device class | Required WM6 SDK | +| --- | --- | +| Classic / Pocket PC | Professional SDK | +| Professional / Pocket PC Phone | Professional SDK | +| Standard / Smartphone | Standard SDK | + +The Visual Studio platform must therefore read +`Windows Mobile 6 Professional SDK (ARMV4I)`. ARMV4I is the SDK ABI and is +compatible with the PXA310; selecting an unofficial CPU-specific target would +make the binary less portable and would bypass the SDK libraries. + +## Honest feasibility boundary + +Creating a `.sln` is necessary but not sufficient for the existing guest +runtime: + +- the native PocketJS hosts embed QuickJS; +- the retained renderer lives in the Rust `engine/core` crate; +- Visual C++ 2005 predates modern C/C++ language features; +- stable Rust has no Windows CE 5.2 / ARMV4I target, and its modern + ARM-Windows object format cannot simply be linked into a VC8 Smart Device + executable; +- Windows Mobile 6 has neither a suitable browser runtime nor modern Web APIs, + so wrapping the web host is not a viable shortcut. + +The lowest-risk route is to validate each irreversible assumption on the real +device before porting the next layer. + +## Port gates + +### Gate 0 — native hardware probe (implemented) + +Build and run `hosts/wm6/vs2005/PocketJS.WM6.sln`. Accept this gate only when +the physical iPAQ shows: + +- `screen: 480 x 640` in portrait (or `640 x 480` after rotation); +- a steadily increasing frame count near the 33 ms timer interval; +- touch coordinates and DOWN/up state following the stylus; +- distinct hexadecimal key codes for the D-pad and centre button; +- stable free RAM after leaving the probe running for ten minutes. + +Record the ROM version, orientation, displayed memory values, D-pad key codes, +and whether the Back/Escape key exits. Emulator-only success is insufficient. + +### Gate 1 — toolchain-owned QuickJS probe + +Build QuickJS as C sources with the same VC8 ARMV4I compiler and expose only: + +1. runtime/context creation; +2. evaluation of an embedded UTF-8 script; +3. one native `print` callback; +4. explicit memory and stack limits; +5. pending-job draining and clean teardown. + +Do not begin with the full PocketJS bundle. QuickJS will need a dedicated +WinCE compatibility layer for time, allocation, file APIs, missing CRT calls, +and any compiler syntax unsupported by VC8. Pin the exact upstream revision +and keep those changes as a reviewable patch, as the Symbian toolchain already +does. Acceptance is 100 repeated create/evaluate/destroy cycles without +unbounded memory loss. + +### Gate 2 — renderer choice + +The existing Rust core cannot be treated as a linkable WM6 library. Choose one +of these paths only after Gate 1: + +1. **Guest-compatible host (preferred, larger):** port the backend-agnostic + retained UI and software rasterizer to portable C/C++03 behind the existing + `ui_*` ABI. Reuse `hosts/symbian/runtime/pocketjs_symbian_core.h` as the ABI + inventory, but create a platform-neutral header before sharing it. +2. **AOT-first host (smaller, different execution class):** adapt the C Pocket + Vapor runtime to VC8 and compile applications ahead of time. This can put + Pocket-authored UI on the device sooner, but it is not a PocketJS guest and + cannot be advertised as compatible with ordinary JS bundles. + +For the guest path, start with solid rectangles, clipping, text atlas blits, +and touch hit testing. Use a 240×320 or 480×272 logical viewport rendered to a +16-bit back buffer, then scale/letterbox to the VGA panel. A full 480×640 +32-bit double buffer consumes about 2.34 MiB before textures; RGB565 halves +that cost and is a better first hardware target. + +### Gate 3 — PocketJS HostOps + +After QuickJS and rendering work independently, bind the append-only HostOps +surface. Start with lifecycle, node creation, style/property batches, text, +tick/render, touch, and buttons. Then boot the smallest compiled fixture, not +the gallery or launcher. Add WM6 to the private development profiles only +after its manifest resolver rejects unsupported capabilities. + +### Gate 4 — packaging and production admission + +Produce a CAB only after direct EXE deployment is stable. The CAB should +install one application under `\Program Files\PocketJS`, add a Start Menu +shortcut, and uninstall without touching shared storage. Promote WM6 to +`POCKET_TARGETS` only when: + +- the stock host boots a real `.pocket` guest; +- viewport and input contracts have device tests; +- memory has a measured ceiling; +- suspend/resume and orientation behavior are defined; +- an iPAQ 212 hardware receipt identifies the ROM and binary hash. + +## Recommended build machine + +Use an isolated 32-bit Windows XP SP3 VM for the shortest path, with Visual +Studio 2005 SP1, the Smart Device C++ feature, and the WM6 Professional SDK +Refresh. ActiveSync 4.5 is the period-correct XP deployment path. A Vista VM +can use Windows Mobile Device Center plus Microsoft's VS2005 Vista updates, +but modern Windows hosts add driver and installer failure modes unrelated to +the port. + +Keep the VM offline except while obtaining original toolchain installers. +Never flash the iPAQ as part of this workflow; copying or debugging an +application does not require a ROM change. + +## Sources + +- [Microsoft: Windows Mobile 6 SDK Refresh download and SDK mapping](https://www.microsoft.com/en-us/download/details.aspx?id=6135) +- [HP: iPAQ 200 series product specifications](https://support.hp.com/tw-zh/document/c01419121) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj new file mode 100644 index 000000000..9a48cae29 --- /dev/null +++ b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hosts/wm6/vs2005/PocketJS.WM6.sln b/hosts/wm6/vs2005/PocketJS.WM6.sln new file mode 100644 index 000000000..04001d0cd --- /dev/null +++ b/hosts/wm6/vs2005/PocketJS.WM6.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocketJS.WM6.Probe", "PocketJS.WM6.Probe.vcproj", "{64AE683E-7663-4DFD-86FC-F8FE3D972C6D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Windows Mobile 6 Professional SDK (ARMV4I) = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + Release|Windows Mobile 6 Professional SDK (ARMV4I) = Release|Windows Mobile 6 Professional SDK (ARMV4I) + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md new file mode 100644 index 000000000..cc085342e --- /dev/null +++ b/hosts/wm6/vs2005/README.md @@ -0,0 +1,36 @@ +# PocketJS Windows Mobile 6 VS2005 probe + +This solution is the first hardware gate for the HP iPAQ 212 port. It is a +native, C++03-compatible Smart Device application rather than a desktop Win32 +project. The executable exercises the OS surface that a future PocketJS host +will need: + +- ARMV4I code generation for the PXA310 device; +- a fullscreen, dynamically sized native window; +- a double-buffered GDI presentation loop; +- stylus press, drag, and release coordinates; +- hardware key events; +- runtime screen and memory reporting. + +It does **not** embed QuickJS or the PocketJS retained UI core yet. A successful +run proves only the device/SDK/deployment layer; see +[`docs/WM6_IPAQ_212.md`](../../../docs/WM6_IPAQ_212.md) for the staged port. + +## Build + +1. Install Visual Studio 2005 Standard or higher with **Visual C++ Smart + Device Programmability**. +2. Install Visual Studio 2005 SP1 and the relevant Vista update if the build + VM uses Vista. +3. Install **Windows Mobile 6 Professional SDK Refresh**. Microsoft maps + Windows Mobile Classic/Pocket PC devices to this SDK; the similarly named + Standard SDK is for non-touchscreen Smartphones. +4. Open `PocketJS.WM6.sln`. +5. Select `Release | Windows Mobile 6 Professional SDK (ARMV4I)`. +6. Build, then deploy `bin\Release\PocketJS.WM6.Probe.exe` through Visual + Studio or copy it to the device and launch it. + +The probe has no MFC, ATL, .NET Compact Framework, or redistributable runtime +dependency. Press the device's Back/Escape key to exit. If that key is not +mapped by the ROM, stop it from **Settings > System > Memory > Running +Programs**. diff --git a/hosts/wm6/vs2005/src/main.cpp b/hosts/wm6/vs2005/src/main.cpp new file mode 100644 index 000000000..bbcc67268 --- /dev/null +++ b/hosts/wm6/vs2005/src/main.cpp @@ -0,0 +1,352 @@ +// PocketJS Windows Mobile 6 hardware probe. +// +// Keep this translation unit compatible with the Visual C++ 2005 compiler: +// no C++11, no desktop-only Win32 calls, and no dependency on MFC or ATL. + +#include +#include +#include + +namespace { + +const TCHAR kWindowClass[] = _T("PocketJS.WM6.Probe"); +const UINT_PTR kFrameTimer = 1; +const UINT kFramePeriodMs = 33; + +struct ProbeState { + DWORD startedAt; + DWORD frames; + DWORD lastFrameAt; + DWORD framePeriod; + DWORD lastKey; + POINT pointer; + BOOL pointerDown; + int width; + int height; + HDC backBuffer; + HBITMAP backBitmap; + HBITMAP backPreviousBitmap; + int backWidth; + int backHeight; +}; + +ProbeState g_state; + +int Clamp(int value, int minimum, int maximum) +{ + if (value < minimum) return minimum; + if (value > maximum) return maximum; + return value; +} + +void FillRectColor(HDC dc, int left, int top, int right, int bottom, COLORREF color) +{ + RECT rect; + HBRUSH brush; + rect.left = left; + rect.top = top; + rect.right = right; + rect.bottom = bottom; + brush = CreateSolidBrush(color); + if (brush != NULL) { + FillRect(dc, &rect, brush); + DeleteObject(brush); + } +} + +void ReleaseBackBuffer() +{ + if (g_state.backBuffer != NULL && g_state.backPreviousBitmap != NULL) { + SelectObject(g_state.backBuffer, g_state.backPreviousBitmap); + } + if (g_state.backBitmap != NULL) DeleteObject(g_state.backBitmap); + if (g_state.backBuffer != NULL) DeleteDC(g_state.backBuffer); + g_state.backBuffer = NULL; + g_state.backBitmap = NULL; + g_state.backPreviousBitmap = NULL; + g_state.backWidth = 0; + g_state.backHeight = 0; +} + +BOOL EnsureBackBuffer(HDC target, int width, int height) +{ + HDC nextBuffer; + HBITMAP nextBitmap; + HBITMAP nextPreviousBitmap; + + if ( + g_state.backBuffer != NULL && + g_state.backWidth == width && + g_state.backHeight == height + ) { + return TRUE; + } + + ReleaseBackBuffer(); + nextBuffer = CreateCompatibleDC(target); + nextBitmap = CreateCompatibleBitmap(target, width, height); + if (nextBuffer == NULL || nextBitmap == NULL) { + if (nextBitmap != NULL) DeleteObject(nextBitmap); + if (nextBuffer != NULL) DeleteDC(nextBuffer); + return FALSE; + } + nextPreviousBitmap = static_cast(SelectObject(nextBuffer, nextBitmap)); + if (nextPreviousBitmap == NULL) { + DeleteObject(nextBitmap); + DeleteDC(nextBuffer); + return FALSE; + } + + g_state.backBuffer = nextBuffer; + g_state.backBitmap = nextBitmap; + g_state.backPreviousBitmap = nextPreviousBitmap; + g_state.backWidth = width; + g_state.backHeight = height; + return TRUE; +} + +void DrawProbe(HWND window, HDC target) +{ + RECT client; + HDC back; + HFONT font; + HFONT previousFont; + MEMORYSTATUS memory; + TCHAR line[256]; + DWORD elapsed; + int width; + int height; + int stripe; + + GetClientRect(window, &client); + width = client.right - client.left; + height = client.bottom - client.top; + if (width <= 0 || height <= 0) return; + + if (!EnsureBackBuffer(target, width, height)) return; + back = g_state.backBuffer; + + FillRectColor(back, 0, 0, width, height, RGB(12, 16, 24)); + for (stripe = 0; stripe < 6; ++stripe) { + const int left = (width * stripe) / 6; + const int right = (width * (stripe + 1)) / 6; + FillRectColor( + back, + left, + 0, + right, + 12, + RGB(30 + stripe * 24, 170 - stripe * 12, 210 - stripe * 18) + ); + } + + font = CreateFont( + -16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, + DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, + DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, _T("Tahoma") + ); + previousFont = NULL; + if (font != NULL) { + previousFont = static_cast(SelectObject(back, font)); + } + SetBkMode(back, TRANSPARENT); + SetTextColor(back, RGB(238, 243, 250)); + + RECT textRect; + textRect.left = 18; + textRect.top = 28; + textRect.right = width - 18; + textRect.bottom = height - 18; + DrawText( + back, + _T("PocketJS / WM6 hardware probe\r\n") + _T("VS2005 + ARMV4I + native Win32"), + -1, + &textRect, + DT_LEFT | DT_TOP | DT_NOPREFIX + ); + + ZeroMemory(&memory, sizeof(memory)); + memory.dwLength = sizeof(memory); + GlobalMemoryStatus(&memory); + elapsed = GetTickCount() - g_state.startedAt; + + wsprintf( + line, + _T("screen: %d x %d\r\n") + _T("client: %d x %d\r\n") + _T("RAM free: %lu / %lu KB\r\n") + _T("frames: %lu last: %lu ms\r\n") + _T("key: 0x%02lX\r\n") + _T("touch: %ld, %ld %s\r\n") + _T("uptime: %lu ms"), + GetSystemMetrics(SM_CXSCREEN), + GetSystemMetrics(SM_CYSCREEN), + width, + height, + memory.dwAvailPhys / 1024, + memory.dwTotalPhys / 1024, + g_state.frames, + g_state.framePeriod, + g_state.lastKey, + g_state.pointer.x, + g_state.pointer.y, + g_state.pointerDown ? _T("DOWN") : _T("up"), + elapsed + ); + textRect.top = 92; + DrawText(back, line, -1, &textRect, DT_LEFT | DT_TOP | DT_NOPREFIX); + + const int markerX = Clamp(g_state.pointer.x, 0, width - 1); + const int markerY = Clamp(g_state.pointer.y, 0, height - 1); + const COLORREF markerColor = + g_state.pointerDown ? RGB(255, 194, 74) : RGB(90, 210, 255); + HPEN pen = CreatePen(PS_SOLID, 3, markerColor); + if (pen != NULL) { + HPEN previousPen = static_cast(SelectObject(back, pen)); + MoveToEx(back, markerX - 12, markerY, NULL); + LineTo(back, markerX + 13, markerY); + MoveToEx(back, markerX, markerY - 12, NULL); + LineTo(back, markerX, markerY + 13); + SelectObject(back, previousPen); + DeleteObject(pen); + } + + BitBlt(target, 0, 0, width, height, back, 0, 0, SRCCOPY); + + if (previousFont != NULL) SelectObject(back, previousFont); + if (font != NULL) DeleteObject(font); +} + +void UpdatePointer(LPARAM parameter, BOOL down) +{ + g_state.pointer.x = static_cast(LOWORD(parameter)); + g_state.pointer.y = static_cast(HIWORD(parameter)); + g_state.pointerDown = down; +} + +LRESULT CALLBACK WindowProcedure(HWND window, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) { + case WM_CREATE: + g_state.startedAt = GetTickCount(); + g_state.lastFrameAt = g_state.startedAt; + g_state.pointer.x = GetSystemMetrics(SM_CXSCREEN) / 2; + g_state.pointer.y = GetSystemMetrics(SM_CYSCREEN) / 2; + SetTimer(window, kFrameTimer, kFramePeriodMs, NULL); + return 0; + + case WM_SIZE: + g_state.width = LOWORD(lParam); + g_state.height = HIWORD(lParam); + InvalidateRect(window, NULL, FALSE); + return 0; + + case WM_TIMER: + if (wParam == kFrameTimer) { + const DWORD now = GetTickCount(); + g_state.framePeriod = now - g_state.lastFrameAt; + g_state.lastFrameAt = now; + ++g_state.frames; + InvalidateRect(window, NULL, FALSE); + } + return 0; + + case WM_KEYDOWN: + g_state.lastKey = static_cast(wParam); + if (wParam == VK_ESCAPE) { + DestroyWindow(window); + } else { + InvalidateRect(window, NULL, FALSE); + } + return 0; + + case WM_LBUTTONDOWN: + SetCapture(window); + UpdatePointer(lParam, TRUE); + InvalidateRect(window, NULL, FALSE); + return 0; + + case WM_MOUSEMOVE: + if ((wParam & MK_LBUTTON) != 0) { + UpdatePointer(lParam, TRUE); + InvalidateRect(window, NULL, FALSE); + } + return 0; + + case WM_LBUTTONUP: + ReleaseCapture(); + UpdatePointer(lParam, FALSE); + InvalidateRect(window, NULL, FALSE); + return 0; + + case WM_ERASEBKGND: + return 1; + + case WM_PAINT: + { + PAINTSTRUCT paint; + HDC dc = BeginPaint(window, &paint); + DrawProbe(window, dc); + EndPaint(window, &paint); + } + return 0; + + case WM_DESTROY: + KillTimer(window, kFrameTimer); + ReleaseBackBuffer(); + PostQuitMessage(0); + return 0; + } + return DefWindowProc(window, message, wParam, lParam); +} + +} // namespace + +int WINAPI WinMain(HINSTANCE instance, HINSTANCE, LPWSTR, int showCommand) +{ + WNDCLASS windowClass; + HWND window; + MSG message; + BOOL messageResult; + + ZeroMemory(&g_state, sizeof(g_state)); + ZeroMemory(&windowClass, sizeof(windowClass)); + windowClass.style = CS_HREDRAW | CS_VREDRAW; + windowClass.lpfnWndProc = WindowProcedure; + windowClass.hInstance = instance; + windowClass.hCursor = LoadCursor(NULL, IDC_ARROW); + windowClass.hbrBackground = static_cast(GetStockObject(BLACK_BRUSH)); + windowClass.lpszClassName = kWindowClass; + + if (!RegisterClass(&windowClass) && GetLastError() != ERROR_CLASS_ALREADY_EXISTS) { + return 1; + } + + SHInitExtraControls(); + window = CreateWindow( + kWindowClass, + _T("PocketJS WM6 Probe"), + WS_VISIBLE, + 0, + 0, + GetSystemMetrics(SM_CXSCREEN), + GetSystemMetrics(SM_CYSCREEN), + NULL, + NULL, + instance, + NULL + ); + if (window == NULL) return 2; + + SHFullScreen(window, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON | SHFS_HIDESTARTICON); + ShowWindow(window, showCommand); + UpdateWindow(window); + + while ((messageResult = GetMessage(&message, NULL, 0, 0)) > 0) { + TranslateMessage(&message); + DispatchMessage(&message); + } + if (messageResult < 0) return 3; + return static_cast(message.wParam); +} diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts new file mode 100644 index 000000000..649af5471 --- /dev/null +++ b/tests/wm6-project.test.ts @@ -0,0 +1,32 @@ +import { describe, expect, test } from "bun:test"; +import { readFile } from "node:fs/promises"; + +const root = new URL("../hosts/wm6/vs2005/", import.meta.url); + +describe("Windows Mobile 6 VS2005 probe", () => { + test("uses the Professional SDK ARMV4I smart-device platform", async () => { + const [solution, project] = await Promise.all([ + readFile(new URL("PocketJS.WM6.sln", root), "utf8"), + readFile(new URL("PocketJS.WM6.Probe.vcproj", root), "utf8"), + ]); + + expect(solution).toContain("Microsoft Visual Studio Solution File, Format Version 9.00"); + expect(solution).toContain("Windows Mobile 6 Professional SDK (ARMV4I)"); + expect(project).toContain('Version="8.00"'); + expect(project).toContain('Name="Windows Mobile 6 Professional SDK (ARMV4I)"'); + expect(project).toContain("/subsystem:windowsce,5.02"); + expect(project).toContain("aygshell.lib coredll.lib"); + expect(project).not.toContain("Windows Mobile 6 Standard SDK"); + }); + + test("keeps the probe compatible with the VC8 compiler", async () => { + const source = await readFile(new URL("src/main.cpp", root), "utf8"); + + expect(source).toContain("int WINAPI WinMain"); + expect(source).toContain("SHFullScreen"); + expect(source).toContain("WM_LBUTTONDOWN"); + expect(source).toContain("WM_KEYDOWN"); + expect(source).toContain("CreateCompatibleBitmap"); + expect(source).not.toMatch(/\b(auto|nullptr|constexpr|override)\b/); + }); +}); From 7102a21a085e75413ed86d792b294fc094c533ba Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 22:16:59 +0900 Subject: [PATCH 03/53] fix(wm6): support the VS2005 device SDK --- hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj | 2 ++ hosts/wm6/vs2005/src/main.cpp | 21 ++++++++++++++++----- tests/wm6-project.test.ts | 3 +++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj index 9a48cae29..1b160c86b 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj @@ -40,6 +40,7 @@ UsePrecompiledHeader="0" WarningLevel="4" WarnAsError="true" + DisableSpecificWarnings="4201" DebugInformationFormat="3" CompileAs="0" /> @@ -101,6 +102,7 @@ UsePrecompiledHeader="0" WarningLevel="4" WarnAsError="true" + DisableSpecificWarnings="4201" DebugInformationFormat="0" CompileAs="0" /> diff --git a/hosts/wm6/vs2005/src/main.cpp b/hosts/wm6/vs2005/src/main.cpp index bbcc67268..e94dbe43f 100644 --- a/hosts/wm6/vs2005/src/main.cpp +++ b/hosts/wm6/vs2005/src/main.cpp @@ -105,6 +105,21 @@ BOOL EnsureBackBuffer(HDC target, int width, int height) return TRUE; } +HFONT CreateProbeFont() +{ + LOGFONT description; + ZeroMemory(&description, sizeof(description)); + description.lfHeight = -16; + description.lfWeight = FW_NORMAL; + description.lfCharSet = DEFAULT_CHARSET; + description.lfOutPrecision = OUT_DEFAULT_PRECIS; + description.lfClipPrecision = CLIP_DEFAULT_PRECIS; + description.lfQuality = DEFAULT_QUALITY; + description.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; + lstrcpyn(description.lfFaceName, _T("Tahoma"), LF_FACESIZE); + return CreateFontIndirect(&description); +} + void DrawProbe(HWND window, HDC target) { RECT client; @@ -140,11 +155,7 @@ void DrawProbe(HWND window, HDC target) ); } - font = CreateFont( - -16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, - DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, - DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, _T("Tahoma") - ); + font = CreateProbeFont(); previousFont = NULL; if (font != NULL) { previousFont = static_cast(SelectObject(back, font)); diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 649af5471..b91843189 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -16,6 +16,7 @@ describe("Windows Mobile 6 VS2005 probe", () => { expect(project).toContain('Name="Windows Mobile 6 Professional SDK (ARMV4I)"'); expect(project).toContain("/subsystem:windowsce,5.02"); expect(project).toContain("aygshell.lib coredll.lib"); + expect(project.match(/DisableSpecificWarnings="4201"/g)).toHaveLength(2); expect(project).not.toContain("Windows Mobile 6 Standard SDK"); }); @@ -27,6 +28,8 @@ describe("Windows Mobile 6 VS2005 probe", () => { expect(source).toContain("WM_LBUTTONDOWN"); expect(source).toContain("WM_KEYDOWN"); expect(source).toContain("CreateCompatibleBitmap"); + expect(source).toContain("CreateFontIndirect"); + expect(source).not.toMatch(/\bCreateFont\s*\(/); expect(source).not.toMatch(/\b(auto|nullptr|constexpr|override)\b/); }); }); From 47223afd92f8d3c0803b45fcea75a8516ca1b666 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 22:26:47 +0900 Subject: [PATCH 04/53] fix(wm6): avoid unavailable string helpers --- hosts/wm6/vs2005/src/main.cpp | 11 ++++++++++- tests/wm6-project.test.ts | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hosts/wm6/vs2005/src/main.cpp b/hosts/wm6/vs2005/src/main.cpp index e94dbe43f..cf73ff90e 100644 --- a/hosts/wm6/vs2005/src/main.cpp +++ b/hosts/wm6/vs2005/src/main.cpp @@ -107,7 +107,9 @@ BOOL EnsureBackBuffer(HDC target, int width, int height) HFONT CreateProbeFont() { + const TCHAR faceName[] = _T("Tahoma"); LOGFONT description; + int index; ZeroMemory(&description, sizeof(description)); description.lfHeight = -16; description.lfWeight = FW_NORMAL; @@ -116,7 +118,14 @@ HFONT CreateProbeFont() description.lfClipPrecision = CLIP_DEFAULT_PRECIS; description.lfQuality = DEFAULT_QUALITY; description.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; - lstrcpyn(description.lfFaceName, _T("Tahoma"), LF_FACESIZE); + for ( + index = 0; + index < LF_FACESIZE - 1 && faceName[index] != _T('\0'); + ++index + ) { + description.lfFaceName[index] = faceName[index]; + } + description.lfFaceName[index] = _T('\0'); return CreateFontIndirect(&description); } diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index b91843189..2f205bd2b 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -30,6 +30,7 @@ describe("Windows Mobile 6 VS2005 probe", () => { expect(source).toContain("CreateCompatibleBitmap"); expect(source).toContain("CreateFontIndirect"); expect(source).not.toMatch(/\bCreateFont\s*\(/); + expect(source).not.toContain("lstrcpyn"); expect(source).not.toMatch(/\b(auto|nullptr|constexpr|override)\b/); }); }); From 0c8c84b01ba1b0a88cbb08ca8e32304d82c770d1 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 22:29:27 +0900 Subject: [PATCH 05/53] fix(wm6): let the linker infer ARM target --- hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj | 4 ++-- tests/wm6-project.test.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj index 1b160c86b..3b4be43e3 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj @@ -56,7 +56,7 @@ GenerateDebugInformation="true" ProgramDatabaseFile="$(OutDir)\PocketJS.WM6.Probe.pdb" SubSystem="0" - TargetMachine="1" + TargetMachine="0" /> @@ -119,7 +119,7 @@ SubSystem="0" OptimizeReferences="2" EnableCOMDATFolding="2" - TargetMachine="1" + TargetMachine="0" /> diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 2f205bd2b..e876b1e3a 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -17,6 +17,8 @@ describe("Windows Mobile 6 VS2005 probe", () => { expect(project).toContain("/subsystem:windowsce,5.02"); expect(project).toContain("aygshell.lib coredll.lib"); expect(project.match(/DisableSpecificWarnings="4201"/g)).toHaveLength(2); + expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); + expect(project).not.toContain('TargetMachine="1"'); expect(project).not.toContain("Windows Mobile 6 Standard SDK"); }); From 8463d211dcda271583c51b89d5d44d261936e689 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 22:32:28 +0900 Subject: [PATCH 06/53] fix(wm6): align deploy and debug paths --- hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj | 12 ++++++++---- tests/wm6-project.test.ts | 10 ++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj index 3b4be43e3..e592fcd1b 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj @@ -68,11 +68,13 @@ - + - + diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index e876b1e3a..69da303ef 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -19,6 +19,16 @@ describe("Windows Mobile 6 VS2005 probe", () => { expect(project.match(/DisableSpecificWarnings="4201"/g)).toHaveLength(2); expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); expect(project).not.toContain('TargetMachine="1"'); + expect( + project.match( + /RemoteDirectory="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.Probe"/g, + ), + ).toHaveLength(2); + expect( + project.match( + /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.Probe\\PocketJS\.WM6\.Probe\.exe"/g, + ), + ).toHaveLength(2); expect(project).not.toContain("Windows Mobile 6 Standard SDK"); }); From 5555d4a804eb1f7269855e3d9f15d242ff8ad525 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 23:04:57 +0900 Subject: [PATCH 07/53] fix(wm6): request the native VGA surface --- docs/WM6_IPAQ_212.md | 5 +++++ hosts/wm6/vs2005/.gitignore | 5 +++++ hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj | 3 +++ hosts/wm6/vs2005/README.md | 6 ++++++ hosts/wm6/vs2005/resources/probe.rc | 4 ++++ tests/wm6-project.test.ts | 5 ++++- 6 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 hosts/wm6/vs2005/.gitignore create mode 100644 hosts/wm6/vs2005/resources/probe.rc diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md index e028cacfb..fe8f896dc 100644 --- a/docs/WM6_IPAQ_212.md +++ b/docs/WM6_IPAQ_212.md @@ -62,6 +62,11 @@ the physical iPAQ shows: Record the ROM version, orientation, displayed memory values, D-pad key codes, and whether the Back/Escape key exits. Emulator-only success is insufficient. +Windows Mobile virtualizes a VGA device as `240×320` for legacy applications. +The probe embeds `HI_RES_AWARE CEUX { 1 }` to opt out of that compatibility +scaling. A QVGA result therefore means an older or incorrectly linked resource +was deployed; it is not the iPAQ panel's physical resolution. + ### Gate 1 — toolchain-owned QuickJS probe Build QuickJS as C sources with the same VC8 ARMV4I compiler and expose only: diff --git a/hosts/wm6/vs2005/.gitignore b/hosts/wm6/vs2005/.gitignore new file mode 100644 index 000000000..f48a6d225 --- /dev/null +++ b/hosts/wm6/vs2005/.gitignore @@ -0,0 +1,5 @@ +*.ncb +*.suo +*.user +bin/ +obj/ diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj index e592fcd1b..c7f0ddbc1 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.Probe.vcproj @@ -148,6 +148,9 @@ + + + diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index cc085342e..e118f6152 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -8,6 +8,7 @@ will need: - ARMV4I code generation for the PXA310 device; - a fullscreen, dynamically sized native window; - a double-buffered GDI presentation loop; +- a `HI_RES_AWARE` executable resource so VGA devices expose native pixels; - stylus press, drag, and release coordinates; - hardware key events; - runtime screen and memory reporting. @@ -34,3 +35,8 @@ The probe has no MFC, ATL, .NET Compact Framework, or redistributable runtime dependency. Press the device's Back/Escape key to exit. If that key is not mapped by the ROM, stop it from **Settings > System > Memory > Running Programs**. + +If the probe reports `240 x 320` on a 480×640 iPAQ, the device is running an +older executable without the `HI_RES_AWARE` resource. Clean the solution, +rebuild it, and confirm that `resources\probe.rc` appears in the build log +before redeploying. diff --git a/hosts/wm6/vs2005/resources/probe.rc b/hosts/wm6/vs2005/resources/probe.rc new file mode 100644 index 000000000..f55ecb0be --- /dev/null +++ b/hosts/wm6/vs2005/resources/probe.rc @@ -0,0 +1,4 @@ +// Tell Windows Mobile that the application handles the device's native DPI. +// Without this resource, VGA Pocket PCs expose a virtual 240x320 QVGA screen +// and scale the application's output for backward compatibility. +HI_RES_AWARE CEUX { 1 } diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 69da303ef..c88663be5 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -5,9 +5,10 @@ const root = new URL("../hosts/wm6/vs2005/", import.meta.url); describe("Windows Mobile 6 VS2005 probe", () => { test("uses the Professional SDK ARMV4I smart-device platform", async () => { - const [solution, project] = await Promise.all([ + const [solution, project, resource] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), readFile(new URL("PocketJS.WM6.Probe.vcproj", root), "utf8"), + readFile(new URL("resources/probe.rc", root), "utf8"), ]); expect(solution).toContain("Microsoft Visual Studio Solution File, Format Version 9.00"); @@ -30,6 +31,8 @@ describe("Windows Mobile 6 VS2005 probe", () => { ), ).toHaveLength(2); expect(project).not.toContain("Windows Mobile 6 Standard SDK"); + expect(project).toContain('RelativePath=".\\resources\\probe.rc"'); + expect(resource).toMatch(/\bHI_RES_AWARE\s+CEUX\s+\{\s*1\s*\}/); }); test("keeps the probe compatible with the VC8 compiler", async () => { From df6cf8e95098cc275551420bac374862f90c7dea Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 23:32:14 +0900 Subject: [PATCH 08/53] feat(wm6): add Pocket Vapor AOT demo --- docs/WM6_IPAQ_212.md | 32 +- hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj | 164 ++++++++++ hosts/wm6/vs2005/PocketJS.WM6.sln | 8 + hosts/wm6/vs2005/README.md | 52 ++- hosts/wm6/vs2005/generated/todo.gba.c | 364 +++++++++++++++++++++ hosts/wm6/vs2005/src/vapor_main.c | 344 +++++++++++++++++++ tests/wm6-project.test.ts | 38 ++- 7 files changed, 985 insertions(+), 17 deletions(-) create mode 100644 hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj create mode 100644 hosts/wm6/vs2005/generated/todo.gba.c create mode 100644 hosts/wm6/vs2005/src/vapor_main.c diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md index fe8f896dc..2dc8d498c 100644 --- a/docs/WM6_IPAQ_212.md +++ b/docs/WM6_IPAQ_212.md @@ -84,6 +84,29 @@ and keep those changes as a reviewable patch, as the Symbian toolchain already does. Acceptance is 100 repeated create/evaluate/destroy cycles without unbounded memory loss. +The repository-pinned QuickJS revision cannot be compiled directly by VC8: it +uses C99 syntax, flexible arrays, GCC builtins/attributes, compound literals, +and designated initializers. Compiling it as C++ is also not a shortcut because +the C sources rely on implicit `void *` conversions and C linkage rules. Gate 1 +therefore remains open and needs either a maintained VC8 compatibility patch or +a separately validated GNU WinCE toolchain. + +### AOT milestone — Pocket Vapor Todo (implemented) + +`PocketJS.WM6.Vapor` is an independent application project in the same VS2005 +solution. It links: + +- the target-independent `vapor/runtime/vapor_core.c`; +- deterministic C generated from `vapor/examples/todo/todo.tsx`; +- a WM6 GDI cell-grid host with D-pad, centre, Back, soft-key, and stylus + mappings. + +This milestone deliberately follows the AOT-first option described below. It +proves that Pocket-authored reactive UI can execute on the SDK ABI without a +heap or JavaScript engine, and it gives the real iPAQ a useful memory/input +test while QuickJS compatibility work continues. It must not be described as +ordinary PocketJS guest compatibility. + ### Gate 2 — renderer choice The existing Rust core cannot be treated as a linkable WM6 library. Choose one @@ -93,10 +116,11 @@ of these paths only after Gate 1: retained UI and software rasterizer to portable C/C++03 behind the existing `ui_*` ABI. Reuse `hosts/symbian/runtime/pocketjs_symbian_core.h` as the ABI inventory, but create a platform-neutral header before sharing it. -2. **AOT-first host (smaller, different execution class):** adapt the C Pocket - Vapor runtime to VC8 and compile applications ahead of time. This can put - Pocket-authored UI on the device sooner, but it is not a PocketJS guest and - cannot be advertised as compatible with ordinary JS bundles. +2. **AOT-first host (implemented as an early milestone, different execution + class):** adapt the C Pocket Vapor runtime to VC8 and compile applications + ahead of time. This puts Pocket-authored UI on the device sooner, but it is + not a PocketJS guest and cannot be advertised as compatible with ordinary + JS bundles. For the guest path, start with solid rectangles, clipping, text atlas blits, and touch hit testing. Use a 240×320 or 480×272 logical viewport rendered to a diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj new file mode 100644 index 000000000..bedca3480 --- /dev/null +++ b/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hosts/wm6/vs2005/PocketJS.WM6.sln b/hosts/wm6/vs2005/PocketJS.WM6.sln index 04001d0cd..c10b19912 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.sln +++ b/hosts/wm6/vs2005/PocketJS.WM6.sln @@ -2,6 +2,8 @@ Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocketJS.WM6.Probe", "PocketJS.WM6.Probe.vcproj", "{64AE683E-7663-4DFD-86FC-F8FE3D972C6D}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocketJS.WM6.Vapor", "PocketJS.WM6.Vapor.vcproj", "{970E99AC-1918-451D-A515-9C23D9C3AC65}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Windows Mobile 6 Professional SDK (ARMV4I) = Debug|Windows Mobile 6 Professional SDK (ARMV4I) @@ -14,6 +16,12 @@ Global {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I) {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) {64AE683E-7663-4DFD-86FC-F8FE3D972C6D}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {970E99AC-1918-451D-A515-9C23D9C3AC65}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {970E99AC-1918-451D-A515-9C23D9C3AC65}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {970E99AC-1918-451D-A515-9C23D9C3AC65}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {970E99AC-1918-451D-A515-9C23D9C3AC65}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {970E99AC-1918-451D-A515-9C23D9C3AC65}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {970E99AC-1918-451D-A515-9C23D9C3AC65}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index e118f6152..a25c5674e 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -1,8 +1,16 @@ -# PocketJS Windows Mobile 6 VS2005 probe +# PocketJS Windows Mobile 6 VS2005 projects -This solution is the first hardware gate for the HP iPAQ 212 port. It is a -native, C++03-compatible Smart Device application rather than a desktop Win32 -project. The executable exercises the OS surface that a future PocketJS host +This solution contains two native Smart Device applications for the HP iPAQ +212 port: + +- `PocketJS.WM6.Probe` is the first hardware gate. It exercises the screen, + GDI, stylus, keys, timer, memory reporting, and deployment path. +- `PocketJS.WM6.Vapor` runs the repository's Pocket Vapor Todo component after + ahead-of-time compilation to portable C. It is the first application UI on + WM6, but it is not a QuickJS host and cannot load ordinary PocketJS bundles. + +Both are VC8-compatible Smart Device projects rather than desktop Win32 +projects. The probe exercises the OS surface that a future full PocketJS host will need: - ARMV4I code generation for the PXA310 device; @@ -13,8 +21,8 @@ will need: - hardware key events; - runtime screen and memory reporting. -It does **not** embed QuickJS or the PocketJS retained UI core yet. A successful -run proves only the device/SDK/deployment layer; see +Neither executable embeds QuickJS or the PocketJS retained UI core yet. A +successful probe run proves only the device/SDK/deployment layer; see [`docs/WM6_IPAQ_212.md`](../../../docs/WM6_IPAQ_212.md) for the staged port. ## Build @@ -28,13 +36,33 @@ run proves only the device/SDK/deployment layer; see Standard SDK is for non-touchscreen Smartphones. 4. Open `PocketJS.WM6.sln`. 5. Select `Release | Windows Mobile 6 Professional SDK (ARMV4I)`. -6. Build, then deploy `bin\Release\PocketJS.WM6.Probe.exe` through Visual - Studio or copy it to the device and launch it. +6. Right-click the project you want to run and choose **Set as StartUp + Project**. +7. Build and deploy through Visual Studio, or copy the corresponding executable + from `bin\Release` to the device. + +The applications have no MFC, ATL, .NET Compact Framework, or redistributable +runtime dependency. + +## Pocket Vapor Todo controls + +The WM6 host maps the D-pad directly. Centre/Enter is A, Back is B, and the two +soft keys are Select and Start. On an emulator without those buttons, stylus +taps provide a minimal fallback: + +- top third: Up; +- middle third: Down; +- bottom-left: A; +- bottom-right: B. + +The Todo component itself uses Up/Down to select, A to toggle, B to delete, +Right to change the filter, and Start to open the editor. The checked-in +`generated\todo.gba.c` is deterministic output from +`vapor\examples\todo\todo.tsx`; the WM6 host reuses its 30×20 logical grid and +RGB555 style table. -The probe has no MFC, ATL, .NET Compact Framework, or redistributable runtime -dependency. Press the device's Back/Escape key to exit. If that key is not -mapped by the ROM, stop it from **Settings > System > Memory > Running -Programs**. +Press an unmapped Back/Escape key to exit. If the ROM consumes that key, stop +the application from **Settings > System > Memory > Running Programs**. If the probe reports `240 x 320` on a 480×640 iPAQ, the device is running an older executable without the `HI_RES_AWARE` resource. Clean the solution, diff --git a/hosts/wm6/vs2005/generated/todo.gba.c b/hosts/wm6/vs2005/generated/todo.gba.c new file mode 100644 index 000000000..9c4c49526 --- /dev/null +++ b/hosts/wm6/vs2005/generated/todo.gba.c @@ -0,0 +1,364 @@ +/* gen_app.c — GENERATED by vapor/compiler/compile.ts. DO NOT EDIT. */ +/* target: gba (30x20) */ +#define VP_GRID_W 30 +#define VP_GRID_H 20 +#define VP_STR_CAP 24 +#define VP_VIEW_CAP 32 +#include "vapor.h" + +static inline s32 vp_max(s32 a, s32 b) { return a > b ? a : b; } +static inline s32 vp_min(s32 a, s32 b) { return a < b ? a : b; } +static inline const char *vp_cstr_at(const char *const *arr, s32 n, s32 i) { return (i >= 0 && i < n) ? arr[i] : (const char *)""; } +static inline char vp_char_at(const char *s, s32 n, s32 i) { return (i >= 0 && i < n) ? s[i] : ' '; } + +typedef struct { vp_sb text; u8 done; } rec_todo; + +static rec_todo g_todos[32]; static u8 g_todos_len; +static s32 g_cursor; +static s32 g_filter; +static s32 g_editing; +static vp_sb g_draft; +static s32 g_glyph; +static u32 vp_dirty; static u32 c_valid; +static const u32 C_INVAL[6] = { 0x1fu, 0x1cu, 0x1du, 0x0u, 0x0u, 0x0u }; +static void vp_mark(u8 refIdx) { vp_dirty |= vp_bit32[refIdx]; c_valid &= ~C_INVAL[refIdx]; } + +static const char S0[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"; +static const char S1[] = "POCKET VAPOR TODO"; +static const char S2[] = " LEFT / "; +static const char S3[] = ">"; +static const char S4[] = " "; +static const char S5[] = "["; +static const char S6[] = "X"; +static const char S7[] = "] "; +static const char S8[] = "NOTHING HERE"; +static const char S9[] = "NEW: "; +static const char S10[] = "]"; +static const char S11[] = "A:PUT B:DEL ST:SAVE SE:QUIT"; +static const char S12[] = "A:DONE B:DEL R:FILT ST:NEW"; +static const char S13[] = "SHIP POCKET VAPOR"; +static const char S14[] = "WRITE THE COMPILER"; +static const char S15[] = "RUN ON DEVICE"; + +static vp_view c_filtered_v; +static vp_view vt5; +static s32 c_remaining_v; +static rec_todo * c_current_v; +static s32 c_scroll_v; +static vp_view c_visible_v; +static const char *const A_FILTERS[3] = { "ALL", "ACTIVE", "DONE" }; + +static void c_filtered_update(void) { + if ((g_filter == 0)) { + { u8 i0; c_filtered_v.len = 0; + for (i0 = 0; i0 < g_todos_len; i0++) c_filtered_v.idx[c_filtered_v.len++] = i0; + } + } else { + if ((g_filter == 1)) { + { u8 i1; c_filtered_v.len = 0; + for (i1 = 0; i1 < g_todos_len; i1++) { + rec_todo *p2 = g_todos + (u16)(i1); + if (!p2->done) c_filtered_v.idx[c_filtered_v.len++] = i1; + } + } + } else { + { u8 i3; c_filtered_v.len = 0; + for (i3 = 0; i3 < g_todos_len; i3++) { + rec_todo *p4 = g_todos + (u16)(i3); + if (p4->done) c_filtered_v.idx[c_filtered_v.len++] = i3; + } + } + } + } +} +static const vp_view *c_filtered(void) { + if (!(c_valid & 1u)) { c_filtered_update(); c_valid |= 1u; } + return &c_filtered_v; +} + +static void c_remaining_update(void) { + { u8 i6; vt5.len = 0; + for (i6 = 0; i6 < g_todos_len; i6++) { + rec_todo *p7 = g_todos + (u16)(i6); + if (!p7->done) vt5.idx[vt5.len++] = i6; + } + } + c_remaining_v = (s32)vt5.len; +} +static s32 c_remaining(void) { + if (!(c_valid & 2u)) { c_remaining_update(); c_valid |= 2u; } + return c_remaining_v; +} + +static void c_current_update(void) { + const vp_view *v8; + rec_todo *e9; + v8 = c_filtered(); + e9 = (g_cursor >= 0 && g_cursor < (s32)v8->len) ? g_todos + (u16)(v8->idx[(u8)(g_cursor)]) : 0; + c_current_v = e9; +} +static rec_todo *c_current(void) { + if (!(c_valid & 4u)) { c_current_update(); c_valid |= 4u; } + return c_current_v; +} + +static void c_scroll_update(void) { + const vp_view *v10; + v10 = c_filtered(); + c_scroll_v = vp_max(0, vp_min(((g_cursor - 12) + 1), ((s32)v10->len - 12))); +} +static s32 c_scroll(void) { + if (!(c_valid & 8u)) { c_scroll_update(); c_valid |= 8u; } + return c_scroll_v; +} + +static void c_visible_update(void) { + const vp_view *v11; + v11 = c_filtered(); + { s32 s12 = c_scroll(), t13 = (c_scroll() + 12); u8 i14; + if (s12 < 0) s12 = 0; + if (t13 > (s32)v11->len) t13 = (s32)v11->len; + c_visible_v.len = 0; + for (i14 = (u8)s12; (s32)i14 < t13; i14++) c_visible_v.idx[c_visible_v.len++] = v11->idx[i14]; + } +} +static const vp_view *c_visible(void) { + if (!(c_valid & 16u)) { c_visible_update(); c_valid |= 16u; } + return &c_visible_v; +} + +static void fn_moveCursor(s32 p_d) { + const vp_view *v15; + v15 = c_filtered(); + { s32 nv16 = vp_max(0, vp_min((g_cursor + p_d), ((s32)v15->len - 1))); if (g_cursor != nv16) { g_cursor = nv16; vp_mark(1); } } +} + +static void km_listKeys_6(void) { + fn_moveCursor((-1)); +} + +static void km_listKeys_7(void) { + fn_moveCursor(1); +} + +static void fn_toggleDone(void) { + rec_todo *l_t_17; + l_t_17 = c_current(); + if ((l_t_17 != 0)) { + { u8 fv18 = (u8)(!l_t_17->done); if (l_t_17->done != fv18) { l_t_17->done = fv18; vp_mark(0); } } + } + fn_moveCursor(0); +} + +static void fn_deleteCurrent(void) { + rec_todo *l_t_19; + l_t_19 = c_current(); + if ((l_t_19 != 0)) { + { vp_view nv20; u8 k21; + { u8 i22; nv20.len = 0; + for (i22 = 0; i22 < g_todos_len; i22++) { + rec_todo *p23 = g_todos + (u16)(i22); + if ((p23 != l_t_19)) nv20.idx[nv20.len++] = i22; + } + } + for (k21 = 0; k21 < nv20.len; k21++) *(g_todos + (u16)k21) = *(g_todos + (u16)(nv20.idx[k21])); + g_todos_len = nv20.len; + vp_mark(0); /* new array identity always triggers */ + } + } + fn_moveCursor(0); +} + +static void fn_cycleFilter(void) { + { s32 nv24 = ((g_filter + 1) % 3); if (g_filter != nv24) { g_filter = nv24; vp_mark(2); } } + fn_moveCursor(0); +} + +static void fn_clearDone(void) { + { vp_view nv25; u8 k26; + { u8 i27; nv25.len = 0; + for (i27 = 0; i27 < g_todos_len; i27++) { + rec_todo *p28 = g_todos + (u16)(i27); + if (!p28->done) nv25.idx[nv25.len++] = i27; + } + } + for (k26 = 0; k26 < nv25.len; k26++) *(g_todos + (u16)k26) = *(g_todos + (u16)(nv25.idx[k26])); + g_todos_len = nv25.len; + vp_mark(0); /* new array identity always triggers */ + } + fn_moveCursor(0); +} + +static void fn_openEditor(void) { + { s32 nv29 = 1; if (g_editing != nv29) { g_editing = nv29; vp_mark(3); } } + { s32 nv30 = 0; if (g_glyph != nv30) { g_glyph = nv30; vp_mark(5); } } +} + +static void fn_scrubGlyph(s32 p_d) { + { s32 nv31 = (((g_glyph + p_d) + 37) % 37); if (g_glyph != nv31) { g_glyph = nv31; vp_mark(5); } } +} + +static void km_editKeys_5(void) { + fn_scrubGlyph((-1)); +} + +static void km_editKeys_4(void) { + fn_scrubGlyph(1); +} + +static void fn_putGlyph(void) { + if (((s32)(&g_draft)->len < 20)) { + { vp_sb sb32; vp_sb_reset(&sb32); + vp_sb_sb(&sb32, &g_draft); + vp_sb_ch(&sb32, vp_char_at(S0, 37, g_glyph)); + if (vp_sb_assign(&g_draft, &sb32)) vp_mark(4); + } + } +} + +static void km_editKeys_1(void) { + { vp_sb sb33; vp_sb_reset(&sb33); + { vp_sb sl; vp_sb_slice(&sl, &g_draft, 0, (-1)); vp_sb_sb(&sb33, &sl); } + if (vp_sb_assign(&g_draft, &sb33)) vp_mark(4); + } +} + +static void fn_closeEditor(void) { + { vp_sb sb35; vp_sb_reset(&sb35); + if (vp_sb_assign(&g_draft, &sb35)) vp_mark(4); + } + { s32 nv36 = 0; if (g_editing != nv36) { g_editing = nv36; vp_mark(3); } } +} + +static void fn_saveDraft(void) { + if (((s32)(&g_draft)->len > 0)) { + if (g_todos_len < 32) { + rec_todo *np = g_todos + (u16)(g_todos_len++); + { vp_sb sb34; vp_sb_reset(&sb34); + vp_sb_sb(&sb34, &g_draft); + vp_sb_assign(&np->text, &sb34); } + np->done = 0; + } else { vp_tripwires |= VP_TRIP_POOL_FULL; } + vp_mark(0); + fn_closeEditor(); + } +} + +static void eff_0(void) { + vp_row_clear(1, 2); + vp_ln_reset(); + vp_ln_int(c_remaining()); + vp_ln_str(S2); + vp_ln_str(vp_cstr_at(A_FILTERS, 3, g_filter)); + vp_ln_commit(1, 1, (u8)(2), (u8)(0)); +} + +static void eff_1(void) { + const vp_view *v39; + const vp_view *v43; + vp_row_clear(3, 15); + v39 = c_visible(); + { u8 i40; + for (i40 = 0; i40 < v39->len; i40++) { + rec_todo *t41 = g_todos + (u16)(v39->idx[i40]); + { u8 y42 = (u8)((3 + (s32)i40)); + if (y42 < 20) { + vp_ln_reset(); + vp_ln_str(((t41 == c_current()) ? S3 : S4)); + vp_ln_str(S5); + vp_ln_str((t41->done ? S6 : S4)); + vp_ln_str(S7); + vp_ln_sb(&t41->text); + vp_ln_commit(y42, 1, (u8)(((t41 == c_current()) ? 3 : (t41->done ? 4 : 0))), (u8)(0)); + } } + } } + v43 = c_filtered(); + if (((s32)v43->len == 0)) { + vp_ln_reset(); + vp_ln_str(S8); + vp_ln_commit(3, 1, (u8)(4), (u8)(0)); + } +} + +static void eff_2(void) { + vp_row_clear(17, 18); + if (g_editing) { + vp_ln_reset(); + vp_ln_str(S9); + vp_ln_sb(&g_draft); + vp_ln_str(S5); + vp_ln_ch(vp_char_at(S0, 37, g_glyph)); + vp_ln_str(S10); + vp_ln_commit(17, 1, (u8)(5), (u8)(0)); + } +} + +static void eff_3(void) { + vp_row_clear(19, 20); + vp_ln_reset(); + vp_ln_str((g_editing ? S11 : S12)); + vp_ln_commit(19, 1, (u8)(4), (u8)(0)); +} + +static void (*const KM_listKeys[10])(void) = { fn_toggleDone, fn_deleteCurrent, fn_clearDone, fn_openEditor, fn_cycleFilter, 0, km_listKeys_6, km_listKeys_7, fn_cycleFilter, 0 }; +static void (*const KM_editKeys[10])(void) = { fn_putGlyph, km_editKeys_1, fn_closeEditor, fn_saveDraft, km_editKeys_4, km_editKeys_5, 0, 0, 0, 0 }; + +void app_on_button(u8 b) { + s32 b_arg = (s32)b; + { void (*const *km37)(void) = (g_editing ? KM_editKeys : KM_listKeys); s32 bi38 = b_arg; + if (bi38 >= 0 && bi38 < 10 && km37[bi38]) km37[bi38](); } +} + +u8 app_flush(void) { + if (!vp_dirty) return 0; + if (vp_dirty & 0x5u) eff_0(); + if (vp_dirty & 0x7u) eff_1(); + if (vp_dirty & 0x38u) eff_2(); + if (vp_dirty & 0x8u) eff_3(); + vp_dirty = 0; + return 1; +} + +void app_init(void) { + g_todos_len = 3; + vp_sb_reset(&g_todos[0].text); + vp_sb_str(&g_todos[0].text, S13); + g_todos[0].done = 0; + vp_sb_reset(&g_todos[1].text); + vp_sb_str(&g_todos[1].text, S14); + g_todos[1].done = 1; + vp_sb_reset(&g_todos[2].text); + vp_sb_str(&g_todos[2].text, S15); + g_todos[2].done = 0; + g_cursor = 0; + g_filter = 0; + g_editing = 0; + vp_sb_reset(&g_draft); + g_glyph = 0; + vp_dirty = 0; c_valid = 0; + vp_ln_reset(); + vp_ln_str(S1); + vp_ln_commit(0, 0, (u8)(1), (u8)(1)); + eff_0(); + eff_1(); + eff_2(); + eff_3(); +} + +u16 app_debug_state(volatile u8 *out) { + *(volatile s32 *)(out + 0) = (s32)g_todos_len; + *(volatile s32 *)(out + 4) = (s32)g_cursor; + *(volatile s32 *)(out + 8) = (s32)g_filter; + *(volatile s32 *)(out + 12) = (s32)g_editing; + out[16] = g_draft.len; + { u8 i; for (i = 0; i < VP_STR_CAP; i++) out[16 + 1 + i] = (u8)g_draft.b[i]; } + *(volatile s32 *)(out + 44) = (s32)g_glyph; + return 48; +} + +const u8 vp_font_tiles[] = { 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,18,33,34,34,17,17,34,34,17,17,34,34,18,33,34,34,18,33,34,34,34,34,34,34,18,33,34,34,34,34,34,18,33,17,34,18,33,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,18,33,17,34,18,33,17,34,17,17,17,33,18,33,17,34,17,17,17,33,18,33,17,34,18,33,17,34,34,34,34,34,34,17,34,34,18,17,17,34,17,34,34,34,18,17,33,34,34,34,17,34,17,17,33,34,34,17,34,34,34,34,34,34,34,34,34,34,17,34,18,33,17,34,17,34,34,18,33,34,34,17,34,34,18,33,18,33,17,34,18,33,34,34,34,34,34,17,33,34,18,33,17,34,34,17,33,34,18,17,18,33,17,18,17,34,17,34,17,34,18,17,18,33,34,34,34,34,18,33,34,34,18,33,34,34,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,18,33,34,34,17,34,34,18,33,34,34,18,33,34,34,18,33,34,34,34,17,34,34,34,18,33,34,34,34,34,34,18,33,34,34,34,17,34,34,34,18,33,34,34,18,33,34,34,18,33,34,34,17,34,34,18,33,34,34,34,34,34,34,34,34,34,34,18,33,18,33,34,17,17,34,17,17,17,17,34,17,17,34,18,33,18,33,34,34,34,34,34,34,34,34,34,34,34,34,34,17,34,34,34,17,34,34,17,17,17,34,34,17,34,34,34,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,17,34,34,34,17,34,34,18,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,17,17,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,17,34,34,34,17,34,34,34,34,34,34,34,34,18,33,34,34,17,34,34,18,33,34,34,17,34,34,18,33,34,34,17,34,34,34,33,34,34,34,34,34,34,34,18,17,17,34,17,34,18,33,17,34,17,33,17,18,17,33,17,17,18,33,17,33,18,33,18,17,17,34,34,34,34,34,34,17,34,34,18,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,17,17,17,34,34,34,34,34,18,17,33,34,17,34,17,34,34,34,17,34,34,17,33,34,18,33,34,34,17,34,17,34,17,17,17,34,34,34,34,34,18,17,33,34,17,34,17,34,34,34,17,34,34,17,33,34,34,34,17,34,17,34,17,34,18,17,33,34,34,34,34,34,34,18,17,34,34,17,17,34,18,33,17,34,17,34,17,34,17,17,17,33,34,34,17,34,34,18,17,33,34,34,34,34,17,17,17,34,17,34,34,34,17,17,33,34,34,34,17,34,34,34,17,34,17,34,17,34,18,17,33,34,34,34,34,34,34,17,33,34,18,33,34,34,17,34,34,34,17,17,33,34,17,34,17,34,17,34,17,34,18,17,33,34,34,34,34,34,17,17,17,34,17,34,17,34,34,34,17,34,34,18,33,34,34,17,34,34,34,17,34,34,34,17,34,34,34,34,34,34,18,17,33,34,17,34,17,34,17,34,17,34,18,17,33,34,17,34,17,34,17,34,17,34,18,17,33,34,34,34,34,34,18,17,33,34,17,34,17,34,17,34,17,34,18,17,17,34,34,34,17,34,34,18,33,34,18,17,34,34,34,34,34,34,34,34,34,34,34,17,34,34,34,17,34,34,34,34,34,34,34,34,34,34,34,17,34,34,34,17,34,34,34,34,34,34,34,34,34,34,34,17,34,34,34,17,34,34,34,34,34,34,34,34,34,34,34,17,34,34,34,17,34,34,18,33,34,34,34,18,33,34,34,17,34,34,18,33,34,34,17,34,34,34,18,33,34,34,34,17,34,34,34,18,33,34,34,34,34,34,34,34,34,34,34,34,34,34,17,17,17,34,34,34,34,34,34,34,34,34,17,17,17,34,34,34,34,34,34,34,34,34,18,33,34,34,34,17,34,34,34,18,33,34,34,34,17,34,34,18,33,34,34,17,34,34,18,33,34,34,34,34,34,34,18,17,33,34,17,34,17,34,34,34,17,34,34,18,33,34,34,17,34,34,34,34,34,34,34,17,34,34,34,34,34,34,18,17,17,34,17,34,18,33,17,18,17,33,17,18,17,33,17,18,17,33,17,34,34,34,18,17,33,34,34,34,34,34,34,17,34,34,18,17,33,34,17,34,17,34,17,34,17,34,17,17,17,34,17,34,17,34,17,34,17,34,34,34,34,34,17,17,17,34,18,33,18,33,18,33,18,33,18,17,17,34,18,33,18,33,18,33,18,33,17,17,17,34,34,34,34,34,34,17,17,34,18,33,18,33,17,34,34,34,17,34,34,34,17,34,34,34,18,33,18,33,34,17,17,34,34,34,34,34,17,17,33,34,18,33,17,34,18,33,18,33,18,33,18,33,18,33,18,33,18,33,17,34,17,17,33,34,34,34,34,34,17,17,17,33,18,33,34,33,18,33,33,34,18,17,33,34,18,33,33,34,18,33,34,33,17,17,17,33,34,34,34,34,17,17,17,33,18,33,34,33,18,33,33,34,18,17,33,34,18,33,33,34,18,33,34,34,17,17,34,34,34,34,34,34,34,17,17,34,18,33,18,33,17,34,34,34,17,34,34,34,17,34,17,33,18,33,18,33,34,17,17,33,34,34,34,34,17,34,17,34,17,34,17,34,17,34,17,34,17,17,17,34,17,34,17,34,17,34,17,34,17,34,17,34,34,34,34,34,18,17,33,34,34,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,18,17,33,34,34,34,34,34,34,18,17,33,34,34,17,34,34,34,17,34,34,34,17,34,17,34,17,34,17,34,17,34,18,17,33,34,34,34,34,34,17,33,18,33,18,33,18,33,18,33,17,34,18,17,33,34,18,33,17,34,18,33,18,33,17,33,18,33,34,34,34,34,17,17,34,34,18,33,34,34,18,33,34,34,18,33,34,34,18,33,34,33,18,33,18,33,17,17,17,33,34,34,34,34,17,34,18,33,17,33,17,33,17,17,17,33,17,17,17,33,17,18,18,33,17,34,18,33,17,34,18,33,34,34,34,34,17,34,18,33,17,33,18,33,17,17,18,33,17,18,17,33,17,34,17,33,17,34,18,33,17,34,18,33,34,34,34,34,34,17,33,34,18,33,17,34,17,34,18,33,17,34,18,33,17,34,18,33,18,33,17,34,34,17,33,34,34,34,34,34,17,17,17,34,18,33,18,33,18,33,18,33,18,17,17,34,18,33,34,34,18,33,34,34,17,17,34,34,34,34,34,34,18,17,33,34,17,34,17,34,17,34,17,34,17,34,17,34,17,18,17,34,18,17,33,34,34,18,17,34,34,34,34,34,17,17,17,34,18,33,18,33,18,33,18,33,18,17,17,34,18,33,17,34,18,33,18,33,17,33,18,33,34,34,34,34,18,17,33,34,17,34,17,34,17,33,34,34,18,17,34,34,34,18,17,34,17,34,17,34,18,17,33,34,34,34,34,34,17,17,17,34,33,17,18,34,34,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,18,17,33,34,34,34,34,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,17,17,34,34,34,34,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,18,17,33,34,34,17,34,34,34,34,34,34,17,34,18,33,17,34,18,33,17,34,18,33,17,18,18,33,17,17,17,33,17,33,17,33,17,34,18,33,34,34,34,34,17,34,18,33,17,34,18,33,18,33,17,34,34,17,33,34,34,17,33,34,18,33,17,34,17,34,18,33,34,34,34,34,17,34,17,34,17,34,17,34,17,34,17,34,18,17,33,34,34,17,34,34,34,17,34,34,18,17,33,34,34,34,34,34,17,17,17,33,17,34,18,33,33,34,17,34,34,18,33,34,34,17,34,33,18,33,18,33,17,17,17,33,34,34,34,34,18,17,33,34,18,33,34,34,18,33,34,34,18,33,34,34,18,33,34,34,18,33,34,34,18,17,33,34,34,34,34,34,17,34,34,34,18,33,34,34,34,17,34,34,34,18,33,34,34,34,17,34,34,34,18,33,34,34,34,33,34,34,34,34,18,17,33,34,34,18,33,34,34,18,33,34,34,18,33,34,34,18,33,34,34,18,33,34,18,17,33,34,34,34,34,34,34,18,34,34,34,17,33,34,18,33,17,34,17,34,18,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,17,17,17,17,34,17,34,34,34,17,34,34,34,18,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,18,17,33,34,34,34,17,34,18,17,17,34,17,34,17,34,18,17,18,33,34,34,34,34,17,33,34,34,18,33,34,34,18,33,34,34,18,17,17,34,18,33,18,33,18,33,18,33,17,18,17,34,34,34,34,34,34,34,34,34,34,34,34,34,18,17,33,34,17,34,17,34,17,34,34,34,17,34,17,34,18,17,33,34,34,34,34,34,34,18,17,34,34,34,17,34,34,34,17,34,18,17,17,34,17,34,17,34,17,34,17,34,18,17,18,33,34,34,34,34,34,34,34,34,34,34,34,34,18,17,33,34,17,34,17,34,17,17,17,34,17,34,34,34,18,17,33,34,34,34,34,34,34,17,33,34,18,33,17,34,18,33,34,34,17,17,34,34,18,33,34,34,18,33,34,34,17,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,18,17,18,33,17,34,17,34,17,34,17,34,18,17,17,34,34,34,17,34,17,17,33,34,17,33,34,34,18,33,34,34,18,33,17,34,18,17,18,33,18,33,18,33,18,33,18,33,17,33,18,33,34,34,34,34,34,17,34,34,34,34,34,34,18,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,18,17,33,34,34,34,34,34,34,34,17,34,34,34,34,34,34,34,17,34,34,34,17,34,34,34,17,34,17,34,17,34,17,34,17,34,18,17,33,34,17,33,34,34,18,33,34,34,18,33,18,33,18,33,17,34,18,17,33,34,18,33,17,34,17,33,18,33,34,34,34,34,18,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,34,17,34,34,18,17,33,34,34,34,34,34,34,34,34,34,34,34,34,34,17,34,17,34,17,17,17,33,17,17,17,33,17,18,18,33,17,34,18,33,34,34,34,34,34,34,34,34,34,34,34,34,17,17,33,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,34,34,34,34,34,34,34,34,34,34,34,34,18,17,33,34,17,34,17,34,17,34,17,34,17,34,17,34,18,17,33,34,34,34,34,34,34,34,34,34,34,34,34,34,17,18,17,34,18,33,18,33,18,33,18,33,18,17,17,34,18,33,34,34,17,17,34,34,34,34,34,34,34,34,34,34,18,17,18,33,17,34,17,34,17,34,17,34,18,17,17,34,34,34,17,34,34,18,17,33,34,34,34,34,34,34,34,34,17,18,17,34,18,17,18,33,18,33,18,33,18,33,34,34,17,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,18,17,17,34,17,34,34,34,18,17,33,34,34,34,17,34,17,17,33,34,34,34,34,34,34,18,34,34,34,17,34,34,18,17,17,34,34,17,34,34,34,17,34,34,34,17,18,34,34,18,33,34,34,34,34,34,34,34,34,34,34,34,34,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,17,34,18,17,18,33,34,34,34,34,34,34,34,34,34,34,34,34,17,34,17,34,17,34,17,34,17,34,17,34,18,17,33,34,34,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,17,34,18,33,17,18,18,33,17,17,17,33,17,17,17,33,18,33,17,34,34,34,34,34,34,34,34,34,34,34,34,34,17,34,18,33,18,33,17,34,34,17,33,34,18,33,17,34,17,34,18,33,34,34,34,34,34,34,34,34,34,34,34,34,17,34,17,34,17,34,17,34,17,34,17,34,18,17,17,34,34,34,17,34,17,17,33,34,34,34,34,34,34,34,34,34,17,17,17,34,33,18,33,34,34,17,34,34,18,33,18,34,17,17,17,34,34,34,34,34,34,18,17,34,34,17,34,34,34,17,34,34,17,33,34,34,34,17,34,34,34,17,34,34,34,18,17,34,34,34,34,34,34,34,34,34,34,18,33,34,34,18,33,34,34,34,34,34,34,18,33,34,34,18,33,34,34,18,33,34,34,34,34,34,17,33,34,34,34,17,34,34,34,17,34,34,34,18,17,34,34,17,34,34,34,17,34,34,17,33,34,34,34,34,34,34,18,17,18,33,17,18,17,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34 }; +const u16 vp_palettes[] = { 0,31676,4162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,17122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20294,4162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,32734,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17868,4162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,10079,0,0,0,0,0,0,0,0,0,0,0,0,0 }; +const u8 vp_palette_count = 6; +const u16 vp_backdrop = 4162; +const u8 vp_pal_style[6] = { 0,1,2,3,4,5 }; +const char vp_app_title[] = "VAPOR TODO"; diff --git a/hosts/wm6/vs2005/src/vapor_main.c b/hosts/wm6/vs2005/src/vapor_main.c new file mode 100644 index 000000000..f509aeb90 --- /dev/null +++ b/hosts/wm6/vs2005/src/vapor_main.c @@ -0,0 +1,344 @@ +/* Pocket Vapor AOT host for Windows Mobile 6 / Visual C++ 2005. + * + * The application logic and paint effects live in generated/todo.gba.c. + * This file owns the WM6 window, GDI presentation, and input mapping. + */ + +#include +#include +#include + +#define VP_GRID_W 30 +#define VP_GRID_H 20 + +#include "vapor.h" + +#define VP_BUTTON_A 0 +#define VP_BUTTON_B 1 +#define VP_BUTTON_SELECT 2 +#define VP_BUTTON_START 3 +#define VP_BUTTON_RIGHT 4 +#define VP_BUTTON_LEFT 5 +#define VP_BUTTON_UP 6 +#define VP_BUTTON_DOWN 7 + +u8 vp_grid_ch[VP_GRID_H][VP_GRID_W]; +u8 vp_grid_pal[VP_GRID_H][VP_GRID_W]; + +static const TCHAR kWindowClass[] = _T("PocketJS.WM6.Vapor"); +static HDC g_back_buffer; +static HBITMAP g_back_bitmap; +static HBITMAP g_back_previous_bitmap; +static int g_back_width; +static int g_back_height; + +static COLORREF color_from_rgb555(u16 color) +{ + int red = (color & 31) * 255 / 31; + int green = ((color >> 5) & 31) * 255 / 31; + int blue = ((color >> 10) & 31) * 255 / 31; + return RGB(red, green, blue); +} + +static void release_back_buffer(void) +{ + if (g_back_buffer != NULL && g_back_previous_bitmap != NULL) { + SelectObject(g_back_buffer, g_back_previous_bitmap); + } + if (g_back_bitmap != NULL) DeleteObject(g_back_bitmap); + if (g_back_buffer != NULL) DeleteDC(g_back_buffer); + g_back_buffer = NULL; + g_back_bitmap = NULL; + g_back_previous_bitmap = NULL; + g_back_width = 0; + g_back_height = 0; +} + +static BOOL ensure_back_buffer(HDC target, int width, int height) +{ + HDC next_buffer; + HBITMAP next_bitmap; + HBITMAP next_previous_bitmap; + + if ( + g_back_buffer != NULL && + g_back_width == width && + g_back_height == height + ) { + return TRUE; + } + + release_back_buffer(); + next_buffer = CreateCompatibleDC(target); + next_bitmap = CreateCompatibleBitmap(target, width, height); + if (next_buffer == NULL || next_bitmap == NULL) { + if (next_bitmap != NULL) DeleteObject(next_bitmap); + if (next_buffer != NULL) DeleteDC(next_buffer); + return FALSE; + } + next_previous_bitmap = (HBITMAP)SelectObject(next_buffer, next_bitmap); + if (next_previous_bitmap == NULL) { + DeleteObject(next_bitmap); + DeleteDC(next_buffer); + return FALSE; + } + + g_back_buffer = next_buffer; + g_back_bitmap = next_bitmap; + g_back_previous_bitmap = next_previous_bitmap; + g_back_width = width; + g_back_height = height; + return TRUE; +} + +static HFONT create_grid_font(int cell_height) +{ + const TCHAR face_name[] = _T("Courier New"); + LOGFONT description; + int index; + + ZeroMemory(&description, sizeof(description)); + description.lfHeight = -(cell_height * 3 / 4); + description.lfWeight = FW_BOLD; + description.lfCharSet = ANSI_CHARSET; + description.lfOutPrecision = OUT_DEFAULT_PRECIS; + description.lfClipPrecision = CLIP_DEFAULT_PRECIS; + description.lfQuality = DEFAULT_QUALITY; + description.lfPitchAndFamily = FIXED_PITCH | FF_MODERN; + for ( + index = 0; + index < LF_FACESIZE - 1 && face_name[index] != _T('\0'); + ++index + ) { + description.lfFaceName[index] = face_name[index]; + } + description.lfFaceName[index] = _T('\0'); + return CreateFontIndirect(&description); +} + +static void draw_grid(HWND window, HDC target) +{ + RECT client; + HDC back; + HFONT font; + HFONT previous_font; + int width; + int height; + int cell_width; + int cell_height; + int row; + + GetClientRect(window, &client); + width = client.right - client.left; + height = client.bottom - client.top; + if (width <= 0 || height <= 0) return; + if (!ensure_back_buffer(target, width, height)) return; + + back = g_back_buffer; + cell_width = width / VP_GRID_W; + cell_height = height / VP_GRID_H; + font = create_grid_font(cell_height); + previous_font = NULL; + if (font != NULL) previous_font = (HFONT)SelectObject(back, font); + SetBkMode(back, OPAQUE); + + for (row = 0; row < VP_GRID_H; ++row) { + TCHAR text[VP_GRID_W + 1]; + RECT row_rect; + u8 palette = vp_grid_pal[row][0]; + COLORREF ink; + COLORREF paper; + int column; + + if (palette >= vp_palette_count) palette = 0; + ink = color_from_rgb555(vp_palettes[(u16)palette * 16 + 1]); + paper = color_from_rgb555(vp_palettes[(u16)palette * 16 + 2]); + for (column = 0; column < VP_GRID_W; ++column) { + u8 ch = vp_grid_ch[row][column]; + text[column] = (TCHAR)((ch >= 0x20 && ch <= 0x7e) ? ch : ' '); + } + text[VP_GRID_W] = _T('\0'); + + row_rect.left = 0; + row_rect.top = row * cell_height; + row_rect.right = width; + row_rect.bottom = + row == VP_GRID_H - 1 ? height : (row + 1) * cell_height; + SetTextColor(back, ink); + SetBkColor(back, paper); + ExtTextOut( + back, + cell_width / 2, + row_rect.top + (cell_height / 8), + ETO_OPAQUE | ETO_CLIPPED, + &row_rect, + text, + VP_GRID_W, + NULL + ); + } + + BitBlt(target, 0, 0, width, height, back, 0, 0, SRCCOPY); + if (previous_font != NULL) SelectObject(back, previous_font); + if (font != NULL) DeleteObject(font); + vp_rows_dirty = 0; +} + +static int button_for_key(WPARAM key) +{ + switch (key) { + case VK_RETURN: + case 0x1c: + return VP_BUTTON_A; + case VK_BACK: + return VP_BUTTON_B; + case VK_UP: + return VP_BUTTON_UP; + case VK_DOWN: + return VP_BUTTON_DOWN; + case VK_LEFT: + return VP_BUTTON_LEFT; + case VK_RIGHT: + return VP_BUTTON_RIGHT; + case VK_F1: + return VP_BUTTON_SELECT; + case VK_F2: + return VP_BUTTON_START; + } + return -1; +} + +static void press_button(HWND window, u8 button) +{ + app_on_button(button); + if (app_flush()) InvalidateRect(window, NULL, FALSE); +} + +static LRESULT CALLBACK window_procedure( + HWND window, + UINT message, + WPARAM w_param, + LPARAM l_param +) +{ + switch (message) { + case WM_CREATE: + vp_row_clear(0, VP_GRID_H); + app_init(); + app_flush(); + InvalidateRect(window, NULL, FALSE); + return 0; + + case WM_KEYDOWN: + { + int button = button_for_key(w_param); + if (button >= 0) { + press_button(window, (u8)button); + } else if (w_param == VK_ESCAPE) { + DestroyWindow(window); + } + } + return 0; + + case WM_LBUTTONUP: + { + RECT client; + int x = (short)LOWORD(l_param); + int y = (short)HIWORD(l_param); + GetClientRect(window, &client); + if (y < client.bottom / 3) { + press_button(window, VP_BUTTON_UP); + } else if (y < (client.bottom * 2) / 3) { + press_button(window, VP_BUTTON_DOWN); + } else if (x < client.right / 2) { + press_button(window, VP_BUTTON_A); + } else { + press_button(window, VP_BUTTON_B); + } + } + return 0; + + case WM_SIZE: + release_back_buffer(); + InvalidateRect(window, NULL, FALSE); + return 0; + + case WM_ERASEBKGND: + return 1; + + case WM_PAINT: + { + PAINTSTRUCT paint; + HDC dc = BeginPaint(window, &paint); + draw_grid(window, dc); + EndPaint(window, &paint); + } + return 0; + + case WM_DESTROY: + release_back_buffer(); + PostQuitMessage(0); + return 0; + } + return DefWindowProc(window, message, w_param, l_param); +} + +int WINAPI WinMain( + HINSTANCE instance, + HINSTANCE previous_instance, + LPWSTR command_line, + int show_command +) +{ + WNDCLASS window_class; + HWND window; + MSG message; + BOOL message_result; + + (void)previous_instance; + (void)command_line; + ZeroMemory(&window_class, sizeof(window_class)); + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.lpfnWndProc = window_procedure; + window_class.hInstance = instance; + window_class.hCursor = LoadCursor(NULL, IDC_ARROW); + window_class.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); + window_class.lpszClassName = kWindowClass; + + if ( + !RegisterClass(&window_class) && + GetLastError() != ERROR_CLASS_ALREADY_EXISTS + ) { + return 1; + } + + SHInitExtraControls(); + window = CreateWindow( + kWindowClass, + _T("Pocket Vapor Todo"), + WS_VISIBLE, + 0, + 0, + GetSystemMetrics(SM_CXSCREEN), + GetSystemMetrics(SM_CYSCREEN), + NULL, + NULL, + instance, + NULL + ); + if (window == NULL) return 2; + + SHFullScreen( + window, + SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON | SHFS_HIDESTARTICON + ); + ShowWindow(window, show_command); + UpdateWindow(window); + + while ((message_result = GetMessage(&message, NULL, 0, 0)) > 0) { + TranslateMessage(&message); + DispatchMessage(&message); + } + if (message_result < 0) return 3; + return (int)message.wParam; +} diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index c88663be5..079f01372 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -3,7 +3,7 @@ import { readFile } from "node:fs/promises"; const root = new URL("../hosts/wm6/vs2005/", import.meta.url); -describe("Windows Mobile 6 VS2005 probe", () => { +describe("Windows Mobile 6 VS2005 projects", () => { test("uses the Professional SDK ARMV4I smart-device platform", async () => { const [solution, project, resource] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), @@ -48,4 +48,40 @@ describe("Windows Mobile 6 VS2005 probe", () => { expect(source).not.toContain("lstrcpyn"); expect(source).not.toMatch(/\b(auto|nullptr|constexpr|override)\b/); }); + + test("includes a separate VC8 Pocket Vapor AOT application", async () => { + const [solution, project, host, generated] = await Promise.all([ + readFile(new URL("PocketJS.WM6.sln", root), "utf8"), + readFile(new URL("PocketJS.WM6.Vapor.vcproj", root), "utf8"), + readFile(new URL("src/vapor_main.c", root), "utf8"), + readFile(new URL("generated/todo.gba.c", root), "utf8"), + ]); + + expect(solution).toContain('"PocketJS.WM6.Vapor"'); + expect(solution).toContain("{970E99AC-1918-451D-A515-9C23D9C3AC65}"); + expect(project).toContain('Version="8.00"'); + expect(project).toContain('Name="Windows Mobile 6 Professional SDK (ARMV4I)"'); + expect(project).toContain('RelativePath=".\\src\\vapor_main.c"'); + expect(project).toContain('RelativePath=".\\generated\\todo.gba.c"'); + expect(project).toContain( + 'RelativePath="..\\..\\..\\vapor\\runtime\\vapor_core.c"', + ); + expect(project.match(/DisableSpecificWarnings="4201;4819"/g)).toHaveLength(2); + expect(project.match(/inline=__inline/g)).toHaveLength(2); + expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); + expect( + project.match( + /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.Vapor\\PocketJS\.WM6\.Vapor\.exe"/g, + ), + ).toHaveLength(2); + + expect(host).toContain("app_init()"); + expect(host).toContain("app_on_button(button)"); + expect(host).toContain("ExtTextOut"); + expect(host).toContain("WM_LBUTTONUP"); + expect(generated).toContain( + "GENERATED by vapor/compiler/compile.ts. DO NOT EDIT.", + ); + expect(generated).toContain("const char vp_app_title[] = \"VAPOR TODO\""); + }); }); From 95f8854e995b88d9ac8860609e588ef23a10bad0 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 23:36:12 +0900 Subject: [PATCH 09/53] fix(wm6): keep VS2005 solution self-contained --- docs/WM6_IPAQ_212.md | 3 +- hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj | 6 +- hosts/wm6/vs2005/README.md | 4 +- hosts/wm6/vs2005/runtime/vapor.h | 116 +++++++++++++++++ hosts/wm6/vs2005/runtime/vapor_core.c | 143 +++++++++++++++++++++ tests/wm6-project.test.ts | 9 +- 6 files changed, 274 insertions(+), 7 deletions(-) create mode 100644 hosts/wm6/vs2005/runtime/vapor.h create mode 100644 hosts/wm6/vs2005/runtime/vapor_core.c diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md index 2dc8d498c..0c6adf7c4 100644 --- a/docs/WM6_IPAQ_212.md +++ b/docs/WM6_IPAQ_212.md @@ -96,7 +96,8 @@ a separately validated GNU WinCE toolchain. `PocketJS.WM6.Vapor` is an independent application project in the same VS2005 solution. It links: -- the target-independent `vapor/runtime/vapor_core.c`; +- a checked-in copy of the target-independent `vapor/runtime/vapor_core.c` + (kept inside the solution so a `Y:\vs2005` VM mount is self-contained); - deterministic C generated from `vapor/examples/todo/todo.tsx`; - a WM6 GDI cell-grid host with D-pad, centre, Back, soft-key, and stylus mappings. diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj index bedca3480..c2604bf30 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj @@ -34,7 +34,7 @@ ExecutionBucket="7" Optimization="0" PreprocessorDefinitions="_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;_WINDOWS;_DEBUG;DEBUG;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;inline=__inline" - AdditionalIncludeDirectories="..\..\..\vapor\runtime" + AdditionalIncludeDirectories=".\runtime" MinimalRebuild="false" BasicRuntimeChecks="0" RuntimeLibrary="3" @@ -100,7 +100,7 @@ Optimization="1" FavorSizeOrSpeed="1" PreprocessorDefinitions="_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;_WINDOWS;NDEBUG;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE;inline=__inline" - AdditionalIncludeDirectories="..\..\..\vapor\runtime" + AdditionalIncludeDirectories=".\runtime" RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" @@ -150,7 +150,7 @@ - + diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index a25c5674e..b3dac9f4d 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -59,7 +59,9 @@ The Todo component itself uses Up/Down to select, A to toggle, B to delete, Right to change the filter, and Start to open the editor. The checked-in `generated\todo.gba.c` is deterministic output from `vapor\examples\todo\todo.tsx`; the WM6 host reuses its 30×20 logical grid and -RGB555 style table. +RGB555 style table. `runtime\vapor.h` and `runtime\vapor_core.c` are checked-in +copies of the repository runtime so the `vs2005` directory remains +self-contained when it is mounted as `Y:\vs2005` in the build VM. Press an unmapped Back/Escape key to exit. If the ROM consumes that key, stop the application from **Settings > System > Memory > Running Programs**. diff --git a/hosts/wm6/vs2005/runtime/vapor.h b/hosts/wm6/vs2005/runtime/vapor.h new file mode 100644 index 000000000..bed5ccd06 --- /dev/null +++ b/hosts/wm6/vs2005/runtime/vapor.h @@ -0,0 +1,116 @@ +/* vapor/runtime/vapor.h — the Pocket Vapor runtime contract, all targets. + * + * Two parties compile against this header: the fixed per-console runtime + * (gba/vapor_gba.c, gb/vapor_gb.c, nes/vapor_nes.c, + * esp32/vapor_esp32.c) and the compiler-generated application (gen_app.c). + * The runtime owns the cell grid, video commit, input edges, the frame loop + * and the debug block; the generated + * app owns all reactive state, computeds, paint effects and button + * handlers. No allocator exists anywhere — every byte is planned at + * compile time. + * + * Portability: this compiles under arm-none-eabi-gcc (ARM7TDMI), sdcc + * (SM83), cc65 (6502), and xtensa-esp-elf-gcc. `int` is 16-bit on the + * 8-bit consoles, so the 32-bit types are `long`; cc65 is C89, so + * `inline` vanishes there. + */ +#ifndef POCKET_VAPOR_H +#define POCKET_VAPOR_H + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned long u32; +typedef signed char s8; +typedef signed short s16; +typedef signed long s32; + +#if defined(__CC65__) +#define inline +#endif + +/* Geometry + budgets: per-target, injected by the compiler as #defines in + * gen_app.c before this header; the defaults are the GBA profile. */ +#ifndef VP_GRID_W +#define VP_GRID_W 30 +#endif +#ifndef VP_GRID_H +#define VP_GRID_H 20 +#endif +#ifndef VP_STR_CAP +#define VP_STR_CAP 24 /* max chars in a pooled/scratch string */ +#endif +#ifndef VP_VIEW_CAP +#define VP_VIEW_CAP 32 /* max elements a list view can hold */ +#endif + +/* A bounded string: len + bytes, no heap, no NUL required. */ +typedef struct { + u8 len; + char b[VP_STR_CAP]; +} vp_sb; + +/* A list view: indices into an app pool, produced by filter/slice chains. */ +typedef struct { + u8 len; + u8 idx[VP_VIEW_CAP]; +} vp_view; + +/* ---- grid (runtime-owned) -------------------------------------------------- */ +void vp_row_clear(u8 y0, u8 y1); /* rows [y0, y1): space, pair 0 */ + +/* Row painting is compose-then-commit: parts append into a line scratch, + * commit places the line (left at x / centered / right), painting the FULL + * row in the row's style pair — a row owns its whole line. */ +#define VP_ALIGN_LEFT 0 +#define VP_ALIGN_CENTER 1 +#define VP_ALIGN_RIGHT 2 +void vp_ln_reset(void); +void vp_ln_str(const char *s); +void vp_ln_sb(const vp_sb *s); +void vp_ln_ch(char c); +void vp_ln_int(s32 v); +void vp_ln_commit(u8 y, u8 x, u8 pal, u8 align); + +/* ---- strings ---------------------------------------------------------------- */ +void vp_sb_reset(vp_sb *s); +void vp_sb_str(vp_sb *s, const char *lit); +void vp_sb_sb(vp_sb *s, const vp_sb *src); +void vp_sb_ch(vp_sb *s, char c); +/* JS String.prototype.slice(start, end) with clamping, ASCII only. */ +void vp_sb_slice(vp_sb *dst, const vp_sb *src, s32 start, s32 end); +/* Assign tmp into dst; returns 1 if the value changed (Vue set semantics). */ +u8 vp_sb_assign(vp_sb *dst, const vp_sb *tmp); +u8 vp_sb_eq(const vp_sb *a, const vp_sb *b); + +/* ---- tripwires -------------------------------------------------------------- */ +#define VP_TRIP_POOL_FULL 1 +#define VP_TRIP_STR_TRUNC 2 +#define VP_TRIP_VIEW_FULL 4 +extern u8 vp_tripwires; + +/* core state shared with the per-target runtime */ +extern u32 vp_rows_dirty; +extern const u32 vp_bit32[32]; /* vp_bit32[n] == 1UL << n */ + +/* ---- generated app hooks ----------------------------------------------------- */ +void app_init(void); /* seed state + first paint (all effects) */ +void app_on_button(u8 b); /* one press edge, GBA key bit index */ +u8 app_flush(void); /* computeds + dirty effects; 1 if painted */ +u16 app_debug_state(volatile u8 *out); /* mirror reactive state; returns bytes */ + +/* generated data the runtime uploads at boot (per-target encodings): + * GBA: vp_font_tiles 95x32B 4bpp, vp_palettes/vp_palette_count/vp_backdrop + * GB: vp_font_tiles (2 styles x 95) x 16B 2bpp interleaved + * NES: vp_font_tiles (2 styles x 95) x 16B 2bpp planar + * ESP32: vp_font_tiles 95x8B 1bpp, direct RGB565 ink/paper tables + * GB/NES: vp_pal_style[8] maps logical palette -> glyph style (0/1) */ +extern const u8 vp_font_tiles[]; +extern const u16 vp_palettes[]; +extern const u8 vp_palette_count; +extern const u16 vp_backdrop; +extern const u16 vp_ink565[]; +extern const u16 vp_paper565[]; +extern const u8 vp_pal_style[]; +extern const char vp_app_title[]; /* cartridge title, <= 12 chars */ + +#endif diff --git a/hosts/wm6/vs2005/runtime/vapor_core.c b/hosts/wm6/vs2005/runtime/vapor_core.c new file mode 100644 index 000000000..ec91267b1 --- /dev/null +++ b/hosts/wm6/vs2005/runtime/vapor_core.c @@ -0,0 +1,143 @@ +/* vapor/runtime/vapor_core.c — target-independent runtime half. + * + * The cell grid IS the debug block: each target defines vp_grid_ch / + * vp_grid_pal at its console's fixed debug address (GBA copies to EWRAM + * instead — it can afford to), so the harness reads the same logical screen + * the paint effects wrote, regardless of how far the console's vblank + * budget has gotten with the physical VRAM commit. Compiled per target + * with the same VP_* defines as gen_app.c. + */ +#include "vapor.h" + +u8 vp_tripwires; +u32 vp_rows_dirty; + +/* Bit table instead of `(u32)1 << n`: sdcc 4.6 (SM83) miscompiles some + * u8-operand shifts/multiplies, and 6502 variable long shifts are slow. */ +const u32 vp_bit32[32] = { + 0x1UL, 0x2UL, 0x4UL, 0x8UL, 0x10UL, 0x20UL, 0x40UL, 0x80UL, + 0x100UL, 0x200UL, 0x400UL, 0x800UL, 0x1000UL, 0x2000UL, 0x4000UL, 0x8000UL, + 0x10000UL, 0x20000UL, 0x40000UL, 0x80000UL, 0x100000UL, 0x200000UL, 0x400000UL, 0x800000UL, + 0x1000000UL, 0x2000000UL, 0x4000000UL, 0x8000000UL, 0x10000000UL, 0x20000000UL, 0x40000000UL, 0x80000000UL, +}; + +/* u16 row math: u8*u8 would lower to sdcc's buggy __muluchar */ +#define ROW_CH(y) ((u8 *)vp_grid_ch + (u16)(y) * VP_GRID_W) +#define ROW_PAL(y) ((u8 *)vp_grid_pal + (u16)(y) * VP_GRID_W) + +/* defined by the per-target runtime, at that console's debug address */ +extern u8 vp_grid_ch[VP_GRID_H][VP_GRID_W]; +extern u8 vp_grid_pal[VP_GRID_H][VP_GRID_W]; + +static void cell(u8 y, u8 x, u8 ch, u8 pal) { + u8 *pc = ROW_CH(y) + x; + u8 *pp = ROW_PAL(y) + x; + if (*pc == ch && *pp == pal) return; + *pc = ch; + *pp = pal; + vp_rows_dirty |= vp_bit32[y]; +} + +void vp_row_clear(u8 y0, u8 y1) { + u8 y, x; + for (y = y0; y < y1 && y < VP_GRID_H; y++) + for (x = 0; x < VP_GRID_W; x++) cell(y, x, ' ', 0); +} + +/* ---- line compose ------------------------------------------------------------ */ +static u8 vp_ln[VP_GRID_W]; +static u8 vp_ln_len; + +void vp_ln_reset(void) { vp_ln_len = 0; } + +void vp_ln_ch(char c) { + u8 ch = (u8)c; + if (vp_ln_len >= VP_GRID_W) return; /* clip at the row edge */ + if (ch < 0x20 || ch > 0x7e) ch = '?'; + vp_ln[vp_ln_len++] = ch; +} + +void vp_ln_str(const char *s) { + while (*s) vp_ln_ch(*s++); +} + +void vp_ln_sb(const vp_sb *s) { + u8 i; + for (i = 0; i < s->len; i++) vp_ln_ch(s->b[i]); +} + +void vp_ln_int(s32 v) { + char buf[12]; + u8 n = 0; + u32 mag; + if (v < 0) { + vp_ln_ch('-'); + mag = (u32)(-v); + } else { + mag = (u32)v; + } + do { + buf[n++] = (char)('0' + (u8)(mag % 10)); + mag /= 10; + } while (mag && n < 11); + while (n) vp_ln_ch(buf[--n]); +} + +void vp_ln_commit(u8 y, u8 x, u8 pal, u8 align) { + u8 start, col; + if (align == VP_ALIGN_CENTER) start = (u8)((VP_GRID_W - vp_ln_len) >> 1); + else if (align == VP_ALIGN_RIGHT) start = (u8)(VP_GRID_W - vp_ln_len); + else start = x; + if (start >= VP_GRID_W) start = 0; + for (col = 0; col < VP_GRID_W; col++) { + u8 ch = ' '; + if (col >= start && (u8)(col - start) < vp_ln_len) ch = vp_ln[col - start]; + cell(y, col, ch, pal); + } +} + +/* ---- strings ---------------------------------------------------------------- */ +void vp_sb_reset(vp_sb *s) { s->len = 0; } + +void vp_sb_ch(vp_sb *s, char c) { + if (s->len >= VP_STR_CAP) { + vp_tripwires |= VP_TRIP_STR_TRUNC; + return; + } + s->b[s->len++] = c; +} + +void vp_sb_str(vp_sb *s, const char *lit) { + while (*lit) vp_sb_ch(s, *lit++); +} + +void vp_sb_sb(vp_sb *s, const vp_sb *src) { + u8 i; + for (i = 0; i < src->len; i++) vp_sb_ch(s, src->b[i]); +} + +void vp_sb_slice(vp_sb *dst, const vp_sb *src, s32 start, s32 end) { + s32 len = src->len, i; + if (start < 0) start += len; + if (end < 0) end += len; + if (start < 0) start = 0; + if (end > len) end = len; + dst->len = 0; + for (i = start; i < end; i++) vp_sb_ch(dst, src->b[i]); +} + +u8 vp_sb_eq(const vp_sb *a, const vp_sb *b) { + u8 i; + if (a->len != b->len) return 0; + for (i = 0; i < a->len; i++) + if (a->b[i] != b->b[i]) return 0; + return 1; +} + +u8 vp_sb_assign(vp_sb *dst, const vp_sb *tmp) { + u8 i; + if (vp_sb_eq(dst, tmp)) return 0; + dst->len = tmp->len; + for (i = 0; i < tmp->len; i++) dst->b[i] = tmp->b[i]; + return 1; +} diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 079f01372..075c6fc44 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -50,11 +50,12 @@ describe("Windows Mobile 6 VS2005 projects", () => { }); test("includes a separate VC8 Pocket Vapor AOT application", async () => { - const [solution, project, host, generated] = await Promise.all([ + const [solution, project, host, generated, runtime] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), readFile(new URL("PocketJS.WM6.Vapor.vcproj", root), "utf8"), readFile(new URL("src/vapor_main.c", root), "utf8"), readFile(new URL("generated/todo.gba.c", root), "utf8"), + readFile(new URL("runtime/vapor_core.c", root), "utf8"), ]); expect(solution).toContain('"PocketJS.WM6.Vapor"'); @@ -64,7 +65,10 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(project).toContain('RelativePath=".\\src\\vapor_main.c"'); expect(project).toContain('RelativePath=".\\generated\\todo.gba.c"'); expect(project).toContain( - 'RelativePath="..\\..\\..\\vapor\\runtime\\vapor_core.c"', + 'RelativePath=".\\runtime\\vapor_core.c"', + ); + expect(project.match(/AdditionalIncludeDirectories="\.\\runtime"/g)).toHaveLength( + 2, ); expect(project.match(/DisableSpecificWarnings="4201;4819"/g)).toHaveLength(2); expect(project.match(/inline=__inline/g)).toHaveLength(2); @@ -83,5 +87,6 @@ describe("Windows Mobile 6 VS2005 projects", () => { "GENERATED by vapor/compiler/compile.ts. DO NOT EDIT.", ); expect(generated).toContain("const char vp_app_title[] = \"VAPOR TODO\""); + expect(runtime).toContain("void vp_row_clear"); }); }); From f102518828ab029b9d90ce1b7a82fe360ec7b68e Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Sun, 26 Jul 2026 23:42:22 +0900 Subject: [PATCH 10/53] fix(wm6): tolerate VC8 SDK C headers --- hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj | 4 ++-- tests/wm6-project.test.ts | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj index c2604bf30..aa2fa420c 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.Vapor.vcproj @@ -41,7 +41,7 @@ UsePrecompiledHeader="0" WarningLevel="4" WarnAsError="true" - DisableSpecificWarnings="4201;4819" + DisableSpecificWarnings="4201;4115;4214;4819" DebugInformationFormat="3" CompileAs="0" /> @@ -106,7 +106,7 @@ UsePrecompiledHeader="0" WarningLevel="4" WarnAsError="true" - DisableSpecificWarnings="4201;4819" + DisableSpecificWarnings="4201;4115;4214;4819" DebugInformationFormat="0" CompileAs="0" /> diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 075c6fc44..737814362 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -70,7 +70,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(project.match(/AdditionalIncludeDirectories="\.\\runtime"/g)).toHaveLength( 2, ); - expect(project.match(/DisableSpecificWarnings="4201;4819"/g)).toHaveLength(2); + expect( + project.match(/DisableSpecificWarnings="4201;4115;4214;4819"/g), + ).toHaveLength(2); expect(project.match(/inline=__inline/g)).toHaveLength(2); expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); expect( From b8a21d297993adba872fafe2776e3f086758a509 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 00:14:25 +0900 Subject: [PATCH 11/53] feat(wm6): port QuickJS probe toolchain --- docs/WM6_IPAQ_212.md | 30 ++-- hosts/wm6/quickjs/README.md | 58 +++++++ hosts/wm6/quickjs/build-probe.sh | 82 ++++++++++ hosts/wm6/quickjs/patches/quickjs-wm6.patch | 48 ++++++ hosts/wm6/quickjs/src/probe.c | 152 ++++++++++++++++++ hosts/wm6/quickjs/src/wm6_math.c | 24 +++ hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 149 +++++++++++++++++ hosts/wm6/vs2005/PocketJS.WM6.sln | 8 + hosts/wm6/vs2005/README.md | 27 ++-- .../prebuilt/PocketJS.WM6.QuickJS.Probe.exe | Bin 0 -> 789579 bytes hosts/wm6/vs2005/src/quickjs_deploy.c | 19 +++ tests/wm6-project.test.ts | 55 +++++++ 12 files changed, 632 insertions(+), 20 deletions(-) create mode 100644 hosts/wm6/quickjs/README.md create mode 100644 hosts/wm6/quickjs/build-probe.sh create mode 100644 hosts/wm6/quickjs/patches/quickjs-wm6.patch create mode 100644 hosts/wm6/quickjs/src/probe.c create mode 100644 hosts/wm6/quickjs/src/wm6_math.c create mode 100644 hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj create mode 100644 hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.Probe.exe create mode 100644 hosts/wm6/vs2005/src/quickjs_deploy.c diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md index 0c6adf7c4..29879b245 100644 --- a/docs/WM6_IPAQ_212.md +++ b/docs/WM6_IPAQ_212.md @@ -67,29 +67,37 @@ The probe embeds `HI_RES_AWARE CEUX { 1 }` to opt out of that compatibility scaling. A QVGA result therefore means an older or incorrectly linked resource was deployed; it is not the iPAQ panel's physical resolution. -### Gate 1 — toolchain-owned QuickJS probe +### Gate 1 — toolchain-owned QuickJS probe (first executable implemented) -Build QuickJS as C sources with the same VC8 ARMV4I compiler and expose only: +Current QuickJS cannot be built by VC8. The implemented split toolchain keeps +VS2005 as the WM6 window/deployment/debug host and builds QuickJS with CeGCC's +native-API `arm-mingw32ce` compiler. The checked-in ARM/WinCE probe now proves: 1. runtime/context creation; 2. evaluation of an embedded UTF-8 script; -3. one native `print` callback; -4. explicit memory and stack limits; -5. pending-job draining and clean teardown. +3. a native `print` callback plus Promise pending-job draining; +4. explicit 8 MiB memory and 256 KiB stack limits; +5. 100 repeated create/evaluate/drain/destroy cycles. + +Its pinned source, compatibility patch, and reproducible build command live in +`hosts/wm6/quickjs`. `PocketJS.WM6.QuickJS` in the VS2005 solution deploys the +resulting CeGCC executable and starts it on the selected device or emulator. Do not begin with the full PocketJS bundle. QuickJS will need a dedicated WinCE compatibility layer for time, allocation, file APIs, missing CRT calls, -and any compiler syntax unsupported by VC8. Pin the exact upstream revision -and keep those changes as a reviewable patch, as the Symbian toolchain already -does. Acceptance is 100 repeated create/evaluate/destroy cycles without -unbounded memory loss. +and any missing runtime facilities. Keep those changes as a reviewable patch, +as the Symbian toolchain already does. Gate 1 remains open until the 100-cycle +probe passes on physical iPAQ hardware with before/after free-memory receipts; +emulator success validates the binary and ABI but cannot close the hardware +gate. The repository-pinned QuickJS revision cannot be compiled directly by VC8: it uses C99 syntax, flexible arrays, GCC builtins/attributes, compound literals, and designated initializers. Compiling it as C++ is also not a shortcut because the C sources rely on implicit `void *` conversions and C linkage rules. Gate 1 -therefore remains open and needs either a maintained VC8 compatibility patch or -a separately validated GNU WinCE toolchain. +therefore uses a separately owned GNU WinCE build. The future VS2005 host will +load a CeGCC-built DLL through a narrow C ABI; QuickJS values and allocator +ownership must never cross that boundary. ### AOT milestone — Pocket Vapor Todo (implemented) diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md new file mode 100644 index 000000000..3adba4770 --- /dev/null +++ b/hosts/wm6/quickjs/README.md @@ -0,0 +1,58 @@ +# QuickJS for Windows Mobile 6 + +This directory is the first executable QuickJS toolchain milestone for the +WM6 port. It builds the repository's pinned `pocket-stack/quickjs-rs` revision +as an ARM Windows CE application with the native CeGCC toolset. + +Visual C++ 2005 remains the windowing, deployment, and debugger tool for the +eventual PocketJS host. QuickJS itself uses CeGCC because current QuickJS is +GNU C99 and cannot be compiled by VC8. The future integration boundary will be +a narrow C DLL API; QuickJS values and allocations must stay on the CeGCC side. + +## Pinned source + +- repository: `https://github.com/pocket-stack/quickjs-rs` +- revision: `0fc946fb670c0c29bc0135f510bcb0f595415a61` +- QuickJS version: `2026-06-04` + +These values deliberately match `tools/cli/symbian-toolchain.json`. + +## Build the probe + +Install or extract the native-API `mingw32ce` CeGCC toolchain, then run: + +```sh +WM6_CEGCC_ROOT=/opt/mingw32ce-0.59.1 \ + hosts/wm6/quickjs/build-probe.sh +``` + +Old CeGCC Linux binaries may require compatible 32-bit MPFR, GMP, and zlib +shared libraries. If they are not installed system-wide, point the loader at +their directory: + +```sh +WM6_CEGCC_ROOT=/opt/mingw32ce-0.59.1 \ +WM6_CEGCC_LIBDIR=/opt/mingw32ce-compat/lib \ + hosts/wm6/quickjs/build-probe.sh +``` + +For a repeat build without another network fetch, set `WM6_QUICKJS_SOURCE` to +a local checkout at the pinned revision. + +The default output is +`hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.Probe.exe`. The executable +performs 100 create/evaluate/drain/destroy cycles with an 8 MiB-limited +QuickJS runtime and 256 KiB stack. Each cycle calls a native `print` function +from a Promise job. Success shows `QuickJS 6,10,16,26` under the title +`QuickJS: 100 cycles passed` in a native WM6 message box. + +The compatibility patch: + +- disables QuickJS atomics because WM6 has no pthread/C11 atomic API; +- uses GCC built-ins for stack allocation and `signbit`; +- avoids `_msize`, which is absent from the Windows CE CRT; +- temporarily reports UTC for `Date#getTimezoneOffset`; +- supplies the C99 `fmax` and `fmin` functions missing from the CE CRT. + +The UTC fallback is intentionally conservative and must be replaced with a +WinCE `SYSTEMTIME`/timezone implementation before shipping a general runtime. diff --git a/hosts/wm6/quickjs/build-probe.sh b/hosts/wm6/quickjs/build-probe.sh new file mode 100644 index 000000000..620aacf9b --- /dev/null +++ b/hosts/wm6/quickjs/build-probe.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +set -euo pipefail + +quickjs_repo="https://github.com/pocket-stack/quickjs-rs" +quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61" +quickjs_version="2026-06-04" + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.QuickJS.Probe.exe}" +work_dir="$(mktemp -d "${TMPDIR:-/tmp}/pocketjs-wm6-quickjs.XXXXXX")" +trap 'rm -rf "$work_dir"' EXIT + +if [[ -z "${WM6_CEGCC_ROOT:-}" ]]; then + echo "WM6_CEGCC_ROOT must point at an extracted mingw32ce toolchain." >&2 + exit 2 +fi + +tool_bin="${WM6_CEGCC_ROOT}/mingw32ce/bin" +cc="${tool_bin}/arm-mingw32ce-gcc" +if [[ ! -x "$cc" ]]; then + echo "arm-mingw32ce-gcc was not found under ${tool_bin}." >&2 + exit 2 +fi + +if [[ -n "${WM6_CEGCC_LIBDIR:-}" ]]; then + export LD_LIBRARY_PATH="${WM6_CEGCC_LIBDIR}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" +fi + +if [[ -n "${WM6_QUICKJS_SOURCE:-}" ]]; then + if [[ "$(git -C "$WM6_QUICKJS_SOURCE" rev-parse HEAD)" != "$quickjs_rev" ]]; then + echo "WM6_QUICKJS_SOURCE is not at the pinned revision ${quickjs_rev}." >&2 + exit 2 + fi + cp -R "$WM6_QUICKJS_SOURCE" "${work_dir}/quickjs-rs" +else + git init -q "${work_dir}/quickjs-rs" + git -C "${work_dir}/quickjs-rs" remote add origin "$quickjs_repo" + git -C "${work_dir}/quickjs-rs" fetch -q --depth 1 origin "$quickjs_rev" + git -C "${work_dir}/quickjs-rs" checkout -q FETCH_HEAD +fi + +quickjs_dir="${work_dir}/quickjs-rs/libquickjs-sys/embed/quickjs" +patch -d "$quickjs_dir" -p1 < "${script_dir}/patches/quickjs-wm6.patch" +mkdir -p "${work_dir}/obj" "$(dirname "$output")" +cp "${script_dir}/src/wm6_math.c" "${work_dir}/wm6_math.c" +cp "${script_dir}/src/probe.c" "${work_dir}/probe.c" + +common_flags=( + -std=gnu99 + -march=armv5te + -msoft-float + -Os + -funsigned-char + -D_WIN32_WCE=0x0502 + -DWINCE + -D_WIN32 + "-DCONFIG_VERSION=\"${quickjs_version}\"" + "-I${quickjs_dir}" +) + +for source in cutils dtoa libregexp libunicode quickjs; do + "$cc" "${common_flags[@]}" -c "${quickjs_dir}/${source}.c" \ + -o "${work_dir}/obj/${source}.o" +done +"$cc" "${common_flags[@]}" -c "${work_dir}/wm6_math.c" \ + -o "${work_dir}/obj/wm6_math.o" +"$cc" "${common_flags[@]}" -c "${work_dir}/probe.c" \ + -o "${work_dir}/obj/probe.o" + +"$cc" -march=armv5te -msoft-float -mwindows \ + -o "${work_dir}/PocketJS.WM6.QuickJS.Probe.exe" \ + "${work_dir}/obj/probe.o" \ + "${work_dir}/obj/wm6_math.o" \ + "${work_dir}/obj/quickjs.o" \ + "${work_dir}/obj/cutils.o" \ + "${work_dir}/obj/dtoa.o" \ + "${work_dir}/obj/libregexp.o" \ + "${work_dir}/obj/libunicode.o" \ + -lm +cp "${work_dir}/PocketJS.WM6.QuickJS.Probe.exe" "$output" + +echo "Built ${output}" diff --git a/hosts/wm6/quickjs/patches/quickjs-wm6.patch b/hosts/wm6/quickjs/patches/quickjs-wm6.patch new file mode 100644 index 000000000..9ec8a5f4b --- /dev/null +++ b/hosts/wm6/quickjs/patches/quickjs-wm6.patch @@ -0,0 +1,48 @@ +diff --git a/quickjs.c b/quickjs.c +index 39e334c..c45f717 100644 +--- a/quickjs.c ++++ b/quickjs.c +@@ -34,6 +34,12 @@ + #include + #include + #include ++#if defined(_WIN32_WCE) ++#define alloca __builtin_alloca ++#ifndef signbit ++#define signbit __builtin_signbit ++#endif ++#endif + #ifdef __PSP__ + #ifndef FE_TONEAREST + #define FE_TONEAREST 0 +@@ -100,6 +106,9 @@ _Static_assert(_Alignof(JSValue) == 8, "Vita JSValue must be 8-byte aligned"); + #if defined(__PSP__) || defined(__vita__) + #undef CONFIG_ATOMICS + #endif ++#if defined(_WIN32_WCE) ++#undef CONFIG_ATOMICS ++#endif + + #if !defined(__EMSCRIPTEN__) + /* enable stack limitation */ +@@ -2167,6 +2176,8 @@ static size_t js_def_malloc_usable_size(const void *ptr) + { + #if defined(__APPLE__) + return malloc_size(ptr); ++#elif defined(_WIN32_WCE) ++ return 0; + #elif defined(_WIN32) + return _msize((void *)ptr); + #elif defined(__EMSCRIPTEN__) +@@ -47284,7 +47295,10 @@ static int getTimezoneOffset(int64_t time) + } + } + ti = time; +-#if defined(_WIN32) ++#if defined(_WIN32_WCE) ++ (void)ti; ++ res = 0; ++#elif defined(_WIN32) + { + struct tm *tm; + time_t gm_ti, loc_ti; diff --git a/hosts/wm6/quickjs/src/probe.c b/hosts/wm6/quickjs/src/probe.c new file mode 100644 index 000000000..9971eb2b1 --- /dev/null +++ b/hosts/wm6/quickjs/src/probe.c @@ -0,0 +1,152 @@ +#include +#include + +#include "quickjs.h" + +typedef struct ProbeState { + char text[128]; + int print_count; +} ProbeState; + +static void copy_ascii(char *out, unsigned int capacity, const char *text) +{ + unsigned int index; + + if (capacity == 0) + return; + index = 0; + while (text[index] != '\0' && index + 1 < capacity) { + out[index] = text[index]; + index++; + } + out[index] = '\0'; +} + +static void ascii_to_wide(WCHAR *out, unsigned int capacity, const char *text) +{ + unsigned int index; + + if (capacity == 0) + return; + index = 0; + while (text[index] != '\0' && index + 1 < capacity) { + unsigned char ch = (unsigned char)text[index]; + out[index] = ch < 128 ? (WCHAR)ch : L'?'; + index++; + } + out[index] = L'\0'; +} + +static JSValue probe_print(JSContext *context, JSValueConst this_value, + int argument_count, JSValueConst *arguments) +{ + ProbeState *state; + const char *text; + + (void)this_value; + state = (ProbeState *)JS_GetContextOpaque(context); + if (!state || argument_count < 1) + return JS_UNDEFINED; + text = JS_ToCString(context, arguments[0]); + if (!text) + return JS_EXCEPTION; + copy_ascii(state->text, sizeof(state->text), text); + state->print_count++; + JS_FreeCString(context, text); + return JS_UNDEFINED; +} + +static int run_cycle(ProbeState *state) +{ + static const char source[] = + "(() => {" + " const values = [3, 5, 8, 13];" + " const result = 'QuickJS ' + values.map(x => x * 2).join(',');" + " return Promise.resolve().then(() => print(result));" + "})()"; + JSRuntime *runtime; + JSContext *context; + JSContext *job_context; + JSValue global; + JSValue result; + const char *text; + int exit_code; + + runtime = JS_NewRuntime(); + if (!runtime) + return 1; + JS_SetMemoryLimit(runtime, 8u * 1024u * 1024u); + JS_SetMaxStackSize(runtime, 256u * 1024u); + context = JS_NewContext(runtime); + if (!context) { + JS_FreeRuntime(runtime); + return 2; + } + JS_SetContextOpaque(context, state); + global = JS_GetGlobalObject(context); + if (JS_SetPropertyStr(context, global, "print", + JS_NewCFunction(context, probe_print, "print", 1)) < 0) { + JS_FreeValue(context, global); + JS_FreeContext(context); + JS_FreeRuntime(runtime); + return 3; + } + JS_FreeValue(context, global); + + result = JS_Eval(context, source, sizeof(source) - 1, + "wm6-probe.js", JS_EVAL_TYPE_GLOBAL); + exit_code = 0; + if (JS_IsException(result)) { + JSValue exception = JS_GetException(context); + text = JS_ToCString(context, exception); + copy_ascii(state->text, sizeof(state->text), + text ? text : "JavaScript exception"); + if (text) + JS_FreeCString(context, text); + JS_FreeValue(context, exception); + exit_code = 4; + } + JS_FreeValue(context, result); + while (exit_code == 0 && JS_IsJobPending(runtime)) { + job_context = NULL; + if (JS_ExecutePendingJob(runtime, &job_context) < 0) + exit_code = 5; + } + if (exit_code == 0 && state->print_count != 1) + exit_code = 6; + JS_FreeContext(context); + JS_FreeRuntime(runtime); + return exit_code; +} + +int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int show) +{ + ProbeState state; + WCHAR message[256]; + int cycle; + int exit_code; + + (void)instance; + (void)previous; + (void)command; + (void)show; + + exit_code = 0; + for (cycle = 0; cycle < 100; cycle++) { + state.text[0] = '\0'; + state.print_count = 0; + exit_code = run_cycle(&state); + if (exit_code != 0) + break; + } + if (exit_code == 0) { + /* Expected result: QuickJS 6,10,16,26 */ + ascii_to_wide(message, 256, state.text); + MessageBox(NULL, message, L"QuickJS: 100 cycles passed", MB_OK); + } else { + ascii_to_wide(message, 256, + state.text[0] ? state.text : "QuickJS probe failed"); + MessageBox(NULL, message, L"PocketJS QuickJS failure", MB_OK); + } + return exit_code; +} diff --git a/hosts/wm6/quickjs/src/wm6_math.c b/hosts/wm6/quickjs/src/wm6_math.c new file mode 100644 index 000000000..b799d1532 --- /dev/null +++ b/hosts/wm6/quickjs/src/wm6_math.c @@ -0,0 +1,24 @@ +#include + +/* + * The Windows CE CRT predates C99 and does not export fmax/fmin. Keep these + * shims in the QuickJS-owned executable so no allocator or CRT state crosses + * a future host ABI. + */ +double fmax(double left, double right) +{ + if (isnan(left)) + return right; + if (isnan(right)) + return left; + return left > right ? left : right; +} + +double fmin(double left, double right) +{ + if (isnan(left)) + return right; + if (isnan(right)) + return left; + return left < right ? left : right; +} diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj new file mode 100644 index 000000000..596eb08b8 --- /dev/null +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hosts/wm6/vs2005/PocketJS.WM6.sln b/hosts/wm6/vs2005/PocketJS.WM6.sln index c10b19912..7a4530335 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.sln +++ b/hosts/wm6/vs2005/PocketJS.WM6.sln @@ -4,6 +4,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocketJS.WM6.Probe", "Pocke EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocketJS.WM6.Vapor", "PocketJS.WM6.Vapor.vcproj", "{970E99AC-1918-451D-A515-9C23D9C3AC65}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocketJS.WM6.QuickJS", "PocketJS.WM6.QuickJS.vcproj", "{AA37CB32-6044-4A78-A3A5-1F58080498C8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Windows Mobile 6 Professional SDK (ARMV4I) = Debug|Windows Mobile 6 Professional SDK (ARMV4I) @@ -22,6 +24,12 @@ Global {970E99AC-1918-451D-A515-9C23D9C3AC65}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I) {970E99AC-1918-451D-A515-9C23D9C3AC65}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) {970E99AC-1918-451D-A515-9C23D9C3AC65}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {AA37CB32-6044-4A78-A3A5-1F58080498C8}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {AA37CB32-6044-4A78-A3A5-1F58080498C8}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {AA37CB32-6044-4A78-A3A5-1F58080498C8}.Debug|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 6 Professional SDK (ARMV4I) + {AA37CB32-6044-4A78-A3A5-1F58080498C8}.Release|Windows Mobile 6 Professional SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {AA37CB32-6044-4A78-A3A5-1F58080498C8}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Build.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) + {AA37CB32-6044-4A78-A3A5-1F58080498C8}.Release|Windows Mobile 6 Professional SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 6 Professional SDK (ARMV4I) EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index b3dac9f4d..ac8f1427d 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -1,6 +1,6 @@ # PocketJS Windows Mobile 6 VS2005 projects -This solution contains two native Smart Device applications for the HP iPAQ +This solution contains three native Smart Device applications for the HP iPAQ 212 port: - `PocketJS.WM6.Probe` is the first hardware gate. It exercises the screen, @@ -8,10 +8,15 @@ This solution contains two native Smart Device applications for the HP iPAQ - `PocketJS.WM6.Vapor` runs the repository's Pocket Vapor Todo component after ahead-of-time compilation to portable C. It is the first application UI on WM6, but it is not a QuickJS host and cannot load ordinary PocketJS bundles. +- `PocketJS.WM6.QuickJS` deploys and starts the CeGCC-built QuickJS probe. It + evaluates actual modern JavaScript on ARM/WinCE; it is the first runtime + toolchain gate, not a PocketJS UI host yet. -Both are VC8-compatible Smart Device projects rather than desktop Win32 -projects. The probe exercises the OS surface that a future full PocketJS host -will need: +The Probe and Vapor applications are VC8-compatible Smart Device projects +rather than desktop Win32 projects. The QuickJS deployment anchor is also a +VC8 Smart Device project, while its actual runtime executable comes from +CeGCC. The probe exercises the OS surface that a future full PocketJS host will +need: - ARMV4I code generation for the PXA310 device; - a fullscreen, dynamically sized native window; @@ -21,8 +26,9 @@ will need: - hardware key events; - runtime screen and memory reporting. -Neither executable embeds QuickJS or the PocketJS retained UI core yet. A -successful probe run proves only the device/SDK/deployment layer; see +The hardware and Vapor executables do not embed QuickJS or the PocketJS +retained UI core. A successful QuickJS probe proves the JavaScript runtime, +but does not yet connect PocketJS lifecycle, input, or rendering APIs; see [`docs/WM6_IPAQ_212.md`](../../../docs/WM6_IPAQ_212.md) for the staged port. ## Build @@ -35,10 +41,13 @@ successful probe run proves only the device/SDK/deployment layer; see Windows Mobile Classic/Pocket PC devices to this SDK; the similarly named Standard SDK is for non-touchscreen Smartphones. 4. Open `PocketJS.WM6.sln`. -5. Select `Release | Windows Mobile 6 Professional SDK (ARMV4I)`. -6. Right-click the project you want to run and choose **Set as StartUp +5. To rebuild QuickJS, generate `prebuilt\PocketJS.WM6.QuickJS.Probe.exe` + using `..\quickjs\build-probe.sh` under WSL. A known-good ARM/WinCE binary is + checked in so a clean clone can deploy immediately. +6. Select `Release | Windows Mobile 6 Professional SDK (ARMV4I)`. +7. Right-click the project you want to run and choose **Set as StartUp Project**. -7. Build and deploy through Visual Studio, or copy the corresponding executable +8. Build and deploy through Visual Studio, or copy the corresponding executable from `bin\Release` to the device. The applications have no MFC, ATL, .NET Compact Framework, or redistributable diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.Probe.exe b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.Probe.exe new file mode 100644 index 0000000000000000000000000000000000000000..04b75518e94cd75656bce3d9919ee70c6281660e GIT binary patch literal 789579 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�sIPcc57?c5D8WsSe8 zqXSxDZ)V-4UR6HRS;)Ouj+GXBP5xz#yM^A?-+X_f0K+X!Ayfb-n2 zY%Tl!#r)n%^qxMy{87yD_`JwRbeKSSe2wVx#BuPO^}zgYAVcgH}PL-$35SV9}pxn$E49~`~-k?JKO{y*XUXGguC zB|aIYqp8l9I438VAD|9+nBOz_jVv_3=kQzQF6ZpQ!;fK4%;H-@j%e_3MtVUE;71L?GF?ZnJY;d}u75v{d%W_rW2QaW*RZ({7z3NE`vJ)UdA7yJBO+loc(LNzU+}Lw+koFpdpGO?jmRo86di_=fV;EQkA!<+q^%^f3r zWHZpaCU>ccp%lGexQCqF*o1B%eq=1wBYIh0Ee^4}q+*D2(d%rn-drM}~F<^=hx+@X@gI%9|5!S7&y zGn@Ll(=4`)`lVuJ7yYtlJ*Ho(d@C!7t6u3(#NMs5E%Imd&xdac1713N@t`ws|KRrW zzH%vi$N7K1X<(^8c7V96;{AioU2FV3;ky#gA1ku|qVD6H@Avjl_8FdW@9dzHxTo62 zo+R#oM`68USSqoBZ+YV74COi~hd+>5x98yR`Nsa`5?9v5TvEQ)UhaUsF0{3zpo_&j zZ|yIIRh~2O^}#%_ZiuwmKwD|rxsK-Cntzrezod=*l`!Z~LnLMR8LOd)MtVJRpC=r=CaW zDzR<@SFzQa@3NOn4sqA|Ob#MqR03Qr{tj`WW4Wi#$^Z4B#oywJ|IlyBb2cCXW5$VK zh=#8NV-DwC#IL4r;QJo%?TS2`!vAD(1OALn@Hu)kIm?%#KPL0{_$lV1?yrf{uk(1e z`odcW=P@7f!}+lyJj#5TmR~v8(Y?~=GM}NE0nV2U)Um(%sP0tcyml~t+otYseCX=^ zjWfE*Ip2M&i!FKlnlWSCEbnJ@--=2>%=*B(2~L4C^wg7F(YxhS`q2N@R8!!n^Ow@A zYBSP*7nw7{w|(kXPx++k3;PY9K(7huOmY0`YtD32PBSt2ipLLdK>w_F-F5zz^rzeG z7gl?_E_}f2rY~1Ax08kDLG+yZd4+ZU?2_s%s^owd11HYaxZ)MzuJ}sv$F=CjwfM;E z;g3A<8sJ~jCnqjBZxG%-Q5Gg5KSa#*WMbr!HXB zQ@;T|?xNm2>Rd)$*)0|U>$FJSY1Exg-TBm=Mw#in-=;kA(EYnH_GaN6X`;UtrudpO z(f+(FbFq7!uQ_FTyvdVocje)3H;`?2iZ?UJt}L>vbQgFA&%3FAE%np9d*;IXJ)g?#cI+A4L6Kmb zZVSg+qHAY|5@9KD>)FIEBId0KQ^mXCJX|&My3z zVgJ*Tp#$FeC z%}>Uh?maPQFCRU-?kV(JJ`aZAtikW$zJP6`%50;| zcFJfzXg*D*jFmNZ&9d;UoH6nhS=q-p#0!i!>zI>Rd3Z-i&xE5j=v(Zo1D;JV&O2!5 zVcN0sRXVELR6ab-)i*PCTK5Gzn5!nP?7S4TwfNV(0sLPUe};X0J^T~@AMmdU@gIX- zRCuS6@9M{q{p|fBeIT~&yyq#~9Li4hZICk0@vJy%EQ-)*3pDzvV7uBIVgq6RH6vS| zpkLEV>(LQ|Ic58phHrzI@B4@O)fr&D16BvH3J!TBTy&al?hWZ$>2t=1Ikm~J>q38K zp2#o%ZeS;!34R*6K-`3hU9ofgOg%#fRQyC6?=l7_?)QAtX8$?f*)eW&xyzCD;=J9l zBYW^e*frVW+jJ5*dEk^z0H+f;KLk!X!y1^?S|tB-&=<{nH$u-lq33kY9Ln~uvA~wR zb8^=vb00+W0DKLv))nAY`tG{R4W2#JakKXf^O}(x)Wxo}(;epHzQF?Y9j5gtxnOB* z^)_r@L-xEjx=$nHU}BON@;nu`dkyWXtr}!fz~>(=OJ1p6+s?`Ownk^Bu!Z$T_*QYl zb*u}D;cj-AJ1%xj+K@k0zu&^|_v#%yY1T{0P{vYi=XhtwnX}bqjI}Q5T%y(`@e%ti zua33Fj;GbfCJAOqFt4nz#~of1qHxmWQp=nG)`|2x*^eEaVW2&&g~CHP;C~p#y+-X= zJSnF&&yIoeFf|Rp*Z38O{`5-AoIGcevYh{X;0{l={dw#oy282B057cR?eq?!`>P$d z$T~1)Lp5C<8S4~nkImoXIfVxYrL#x|N^gm_iEidM6_)y4@a1L9G3G*Lj8`n525nxP zdLKT?HHT!EbJ62=^4T>u`(W0~~j?AIqf8nd%9ps|On=t?;tlO9vJI z7SFE(|8EY8=fsm);7y|)aMqnjJ7=JKU&z4S7TD>O+9QVR@Ou7l zi|wC^3cwqU+;m&3%vrD`B(F5O;-6mm;1iNt}z5E%-6|`QY>N zsp9X#*5Txg4c*-DYxCpp{)yJify27(gza4Z>Ge3Xob3ETwH2o=(H1?)_%hyv>`Ov(7yAeHWpKjYh&{X3yvO!U zo|G78f3QChgNwhKwv$=;FIjukH_m4(-U<6hAM5AsDkFGb6pobBf8pX}FCEmm?^sS_ zPdtLort&UBd_fKw@;3N>7BD+FZ?E&#>DcDCrW^URZ+d)T}@%KR6(U-HmVx=4(3t#4Ofb)Ggm-rT3IoL@EI8jqDKiA=DL zk1t_&k{sl$Eqn2@?104H>{N_)Q?CCxi1v>)McG>DXE(IW2X<#0_b?`Vt+&1LABiV; zq2^rb;C~{I8MbxziC>~8{G)h$^=feHzSY?3;+%=m{>)(=4eV44%gExLvL`uN&M#A5 zv5ty4uy@hcv8XBj;9)-F`EBBbz2I)XtB8||gO}*6JfP1s>#kW~mAE(2Lx%7zd+eJG z4_#5Y4w|SBTbFajXdCk{yWC3-tnr1XZ0FzmXY2{eRm*QZV=U@7J*ynPU1fNL`1j9x zwWalk>N2c3v{geHwe>&b#YGNRY`s4LNBNsOvBP7JfQ%onK#!K`De3_GMdi_T*}t=o zjZKE8;5TpTUHQyUhr};Y_{yZadz1GNGCUjly`GFML46Av=vMYQ+XbE zDjs}tapmCT4CBo@m2fsxlk_Ly+*XZ)X9AcXK%T}*jMX;!z<^&H;c0)AF^O9-z_ zfRkN+gGHVOjx%rA@#sSf?K=bDRFv!q)`$BNFZ`Jx^an?SBI9}+uVwjFE zNxl@o0o+7Gt$n}KvrK@OaMe88B>GV|odKR`*S*pg9Y<)l5!&@u=S>L4_-*7U)%Z>Z zx9Q+EL%3xF+;VRax1XH=w>>Ao?MrVEx9v>rE#&hMuTKeSQli~_NQ3LdQz5@=ZY&OQuygR! zv==J{b5MLE+%yM2$@3G%$GNAFCU!ht9Jd+1 z!WK;(E4#HuOosPXQh&J}PsU)RFB_^i(YNS$P6g*%Xsd&9I#HkAagshg&-1i+<%DzM z9>(^L>O621Zto2H^%?LQp#8P9r#V3^YyEnQ=PF{yr8dqYh$sjwE%g> zxUH@xvzm{6Rjpgnxp)8lh#cGI2DYF_^el6{9QzCCGc3ot0~xEnj+SHO^D}fhOZ{PN z|Hv7r5;#4ken2PI(E2?&wX=2@7sa?)y8U7l9fqiX74h5Bvww!((|k#tljCzKpBwnB z=d+B@CO!}Fd4$hHeEyD4Zf>3PIX?ICIl$+Xd3DZv_58UHlwhCD8M!(s+hdZi) zmEGvSoNM(T8u!oW$F1lI3o1R0OTAoSqrYP6YTqe0_}Su$!Rg@9hF`?(Y4F`utu@)~ z3V%@!TgQ?Hf5q2({YB0S=J9>pJF(I4?rE6Ny{e&R12~MyUKx&%1|5~ifV4to#5#18;kl10+satZfRzEqBxbKfU>`R=XY2el5+)Md;p-(G3wUT(X zmHvTDgSpee%QpC`)7IDu9b0|f9b0u8{DbuG616{*`g!W-@Qp*iZ5RErOgu$7Mx0-~ zYrnrVUTxm> zcIQZiy^Qje)a?C`=ZMzjR{somKE;_9?QxW!tf_RbzX<%cgY%A3gTL2n@Sg#{ZpO7a ze{W4&<~~2&4sDk-)M)I4Pt(A?{ zzf6IbZ<~dJbuCm^H8#48w95 zGx69DC+#bXx11%des6mZK9*udd{q)n;?J9Y3Pz%__mJSo?!p~tJ2TKibk&)J6_eI8 z=J&vB_xRIiw)#6VXZVRCev_%o>Hq$NFVEQQPum6Uyn7AL)PlQo{dk5?Y2KjxJ5H=v zK3KSQaQpk#_}4-6Tj0%nxxrr?Yw&OAVIB^U-wnJHN7;ArTi=fMa>{e$^64OkLH|2B zr^LA$^+UOr3$(4ge9B9sb_Kr%z91fN$kbO|V8oh&`f<+NBsiOb+=EA;ANfVn&X(%* z5RU3vIJ$$*QC-2HZP6pvq;pc_g91(#J8&FWJ&dnnntQO@nf#OP_7?_+2d#v>*^i+rus#H3~dz~GM$(mKGC|J)Q#tlrz>Y82Jco~#u}O&%p%9$ zNZ${f_iCK`1*dG`+~+%`Vr3XsV@OAGtZV&(FMGM?uRje>J54LAS3TtrN25EmmsUlG zr{6+O5@>P*?bxv+Hqyi|z1wB4hwNU&y9DE`a<v*?Y_;Fm${q%rgfrgcK$qNAE+~AC^|#Pp z#SV|b?(&R#m%j%eBqz+_1-Cz-iPKLx)6W^eQQhzVb3hy9RZHP5$nhnu)VZ-Tqo=ih zMyz#RGTYogt+CbAM=w~#{-r0GP4$bG(?a~BywwVhu}B}?QGFO6zK?}8I6D1!8Z_`; zbiD8Ux3vKN`Xzvm}6CYj@>(o4?TnPo~h4PHix3hsBf!~E(69)gX z1AkNttepeM!Mt5#Zmc8=ZT*s|*pGTmyjmgMKUTIl&SfO?eYD@p-BNufpHg*TZV=Do zEH^SZ!?)y$_WrWnh!!98Sw{=_8V2~_yLS>>sy~&i0WZ;U+x5?uo51N7`rDMf*DpXX z(KO8AcmK&~dlThvplk{nt>7F{8heTETDIe0L^o3$270&QJJ}56R}c@^oDT(kajiT?9K> zOM)`B1>|O4^PBVQjrSZ%F-K<{#wU$ENcY>xwkZ36o=^M7SB@wyKIyI}j^h@1bX>p6 zi9Yh}5s%ofbFxi3SLyU0l>SBD<}!B(?NnRUY^#6NMb{zkrp76g>60CIsG6Betles( z>kAk3)5^~ezH$T|)kjC=)9P2YA?l9?X6g%!P-K9gUWqwIMN#?69ooy66@${^{@U+`C zSk2xwp@uP$?y7m3&gjH#WOyS(&K~l3n;iS(o?j8dR*prxb}RvQ6R?|40y_=t zpxqJJDc}k|XPMz+^7m6l?F9V_%HabF%0${vhwV2<+E>hS+G#qhcBGd^+e$%O(@q4& zo++=UPYxIfU}y{!HzA(adGs{77v%>sYd>_+SdE5v(+S{B4smh|vyER%c-e7R&Lfv` zPBYGmm8~bQchVWx-|Pmk3o-INI&tP>Pqpm?uqXUKz!uERz-+TlWx{rv3-H=N61oR% zZOguzE`Q|Sk>-#lF7+hG?0sg<4)y8BO<_ID55JAp3HvYFHs>i%o1&>p-86M)jH>(3 z)IEaT;N`A5=gj$>1?97f&$syel#kBemidlfTIY1~xrmR>vNwnAWJckdq0KhhEW~I( z#MiXX^EA(AXD1#vKmVTgGa;nWc5id$6ApLV9KR;4ZVlFi#ZxB^>&ov@+pJI8 zBfeO;82niiv+U^#>|>~(TH04$zH2tV<+j5fdX?3uup^kY*mE0!FM{(dOqMG zQ-ZbJ&0K8Or>)!tptz+JF_!WdvL5eD6}vJue@T(Y%k@V<|hlM5wj7%KY+d?9asI4e^j`Nz6a2Ol%qxckl!kW&C>H4{LiOj z$Mpj}u{;(0YX;Cu3gF)bj2u4h5WaLq!IM7tMcr$F{-}OPFH}CdWJ&u2uY!H69M3HF z>Zsp~{iQm9{bkkCLrLyGpEfO+6RBL!@cOkY(m%&zKdJupX#AQFr!&pIblVphGuLfq zY#RJy{MNWi57L-M$5Z1U9n&U{*m}nF82Y2e?`Sx-dS-Ypq>Bq(WY;?YUB1s5yV2wO zVhd+=8Q+|xPd-YYIc9vN&kE+d3~jhS8hUAr4P7`dBDy59i#@B4D%Y@RB)w|hdybbC zw^*96?-tD38~V!MI5*Ilmd%`v9>v`j1?bIKq4%L`F05qvR$1fo%mBC3AqhrOHNuhl>>Z5$u6kpj_bcUqM{C8S;LkbZop#@(c)6roENAlUuS(deJnBRLR1Tev ze$*F~lLWi!nD1A6VIb`ll^e$yQ>Y4#;<;)wfljHpmMUW71b^Y7J;&HwvHUgkG40RR zLT~NSu07{?x|{=DWV_LP&{)T@;YcSC&#Mp0VHF3qUF%;s4S!Qs`d~<}e6f5pu$c1c1}P1y%yvVbdh~T z{CW_+dWdJb6DWqRfzDl@V4r|Jcf#V+CQkVG)077S*(5o}H}lZg_qu^UT95n>@>$FV z7u82cH@f?GPMhc-JPq3!IIWG~bVOyBuxB#zZDHl#IKQj@SiAL1;)e}gN}BJ*^4X$G z{$5{u8|}U28`u6(@Pp5&1wJeN$lctRjYRF-iq$DpywtG;Oa=Z2OG*+;he zEwr&5U2MkmSNH8F;F~I;t1_P2(djk6n-t4U{0R{I#D zx!K3$-+{&x*U)LJQo*l$QJWl+pt5;8tkLbNzSL$vUk%yvTw@jLl>U?D7Xjb$l>AP{o&i#+Y86ZEff8j z@S)nM%^8VjXyKS9I<=Oag_Pf=~_QeH*-*P>rdps zyOU?bdWS=v6RrE9UE0AeE&ODcmaURG75i!&zTg>sFmvUZcTDu3IS)M7J4e0@Eak2F z0%bIxz%6#LWn#^#W8}*U{vYN4DezW;{s{M%>Ek=jaE>gtcu42)u!)zj7ccECm#_mp zhTTYd%yQP~^ka8&Pt@&Z&R8Fk;EZujJFL00mbsy|#__raiF-wkW9td+2WjW-W-kNJ zBR}Hayuo;heR&pn$(kh?2TI5R_(JQT?mw2V^vC$H#HVI`bdW*3^BiEf_!mNbN4m}d zt%v9|S|6n+xXfkAWQ*HT&LIxV2HKpgu|lU2-qK-IPIFs*xSsn4tWKjjuKsX_IM8j{ zmwL;0Y3=Xzvoq|RXI%*W6}veT>p;I4^piX{`^b=HYNHd|O_jO&jn!JqW)B{P7P?O& z1wNv)=q-5^rLC18=R;fRyPX;O%A5=6OHLkaGl^U=(F}d7(9p=U+z5?di@w)D-v;RG zjH0cj=Ti9!p_j!$efS~rQF>x57x0jHTsZxYk&BmA_BU(YUTZtd&ZiSv3g6MT-s$LCp`Y7BgM6rL0BX&scE`(FC3HEYfVBQpB}`eWB}t-tGk8S-HvSXXX0 zv{GA5hkps|6#Jtj>+%X<2$rP_=ckAFI+`Cx^XQNTbV&FiRhnkjMD;b>)8LE0bT8TG ze+sSz?m2MC38TC)A-$wGE$eWO9AgY$g0}jvx`$tQ<;Y9OI?*J~IU7Cef?w<3%zgJf z>xfadk+mi>H_m#N;(hFKU|Jni<$ux=(6p1X&6L%9Y|fQC_>SSbfY*j)q{?55pZaKq zzA#>&WDJjn`vz<8{4u;~c$(*Cy`e2!T7lds_Xc=a zT^k()S;{7T}>7GhzBKq2(%F&i*9N|cX!!6qn`=ZXV#ksgTA%;n(Lp1SCnr>dj$R0 zIZw{qoM+2?iudv%Y~LNkC9n?H?-&>Kp&HUbaR!oO7ZFEb`>Fclz@NE2ER!s4yGpJ8 z)>4B%kMAvf&*A%69@$)I^^5$U&Hs&juZKt07MTCY?dCH3U&_dCF4)eSiFIKtw}Qg} zWmk9&{&LDMrTmrCm=ocCN@b4{2dnQcx0SOat^SMQ|2h1h&Hrlnzq65cpzlHcTe_*9 z$NvuArDEtS8QO-<$1=>hY=i%fNdGL4+I~i9@e5#xj^e!}c-ODwJQ8;$#2B~2xITaB zq(0V)KsUEMC3&AK%^lR*sxcL=T3dy;p@H7h=Na^QRugt_;TH1F55hj>LOLj>m^?W{ zRxW%3-60Fl3XbyF|8-bicPVe-_pw5-@85#YS$3$X4Eyi@4EO!cem~sHKzVW{0t<5&6WkK}HBNx6lttenSh`O53~--S59Vz?{QhW83d(yv_R#IK;6(q^PU-2aCt$ zs+U1$qn_E*qJO9GKUh2Z%gmjad<)pMg^TV@7u@w>pLRt2-WNssq?n(ePj`lWy6-jn zln?#w(LTK^(kHh)=u;1S8QZTL!#+);ZnRIC*XfhHWTa0$jmtdsOE9kq`*e_)bxWU9 z)Tb=IF~;ab<1^adxRtsZ>u5h-=AL#Z92fC}+R~U@9JJ@(pgNH;(eK|;NBXlJ2gc`M zbS&&RoD<@ljo|E2_hpa$J#k@NF2Yy_aRj4refgYMQ7d8&I#&np{}K?+W$RksK%g;vUVKr75qH? zg8nHtue2P!0o#`9x$d2V4~F%e zNWIHO*Mm;cdd<*lV_0v`v=Lf;fO>9^_zYh;^6zA0ww5}h=frzeca`{zd>O=_oviMn z6V&Zg-Cg3djqusVlh$oJLEY0;7ulqk$>!IX8{XNk#<`xl!+e2mvoNH|cFI~liwQom zDi|l7Q=NABLt(iUk#hg}@01I53FSpmxmjVkYa``;t8&OIz1KJh?zv&P8If`o$_>kl zQGDit>*TObDpKcHqv~iZqvNhK+iwZ$?ZsDY`?zOxy;aB8bD0ZnSZ{r#-p_Z`(^%p}W{XW+OyvQH4B*g@UV{C2Nk#NbtA+8cr4oxoRoyI?@e6teA& zz}R>K7&i+>JL8#M{f1!ZzK79$xlSDdmCGJ zYgqOeK4V+*=HhUFIL%ILD@8O(3V{tmMuog&QRI1Xy1gsuJz~( zj)z#7dTUKA$dXe!`*$TUEl)iHJSU5ODR}UJVpHQ&?hE!k@NGT&7};mBXJh{c zZlU6c%%FH*HO6eMgVtU7;cg|D!8%}s?X~C5#po-=j8}~>!NVr zg8|39tp2lDW z^`c{tw{@YJbQa;%J7pPlvGb!Fs$ad0cXRhvU({iL6dv-#IU>0el_e1qOj4G3~cmXjg9Tc&w**_*cZ}qBd{$0 zoE3#pvM^R02jdX~Bcdxuc=9hpm`5Wpn=MR@jdUb4HtbU(cxk*RH%&CMaN&oXBiBGz zi|0o}n6syi;F%Ci_|WqDHqJMwzs;;S@G`m3xTk&UB(IrR#hr!c%Ibe=33=+-^G=|x z4xY=;L%f)5y!Bc4lEKHBPif@)Xc-W!nTh@wFjMZ6=s?TRg_ilv#6t4h_|j9HgGlpS zLdzeG`-ql~r zJNMDoy~ch-|CndSPv-0=AEoX#;Xh|!Y);BrH?8wJoFB)B#$7n+UA@Jz6F1bvlRJ`+=YH^@101V`H`5!dC<|? zD&o-1tS1?03ZKMh1bl-0^1jj*;IkHd1?O7e*s*vYFznn=KMV|=*I3l=eLk#5Mmtk) zW2D|$W(@Zmeo-6OhGoATmfaI6JBhL>cN+G8WF)bG%Jm*|xTAqQ&uY{Ewfq;Heaq~h z0RK&H%$*aqcTL#d^oUP-%nT$D2a9Q$o1Txg%rq%h!Q>_Xylr2saK~gRc|9Z4KcriopGQ;My@ae1klUHFG8f zx#P6sKf<@0cF3vY_Iok6+Y@gRw_ZVB@_b8m3$R9?RrwY$EidXUnB_<5UeMO?WYU$t z_-fCAHyz~}0j}(ri9Giez(X$sH)@}ey=9GPkcD^P8|6Dd{OS7IFj3(YkG?p*+=(CRTC+j(KQ}Ox3@8z$pB_=>V+S&p($WkCvbuLnMXW`>A zzG(SZ>5KJq3D$q%pKzSOk7w=2U7>uj^1hLA5S;CtOAs8%ds`M;ZQv(ly_)j#z~?Ra zf-T(3f)5^Jpu6=WO$Yu_S)-9K3&G}yW z3O1z3dFW#Q7Oh-&J!7(pxXe|45bHqf2C$VE*hPk_uUdCxKgZsyJ8XACJJW_@`URWy zcBs81UsHgud{**j$(J>ESs=qCPp!>deS-FtF@<8~LHcI>bMVAaXI6W;WyZfG+@og{ zj?qV*Q&7Hyr-(=SaAOcRBpy)gkm9qC;Sbpl&O5XF%8k(DIes52;Hw&#OAg-k{)$!j zG`rx1oOp)49{Patc-{d&Ci$(Hher($EvW1geX`HPzY8kY3Qh@MGdMSM);8G%Uk@lg znlqo-)BB-OZ!%lgFW)XcAv11YBTj=HIXa($?9iR1(s}1sCJ~z=8cc>xS?E*;-4uK1 zgtX!uN=xv*)z8xB`^meKg)YJa`+I$~jgLXUMsgzST|4inYu2@Y#dj*%Om3h0niBq} z96qKld`QtLi*R3OcAQ>C4C5 zR{w?5gLd}2&Q8gKG;nnPlkQ;s5aX}1dvM4mHCF=_&GybJO-}O z{tWXe<9@&Tlj|D%F=Yg^$%QwNffqr0`8vgmmN!$mW&Y>U`5L(&FP0^T4{b5mCd7M| zn|l>>f0SE#-d`T;_2iFPK9k&t1=)X>nY_t@FJ4YD?!V{{`nQSxeGGj@w7PaztACy7 zggjHsrRZe+s!8UV=wx6(AHk4cj@TbF-gf{;=bSHQ+*O8grTpEd-1e}oUdmj^dn?22 zn6J~?lL=z%I0IqEQ99{=xcJSxIAa74>3ss8kiHWeRrW>7S^tq@AyxK_W^xI@hu1(? ztwnlfVRu}(+2}`6-KggGW<5F>CnhwJz1r(rveZk0zjSkR*Nm&P_qY3fjcX4fLlTKX zF@gN3IamnJYD-r2#g=;6!rVb}T^RjQ`FKQ&zA0-D{hoLe@d-J~6WMG7XXlw0@S@JA zYYw3^8oG(6`pEYi%sbi^9eFPwRu=k2W!cS?6P@u}4a;ZETN}5m^)JadQ6@n@#*1!+ z*aO70^i?w#yqX4&9VHf?b&md3=pSX1hi%MEQ@+Xc-|-j&V5(p8?H6(@@w34%`39dP zTBeU*y}h)J0s|))fcW8eyj;v8{*-(u5aT$rBf7Zu>ar|%GNY^)2y$oy&Du`l*;MOc>K2Rc*TpgOh+ChfHjsfT9eh* z-qy|jhne^KZR3o71w5U_zvEQJR3;9Wg0tSkd$_Z}Ap>ug)!1(2h<-cV7f<8AL-a)%I-e}&aHeIy|4TD&N{Rb6)=fS6ftyqNJ9o_mvY(uptO0G% zZ+1LZVvn3(IU%V}X=P2yU0I_%>kd9=_zIhE;KTP$4Se{vf9II~1^iHm^iMKO@yMDp z;z9AA&XH@(?O5;o9lV!O%$ayckVqqAQlsGg z1b9|Y7Y|uI-NtSy_ki|~$~U6;y{oVa*!nfBu)Y&V6ClneIb3HN}n-2Uy#C4)}rIK5sC^i|yMvL*K&y6_86@@%2m zk1IyD5K}&K#ok`r>txpS8{1>1ub;fGLn-Gu_U10*iG9M+y!I;be4#9PFx(f)b)b`K z{yz)vqstFf3pTcCeO3IbxB;g`>>B!$J>#l%@JsN9k?-)QU_$ej$HvOO5y(<|wn6cO z4UDPc2RGvHE)W|W9lvW%LhoT+^(6E@3caU9>0J=LQvtm>GvMr6btu)-<0%d`mY+Ac zY!~{Mv)oh6b+SZ0L+<%P$7@NrdxvR$%tH@^?qf3%y6;+l=)y;zf$mp^@zTl@u^PH7 z4?ylXx)THQnsguTQ-ton2yH7zPeS+T`X{+Um@m zja7OvgC65*4Y}T|pW;`o5hmUoo6=M_J#0sk4N117Vfzt0$;~@nGC#n*Smy4rmP7{H zF{dZBi(ki8V#J_B( zr!v1!#6R$3e4hmpIPk^Q?X9frP(kDtOm0y(`EU$&Li*Fm?@ zc9jJ5Gq#m5-^T{_5R#{oE!$2B^r~xtAy`qp>T+PE(K+0K*@JE#`H%ff`iIWdGB?b6 zd0!W>)L)*9W`-6`oBfC8pi6+S!41GkG*}$?iJ{7t& z6MyZx8e@D^(8KE8X7673AZJQWKWu4qIW#)c(BKQqn}9|K$8GjM3ysXY#8%QQ+Gww( zxd&}17tn@1Kw?U-=d`arq_rbP4&GiPXE}p{JvkQSFm2Hu&&H3YL;gHRx;$%z@&)v^ zuQ_z#8M~3OmzsP0M5AjbG4Jq)Kl(xExcJPQ=)aTKzAT{44a2lqUtPj)>Bnb=beSCS z#Xt31&ZomK&FEvIgA2c;p@Tge73CZE1T@*(NPf@=P4+z_eql~azsX28hBPr}b^6Hn z6rN+zT0aF_4{}oWIQX%C8M=U7%XJ?j{KLEr=1-n{z02`~_tS4Zw|hsOV_DrE=)gR0 ziLMK0hcsbKhio1aCs8oGBRah^qzl1{hF_W@e)c}-GCU_s$~VM(f=8r7DyC4rAkEP< zd7rHPATgu2{7ea+183_K(c1LngkbJU&w4x^&i{x%`#Rc+%FL*|wDx%E`?)z*w>4E#Z!$seC$O^_^A9KZOGSLntI6+e&s|De&I z(2Fg3sK}^9gT&2Ir!8Nj~Ttxvf`A zy-UG~xi_A@1ygyUIhP=Nm*$<_|E?Ju;G**e@(Fz?jjkbC&6*cyy|a8_@`1q*lG(Be zD(3KLiP-D*iP#dnO4ky7FGe1WNB=CwdfH`YAXgW5g#>w`b>5((y}=iabne>;^_fYx zEUTnq=xV&z{Nlc`N+-W23i&P?XN;RT zp$1%H^`{x#o9E?u<0hIuh`yKY<~QSB4-BnwXG3=n8_Gx=H0LBrlCdkQ=P~ESFRC~G zU4j0sdG_0;U~D>w!S7(dYTq?uQ&(AghFIqncSw)H{;9R#lnn0}&)_V<`l>gewZ6C7 zNj;tK(isii8>e#x7flT6xcraS(L1%#(N6q)V{oRq8Q%SNBRJ*JGel$L^OYekiZ^e7 zf2H5*T$%Jc(NZwZLx$?x@?1>ij6Gsur7rK4m(5)2{h%R`BiBXz;8(mD$}I7r15e@y zmyAkEA5(t08GINwx5POcPx|h-%1w-u&f|5WySS_YY51n2%y}1htf{fVzsSthkD9zf zGY0PRrx)apyqSGdaZNl^T*G;$buVTb)_oAWf%pu0jjl0rE_|lp$D3vUAa45wKLfwZ z-ymBRFe*9^MSaun%ka;y`T*x<*qVOkc>6&v%S{N*mwsD0aSpm-f=WZSV8oVb^Bip|cJ@0f#L9*wg^| z2)SoTbVz3B^lFc(ebz6P-u8k`Ht= zXM32hHP{7f?gvltRF-#jcTZ<)a7trPuU{m>4|hW#^;;Q`%wA;1 z(avc*hT=Kdh$JJ#YdPV@92c&dufp>e;3@dXteu+Q^3y10hx0uBDd=GB5VDU(;Rd$# z5!kV(iWTv$U|ZY;|L;Qht)tEs{Wrb=l@-rx%>R@B*5)hu*SQM(c7cz>xliBkIE{WRomsLA@$PddrlN^$ql26s_V>lNWV?I@xV@YoC3d5Etp)h``edWp4TOK+1O zGs;uH`9d%cSRYM3hs*0ZrxunI4K~mRoe4cUo%JhmJZ=9l#9k~zKV0e7*BiT-&d|$d z9pJw(#Q)g{{@UYO{8t6|V>esDJ}a=TxFP<|tMHeuWNq*}LcEa^-1QpBIGy8uYrX6= z%d16v=F)+z{_~`8%?dBA3tuq4Vc{)bVA5e9Nk7EnhTe|w?F#6P-1B8e6R&qW6{f z>j!E_{5-OEPfmwpB)-ivhIN6?rgyUGPhpJYS6@!Qov!s&<*TblHfaq`X50G30|8Gc zKQ3|+I8h$>bV$qRfGdB-0mTJCyXe0AM(8IvsxSS!4xF4)*WlySF+333VMSBMzTWbj zYzFH%yJdX)&=h(CLbnb=n!ch*VkRtNhfopnMM)Kkvb76jvOXInWB{ycyC)2|$P z5dSLY)Tn1ech z>x|=Zt^w!fFm6P1b{b=l&XA|VJzadRJT5J|2PDq#v-q9CE`hJN+>ZbL?HaGlKE`)k z)&zi~zfX>!*1h1@_@atvYC(p->@L-$x;TIPP7+m)Y% z`LV&xZzKog3h&*e1K0xFOl*lmK1StpQLaVp*LxZZY-4+fy=89j+&&W>+R+~^J^qsZ zGq;G1324u{JLr;ULwywgO25{5IIZQnH#d5AUt@8~Ce5|ARq3>X`7z*WuXJi%ppPCq ze`HVf&|&tYnIK_nL)?S`JEuBbwq4%GKH-3{+KS$0AvL+0}g05y?r}DpD%M&~tcY7Pk}<)!*DbP{Y!r}u-8Y_b9F>#OOIFGb6`kcNMs3TQav!VwyN3K|;w z4D&{ES#(tFrg%xPzCG7DvWyTVQMZ0$FyP|rH ze1tDuAFN5zqh>P(+HYvzvopJwy|eM2|EOS zL$hy0KW49FcuZsR73dn!oOwvw*;7a53M&-LZ=+4KUqWWu{355oo7$&J?pynmVs8Hu z7*_5-0p51MAl^0kD!@zSY@MrU|5Rur-;Z?NEI6UF)k_bO&QILSa6doH@3zc;|Gi^y3fDqtj+!_Gajw{j{Nwt2Vz2M$&~K%$3njp@YUZo?>_FL z3-S~w=I(F)Dj4gVDVwEj?M<|IMV{h!LGN*qW9XZm^Mk!rva47gXy*=tndF0|UF~6- ztvxt{y^^(6v9{S5_6+tr%GIoU1qRybmpQMO=$BkH@i3*p7Euc=t(`%Bbm6IZi0{LP zM(@S$shnuio#vsxYwr*v7FV|H6u6|&OFDK1zIS4!&dbhZKb|88$$ZXu3CAw*0B_;! zd2Y- zd=lxK`gBo5r&r(pDx71iSv%Di@E)>wAM1jqF?4A0Wux@00zMOTGWbWd`8n~0n#207 z_`#?7uiugerZ zdG;A}#+bMNU=sh$cgK0<596!Q{R6W9)MgWdiL6&ncwPIuU31))3IITQG<}i;JR4$}#tpgVV)4r?Yyr7G10^8IE zYm;%DVrB2?o1sH+$6-)^k?!1WIZFL^Q(yQpPKM;UmG3;Ynej`|9}ii$ z0NTbq*0I~sSzx6=KN6mGS$v$ri{H0!zTLK^xCHcG@=%fE4ZP5m(UA)L?vhS)`_Tbn zKC#PKS!`^`1MoPwSQ~}x4L5M+LHe)kqsnzd|62ZK%*dXi4!$|{>R?>=j|s;0F?{rP zTyJ4q#iu&Q>m;TfUbbWf{Bn1-u0)@iQ;Ow^L4!JXRrw$^kshyo<(|#hYq@iG_vUYT zniCq+I*q9tjOiyB)0CrnhnUZsi zr_sZ#P3~FzWN!n8V%p4E269r^u?g1rSii<6&^^$Z7^4Qp$iz_qTfB55dB3dO7!NGP ztc=$D%)xtIS@NqOzh}b(a|-0X`BX5b*D|JEjK@6WzlFI79ZX|-;GB_h zj%)s+N7@=PIVY3u=er)hyD|PFx-FE7VUjBer-Ir^K|uZ7(eNH zp$wKTCp)d3ql)cLFn+|3w>YI@d1HK+>6aNt;tW{Bkh#o%#*pv&)991#o=$lK=uwP$ zW+UA$&Wbk{XAyIAiR7PXoMdn2aNjC2b*RpfZ0-tVv!n4aaSFGuGjt=rVADuHtSr7$ zu;G^j(C0*BV&$sFWcJdNkI5~-kxaK^vIlstHzxlPj*0Ww|6XqF#ounnME3#MF^T4c zKTBhhVNFE#x{hKurx}~OIp33AUH%9--vp}b| zdqMKVz+)~k?!**Krp&qFyL$GCdan2H+e-NX&VB&D7N5MvRAY_YiZS+tq+oku-FgYX ze=1zJvag4?Ks`BMWVeSW}WTEDm-oyvW1_*}~# z>KI=k;}Ubfp!0@jTfRl6_L=x{#;QT|A^)WOi{z$_6CE}}!i7xVt&Ew86+2X8I;LZr=ppnl&~G_vazpZ6Vxj1n$BUz?H5a zj~P9wKE{2@iucB@G$fyVEgP&q;-7!`sv75(8A-==NVMr3`zqlYyBw#)kiR;9U3#`?)&g zpD%^*biO`nYi*0b)SMNM5MwirGXc#fqTBxo;awfVdu9~86!7Gqmp-TS!+q#;$~ojpbe3GeOE+?&qYxsvt3*8fCE zryO`#y(5 z=Y{yRodBPv5T9caeEuGMG9Vm0wwq;@_K6rL~8~RysK5}CLbo$tT-yi57FDmxnf2n`9;di%dopdj) z-5P(5yKw#QkhYJ9xaJ~$`o*t9hpyM5Lu*Kf?}o6W=j$)Gu#wlIv+`+L8aocR28h1S ziRoJt!d)N2eJO(Tg|7*BMKEqBf&05~{pk(i&YL#E6K{V_xRYNK-+u_R@yURn7ldu3-ZO&xA1iOD zjYnx?-)psTeb~l%VH=AhZIs_w8~bSE(bsC@qhTBEVH-MMZ`b5KZ>)_U(8dF=)kZFC zBNetW?VOP|zW2u37*89C(QVi{#oVpDt2-Ev-^BwNus+hpU2m+71Z|8zSsQvjA#CGU zVH+<;+W5*FYvc9%p?tRN1s)08P(FD(9@oCHHeSCUVH;b*HXe(#F_$*%zR37vGT1Fx z=X7RT_Dba_Rz7E)=a5{JJyqjiZ7a_v83+8ED^VL{kCzQVI={-umfVePR(53h3ZJRI8{odvv2Z-!~Upn78@~ODuBa1DBYg2fL_a?U^cfr)c4J4PF8*vTdh-H3F&2VxY^PRypN|>Pj$yAKmX4LN5);_ zYU7>ET2UZBHGMX@_!(2-V8`3oYoMoWGaBFX|23e;DWk^n3UIMLAR8Y)Kg927IG)V0 z@fuT&=c3S;Zh8M3;HP*;wXJ=cY)H>N41a{bEicUgrq!XYKE*jw1di_2iSov3_0^TX zYn3^(WB2`fCR>j9+}d)YK0E>*Os?r)kvH1*KaQU-71BgB=zH{d|K5i*R`BdovEzAr z9C+IJ81-pvNQ)Ek_O+w@=U0P&G~Y>_I6fC2h0S*oziAmhKYYfwEW_3vAIW!u%}{p+ z7=4tu7sGRfIfKiINmsmeEqhq@2KCE(h{5mMQ_A?Vkf@2E42MVZ~6Og z2=jN_c#cQ*jKp(jyf*^h^3Q|_Y~4Z0-Fg+)``d-jxHF37XDFM<#y#n<+GCHjyS}<1 zaeTX1jB0oDsCJtozV81lqpQpmq#hzTxQNPR*J2VA5-J;Hpb(p z&{bpmZoaL}NIs+yALe}~u5CT_*?Y4W@2&oxF^j_2dH7v_5zs|3z_Aj3X6Pb+recHE zm+?!1Z{Rx$;0Y(e()<^!6n-G%Uj){7fyG!z_cHHpAcjQpLjDhxvvp=eYvKOy*mCZn zoh6(X;GXVE?e90=JphewSr~UZ7R8+dd?tT1?#$p5#alT1gmX=z1$L9CVans;3Uofx z#uaET$d6)U=ZxPpAIN^==LI*xb4sGoa^oAf^jCb|%^`i@ePgS}r_u7HcmbYEKu;Uj z`xE;5DV~qUb6tpM19<*u6rS1#Sv(W`w(G!;xTEnQUPi;oc0*^@#@iVy z<+{*w&DDKj{bK{hE}D?s4`jk^ReT6Twl8<5og+AaUPYIWgmk$9xQ-LV#L6ajvOb;y z{YS>B_f_L`YB)~az|grs#l0TO;cqR?8cdT%2Ko*i%US%_Rv!R=$rt4g)pILjUiO&Z zdE^{(#-3fgkGj~ym1|=-W*)vB!j4;k*G)W~{6cGarvHfy&-kyL{9ogl{yW)X1sWRP z(qh`Q?Rm5(c^MCFZ|ESmV;eKi!Wg;WJu*$UZ2X9ZmXf83AHQUG#yrDyutpw~WJP zmhp7wOgWzE_jc9E|AuWmXYA|4xg9b~xLQ0aUD&&M(WZp|wxz-MMZ& zIFA{wbFp3F8poaPE5bGITxcPEZ^bUwxbU2+*0{f-UELwSeCi9x$pw`RWhU`VXPSkt zbPDNo9rUqAHdpr0iCnP}yBRFH(AZ#gHhzpV-jr{loTaPicSSk4gCw&Go=2|LpQZa) zR#($q8=(iW7tjo!dZiYAD@?l0UpnCf>au&$xyMWQ)p_*s zvOS4!#!%n#4bQk^H_+R)j&+;uCaF2|3FoIsz=>?P*nBac**dshy=g?kR5iyXYK zmkaG?$|#1+@v!-zQ*8UsS6Z$k*LMcGiZ=CU-5HDnJSco6w-hfS`Tga0IY(}0&6aJm z6FX;e?}rAD&OGaIhVKmVaZZl;+C@BrGx@O74bSEzYd2QoUF>OyCopm0-X=fo5jV;A zjM65*CWBn%zuJm>j5&Oz`+U^ybmFX<`Lyx-PvpN-S*?H4byQwumqJVVKE#h1=zetO z2>mrTj(+5A6UUQ^0o^xuCR{k$-Zv!SrRp(#k z&-T+De<(9BRQXkJH~D|oPpCH&o@~uCU=I&{s%|6+zMA73xndl(?*u=>!`(CDmuT+Y z;IX-n{u1V{x=yW!3m1Y>&s`|~V*gkMd2Hppvh~c-tmVY_&oj^Ywd>odCHezwQl7aK zIFnE^Q9|Y>E)VPpze9U>TFa^<l9=T{hK|PPtJ-=JKo{6Y)HeQKnCI3bKn8ulnuU|esb5uGuTkvb> zPuZQCXd@q0-_^I?dGaFdv>)%AaSX7~*%N*Z{LStwppE391vyCbY>H+m)w&Ec9-gS*Uyeghe08g?M@$4RKnd-oI1H0CN zR9E|P&4ce+AGyZNZB^q-;P*PCvsfp}`$^zPaxJ@)cCruH-<}U~zZKaSjGu4g`&PbZ z_}syL>HY-YKgl(CYf}r~@g;jw-bHn@zqqV(m$rne&1wao+H35fQ}D|;4}dz~MbSIf zTKS!s7_M8nJE&*)8}#{m2DJx>=lC2NkuSNRBz}(Mml_Rd`Am2wc2EB3e4f|(V-vrB ze`a(YpU7OFpq<$-1YcM_G@4+a8}F9Su%6$Pk(;51Gwb(F{BFXM@i&IKiH%0q-sa#} z%!2JU`gW|1?46J9H(|Jr=hFtiC*Zn9H20zT1n+9e`?WdH?NZuM-w1x7-;J!BI^xfW zm#F1EdLj3O{>4WEj>rc{VZ#l5p{r=hdcbsvHordK zGVi@d78=*Od&rY-2`pq(bW6K;23cT~jgai!cslVF&*@$hXS)A_$9qh;zJUI8?^ocU zsdt)kl9&D-dt|DJjNEACzs+3M0?0h;C2 z2lU{%A3i2Nig0vn;E^fWsrUT!z4aA~c89Jd{Xag%*=Yuz9KSmq@QW^M(_h;iF0jVxr+SAbFXj2O)o-4*c|WP|Z?RT)pv!t%;3bMGuSIsj$%7(Z8{eLuKd zPy}xGhm&VB|9On1xxVKEWA#Ly_zw9@dGifF8Xj~v@SA?}W8vYrAKBJl#p7NH{`wE> zCUzq)wr)ermvUdzLu*m!Iu|&M<&+*AAHlX zXf}++6EKS31Y?fATLfcqEZiIStGtll%6Ug7F905DjSM`^XPo#M0}s#bik}l-UkeYt z!d&dK-+0otrf2t~ypNd|<2C!@yybecpG|Q;#8TLy2)=Ia-_3RPXXXd}lh9vulid{` zw7(S}h;hFaKQA7&n(bY+|AA?LFZmOAjX0e4F7IB;P{UE6=A1gtW7ZgZO~*pFof>jJ zbA=&nhu$Z#y7uqzp7>NSxX5|B1pI}uFkPfx7<~8AUhhg?#(dv`uVyp;*?gYCd={%W z;o*A!qOnldm|ysA_;~JDo6kr6>6~cwss7$Ze;QXZaT)N5XD)zeh+}%}3itp=jynWx zc8BO41CO2;p4}~D;Vbl^eQ&Ri;gXL0GV@P*9}aBi4RzI+AjgMo&ps#^`}=^)9qYnQ z^dL9W?kxV2%pR)%D?G1xYn)E^Rzp))JkL1Ec%08N*JIT&;?RhPy4}t7-gqua_!S+% z{-D(zN9glpoWCRP<9pnD5*X~F-}t^ht)=xdzyrK7Zaem%Y=HE`HQ)n0Ke0%%^o~7G zU#s;*P^C=r20>1a0HdaqBDhHj|1D##Dk1>)iwavi% z@I8Ate+~W1weAYI4W6C6s`9@2Yk9x3TYX=BCdh3~RG*u?YGMV~u57rK74?~F+twVl z^^!07X|gpsy9GW6_A)$5p26RQzJL$l>nUK-^(6fCD+`{6FJwc-i_2)Ugu1_EFdXEn z*N}TbM?y;&mH3>t1K5i+bxO{W$IZ5|wJ~M81E9dprj`Z*8N>+!RgnNy{IX+$F0DJmnZ`|jZ`%?N})o}f#^-P8L zt1+)v&}ptsEh@Ckc|$)ypFAymS=RHR?8{XX`4~6(`i#}K^|kEdipDC`#6!>ydkq|} z^hDJ6Rl(A_&J8zxBjef&@`^i_w&Cq{>Kl4`{m_*;4)hIDCrmuWbuj2w z7xGcKy|`vhw#qX<@Y|W5luImFR$n7Q z3$Q7-whg(HJf+DyZ(+P+A4yoR@Zb5-gmoSN7IDo&aK4FqDfmV6=|rDlN7HX$Uj2fZ zHuCLL(6HO+x+@x;eY?}>_cVSg@@@Q7_~@Bwm^ERF^VcT_$Kd$4zh z(0IC+Pd&%|N5PAE_JzI^y5X6=NH^&0C7nMe-4MfNV0hWXzQpj#{=dxJMYqfO-t+@x zniKgHTHIq&oK(G>egdhv&n);&|u#KiUYT4VJqs2%qfF_%0(sSS@6 zI47UNv@V`ue3NgNew7dLzT3^UMk;Qvw*PP&*U%fpzx$i*rttNryglK*_#O=Kgr3*^ zZ|tUh(XYKqU#a6Yp=)a`oFC8i@ z-<8taJywDJRYi1NVSA7&ektJIw63)kgNBPNPg^F_6M zg6rp(oc&_rq5}_FW&AqcX#qSBUI&i)=SBNjlk8{R1?_i{OS#}|@)qDqafW@>_$2-z zG)>l32YLnb+lmfRuE<74#GCF7$Or!m`9Gh3(fab0d%}X|&G!P|-y45l&iD7k-`fg7 zgeG&LhF`o83?_2c4_D=7IY0tg5-Ucs$$DNY*^MRp7ITCcIau6->9Wni& zWf7BGWj=>S6rX^{#wC};c`j%r{&)-h>t0HDciEHiN*pVdxbG{*L~i4IYWIZ$#69^a zr($Bvs@`YHJE)w#AkqF*10LyspL$xYbu}A)flS%NfhY03h)>;!U*-3-K7=n>EY)d$ zu43pc_tgI={Yzg+j%JTr)^%`~gm0R>`trylQ~&a==-j1W&-`YFI!%kuTbi-tFmaaX z!n|w9at$4BVn35RvTy^41I6=6#=nmKZHt^Naie0kHOke1OS{BLPK=Rr;Y>9LUURcS7M(svu^jd)0q<$Qfn9u8eN<-x61Sx+ z?b$2TI*YfZ6U9*rdCQJo#W`Zv{5NEBUE`O?jfpGZlLBM?48JJp9S(I4&Be6M$9hkC zY4&+8!b>xsvx2#6O`r`tT4n4`nKL=wqkKT2R-v|L1v0Gf-20+c@$W*{?0o@wNo;{9 z%K`hD?7-WJO>?b4`+bmzO-3)k!+g)G&$ddSczjylGqknXCuCQ?LZ0ydKU^?gkKeW@ z^x4nlziCf+@eccFp^9yWACeQ#ldl{L-*UfCj6J9BL7%_d%egMxmp;|ADR88=*YPY4 zA!p;LU9_J{IM@9qZ;R)j;(XgX@XasCbv5RI&tCZF!_cGUbzSw1;9&uJPkHi;Bq1K z6(6Iwd-^N8!~O2FwKhNMml%UQ?WzX*w(M?q*Z*1HKC;4G-$)+2{w4j8UoAIYaSk-BcD)PdATi@8ZAS4gp^GIPI3|8h%;}1F4jrq# zNn^-|osF)g%(eH|HgZkv(B;H)=r>@MTuHww7cILkc&-E%`A)hg+C}G+ylw>lU@+y) z8L`Tvq53{19Q_ylTx$AxzwnV2y`;nY%ezNrpVgA`M??9d!ucP}!lCW!tPEs|2Ye>LYbfc3wc%jxl43Z8U= z;@QLDymr5K4z!u)4B+b@Y}kFgGsS&0w3yTB%t>v|LqD2pE_8*qIcs#v*iz=JJV=tf z*Bs`V0H5f<2%qRP>Tl# zVjS769Pi9hf6}Wuw_g1#_pQDU#eJ*Y%x`BnX5hs6S9%9sQ(vlWQ(q3^)2tv)O?v4d zkz3vP2+wLvjYm5h{b76a_oNBxeuqv^&57jbd}N^sV^d~q@RRipgl2Bw?l<5L+)xL& z1)L){X`MCt*W~59V_wXRysFy6^ypOcnI^t3<+%*DAaOyuJ|BFTcm%smfB&gHkWOpP z&nk?CJ1+&+B4=|hJ~7WzfV+7%=p6iIod=pM91iEN#J6&qE(QcVV#wemu;(?hZCuu7Y2SkA~7a^RekkoneB0V80@; z4|UAL7N-lc?Faef9a5|%lh^p2{{J-Y|FO7#e4|FQ|MW`wFFYDnMGM|{;y@49g$!>h zf8+9uWOXNYRp&dMUxlZM=XY?%(_(ZRd$*+1dX_k{O)HHaY0hm2wSm&dFTOgHy@&oK zKYacUZF?Q+4dS(%^O>Wb9c&*6WbZ}ir|^w#=h-guqe*5a zA#Z#&^0|7E9oHEPKgwA0w?<=pkfS3%vUTcI{7}J#?%b>Kn%7&P>)$XIek125L~V87 z;<`SK@5dRie?%J>I<=7-(;iRezmxjJ2DN?0kI-jtWq0~3AMGt zZxi12#G=^WX%{>vzW4-w`}@_;1Y7viF8u1gvc0sBACo zn$Nt(wvN7yXGBkO%Mm@D?vZ6>as%e9hRnz^{I=y4t$pjfU*cEQUsR<#PWUFWXE|h8 z{>d_bEL_g#n$K8A(T&rh@dEg38P6`axIYoCqc_+57dpGce)wfMbYA90_cXr7WNq1u zC%d$qIYFD_{*cz=HQpyxQ(VN4Wh|?RugIt5q6IpyIW%VCzvlj{ZNzgrU-j=7;KlPj z!9$Pm`9JvAzAa~6oAp-y3;b)%wIBbTd|DlU-NX#4U07Bes~6E9Tr;%>riP)6FXTc) zU~-F^!{F4437%tZQ}>(aUHAIjpV0kXQx1Hoc59fI^vCO;+}x0yh&J*W|AiPzeA>b_ zs}x-?z!$nN8IkX|g5RzD?$DwYf`J!!oeYrn5wjxYuuttQ;oR_iOui*++}6 z&gR}~bhGUDbDa5W;w;+RMex8HR|31j{zOxcBU~JwZyn`qiFy*AR1L;Ecus3#%5Rx7 zM%-wQYTLx;K4Q8BVyVqS=NY`i1RYlO4!caZmmBb zZa%0ps{X7&e;vdx=-c(m!Dn;%U128BdEPe~|6qUhC-~&+@qO2Kz=GNH`2L4{N1i#O z@e9<4-dv}Ta}6&8n_&4WFn2TFsg`P1&VG?|Ce4~y2H9a=rp=FOL$0EcVcjtYPpHnw z#Ie|P;a&Lvogaf*){MkWkz)4sG);{}Cd#80MJwLJoM(-?UJytp;VGY8o1^LK( zZSY8*yq<8Wv%62@nKjgVbF>wXwC4FVIhGG2L!ac|Zfl1g5zN@$o&>*z6Xi=bpCkXs z_)N#^Go|x1H_gk?B%Yh0?uCm-zH#d#`v7~ zfbQ87R?ew}fjewqLWgI!&8>vzfx!iU_OsjM1=U7$`6)1X&@q#*gtx9b5~kPtwM*7dz=K+c^c%OH^B6q5 zC;Sd$-MZ>A#z3brCy)N`p>I7anhN%t9soCm0=b4Lo+R&XWKV5du}h}TsfhfP@l}{t z!jb>s*DilK&ePD3T`@6G4{M{-DQ9k&&^2-fNv@}y1nc@oLaU^`fbI3f4c}pXmUHQ? z;d;vFK79dmjq#^Dsy_(t>li?$SJ&_d%sLpk$o;ZE@H#TFu3?o%yOfu+z+bB~5GZH! z1Tbq3of9MMYo)%3w#sjHde0#bpQ&GHCF>V=FvjbHS~(X`TgAK5`0n%F^1k=9ZGG=? z%lY2pxe5O%dt&oJGdAleI{%HF{eDO?O^&8i(=#>U2)Z+uuoFFKdE3J|6ITa``@h#nEYjIJ zpJARO_~xQV6t6tVo(_XgZ+lm#HBv{uJBU{!+zQXEy<-RMq~*6Czuxb^axT1+fL_vj zz+V#|r5xpv$zh^vZiw+BUg;$kkls{Y|Fi(xbWD4IqH90<_RP^G@R)J~Kc~-kfE%Z} zC3K3^X}ZZM?^GPECobAG*>crp;bl6N*Pfm=su4=3odHYh9vd#&F?r#|kC7)^R^Nbc zuQmNNxq9WD`m55Z>y`V@I_|E}DQpEE`i3{>upWos8`u{`dxDPl?d?hn&w_vSqU}-N z#bxzTVo3FEQ$MS|rQ4G5>q6cup!0wg1Lt&>5i*n1cjhg8oGpCNRxL_FeM~Z4 zApcS{{>&4qJ35wsWJUPU%)XB=c{vZ&3XV$F*BKPodp+{=zl@yq)THuPI~ND;%SX69jU3+D=eKk%9?fY%~$ zGj4)$;kD^juIs+;DgQG2KI806k#n~=hgN#kat6_<@=g4jYMV;nry7^{5X5?*z255Im4!I&-h60wsgWBusS(=I_2UwXx)OC zHsK9HbKWUW9zpgnVe<|dQ{TsR@hY-_9-^b6(b_3^3~5txM)@4Y!!H&eXZ5_TB|$ci*(B`;$9k_%|hc8G=|>UCGj}B|C4c!vF>9R;9I8>YA&MxR(Q}Z zbIsTF?Zy`(FNkcg_Eds5i;?Y>tY|#Rj(p};*RP#!>^ILz#}tUIxZaEfR)|=w&JgpHE8Tul0KSxO)_PZYdDMl z8R#s(If0!+7B^{(g!ldMi@*oXr}g^*@B7+2z&r5p;b@y7Mz{0ef@iT)dwY@HZgS+R zYn87cSr)%1+7C2zrVX`DZ#MRYwMLu)>WInl@XoIxZ_r`Q#=@^??{p5Q!8f*fIQ$V~ zCH0-LyYV}Fx#sYxcd*)AZ@z!r@CCn<;8=Vvy`)+~<-slNt=7g=+a#VgvPOS8J6*Du za+VGvqa(Ii!y6b;Z9>bsM>_G0SMkBm*%r3u(NBHjlNwJtt*KL_qndnRV({3o+o?xYU3HapJZfP$(<4j;yI&wCn0}BLK)H;UaR3hS{onXB^`*e6m_V|W zEb@N$Z%Z$+Mp{-pxwgS4>>ueQz8F39Jn=j7E*k>OX5G}}^Q9-+?~Hwz@(0UWi;yl5 zer1<#0LPLI;l^e>%L+PpPhHP|tC}yxjO?lNd|rJ`|8Bwf6vETfUz;&C!?GC`IR$bM z!4S1q9n>Jrg@?fFv|T(DK2SVBpQ>%i6GvQJPq0Q#ox~IO6?iu~v=Z+14s!>2$rXmf zo1oVsV3J->7W~F|Ivv=+b`P*AR}4T)obg@P5JO;ZM1{5#Jzr=gJX6 z55J?kFx-VacAZb3KS$P*^rIYpvtQ-!?)kt-@Hl?7&z6f=s4{wUJves6JUYv)EVuE2;@|^f)n&b zenXl$q%Tq%bgkY$o#R>ioS|S)dIz|5-?Rhv^Jtd^hvHk=O4&5kb}HYaxbAe|w`pfp z{Epnjn94wU-puud^xIk87Pe9Ut##?-Ih$B|kAV|R1jR&u`NFkHnuCg+kh^fqgX8$@f9C&n(LALxVY9&iZ$q;*AY z4s%f65F4@IvUnegg$!H%xemUfVrS_CwUw>IR{$3y=!Y@A(>l_%$f9DL&%!4qWTMmL zGR0Hy9PQwvy2)?l$+PmWeKXRPAJ+3l<2yk6-JCG9?N$)vxxZVk@e|#Z29T=8rEMk7?4cRi!h7OM3 zsMvO}-~hS-f7asMZC|&E z&7HoXuS;%(1IcBAcADo|cSm?Kw#d{>S$j1vYCnz7flsr4#%ZbR+9|AiEoPpw3m2VM zu1~VBdNDH536F0}CW8fi(Ae2JDIQKbgOkQyV^gH-N{sC>_BWW9VEmuNL%RMq{65Gz z28)r6iQYq|-z@teb+4U!$7rYd>-Tm1{wLrveE_?zO~w7Nw%C}6`?2^g_+DlYm)g9J z-#>}l_4ED5eAjr*cK<@VrmyrYbJ8=X(oVMV(7~DM#prn1lrMlgQpj-91p2+V$DN)4_GJUxlZ(o_86`*eXTQnX?*o} zf83vbf0W;U$M5E|OKGn@1(U{FOkZku8tv|)oxW?{e*FE9_`W;-uD(AAuGB_2zAe7~ zRlaZIyYT&CzU#jB)d*+UMT76n+@FoRJu!~Uv>A!}(VVqbtA73>?x#pU(nnS~>gSeO zc>WY^p`YphuV!7B9Tp5{(8ovPz6JYV#@`3|ejVS1Z?(Ig-<|N|CF0!z`Wicb7qTxr z6UZ8 zKCYa_OYe&3vVeB@q|=6fpcVbK6PKDiw_xFZ$D3HE(m3)N&xPkKY`5`aWcPtVHdVZ5 z3Z3VyX*W+ZoqzyejR`EA=yriQ{fpGdlHRl z*YAws)qV7Nqc$;fbj>32(D)B)77d5;MHL4xj(z*c<|pvpSg62>!eFgz-IvY7K}4Nrh4 z__#3ytdh9|W65_|j9)5Ut9i2~0xq`8A2RgI6tQ7k|D>LQ?t(!yFT}KZZ%m($LZ9Xy zSMAHhhrsn%O&cF zc_{n^dd}uu2Pv5HOxRqPa zXD&EmY`%Q-=ZR4d5u-jsjGEnSAH7+$fe)Xw_M{(TZR5M{o;3YsZ;G!!Z0&iPoa@sM zxqF^wz0K6atNl&jMK}{52yXF$E;T>6 z%j&wU&AOM*g?xU6&pe-d`BY3PIXj%-y&~XWFybF(7gV=VvpZbxcc7=}2pC~RhhumIL(3wq30YZUndyF4 z?+lVW4b>O$Jz;9DM-^x9_n2REPUy1w!sa~bZ|$u9q?1sjJ&Ipk2b|E4?GU3^hw5Gx zxosbu)OC#o?*(c0f-3GYy3}1+A9VfuiA5i5kMYd=A-;|ev|notP5K(R8N(v}81kTj zM|@@>lh}$YOm2r98aP!tg7EFb+;P@5M`2~W0@Iy}Z8*8@FRryx#0m31W1tSP&Sz0OuU zp5Mw@2=L>ybWo0YZb@S0lB03eFL+ZQgS7h* z=bejZlq*u(H^l8!3no51R2~lRx?w}`-O_OQB+ncIo@$KuC&Bwj-_Ya;@$+L`lTL2| zHxDr0UwvCPe@B>RtwXl5kI&B#V^#~I6+Bvy4-(~q6gx^cG;?}C=iDLNBNyPs`8@nJ z>49W{oMyZiVd^)+A@f2W@CVHLk@lG+77bW7eIe@!>96b2>DQyvuSchE-=wv;4)oX3 zx?Rv-lusxhxHD7W8vf`#r;*oC4i3CQFZ9%^2Kw^}i#bbw!L#t@AbGUmXk82Z{d3G4 zz~3%ELGWCSPF3DA@mAKjyrqmoeF8L26zP*WSkTMLBfnZN>)V2yw$$%DZMF8~WfRC) zf__`+OLl{GAVW99&zu9PYpbZQ2kzf$d?LHL|q3EY$BL zZT?DipzdIFjrPk2CqfGz%9V!e%a;y?FI4Y0_CM)Sk5nBFUnq@);G~fP{!}3qUStiw zm?~|C$A-hlyy0*;pDXxu;I#tZ*YJIU&wYG8#OK3&R`}e;=k0v%;?w8zZazhiljnce zSAKW?>rR?~lKE$$@hCc6K1q`G^h6%sELXypgb#8#{m?1xu4VpyEt>x&%zrIBXAMzD&kDN3)f30OS-z|%sDC>NX6nxMR zeim5RJNo_w=TO`EWs(c>?;~Mnky;7wan1-DVO?b;6pc)*Ap4My)&-^#=yB%s!dyPd zJ(tlBi8AwIZf9YCgFCrCflZ(mRtyw7t@elxjcd=V1X*}TX8cl7djON+^kXYh%|gSlck4Cao9 zFUzklM+JpZs_#YoU?ZN-fnh?6wK27~T>o$$F zvn-S^uzc===o|6(0KCBdZ1__2vmE%dnhKXMEi;G5uqp5Ze!p~@_D3X&W!V<=(Ypp) zzzOU1BjQKwq~Q$*U95hhJx{}|Z%g(o#0%yVrS+7EJ^Il z#(@oi)(gbPT2sp5=LFF8r3AF)T@Fi#JraH8KsLm6%k)pK9KS(l9*E}Z%jSGH7yWAG z2Mygb)&bL>?x|k~n#x<(`;3iUQlR$UjcVwdHSQVj zh?$GxJ@JQp>0|Gfo!k=I6>`wfKUu~P%47oZ>b;-a7<{)Z8%jM$+5cju?B8z{SJl(N z(1~BPQMx3~OI)jK)+lG-Bm3~aaJiwRXD_S00zYhYHkjHY8$BR7{HmVAH(bYavV|#l z$nxP~51odrTRyzZf7)9|p1dg&??NZ8!xu&-j_bsC8J%cD2d&$riac+%gv+lUKqrnu zU-@CknKN9!-?xv-hinCI@o5s+7H|)pm9;tJGwVRR(rEa1YKNa8c@S^UfzKrqmOUES z?Zd$!&wnBAE81T%%Da;!E92y$TH&Kr)FKSjMPt>(*axW7IxA7vS%3+5GjfM6vqvX& zMr=3!q-|}&KcFto_f>Ou0fNApKEw5q{|z{9rj6uMe&bd5@_tqL+$!E`=zMI0*1Us; zK9AE`G%3RejHUI=WYMp=71p{66~&j?;2d-x^L9B)W6`VXn+`$YiEG8f>|J0nZGD;-zlrYvO$P2wlHlxX)UVPW-bb@8)ky zV+*nok4Ckv!8~B$S;^?R$mkT~y###HJBjvjVx!?u<0dW|nrzN<_Vc+iHh@0#jQTi# zkUp4?*4(t_;JQ3N7kkI^4s;frbFe3gzTrSI*e}p2-PPgn_?n%?njQMD#YX=X9DIzC zda7XIqdXN}SZS-jVpSV$Tgo+R$B3g2u$KhAh`q3iEkPC=(_(L%ys*QrUzn^mY^PkK zU*M(=bCbvZ)y#IyiG^OJJ1Cld-D87pLMmperWEp zdEHpy9!D*%k+0d)2|w!mH`V&^zThkZ@j8LOGlpL>E%{Hw zzvAf^;&@*6oH{~u&TEVf7mugBR`enM2eR2g{5v<@n-y9%P?7(6CK@4*!ZZ6!VF%tvqtW+;Ro2G5a0d>y~|X zkO!-p2(s{&bh^dda~PT{pl|KG;XEaaK}-VxR)*{4<7mbQv!A0lvC)6c>mEsJh5`3sAja7MLE zeWMLSANW}G{8wa3vdOa{&o-n_zQ=Pp>owF{@gCNbp1~h)$nVbJD{wx_1+rni@bSc# zv_~NFQ=HgO(Qg;oQqEd_OE2HM`Ip~i^gf^a-KT1gRoP3S8eDgC@N@L&yZe6-+VDaz ze52T60Xe2*5uTsm-E7!Aue2K<2w%zH9d42wgL}ndl7l(msD-(;xqdBg_%CRXGn|%> zpcuH@$3MW|%qd2sC_rWml(2pC%XWb5;#8D3Cz>0@Et&xx#nb0j0zq&ia z*3w|mi`*vZ^W{G|an7pFgEjnIU@XC($G*q9Mm(mqO6iM~XE7FM^lE*>rH+`qhU1oz zVRH9w!HlVR(x#6ru}z!e8%O`tmbiJ-M*h^zw4uhNp=*jUohtG{KPhVvTT%{}C*)6+ z4KK={3-wWE9j9dTJ=^}a?D!I0lllV+DJRBI|r;A z{abHn@)oqUD?HD=x9npb3;B|)%YSVl2X|q-KN*?EZyuhSFI|akmR@gVAFAw|+KMh^ z=3w?RgH!3^rXH4k-S0hJ(>~r*Ww^^K@sDocdbfNLjc0Ol$gzBESG<4>YM*|s%IhwXLILFk6# zXG^RcpTzf>whNckM;1wU>1+w=V2D9lH8)_84eDzrr$SE2r9Lj1-`cAETNOC-5JQ%wCILxfZ>mvn5{|(Yu&|l{uO^m3*NtUrTFPij8$oGW^q67odxcj*?HA z!4LjEG)d>N?Tlq~y0L93cq7UU9Eo+)s~Ah|nbEnxO`Vj0uH6%3tOac&pTHSMC2Ew= z53PP1@xZ3K;^fvF1_PVi@=t^VcWHfafN{MIf$C>C_ptUfIOvt^QoE4C=Q*9d%Zm3} zN`LM&b&%NyTJr7h+~Bu2<>XZML93k^w@955b9V5z<- zd9j^^NtloJ=;K?9Z^83CchCBj@Ne?b+Kn)vK5W zzCOZQo#Kf*@oAo7Jw&mX_B3OIYx(4!u6zgoXYJ`y%}{swwy@XuHM~Q&%zhbS0r>Pm z<*(t@?a0km@UXK}=V5hlJ~r>Nd_R1o^?|#Xi(*3J<2P?~ZvCCO?tJBXiR|#jAx!xj{y)ccis=;Fxy+q+&XGGAt^XnCCfU48y$u}7UsOydJ+14?k2^dg z`O8v|7R75D0-e9ywq-QX+JW?T7CGRYktymurc;*c+c{^1^8xU)k+ECR&+;pu3gzR! z!n?XH>$B*qe?<3VuLHIJe0XY*3bLI0c4|BEUeckHY5&B3Ydqm!O> z$JEfG&4I_BVDVB0K9dgaM%E&qWfe8B*}X=EC{a*Fsz#DdRLuO)s`tS*1`{Qn7km>a%o*K+1M*mv8cY@+fI zid)a1zl?hXS!GRzy8a6#GkoH=XVuRf@G6^l_{&j0T2tr-$6BWnpHVFP=KbywbOmc9 z)+)|zv$8rb33mk_{37ZBSJ#M9dUQ>GP%nDH$N_QEgPct$eWq&~YiQ9RYj@*QMSNQ` z2KpDBH?4cpP2Y<3)#PtyvMlZs7iWfN_16aem$1K3<4f;L*GZRKeA@hWF%>X(oE2E*x2Z#b>_ z$qpaOKQi?K_1s36<7YN?`Rgx^=40n2Q{r!(Db8ofuT300Y*_3SOXJ@K8EjX|YUdo5J?UetcOPTDTQSuB!VhW>oul_FPytB zo_Q!1Pup6nEtvUh4-V(O;YT=W=9a+kNgu-xx{vwa&iwCX{;Vx~(f2Pt@uS0o>r^VlUOD{4rxsT^aMsx3P_X$@c?%ZsPNCKD8g_W9;pIhVv$K z=q>iPhtGczI|7c4{bVi)XoTN`J(Qm{7JhBLee@Q^O?iL(Pd+xb75`u-xrDlS_*rTh zENnaWHQ7?a4;0@NqujUldMmE#q<&TQ-s&2g`pBQ*7tlZRuIc%OzmV?6Phk9JPU*?J zqB=Z1^D*t+rXIlTi_LTHD>9Uzy@9vPd3PEg|9KtbqR-IzBgX$sv7VqDpLj^Lm!GC_ zTU}~T@%Ov&iF@&r)9_@LGxk+O(_Lf@C$6FCEsa3?C|}eGo-aqIDKDhBx3?PQ4#n?U zk4{Zcv&33{M*eq|TwvAg9Sn05z{1&F4*goJKc9_#gh%CfHWY`PiJx$0(ZB1pJJ1C; zX#Np=FR|Cx@(cAo;1;~n8~5CST`6q~5&7vO9{W4W@2+cZ%0FnHEov9fwU@j`x5*ut zeY{!4=DNpRv)#@{@*i8K`c+fAXy>HkZ49k}O_Qk-c@Xr$Br<+0bf< zP88Tw%Pjt}@TU@a&VPabEgxT#=d5Bd^yT7)N|KzS{Bn3i^`^CzqEER1o~U_>@qayY zk#5m%!9Ah*(gvB#T4iv>n9_%$yYX%L{L0?FdlhFX#!^hxo!=6A*r;zDJW`vu`iSA5 z2j(6@pRKK>i~bi|iqt7M>|r93G)2nAjy{VwdH|bHQmVGnFb2hRX*Pw`|16IuaJW zjpQ9UGar9G&$Tt2Lr;t_qBVcZ8!D5p8OcMh=xm#wkrnR7@PTdr$T+W?mNZVsgm%{i@l|Qa7LS+eh-H+ryy)$fUn%Fy-4L8T^Hu&pN&M z-PypJ!lp1yKdKiHtZDF(K<|#MjChrCm1mgFGj5s#;WFebTZqS{OVx+!RWx=oFMH@W z7I+)Oh53!-y*H8r-Wc}tU9vDcHdTF@;Fifw;81*#a}&YPT-K|U z$3@r6FJg_~&?IB}F!;Pc-}Suml&Ve3AcuqJ#IgNIbr3I|sWP;Z+4M=$&jTOZfOY3RsALMta57l3(Hpd31O&3@cE5pNn(g)Mzj2mDrn-%qP4?%|N18U` z0nQSsFRqf0;k)~3htLy=}hy5G(FxS0$4|*&8HS1hDE4GQB#arFT zhvqL_YVOH0{gl{~>x>vZHNgDz?13-BOTe$+r)$2llWt(nJ&{k8!ETG^l~a^`b_!+5 zo$Q}-2-6AYc4|0pZlv<J$!FI-pH`mrW4}SZf_TYK z5Z{m|NdQljpIT|okr3S4OEL(Z>Poot+vWPF7+W=#=!3?5?!(s?=Zs}e1RGD=ie*@<})1F*GFY996iXn+bwN{941m8txEht~`S@3M~4%E_U z9ZL8^*Jm{c#~YlBoRII;KBb{B?c!4dv*L&J{{v0Id#Ws5xR%!d&qQZR5Q~_4DEhh7 zjMr|)dsoay{}W$9xJ)8@4)I7Q@d)w5v{N9i@kb5(#0&WMzzyu^0O1|DqkhtHKU1^% z>Bf$$4k5=gT654d{d%S(J9=58k7v5U9cL`jZU=3~i1oB?L|qu44xd&ZLo6Wnx zl!Mz5{y8~Y!~4`b$uIgIW9m2Kncv^xw-bNY^;e0-bJSL*h+~DX6h4W?zxZ1B2jRWh zIC~tNNrv|gU|)+m<8EDTMAyJg@tntuobI5{6|1&|J3cmCUw`#*csc*666-3T8?Ku; z$6Fhgt&YYs#Cy*W?{Thj7d2ZwM`oQx)j}MmI+2vu6)N{-d<*xIkeGpb&u9;t+0zCN zFFyxg$pL=8rwT*i<*OJEf2dWo#^=aDYtGZ?5lo6L)TjExemrrly(e75T3?Z|FK13^ zVAI?qpZXFrpXJ=Ech_F1Z@KASYSj{!DC$YEn(y?h>Q8$aQ%jENH&u zFIDHM+(}`s@H-IVS52>>|KqeMY@x0Y7#SyHT~xot?Wil}QmvMJCDr&!Z@0w!dL1!` zVlMey-=wdc#^fHj=tz3iE<5JqSAA$B{s14X%;jgybqz2G4(<1n4|n~#R_pFKM)&|6 zQ@+Z!zV_}mYmo2jUvFFc_0R z(FN1#veCDackqH9wQ z!QbO$`{)wrly=7_&AII0(a@C~oyNHq-&p>6H-5|cv{Q{TwBE0KOQ7N1z)9bVE6kqc zH0#3JJKm(hF79icw%tIn)@P^M zK0RFDiXNK(XT$ZK=pXTteV*UA_MG8x*~h7uLpQB~_SX+m2Y2UixcK03nCJR(t{1po zJos369rt|h^>S|^|1SUi{0sgBXO`V^Ph^wNfj8W%%zH-~A%0b=%$a-4Jt_Gw`-fX- ze=+k_%%Zqg^po$<>OuqV{i*g;DsPORD;ux9rN5*f_8|83!3W|i@zmwurnh}4d>CHy z_@v%Gyot|!d=~kHo{eBG{v^KZLTj+@SNDW3@LPD_4F0D0UO6xn9zox~#J|SQ({@=r zkCzg|&@u9%UaK|0d_*hb!@wVEUtla7dY$9>jaOL%7Q8>4nb}K?)U^E$zfn3T!q14# zvY;LGZItH?^KQmr^FED3@YM@fw^?_$rLF1?+sYJMt@ZD1v97xYW&=(OS-Oh8svqRc zF!E2Lr~I$4ksH%_3?^1*O>~9U#lRu5QnQQHq50ZB&YBol$?v9|-Q-56YgbH@3&N*h52XpnRC#JF<&8DaWn# zO!E#E{F`PjMRZXPQ?>d!H(ap}aSgQ^@|9LKdeNy)FdlYR$H67_A*FHrVEjUIgYc+% zKW=|O9L_i%V=QKjUi6jDW?WEhzB_VTxP&qD@U?O;X;*uEc-ISK=V|k&$U&3#uZ8yd zz8pR{o$od{x0nz4$8be#|DOLyi)G$&_TSq$zz&i8I?x7NLk?!=~vF4uECYu$t_y#_yiq>j%|%-%X8{ULpFGck+p-Ac_B zwF&q_)Xh*Aqi3Uc|Hv1={h<8iC|9hylU>xf$hYL(df~z{_~&2rR@|gGpv8)Cf9s-= zAd|;-p?5oJpYowCGITcdZq`HUi3d$qa7}PYJ{Jek`Jx5jUsLAH8nZUP z?Swx&f!^a^b5gv$7r!!_hp+veq23Q6+9jwVk}lJJ4f)laJ=bGbK3uQr`-B0>E}ZIP0|hCk+6+5 zj%Gc9sW+B?MmoKL{Nb#G_iBnw#@vChAezlX1_yvBq`e`ZfE=2msqTl{V_`s)Tk8fiUpD8}6 zA9=I%_*@&`r}W-_h}#y7+tpZE}3Nw3*ANYEC@b%;URo?E1rR@8y39vFswQ z(Ra^VxNmUHyzono<5sxij5YI{XF{G0$!D-es(6n*G4v;Vi8s%I|5&eUEdDif;k)!W z`g~g7lYCdL2{F>N*06Msd>Q}Hj^8eN$BBO{r>gvI^SN#}I!CCLYl1;AVORdceetz; zy_@ltpcA&9zkoHS+u?D}$o7tOF)!-#9_uo-+)lG@m0E80G9W{>Ti~lSdmEZ{{I(@~ zi`?Z^x0*t4;8QIfp#L4zLG%7s@F19!Gb&O`Gej;@IgFw;FopgybXHC#!bQ*^-l;+3 zTCx!3Vk8qLXRlg>Jo}=`*ma#>#C^L&yCQgX{lkg8e;7PJXIsna%ZPm?=gP^=b!mq# zg|BSOF?A+2(c-(x?>W)gnedjWf!6gF+6(X6FLD}wNiXX*3HnM^JIL42m&ubQ4Q*Pv zuUZnxwBSO2$hVKq;>yz&7_qU0Uh5k3fK7e3S`i!5t-od4M%Rk25i^T<(uc2Y8>{3^NC zo=$A1#@5_kVy{e^aSU!v-R8$R`{C>t@5X-=?u94qJF?w@`mRJG2o6%mN3PJVUSB`w z$%r<&1C>cUIO-%-Z?+noQYXoG<%AP_@8)|Pd$ar$o#iMUDgH}&?1fc6%FDqs==XTe zf=y>o+)s?C>(CXQ<~KekT2%|mS($Sus2?)5rXIEZ@T6qK#F0G{`;#KWh(-*?;0J9h`lRmUtimYz{EQ zORKhzTW9%&R(&L^oZ`S5%4&*PT3#7}KTkW0OqqBfmUz!x}mDHzv z-~!L_TmHi$+K4BBuckJ_kK+I4`i0gUBr96SNK8cQz~UdP7(L&LZWWK2ad}>JZ{z+q zv0+7MVfolSY`D%A*O_L#gDz;b|Ju~{$@Z4Wne0Ya@v@^4XoR>5D#hH-JCatk08IW)7wB@^1%lC5{b2e4|reQ#{4a8D9?AgTVBxK zx`bWD$Kri8w9Wb(f?v_5v;0IjU*lUxLS09YIjhjO@mp-sYY-SZtqt1qSf8Rj*QPr- z>+FF8k3uWnCr8Xj@>yHNAsq|BWvgx8Kl_|;cQ^jh!!OPp#r7hLm&R!}+=VD1eA+uS**7Dz@GrGFmYwBHR4f4#kQ2QV`8!~+1C1~uOIM1uL zOa5`>7ivGQ=C^3oNRaH)+QwSySBIZwf9&J32{*ypnv>bTg4~MFg-eV10|)R>SMLnf z#k<5QhG#WjWW8H;=s9cKi{j%UchI5E&jR;z`A_Uyd9b~+a4^l<2IdgGR|08lgL#}*2IIG)i2#SU!=`84oFSgU1F<7`du&v$(z7ujZVAdHsi`2@4 z2l+bpJ3DIFD}%cs`ji}z%V%8%I)fYSAy-{JJo#M8Qd}Y*6F%d<;c4tW_We=L50mXA z1dY}OL{GI}D?Wu+`k0BD(Po4nva?^V509 zf>pFjxMkzF=&VA~TyTr-%E!&7yPiw1POS4I()6#hR<49@$|2~UWLkV_WHHa&i`bKb z_(S@#60Vhx%UY6ryH@RSh_8R77TYV@+q4HaJ({cPUuN#mSs^=&j|@JH9@o9wz?mOtudOwNmmVV=R8QD-@np=iB>G~qsAP*SxM!u2RXgsxt5+w6NQFb|$PLw%UFQuv1FV6Oc->qh4;G|vrAM)nk6W;{${uUhSr^r!J{us4b^ zP{-r3Ei<;4v-S?-8?paIcx7zuU6bF@iO-edx6XW5-s|(sP2<8>)4xPt{+xfqFZl@f zoh9+}Wm=2Iul~4roV@fyJV|=%F!mzLK#Mx?YONkizQeJdYj9`gT&LyvxEl#3<4Yqm+! zrjvK$$VLe+?F)O~QPDR#H>BCF*;lh4$*THm!YLhh8os%M9WlD5TIm9YxkKJ&XJ7lH z?P*|?UWV?QQdRlQ(wUpl0gP?(2hrL8*fnA=_HWXU^!;r6H(&iD|AGzX$=aNSZ0sR% zs@Yq}JULI+%$dD_X1=^C#^C&(Dt!o_-w>|?Z_`d|JdLGs zntULCReo`^u6h|hp7=&}k?&~opAY{{__a?+ujI$-l55E*a?tqt6uQ66cl?^iwjd+9 zv8gqpCwsdjPb1z&C+%&t_FcpoyZOWE`NW3g+vhHaChAA}CGGmP3nqcJSg5at$8N#4 zC&}|Lrze!_lrAQp*>jz}$LLV>PUF2><(u+uq{1b0-_E^r8MErWi#n^-jWhEtTW#MT zFBkoB@V_(Q`e|H0jq3@nC;rkOM{n#r#&y*-qgRGn^-R$pO8NePeVsp^q#ff=cLJAS zvHkbdHQt4uRZm?!RI746IeK<~S@_Kpw*rISm!!Eg=f(S@pJ*XhVo~=+-w(Dazf~N? zE*gKX=WgC%@H)nawgwlQrDJltr;h$?=BVPymVAWg47CoIig&KJ!jTWZ&AqxN^l?LM^Av}?3XXiv7{FTd8TL!Fs%tbawf*&jl` zVS{9UmWURWh&R6W(^xm<8K+DwG`!Kq^Rgl0i?#(0Rxn@X;ngn`Lnu8@ffhksM+XdI7WS6KkKW*kPV!puiwIj z;O5!vKFy1KU4ndr&P-4or*&E0ZD8iu;;Q}z+sYhS1E{~dImaUW$94HAy|FD;pXz@Z zc~G98?u_|EdoqmfC`a>tV{_hq#D^b==gr!rS!tdBAJQGvc21`%>?x?c zwm#x*KzD37t~<0&H-rB8Gv<7eyR3edw~Shq)s5F$tA_9&cY6HR{xWhpJGY@LL_d6z z#!_$+^F~iopOAa(xiM}deewr!n|A}Jo@)WN4}rIHfJg5a0gvST*CN~E%PY`pF>EnU zo)y1S#Q2HGo95O{Y);;Cy0Z^hE`hEt@2AhR7lnD;qBClgo5x*@zdQX|=LR@8Zh+u8%hu!4nq(lCjXyQk-J6SjMqqoijCl8VDk#5mijrw>b z#1?=%=_38!6!*2_^QJGOXIMj>em^`T-SSC3E#7;=t9`AR8Oyqs-?G1oSAK6?Sd?zH zOk60QJ%jlm%hRvGi`v^H8cUbTKWy?XxyvWygOu#tol?epmW#MW@|DN+~{MciD5FO zO~K9Hu*vI9RBX;?r*SSrjy*relm}ilNR0nzsI!j_;X9}fP&KBH@m=TIrC2w4%!+&! z$HYANM)dtc+_!U5-x)_|Lg6RFV>&M;$37wRd)D_1+#*#T6X{LqB= z)MRU^wcg4aTC%jEmM9&VH1FVsA6@u90bh&n2gr-0;O%~{rD9poS{^a9xxOI2ej06; z=ow@|_|P-oC_Y*<^6%ardh8)e>+DC~=_Q|E@AAqNsHtJEvE==m;6eU`jl8EE&iui? zDxR<=kOA6u5I)?G{b5uW%W<|jvc*2vA57|f<~oy7Ya=%Ku^hTgYoV%(lAj>^kIz-hdB9QR z{pPIs=F8DLCQaQLYplrUbh8G{g;zBf$$;h|dRj&KT-0#I=S~1m&pPOG8#Z@ItQ)q$ z)5sR_vv7b9#{JK6|8}mgs7QZY(dg&?eQ|r~hGyGPfb09 zuFvlKJ#9Zl+mF*$a_PnQ)%Ky^)AlCX{yA+W-^(Wi-<9SJq9#n*uil*7o9N?u`NH^g zZ(#0z+}|P2NAI-!2Xo%|*Ii)7LQYqb$>2r@IU!Gzs&3_(^$qxlGbOf6t^}v#X;^cn zuAlF$!5p8b^yI~iDH#CQ`=w_Oxv>t!R%l%&#a@7>Etsu)ZJw3A@R`fP7&gYtmUvz< zHu86zF22Tqw>DMMng5n`peEj`(7)Ekl=IU$ zTiR!!zHU}u(46|r=^JUEB)^v`XpU<&7xo}mCf71A_=dmeJyAJJd%LA0;nKz|noy2>ck`Yx1M+i65WEhne7hF}@%1<9}=`e*7oe z?xU?2w}nUG$EYpyF!Wcy;>Snj8&&+qL$tTRrM`RL{%n z#hlLGOZ>)}r#kmk*H%!kZ3pCU`K~xU?GjJJLzVp4)MfZqste2bcZ7ORv~pj&vdO@9 z=GC7uGWge$!46w;NN$I`!(4P8IrtNOE&mL5!}n|b-tKVkg&nFpGV2!2vHH+my1x<} zSylR~`jo$qg?s63*$E5q)mzM+7JBDNpKu9 z&lKtpU?ZFOL;v<95-(IQ9%$oGnpg|8SGpMLt=`{u8`%sHaEp+ z+$MlxmfZ~(5yQGxcT>(VS=V@3#nm;x_vfjqWD-Hs{%qeN3D0@>_IyK4Fc{1XsGB1N!$Y@Ye@dg8P*FW%dkzF>I4FrNi9STLE9qBsNjYBK zf&RMhsNEY3*t8v0o5T=gb??ehGU=Bc&YMq{kGg!_8`)kcE`XXfChJ%y9FADF#Tg zfdBRV;}V> z4yV09ZsJHjE@l2Y@OHcV??y&0N?6(N*yKfo=N0!l9~;{$K;uFhS$S@AGUIS~*X|Qz zQ@acNzZYHqT)I-bJN@n2b2fgWM5VSQZB@zpQ5zc8xHKj+PxvjJp&U>bf(Oe}oRL}o zY})qF-ZJ-RiXAR^&6)ll+$%nInoFJ$%{#{Q7W)H=)y-6i+j5C_t`M6@e!5mCq?KrP zZ(E!H4I_tdX{&&fsiv>J`3gHFD?PX_skISz3$QlYzx{tV_GWDVFJT@4kE7fptfOnoS?j`k z;Lyl6XcXF=(90bRnYvFYRn1KUHtR|bQ*)H&_<$2C$lBbHnuOei{)W|!S5;Ob?oG1<9=wh$4+}4op)MekDc~BH^lMhOJH#$osyw0Ak`!p`7Kdd!{M_h~((ob_$wzF{Qq>vZDB|Uwl;E`X*@gFa7 zkHhJ&tcH~TZyCW){N4-kLn|AObYk-tgzH|g1bMs-f&9fHTyznkBE{FXjfuIN3s4ErU2)RsZM>|Q4> zF)|_eyR_ zpt9mM*;bkxT9c_S`6hL4NB>2~```mTQ{ES|Ugf{m%#wA2V>rrRqq*?-7`s=rI%_)T zso|#;Cmzb$9)CRchU`1xj(q9OL&5EzYHKCX^QtF#u$D28<)793@5WBn=Z$pI*vzF= z(rS;M?F9$pI@z@w+!x(E92jFe*#ee$j{VQy;R_xkpC>ZM)c2Y6{cGO+sW5*ZnW%cK z1Dhj%M!oM+ugI8UzSny6o%mjB<^9>{nh)B8ki8xA|K-St3$e%J`I&OSrytG%V_%d8 zgX0)$$-)my|APG{VE@LS0sC5DN2juO-kbI(BX@;!!;`eD`^mt+=|gkPqmS4oR$akA zmUrae9Bb=dfo-ZaP;Bdd8k<$NfndIf_9z?Pof7e$>hrGSa_aGIL+fN8eU7E`{j6It z(hN*(v~dgXMFZ(9)_|Ly;F;S0te)p&_s|#PojPevpmO1!5WMcNFNV*vWZ_$n_PfV< zmLCJ@Fs=YrD>hQm+2^zsm;l4Q_Q-tKahKRcBp&ZD|Ahhp{i7+z_tU(E>ge zaSmGRH{}A+K7!6iTb7rUFIabnP==VC!C*b@;^zdXReT#jiKj7E+1A7#Q|8<+$x1G)RHGJZ8c8Yt` z`LjeBoPZz8S)NY0FQ%uK(5;iUBw2f~K*lfNET6#h32E;|a)o@pY2|^bh&{@i2`h^6xe6>bOQ*#oTKtp7{u>9WrqJYf!xOu`yTRck@os|BqE zZ+WKZEoUt~q}UMkC7t_G+uEW3tQpK0;^*JHH?)J9EA_bivph@l-;|+FjsMhZwiKf^ z5N(b3}U;kLEb+xQK8*7E<0|HOMbSCA~yZwdKcHa7jx)>p^G=1``W@wSqiNclgQ zdqXiSt@QJcaar21%h-S59=TUfJKAga>h}n?Ja7S@^lK|;b>v%8JZob5%gifmLdwN$ z4pROO$|c(8HNQxlMl1K#NT*ovl46$_f8LU)jsme zUB=dYr?OYmm-sa0sl6MT;@3+}f6Ptw2OJjyN6P64)Mw}mu+5&l=#jSv-;_^q1?NA= z2hp^A%G8KuU|p>_qnPLT{yxEAo3oyFzquy_`&jZf&z_s`WtDkf+%v8ZgNsZa+(3ib z26vxr&K!da$)|ns{Q>H?8mk$WCmfBG%j2*=spud-@i`UZLOW}2}I zZ$|!kVLK|5Dxe#HJ)2j&RJcAc&m(wrrd7BeOWR){OXGPk_W64`W4t@|xeSkM?~`^V zW9YV(Z(u>bV8_X(mQ94Ntnew3%R{h{t3du> zZ0n%Q;hZb=bzk(v3TuBawEt6;{=oA3wGK>hPAQY&oGkkfX?#>!Z0d&9GDMCmukO(9 z6fZn8E5C(g=(q3<$Njd`UJJ5img*7rBR)+L4`k;D8YyzaYE6#c{V2utD_2_z7})1+ zwlZG%jZ)4*tbJnowg#f1=wsx2d62w4^v(AM`ZWAoplmIap;H*Eaum1f8GBwWH6Qx6 z1_Srq;Y;QrpIP&<)&^#$pfRvsrJb_9k+CrsqPE5hj@*#ZQ-Vz}nErW2jAM_J8z2r* z=N38RM$Frn;1Rt?7n28w``36jpnYj*q_v~;+|)?Fu0?OiH+~6u3h~!8MB__t=e)Pe zIDs!wp-%Dv+MlO;K6(;7SKET28=T!}+AS!yuqRWc&l+RT!?WN-akm!pm%R#d^1vh1 zY4?R+d^=^@@Q784+H0|p13vrBl|_Noy}k{+WOG&dkwRaRaP*-V$Mho{kE2Y6GqA11 zXeo!0+HLpg16Ty(vGC*d|IWCh^2~L3?@7ZqrxAPE%KDf5Z16JjwTAA=g>iV7C=ViW z?-^nsObh@py3B!PyoV2i)O|W*&wMO-^&43mN?%X3#LMe3D}5GWp8UQ&x3NC6p!uV< za$T{^ebg5p=qyK94*MuiTuzkRYD#`ExQw<^?DIRc^-1BUt<0C)aH}KV~Zfn`I-%s7S^sOAEMn9eX<>7RG`*1&XZRf@YbU6N(iUW3fpOFtq zIq4tIt*fUmTQQs#PD}JbpW*@8yfY_o76#lsN*(uv4bM$GVZ--3okd#`llp3@NqyU_ z>PyH#?p~ zzLY)WZsw_SCsKd=zV#PS{|D4x!1%6b{OnZ@9LaBV^}tlVe~Jy6DI5=0*2q&dLy549}?CqOs2%o;$sMc5MF^ZL+_T$h{m`Q#eOR`}S16r}e_qy^S>G z#jEigv7q;iKcl{MrpB7qSm`VM4t>#&>C3JyX`r|MtU3wmAhZ6gI(AL>hm9Fm4f#_X z3^r@ejJfeu>?C++51sx@JgF_=>fxw8_#z9>AUn=zNLM5{mn!-wW*)nJQ;V~Gcp|dv z8sx@ehkF~H<--4X$+ymke^eH}-&$=JY;kD=nR5+uVKIF6cxgqQ z_~`M9k=ES+E!=^kzSHzOjy5FoVjPt5$K4jeY6Gj<#a}r(1-+vEP}P^eUjAe4A5Z1K z?7VOOVb|6S=fmY&f7e~I57wHvvi9h=#?+?Yv?1A{b}e$bSm;dgb;jb38_HOwJbqMu z|IeV>AE$~J51EY@tS+dj?jccynh##n;1roO${iK#$(~c^cTYNp zp9onCEXGd!5bqD**-<<@prrN-M&78LY{>&Gul|Lfhwr+vtx^kFBcHt?IF@?b$hU0~ zm#O}f&|hVhcj6q%AHn++|66jG`&rsKdlu&e(Lq)P+aSMwHS%OA&3|})z=_VrwB5^k z3tyVrIg;PXS#aXLcQi@x#+_W!&*vyE?I_XQc3ys?%)Zts@LDo&a#Ie8*6Ls7fafTS z7_PE=C}rm9T=`I;vLTQRQ2Vdarpghkdy@WN$N1Tk8P)Gr=-7h(6}?iFPx8#f*mK@r zeUZy;RO>#)Me8hvVgeQaYiu&g+LT#AzI@fS9NBx=2>H#jv&>l@<+_p0AbKVXl%f1N zMfSD4^}$7z^}*jmr>+ubd8mJ+$(MPq(J8I8vz9!DnmfIxk@w#EoYr_*JzvE07M^Ea za^mtXi+$5&4K@y;zUUx&5|?4@P}Yjr)PvZ5gYseHt0vbO^^)YI2Ojnau`8&Pq0aH( zKx@Azei+IWWU+~piQlX249e83aQ|x~WuL0eM~Rg_}I7bb!bk(2OY8r1xx1`SQXf8?0dZ_#xlzpaAeYtC&xfsHCUtM3PSE*U2rz>A%U zVtDpRFv_MpSN3=T{wykXZ?LiWRC3aZ51>a5S-%$_VDlPWgD=teuUz<`hA$JkfotZX zS9gHZrww9CMq_#QAad&;_&mwyQ)iO%obT`ODVh1f-DdQy`JwfbMSQ7?9jbF7X=h>C zb~)dLJdiypTUdI-$he&DA3xj3xTJfzuYF4FNc@!K{sg|XLz}>N4D(jFE^!V$el9p4 ziPr|MPIHIySZx8T*w4nB2kcH84w$-v%uK$V<) zWvz#n2W9jK=g224+BO(0vepN;LzAW8GF7Pk09o`BxY|x^rLXz7?G(B5gN&l#KLa<5-O{9%o%5BO!f#?V3;$?4y! zZQe`Pya!*Z@IX7+GW@W#h~5OxI(!Kur5UmRerc=cu5!u8QF6;oBA4eE6>N6nhGs4;tW z*~eBjKvZ1*L>J(x+PwB0fra!mW zJH^;1IU5Myb|&0D^ZpU!+pKqyZ$GytaPY@W!!L6?dj6GMKQVN`18?fw4C8G+&wugr z3w+mr`B!egv6CiF?+;4+U&a5meAe;t_&mtxAwG}rsq%S(&r^I}At{|WMWI@d*a8Kb{*D{SlYl11QKaHWcsV5(mUX4l9m zR^XXc31-MI0S@y~EY%wEKl6$84?NGhoO+sf^Esbht~o{>7jPnzeyfVas%{G7&x9@vs{)6XfN zwro53CWyJ}x%e7;hw@Av#{4mR8^EMF)Qvn%0K4W-H!`|xuN|2v`f*kU+I3E`R!vBv zi={ts$c#D#;@1oPey+wDe{>H1`#Lh4X%y!AR&Ek-4b0@HGWz9Q?SnDL$g9S)_8hsP z9PsawYhkVUM05)EqvVR@&{xT+F1ugwrjU>Fp-MI+^1xZ}>c2uig=cv@j=XSZ3GIH> zSDiw0KKF6)Y-Fc+w&c~{RM{e9$&)Ln;3Wl%a4wpETe6cj#mDip=YUzX6fSqt&ViQj zbd2`7IXfcwBwOJpbo<&LU>6~iPjEJIi9f{YWe6E?P;Jf*CmDf5@b#(Tpi+Z$qRE8KE;-3BX8f~&> zP5~4Cp3zkPpdgiZ`~>}_#7eAMdG>{Zn^q9f%?oLeW>^CYW??B$*&+27D(qxx>S4A`inTw(E8O~2(e z!zpx4#wz0PUjQGmHnz@Ro-8dMwrbu=n;0kco2Bifg?|j55;qSwz}=y8M~fHGo3ithHnav0x+~?7;$Jk;4}31w;$#ndib!lD-}9)65_0mbs^AO>ceXQ9Q5obKXVgoeCknnO{Z+ zz~_QD8PONJ=JC$Mdmq)94hBCq?{o(w@c$C|E?L%SUKbiYZr9I1E*B!mwgEI<2d?&znYd0f6~A7fMA%K8*EJT!+gK@ zi!N1jA7;-lg+KIeS9SdaWMmIA+LZrXR0d{<^71WzBW2x5?gV0rxhG&8Fv}MHs`O@w zb05>ix8wjR78?%hFle0>9lpZ*CD#{;7f{ZRvM-ta(6!{QlilxO_aleJPqN7c=X-w~ z@}Krqz!z(!dxCMibBL3D9$4i+6uq-vFTC?%aK(NGIYM;yhc-Hr@R`%xFySHUb|25( zyAJru_4$+Evk<)X`I@V_{QBVEPQ>;?$EE38XQ0^A3Y;o?aTQ`GS+l3niCNu^>nQ)o zyk^4lZ1^qvm%zXp2Rhvyq-w+^!^imKk5U<@x}N&$gJq0eIaregc%aCc*DV_+u$R|^ z4*;7PUS*uZ!-bzAX9WGXlo@~YPCCynhB{t8nopIKFMW00g;#Cs^5CcN{Eed7n091` zNXMTMx95eniOP&^PdNTK?ODLx;;gP))-wOfne4r|mj|P?dx_dDfZHnYEMMXa&J?g{ z&91gG;7NX^RQ?|J=c9d7=z*RRFB;qAaA0V+*1s9rC3oBSFBU0`lL4!`Id80vbavul$zcii>(7}#HRpB)az z`62x5=jkk?$!n{!!r=qd*Z0`^e&Vx6OyzAI<4Z?R81*h4+3{8j!JkZTW|${uzt z*+|*_tSz~-uDr}w-dwjG`oSw!nfvR}+Zop3sagFlIgn2vFX(Yy?d9p>6Ukrv$=CyT z`B!GP(N`aH;xgn8wkSBj?}(mfFHLYFe~&?CLKp5^xF@)5sqTA`eS*AkF83u{zE1o| zjB}NdFZz7SG4Dos-o$=v#qWZ#2fyRT}ql&3DX;h5J=+gV}sP1=0` zI74|)dp%mqewLVl1T-k=Y!L9d*s}2Cn|zNXrc>8l>F4H{wO2Ede~|j;h+fH7gyI-OQft@)7xD1*cV*+Yqiq zN80OYv9D|LJs?}Jm3HhgIdWzHx7eS>wzme7;7vG7JJ_j$0r*uPd1vyHzCRihWeq$U zSG(49;4xG1o7i#4=eOfkV;6kdLp0~Ciz|YQ zGxOjL!Fc*TQ|DC*_XI7I?j6nor}FBg7v94@$zU*n_mU4*zR);@a}p1Isj9Je=F7+^ z2c3$%1LiOfBRmOv!8_29eO}%lnzEJ!%4eCh?(mZ}Yyjk)^dD!HIiHShw6IHacW^J2 zSNCs67M&gGR$|Mc&GwXY0Y}|4^;ZXZ~s&@fbu4&3DZ!GY0rD=`0=IJr2!rGmbmW7|2n( zN%TnN?rb~;+;;Ipjh4%n!gJ_H@{!p1(7^F_?i+kVe9ZnyHq9O|`*s_}2ZC*xV2gg= z!SAVg;D@1s;qJkTol<;f6twp zcJcH^i@kPu1b@>x1;z@$NuN!Q_zSu*kG;B6D>l-=oV3;sD+VU_=EAy5-pQoD)YvKU zom8?>CRRher+TXI_}7H?O|25>-Nbu)>nFbt7%OFDifF!v-v32?(U85%@vYY_%Hivs zkaCtx$oP`O#1Hvb_=((I4ds%*Nn^$~5KUrS%@VG_neg>Neviv@&V{iH7s7SR^0nB~ z=z-#$?2Qfv*HPERWL)RfXR{V+bKpznr}pKfLnOy6WC_2KiR2=tPFGHNVy^K#fj(iq zK@3ayUU3hVztP>H^ievaq5DB3Q(H@Yes?vDg_!Mej{)suEN~&-KtIp))(6jgTyww8 z*ZRfEU#_{)9O}B?N7py3_Irs(D*NR2t!qp<@Yv9Wz8cG0VU7`$Y1=mrP)g&*!J zOIx9RaSnQ~yMTX``oe#Txsj@!g$zB1yuO2GuT=Gj|DntvDLr;wptDx3d2ojB>R;)5 zhOfAtOPav6^1vE>Sc9vXt3w)Vo9hGX-ZV>qH?^7a2ZKX_O>`1{(?#xyybSq*-EO<5 zbH=yNPuG|FEmk|^4j%~D&=gsyyZMt_N56)(fuPkhonKbbb|TAzQG3qE|E&syknMr!w+A2TD~)!c%1bsIWOi}~4^i!J?( zue(JIe@FjqYZ?E`tY4L5c0ImN&c6UJA5%{JruIbdhZe{l<2)R{C7;qY_&9IYBcn-w z?QrE|#0dF!4^QKnTNn%u%-`r+g`knhpTqZajbwhwu;pA~aAxq2uELHxNqEuu!KCv^ z<{7cpd3fAu33|kX^k-Xnd=nu(r9;$5vIZ?{cX0-Gg+I+fu0;CqK>1mm-s7i1yJU?! zHldHn_Z;>`lXK;N%&JeVOT||yw?*@!N3_*E6TjL1$KcUfW^S7~ZcPrl!L|5T^wr!} z-8-~z4{Va1JNwZwB|SgCc{H??ou}ucJeTZOP8IFxq~RaUEyud5aSr{Z#T&JiM#i6f z4SD5?i|g&+I92S!w|6%9I!$ZX3-XL9%^cCWDd9!;*)bQ;vBcC^p`9Rm$H^D5o=#uR%Yh58d`RW_t$d`)ImJ1D zbGBRg-E-D_?WH7UPajNMo|nv(z2uSf^%=^2oO05yDhGYp8|Z3Mc6`S3Iw(JZ`w7Nt z4fILMp8CI(CAZ-CPRhFEHqhPcw7F7o*g3DO0sal_S?n*ZKN8l9;4I#KEP98$->N!#UtpiXf;aB|wDuOca|SrEXX;kPOa22kUt+r7>;jgwn`BP< z$QtgUb`t(mj8!}#dGRD?Gijr_a}BXG<+Xmg^02>wv5U6Q(}wn)+49oF?B&dp>K))) zcsV!@Os0Zi#o`|LT;6 zReiTF9ey%&dLLuP2iqfE1^oxa|1s~uhx})3lbAd3j`o5C(*nZ_`yVrFiXn}~%)K#f zp<{=HE7pX-0?zmrPpV%KkNxp-a0RfO&iv3h2Qv@B>(M-;UiKKismH!Ma-6c#^Y4WB z7zV~;+KIMWyN$^C{y~?(FEr~Uvg|9M0nJ-4~=wz#&>;3IlQ$Fw2zr*~J58B{Rdl+SSpLz5uuq3$m z;Dsb@Fn3Iz73j@+y`G_7YtHunNqhsWve)qOnfc_c#4p2qN->|FV+>jE-ulye=e`;o zBYQ9BCA+-A2`wdLLuqk>^#f>u#_Vw@R>-By@6hFf@$g$&BesO++<|WhflSWN4Z(50 z-L>Ok)xoFwMf{73ht`~ach&108aFQ2TD^1pKRt>+u~KXdwT-h>Pv_$gaqlF4)qC`x z9s_5@!0JwB`15h;baT%+YsQs~TlSIc0BFbF*`f*1Y5XaMMw~AJ-|$bfwMH8bAL|Fh zuAgVFUJ}k#ejm*56a9QRSEK*%@xb{}Ip)lObX6AlBl)qm!Fq+g6Wx~xK1YR5)mYk{ z;ogb(DOI{FP+T^?gp-7`Bq!sDM=)djF8+`t`(oz#q(xQ6{TTPtK54PX{65;3>>Y>Q zESoY_Ex+;ITWo{-Y>B-#U^vv!abDi;2zf7*IM5D8MXI=YyZPl{xKsT6XNH}YMT5E%KfnyaL z$6I%yAC{T%w>iDO%{ng2SbvCYOaY&A`HL3_j@r@XiN+T+H3wwB*)`-9__2J}Aue|W z91`B4cXFNe>C=P3Gu&To+9=7MS{+>7N8AZ@<$HjhS-n%+KjFD_lU>n&YjiDRk)CO( zKrhjV-)$AYsdc4zQgc4O5A0m(PDFOdXCZxvtl-Y6GQLEwJ~uk!pg!*3wx^v>6Y~y z_UsdapK*%6t)kZZ@C|DRtDygb!M*g~3XI|>;ZHEVPCTt*Hz}WFZezzO_Fl4rvk~mU zE8fS-X+P_7vmTJmE#0BInor=qxm{HD-2`_^4 z!?e%Y{H9f2>SxMkZOB>xyT7cy=8FzyFQnB8VXXoy^_y)azp4I3yPy(|Npe4*Kgi!?3pV07`k1P5(g!{W_=VVDfjO4b`k$tq z@6lf@isP$OFMh)rKmL#7{E3O-%7cdj`T-bZ zzo;&@KXTdR2+yjlU~hHEOZ2j6!8qVA@W0XUEzecvYT<>kwiLqLLZXS}OcMGyCGKNm zJ=6R2GHBR~Evo&=Wh40L%w1fnFJ0HhxHLY|UN}4z-r8S$LxMI%&*Hy=2mI7=e1qaf zcCkLl6!9rCriZqyA;twG|2w`OPo}8{5jvgG*>{8S+hdPoZP&a(TS?_j2{aGiE7r zfc;6zTpB&YKBVsax?P^rYkAKH#50{pZC3b^%u%h#yI&OzdKR)t^#vB zhCeJ+oFKYObDRD1IOgYk`12EdF5+_upWncHKRWltx?L2m&c#OalFW(v#qQJTslbAd zhx4LccmOThu$9cgO{U5BX`wQBE`x zExz-mT{|T2tQO+6D}%uYz=3dOd10Av^Im0Tr+ky&(p%zFJ!8UWQ{IwbTeLp{4L0fC zNx`7F9+i0s{ik_ssSo^qe_$P+WM5nH0~#CammV~O;X`%=tJNCjo^y>H*JCHdxawccWBoetqZskGbgETP@alg_}alftfYwnzh`mT@Z z*Q3w<$sl;h$e>gHWgi*jAA`S=J7{*U@6z42%ICn^6gg@QC^lX8!hw84vn>0_rkr?R zvFdzhiC5R!jysUUcl;jhww4F9_lCwejriR7w{XGlR0nGv*T?;^uQk!)zRGu z*fFC|Fcw2M7k@jrznuIC+UM21(YkXPIN4X4$GSmrbHv*-HsgyXUZI0CVX`eHD_#2d z27Q3{(ecFX>mFzPuvzG-_oF)R%Wo5>Abt@2-h|NVf2ZM_vyDBl)5LABqW<;G!|0E7 zXc!AuBwrpjKI0*#5W6|27|4bG&v@UBFIndcG*@-6f^2{7m1wT29DDAgy60-~_?5%| z&3a6~RaXA?Om0a78+eD}NcOaGUVZWPUR|*`YC~t*6U=x0);*oO%F>goM%0GR1;C%p zB=~E$7L5RZm~$OHFC6PGFv(+N|Klxr?{RRkiQh@&fN+6dS}=$Bu)yJ!&}0iZ(fCCd z%A5O;Cq+DPGG#8MP1;hM=KQeX^Ss|wjy640>@Ig+Hx#oa+uh1>_vn~@w$r})`Y3(9 z8RNew*}*4|J}dxJ$*V7y?HTHIqw~Rs(P0+(@h#$2HTN}MbH_3NO)g*F>6tnIV(1#$ z5@W}ahF`=3tAJtJn6cpNVhx7<74=IUQ%?KN@GpBM&;nkM@OdBn^Z>Gbqw`7h(k#C@ zhdq47BHQ^CzHw|v{57;OAfC~@PbRxz;=yzq*!Pir9KPmgMN6amHl_dF(jHlM4j`vQ(of`uT556p3BB-alHCn z{~YohfU^dYt;}9rt*p4-dI|c%xuY$m7l)6yzSrM*^ACc>r5A?vU-S1}${$|}pLdp? z!KZv)ow=ac$&=EBvM(Iu(4*WZ3eB-g8N09mRq&RiU)i>CoGr8`ANe-;NIr*3n)Pif4dB!G#p_y&i|#Re(6&die>{BIZ7oblm#7`e+WIXxyCOKB0M2&c{Q4L;WBB6s zpu1^Ldp6>sZuEwD9$!0mu~qPyk^5!xieUMnhx%$)xtMdbdB56pq&vVVIxB8hH246p z6AKc{)g*LFYQG_uFSGBw3R{HOa&SW5*-Y*<_Gr{6emdlClClhly?yB6oYsqs>_Z&h|15^{ zc{X_XbLCi9{_S#1V_!N20SgSJK|c3X>ecObv} zgZP{IA@ji)k+`XJ^bkghyFp@|Qh{tpm+Rm*S67KV8@g33&1zo>R}r zubB2`%?*yto?i*y6>>**w`5^FF74fR(XWeL(B}4=yk5w&A$}58}p(hpF&7K2$+o8T{$CeP@TdccB z&fkl^OCtI%-c8>lpwlbPeAeW18j>&V<+T&!|I~fp%1v+VAj!krQu@PwAx@(^zchio z$j~2WKXu3Zxy^3Mw{XtYan`1la|XZCgem-%?^JOs$krakgSVrX_J`v%a0q662h9T< z&THu01T;ftm^EgScV^Alzj@>wWV!rgTV7z6e)O0(r<9>ZLAF<>ai~j-K6MgBum1Ov z*VtkBV6sQUgOcG#a9+&#YCPJm@+o=s3B1?49DRT6m9P%{+oQGJI44{ar@ z6}w&ia~4w9zl@#sHTYR}+W&=o+ZoTjd^q`-@L&$Ugav_z4^_*LK?pnoBNy8y|lm z>|4C?LG_<2m^Bk~RdJFd+|g{-460H(hnc$O~fH-%(ziwI6wLFmue{ zJdziZ6_OdTy!ZjMho{h8hAw6e63eexCfIEqP1z~Z&k25OZb;`Z!!9v%m;Y0+QqATUUj>mekT5hDu4F^fMa_HF{~vf?e5$w+i#QIGkEudlCUB2fI zXhv~;aINrJDKySzY}}RJEZf|(R3JB|haJHE)=AfUIp;3kf*<|)3_0wIa z!{9W;^AC38`E-M4^jC!ES(KICVCINmbMVs_1_PZRP!5AfBK#rCJ2>Az;UrU^cp+#e ze@(`^A)@OICKnI$WmJAe<=ao{&I@RCw5fw!iTXT(deRLJ^57>gF+S!xe%`G5)^ovg zCG^OWYmT##{kg*8pvzkvNIqw*#rQJF)$gYJRknrL`im*s<^s3#I5^>5u{UTh5^IlL zlgx)U1hx<{;j{sKl3gu4kLSEO`vWhly>4iuGV&Gazj?>}nGK!pfKCtd5xru&UV26A zmbh4V{G@Qs3#dI+M2V4$YtthZw7wNKiLB6^M|U3{E)14 z;5B`_#F8iA59vbuNvsKw>G)Av3f|+hSr2QTZOXk;&tYpQZ-bpH`)72$2%R{OM2=+k z!bj&^n6z%<^AMlc_-Ib+u6oIPn>Yzu`KYYZuo1Qd@;!s^hT1~jpL957RK7PV|5$Eb z{W0q$KBv_m%Wc8tA+~|?iKsji!IURAmT5nQe>=r`K4m4DL%pVb#W$s*^75sb_9>4X zA_lng%}lMgVRf$?vAUCQW-MqL)yq&XLp|bnVMl9p^+lYAAirbEo!!gbIQ{rH`R?nN zt`a_7;^ybfiu`-v&z$iG-{6=yq|KRwBmC>P%HJH}pZ{k4WA5(D@6n;!LvD}iz)PLb zp%Wd2pB4FRNk8nZ?>Alif2Z$r@Y99jhcWO?1HLzI;~9E4hL1UC;ER1N;@jAtGLCiF za$saWk8UE*&8_G#2mP;eAZJW@Irxe6Df8 zpFi9GBD{-UW7lkxHO3IH#bmp(j48}JGzm?(4(UKA`Xv%OY$9Ba6a3FQK0t zpJ+PgzMR&YXkR~r{A|Q-H>9g%(;x?WwV-WIY2GW zn@SgeM`Y9Bo5}~MbLqB+EmIZ0FjsP+Z|0SVhR@ND=2>iye?#_OsnGaGa89k+oz z$mGK0TQcma=>HRZPv(C$`u_;u^1D71{eO^e$uKYazm9M0`O&q}|5bd;pI(XnFXLM> zY-#j=5#OxKN6XRwTlt0tqc=tWZ{!=k87)Qs7x2AcJoBf5uLqvcnK1E%UQhdyA-VU0|giPqYn4f-512A_8itpDRu&oCv z_X6KWFMhnm$dK4JK}hYEBU<-pzwK>u#0veD75tU^$`QtA>=?`Oo61{t+w&o>O1_9c zXCPy=_WRjeTxH`pq@#n!{?5pMcm|<{j)3?YriXWAvYN_)q8O_MB4an_&99 zWAn%_!G*~Q0zR~MnChB*sK)=R^;m0BXOcL7R}x%W8(Bm9^VcY*9ULG7B-iCT8Ei-% zeD1r@Zj5cAxQm?RKkw$(u#x$8`L8-!OPYDXGp%!G@LaK<8zuL5_s{rpUj4`NE##>~ zy_mkn)`kXg3_;t1Hmg-Sn|6}Ecwt@eyi+!7H03$anHtOYn;Cu6&$sAD>naOAc^CDR z2QlflGyY42!y(s#@5Fo9DfLfq=GvDYBmRN9I?rHo%<^9_f04F?W3|-*9P&?ndAVhs zNW0G$$_n{p5gZ5cANRDzx|KFN3TcoxC}p6_;~m@qVn29nM>T0#sEA$u^&TiwXxrAm65HL z=-vpYE0C?Ln5&eN3Y6bkc2oGj6?n?PM@}QFEFWuA`Jc(XoW38MPj?47xu=u8lNZ_<=b5x(jWQZPYf|CoH_$Hu z&Wt^pr+f*S1U$xv0PR?x7(MxM;&(N6?35lCd6A-xioY^gRU>Z?Z64@`JZeSx;-3^w zLV9;5v4dqlO3tXB_TNrso@j4trW^Sy=<5&SQRJFcm2|DEC6-^N8oNfejvs z_p3CHo%q=kz%Lt8vPtp?nrG)RS8hc9xY+YCyn;1`^G?BueTXjVNjcO3r;;-cEQ z>c0g${&L#0^2l6#M2Sf+8Gcl`rTE`JjV!x>ep1AFwHL$KN8RzNwmKx|Jn~)uSK_{{ z&9hVvI@#<8*v|Mye_>HBU07s2(eeF`uH5(2ibunyLC;xRiG^)W<@W)6!;3xq9=(X) ztbMW<^DSCk$oJ8_8^^mOeIO6@AOG{b`e9}tj5$-lhwLuOC0+Vi_;N>A`Q`MXluib&Fg9wi6`OTa)eQ565 zW%!ITx&wu=8CaoF_)Qxef1|EffBHu{TW|8OvbQKdj932_&$7fuRf!itE;h~=PF?7g z-y`FVJ%i7`54j}0Rf4y>kV`6qb<;r;20Gj3!cBzn#J;kbA08M;9Bfqbg;#_ ze#`4DG2dccxHQ6-?%mM-l<+0nK=VjCe_CjdWD^#?A9w*62Sj7ROW(-V>zZlcR^EJg zFA1%UjJ=U@Orl(}6t)MgvGuQSo==^Og`DCZYxz|(<<-Ha+AH;wd&wW;ab|egG`|Zx z3Qw{Loai?;JA2B++vWDe6Dmg1c1!X_9B*J|u4>GZXL+^F+|(SsMzNCMl=D%eIp*&a zVn7rRD_?LPI2Z?FSUHuw4q`4Qxcny;XEYJMgZIOC#Gp(#l6U0rFnp~&aoHxiOJ2B$ z%dMlF_VCETMSm+yf0{p>^<%DG*GxH`{qiNHoMgY?lWembuh|#*%U`Bkt_Ylp3uHV7 zKIV<=UY*xAVi;)tsjEcoB6!L=cjxQ zVUEbIu=3c9{yKE{x)I68cHtabBgeX1Hp}ObqbbgufagCRV})HJ{e3&_N*~)r{P*bb z4D+ZRU7>NN!I%0ld9i6*HkSIhm_CfohBy~&0u(U<1BY%-0*_8B)iNN0sI zeAMn4w5zfyfBhRV&#R8cE;~X#g=C)fl*%&ZUkLt*NQJtriYk)Z&zQ0H@u066# z)n6t*$o|COi29lqk0HVn6D zbQ6VtbM zbh)pkCu{!FKXRt$A@K1U{fd|0PcC4^9VV2YjGS%Z{XB|OIKPg)x=H;>-)c?#pot|M zY)ocMz0`+B_`}Jm!2jF$FPQXS@SOx6^jm(j&AiiZi|3o7->P$6^!pp&cVE5ZKu@is z6~nX=nhiyCQ*LT-QC}S6slYgkUj2*U+H&MyWQ^DmH}gN`4L0PnYNhXk)dzCcEe|GA z*3|SwZ!m#vk^O6MAblwK#$UZ_$G4De^BwW5nV00Sk?dpL8p%Mb;?+MuJ>@_az2mzo zbdK1Rt9mcvTi%|^$rce0b~KaDBCD(VQd)AYm$M&_J^Et(X!43nMPT!DDx_4UklYNj2zmS9eaC9!6xNq|BYD~lfW2caRJNl1~%L><1 zbIc*^L%|ltp3F6Qv@}-M5gT8<3Y=8E`rk$MI16RkSseY>e0{x{KIw_Y^&v4wLhPusLF zJ!N^=#^r+=vLP8u2V>EE9f^d^&<`W$LqQARx$_=vxo+O?z?uS0?a!7Oa^8o#j;}M;C_XNszVoUU}7dZMv$BXs* z;MsQrH~SJjli=^agufSCoS-lzV`A{l31fp;xBn_Z(F_2GnTMxBo!-Us_T)FEaa z#y-LBxC7)}A}TLB&WXoZ2*-FHFr=tEIp;Osqa3T?pZxsDxFgaBaK7dw-k+&CL>Z0$ zhgWK!oc*qfS7+Usg*F2^U(J}X1H-)B8NPLnhxOa&57#EY*4ZNJ9!_1!5W)O&p2=r?2tH@(4Ly8<_{Ye?9_;l@zaK?+J(_mB zN3oqZrCr`rKi-#D{ngZ$expp?Du(qRGvhLT%8l}cD=)}fH}2Z89lN?sIVx-3quhse zUy{9goz*dTDJ&n(I+bC?x+Mzd`pD(o=PM-JTY!i0B;kuJ<9&cI@W<6Q7i}4TyKI6V z^BWj;`vMHF<1^9zoqP<*atPzerS-vGF@EzQ{w|_jo#{JiF*NP4k?}%0xKSTL^h*wl3{vqa~XcP6Ly9<<$?*^V} zj_CcAZP;VTrS;fhvhzhVtvgLl>!>a9SDe>cGD2|{%I}gSUi`hpSpeI>X^I_pyyo~r zu_3T6l5PV0hUbO4p^4&svW&gEL_YX(KQu*b*mJ+bUs zgKGS(Zm(I#fzu)JTZ~h3S?z^W-5t9>oF*7UjMGzq@ej~QxoUyS&`5Jb=LX2(Vb-TH zjZ{XmOmRWesb^cj9JMv>TGsjULCEf49LQcn8~6b*i3`ec4?#}x`tS(2xqS=u-Rq4% zrHvSw96lIm-Y2?A9%)==z5oY452MF+!|@LFfE#^{ugLA_7i_fG3lH_jFp7tgz#_xD$X-w-3hG!_S;?Pz|ZPT-;iWkESK)RKAJa?9|4)V zN%fGG)Mq|nXW7u(E`;;d;DNEpu6KY%ZU6Y^_@cQ>j+mc7@>Owqv3!xebvUrBstPhxpyI*sagmRXwi(J1 zM1AqxrQuoyJ1bn*)aXm=5dGiGZ}qi{ve0Fq%?ls9V~J-b}_)LG+9t;TDd3+rFUrW5|eV_Ao_{;k}J$Nwg{ z6kj8kjlC$kPmAP$^q_oe{|G&|@zL5w>uBBQ=hg-rW=>F#2(1yxdE&$x%5#zMc~&FO zLSa4mXpsGpZr7aWTr>9GtX|7n*{?g(Y^%)gzJ9ylHH~kY{*@zCKJa#bkh`OaqbLjp z!%t$X7NLKM_+3Z#?FtjyyOeRX&^I_WcA4m}^;$2_#SdNJMRP8$b1Tp7wh6*1X82F_$zo-wxhApu{S3QN9dy;fS2E#hK?_QL*SFmqBTmU#N2Zi znR8GXSMkEuP%Hjk(TO{K;amKTw2yooz~>KcL-Xp)8kAd^ue&#&)e&B2R5ak3rbGoT@q;ReBig)q9P5Gz|(Miu8`pDoX zo=M-W{8t|3hskMS@>Jlzv7NsrW@0Y-1)3w@7<-aAm<4C`R82lZ>OgPt!#8(C@RWhC z!d`~T<-_&#s<=&Sk#EIqTH3FYJ_vo&YU}sx=?Qk_71Dq4%XDJKB1S9Gx0b_#JGq4y}Xtfzoeb6<1MtY!N)kNhV*bKqy%EYV&0#FMqq zelc^<@B`osrtyT(5FUT676RjKh2lu4_u8}4*N!~;utFgQs3uWJUi}edxzi% z;USKmz6FC~f?IelnV~%9vI#6cvPn|4@%`kS>P^)W{m-JqcbPTHyoQxmJ$x80^E(gC zOZcjh6TrS*evNi?tBIpW?ww{}JC8G4>(i`ZlDZ>ZV*yW1{8r?e>8Ct*KQd zY>|8b5?-MNzugir z71#Lb(pP+BhpZn(NdKuq^AP9Cn3`U2zXE zwp&BMgRRB6YJ5XB^h%0u^h<6F)`eOh!h4K6`*U~;yV%_0x#+$D{}UQxq(2h|kKUsi zcl7%{Lto~C&gRG`D*n-&yT!CU*tirP5bf0`Yp!g`w1jJzds`myvG`n2oF))9xq!NV{`)x7%-La*J)@HLf4G`%T)7 z@oaF2k4`w0T|jKGv1tXTY|?lR%#7L{Yqvhc9C(N_$4BqR&Vds&2cXBT&~&dkfLxE~ zz(xC+1K3RHKA|JLA4WViv%JSvHFA|_$W!T2W6R2}jqOq6du83iPR>8_IfakO**11g zXf9|!SF$1ru9LtC-_$3fvks{6o4D)Q`Sodj+pOoZCySprD`xn(NO|D!8Ih_}j&E$5KYmByUzLw`(+?^zJadtD?uq$36}ivX)nGd^{{8eCnCX={bnl z^h4f_eFm>>{n5FU2bL+|S2o-@*Q>v*HmD~bf%r`}-5alHpJ$Pgf#8<)HFuUF6Vc!1 zj^j@=X6AXFIf4w4J%J2{E?;2}LiK<18T4#Elm#i;O!6$=Yt?gQV2uJj*vl*S}c#}gTh5nX~RX_8Q&vtvx z_%`Baw}Z#D!+YRe8;w;uYZ^FHnMB94th4>*m!fwzXXnsa+a<>sA2vz||H;^DyLO#& zT7q^2qwU~pA!oLM)#(LR)^Uu-rZ34V!F*N>v*mYUYe+VX92>z1-;;NAy|F>1FU|$d z6m`?Ie=V@s7O^pwVq+xFh^wZ5`GOR)skIQf$qe0q^N+`MP_L7E@~a6Z>AS;YxFTGl zw+(C=!N!<{L*W@*B;)ZuBcI#^+TiIub z=aW@5xtcm%aGqga3BQuHnqTbgn)$^%Xdd4WeI2j)2z&~jdC$E3SU6Y5%F_z+v_hF5 zNAJeU(>m*a`olijN1kF+(1x)o<}+{qRGT6xUMzaesii$OMQlgR+!osr`_F&5GqO_! zkH(UyGLPJ4#wOJr4)WV`a>v-G+$m_z(#r;wjRFreCxI`?@m;K)k3g1b4bAr^J_aTa zn8sn}v}5O}j^LUNABl&E2_#=$_$-#GD!^feF zNxDoj{>TUi4~@aW5!~h0%SZO+{kqpJjC0!>)9V8926fRDqc>4T@A>}>_}IE22hVA( z%9xPvzVZ*xdLMBnAJTfF49_k^2cFspj1DIkXzsGduvbRU+6OOM@9m2h$ue?v?#9J? zAnIH`yLP>cNw~M&|0FV_Lo#QK?BaZ9Ecc8a06vDGxR^rIvC0W>o}G6?sGpcOyXAK` zvdHKg^hIdPp_>a{J}L_5qcL zMLI`03#G3mdvw;R^sNwYcAjVAseQ&M9WI%!cn|q-)KAjkQw)7IR++v_Ui}B^7uNlw9Hkf$!Ebxplz7q6+6S@bga0vyLp_w?g*2 zl$lW;49Zo`^Hc_drPO;E*fzPZvL*|CC^_mJCLTcNA1X4A$LXfX#IC?-(* zx5^h(g0FJKtiCOm1aPV!;aGViJ^(Be zp%1%|Cr*O(C+ESDYtWiG8~K=NlRI*nX=ptK*kt=kMmywE=bl^N=AJdtUogyuE@ypV z*N)REJAwGM#8l*Q#^lQyP^|NNzZT*_v2#0->oMG~9l9alEc~dQ=~BGp+jDEN*C?9+ z`#Y;xSK-v?3FZ|r5!*Is?v`;K*1zsxBhUYnOS*e;<;X2wzt5^@kN!Ns%3budp zo)KiUDaU?FoxI!i-(3@q`3c4gZt;7)itnXU^Qq?z*55G>9{$Fz9sfW(E%$ac(r#+J z?r^kfUT4nj>r~lI&a0feN;RfObeU4aE-$l(K%MT|nm|0B%dHD^4@-_c=7e>ipXIE_ zIQG~QlNS2ceapGuSH99ppfhpA_h@a<)8(iRciEIz45ys#AUsQx3E=|Nc=II}h4#2n^Jv^V3pea)=% zycw_Prx-w|HW*y>EcF>Xf4c%$rZ6t~4Nl^njUh0 zV|!=2kOc$5sg#)s{pEvYK}wv%>!wd|9GyA3_fI-=6!Ue;eK&2vJ1+Myx#NOVbs!LJ zCD*0{lg1XE)iQEL=d*>wGm$L`V6w^s|^H0Vx!~3xiQ%A zvCpN0=--T8vhG_q^Q;K`B~Q2+mA^Sr49{guw$AJ1-AcRY_2Fyl<9A=y$TjR*Vn=nB zwFTa^a;zPwr(Epn>)k&wZ4$p1$}{zIKmEiu+3(SHvyr)H0av_UCT?d)w$*HW@m7A7Zx{X+Kep(N4MgA4_pd}Tx5&ax@iXNg>t-M8 zU!!*?V*jbE-cQ6vl&|w$AKkMy{ccol8hua6Y0jK2U6xHy2YMS@ed}){`Yh*|k zI~iV(K1Pl~ljkD4=Md^nrY$|cO>|)IUGqa_g`YHS96}r}^KewZTWL?v^}f1KKU&j- z_2{ESo|>o+XhR&?dYu`N-C@eeUvZ01UOe?J8nMSM{27}ap8Eqn(a;}_S9sUYW}SL< zo3%@Ed5pu(vyP6&A>I;CFOT|yUpqI`-+uEl@mze+2K>^cSO0X^j>pu0@s%LQ`QW2~ ztsVY#%EZh4f2^H-oE%k^_p7?PdwMz}^kgP74iPFZV1ytY2okeF8WLWO+93f#h}vM( z_$;m+@dcH2JDHgz3>lrg@e&eJ0ThU+!-9wrwRsgIy20=!;6Bye^pi;kHLk3S%5I+T z?^e~M6M`?h`$v7c>(+fa_ndRjJ@?#m&y|1b5^oATIUV>-9F!KuuGao9d5ltcAe*hx$SGpo zQCAm!9S%4bzNLp|3ix@HID5f+^0F1a+BC8PT~Ol`oSPW;YU{DE9m#LOo&t99Bl2{* z;yEghaPceVE8$CZNA<3}Y`HHzEk!#44D%Jwlrem0I!_4c{OR)FPUl&y1tU6}@dsSL z!LKW#t6)YhV{g@3FxblyKWAiz_)c(MM`u(c*?a}E`G30BWqoVbx(n8}Nf~{D^0Jqh_3n`OFyr}QWasu$hJI_VL0-ZOX3abE z5NqB^$U^aBR3G%*Y7Ko6nf9{gmd3TO9%vh2?M`(_XG(qMQO8Q@`q1&Cf9JdUE0K zJboWMQF64GyG4UBuD)w*TkId5sIr~8@EQ~&xU>ua7hlf0E60_ z0-kMfAfGyP4VJp#8MvF_QC{t_hjRR3a6eNv2E~&UF5{WeeQp7nf?r@f6YCSdPb_k# zrNlj?dGwT_z}~(&l>9D@17FPB;5$QK_pP?x;kb*uMIOf3t45Y?XKY|oMOGl| z%D}Fekh&XF-&Bw8;^Fs(c)k}I(p%Se(OC8a^wz3yFFr3=lXu%beFk3nNoalTSSyCL z4iWjsIO~cP!^S>Y2-5I>AZ^v~Vf0ONdMr=*0{RVo(mXG@E1uG~v+%_g z&Wx=dyzSd}G|KRSHkpOu#c(e~bKhzB#F{<+660$Sn>X@p7V=HB)4U)X2l~9B|5@Nf zwv4Wv^oF^{w<~FXT0WNjRuSE@0DMcH6+ao{oYC zZ&7ll5Y!o??ms7I-Ui&WwmMex)5W`2?2gg}+tu04_2bS9zQ@`FnGto3FSs7aw3u)-wJ6!`7X%< zd~Tq*wYAG-uFo#Rc6U+5D)fGpxZ>Yd8wtK!`QAtMUuSW;82gR~yao88#8?=_u2$Ss zAI5J*`-|^m3|y)8emP$~7JRum?r`9oLedgl1HC$)L*L=yP5_hd4DzM2E6jRF`Jxyu zQ9fgvq(1b1>{SbD@~MD-p6^80$+*&YObm9TGe*)aCJyi^yjo>+Qq~;u zPr5S1J-R`6TXq9?_(&FW=E&Wkcwh(M(%cKr_m76SlpbpIE?09K`l)=P89zzp1L?3j zcO+d*@)oxq31muwat7zcpuFn(7wSmmkV*6-8Y5=U8(ZnY{r)k2YRzZ( z&;$PJexDNdTYJd?oEz#b#mnJ);zJ8J^q+4d{V!z(SWgk#;SKt}rK#_fJFxGJC-wPp zWcQ)^yynmK8DFA^*0NQtI;hWVx~45?EZ8hxG{0duR{2>?^Q6X)+EqLs#Tt55dzg$L z=-O@h#OuaJqP(Whd{43FXr{T!sI2PV9qxY~O!E&n^;^1GG-lMUi6subZRn2vbGK{< zE8YMHbKVFCW^H@myk6oiJH?-u>^b)!d`tiznzz+{v^OFjE9oN9+NqgmPi}%=z9{US zFjmd|Qs{k(!Sax?lS?*g{)$uY6AQqj>MOCnR+%E}3;s9P`&R00$$|U)em+)g`3Uar zgW#Tc2)N5{z-!4Sn6-wBU`7^hvogTk{vdG8t+W8MId_e1e}=V9N2UA=kSz4H*TM>d9o`Q=&aj${O~xZxsWE#!p7-PbmA>n*3ZBS+VbiD%&- zyWA0TOBrI(jWKzUtIW{b_+IB*P4bpL@@`^+bU=d+jc3vR#Ee&~Hp79QN{($6$@Xngd zq;Y?Jb?v`XFLHu!oL#uEmhy?O=?CX`@^0XdtUB>G82*mVP89?EF-Attr3t=;qBUb9 z$=J{w&_ddL&0~xM^}nl#u2G_%f>*gc>VJ;9^5%|mx-s9_VRdf+^G7Y3t2e3NSre0e zt7L6D>(vr&KtJ^}^~*!c*=fKtGPh8!nch>H_%fPz1gG>U?H`IxT4(L}w~$V>hg_>* zpER_PtUXJ3L&uPQqJ2ckRoQTb3#~1l2xTbq6md$m)>%D#5$i?yu&~ZdXP{XDTQFxG~@Obrc3zw;g2vg4bJJU;Jil*;k=+CNiu2qf_8N-uOY-M||zN4Nd5qc;uY0f5^}go_JC|RZnE92lIs1 zhyPukSa%Rlto{1FJ(@e>oShJ#vIn0KuWG-25$~*J*T4sBInTO2!nb_HfAM^WQ zzS>X!E_=n=?9SWnN1oyDIM%B?WAAsYi9aM3EdOVJFSJo* zmiUjISoO6Bu)6Rg->k1)bEii`^VHA5am?2F!X+#vupM}w^Hb8E#ipdWN_l>Kh&+#w zc9ixrGTi5j+(BkzOIlj_8Sum|Ll2=(lC?4VC7U0#G;79|9N$Vk%t7=6IO2oS3lpqs z5_PTn%aj)l{|UNkT-?Xq=E7Gh=hv)4kC`_lC*wuRS(Kyf*C`YA3mI7Zd?dRI$PV(+ zr^*L(M>^kxf7M?kj|2SzpFp#(XvRTQ&y)CJUQfNPZcnw<6TMkOVJFP6&TH|Yx5vKK z;M&U7q6>G!7`ng%3Fe3tbomrzd%x>gLp(3?h%QBbXKZsU_4}dIB?CU?KX!V}{}6ay zckILX{I97j6rQYgl?80*#?Qu11se6^HsJ90hqB%-@}E3J`6@BsvB5V+V5MH!i~b+=Ms1-FGztgR zweS#it^S-Dd$nn&(4Rs8vvn5rKwsJz@gW;~3~N*J{ApJ34OmBfuKrUt&YV}7Mg2+k z$B_ZDHB}g2HtEhJ=o`at-sdj)mRy{38GcRcVaX>lVsjT>=hlv}13r9UmSopjza@8@ z{}yl>1FpyZN%%AST=?zcZxPl_@RxLq{yX4xChfmQzgvk#*W ziJyz_C2_J7ZehU0GD;FBss*12`9nbqM?8bSB>T`jF7ZIzO=BY7sZsw^jNg}dUg5cm z=K-G70}hjNKzH#4^KK)0r_S0VzW~oAuX1fu`UJ)i@tjBU9je^N&;|FB$K2~UWz8<( z3EsMUW5?!ie-`@K$N<{Ho@e6iF@`iIH`H}z3cDiXM*o8tc~%G?c^WppIsA6Vxi8Z2 zYR0ZE<-47^tonK2+DV(<=AnvZ6-L|WsFu}Hc^ml^>-lcQK624DX;bZ7ARQxY|NX#p zH20{B9|v!})?a(~@yM7m+9iz95B9HviZx7qkI9Hm=?WSB1 zv*?oAOZ)a=U9=jHu-7e`w3__LMe-uUjZ9g?zM;NJR({3oANl7cT-n$)!;K z&ZR!-Gm_sbmqnNO8oGzZH+*B@Q(bqmPS$tr6*9+FH-&ldIWjUd;{OSP?+3_Do>zDz zJMZGRjbGI*J(U=Z#xD0IWQFi|aQYJD3%=y9OHVR>u`RtW{cD`*6we-9&*h3^Mf#4J z!MU6gddtCgGSJ6<)&fSpsK3IE?!OeC^*^7J91rdSjbypfwLTH=Ihs4+yQG!a9nFOf zcrt#$*sWzx{rx^><3pS?dIkOOO~qDA>v+ikJ14ren=_H$`EAo04%)!GX>0 zo!D0P(OpZ7S7c~;1-2{pUh#3#y(HN3yEQMVo)l|?KbSq;i)5EeD^2|OAbcvkFhlOv zI!fu{Nv&&btz}qaArlhuY&;QjeLLmG6SSW`5Qp*I!kxJ{5B;sJ)LxGl+Bv@)#43<} z)|%0syurSo^f=mHE!{1Lekc4O%N=C0@qNh@yRiv(*O58hH=}>Wf#-1QknZ(W=8Xp) zbgXqePyOhxf37C~DxO}RmSWsz{ncnG_Ev=Rmf}SJcz%y&-hLnRpXP7+xb%j*nX>pR({?7^{i zA`YIpLx_6g){%7+8&q*XtX1INsdrgH9@)8+4}bD)YyKh(G5>!DhBn|oGz?4rA`IjI zmtdIuhA`v>1NM{54JEZ_wCtm?Lh&=6!k99(U8OyH3LI4c?JGRWgdUrdyfIt12^*GK$}8yX*yp z^|0@>`^b<7m8LUDy8mnvJa=??Y&GNo3);sRU(65qoKJzLGWa~gL-9-x_ML?l@dkeG z+nD4Uwtr?-e4}$whv9pwZ-=?p_?GqIs++x{dKlmE!>yv*inm$Q-&8;OW#j?*Gqo?n zOEW77o>}2fnKcFwsSXcTLS71luH&=_I9DE}6Zgi~ ze7paBndD;A`*`SJHEuhD^^)-5f`@FnE;?A5W?dtVuE96HYrf3w7%=f?xk{`)gC|bcAxUd=e2$;cbl(y%GeJ|%n5_CEvz*9LMwD? zEy7o!{UAQX8jgC4&jj?vm(b{9snB*1CvTFziry>9C;wpX6zDjL_N9MF*NB0$xnB+S zrUK)PGPW1kzNP!BP34gudtQ{UM4myOY%oXZTU6f<+1I^^wiE;4jqC_5_&V6&7a_0# zKSlnt=chG{gMEVWimn2U_tz=A=-z(`V3hqsdU%OGEEP`OAfNIBPwk!2-pCN|Ma^4U zuL;*dU!Gx%MgOBRZ;#59C{r+P+sGxGGfC-ISNyQt*h6S*HS@W#c`;s$A5|=~R(eFY z{LNCp@=#wc8B=$W`JW%>7yjWg<#|6+N!h!USi_G5p zg7E$U)=}g?iZk2r^2iz|3v8pvI~keKk`3zl1bC7hp{{mt*iK#T%g}R8-Q<-F(YcHd zhxxF;Eytb+rGF=P$N&xv(KXhRxhu@2Y~ zjP<}zBRH?EaWC6A_HXuB*)tjp_$T9@fo*Heu;^H_$L?NrTR1jye9!X?VM~X8Etx>K zOH#l1ZdsJC$a{&ne&lH#>Vt1Ct+jefIY$xjOG`#)mKW5prx}}?Yz>YJ4X79UQh$r3 zv5`0H?G|Ha`2yl9uv1DORC^lFqOS+dkP{8U`zLj6*z4R7-y>FQ{HM}QX3m;$)+nMLFK{@iillOv- z=zP?#599~Qm*)Nh$H*M6bd_n3%7kqTR(*@={uFJA2Q`ij4_o5lHh8!VJ7`<|V(M(= zZgAOTTZdLw!9ysAF0G}8_&>zif>4ft*K{kf*jlVhJJb#_@`)iafi)trOUjamtA^t) zxXcFhlMXTMO2)P4Rlpl`GkO^|DX;c2dpI%tupIob=%=w|xSD5k0nStKws=x`%i8a8 z*Z3*UU@32lh0R@gX$u@w#C!0V;XSRp#Cy#BMs_5CVcY5Ch5y(S+1e4drSyBlboQ9G zQ_jGk^t-}zcw@VGH%@y>|5}(19*o^b=Y-&+wCG@wPdJu8wJlj;A@4X()0T_X&Hhqo zdoVgd=?oKlBa3Z8`;Yb@^0a_%;trU#wb2Q@zNU5cf?6UR)3PVR{~elV5<}AO7{9LP z1hffkr^tSE1>^wZ0yv289eoeR0k#Y78($mFUl&&*8Sp3ips_`tC~wZ8V2@Z3*e#&l zk@QvHjV=ORUOO2Y5--Im-GLspKr}G=x#;ta95^oq;{h0JJIITT&rgIj6i#nb9yg$& z%BW9sz_INSbHMXXeinGJ`&P5ofjrhi8O`J3^V>6CZS$x0?a{hLchD>XMh94s4-WbZ zwr1UPKNq$M@Q|?v>SfYfEa?V$<|M{*S+ZiGP;t)5r=f_Q*>1fRZ(w_klZluKdT zq}#{|o3i$~)XRTUPn7@VD1VOfdDaQ!IT)W-nLC;yT$jPQWE8*e58$ZG2M)<^tK>QF zLRXSbXXQQTo#y|Q!qEtiA5Q%dEztGSbJYiAzGQ;#xdK1r4c3oMb3_`tknhTxd_E(3 zs1Gsv{MB1t-)Hq#{Ra03$am$xG0GqIxeeV#bw%}N=$Dg2E|3@7BQm%Z8Qh9|XssV( z`ntr7t5)|}*1e<6dMajO<|AV~Z!P?`!8WoNz9MF)@*p46F>fZk3vSp$Q$8bypkvgo zVE8R@(DfV9`d7RwANkRZBYCwzI-~==B{Ps+0c<8d9I{K}<4(@C+^aP)Jjy*v{deKo!BtI3GW5Tb9sSAwq zrx^_WX|n9en;4Av$;+My{zRJ!^3JR$7v+hw9s1`GgS+FGw5N5Zbi!SVF$0{!k?y!f z&UDbf4)lTUo%B7*H%I$p)JMOurx9C&F( zuc#hmjc;du;=fh;yc?8PyK3)Q%0+3CY53hL_LPA;DtCBOxyU~sec$By5#?LLI$g@g zp?M4INu4vcGV&ZnQ|Zsm-&tk)a`WSp{Ym6U_r^b$Ig38bzZibvY=&Lf ze>UUqNoxU4^atRjA45O!wXc+*jMj4q_Hm;WzXf-sgj7- zcX+RU1@9%^ZSI3%e?a^i#I+!ewR!#UVoNnwCeDMqsebOzruyu{rh0x5eJa1HepP8x z{pzfVQ&RtX;S}6!9+16rC-O_Of^o(g4F7T7MH|timG__UE<32Bv^=tgw8u!3{+DJ? zNoyPL1;_GvX1vJW63=VMG6()$d+f3PEBu!|O!ovQ@EMEaGq%zisOB9@ zFnpB!FmhgH7WF;QRQ}$ud{kETsI2OEGd5e5w+aSFyWd0|+%r{EJ&$8sv9il77ri~_ z&P>?3QtSlk);-%ROOnr=Jz!1Gvy}SQ&L6*dJ-{((Ix-7_;wFyv{6 zdetub62P#i`dhxob0z->>Qx^j7*!_fV;g04MgtlS*U2BjhurIaJTp+WvnA&2r9SsY z_><{ZE;Ea~`aQF5=X&5V>dwh`;)vP@pxulNd}D2@e*_v#<-hu34eHForh0)i#l}E} zS0?ekkay8BqSbq;YxXa>FP$g;ubkWAVQ=4W%_3Lm&mzu;>nwE~d~O3)21!HrHfSH^ zJnD+_DRx$rPduSIzDa)R0N}lP0%O9;f8?K!Ctir|HxrKRLT@#mTjuAov%byqRmrmd zgN)Vpl{tK3bG`Dvswn+l(sP-Q8oSj~*qJQL%$=3>w2`DP)=1_&x(i$p9OHm5URr7B zA~-$Dr6?zU)m%5qx~9rJTH8e3EAyNeX8jt^_xXyIoFDWaK4Z|^DIBQ2Tx@{7=~7j& zT%~>io5pY4h5pcNC+ENz_Z2%A=z9+N9^Zj%L5Ca1-uB5ncg$ndosvh)2Nl`5Vg>Xv@FO0?wom*V#f+L;dprM`oBO55qhqJz zM{n*!*X@`8oZF@rDlxYGPrqZopY5@%F9%7Fbiak<{XJ>dlJ*N?aA-~5$(T{h5y@R_59u_vXUW%* zGl}456zQr1n9cn1o;w5E=|4dGxq0d2x}PSnzdgkM{gr~nU0;taUBBy&uMA0NN-tv% zLvX(M*3I>&fkFSD;{VV2ZxzZ{0lRWN@MN7VWdn{w#VWeht_>bnZPxo3{&Y&Zmek-sWk&VReu9yxP7} z8u_I)0Db|qoz4dHw#B!k8}wWE{B&Sbit;7M*J6DRT@L%Vw>H7uW)5^sC!5j~0|7Zx zIoeU|>d&FWtWR+EV?sr{<@09pAmMQtaL5JmxP$TB{_+{+W+MkeJ z5PbH_?^JYDdCT%@^Nz&lFWi5c8tO?JN9vPHo1LX~$Upi=Oecp};2BS63#`U7^k*#J zh0_&Nf;bZY51mE#GAh2d(zR#6U6s>a@jm5g|G1dD*q2WGEajCh-@*rN>p10Cda`i2 z|3kh#)h+s6RNFBf_*~>5G*lj?xAOg7d>qE$d*X06&nV)TEue2RPU7BJ_@3kZ;eGS;m^vW->Z0fc~PztlO{k{#l4zSn@IY}d>_xR%1s5XjllE^?m`!j;+uxwBz(nx%^k|) zLbv$)kzf2;tREAKTZJ5*PJdhOkW38XxLBN@RyoSFqf_FBYIQ%?74-Wn?0rkmR5|}+ z0gcOi`$yXD1m+1DVh(n}ODS`Qc7InlxyR>>OW96J_t{j zh|R&6$P5isrHj3pd{1S$W6?XeDtKh4?sEGX8^JvQ6BrBIvQJkO+hYRX88h88LO3r` zo$7O#zl*$zeInV;JbPTcbVHq)o&SMtL2FXMqB{m(F=ObXBlJiBhjjhX;QNbBczpr9 zM*V|7IB%!EhJF~-d+!mO>odXE&nT;QbQbHj_krg@+FAXJ8nU`0UGUnmgBtt$O7fpd z{`V`tY+LA`y0d(FVMQicSixDX;4J(9=+5#2yvZ0no;F%ps~>}XUh|LcSM15I;LdW| zIpEIn1&Zg3eYW||a`IW^JJg-!hp5M$E;!hFqQ>Jtm966rx;oQ7c!nTAS>P%VT8@uKpxGN3R zne)&S@Ph)*x#V@SFBts-p6Pxrl(nqK(t&Kbq;ejzLo!_Lc6#gU^$><_-r>)4#&8ABa5PkRUDUCO(ZWlkJvOZBLJwKa*hTFJ*AplL^GZNyvDT&8iH zeO+14ewDifcCp_O&ukdx?mpB1;nA!e+=ptiUH$tfgZpZdoW)mt_cBK0=dL|K#c7fb zXl%;7D_&A+Xqg|yTe_LKveV_PD|bo4=Nnqx%SUAM&A=Jq3*SXzem>1QQFl9u%(s>) zy3d%o+U+rO(NgsVolJG>er(nR)AjuoeBHl8e(61G6aF1(^Fv{KPm$-F%9A0Fi!8w( z+b%9Mdm)Y+=<(=;mBqB7b%$sxJC1xqX`}sy_RV9&i#(0q(6@erX>*-f%P6+kWWK#_ ztQ6MPXQG2!j7`C+alD`jm*6>_2-}}Vy?xZFd>>#;Yppbiv{mevCnzTw=3WYX{8yfH z!@j+pyu-8QhiWxmW3Qq_ew9@o_3dTS65RFP25qg9=sUNf@y+>+<80ESz2M)ou6~*4 zPdxv{6JNqQo974~?Wv68cM{KZp3`{F-8O8a+p&Ris8`;zN0jJ5fX}L zWAxn6PGsT_xc2Kn52rGpqR;`r*-cBSdjm%x`8{YSM#sx-g=0-WplX# z*w^K-m*xkmvp&r_xp+hs8+wOb_8iCKeK0P6po%qmVAvYc{tWnY2kIyM0bXWKeV1(C zv+2Y8KIW&j$C2~4$OgCqyTM?Ae&r~e*WF@T8(cSh+W%voMR$;na2)hnlnM5aj>cAH zbGA8pw{l)bjx@)*eOUX|LHdQpZX4bEti2cL<8YqCk*tzklD#VJ%k8u|S66U1KaI?O z-mID6i|5fB`Bt&PxdV=3&_FhB*_X9nZ1$hr;LN(@@ywUP{PY1HLe8U?<(RK2r}9@o zE7`$xw~y`s5Pem*&P4q5Rmui7^A5^%NblA?2~USH*abIzbolK6{*il8bq|2zeKyy% zEvl;!#Mpm3b?J@;$->*3_9I50D!b%?`w_YaS~1Js6n;atY?nNed^ucu6a{?jroHig zgwA~bt#S0-BI}^=ZXWF$ORrH3&_nJ+oEO9gk`5RvF<<1+3n;?0%qgQzz4HqqwmVR>|ek-BB? z)!x(B!f(yAxnl;f3=yM{x)0bZVq8*(*(=)k*U)B&xv1=G?a-jU+7)GJ!~Ix^@?Cz) zmrWi#_yg!I_&59e_xao4|2XNXp@I4eAq~ej|6s>ba|C8dT3rbr}xGBCtnWe(#H8B?b9<>pHI2OFb!=X z+jaf``DkYX8?j(-L+|Y3-mMh(m<#u!qsI3Q&;(v%&)=(ctmK>)wCQAxoEo~$fBau= z_oa_;#n!TR9F?X;JLj`ZVY>XNP1Dy^wIL*h&N$2hdgcU2$X zto_G@hSt!y8(&3(U)8gcdi_!qwm*=@^9awRKVnhjd5ULeb`ASxtfR9(-*s&GYr8Lkg9~f1i9MAVG3du* z(;PpUbA(fuwPW9GpTHwK=S&`Csww-|l+l`0?I>?7!!xy~;_%;|)>AR<&CuC3D?MQ{ zJUe+=WnY(59XFBR8BUe9EAWB#XM#E`$_vgob!7RUDw#T*wvwsCr4CDVOtY#JR7aat zwc^wf%*9)%>(*?we#)$5Us3%bvx=kDOtdT49BOCvmW>$(s$>(um5B#nJ|@5RVtsZWkWWaeRCXqPWU;3UBnc-vTD;*ZzT{aR>Z^g8x4m zO~4-K_ho)H_uPiP;Etc~+p~%9N&8c^h<9Wg<34I^Bm24e&sZN#Qjk*7xV!< zp)&+$)QwKt_x<7EY=3YLX98niwiLy35>J`2o)^DxroRBcSAy{^o)d356-V~;EQ@F2$Uv)4K7C2k_ugvEJ*!&GeSdft=N*5ic+P5vx<}6Xw7q$^ zmBUXxY|AQvCtyHVu;C$l6l0ma2oukO|4KKq=cXvX$2+)HesFCk$glN8tMwW7(Jo}~ zUH?C)@rG==*z6~%j;Fx)51tI{TcQ!=D!=(a@E+Oe_werI;8kD_e3Fy+Bq#BEO4cWW zXURe7`f>Dk)%iQt*ZO4)R>a%l>0gu9imru!NA+ZDNMm6R{hfb;`ej5nCrKYUi zCA+odtc5>ycgcbAWxv`~hPqC9uC#Uvy5IDFJSaU?+IcFD7tiF&YJ%5rf(mOU|YI&mo@0sdYir>gH4}OHs3V2l)NqExs^S~tw+Ki5B89v{!VLxZB)psSKvQ( zu#WV;k$H4(?LFe7l2yb`KnLSaa{V=IrjH{Z+1ss+!)C8E z2ib5xR1)dD}}Q3nFIBn{j%l2ySQaLc|ub?Rv&hCnK_x~_7TwVL6-dQ8kNgU*X8o$lIWl7)hc563YC z>NjwJf9BKG$ZxO4nT&?&|J7OWSRr41mVS2);WN7Wky?w#JgK|h*yFU_xNrQK*uSyc z@n;&hcGoD%#<{mE&X_?Kc54mVnYpe$9-pNwJ_HW2Hdwzf@8OpIkQ?~ z?@{~zPI;+MeBkbP@LhgPtZP|ItgWYu`aZXIFJ-L^b07SZrf=rXv+NnmEQ@&ER*B!9 zKI4N1{EE%tQU`Q1bw~yWzBGYvg!-s4anHZ(+j9eX6{lVBXTx^&J<0dD8}Qa)vfm&N ziOZ1w3i(u*%EU8g((dZ8{iS`#eeMN%rk;X6R{^j5z}_mjv7KY@*y@5mhdo5_b6nJy zBt9@|uN4{}&pyJZsYCZ`jgcQ9>rDAQeFWY-R66pyKkCaB8v+;?&>r%BD`kLXeO-67 z%{Xao{U&^OI=QD#wv{>L>CA5A|J(q+A#f@@d+5QOTS|KU=&k23Q!Mn(;y@jJmj69{ z+IQ(Hg)#=*#DQ7+Ez*SqhjbO~pLg!vSXY|#HqGtPw{7gv8F@sxGl9J7iY^n0r$mg?giE^WlMl4wOsuAie4ll1U&K$WgUvpV)jlvRd#aQ6 zL)4t2^|0ef9^=DX3UNzcvf06e&I=lRWWX7CJ9rK_o%*E%o3%%IpngBHvN>)v_(>B7 zQ}<13j2Zn?`QImcMde(t;;J9g3)ovp=7YJ1_Urxl24>Be_zXJEEJLpmT2W4T6dqL9 zzJCtw$|djt{7TcelW8lJ1I9e<^ByPN%ss3VbkBisK)V&)=hxM~IU#x$Xw$}LRd(zB z`|iCyMp*@AD61JL9>3gtxTz&8Z6Zp$5wGaSE(NN65J(Ss*f#{ zptZ@1UwuzP`bLZ3=Wc@S@J*fPV7%?kY)+udq~m$|56`Apm&ACt`JE#8fwK+y<=_jV zH75J^*x->_%wH|`m9GWqZap;AqV;u)4;aee)c{4>x*w$g&#~mb4-7|%R8|DZB4XX z3@wF^JO7@2d&Z7*0^ON0dvH^I{t#m|cS)5tI^t!<6ldP7vi4`&K+D3K&d@jo=Jqn@ zU*NkoWKGUf8Lu)c&-s`VaeWw1$i;e!dmdWBk8GIWF>PVHQM@U}d-_#u6=u!*{y;x| zd1Js|DR`g-JUTiXM;p@3lC*n;sb>K^fep$2tZ3A)dYQz#r9X%UcTlJ3rMSW3Ve&B7 z;cE+>D7Rr1-<9uQ9uXZp#Z)up#IrYrv^g(?7rEPHFF}#7-5h8yIRd*}=q59hf`xzhHVW$1*60|}OHgLO~hjnA4 zV?&}NvchF-y4&lmrR~fk{ngH#Xhk{rs4LfxFG0W3p%H6x>ejr(JstH=1FMM(ApME? z!SEJv5y#Q^4Yk6*iY=+RZVqddB>XAei8Gt*jcyulrnB^A?Z4Qc4)$Np;#WMFL0_K8 z?^Ixl!&B4v)xQ1=*3nsDw0zdkyo>i0+e~-9O2?fHpSAHWUkI1?^WmL|%oiDK8gYK3 z_EdidWz~l2HSto)=y5)M%n+w78|=$EuCcQiTVK?M&i8fljP-*yrbKOEV^Los*ma*L zW2GkDrjzkQdrnlp=54jBb|#Zg?T8O_hFtwn8@g*cYNM;E4UJEyq*yKQt#*J{WN5|q zm>Y-CxfydaGzYPFDBZL*+#hVg4`~rTX2)s_z!&h$^HJP)jUnA1A$#d$cfj1$Oj?67 zCZ^4I>j4iwOupv*Mt%P^=W}FZ)44kFKXSa=+}Q7KW;U66wHG*%x{1vxe(IO5 zE*(PmZotbMp1=;P`p%+0twHPpd+XGzJ4Xr6dyzBuJa+Bcq#Mk$Etl-u zgTG%R3vVc&{F5PIzhoD&Q_zdGhr1YG`+l>Jy9l_&&&_pQLm!c0j7i;*dwu;he1Ek! zuX{z?yp?tK>KiH}x+=azTUK|)X#8{6Bfnkwb;h?sco*L^<6Zt#8fy{GPmgrIe87Lm z+q7_H8=P_8*nNb$gT3X(xuGq9I+Fz+`kjC#Q$yYKBcVK#JkY&(9eyZleD0>Mu*RoM ztlT7PNEbiY#h9^g?mNvzV4lvMq0Ks3 z9D6IgZ6~m)j3+<8Mt>B)zoIec2L8#bEPMvh4OY3E>%Tj}-lJGlmKDe*CyZOdy`AVj z*iMGl82w*+^wb~d&eYpBG!V@Bf)^Z*^?;w>yTBN;hVGQ^JdWyF2OXblB-dsR;^;2sMY#>H<33n4YXBT7tY;pN-w~W+cf&W^k&?ix z^@n&yc=*+GtWS6s?IJuxHZRRhx@&P(iTOIicytHqrPvL_!ecAt9gjM4`1Kn(pRckn zmyTqT;(jPbs^)Iw>hr2!u>w-;ZOWc-g#6*4Z;#{$XUIaGF0FjC+3SX{8#*(nHLPg# zAaMZXuPXl;$sNh3(5GdC%DjkNW{zs;9C@oMC-7Qv%ym;qdw2kTx0qi2Um*y3Qz4}Qg2umz9ePFEB>E4k6S*P_TfEr z(tgcb@(&rsf9)F(e_+fg&J9_G%QAfLPKLf9%CA02*HnJ`W^g4tY}B4Z--t<1+t65j z0p770;11z=;+Fm2g)`wj7V-d`*y4{ zYdLEba+h@+c{*9ob(Q#U_2Gk8s>gEhhqa8gP%y7)Ogog10gtQkiH+bpjH&HBzvK~b zif6R8(Ri{4$?IWH5G@%?%nwd4xRp$i{Vbks?_({xES|Ob^=gghLwP~FlDpWs*sEG1 z9$@^r=U{ricEyR7k~dj;bz<7er*T~~Yvzgr)B>!=Ub z66j3!-${<~fK#oTSo`drNI84Rt8K{+RSJ}|%AAE@lPhMGm>X@Jh?iE}V}R@LmQ}{_ z8!Hp{3){alL|(?Una8M8W7`@UW#-#a8tdgY&Qjd!PZ)!*O@eYsV(g77iASf~{+Fv; zGPEan{egO6N+45WLzeH9ZQtq|*xi`{cP?jLk6u~@hN|679aB=(82<4#cX`BUU-8}X zy|2VdD@WvraIg=1y5yko+yF)qUH?jOgZMiJWrXmOE$=B;H8}8=cZ?0Z^tof zBKUP5fa|VeNc*4_-jNx}R%7D|_I{0xOZ~!Fi=n#7- zH&S<4jvpCKPMXrlJj z=3VHNjJJkp3zGQdycOS!9gOwYe=*LF{7kDgo@X-8p>TF4_5U?E+Y;jJ+kZF^XHzLJ zoEcmF8{q8R5NG$&hYWpq+Z*8Q4>!CXXYUGeh5$DB`80K08{!PkFlq8XSl)!Q2$%Ag zE`{l_CS1-S{nzr#Xu{tFG9NiAo`)Vr?>Qov50Rh9 zHT(vVPs~Xs=Gjh1F(0y<9%Y~RaqRo-jZ0saUG4K4Z)uz8`$OJvS<=dTtRN8Fw=yI(qPa$*ZiR4(Y%03sAnx(L_&_Q+sS*}fv7bevV%Heh2VZBXK+qE zR+xhhF{j?TXt|$U)bAgAr&l?hSUJbuhm0D0de`YgqpHVp&O0;sa9!!6NNd;sLb96n zp58Uud$_Jx+)4hYsJDZ6r?k9EYBPqAEId?iE0_G1!qdA>L$2GL#dq>0zq9Z}z0-Y==h3>& z9xwJYbgzqR@OgJKyNXy))ScZ~w+qXv_S7EVnTr45TX<;WbQ23{e;X4{)*Sj!-7W*K zOJA|aCJVITK87x_ioLX_cL|2h>=U%Lv?_b7;ONXgSeHE}mMvvEvpu6VPe7{%=Nqe` zK9{yLSJqEsd~?>EGms^0;lwt8#_`O<=sbhLJ)2Xo|7Mp#lM-pHUGVj=viN0ESMaX< z()Bb>28=G!hJE#d3tFwW@_PqkX_zOA&$sp~oHDc>qEGOb&g~%I48Jt*Q^ct6B-(0o zHFh+Y1bjX4YABybx3gwkVb4K6Dlfi0%q94ea4rCUXO$CN=ACms-|?}t(!T8ABR(fN z>M47Hze$01iujzA6q^R$_rZax<{8<@9P7s6H_@J13wpFgy^`lS+D&-_^^ZkxslI%0 z|Dfb1^9SR8iP`@FuV$W6xj*68rC%et9^SA7^n#ZA0S~@>-HL=jHf_B6p$}2w6oBQ~`R5~B;OXJyOUtp8{ zf^m8vA0G4mHuP-r{&;@JUjaLwG?7UJ4=8OQX`;FY#^FqgEI z0vV}#W|80WghQQES!Vbll9j6GkN*+!QWiYsz@xW(4Dxw|pTG}xw&mswjCkAhh5eM` z-@wOK0eK1R&AiMVp!FA`wt-W8Y}zgKGF}7zEgr zA|6FpK2H7?$~~@m*3zAyUWdttULyDe8+=i*3(&dfRrY8NjQmIb7(0`2D_(Y}FDj>f z?&z$n+K{manq^N5ebZTXs|>z?QG9&&2hUm-zjVxc&8=5}H;rxN zj-ef}vi1q$DZJwb`WdEoVV6+4@I8rg5nSbO>}yP0N(`sZ2J5uR;EFR*)pl+iUjolUZm2K80JW>>GW@&@ms_;C5g~O}LaT@x2JV;9q%f zo~wH2*K(>4nK+AI!vllxfOjAdi1w0iDkr(8J#*3iSHC|HHu)+@zGIgk*(+C>9@>h^ zs-6pf6yR$d`5wrk;|}%s_w#!X@m{oNzO22+kLOp{mtD4YSDO7-$>(4_p6s*5hxA#x zne;c+tNu6ld0+={@jbzJ%M0>c4h*t?K+mnn7xvNys^hTrOBOgK?88m-7 z%5_FYR}~9G{pg0~Q9m5~?IQUv{1?Hw`jaM~`X>AjfPcv<$$XXHEEzk-p8e~OXihNvg`HUKMtTFdt4J=HJZF4=_!9Q?-*DceUCDCsitwkl zU;Fn!ev6Nwsgd2cXS~`EuM5}P5)IEnZ#8q=S|7XrINqXpTZGn*Fkp!^86<|J=gx|@YPH%epej1CvT64fyo z-ZJ_TzY*@d`}QI0%{*uHX4&~$@JZjpdLRjY64VjRW1Xz4Wz)%Mj1+(~kG{!1pJEZn zFKI95i$x>(N{L2_LuOM~iZzt%v?DY-@B70q|8!qN^KfTz&7+ypnn$tER;24EOWu=j z2NzlcN4!Pf4Bmxv!QVVr3+L*eaBjJNP4J4wJ>Wg!FMUgpXYRrL#W~vF68iwTXU4Z= zn3-=&$j3qKY4}eB{*B4k`8P7Q8uD*cEHiW(?Bw#h;EuZNGGD%q(zoZ6=Z$@ZLWJ@N-nya^-DG@VxkeI>zj^#JSZyUd=Px<6Gskux3kmIR8lUa)0v=^JCbf61Z z|7Z^K;R$r{g5)N?BKZ=yIcphqT4Qe(P3`h3-b;NM%67W!@yY)QS{UC%aENTJ#lrGB z^Apcd9>2x}Ws~67HvW}M`?@GQHrrc=*BUPEi|6E{DgVm2VA3z?%q4a_voV2RYuebF zGaY?xlnw0QPG5>T?5tONFZIah@=xGK^N(mIc*S#fd(acvb|ZX=9tiG(`Wx_HfSXuV zFmQHrKMbb*xi#XznEJ#g(;uattY15cI<&7M-%QyBLZUpM73)&L3HG?Oe@r~$Z_z&B3L`U^u+bhgh^eu`VtudS;u9y7NW{fAkI=Egv z0bfjD6%9rShO+)I4AzWl2Y9s~n!p!QbxKapkZ%pNFm^%ecSwJg_!ydd6la3av-QC| zz7_@Y@ST{o^+_&cx3r;t%y?+%j;~tTrNo;i7PyIb6RT!3i7I?w(b!#-C2lZJYH7c3 z))V}9ij0pTyV~$;R=mGB z=?;0+W}LnA2k~+Gvf$&L7{KhQ4b(q}-lNzS;vwwwqa|O3Z+wRm#QhnKe`1XNyM)ah zZi@fYMZ6;P=E|e!wUH0+LfXz`JE{qOZEH*o|J^b0Lx)pbk-3Qa=Fz77YZKr^<6n8+ zPu{V>+vQ$YZ$VGw9^V8q+G!~g>sq|P-o1E0KDnz;8V?_=0miwtGbk4i`G9?tv;`l? z7goG54ZO-1O)+~dXb}U4>g!_qx(K_S;f+$h%6RHNhP98KoxuF>&?ou3B&yn%(_YI& z+LwQ7KXyEHO+P-g78(V5wdCm;Z?3Birs8Gscni=}TR~K01iSOWp$bOpqqtE~Ae|ybYgpq}l7l zFK7(791V^PpEG{s6WWd}vY~ZMxP}K3!o$C5t!G{1gNNtEk6Cyz!C9ra+W`#tpt??d zEHK6M>|MIo?9v{y;>u8u;VH$(>H=QY#AduqE#R+IBoBQYl?O&->rDEfvBNlJ>>OEh z3)hWdUhh5)yhLM$_S46QvPt-r?9v`N^0}ch$n5l3#!(mJ$(&~>tWJ=pJ$Bh+PX9RW zY6MovI?;vk-H6#eHSv?+Oj+FLlZi23&qXdRtNsV$8d+obU$|dBPW->7zMOuG_l4J| z&JXY^9@Urx7s#v&w5Cl*<6`BwYceaRTysQxXxSLy6u#?LdDVF;e5BZY0Y6_Tbqg3zPWxCdwS;|!=25P)t=uK zl$%ev#grpXZMO@Ib{3h=dJh~p@YHC*ES$m*l~&+k?T8Pn)*b`()qk+|$hTw?^;s74 z!(dO{DlM&Fv17oj`G(N_<%hBi=6izwJ^cQG-(I~hur1k9&02XVCBG+xopdWK+KfXY+TS(5k$RW)aqD2ch=;u6soV+?O z!(J)lf_riK9^+kejPRj+4)zSmGnGSkm@d6RbNiH8>X-KI+*>HORr{^7mnfg`$QgqA zql`t3anV40B0g;X{(Zj3NMjt<>|9_o70)L5AFaR4S~B#vkw2C2FIs35@JS?o> z!NK%M0quwzK?T-i4c8bxL3Q!rM@D|$$WJovl|c3V9i6%OE@MG9D*00xJ0vvKdNmGDrQ9Gsp3VqZMdUek?8UD6W6mA6^;0kFS#(RY z?hzlvv$RQF8`+Z+ZLC7@eukm(MbbI81!E2S3Q??L(e1_G zhHLjCyjwE%0`7WeoB`|G1t)7e?f)OEzN6d2Bj$XfU|JNyB)`DF2ov~d_M=#smwa94 z+xSt)mL-_bi)%ynz;Fj=Lu9{W%vS8d;G6jDD)6d&;;{tZKh1j@xLZreY|>izX4dQM zJw*NyW*;lGvrk6uPC^Dtua>Nke27ur$*U~(S^LTwwC~4u5%?-f#>4lL&71ae*Dq~o z?XA9duL*b#UU!mzrCmqm5?NqHK7SRwYn<4$Z_=szGv^#+*9qG;`$5bDhUfD^nOMoI zeE%`(U@WreN}n6@vv^cvaR7g;anMhGv3i%UoctTy!n*oPzX5IK6=t2<*&jRF*s|>ZK^YuY_nYLAzo0St?kGGbi%pRk53qVQ(K~yp&$KZ z{OsPOy?VYe_UWtaFM%9Ku9*K0ydj!8lr{82rW?9pb5NhBGRCupZWq_kV~kzRE&(3t(@;113a3;TF9$1 zTUJw7A@G6ayBWJ0!;;miJE~W0d?0L>v9psrJCV=$4Gyqp7vAefp6G0`$_gHpS6T7H zxP!)_;4$CH`x|IG4LXWXN_J0hW_;%UvkQ`$icw_`(Z@mXQs99P2H7w8?1NgH5R;sG z7PB8HIW|W$qdp6IhIHR9{$DgjXK%Qd1zNV!);wg*JnCq>pSY5u72_W|wc8obkv^~^>-f`|)dHS6HL_EVmCCRU&ppUp<9R6Src0;z{nT zpUxa$%J;M{^R))~=EDm*S(^yv)eY#4W1 ze`*b^yNPsmL2E6o1+U;;^qud?KES$^d|E>lp`-2?63tV@O#TDDCI1Ob@$B=^7u`+k zCi1pfH+03aGc)nbrZID;c@B9zT6Eclo(}mcDmlLr4@oTRKFa%iS)lGk9lw zSdD+q{M?@iu9QAS7duLqlS8|&ddvm``UN5t6uS_^8S$XRXebk9ZMSfyhi_( zj=B*1XTgc`IGoE~NSo5nfYr>Y&<;LXGyEEDT|ioa^5PktgHajfwUC`h^8J45e_Qxn zF`;D(R{g?H%;hd3%4fMt8SjwVnPyIso^fF%mNjv85c&C9U#2&c$ne)`iEcRipyWr=5FX9kJ8tTmFx`yA}ieJ7!lOkr$dH@KkoF@2+b+3*$_8=lcG z(>>#E*ro3S*ztX62yeod`uq2!odaHG@EyR-T24HBDrNND z$`B*aU17!A9}IYmH9Y*CUJ>yaZG(r#z1GhwF?jCXlo`c$jeYrmvp(E5k?%3<=XI^; z_1*AV(|2T2Lp-HEh{v2F_gOPfn0?qhb6lCbzy%L&X|1Vz6T^N^$_obr_5NQ6`PE6Hs68p<`pCY4_5@S(;j_Ql4}UgwY@XiZR*fEbpXz@ZHd=>ARI@&JNq&jlD?cbtz-ubAj($z^6Huac^)I z;7)4`aL0ON9`gAUJh4oVIsa;p4*VOX7iqpbLVKR*8hNuvEM5eWt=Bh!her(0qz@R_H(uWBN~ej1k*pT4<0WfFA84meDcUko=h&khpjeX;U z*Pro5mULS~@XcVLuRI6dE(`G{`;GLNHQ<)m-;FqH=eYl7#^9=IBD<<8U-1}rz-4#$ z`aP?Aec6~~GhTLC@2gdXLR}<{EsJiKz*X;fGaWeY#D3ngmY2%vmxs zzG%zN66YrDTP)+*UAd(RWOSp;U14PJCxJ!xr>LxAfuxw1Wm_VK*tV3#ojkyNcMiHi zFLbY(!+VUpkw4y^+45(-vL<_iQw->Bm&j9q7CG7nhb^KF@k(gF0^KV!sppsYd}|Fl zhVL3n`)P%55qacSWtH(I;J?O#Xr*$Z;Vn(_;91H?Jp0l2a+l9s)=7+0`%=$|%2}>o zJA<-iwaK?bwwYC%J;Q2G?M7u)PHpxzwYjaS>r}Uf72mk^QExBPyphXHoXnuubsi zIOu5F3t&7X(8FKf?>B%!^$3PVz`&UzV@nt96;tMB>WMAr8-Z8to=N_`|3+U`PVJoE z)Ys)reLal6#=^eF4(jV!lwBP4)uXRNo^$-6`uGO4Re802JZ;A=?L+RchvUINL;GdE z>=g%(QQ`6RV>I0RV2o-H?BF;Il9i&9&aQvq2k-oC(cvCbV;iG%JWH5#cB4p(8>M z<5y$kD)T^yyOD39PN%l!W9QayWRsg0z6(bhXL;T=_ZnG(U5zkl*0szZ8+h*IiF|5h z&z;R2(uE(BWQy#dpQLZHwV3@{#sPCm_dLeLHt$Kk6C=xI47)w`Q;4%`vA%Thou422 z&dZj47Ww5jKT~+49-RUE|IEF8oLohf|9@{k%yc>p^e`C>Lm-_Hk^uwUK#%}I8VC?D zYUhyvfo+}xL~I};VvwFE5{C>}X53!PkYW^DSX>(5I!c}g5 z-%ht{Y$x)WI)F!evyG1Qm^CIQ0P(iXU2r4Wvu1A9cBdQp^Z#$>f^?=v#-kzS@!1{h zEd;)#S8pXYNzrWfb@s2h7|f z?4Ce5;U#G61+y1sgeLU3XN&a|6!GY%L@L;U?#yFIF z{jq0ny7KQo@#tY0I-ve5e))@j+;?CwG;%S1k5-0$Wee4dpp~0|K|Yar`;P6%fa>%k zy)*ivkNrk_=XIFxJI`q;PaAoX{x_>oS|9peX+7h#q0#c_>JaRRtV^m^0T>6QXLvTx zcc9Op?H%7A+L5L0|JHZ<70A|L%+>eHz=Qh#-0$jWHP3zk{nGk^v9q~@B`W<}aZ`X9 z{J(7Uq+LAt_BuW3AM@ZDz$=>A4?G2MAH64-83)N`!7Eq;{_6NJ-xI)`@#fdKI+(e8 z#fSNS5Wgq&(J;dYS_?iO{T+U4ETU>@c+NEDiIw=;cJa%+-LX9jtm3gjpBlhpH0RAB z(SMA7G(rFByZWPk?WOs^*o!ALSYO+&deQ5v;k0bx9owhrKfF@!f$sGu<_T#}^E;*S z`eD|A{2YF#^E-#1(aZ2D2M*824H(pijn0c@!za=!AszH5+K{fNwtqytcgykau8IQR zrMK{(@3P@FWwA}*#}eq=IzI(`O^I zacf9(Mh7^w9s-BqaFU<3)bKpBw!mlokt>E-dt2D-uubEu$UcDZNWH+UHSyLS>`vH! z6I;FbB&sV%-VlAy`@ADeyIS9hp6QQ~yW@Gvhd{BLu0LOP^fj(*e^!?It<~~5M(M6dPwV=$Ednj|MUq(DJC^NjS%=vpLb2e$C$gj47GTfcGBTs)6clH{_^KO2> z=9d5uN&1!!cp_y4zu-QddZugrOq%HHd(@Gp4#jSX`MB}Vo>lEM^P4&vI2${XHC8Iy zPQ0gf?)hG&y%*#TaiziEbHpvQv0q+>&x7Ql?prC6Cb}PGb)kpO77aH|$=%TsDi)f~ zhQBWo%1%tI*uWn8avT_p+v~d^pLz znq9y@jy2G5)*}rUbe7`mp=%9m7fz}4OuD%g>C;}DxhpH)GwC*Sf2r&(ihrEPw*=y5 ziq1A;9mZcjVi{ko)C%~E>6ftMjF8wN&^|zyBZ(2DB zK7n~gMR&{UUfD=m@oncoW9;7%Z*oNPc7to(50?V3a5m&A_tI_xA5T9IUszC8+(yQ< z_DBR=V7GmQn3!Gs52aTOHUjUn%-tlm?xaQCMPL9&9t`cJ#HJOyU}$H)2!@hiIDZ!m z_-O=p)Cq~=HwuUNwv8aR%NXXV!x%cur?Af5@hwKVyiF|3a1lIas=wD>w(~M&o8_x- ze+$^B`hAjovhuy|m43f|h3()OzNJ*(fYCKf+!6KvVdcS|!#K6drfj9rWr;s0`;ubM zMex&^%6PWX*KhbRj`8QyP%2zmN4vqClHFJ`Nb=!%^zJbCGbXKd?)%Qu)l@1^Y*XD8 z@vN(Tf%-PYS5x#UOkH<}xEmJztH2%hYesRO5Axw%+SeJw_mi8d;YsaY9gIiZ+3em( zS;45jh_;_iLf7E`E#FSHlsffY^IyEgw%C)kHk*E}cf2yHM{o*nDJNf5dDVB#YL6~} zt2M$m_3Z-sb&bJO-aVJ+R_HZWWV{{GEdH$@m^b)>owUlM+4QtZ7kCScW^*gpmpIF# zS>5H#zD_Xa8lzy|be+V!Ib}2BJ!j{ekADyd3W|%%`~aL3D3i z=%mg;?bjx_t5N3~5^3Y>SF`%ijSA>2eZ)^=-+}vm;2D|n`oGKGrhSZcZ>Y_6r_qNb zx*PLd@{|~D#Q*CxHs$b_JwNv6W)8DnI?MBantF<5<@nvrZ-~9>*N%RnEO{)xAennI zxSOBVng)Lme9;XJ0b9e7_*cR2oVyluGq(}z zWU1HvC3ab> zX#5X0Or(tzuxae3U9hqxktsB>SJJBSnb9P9+FpujuA4p9v&z_sS|iyP7|U7Z@fTpX z&NftJ57YcnJCWiG?!!fmRidJGoc;^<`X2)CI^UzX-T&glfK1pR-YGqTSdis1IM!U7 zhHuI=r{BGV@eS)cc$95O@fr>OizW71cKMA&iYxICP(Sd!Chxy9ho#>an0uprx;Oe} zA38L;X2f3MlCK5&iCDhdBq_qL;02T00!z zv96Y_2Ku>XX=&Of{FZ2Ig29=5m|hs%v+PnF#3f4R3dh0lwvJX*C zbUjadh_szR4u)u7dt>tdz|Vi9X#8E;m#zId(RBe?l*d*E4xS35!zj&vT9fGPF?XUdFDxbhqNE+J9(j}p6~O%C8RwWtLJ;X|0^*3*tU8;&--HXFQ=_X zc)tkTKgfHLcW~761kbzKOFa+#J;nPal$#5jPxHQk_su*nro8q*W9U9M@vQ9BFI~H^ zjj`P3W}DWy@%y;zDYebD9_T>^v{yn8_ms1fy4`u;HOxKZk^IZ9^zv9&M|l}KpiNpR z_cFRH>yyRY1%90bN&v0Ph~1h`i+a> zXQGLB;{DNgTKOH?AH9}2@+0W@lRQQDU*j2NjfU@yxtmDq#`L8TYcan9zloQ5&nL+% z`Od#`6XPnMm%h((ZZEYCA8wCl9?cl)dz$apgYzK$2+|MpX`z!cUR{NzeORwuMV(ve z|DNiX?_hoX2l(}?uB-W`w#M;(mH#f?=T^>OJWhS}eVRs}M$ixSMZa9|^Wkpv>ph9` zX9BnC6(62Yy>AiMgn74<|2FQ%e}nmT46!0qPB2KHHS`EAb{*31p7L!^=H3WT(wJ%N zG+r7v<+HedNpWa*An!&%Hwi<-9(|k#eMtYh${$bNKa5O_JHz_j)PDW$MC$*_ezvg> z1^C_u4)zBQ!83tA9O%D~<2@LMF}xq(ryt0>@TmOz^Da4}_v5KY&%Mq6UE}$$e)@Mw z--rBJ@I6QK#n5m^WzHCUyYkyyn|Y#n8|(7t+OlQk@bWv#@Y*w-Ns>SF%k*XAq8L7F zBm3QjZT&9th_l>KJK541C+sZfXP-}@2jEBhKKw*Fnhid&0St$s8Bi7sU9bARy5y=~-Ep*$`5s{7l|V4KPjYd0_7`7c#1>WrhSvX9aF zcj#sgaB3|%2Oh4r%^C}u7hV=43-|e>wPSISwiwSSX_5`{m6uL5p0OKOT4!XwmFGSa z+uE?0wiHL}KWy3C&ndqSELqx6eQHOtVl#OCA#f>8?G>QUUjxfd9wGh!pRh;xvStc* zmrY&e;gxZaPmu6BqOsq7|6{}=n$Yil5xk108Qj9lQ@|--DETenJMMmm`a_JDc+fk@ z0#mnaZ|pb9U#&4)uzw0pWMj?e*SL-7{z+_W;xEXnjbTG0h4L-HokX?>_G^IqY(Kr5 z^ah{b>)U-ZJzaZ5ZfRv1?MWBmo{o*QSEa2oeh;<9emfDr9ohT$)aF%nZO*05d48J< zcWZNLU7Jh%HaX+Fu>k(n4=Y;=YhPaDco4Q+D@*JT&YNHC^gjA^`pABXnHRIDccK6O zIkmwUsZXDzZI#u3)+5zhrVj1+0R50A{;j>JiG^O*K}MZJKXvBF`W`s=2E4#Q7t7sJ zn%2aB@F0B8VB8YeRl=zb#!7nbEMr5ShmXAOUzLuBF5Ppk57VK$_4^FrQo9)<(vE((eF(D1*BQK!8sZ@wMILGZ))pZ&Q|_Ub>Nrl zcva0WC*HajV<4WZHIicSO79(MdFyA^2WITsvYworSio0sV4W*F>>)l3FH_ee{`*V3 z2V*TB*aqE<;MitKpyfjwwaT@N8@&4ar+eR_X=!5$2)R z@tb)<_wg%uieG6CM45A}r7PGFY7M1ZOLp?sik*7R(=RRQm+*1yXcoGqJ&_;txtTGp z3=O@qH?$#HCc0~ao^&2e=Z>W>=)Ub^>AQ3W_5USostMp$UX^JB?n!mu+1HEDEo$~)d<#NOj&#!YQfEPmtk~vvVCvUje*Ao`rTn;a~+3?g8sPE6%ELE5K z^(u9oPFejwg>Qf4+bR67m&=F#-rDgg(vmA}Ybxu1o%QSMfC716!0#u#pK|&z>qp&| zb=p+R+6UrVc)4YLm2X+zbw8_gipB!^B{&SBryTqK(8iNKCqH#!Km5+xF&~+~kM;QW zeXRS4zjZgiuIrv(wOaO69TtCRe+iOJ}+J_;<4K2IL$GH+8(^Dmr&pQ~N!lZ{0-6_thmY*3qu z)w|VN{mk-BeLr4q=ZnPbeI{nLKch7=F#>%!W|i5)**MMb8}lUi;c`>oZ%0)?3;Pu>BD!avl7@|pmAe&K}MVL z6c5CP+8jZrl5J4D#hQeTaqOzWC^ks>3`uW`KocR>`|%R_XhU|rL~505rLd{-P4JE# zBON2en90rt4FUhdMbfafnRPH@BpX};9&snORpII8VZTmDJa8|>rnd0Je)lTQAzU~N9)RsnV>6CD3+*G7C?lI}GS^kn z-92h&WD?z;vdL_-`)O>n@?)B3bxz#=Ut{ zN9ks}13%T}ZXIFazfOlb7vcM1XFn!;X6qC` z9a?NvJ1Q@{TNa(7Vf zXOy#w+|2@wPwVTgEX?*+oIHFc$2prQ=M&KjbS8Y@6Y}+XVbChHm!gw8O6h@Z?mYG@ zqIu5krt_sgMy&YZtV^0m8^=3qx*p=`RX1Zxg>Ux2gQPR{gm|74whmRS+mOLd zM|i)B_a)c_<9@zjJimusnEQpRaH3WU*7oLo1@B+s{Se-@4r)_A?6_lju7vi+@$BQ- z!t-YGzDb=Y@Q%GP4!`O-B6BJ=^ zH1fQIGep=3QZGWIyW0vn%g2H*o4cayjO;Y8xU$nk=lJ^9{O)pi!5Yt=Fo|_1vI0D9 z+>Fg>L~FlW#OCzc2z$pAXu#;hEe8{O9-9F^_zw*0Z+UaS{+9a=>2E=YXpQF}_Hn+7nqJMF%XR%A0yGIwIdmZ#JYw_3lJqw?7Dudy| zQ|Qf4xuN1yuGYq3&WN8Jn_ZqlyVuk1WZEURin*I`?DNP;zFVp4pj~_#89@GtYn@IA>n#UaMB4g8A!C2uWa9f$JZ z5BV#-s}0>qHlkS9aubhBGWQH@}F1_ z>zn4*WWLX!+)QAOz@wHGd-1c`^-cDrTeZea7s@XHml;cqvp<&B2!AX`@*LG(UY_c$ zbUD2h>5ZzVi}Jsx{50Cqnf9>LUYeevUn%-kFz2Ca=z;EL`XGJw5uVK1R!eQr-%x3r zo7kL(F1ERQV?(#Fp~sQm_}H}KiwVtVs@FEM{z*x<6fJT-i@c(UD{GR?G-)L<<-!k^?%*D>i{3c>ZjAeZUK6Uq9B-!DHJMx3Xx2vo;b6iONNg5c7A&jUyc~@l}@CMMH%{&xr7)Jr&gk)3gwd$ zbIo`zq#yE^ML#xu3i^ZnwW|I^oDMUu-zMI|5V70@%bUC(Dmr+eP(Cv@w@hD~(d)t* zOYhxgs62lp(-(9a)0d)GSBdhf=TPib7JXq~zBZJMnYw?)HzT_k1Ld)k7nPobKkHsH z$vJdJd@+4|s!x93@1gJNw}szbgg(N1*dOoWJ&%1b?+#CM4ix=E{6u`kF6B$n6!svU zUv+M+M3b+%p*-(J>_Y{QS85K$n9K3a>{aI3A4H~G@Z8w)<>je)e1zaT!%D9iJ}5pf z{xh-E>wZx*o6ksJ_UYBzZ+RadtQq*Ijlvd|fL`l)XxAY_JLZppew(0QtD_P+vb{8= z0NoC-A7(FgL$lfkBLki82xQ&L2M#SQN?|WbVnc#&Yabzz?=<-O8u-(^6z+21&BNtd z^Iy2U(%^Ef!6o|C2XOhFWgcyQ+Te1n!DE{xI^sUmfxO|xOhmKCCOLeFFL$py!z;HJ zI+SFt)*kzYt&LjCCBeC5wDLdb=fA?wk6imu8Jz|n>cgLs?8(48BtL_CHc-#&_^C*y zob^Ab>#(}I&Onw0^%VSAET{Q(ylVEK=Hl}LJ!cAG^<_rd>yPvY-Osv^{VwTc3y6Jo zMV@#je;+bu-6eO#^A>%Q^PRwZFE%a3Fa0skhn8EGY+|x+$^Nz9GRyh}>HG6^d5-7# zUpx=xc^AJS4vv(0+M$Tm&=?;k8`-?<*$Zy{x@9fz#WQLCxz@b17g!H&xc`CV4W6BC zbB|^1r0sfsj-I(E9TQp&Gsl}lHvKj4UTiPh(@JD|TSz)#RdP}cR!euJ{XH*3sj<}#p6TXT)+QlPuC6bb}97=zCqxXUy6ZGdYMl*;o>&4J_)fl z3Gft*Sz+y_t#zF%b*1+(R1%6xq#U73LLDcc=uHr3|4+-hwG=Gfpa+dj{c-dZU9*(uQb#q-ECBaO8$NTM7{;rrV zALNyz{cj&t|9?*K>VK2^ucH3ldFAxU9&QqTUF+HVR=-38!8{J;YNf8OKNC-IP97dO zfV|ANRTdN&+rJUpxsDf~2p)p{pm&fx;uE)gMEzT+zfCaG@1U=*j}snx-Pir{U-8S= z^WGqDKznmC>)clbWff_pbcfYMneq9UsTPP2E zgRb)Et?-jz{@nw-njfO!`J`Wp%|`oN%ksV7#O}#_VGW;og*np6+?`vUVOv|&*53JD zG+aD*v^&o!R8vj8+aL1VmF!i%d4*m1UMF7@`K&^(OWrpMeqPxcG+u%!7_VUdUI%=V zOM=~`}(~tCF3&vG@U>^q8 z`956W>_g$23|wjlx$F+nj_i-3vAc@9`ktQP&4UPi*V)`8{npvg5l*jrs^3QPBih*C zZ$or2hjyyy4Qf+;`UL$9_%kB97L1R^Y%jlDG{v0_C*gGL%%kyCo`9}nK2K}$;YW}EP#opi!JT;WU*OxCf2>Domp!)Vs_pgjPw?&<2d)6WTZx$|yvt4$2gY{#ah>3-YilI*r2922=G;&HwgUZSPxDA^ ztgmb1Uufe*pH?5?UG%Fq?_&NRw_98L(bj2xTi^HFI@9mhhqbk=uC2TM{+vd8ck(`V zxB4|_-#ON!-MjqynLh?^I`pjB;L*%w~f7}7=9$Hl4IDvU>`Jj zX(^8l0UomPCTl6}&(yx@mW9BqviVfUzIGA5m~5w!LbxSW3ftCc`$mf0jA3__*lg_g zp2Tz0$El-c#|q_i3|}yKxeZSjEbId|+bONDXH}19To=;!9jcQ(lo3{`Iy{H|FhG6O zX#`y~xX%dB4*PiOtJ!xXu9^6p@{imtKj)X9Ns@nlU4Hsw z>RtdYJ2r9v%a}KkFKTgj8u|3>BJaQPuKlBie4%^-@Gqcl6O%gS#iUk@g*NJ*ME_&X?9vhV zhf3yn^)D~wsb6#vrHw9VC_liNUk4lHz=b8N0NwO4KdrUpF~T3?E?hz@ozUv4BjGo^ zKP@{DxYOF8x*{9~=lEPO2jhj#(oiy9IS&|->oujTt+V;BHuOJCpVsidhv$~jV@%l< z{J(|&&-wp_mpu8gv4ekP88Efc=e9h2g1y3FIdl*DEkDO6p%w8A(VE8K2JnBjiM8DmtyoO$^K5l;tT>b5us1#kGFTIUwS`9v_<=o zd$n)cEL#+3wt>aDR{cFn)`SC9C0ejZSw7x+4Bnw=0}BruY@0u>oR` zgJR}!dv`W!%=tg4z7RJax}hIOdSk0tZ;h!=`~z;o zHurPN>-;xyEa7o6&U~^bQjR&#@Qv@>*&R_obrzFzoI0xs4>#Wv$zPcAA?%c)x^h8! z#Mm!))fc3{N&1_0`NdP7%>JT00{)V~FLq=0nX<-8_XTVge*q7|0sdRn#v(Ki9;5?= zov)RI2l>UUgtkWxtTni31Q(6qBAmIU6i(jKsI?paKY)vIjP2%0yYQj&PvPP%|Np@W zxG*^J@gZL#;Y4Tdi{Rv+_uWz+IOL`B<0D@xKf=4{PV_Kvucz+=N+U6m5y;m7uvkTT?Aay_&$a2nlJe6#6<_1 z2UfPw+`xIwhQ2}*vfrH9oN+Ha-Fan@c(J+97bCg5AD zUuQSve4l5I+#mJmyea^+_2QoUHOniQcsz=7M|plQ~E;kIHc>|!|;(_df+2tJB9V| zm<^9p)^cXcf4g}Yb2m=881uH1^Ve!813nF0%)vD6+edlrn#liu#9&!;}yhXuJ& z)_5+U4{^V5K_8SZzcIBJ0>9{ZqLohISd|paz^gnFXC(040Uy*k^_Uw?&E>sN&XXsa zI@SE2nD2JKsx~?ErL>5(+MPc3``-Aby0MFQxYK8~8@?nTn~}gX3iyS43tv9%H7TZs z?lBU*Xs!0!iQd@QY3x>3CudKf&n!Rqi0D{(_Bu&?9$gN3BcIDC>8rQ)nsdaIgbohsNhg!$JH&lCz`m`q4=Wj!;A#686 zTYcoT(f5r5zOqdk{cM$9D|mzZgB2sQQTh>fs%O4Xuw~0oJWu)BN%tiFNw>wgTUMdd z%5=A*yR0U3d!@7g-mzgSH!#sv(6FjII~hY@=4**svSVysGqL;0nIp3ANzgr zd-!g~nDn-P_1d|Ub`GQrb+HHQ#n^fl+o|drO}g+Jq`$qly+iHmTg(y6tF{Ml5hsy* z;pSt1vR+C0u`botamRY?Ko15_W_<8}9Em<0!%sqbi1Z`_*F*TEQn#HfRGT)4COmjX zaF#rt>nm;f`n~8%oU156rvrxOd+00cLgS0MR&@;E_a3`fLU~vCT1}8B&Y*t>C(rrSLhC= zhV;^s{IsIPd6~}lyV(fU?*ac;;;G-ne($IB;C~99(%}4fQ2LzYn0T4e!c$n^;IDJg zWc=gx&QIr$gZu|^uej}Ob`SB(0ka}Pxrc_ zPr)>Ua_Fj@x%B3=>YhQJ+B1n{fQR3O+?AmEo~Ax%vO115?kq!B!4Du+SOx#0HxQ%Vt7AsWOS4AazTIM;1~Q1YjU1Ym#HNwrtRQkn=K~I-&f(zgDb8DouZAr6 zA>XIduFjvVPuM#~7Ueg`90jL#A3v*5{fuZcU#L2_^}ECKca#!+50=!%IAT6Yo(`j~ zgG5u{B~5>VH06nq=Rp74vFJy^w_}>@9r*YVJCXRZw5zeyn6~(|88$W+Y(3bCfEyXf zJsjW^{D$?8Ol_X4JudJ{pPD9fH<#|b5^r;eRX^M**gW?g#dq;j-J7Vm2k4}0Plq-S zApKO8$G<()v}#bi?=`k^_%$yZUmFgUyMtxb6d>0ImII>+>0MnH3ZKZN8TmtBi0;#dPeSpPw`vM?*V=b z@ArPc<30ARh_#uY+WZ*w^3u3hfn%Mk@sy2dI`2u~lzk7~0e(Up2J$J-bZB`fWt+9W z@;0dN1@&yS3F)%e87zy0s@V+LhpiwLK(CCj?GbmLfWjIGS2$-jWp|D=s* z>KB8m?``FWjzqio$(Ex|SBd+;T7T!m0Wk4*_5kne)Kd>H4aEhA&Ph$DZERKLUu*oJ zCB^^vCGWc9VFurnuQSzA>MDviShdHkm7Ej92Nl}+8TH8bKAhn^A8>5(;dqvGgAdAY zIzr{lonQu6oA{9bc4uUBIm&(wZD=l;bbUXTM< z0sIR;14$3}!x^t!T^qvvm3$XYFR#PR(_?nR?%@XdBVQ{rxE8i=8~hF5MN8N|Ac>65 z#eg^P4(km^qojG?#aR#4ZDqL+h53=7jtK9p@0cs%1M@V0cG87lvofWs`b9au z>n=lU1G2qpQIE|N8DA9+mCxdx@4SC-?Us>F!5t=X>s>s0yjYz&6Xr;-C?I2i-_9e4 z`U>Sa;9<3N@^q&1JzyEF^&$|w?@=8pt1_qg`Zs6bqR8MV`c8BlFnpc- z2aq3{>``9yF!b!(w!iki*9QBP@tet`Z;FYlZ%04Iw}DJ0@56l{<-sj?t$I4$O9uz~ z{Ol@oe`op-bekGL*Fz?XC$J}Lbov1H1btAPJgX>NpJUEQc)H5XCZAwHXYzEF9J&g> zW4PNzxX|2Tub|pS8f#DP8dCg1=`6Z;hjkcrs(hPYUS+up(4F9yNB-j@jV!}&T=g;T zapiA)fd6^$&-k4N%;SiyX2uFzfNZI4;Q#c=+YAp!ZhtS7D%`8{u4-3t86C>Z*$}a& z@texe;Wv@_-3h&p=bQ8#?PDwLaT{KrWS#2&*ZG$*(Bvp=6QR^a@SuEYRFXaElx^Dea6 zx9(zMA42!~u>V$OE|u*xz81hF*(INoY`)jTP}UyS4;TyC-yh+r7|^oy7#ahg-vyT6 zJp>*({IUCQ`oj@x5x?EjKkEN#@;~7Je#uk6#J9cQRG#`R=Jy!Cclo6p#gv>Yo5XR; zfiFf38{Gko%xql-Z1PVXXZCfxJ=qw0{<3MdLr)R#(*S-NQ{c$~55->h9<3+9#eI|w z>b{QiH5xzV?dHs9kYD^Q$n$yS0Tz9WqT8uH?N6@9|EiCCK^X^nfAWW3tgrgCzmX<7 z?*wk0%T%96IjfK6jKGXBjxBy2C)U;Rsk%D0B4@#mtMXC1b8yOTa6)!KJV?zE6wWj(%acb(VnNypTmogyU-2gBo}Ys z8}>3{Tl7|R|B2$T2eFt(ru9w?=>acIb`!spz`y4+78`|%{{JZ%qvN?nQ z=73@eOGmt>YICMt_94Y_lCQni6Jef7(@*K!zyn-q`lTrw!E=d~gT4W5=oVJ3bJEJ4af%g( z^%T+sW0*eR&w+lsZ_PYZg=gh-| ze)pV4^f&5|&ejK>8^BN05srJ^caiIY*I^Gpwpr;86R|T)%(AbT5e=-|-Ups#TZl2{ zq79E0h~-M1vL{b@6nqufR|Z!p>OlUqZcP0eo9L|SO{}f7u8gO)xzeri+iOiEy|Muu zH{%=jL&`dQzn1R-tfE!%xUG3_e%=esq{%m&F;IM3-S51GzKVa&;3-=hc9IP#;$Va} zJqsQdC_cxbjqFFgtA0VtyZW_iJHAPVwylz93kcd3jwDwT;74&B%pNPxb6Lx>*H=?q z`xeGmcCX>F**X`o_5pCXd-{5GBGoDS8!y{3V~tHSz7K0?!Gw@PKK%;5>D6UZ7c^kX z1h|=#?5$kkpNGb8v-Jz~KPtR9$V}>0{RasDjHjLP{)<+WC$Bv(^wJ9{_fM2lUX{_e zFY|2yX|WXd^U|NGV^^B{;B_C$h~g^7YC-i{U>)h)&HHTGq!>r$bxQs-Iu~|rRqaHa zw2|k+Yar8wXVH#qV(5-LdCSBBkA4(K&f%MQPQYLK&?~T?Vk<6`*$c*hWTlDkzE6p> zOx*Pwq>0Ydk28S(VBoiW_~6Go;S+3vu^zqvmHcEm)8T)o?*}fsXCprXIzR9+%Vj zo>e`HviiSAK88+U_!#G#+9$z(ihJN=#61!pbCTj6UOef2fdf8NYj1*&HFN(M>EdJi zGH?Djd__3gj?b531v4iMPYC3fc*1ixdGqO~@C400#bmgc{z&F2f0Vul^W#a!!>4HM zVb0Zjmi#g2R|bE(=ly%YyTVm<9H-#)Pqc~tOu2K+(vT%X3e&+zil7WTgBmt>uApf+VI_{CM8zpvV1o+(y& zbt3gC&X@QQu{unheUz4jFY3OV zwhVlhJ9kDE^_=(ya?GrY6!RvOVXqiCN2GNxlE-(I9`pNY|2sbUz#yG2NCmdv1MbsK)xX3?DRO^3yB8Q(vYsntX9=C=sWndjxRWPG?8NiFRvkKa%kY z^iuA~;k{$KcVFKwxnUJOIcTLyRq3S~Z}nv%ebGFU{X}VRu}3Hy4RHO#yVDKK+c=PPhxC1|d6izIAJVlAjGe%E(qV5%KI@*25P1Zjoq;Fk zz4dSydjh(Fxnn#`xlcE6@A;%sHDBy^g)@AmuyxI5UnW$7Mtk7h@G$SZzhwO|WIi~n z={=+Kbg7lB@zK1in#?;eJ2$izM; zMz>|XdDEYV8uP(AUw3)U??di6z3v>!h3SjNRsBj)cEP|p_cz;i?fGf0>z=zCp`$2m z>Fj~dRUSw`-kro=3~9sAuTLMxIZa@=3|+W6%lxN5u`KZAp}8XUm-wljq_<`foa0LP z2=YAY=fXMr@;Pvur47HW6V(a&+4iE2TT8U6Eujd8;NZl z+YIZ*`DNCMJ+ciXEXrVy{|t90jGvw%4%m~Y>{S5bQh%Z(lv zz&lHR7~l+AW1kDUVl052dpPEy_c4}!|3okU!9CB&XYQihr4K%*{Z!$~@!~aVKTtL; zol~E<6@FT`&XoN~^Fw#F!m~VEYLOE8F*L?c=w zCBSczr}VWsfgcC;u$C{gR~By+%qeV((5uR69*cf1MYb#5&`sW}Q{UFo2XI>>z1on6 z4oPdI+z7$1xb+_bbIbn`<_Z4`m`Bpao?!m`KY;l!$Ry2G=1?`1$ zSa4~Ts(<(87W%Ha&k7#I_+fv@u5*7TS`FrKzED0JIAkM+4&%s(YOJrfat8ItK5ZxQ ze@zyS8fJB(*RnoOws%U8#paK!!mkFKx?RM^?Az4UANhW0%%A)hkFM~$Z%qQDXbgHa zJea+Q4P10;`0qRa2mZUcj{gdO$a40fHP=?`-1|S0J`0{kXiECk+sF@}&NpCltjV9& z!mb_M*{(Wl-Sy5L?}?=9x^rh;_4Ql~?qkez)rE|}_N)C%#uPt$#VduOnK*xe-ddKQ zVQvrfja>Zz&qu~ec1>aKXsopEoJ^nWytn5OE}>&)dn>XpgTK}W`&z|&>k&`LT4Rwv ztP^>cZXkFA8El`ynm*0Er7n$&^t3Crj?QqO9Iz5Y!}xQl%vY`!tezYf-%*-)`GES6 zDQQ34*vhg#e-74on)g9_Dsu<87TyD$D?2g{{ie7U>~Qt^X=G=)PLe>2!`U_ZiEQS->~4L~`h}IzvTcP#Tl1=!v4tjQEceMxA{Jt*)95Fn**CxB=~==V zGRe?@L;He9{OGS^fzbhmw7vlo{cixTf=BZJTo_$CO#b(~;o z85>9T0XsBs$O^^=KloL{hCy%Wn$+P!OB%x}^5PNVM?8}2hsVyx7T;S5<%tQLCnl={ zUtny+XQWp|DT}^ekuA#T&4pg~q62*0KkwoC-+(z;H%@|0rBVJsPK3vxZqC8LN>?hFPPWKJ*`NouP4JY~UZn z(}XVWReQ)@-SdYp@b<%R9A?E*d_#}Yd`T29EQzO6W{c*G#(9ZUJtAL3e?@rG|VGap+m=<-{9YqYP%*G_8~Ypu>% z_0eDan9KKIOJLnvv$GAzL-3d?lx1HKO=2Sr=+*AWuS1`7E-1+_ z1D*Cz_2mJz%QtVnt#bEb-&^$u^J|3FUAcz)1I%5(@UBMIF^#!yOZ^>@{c%(@^Dg@0 z)=R)SV+B8)Nx$1MzI43DSup#$6~C^d9WC9R~mMH4fUgz=PUWtk+VdgXUn>%6lEWUx()su`f`?` zC2-4lP1uPm_SiC=rC6rRrJn6t&zkzF+Xlbm&|i|^OY%cw@s@ZF|5-D>qB|x-4m@#R z)cUj}`{hDp1kX^S%>g8OsKrAc)(ExqFCfUcos z5QNW{^x%D~-vIZaF&)iTs*5cw@2;;%lJoZDpF&+`eNA0+kV%V*icuq74;m3pvXsry zcBT+!|1ut?F5asd_-&wrw~4-!$Q}F$GuFD6NwjgPf%%2Oi`l=B---McFjv)_=h#R0 ze{KGAN?n@1rFZ)u-OzYAaD@3ja|^d4-w(tTy)mcGIK zoC+>^ruZMVnngEp&AY{{WmJx}Mp=3T^ih7EwWhvlozwKwXr*cI1(fl0sjZChWg27f zWP_(eRd;a-vZ!!Wql4T4Un(nnNj|;$dGh9r4I<9kv7(r4=@j~s@+PtCTV6inFPrXl z|Mr&k0ljesFvwO#UyLrN`ZK_A8ZbbAHMJ$4AwSt~Yh1D(T#^M!{|r1+dI{-9CkW*5 zoUN=cnKKcdnsZk|U(5OZMK+`iG7@@*9;$XS%eg+qP^Vu-j~^vUTL*~^M=Z0?R#@+c z$QP!K_=(6h?!)U)tYGH7?qWO6%4?6v%*m?c*}pE5esR02wD@72747ZFW}ti3b(fyG z6Ugp;<6A4$Z`N_}G~Hpl`(3`m?KbFH_xJ{P)$V@hZ-V(2124+^te-dG_xDZoZrSqG zS39k_=G}>#Vr0bXGjUV1&ty76%OK8~lx z$l}b?SD^occvpWWfcph})BKDx9(&R6uXd_$nd%Xw1@$3oOnrOR)e|p>wmH9(?h3Ka zsolgk)*owa?s(L=LqAo?^hMjC8F-;p5barO;h9GNT#UZ)UHWbI_tWeZ`RyOr?X^!l z%{Y2fO)#ye&sq~Rr{Xta=Sy1M?!+`_Md3dq3*FqG&~11;^Pr~sb^q`;s9R+ZlU$bE z7fqq>4iSw0>(J7-_-Ri+1)lMbGW=XTH+7E<#^EyUH2;X6lV` zYe06Hv+@7Eg}IKugc-ZD#WOhT|7%xuGJfGN=s)MPl}ElP3#j9tOdG#;)gB52{6l`? zXUjhhTLAtQeAhTl;GO!2Eqk_TB0iQU<3@ejo63~0)>!*>&n3-vw!*jbz>RGkUpn|+E-X%_jPxwFRX{r=jK&EWBTX$38dNU!3GHZ8N9C*-AOn8 z>5CSAT+m&gIpf!Vm_fGU@LLfJxbm8f{TA1j=cmt8yFbtwZq9D!0~V$9I{UaZA<@-z+W%ad1&gp z5_(4$gJC~L~5%b|c`2}-BdWQIr*1}pJ!bj2fR=Jn6 zr>ivw^+RL$wsC*dkEwSS{wU}%X6}o(pO4QcdkFaBp(E#zcg}b>mG8o53>_H!CwN-< zZSLXlW%<9412TJ*E4~4n=+py{S&;OO!{Fw-^Ul> z)9l-y!@I`qB%Tie$FV$_KipY3zdFSKBY47Z;|@<^qP4zBJty$aIeJt7RNiq4Y@JD6 zpW=NH>5@gSllBwRvb<}blQHW#pZD+beFg6ec;~*R)*Gnr2HuxLS4(*Qf;7&X;0NRJ zow-iwAbe5|9VAV$LNz8=F&?5Ra37_eI1Z0Bt=Y7G(%e-Z8{UR5+V&^>ytEa6O?9LK zJ~gX~O)9FfQW@E&Qn@bo>(XQW|I78R{Iq*0^Y{?vXUP9%Y>My>&3*dT>cN{ada2qU zC!ZhMJCyJ6p;qyPBd8-}8}`_H{gam_R79WTCM z?WmvQ@UtGlOFUQBaJedLG4>O@zWjnTwYC2q;I&iYtH!6X)k$i7mnpLsa42v{-Zg)Y zHU$IwNYOvlwg1n%wSVf+&|0<2$H1<`sj3q3~rOXEnj9G7Rz_F$lvJnI{bf; zeAkdRg87@WXS=Ei2?eh5x%&N1W`!z>}c)g?bk_{lRe7xfwb{{ABdIOGS4YBzfIeR_&7Zre2NZ3 zN%0){fOunY4)}jV^VgR}(Ae4$ewiRmb5m!~7ZEd6YZzc_S~Q}+CC2!KnNwO@F9tSf z0=bCJ04(p_?%O`I%r*MfNIzuDmh27stvND|zMtv$+5cwhi>C0qV-Hn0j}RC5_re?F zVQdIl*42#3A2hzqzj~Uwf&M&78=8+0vgvOKd({bbeFn~!FOY8mINGp>IFQ=h*`zRT(J=c!{VZD`$oC*{Ua z4%k}-kKkO*yYBTo4ElYSn5cbwX!9cKl094SFZ0WW;Dh=v7!<2I?Bktt8s2;d@7Gf9 zGGLfNof@}*4x!_g#e7@Hw^Qrd`>6h0K>iEKkKTlA*~M4RCH*2`K!4duAJPv$3@`sg z{w(!OsLLPlsB8E(hJKEx{?C3y9aoX>eCp8N&F(aLHQ!F8tn|;_zvcKQT3AB;$lyJ~ zcpmkBo_wNP(ZA!@b0TFv3O|b|b2eq+(>2Y1bW}6OqNiYP!!x_*JEczebdO-a2^ov7 z{7RU4r+F&ba{Sg0$`&h6+TVxPzARk`JL?wW5yZ%!|D?x56NTQE`-p$3wXo*zP52S8 z7GS-PE{6^j@MQg;NPncyp^Mbcl0L^;#n{cHo3UQ$nK#TD^VMP2@%%30*T?UEezIk0 z|Me!z^J~%G6!kREr;my3YIH5)US#0AInI_*xAd??kvSzFPU1!B&N=bV4EnS9u6Wk| z_*@ux{k^zp)FqqNskDI(wB>Z3hokGx;u+`vT%L#W|4N?l^(~8dj^}?K{OT@P^mXo# zzP8%RGsE)}*t0&v6TSPDPm@QwIJ!^mNYbEzEl2TW3^sg<=kZSGQ;hAF6M1Jnv*Bc( zlGl5a|9HxQPw94B9O`M{KV#M-9N)-0`CGLnP+w;Fec?O)x3aNl-kWw?mEWvcnD^;i zr;ClHx`=y`)o0=Ld+?r#@LK7us_R%&m-Olqek_a+>wn=c$vBVaE(_^ge}sRr&sck$ zG1?T26ZWhdsZTmI<3U_m`8M>q6M*9|-be5*n80OgBGc!lve@{1xUF2N8GM;>IF~%& zG_E!LaGt6Yy1{?K>yu>b5v1{qAL4x@mJ99X3eBt$*sCL^2;?ZCbwnkux1 zQrXgb%^v&{t}Zm$xklD($Z%+9B621L4%Gkm{IgPmiSIS)WgOU(!fvOv^kisIb_mIG z>6)@zXbn9v&AlD+qXIwu)N2uMPBv}npa(0RJ%}}=FJfJ7_jOgATwu#MTRO~f!toqp zjenbS6SvUrFyS%z((A4j|Lf~Mn0%5Gz_HUF!Z;nLI2DSeKLLF~e8RS-RkZGOe&(+` z=^wQEfpw>oUgtu?J)%REg+@);Vf0UB$JCXjJ!31elhY~-n4`$ZTD^YD823!~=dQ^E zZl;mP>0`f#C;cqjS#%NqUHs|Cd9RQ6L)VfS?-$@tSzzw#t?ZSD-=%raqR-`CdVN?5 zzQz8O;ei(EY1v_|weSAa?_Z9+1bC*#zx8N;KY1Wi(OO#c_psmAXyGlp&K(3_#6PGw z#-Gl!HQ5DxQTX40?Fd>b+i8B3)!J8lU2EicN_4cw{R?{zdde;nA?7 zT@xCXo*T*+$|;NULm6NM*4O}Xlu{m!vwiIE6qFZz*!hX!A4f1p=g}8vV9UA8!O!vz zEL*q^{*IupY;IpJLnT_0-t8*}SG%VJH)8>T=1DB8dag6N zZjw4r_u6Y6!MpU~CD~H*_^gg!&o_2X@oM>Mhm-JUr_c_sY?n@={T=b}Ud}qJjd&JY zBJj`6N_RMmvgjD-6;@_xi*$>W<&8%Va4CNS>niBKx#=~J{wLCoU=KMLm6U(EZx0|Y zT3m8WI`F?C)1Km8I)`Wwd^4Wc;>$R@xq}!?_FGT>>rn0U|E2vjZ_hM- zlQ*{}Bj03C8pS=AS}RTgR;^35_nPKiYgo;@25>obU>)(x*16|tAFLg}4RCV~ZA8X! z|7hQfgQsKj(|9trJty#fJnyIQ6#ZWaPJX~U;}(B{C;E0P@}L%D?lM=a3wTeYI!bmD z`pB}b%e}xHf5B~B%)O!9qZ(Vdv}|*KXf*#K`_C`BGa1KES@W9hu4Uy0)j@rWh|i_< z;JD`gmQ(m2BhPi@VSlG7S|~K3V>L54t;qP=q7-rH$;-TK-HK0R=OoT4IIG-7zA2XE zV);2*D+jetJfCq26$;_Wz#b!ybOX-FZ%8=YV^L6CzH_SVO}9=A`ry!qoa`{%(}gb6 z7{uYfo;dtVmg3*;_f`3HhZ1>pA4uck_HqOL(^@6!5Hsj{`b>VsWVXQ(I#W%$AM{~Q z+qXX|TrXlxTmzAzQ%YTKzdiK- zGr*<33kT}|<@EpfKJ*EVopo;2>cc0AcVw(>S4R4TcC>|+$^E1clE^7I6OO~TAyf?HXjqFaMbN(x3 zCyVz0pZ3i|Mebcn>&zZ^F=ke|q0E{=#q{M)Ky%l5gnd7)c|6~%LUjpwRYv(2@0Oo5 za9Nk%q7B-N0E_nX0Z3p^2a|C_d)8`q>R>5cXM6en1pL0xo*gPboXE%$7 zs82cS{PVls-9gC=@&I}A7B({G)+?I-&XKF!D0}mfWHWPI`|x4Lz{oT+-mOCWVFYOK1W}Kf5FfAqIbrfICGBUHTGjMb;8Yo@iJ`QXe9#!WFQ=W5QI{O<$X6!J%~$wG9MH+_FjAC~xI z4KI{`!+uSO?}E)L7OKl~@(1VcD#~5X9ozU)REcAPjyX&EM=N}_md}zWbK9WyvVpNV zlrA&@ck9O}6UyIa;ELj3uK8uLzpA}c>ewi{TapL%w72)Xn0i8m+Xh3~n@dsr3q^at z-Wtg&z6gFXraxYJ`E02VBcR7d;3a0^MqsX`=%aA+=BZC?znXEdpgY+C_Q`YaG{1I! zA%yO?c>YQIGg)L&j`0JAP=;~N;};Hn$;aVO)VCF`_nX~*3;qzXa{RO=kgj_#`8Gpy zHuy4WMea}78(K+aD)5<&jrKLwBHzKs7R5jv0Zc2CsZu26`KCw*RLo8Jvtip{+?#b* zCGnQFy1`xZEBQ}8Vi1x>yiA>!i;@-sNAhoBtZVNu=cV&31y5n;bjF{%myj<-(%+$d z<%4!wm+@}w7sQZU5ek*SYfbT5b(T3qY}ygfTNK-&be-+Uq%WFrGcwfp7!}F8q^SD1 z51q1$sXts;IjA_s8aK`12xo)DQ)8)>QPD84V)LFQpQrfN0`a}atc6}?Rf$8f!Hgqz zhy>$^Ki5WVi8b0T=UB7O6oJFDy;y9@d zVA2_D$$qr~9ho{))Oix`fgM9MsaT=H74o{r!_!Rl3z=}6iPsrT5uZph!O2uUPyPrx zLWr@lunVx32{Q)O2zC#p+cvU?c%h9~ca$T!r`-!_%NtknsVwEtN5jw!em%%X>W;u) z&hppK^mpT8jSq8UrE?H5UTKT^6V$JF#XnWsA>zu~xsGsxHqKE0sVfXE%I8D0f67hJ zey&gzT^gFq^}4^^OLnx3@Uw9gyhAt+@_*|uL$x;Y3SaN0R<|%kTD4Zt-Pn!Xi>ZP-G-8j?ZZLQONxbJ4)q8@jmd-)w|ZfyJudnBw|O@HABJNs&_ zZqZnKdSX5JQw|T zL9_Ut_`T+E1RbuA{bb>C0^jvKhPBWU)-^_UT@SA!kMVUp4g8q8-YaI+O+tY5vz5c#7{ud8(gz`l)rD>P@6L!|AU_===BKh3h5vZ=i2?@_Uk> zY@i|fHBI(UXfB+mpIP`JJaIvW{gt9@p3>vQTY2YPP?9r3;>`g)=v=J(&+9ADOG${ExfZQ2y`rR{rHDqGeh;9_;$jpOl zCvX;x`^i~fsqA6<*gM{0Edxx*_uGtok4e6#kng}1NrjF4Pvn8i-S`_s#yJ$&O{7A@xrRoTUV0}geb^KH=x zI1AAi;Sc9av)3rvfNrXdDR2QEMaQbw%CHBQCaw#5hx$)_CjF^a>B(m?NBuj9pxO5s zGmVoOmke#Bnd^B|M)Xi?9J_juds=tMcihY=wMjYkB}QEVj`7*r2o0F@P_a-RLjDDG zYg4Dj#>&If^2DU4oryW=q1bPl`lGD7xI3CN8_7QQ5DHDx>=iAdPtt2M?p?thIz6Qr zYpVozwj_`Nng=g2-XRP6_IXn8pCykyS^;;!au)TiBpx^Xw`BGTn!!_8xHdQ{B2P=c zpES>BHTUzG3O2xvQ=v=c(O6Aktdgk$>tAo2F4j1~JH*3P_mm{{v+j~kI5pLUEHSa> zUJ+e7p*}Zi_YFphN#ytPN~CCUHz@Zj<~r~J?r?>#KnFMdfOovdm?t~neCU40-j!r; z*|&E|=YA7Aj@lQmWE{(r@$vX9XF1Nm-$MUm!22Hup|5_`^Y4f_6aF7@?;j^uRpkBO z{x#FnGeResz&MV269yTV2n~)BHDCwA5+rDo1PC!=gHf}J+G12dgw7vPr*@wp8xD{6_!c%#1T~DZklF zW#E?)*|-<;TV)G;%MSh;>PU9IgWs>_H+9BW^BY^Ut!!jj%e9YbVst<9A_^kJJ>k;&gQH5ZW9jp?U0ushyJDbt@*VxkTtSbuV`N4 zoY6Ri=k&?{Li0j?!%HJNd(fuXw&_F41K&HFw#HtzE1+G;iu&!pv$0hX&c935KBuu82y3s zHI!dddfBdFV(LeVo0W$Ud2*GV%L?+blfD&SC10H4AAD@rYnbcHHjfhXfd4(aF1QA| zQonPK+7+w^ewCSa)S-h{D}F$CJb)|3%|R!r%TBVfCzqWx8VmwsG|qQHt12g2I-%wH zNePOT?HTuTqm74d#V1r=-zdXx3HV3r*79$UHZJIkaAcP8{gs zc>ZIX#qYH~USyt%AzegeXF>lFjV+{|qb?q8RA%7oWxO-Nzs4pRAlS4!|N=Wl9xPCRh}de2fwE_M+bAcJMHt|1aeKDY-MYu%_*}B>c~Oja&$BwdbVWJ%UsG za|QWQ1n-959y)j>LsIAzXV^{9^r4sLtV`abv7@Yz3YY;?H$j%Vl0G3`yGc^ zgRJ6Q&y(F@hvE>R#a@+(fg{PImUh-8XYU%OogFV!JJ7WmliERljA9nlPW1fkw09=< z7S_UE=?KMHw%rN(aEIbNOHItd1kBEkTks!hyyr4bjp_ONlgtlgsqk9Y89k%tD0VBP zlPEq(vefv0nU{Gd?Fv5rTT5@OMSG%m1N1$>yOHo6vTMKU=>4Yup?rb!mcO&Hb@Zg-z0FGPX75JlhYFT}&O;x1&w4Su@#Szq`QA9ka! zNG3yXs0ZBr1AS@jjAGQ-{}>z{0gl9*lGQq|BY7>E{#@}JNB#u{T=n?c|OmXoDOki6S~}mb1n#vLp|^vyZsi z-5GosJg2j)TkO-23+(TwnV3QGqRz_g$^H27{9D*2r60jl8Tm5IZ{z@j=$%ord$@(! z(Z&K-K10dw(cmTjA-P#-TuPa2sXfZ;*GNG_{gu&10UUQ_C422%W($E$G@9Z}ndt*M z>;l$h_t~`?g!K0CU$z)%gT3_O<)vS=fuluX`8+g;9+T;>+H%QiXG3MqG3Nx{Y|cxN zCp2(92nw|H+-)yMnLGt_jX*J;gGyK(%02rDpbSFWmq>O9kn^ zy^(!KGV(rrCG_2FD==Tsvz|ro+jESgJQ@�gQJ1ze8u#9$NVL19=CuAD2(TsoDGx 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 z

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 + +/* + * VS2005 needs a normal Smart Device output before it enables Deploy. + * The debugger is configured to start the separately built CeGCC QuickJS + * executable, so this tiny launcher is only a deployment anchor. + */ +int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int show) +{ + (void)instance; + (void)previous; + (void)command; + (void)show; + MessageBox(NULL, + L"Build the QuickJS probe with hosts/wm6/quickjs/build-probe.sh.", + L"PocketJS QuickJS deploy helper", + MB_OK); + return 0; +} diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 737814362..7a67d75b7 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -91,4 +91,59 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(generated).toContain("const char vp_app_title[] = \"VAPOR TODO\""); expect(runtime).toContain("void vp_row_clear"); }); + + test("includes a pinned CeGCC QuickJS ARM/WinCE probe", async () => { + const quickjsRoot = new URL("../hosts/wm6/quickjs/", import.meta.url); + const [solution, project, build, patch, probe, math, executable] = + await Promise.all([ + readFile(new URL("PocketJS.WM6.sln", root), "utf8"), + readFile(new URL("PocketJS.WM6.QuickJS.vcproj", root), "utf8"), + readFile(new URL("build-probe.sh", quickjsRoot), "utf8"), + readFile(new URL("patches/quickjs-wm6.patch", quickjsRoot), "utf8"), + readFile(new URL("src/probe.c", quickjsRoot), "utf8"), + readFile(new URL("src/wm6_math.c", quickjsRoot), "utf8"), + readFile( + new URL("prebuilt/PocketJS.WM6.QuickJS.Probe.exe", root), + ), + ]); + + expect(solution).toContain('"PocketJS.WM6.QuickJS"'); + expect(solution).toContain("{AA37CB32-6044-4A78-A3A5-1F58080498C8}"); + expect(project).toContain('Version="8.00"'); + expect(project).toContain( + 'AdditionalFiles="PocketJS.WM6.QuickJS.Probe.exe|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\\PocketJS.WM6.QuickJS|0"', + ); + expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); + expect( + project.match( + /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\\PocketJS\.WM6\.QuickJS\.Probe\.exe"/g, + ), + ).toHaveLength(2); + + expect(build).toContain( + 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', + ); + expect(build).toContain("-march=armv5te"); + expect(build).toContain("-msoft-float"); + expect(build).toContain("-D_WIN32_WCE=0x0502"); + expect(patch).toContain("#undef CONFIG_ATOMICS"); + expect(patch).toContain("#elif defined(_WIN32_WCE)"); + expect(probe).toContain("JS_SetMemoryLimit(runtime, 8u * 1024u * 1024u)"); + expect(probe).toContain("JS_SetMaxStackSize(runtime, 256u * 1024u)"); + expect(probe).toContain("JS_Eval(context"); + expect(probe).toContain("JS_NewCFunction(context, probe_print"); + expect(probe).toContain("JS_ExecutePendingJob(runtime"); + expect(probe).toContain("cycle < 100"); + expect(probe).toContain("QuickJS 6,10,16,26"); + expect(math).toContain("double fmax"); + expect(math).toContain("double fmin"); + + expect(executable.subarray(0, 2).toString("ascii")).toBe("MZ"); + const peOffset = executable.readUInt32LE(0x3c); + expect(executable.subarray(peOffset, peOffset + 4).toString("binary")).toBe( + "PE\u0000\u0000", + ); + expect(executable.readUInt16LE(peOffset + 4)).toBe(0x01c0); + expect(executable.readUInt16LE(peOffset + 24 + 68)).toBe(9); + }); }); From 8988757f32d7e250449bef59a5600f0401fb0d30 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 00:36:42 +0900 Subject: [PATCH 12/53] fix(wm6): target the ARMV4I instruction baseline --- docs/WM6_IPAQ_212.md | 3 +++ hosts/wm6/quickjs/README.md | 4 +++- hosts/wm6/quickjs/build-probe.sh | 4 ++-- .../prebuilt/PocketJS.WM6.QuickJS.Probe.exe | Bin 789579 -> 792365 bytes tests/wm6-project.test.ts | 3 ++- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md index 29879b245..5ee33c27e 100644 --- a/docs/WM6_IPAQ_212.md +++ b/docs/WM6_IPAQ_212.md @@ -82,6 +82,9 @@ native-API `arm-mingw32ce` compiler. The checked-in ARM/WinCE probe now proves: Its pinned source, compatibility patch, and reproducible build command live in `hosts/wm6/quickjs`. `PocketJS.WM6.QuickJS` in the VS2005 solution deploys the resulting CeGCC executable and starts it on the selected device or emulator. +The CeGCC build targets ARMV4T with interworking rather than the PXA310's +ARMv5TE extensions: the WM6 ARMV4I emulator rejects ARMv5-only instructions +such as `CLZ`, while the physical PXA310 remains backward-compatible. Do not begin with the full PocketJS bundle. QuickJS will need a dedicated WinCE compatibility layer for time, allocation, file APIs, missing CRT calls, diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index 3adba4770..78bfb2872 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -2,7 +2,9 @@ This directory is the first executable QuickJS toolchain milestone for the WM6 port. It builds the repository's pinned `pocket-stack/quickjs-rs` revision -as an ARM Windows CE application with the native CeGCC toolset. +as an ARM Windows CE application with the native CeGCC toolset. Code generation +uses the SDK's ARMV4I-compatible instruction baseline (`-march=armv4t`), so +the same binary runs in the WM6 emulator and on the ARMv5TE PXA310. Visual C++ 2005 remains the windowing, deployment, and debugger tool for the eventual PocketJS host. QuickJS itself uses CeGCC because current QuickJS is diff --git a/hosts/wm6/quickjs/build-probe.sh b/hosts/wm6/quickjs/build-probe.sh index 620aacf9b..68347945a 100644 --- a/hosts/wm6/quickjs/build-probe.sh +++ b/hosts/wm6/quickjs/build-probe.sh @@ -47,7 +47,7 @@ cp "${script_dir}/src/probe.c" "${work_dir}/probe.c" common_flags=( -std=gnu99 - -march=armv5te + -march=armv4t -msoft-float -Os -funsigned-char @@ -67,7 +67,7 @@ done "$cc" "${common_flags[@]}" -c "${work_dir}/probe.c" \ -o "${work_dir}/obj/probe.o" -"$cc" -march=armv5te -msoft-float -mwindows \ +"$cc" -march=armv4t -msoft-float -mwindows \ -o "${work_dir}/PocketJS.WM6.QuickJS.Probe.exe" \ "${work_dir}/obj/probe.o" \ "${work_dir}/obj/wm6_math.o" \ diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.Probe.exe b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.Probe.exe index 04b75518e94cd75656bce3d9919ee70c6281660e..2ac2e860b4f62540e7d0fe3b7a2ba2a4029bd65a 100644 GIT binary patch delta 323892 zcmb@v3w#vS6+eDwAITW$6E3yc+*hXk--??*e&?| z!9TBMT*U=?$xrS0iJ+d~Z|C=+>FRpi?nhB0e(&zzRJ4q%oQMj>uJzzQed*%_Xq#bbmDn>$uYtjK|O)g@?qA(iv75?;OR$aX>~!e!=KGSy^8wF z@$2WeS@Q=vh-?|GpeBdG4Lx3V6KPl^AI zvF;3XdkSrcte;z1&lAP%8dH=@qe2Ie$V!|l+6JM}->lhiP5hSixLC917C{WgU}Zcp zKvJSsR-afrzFi+*CXi;K?BXsy!9HxkQBRVNr_rw!{WhRq6NJ#e(%0AHK^JttQBvZY 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 H?ScOX(oQ?E delta 325086 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%0D!8T~+mhkKGnMgWjC-cH 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 z z5*x-EH0X)VfciqY_ZN{>8bTcSGmO)l;M2+oFLmZ2^JgGz@E}IL_a);`TH!|N&x!bQx%F3(-dtbCB1$)R zd8#6&XEs^?4te-jkz;+ki~Q+VF>vTHHDza_#aAot;Y$2t6>md)EV_d0%SC9)M3sj% z4pBxVvdySDa?x)huf-g!qQRIt7cx(;s5}Ga$X9+7?M6;5JllZ1)%woZxP;Y{8`b)# z=zFa}zW?C6mkJYx1u)2NHQC2>b{hgMit)s2$XMC^chRC>M@;qoz-UbrMF=wwFett_ z>P%}6*@{l-oUl03IqpyOJ(Gk$wY=>Q(L6qf zb-_2|3%T_VbV^MR`N|)nQ&PM_0iq-s1aiD3|M^3-Yz!ap$cH#A=_rS1f$aFF7&P=0 zraUrz5jYAXSZCBQ$V;L0klKl{f)w(5BMt)0hMhz^MwsJ%wbwyXt-40;{Zr%(?XGMU zRW?H(z9cCk)gkt_K zidYm*%y;EA^4im4WOF*>Q#XLsTE~B_!haA<@*a8kv`EghLAcz7CiT%gG?qHp)3|jb zd93{BH12(P_jO}(>nRKWf+u$RNu#mtRU_srglS%A0fdMQwa0JOI#ENI2z64*3~k#f zDqkyvll~uN=K>#PaW(ws*-K^<65No4Yk&;|2shaX$VJfQrl_dP9W~koK}E4f#g?|% zY;K4cY`6|0m_<=hu?ECqEwn+UueEAH5GlpF7q$rjTeNCzi{|^EXLsZ3+xPvxFTdYp z=b7u7GiT16Idf(PzcezHt~i-aX8){Yx>CZdVdq^pkUg@RIC7=cs_{rXy};ZMuT0E| zxz=PKRjwG)j`Q4y{-rKGpE1)suWQd|3>zVW-qP?!jzVw^Vxt&i-WVwYGucg#bGo@K zB0cAFbC+)u(-Egi)`&4z%lVAunYZmtVBuMP*H;-`TteMK{kra}jINorEeV`Fs$cjD z2j$L){V&#q#h1Z>G!?SZ;`2$*SQ8^zTxysHfWPclC9@$Z+<$or-BryG8fHBv1mt zkURDFzs|VSJgHy!I-_?xR*WXFQoevUu!5%S5W86ATjQNT zmkF9==S)!g*)896&nHR0c?f{9Z};hGZIn?Jo_12F@BW_c*jRW8c88)D16t2;65^0tiZ>t@xSXN|6DHdUB8t2t5F?fM>@ zy5v7nD_ed4E4AvdO?9o=jg`X2vWldTMA{tF^$wnk&RR7Sfax1!%IDK4pPRlII^mJZmCoWx& zD7-U^FhRReP0T%Aqc-_>lW~1PRi>6G^{N{1ZtSMJ^G7Z%xV)?=`R! z1Xq-{4JMuBeLI=&_r#%Fl%+(>PQJySgYnzF2Q8BMlsE@QDMB`qN7`fagz{sZw~@)< zP%Bs7dSSIL&-=QAQC$W$^p80fRqWk1{<_i#>ly>?;eTP%^>i=jG z64+>LW703!T$l7;h`)Y;{<%|iF6{GKqMWs0Z3NWHN-yTXfK1jqI_y;W<}m%aQ}wPm z!?I6=7^z4`*S!=b=#uZdlLh~T?@`~OiHao3WP~juoow95aA0<7-zoZDGQa2y%94Ho z@_PKD%SLjkXiq#VnLsL^p7hIv(XGAWV^&|yr{bx}%8=#S^G{CZ5u2G`&?squ%*~e) zo=%U`(*Pf}pe&K_=44bDn{_YOT`UL-;eB$OenP2>$NVFybYX`x@tzOBcb_h_ zlUQGM!7uCSB~8Bt%OMeBTb-d0Z)oSbRNnR3$)tj>%(QG7lFcn06OJu${}xg6n=P23 z$#)H(Ip3Dm$}&Un)q^H|G+&l)iRH+L`T>_3Ffc#aaxwoGt}R2fLlQ$ho=9L&h;pue z$EA8?wk9PWr9W}0JEzLDkZsJ0utH@*X03v1#NKqc+3pL5MK|y{>l|5Mng&NV4er|U zRTW5@a#SM@@r^F}LX`P45kG&S3s4m1ml77T1=>FjJ(Vx@Yi zsXp?OZw)ROd8w%~VoOgoE0xOLR8Ki;q&<{X+3ZM9wIy2>n|6I5TjhbV84Qmg;7`;a zWvii>1?J?a;a0di8Gdz+x_;~{y>W2O&d$Rf@O+CMF z;HKi1;|$yg+`dAWakfz3+)<644Lhrby4UTj;%NwDb-dIxHXFvmsJz=cu91hU2{T~L z@)G(8=9kgl)$tDXaNO)3r(KP!<6nbKmrymA6fLh`eQ8OM1dBlB zAPe*OTXKqGxL$LC>XI34Ya1)`#D{tppW_Eou+tFH9peac$rF|1gd*xOBqL5rXs@(> zML6?YmFBqrL!|;IFeWRV?pApfF)Edk@~OpYIUA(3KAaU=7;u!>v3Ry;E!o%_7$f2Nb!(!qNC}SPlt$ z=t04PBd{WDLZxC~DCU21%e?8H5G`@@a*Sb&6=~2`zbcHyjnxTKW_lAq+j9){R-o-p z7Y?!>UXTem+glyZ1|N0+v8;b-w<%Y{6DC%|g%>u>u(qocGS}k zAxt+yEcO97)o>BmvW(e0(o`FkRcV4Gg)EKD-=#;PH0p|Qz1v%k`iH_UW2;`5rwS@g zQi+p71^3cGA;nY$TwvGw#77A(Y`8frF6Y`sbL$i3C(i*IFg&D;3&H?)E+LSLG|`nX zw{L&TO%quIkjF-PGeEh7OFRmM$ef8B68AQAfyQUW?7onhAE>2*TCVij-!g50zBFI; zGB4FP<*QqIT4kVKmwIjFm9k)rgIKahCg>0IRp0SlDb6|(ZXgh`q2Tb>SS7jK^{4IL zY2p8^h=F>1f$G*rj!y)`LJ3X}0{(>mUZ7rDpuE{bh8t&c${FS;5p-jL>e}gWTiY3? z8*5fFSvr|t=@SL2e|`Ze1t`(%q=3@-omEM}K`EV@z+ObU#tXJy)YChwF6Og(ac9+| z=M$9a0u`oAEZ)`8J?>i~NNKSgay_QEk!0xlR1yjhR0Jm^&~5rCIDnlrl?bY3vfQjs zcUHa4O**p+aukEDb;U3qyphf*Pk`{nK;w*;^Yv!=t)fAXn7&z20Zr2Uy{+vA*(7M= z(gJzGeuPhWQ<)eEa#iHCXfN4u_J`Iv1EDp}^3WPjaLL+CsPMSa5PunnDU*W zHO-viuZVWvvLZ6}b}Ft9Hak!V+gJe0^@jP=Rzz&m0U4F7liqOhAcGwMjUYQ0f?+?G zW!G2F_eqH?9>odX`p_;JM_fXgo3Su7GRh8#U)-F4% zBBSIEd}d810)*49D*xi_2|;)Qp`>tdNsQ4HWJQm5z(XD0;QNs32}jci6nB%Dx65KQ zG|TYp9n?+DFx~d)L0Z5qYEmRaK-YEWZQUpJ{_d)f!OBPY|iiSemqo;wT66oxtz#)y189aSz4Kh!@-)5dq}f z1je*~dQ=F;^s+Mah3pqew@R0KL#BMAhtCqVw}HT8BKW{fV@_jE9*n+wF6p5CRUuD9 zJO{tCv?{!WMJf4W&Zes1)1H&HjCrQ*>Pnlhrcx#jB&Z4o8x3#~nlu)g zvRLvls9OrjAiS3m;0iLMb=`d{Ve6e@im*!G%J8}$taNX5*upMfD3`EYhp!3->5q-1 z%ykZ~YBYS&Pvnjt>XG`+Rqk(Da#%FfdSjvLGxa$dChLHmY(>(zCjm123(hbKhXh;BA31oHQHAkw&03R!L<*C3+uT)&a<^ZhP5lWK>wzv z8Z?m2?hU4iP&+Ti=sIG$Zx1^R7>UQ?&#}kY0Cupm=JD!Iz0`GC2RN^YWSTL*PT$!} z_2U#T-P4F&hx~fc%_UG4>p@rtPZ(Yg3hPDFzBk~rB zh9CK3P&dTkk8SrhIJ2>yM4&b{PdMV#vplM)pd)w|*68&jBYPKF0@4F|V3F!!y7ZJH zHOic!A1G3T%`5b?MXIkE*6;8${_+bAYtfzs(_>gLSBD}~WTzQ)q}ES`45e|&bdpB6 za3<+5(L?*FiXx}cDN-nEcrYyk#txQ^K*%z?wdN9ixQ|E|ZtI9>cdo(-tMS!x+9oan zE&Mr>4?)}|)MLQMz2VqK!wBbH9Htfs#1Pt-(>P+Z%dQx#nLOK^{@Y-;4~G>j7pP(; zFNZiOBa`tnH(32zh6iv6TRMdM7lL++43bl=) z`N&(X+4Xd%S45iYBU$yKZE^`rR%mh95N_hf&abj2+!erG07txq76%Q=_OTZZAlCMf z0rk=Vhkw*2WVEd$OICTpMza4Z<;L=HBnD8tQ|G*;3=9(klYWyW*qqGGzRs~%s> zJeiL2YLKNZ@zG4k#~WmC zAQ*g2YT3#&US{xCYkrlbfP_g};ZY)q?}oDTL4(hY%FdX6E6dQ32?1wWFFYGnQJec= zNF4w?3&Nc*HO@%F3u&ThJOmZ~zB%>itdM;c9V534*#n`-5TTd)1ije&jB){7MlNxe z=?VQfinvzuqH59Kl#>`2bJMzAWEA)GtXb8B>_9zQ@0ujum} zg*4t0?a*kq#F$m`J-Q(tpgW$!U*{A1kQ*ZBMm5B30r2;myAcV)0A~wlcLgr9FGrhmf-@!E((vPeLDq=Tr-q96U z5j}zO)lRGHiJV86y!mGjR7H;xzS6%nKKD-eh~G)4-Vn?8Cl=6slNE`o*9^+I!VZ!_ zV6Y1h{bb2$XzszwHG>cFS!QjxtTY(IhC4RIzqMefw?ZH~m_G;WtXWhfGi|3A?>6&Z zgo;9|Y#l;Z!Dy+N9?J5_MkX5J0Z>Qij;L&Ef@Bd%BE=po@fq~OZ43su*;%HjD#mkl zMBYy?3CO$vCag*mb;^3Tt>cSVMG17;sK{)(NB0=0Ms_xraq`EKo9?V4^cg_d_NFapeI3_J@(1^vyJTF!ug065v5o(#0G{PtSF!Au}_~q90 z!s^V^PQ!MDDK^Ivdw`Px!sphHQ;$nbA>`?G-84uQ4&nahR$k&nA-1k1HIIJ{N@Vz^ zI!E4M6QdjL8jSMD&_f5S9v6%NoP5BN*|;l4<#PwCo+CTZNEy7N{2&0h9Kd%a?Q(!v zDXq*{9eo|-7Lz%fO)&QGyO-!^2dm!WQjcwqFwkPub6YkbbBZ*M(Mw!_c?3WaKrBE< zL(YYSdjLw5$=WeQjTkAil31wA#EwMQeG%NZ+}==Io`>t(P&)(>R*+~iSmZK4GZ1>I zSl=^5b*T^&B1a?mtX~~(0^UsT3SM+eFf<_uBd|JNYvK5Pcmz^%7-=dTdfhAhA`GA4 z&I;)>VWg(_ed|&imIPU5z=vwJHY#NZgDM(loXKD*za3Cb@0HPo)l>%~jzir;mCs~heIbj^B7M_^s>kF`;7BIWMXWMRj`JFxTITkH%Jf#*gdV+A z>EOi@`0SC#Ow%Z5^6|-v!&?PkdX3TlT7ho5PBxnuOTK95y|htusy5?Rka;k! zvxlh>CU=+(Qv>op0LF~q?bMP;Xc)C&y?mJRbQ2gej78xRz{+siUggeFq2>(945_QS7bO=b7Uo$|av(ljxuU?%@+Yuh{;HLqMu zSYR_Yo7sqoj2}^cmbvBb`%>ktIM2%{b1BtHA23(H`lZF5>ET#-@OJm~z#aEwTStA-nzsj~#BU55MbD5!{!r`YuG-AA#ZPc{r zFH6<@$xU<}ktlEDLvV7zwX9&WL%1M3jyBF}TpjNrek-p3ZUoyL8z-_RL+HCbH zW#~7DEAIvL;LFnMT-+_G^?walr9-bn?IasIGHbKP@f5GEZUgYAb|Jw{6A)O_$+M3e zN=m{Lb-xj+Zv~cDStXPs=L)3EW|k;o9GE}IRsOO}anOr$M&+NfXl0(Y zj>AH|g22p1Mq&sY1rnn$L-Jx`RYL0?yX?|;w)9MJUjhFbh#y4bCqS~xyfwC9! z+Hs(L7pt!M!hwevLWDnJCCVD9K4j`87po!WEdA)kYIwIRm}1I7sUL1JnRb_Xga^$) zgBibA4K8EM*vq`!r3qPpj#wGc8QznOnFPD2B)h1%4Fhgn&QNHQMLolTbn-5*;Xg^2 z&!)*RC;XDu3rovnuM#J+SmIYV!nA@tTxL)_J{i5C^a*$ZP>$bjm6=|#tsVeTuC&`n4t%cR(&o2l@eYH zx45`hRaBRaRwFt)uxU@t^7EMGc@XT38PHFURu`H*_4}jMRA0R`HWYj4I;J6(Ymi_> zXki?thtlB5A)%WaVvPL)!@H`Woo~MlF9Z<|ebX4#`vQZTFGZmxW9auZavpA zvKP=)cyHFN{DOk+vQWDp|8RX^3=9;tP&O!M8QhB499z#XjgPJ6H;3PPep%wh9^tnG zzjgeYsENF8>6+;=khXb(NBHlI*eLg;wRXPeC%;#s=@W|RR9m8OTlF*Rpo*DQ0 zCQ#w5*o43YW_DvUdaT&|rU}tegxjp|vWnPTK5n2wTc4T;z(fRrbA;gBM@~IJ3uQrd ztpL#^1x`y8SUxRT;M~~!z%&Y+mMm}%i?2ifm}p?h_sN`|RvVYv#lz1XHb<7n@&BYY0!YW^QaQ z{$c@MG@i1%aM21@nYB@=yl(*lD3z{sH#lwmLZ<1iGVB?iN+YAGPXGH7)%_;v*W{36 zPFThKkmzf|F!7i3*Q=_Esw2JW3h7VA>#Ec+m3XMuinoR;8d{r?P&=YwiJhy|_l{GK z4;noEYsA(1xFb9?$wX$NKMTSQjJFEC4T#P`PB_-bUmLB*j#qOAc3@}R2>7E=ZI%aS zT?mu16@?=I7{x9E@Y!KZlHSz69Ipl!nt{V{!*@7-9?tM312SWBO(eHteym_xRe0m2 zYINSIyBp$@;hx5PVSuaSLuI*W@xH?d1=KKjq3TnYLK)ME=GzlOmN4kO>`5YkKE6q5rJi zUew*5%cFgrGH`f;x@?m2j0q27_;{)fb7YmJXUbttJ5C8=Xt^mXF?~Qlxw2=|fzl5X zCntt7^~;mgq|$|BIf3f^ChMz2d&uhH6spWTNFKQ_6ZTgCleiqFPSYhZ;f zJ?jS~+c~fyzVmm9tjKh^U^Gi7v;G0U)gJP##oy>X7NLx2-y|1W&D8?DP#AldU#aS$ zuiFMm8i^kT#8O{PqAXivpFRy7<40sB;4qA8qYa!e23LKFoZZIDPlj>08RFvCXnnN+ zRRi%M>RptCXRB4jlvj8hONve}VmS|CC5m{jy@MX;t|1~?p-V-|96;4D`|zghb9 z6xHKfL}G)cvOUO$(A6JUZ^^Ne6m9L)Loa75-2rXLJ=(VUHOXrXR{=NQ~X18sd9U8|`6Hu(zjiMqdBS^ejTey2X+#D`7qp&FLaYZ=P1qsxghk zW&2J*c>++9VAx_o{o&s+r(P+;iPRP|!53BLR@L~27!Jp|t#R#8e=6-7$ zph?ko?}G58Qke`e)Je9q@;fcPSuegq^}b#XiMu=ql}#+PjRj$&sXDIc4yUoc*-bC>>s+ zYMQU$;yJ+3R8N;k z`7KnXxbv-PsG2OO@(eELsf=={mEBr7J>?4C!W{#l$R3XG%fOK#D&0_t((ixnf(dEm z_Lg$5uJ}F1Z89={#{B`pmV3f}dc#;D8cX66HZAHlWSay_^UQHF>auowV9`yNNBbmM zG$M+{(hx7Zn-G|jk-3{+53vbh&q ztW;`8%*>-EOK~RsPr|J8NaW|68dy8efKAWHO#vtT4nL-Lb0PpZNO-Q{K4t;f=sp%H z(i5&zd3wt=s8`K{b;foCFw-J7sqN?(($icVi`hoM!VBg_GL)Y7=uYd5dnz`L^z*Al5y=&=*{*Mqspn^U2zAm zMb|Z2$FEgaBLS3Nr!Fzw`mXEPYu^VGmz^2|s&N{eiRW9UZW)3?w(vZ{=SECmv?!F$ zdYuJo*K)*+U_xLy$Ro-^6rwH`Lii^SD+`WMvpUW4`<$phou>Z>&Ju7WV|jNu?{B%M zMF%*!OJ62#S@y_8M=om+gFI15LK)K|Ht&R}=b%tWS*#_uHy!h!VccH{PA#=mWVas* z3tS%Umz18<%klt}0A!WrPEcYIlz1_9jBXxn6racVHr&f=>RMWCe)V=93fQ& zMg%*;ZtwjLroPX2I))qo^ecHz+5=XCs4L6iFn&4exiv1>l0&#Jx3#S*#xIzYE#e>M zlfh!nR&SO?=3;1auP&Ody4arnx4v|Oy0oyER~r)3ah1`JVaE*KU0@nV{knd-D()!- z)Oo7IUBQ1{(~)M=^Ikld*E?=2u8Y*@!_(D(5@Bzmn3Meo)AL~X34p9>g0Y*`kR$3s ziV*gvJu_6HDh3)ea7<5{p|%yScYIU-fVBF<`P6@Y2AcIjx@e{v*3C|}*>5};$)|zp z&AN!~?Yf94%e(5uGu4oa`PJd7dyX`F1T9j2(=n7?n7oxAv+go74pfH)H6G%WBN!2A zB%M8QEItIN4f9B|FmMlPL}g_LPR5O84@M-7pxRb`k~mZ@3xl9Oq3|ZHy>~h^+X^d3!Wavd0aiJe+@(}J)$RYdeM zlpIhBhdSxiRbrPm|C}hOIGi|*&S{ce)o`=vYhsqJjvEHHYnVDoIg(GrAmK}pZ}%G{ zABWxM&Q@d05A>SZYQStUERz}D<--<^^bX&Wu$@IGywj?$ocabzKJ4fEEFs>gi}snt zGe*Fc?TIwo0|(f;JP^0}4#X{?g!;>M&Kz~0`Jt|yLu-Ft`roa{#2D)n_ICYJYq>1Y zs4)n%jnv=|nOLx9&0>XV8jKTf4I1#(@dnBf>B2zg3e*3g3bHtq+ILHkp-P30xQEFZ!TBDL(PI|!%w5uS}5E3EEI zo}v{%^8;ME8WcdWY%ZUxdUo(|-D~-6(a}HTh4W2w)rjmRQXfSKW7Ws!s*$7X1=tm= z;kg2d{g`eW0q!2qCJIDYz4C-2H($llm?MYi3bN!|!l&yg^Hg7#5ndPPz6{<^pQlFK zd{^n`=BZv|MoR{2khOF^>u3*q7{bm~(Yoe*6nzde*rLqpW|u!`8MbDl4|XCD7Hac) z^!OL*f!C`Zw&Jz=^6N2BjOs<#t4j(^5kX+xE}Q=Vm#fF`MFTa-W-nT!yig`mb_6~9Dp4wBfX05zs>RH}4pxqiAoK#w!1S%_ zGIqPyMZ%UqFUBFzigz6kv{EYv)i9Xoq_7&ZCttWbMmpIg$^e66I7Rwi%p@zKD3n+o z$$oC4!U0s+p9)*_0bm^bd0P3(4VK6v_Pc+Ra3*ajQ|hKnZNFKSqFKNyfX$`7<8D^R z%?X09#^AAth>(}ihLu4`!U#(dt@Hmc0!A%y}c*5)&+Z7`dx6SUCu zOp5Dy^I^_RUaMqthlO!O=vwqqqGB|7BiQg9i|2STr-I`pN?2{nXWUU^t29O)Z{MFR zP14$F*o5+lQEzx6`mmdMLu@XhPIYvC(?m-T_C3n!W|ZYgoyq#l=*9)?jlHf%E>OJ( z{t5#l83$Q1aHyb;R|Bs_vopt(i$}sQO1-Gax z%v-4T$R9?=<@+?oI?0WK~l0JNky3y>chb~kvn(ycj7pfkpYS_y1 z_K$B|q`DUOOUmfj@pNC`1P@>s8%=0TLCNx_Y0wt$6OLP?YRnb-z#<^1)bB6Cs_LZv z=OXp6d5NyQRZZd?!73=35r61b<;y5uYZ~+J(4B8nm$ENC`!+TBVpB-jvo1cho=03+ zqD_S@%0%vMTphhxFpmxu#%WN0 zf`aw9+tt3Ju~}HqGVjT*v+1d1BYg(!-gwmpadiN!DZ1NY)w@8v_H9+xK3|D@y|pP; zrmtD7y7Y{81Zf=L7cMJno&J;YM(24;2WB7ylsq@-jnzD0KiOPo*X7V_B9pv^EAA=!fr6?W_Ak+8+_tr6FJI-3l{Af_Q z$hdOTP$a zyg~;P75kPE*#xsUN&>|Gkjyr~bm%UXf01H)Tx=wSw>Z%M**uHFeNcY(ftNWwv1U7u zC);GG1_^V>?5;b1UtKiluX1A#RSL(JZg>n(Wn?))^)xuUaAx7^?@ZSBeqZ&eu*xKV zdby^ND4U~PSmLj5ad~AQ3r!MTXbWSIim)ay+2z}Fd$^-3h=I?6=05qfq%IiglTCRT zCfg~8<3*(5*H{)i1B*$A;i<`A-vw}(=%>Ub0G5kn1VFJJ*dvYc!tBAHLk1!Zdx-r! z>CVfJXBr~UpPc40{!XtgUDFU>x{VDQt_R_T;wY0ugb@~zJUNXZgU3yD@NRa%zOP@n zo6*{=58n-=_(*?pH>^i#2u8M6B0`hS#} z9eyeNR+daf{PyP;c8JAd;|lHzAZz6+Qv^DNtEEXE{P4}w4rO%N{NJOan8T=`dd0oN-a=&_*J)2v@ zqBoOt`}MASRhKbA5F&_?i@t|Yz%S#~?#a7_& zwRxZF((Rzb$Xf1)dtrRy2(AYoY&QhiT-T-dsk|#;1%rwSk~=fxzOB{hNv;8{@)*M^ z{G!9X34f(^aNbxYqj(X1*{-P~{-;4t!>t4TN7ojhbBQUm3{n(R{uuR}Xp zLZd-==hz%z5<43yFtw9IQu_i_CDJ zW!8ex`%pY$kw9cjG6?CqXxw4|uqBX{br*i*aJvW)_u-c{vdhSg$n1LBXTTE=W!_vZi)N^_UIBIU9JcIKuvN} zR*aF7CkK_K488mZSlOSkCq^N>t{v~vTzMKNRrpSBUmr-}_ofP`()WSHDjXDf%WJru zrY1hRu?Eh?Z9nwec)F&DeuG}Ee#Z|Zpbr~Eb`}e* z<*a>rCI`d=0mOtbOWd+wzR8*gr1jQtEDz^N|3FYqh~4?*KibYnGrQ7UXd+^S67$K6 z$p$}VHMk-{Y2R(}K5l%M7GIof@n#aYqmvfr0)SLJn@X}1BPF(mG~b@^?nq2{$;l}z zIq9V)r*&W{sJkswJ^GCc9c8f1j&%jGnG|~khkIr<@?v&lEyo=a_Sh5k^(5^!fhgrA zSUTAvMY$*RhR71Vn&|5?f`3sL$Rsh8rd7QUjC3c zq4GRw2!5Ge-S~xFd<{f2^1!kl4F`v5^G8_0OA#rgO8bT5@?e`qa^oz7COAsI`_`z_ zL&s2bPBPDTaqQ@k!10@K9BIv1ZWtMyq^fd@bm1oDwb3y!L#Sv~sWG#EYz5p^Y{vdY z(-)Iy0e)CZ)}8zc_9pWCcYWYT>gs|wG0_rO*~yOz9H6UpnJ)UV>fP<%vW}w4!{m@= zl(12Dg6N>W{>N(Y$kt?ZQ!=`xTSNSJL`zaZuBgjQT4i|sOc)6sxK#i0$7;ZoBgw4K zCbQO)bvIc>MdWoek4RQ`(3*}?tZ$2DOE%AvaHNW*y5CP!@7X5^UIzRE`x`X11Yt_J zsmO{FW(&R_cT$ZPi%qfKChMB)ZVemiz}3&FQo`H3E^C|pLBeEkE!U6!gxQqwvVq&F zTXoY6ZYZ8be zJS>uU3c+$mf1BH7jo2Av6s^gBniJbTZ#y$2n7GhQSOyhEf1JGPYE*Krlki_BMN%1m zF6z4%S{QBIDraiBIDwBLK$M(7EwM&`lJ^oj5H5b~jir^WyF;-aLjK7)rx)=CJs|+5 zfTxly$s?2Y2LPzwen6E}yp2y%G99*;STA4&Ela=X6d_OWj=+^=2!4`GN~TYNQdUZt zEQch$G)Zdshm=Xp={4@Q!sf>Qz?CA)p<%J}8*I$%Xbn0Nu96GY-qe*p<;cV9O!>mv zP1HBbk)v#t;TUV*Z+*l5V|OOQgquq`riIw85|*?9O-UKRx;cf#t3dVhFia7w1#8RQ zB04~~Vd(bf53?D0xFY`eOM@X?F{ha)3aM4Y%EPg2j}CM4G4}RlJHlC>wc!rfri&nH zS*1~EmU(XseZ*#4QP?V2u0xQ*DUb?8CtDV?HL@DSG=B)`&8Eue@+KkB!|jGGG_<-O zW;d%+(8*lWRiG;eI>nhwj)uE}V9$LruB%JJa;2dclN$k4tYQREGYRMc0OhF7X&G+@ z0E;ob1#l8rZjfvT_Adb2fn{+Pz1Ou6Xn~RiKB%|Ol7}J-Q90ZK+8C%ogh{aNAmzRPDZKG1hx?d%n9tm|!95g1N9LYb!6NXHa7podkPyR}r!WSSz`fRG{BJHme7bY- z{h!?bElpr;#kUKR4F2!9u6&Cdk#wnwB(3=6*90p__pS7@To!`8P%vx@v;F19P>8UO z?8TZzTng~rxQb+CC6O|4C8K1L0&Sj3tVP*RaHH)&qlE?RtFlRlRxiuP;FSdkJL^{0 z$t2B05);dGw+zrGx{B#628qaWyMQ?5dA-@PMD;!xwfkSQ{1rY%J=PvnIsyIP>tsR* zBSXDpq%sWNy8C3Bp)z>=w=1KMKbHpwgf6J;P02&r0ymYp6BWn?prSILAttcs6{*kU z(5P8n6}1@$Dw>5QIm&CCzo7809&D-1WiixBd3OJT@G4IzGLS-@o+^t|ODq2<6;jy? zgj?%pfR#M3Eo(L4q@`=;^$U0O)J3fp6Q4D`HY_JZWGay@y?$??fZd7f%01hr|Mj>% z^cpCCEpBta78fJVK@{R-g)gXM1Vl(VRLmHqj zCIPJ$K*L~&vO0Pmv4C3Tuf-ylJ2op2VQmbHeuV%MelRK<_8tAP=0Y;`L-o+_75X)t zR5>)h9(Oi980`VG%l0PFn<0H^B>d7cDXRo^it;}gEuobqXHl&LW6d_Y)+(pz_4ptF z?jZTxuXV`>iUQuzvD-aWZWH@|xo$#xYt-%iq@5SI7g&#ib)_vr6^Z4u97{_qpG)=r z8uSfw^oKR7a1`)&G!itHf<tr)@IVW}nyR!~IPvHd!!{b_xgl1HQ~v($Ii3$iK}<)PUGT_YYz zw&l!Zdh~;+0GH~A9#oUe_4=I$)g@EDh_;=X*O!xPr1u*&(NFnyLMd_=tK=&N6w#W9 ze|VbTi(kSdZkoPkB}&vXf+)sHD%m7j8k)tSui3hCCEDXsy6im>SaDc@l{0N|?A*2FWZ1 zViyv%hwC83=`6|Km3jFs(_`T`(vOP8TmznGg%$BFvi%aX;r)5J4e#Gx)bKuc$()b_ z3{K)qqhdyE9+BgSoJHi@MA}4)X^FcB;&QjN_-!Gk6d!XDou7rVs$;?<$+_si$JG!A zhOB(4JRRA9#HNw$H?gCb8F|v0iu^G(rzU&!uUB#V!cv|4 zuo}?6EB$YoL%~;t!x*0bf*-DopG^*~z%^K@uGKd`tmbrM&DJ{KJ0aQ)LiV^PtYwp? zwakxAihhTpM$nmKU4lCwCYE9b!;Ht0M0Bdsv8~d{NN*=hFXZJ8GE1^u;i*&pivnAj ztkYZw|32I)+=$1S_;E{8*lu5I4drEc#>bt>1)-yJ{~LufTj z1GDDvZf|`=J04Lb#B5}(k&J;!S~0#yRAINPtYiE#4b;R%-|2A6gcypU*?$DZnVj|9 z?cIV(7u|$WLr>MjktDiH5=lNVEqf}fg!fH`OFsE_C5!Dzc#a>kqBFR^ThPF?DkLLl zsfquT{p~F$GL40Z?=t+ z&<7-G(Qp4u^&4)4iX5C#G8kdoud4~a;RE50jIcczfL`WdI$srLGx9Av9a3+%6BguB zt$J0Q8?=QYPhNyh*^}lM!1SueU-#?{1cJznH=S;3l&Z`VJ@(?>d zPnL=pJqx*~DvSzsEc;1_79NJN(ON-zj>p$lcqUd|K%VaI&|TbA>@}!2SU4K_g(1bf-st%b4WZWG3aVW6S^~h z4Y%3X6zExN)s(y@FgCp!nGNZ5KEF*halLb`D$dS6AOh0th%HbV)hE{~?`T;S*+?sU zbJ^3^vC)FSM-OHbCUFkTK28Z6p+V<39N;5HVMQPmS$lc^ za5dZ+7T8*J&oK<=j>hNCmaWR8r{ui3ng5{v*+z9uah-QX_zz&B^wLSu#-<~cS?|=b zHC`5T9!L~_AH{Ffs@~=FSB5?QkX>)ms#FeK2%hvIt@1}(eOX);kv_9|jv~Pwjho(E z!rA#%k!mpOf+$V*du*W`ZI;!DG{GUc3pcR^Z3oN>NSS`v{0DwFc^hi8hE}bu@>B;) zFPvD_=y|VF&)cNR+*#wR*H(M0g1}nU=si-Y-`J#zyWJxjKJ>qk_AB(Xu)ALL{2FaO zsz&GgImu%js`UmYMYFxNmG%+A$_#zYqpGW=D1!R*l1J5KbD7@tsCr%qta~;%OX>Ys z+h8X*J7S4bo?6aZfkUvqw`Q|iY-TkbiR^P9!7#?J|M8d_KXkl@8HZtIghCPFH=>FW zn(QaxsBT<=g<)oPYcJ#?J%0-~UXcv~(k-Px^Dtrxdkqz;Td)75GE4IoK zTVP;ch%o|euqwH}O_pGiPRvN`7(sGP$XGGU5R(#ll~>G0#9G7%kOz}nCuPVToue3k za&VK){Z}19b~Hnr|K7kTD-U%PWAsGj6V^2=-R*JJW0BmgC$=2l)HTc64E}CiY?;2= zpXS-AM;?anDpMF^ytmX75*P@pN9PvAj4`bmW*xK^TOU`wCrGm%=rGs1EHYJPmessj z!ekT8gFU30#|?3>+LKl0QRU~_Y*2ZN5%iw>GFgMdR7jTY89>#YB+UqgXNNb$#c%gA z&l4`D^rbn*nWKaYmTexOtrsi46>L5P!-d344~zl4Z?G^2QNEJu@*_a;C#tB+gQuh4 z$!I*>tami1;!-BvRvYRiF`1n;6RDKl=-}@{k)1dvjIwD3!cEW>wY^pM9+Z1xg#M}l z!!z>ceKj% z%0&}1WA%L+HkeJJYI|u_{T}bS4cx1?A@$~|elw&-vnOqCQv+;uuzP~_))zrpE9xm`lmvT~a_dl^p(cFo3zZ7xIqV4LcdYtc2sQ#1g=6p!g=x2fSJ z2*`1-eb;t0yC}`-uD)^n_POFED=IQs_fh9NNs8hq}0dbKvqlBjQHrk+=eJVj$-Ri9U06 z%N7}6{=_nGDD?@Vt$S>0_jj`HRW*H7>Rv-Zp~z5u{Zp#9?TeoJ$4{xT=F|G+r{G$3 zy64mC39Rv&o>rd!CzH%$fBOG5$sG9%cHL23`3zTi-rj+8Fm%NUz3mxz=lAsfXVkSs zX75lX<^(-*hpMi4_k{4Lgyq1by_oBpWAs7Bt{Mbf>@b%-i}k{B z{pho*_u@lDIJnhFxGuBg35R!6TrLc8cpr+3ZcLPLa>b3Cty<9 zB%@(&go{vL&8Bh{fRKdKTY2Y1-jksU7HqocIhCJ5DG2TQlIK*no1Ud=v+=5EhY7V| z=$(PLKE7SR@l9sLBu*v>SZ3qZ(OY1frty=Qxg-<=obKPFT^;6cXmYu23O(o#MQXiu;s3f6c1OoI zGIJO8WjvME>FVcIQI4G7v98;o+JJufdDY(;&8CBN_<1!DmQs+db9Sl$*-js`X%J*U z3EH<)d2>Yeu$9+Z_tM;=AJ~cVtH0hVKb3m_PW0&{h}D&Ejh|fG5U=-gVJ>VqA0FZW zrweK6LP0tPa*l9ybYYl_X{0+)d;bg^zPaCJl>8cT5O+4s?fVViII((OiC$wRdX1In zHLyE)Ym*~8?Dpumuyoc5xyZrm;@KgMvK@YJOy;VE7gVt?m###M!ko)#T__9nNF4P@ zyae?J0cXBb%zrLr+;~cvnJncEv*F+yxeW*3E^0W)ro(pu`OhU(_}D$agc3~PScc+a zA&QHoC@$V*WhAiqDb-J@3n`U}8f`Y&ZL#i-y!`Ohd zIT4v_RXnpPWXk<&a+96Cu{Lb?Y-pA%dR*SexvEE3@NX5jso=t_i=iEt`!OyZlP+G} z;-G-R?A9i5>5uh+nRFoTRrcd#C;SzDg%@97JkM==o9V}g<2J^}eXP~QK75bS;9SqC zn?_HAlf?^DGr;>j;i*XhXK|aJ@uKQJ@)5>NKKxrzwlJ4_WrrA=713ccb+E{7%@4re z;rGJeWT>y#+g@beWSRHYi)tc|?d3Eg2Ie1N58^d+C;U#vy^TBjIwym1A)Mn4m(j%U zdfY71)!_;Wo1ErWl4l`q53Z1Odq^XYAZo{g2sk#NNqy&*a5Fy;$~a^^>gO9(k=dr- zX;fZq?!qWlEZmr)SeCAipV2*cshQ?6ea|i!`|EoDE>6+CtUuqSeujBs?QZo$^FIC6 zZf46IUG$QA#(Y!%?j_U|gX7LyaV^m7Jx>j)%R#)y(dE-zNZ@wGNc{#UD z1)8|VDs<$O89ZK_wLMg6>{wOl3azTl-o9$hgcnv-*@K}qfzYb8X0W=7`?ad{(LJi9 z-_6PGGP=!rua_;n$Vr4yF?2(_Vyyv==%Sa^lLex}PznCm9Wsq(0{;O0$CuTpT$Bq= zN26?($#(4O=sI2W3pKcO4nt0`y$70+Uib?e*AjiovJhaGBH24(zGYtjvwq+gn9oBe zn}4CY7ndQa3LHx?a8pf)6O0c*oTvympw0=*`nW#+3$-NEnQX<=`kK9}Z?~Ley^qlV zp}|X%Rt#D{v{&`cY?HnT_@k@!E>c(cb|bTvBOv=$$GKpjH2{}WAxtA=b%0zheKVNw zLfDPzMOfy}8@ZiOIJfY2Xl$&_sAM?Ll1nniekr`4iA!WT>nt^$)M7ToTXNYkAIdHM zJi_Q`%!?0ZYoWqz_K7|}z`B#JmFJl#G$DnHrn`ejjzVpXU#{=ws>vNhUm~5z?v8%!m#SOEPXvuVf0WgG zce%Ht1C?-FSTvJgsZ{YRVuzDo$tavb(wWJ0VxA!BzT#KX{oC3l3De!Hqasl@y@kp4 zW{)A7Bp#7BZn!JUh+;*(@F`hkhB6{Hpng)1c~#xm?QB=Zxfq5rUQTyq8A~H48jN@S z!mCJtOLW1n)bkv1IPfd9@{f|(sLwJS;<#i1iQ^2LT&FhbkAJ1QM?RS!Gf3(Ry5jFHxiMDlDr%jl~RfOHNR5CK7J+btNQSMwkV$7 z8>a-D>Dg;GsfROdzjp3@*sm*q?w{{-o&`H>~*Y>`$nb{3Cff6bG+}2Zi`7u>){z-p)Om)e@!=;g;t9(u$KCYg*ASf1VzC`e!u&I9Vk5t;m8Yfk$ z%yDs?$(hLfKa4AKcSwt&!X%n z|3ul#QmK=LwCF$ni3?#lpx<7$7@WMX`<+zR*;)4MAD&d>FW4m$i$Brb*#y3RQVq-< zMkbjf1v!$bL4S3UIilBhf*;WnK2$dr*a=QyLBJO*+^cte$l07$ZT=Zpuh#{CR!4Fh zVP{scfGE?jNB{HBYIx^{RIpc0YbEk`{BrNakJN6{(eWILZTB%XRdbt9{y;HOTMO0& zwY37eM=TK=;;-QsBF>`Ml%B&eT$M}m5h zIRg|qK~bLmXS3?jU2INj)5;S4RA=)sJ*5RmJ{6!Te<_gMte&RNEn-rkbhj|}yYyEr+y;MC7o1j;a(P{orgpk^Z*BSZPSs{to60d zY*oKu75lqZwk+pSm8Ty9$jEO1o=I3fVflp3qaZ~AE(*AYa0lTI!l$Q&UqSe1#SQV# zMl{5yrG-x*{1oA*2%nM`ehJ}%j6)+DE{*$$$fAM{RDc~)%ZNmz1+lcS5j&uZNn?a) zMI+pYwAdfDNP4f{c1Cq6?fac9p^D`alg`coyEHK3o)bcF`RCw42y}yc640Zk!k{Z+ga5&r$wS^ zm=OCMeVCvzM=4CGOVl7@E#kLi6~->%Q^`G5WTH@_X}?PY=v_VZV}|2z^p*S!{7tf6 zHc28WkW-}d3UMg}zN}Y&41?d1)`FdS*T=A$XY|335q#I{+`p>610PNR+K%M2xef6Z zgk@ZXDTNzWLnDqus+IbtzjCBtd0O(fps1rrM5l=UfnNPr4s)E;zx=D}QM52ERSLM9 z6JaqsqjHx1{I3|d&P)ciK-^aXsMK{5|22B(-yqM)7Q8u^CQ~&LGfv+PdL%y)}MT0nVsZ*s`7fS zB;ihIJ~jAd`V%$&7RErOo>~icF#FPW|Yo49X=52&`tMqW+bZJVh`! z5aysV2Zg5~olV%65Z0Fv)(w=C;?>s?-a>c_;j_}huO$39;l~NTHW7ZUHC;?1;!Psn zBw}h>hVg{ILij6$PfQCRMfeWFcMv`3Sg(O#n6NOhw2=&xTODyM{~ zR3G%zhySj6%;-#Esqxr@X!^s#Mhcys)52tU=knb?X4B$Wf3Y#YrX}<5`qIx-XPe{i zdd_ERP|la1epBW{di7^OaV`;L4c;=n>oYZ~=z~N_u@S8Hj;58G>XQ$2=I83RZZ9X3 z$&Ba%>qI>Ee(bu8$@D-c;=FH zAG6^;$U4>U59y*WKxuVaDXcZDhOV$m>KUY@RL?&kr6%zwmHkLRKyH@1QYVMCp8Y~K zm?!j=|4Oza{MWXx@q%E)#du9(;$+nE=a3- z97`rlL*iRWGn(w9$*zb`RdHU@`k27|?8hdnO?CI@7OVvir$Lm$)2I5;FIA76v!8qe z_-TEBmW}^m8ZfDXK1i$ZBv}%8;S~}vZD*LeWUaD#f6Mzi_n)wg-|ijyPxW`ZS*we_ z;`6S(SWPl~A-~g-{yoXOsdWFJzZF*HE0Y!b zlfP5>_2Gj35`fH0{z~EH|4W4{)6%5?Y3cLd8TPhDNz%zx_nU0r$e&-1A6JXxkE>FP_q&rRCj!cw(eJo;1~ z-X&fnhUzoKSMP5LkY^KvkKN(;8OcLfs*H~k_3|z*T1)+YS6A_Qq@Aa5&uDf$yOaNdpAO!SouHFUP2}%uPBSfK%G+&?Y z=IT+Z6RE#7NA#!gEKfp~swaM9a(X=vh&4LW-R0@(wI+89qF`DHx%#f|uHoiAdRuo_ zkA92OVp6>BOPYIUvOGWKT`%PgHc#)(>EUW{Z1lJs_Q0^rz0+^bddbwD-mc4k(Z}_v zGvhA*UHAU@TD|in*TB6+C9XeZRJd-m8K*upjobfh8Y|D5##A)Jql;~_IcDs@y@^{A zF^xLhPTX?8r<82HRZA|g4^LHZ6}*C zBF|>j;X;KrqhvPeaOZIbhc6vCSJEx*NSR3&xPZLm33dbU9ya4#0S&}o@n&~gNkQcV zj^nqur_I=e8x3mDUr!vr;#%+*Utu#|x!h(fpNb!M`;}k==f8?@ep@c168v?bck)b| zQIGS_;&&41r`QZHdEJ+SkqH2e-*dIC!YG+Wfmf618lb|>x|YIl+h^E}oqn59cpXsV zPT{8VT|@d2q&vy)JOEodox&mB$@t&q_Ym$V?l|rwE{r>cYe_oyM-VM;Iqr>*Dj*^# zd^>&9f-AI9C~iIO5H8zJrMM-y^|*bwQ@E}UT83MRYr>t!jdlVIt`T<>cOF-q0iof7 zxL0uJa3zZJaE-XnD)=|rWiuAy>T&yUEx3|QT8euEx1)%P=yxx!7&*E?jof zEur!REaUG$T#JcU2?*NA8GO4w5m*ob_5xr(0bVOst=DxOTm5?+G;OZ>ai z((K0n<`3X?gujG;Iez)ugR8qX;eR>J&lv>6O`4;Zna18U|0|XsGLnd2rbV!a+@675 z-**4LG(VS$w1@vX&HtM;e^Z+OK$`!xH2>=re56qQTl~KJ!9=NP{8yU)%{2e-()@4X zPyM}(=jc+H@etGaJ^p3*L-^mpKMw!N!KU#p{_uS;+KWu%4@v*^@^OfdJw&`oqQhza z_wX+x{HWJ7j^LkK2PdXqr7xEdelF?f)B4-~E~69Y<`~(+z3*J%YUpWmT&KUk$aV3U zqx0;>6R&2n-)R`qNp*AWMh)L40l{jd6aL=74Vjzh!h`sO4>H5(4;Q(*EZEs-8l7MN zCcAqPV?O!K?us#l>!W}4>qI=C#%CO%F1Nn(tor7$6Zzt6-{fETN2lSj@>4%G&O4#! z-0JF8A?YSt;n)pX;q0nd-<--xe&_C!a)!5m-)zNWY?6$>$NIjg{kz8c7N`tk2XJjn z`xZDKx4uo2{1rymKiZ9_69HBM^1VBifePgNfc2dKP`=-?zTNHVk6GVE?caa4zCG>V zr>*Y@z{>)T5_ww}1DszWwdrUh8{)`?t^f4zz#I zw7&0Y|GvTcF6Yv_WD6Hs0am>6=4WW%PASg9vO7Bawmnz->9_oft5~UZ1P*?jYBm~7iZ;_`Ma706@Nv{-3ta1}>^<`}=!_VVE-q z5fT*@6#)$u6_pefl@yH(6%7?%0R=@vK|v)W2aD8-jFQ^a|vtfLaxk7M zA1%ol`QFUekdfhGZ@a1K3;Nrcm=BOhqn8vu(ff)fgxr65vvWq@K~Cb{tW%RA=;`0; zGPMAuf1%fqx~KdE9vCjk{x^EFzjPVutl&X!=A{>q@@Kury;-k5(b8!2kF>L&^$ZO8 zcfCN=$5DH|*$uiwl3R}9W)Q8thK1NM51oL%_d=^|+XkWQFk$vmFC3 zBao*lz@4VR|H^iZaRq;6$BS#ok#J1%bYql5uPnfa&63hdUZ~0XSc1IB&__W7{e9RH zNpAMVh0VH*WR{R^8tnX`?T&!ZgzM~Vvt(4J*jctDH~R1owmar*D#qHGWsH0jF2U}@ zwo9!-a;vtUh{BO9>&M&7`XtNxkon#nj@hn`ofg)DHTVORxD3DR@%uyR_gVZl!lRGy zJL?V$?ozO@kEP#}@H-y1B~vZz6G^|FIP_znPoGa-60J|ez_G)JrUJXR*;VryIgVMb z)|3KPhT!VHJ4#Tv+r!i>>;1zwVQpq@Fucb8+L%dyqG^2LXlCIhWS zqsT7`9J4`GN?r-`=h{pwVf3foY_6`~y$i#w=7m* zUy{X=EtX*6(6a;!ha}5Ou>T30X$fwB)-ElcC44QL_>jOcL*>Vp#A}y z9s`JliDVH2{QWmIas2~)%x=es%etFvY>g2MAfvYb<14|Z_=niobvg%TxrttEr=)jy zkT-Kla>hXZ@NUN%*9Amt^fAU!!8JlQ#!>YmA>XFi4$``>`!_Fkw8=slZUzGDViMYmgi{laJPJoCXaB-D>ZqfTTUk# z_u=V)AKdHsz*Tq;wnR-4TP(W$@D?w2lP=S^OUS_)FkPmwy>zKJtCZ4%VgIyY5B=yn zz1gdh91K~kz)Z`RR^T1RIHoPp0RKUz9ik79grM$ZS!WOl3bSN&5lX3 zKhmFpOsy4*v@UenOL{uBNCzg@Gn#DCx`5dx|J-MWI1`Hp>((|OWSvHF#=-m&ReSq$zu1<$1S_}=1}bB({`4o7m#YWE)Q>$lV*Af zvW>Ma2Cd>d$J-P=71r4Gpqs1_e-?koM-*Zvu6V^rK(!HORlLHNfQOdtHgl4VsGRf) zWBC#2xopS0Shdk|aNT&N7ps%xDm>)vB}op3{F)&n%l0pElv$HSOOgDglpfS&W#3Eb zBr^ocG@rwK01Nrr%6vS4^?t?Y+~`35cTu`!Zddnf+xPIhMc4%3!g}c2x3qAa$J!S0cYrW>ufO}^j3SF;yv;LX`u>p}B zq{*V2NeNz)6`hg zjr`P2j?Y5-p7b_tag8^c4^%fo?`Fr)X|dq+F?{283D$G9XSy?F_dy0No% z#l}?akggaeB+JJSZI~70tv=|cx+BGoQ=?tUw|lY0+OZ#DNb)lMSday`C;Lytdom?C z81h<4j)0sd$+eR#Y_lXsBmFu_j)R=*kzFhiV7CXb6v+E@*@_;_fLtV{=Rz))0+`>ww^fIKExn*pjl>p^#fC=(92RkOo9ZN0jAxW-={s~F0hx~*j2VZos zlagHD>tOYg+yMEMA-mAT#ed)t1_pq981kEv+|Cr%D#;~23VUCYn^1sHB)J;t9lA_& zQpc@c?7S}1_-dJNVc+ZWLh9p?c^3AY4oEJ?$)Nv94#MxntlR8f+t}HAyqH6hoA&V| z)s8c+MjToRc}wU~#(h^In9!nEi+0eP!s&5Rdf7&AHbau*CfW4pR*Xf8Zbi5*CT9xQ zXG{96vusR6%Ub$;EnL1*SHOnKI*%aM(+faz4~5Uh9y@JoW%V{w{NKHUk9g9t(iK_c zlQ7u%lg<4SAKGlcCYVuWX*(ez4x30jXuBBrpfLsoFl`hi^5)AnwW(tZ8 zOOwS`FQP6@e=3WbVjO`Lb6)$kUhW+UazL`!Z@{f3n#{*M<+xWXxG0EdF;78+>?sJ0 zOa;M4Vk(Hxr*b5o_Vj$~L?5Ez26`!}2_UrHsZ?1SL5l)Q85gZ0k!VL$6K z^>g^jx;ZBuSr+|jpE_La^SPJl(w~MpM_i_fj32IeFLt%yo}dJHFh0TfVPzAr$YO}# z6ZjTp5j2|d5$X3~jT7l-TO5o|GaDa~z86cJNUuDN`w)#pe2es3a9fv_?qbTTHnBmF^~;}q$&tvF;XwgoL0QGmN}QkK$bqHc4rT%ju| z9KhLM0sTM1osj=1;4VCiLZn9`z49OF8}S?vk=}xI8`{(Ohys-03+c4)+WHw@%qny> z9ii}cnBkz{O9zYlM-3apjr96XJUqnkj&EWA^k^f!0*{a)W_(2Yf5uQc<zY0e$ zHypGf{hxhU9ATtap2vf04Da|B8RU;O()*B(Q@rkvNWWz~(zW~%-r^?If3(2;I1w&j zDQA8|vg+r3eMJ8{pYFbe5*Fg)4A{SgIl&0=hePzd^o?sD~fghFnt z;UF04|J+K_XB+7mNMGkM*IS@!u94ot@7kdZba`EAfX<)s{GfjroS0{%C;oz4dH>Pp zqZSzH$vwE0?;rLrFErANkzRUfx{G~!wV@FBD_+`rsREmddn!abP`DEGj{+QDYNS&* zQt^-U;N?a-g(sJ`D6YKAzSdBnc%}It4$iMI(kXno)Pa>vTVC@gA(J6Z2@%Wfk* zFhaScg-~}Z+qlK`p&-Djkij>o;j|43hPqmkYfi3-&Hx>FfvwdRlIqw zF?c-Yl=aiA`S#t)f)O-qcERQ)*yQip zy3@>aU;KGuk!5CMz4|26)5Mec3K|;->SQ?PbsxrAp{4z3BImG z9s1!oC~JiV!zyVR@Am{mzyHvG_u#+&B85L)sC=T*I!bFLuCwItbSu$yZ{4Wuu-FNQ zzs2Xel);n2@jHSXt-lJsabG*S#z2p-0846S!Pb0cdE7!u@o({4T*}CSk@y`=Mo$cA zg#rCU((^7Q#2$~|&2RB@E+yOEjNk2V@nuCyguNZVZ7tkYq>LMELy>av_abZ`MUxE) zg0QZIHx?rP)bQ1w{@My>X|8GML*ADj(Pd zH#H&cig5t5-=BQx6Sek_8BSEKsX`N zT5nfQ1YE17)nNcon1M(_q;=n_Jnchq1!4!cr>A`=l0dZJwm<1Zu>;}*x7CAu;~mPo zP6`<)D%j%3cRsJw)&<|IZ1v)6?^gQTMH0`wTUll8{fNJDx3bq>^$9w?oi9A9Ja3Qs z6!F?;+`CNKU=N0iq|f-)GUZn%xuZbhXn(iM0x!Fu{Qmpk?ZRjLm;03c_9VOssi%YQ zyzF*XRc)#MX_>ehb4Xv>E9z*R{quw@44ni#oK@etmlD2C}p@_05`apnT zB%So3Xaf<20Zs(mqv>uyz(s)uf(b2&YYqIUmZl=uq96l-gh)dJKj`R(fn{YcIrxJI zlmreG#NR%yY;#h$K@mlLpjK6WzDmio3&@upSAwlU%B3cxPC>@XfuePMpH#Ma4b0fO zCu8eWX4z%4;6XW>&(iPsp2w8Stw~?=2Od*g_U3Oe7Qf};k1G$^Bk_CPH~jSD%CpvF z=OtMvZm`8h2AX67Zmw=8svFLLEdiBCWAjd63r}R_p$vZU<160)el#~GkZF- zblF}<6LpT@&%b~LVu>&R{7og5V z=XoG|cIJ*P`B@-^aB2$y*}NS&h295+2_&ZP+Oh}oUr4?Nvd^x}{5|Q}%o0wQ%H;D? zFJXZg+E1&|W!jQBag$a63c@}JrV+D-KXpp^E}lw7@DRMWsSFwdaHz7XB?oT}o)}pBnM0p$;%o6u0 zREzj!%}V5CN}-G_>m6wLIf$vX+P2+DjD?U!L zqu_VusJiqIm4y~Q=1s*f!k{&9vkFGk^V+z6oBUGGhxOA+x9&|PXu<7a1TnxCg4IIs zjeyq}{Kdl7nYlL=B^mty65mB4!VIJoGZfm;0#NmLU}dIyr)ik#Yd`RlF9YU_)aX=9PQ-cg)R%AR&D3Px+Sm?XkbD=z1t zOpH{iI{p#hY##=TmHnl8O1&(zAb0y@)Q23=e#rVUdVR*WDSkr@8UagOd8O6oX7YY5 zU)H7!>i;LWnw`Tew-B7q_p~XCT(^$}EXdo)EC;DdZ<0tAJVZlis!3`V8bJH?f25Rd z@UV$!ryk_k%M`x;BV{OFl#0^@7KQJJFsBVdC;m=*TCs%6y$WW`4~GO9PU0GMy^~UM zD5ZaeH}2W=uKVC4L|fK31I4JE{fVMDsb;i48b6jsW%v{?i?+*SoocnvR%|45xUpd= za}dPaW$~#*ZdTTBAUR77puHiCOL9fKui@ipvcMd+?o*}TFoT|fVVK@xVdUxeiM;qz z<#IfxtNK%AimMsct@v9{mDr*Ul5xjSiRbBR(te#txq!bLJXM@RsiWv{MZa#O_&OAJ zpC@$&rCv>`e&xvZDWo`s*Ljq}`c*@}7JpiEZrz(mqjEkarE4w|QITZ)edlqxlv1zP zQVWn$gg*tY^)Yk>rQSuU{cHH6pDB1u&md|ZZ8i0GQp3=``@->cFPu|8wYvz!HH19}WL$$8O$a@`@dDOlEsE&+|Zp=e>5#^&TGlwGxGgCM^D1nLdZyB>3Wt z6Vz_jT}4=?p>WSgt|By7@3>t>Xr6wY%>Vnf5;~jgyYbf#yUr*X3mr-oY4W0q#ejuU zWgs7-&bYw+YEFRcLz`v%ENooEy-Qd?@JG6hB(o|jt5^AwV`GA*@I znHE7Fy?1K{g?cHPMHZ3m>3P_=S8Je|Kwj3?&1mN}8tDTWs>O?ItxKIe`y0hqoplB7 zA8STQm_NVy8)f<$Dp6LT!d4^U97-ixsz+<70x(hE9<8PBg**xoC$ot3T1wYS*`u}G zyO75|gW~q#nYtZ3@LMHfE%}Zbh~7Y2rfT>MAl;)2ZK-C4tg{P1E#})HW2zW z2a`!2OAdv+9`bmtd;7HFSXPat5+}oXuNU9{oiY@U-Ep0*ex&$qQaLrK>16!H?tBG0#tJikKG{oy=& zVR!Rw7nCr(8TQBp?CpIT!>cbSLs!kl;o^x|Sf?vdn$g&X-}9yhE(B&1%fVZTZ{NBj zRUbs*c1j;N6Qw~bAt2M_e8_Cl0&KO#L$Co3;lsaIre8zZMh(XqT%OR`p5A*b^PzE=j>Tj4M|n7{bFGSv9}$@fa#b(9IsPRC(3 zYIAn_7EB^uJ|Ck@?-0qz%){9B@;QVJ9DryStVa>yt62XxKUPW)Fv z+2TX%l$9L{66@*x-H7t21?lkXgeiJp*7K7xc(p-ah2c~fQOKahmYo0;XilW~K?}Pk zQLs=F4=Ec;Q54900LeE3j-&9WiWq(}E$-jM^NgRB80(@Tq6B~bj1o}pbbvQ@s$PN> zJ<8xK3>vTi*SzT^&_dlP0C%X{OoBVQ_2&=vC__iq!(jvd=D|$ggP26Q->?v6_N(U~ z_b3~!qlfaldX-fJHtovK*}f5x02P6bBd11lEOsO6Ui(!^vJ59$jX%r!e(=_h=AEN( z)9)_)c$iPUsEmrCyaPp6bZ61DksdOp0-bG$WgG32ct(je@uGt11!koXp# z)T=~WT6spVG9J%`F73t9Aj-xuL17W)jueAB`JO+NQ_uA&FFW`-A7@J4 zTyJNkmA`Cr=J0Kb)3@$fhx1JT=Y~3ctk#w{>y%*UV%$*h7Ec-O?6Beh=FAb!cdeDD z>-$wIY(Hnm2GwTqn)8vtN%y5 z{Bq~NtdSq_Du9z@8o^soljdUzT!_s zIxDR8U-88g@ZI(m|89aags+(7yv;9hZ^s!hIf8mZ9&L6DFJ$1b^ zoU1I>;-0!?vz*>&v0v*_Vx5;+thV3kvS&L7SggSp>kiDJr25{v!*iV$i?yMb-yY}u z+gkibUCEUM4*yYi=RD{27B7VIb!xnGk;Pi#!&fbE_F1ca>Q*dtF0oiUmAd0sIiIv! z10(8IEOGX;SZl`CWh`~#$qS|9>rN#(D=pTpNS?ObdG6k1XFU3lFHClhnL)?hF_qAz zo!Xg0I?#@JNn^?QrbFz(_>T9pY3E0X(ed9>%MsRx47AEncAb?my4 zO@JRpGLFV+oQ|<)Yupz+z}p&N^D=C5Te#l}=b%A!0Nu#XNUOl`THzcsf{u^JY4#4X z$8!gS?*z)@G~d6%Inx@nHPEsB#(##ry$ipCFY(WGJoMmoHiC9HZH!^ymB5>h`Sx{7KkPARUSno1vfJ7f3@vwFcO| z0=#VjbbUd%?uUZCCK{&0oCfL{$VaSmhH9?c2JwaKbk~)`_&$S24d?$^=bU4&a-aty z`1y5c&362*8OukkcTO7=gm{?N1sbLFM{@OezHPm8sGWXyjOVvO&t8n**y3JW@0^LV zXc5nCaJ~`3<4!o$I=jpH$2hPl&pqZ$@TyCD!dY*<_oQ>9rIv3x>73wA8{kNOw*nUt;q z$~TeKAcZE93v$>*Tp*<;QVCLNA~hg*PmomTMvxi@0w+&BT7jBON?(BBbd{uohv=}g zCgMc1;6#w569j^j3lbRvg5zisnE~Rj;6%Hp@#$P<8^(l(q<~~&H_B7QO(10^vJ<4i zL~!u{YcY{BkY1gLj;;jB#_kCBd(Ii+s=_Z%t{)>U22+ZM{0tIrB6N`8goz9XsWlNg zz}0Ia^Fh{O-@)SIq>_=?7YN3Mk<1)ET@i3EW(o5)y@4ilLJVhfP{Tn!R#A{ii2 z0s0^ine7CMH7V@}S!W_gKnmPsTV5(1JYgj|5!E;bomvyA1L-!A(;$5y*no@);2coM zWpcy*1rlQ-xYZ7iT9S2W?~N9BkDu8fy>7C3>yC`nJ?Xm&2Ff~%p<^2a;&Nx73e-r* z-T1UO(_tdGV~h2f$Ri-ZgJr8mka`n&2c%OcqJ_?b#3Ay)ZDB_3F9MZo$RIXMj~T;+ zYhgABB-cc6hXSiMk*OffCb9^m-9*wr0UAQrABLH? z#YDz~QeF&ab6K%YM9mZ|7tJPu{Wo@DtZX$8BxRiJc^OESM38?v zP=SOP+X-^mL~a5pH<7zRYE9%JkX93U1|(#>oIM`X!g6KeV($SJ%7}dla@a(E0Vy*P zn-g1yi3EaFn@9+VZIYb*B#<@}am@$naijd4&AF4Op^2glv(3A5wi9ceY!K>><**9D zL0ivewh1K4MDjtZOa!m!VYaEVRk;f&%Y+^SX)%%KK^miFvo}EkaU9e$SAGlm!=2de1*S{!Ngppj7WjgiTCkOUK%0n&gYf*z}tATc=bl$gjXAVqUzs}_)Aod~PX$;wTza&F$0 znaNzyb7iwXp%kkVVKx9!OsKWB8f6t1CpI+ihr_z%1layAkmA3nV1I;gQS^A1;`1Vh%S2+ByfqG zSv^SWQklE~60*z`|9k>e1mqdj-+}b%L}cFwlC)ed&@cp*MJ6&9q)I1VY*Y5WsZ%gx zq+Kg}o&}vOBA)nX5m2j1X*Eb-vTU{mq;R!N_JH_rkjbqexjGSrz8@qdRn~bFq(CDs zBieZxsN1A;8l*2xHtPb3PnU^be{`9NM1ypg$kiYj8)d5ukl;-kG2)-SK-mK6@z32L z1t#(wNUe#y3({dC7eHb&?EQfMMBkY*F1 zvN=)Q^kP8NJVQ4V+15jX=Y-R~SpXo&O;y&o5nRNW2Q*0t5K*FNAk|0-5{-zsO;e;{;jlgVfh zSMTjInhun8L?($K#icS?4N~DIncKJKr{?6c7B`{IY!h@kO{9>l?vnkKfV8#>O>s$m$C`12y#<>ND78*=S0U%Xe))@?k%%Y$NdSsCE-P&SNi>mMkd{Yeof|;9bRxE(+d<+_$U5a96(({5q(dX_ z_~#j*$VX)}yaSCDJT8;dAiXB?AxLhutn)QU#S=358Kl8PEJ2utpVV~dZY%l>1}Z!y zn}vZ?naE@i|CbG&Fg^as z0m@h+kQj_Nf%M^2vuEqL3&ek!Opb#@;@V}>5t%&)5^W-{g0z~*J0NFuqCb@Ib0Gf} zvg;o~s?ua)AA*T!qfCN9nsg$vr%U&XcgO`=2ojScll35NI>FO9s6n!Us&R6`Q`dbU z!Fc4Ohm?RMng|DJF_9XOs9kbqbi=?porrdA2g&jf%Ks;zW)A|f4aKN7ISK*^$HNFc z1&RPk)QPD543MI17VR9{+$SW8lUninKgF#}8WY=RsN=;-Y2s}txkgU9g@jwAZ3ST@^LV>zua48^evR4@VI(U z_B|k#CgK>5*#bANcyxk5T216~kODkU-J?Ut$sKpdWEF_3^oWeM0(F^40my|rWu0P> z*ixBr5Z}9H@*g5c1rgo)1W2MzM7RDIq|0SO?*V0($!4E{l<7p6b(79Lvd$l*qZ6Uy zHv-eny>fwqL5jFc#)FiVn+Do^pu+oPr4=C2_se7pNN|Nr_JK70TPBANSx?HO1f=^ZncNSOT_cmn$m*m_8bQuJBa`<*T5CaE z*zQH2bpn+=Ybar7ary2YSIzHuUJx;eeuYk#iP%C=*B51-0U+JD$CxT6tVV&bQ!<$Z z5~vZEk$pT+eWOqk1=;}8_FtLgg9N`OlTwf}orugTKx$1o)gT40%h~@QNK~^%jQFP& zC|)4F)L(!kn#eC8H74Rc3PaCC0zg_!gic4<-jK5&0}`ndJ^q;vxRQ0uuC&O#DJI8cZYt zr1V``XEsQui6nuvzh~%Z`DXz2zHcBZ&|Z*`4`p%~Be%U5la{v-%TicT&2ruK9&6hLWf@9;$>e^J zl)oh6((Y`_{aZrpbtut`ay(n`hag2hf_PExtP|vfiS&R};(`>9l{Fku6W*2Nsl6Xa zDQ-Xa5Z5T6GF-swF^dFg(22+_4kWU_Y_<|48?W2(I7$QQ(}`6pVjf6Mfb97INQa5s z?E;Fx`+Gdu9|uX+iOBvLka81gB1b0jE=X>mT%Zn+v_UfY38c_O{tid~A08|#1&+qj z87z~_LFkoIo+3^I=`-mp1hEa5byk8@=tNXw3rLllV8y}HM>pe*B$vyX(dpybD4E;_ z(l}Wr1dt%yQ0VFD zk_S?v6Vdm#fYh6G?gL4|lR`X2tO7af(visQMW7S7Jj#<<3rL5F`~-5rL>!l6 zVxB2mMS!H3$ZU{m6G;Inn1u_bJelPI<;Ke7Fi7ESnN)%_m`E*%FW%neso85F>vSS2 z)&^2-()j|!HW%;t@?`%DQ1)Covw#Q;855Zb5*sJ$EC*>ak!>KAc=CqF^KOtNT=VWB zw}G_J$MJs;dJw2IURHVLPJxu0NDD}-iF^o>u~4@938cY99AoKpBy?QN2tbAd zwI#@AQ6R;OWD*C`U?S-tJtk5B5`%Z3c`9}XNVbVQ4&u9*blmaJ8$k4$HILbsQj(X6Zsh=VWXj=~`6z{{*ZZCNc`7Ng~L9 z3Q+70*=zwwsfnxxX)}>*kh3OI1Y*mP{Tu};GLhpT#WHcRSAZgOWwREL`kgX42NJYP zCO?4$n~3*B6xu|FfVAexR^vcU?3RgZ8c@R?87%_oDUiupke2HO5koHvq(diSd)Wh$ zjN5rVT5PeFnY$U5C187AU22`hz(3;?-cB4Hqr zH_3h`O+x=y-Ylc}P^u}G$#RgUTLclcUk`FtC!+S(frKBFtqMSjbt0_p0?9rk>ztT` z<3GNKW%L4+Y)54B8c2(Yd;*eDD(hSTsW>W=Kgp_05Rtt-3SFiXQRpBLSH!)tQUp+w zPJ~hnND7yA7J_8!MChyn=`NRbHi9JFCy3C=2T8kM)+q*Qbm>Sa9RrH1kj$o z*$mQECF>M`G#{5qDM-*GrugSLP}5Vg($gSkYh>~oh;O}2-UYEW$mA=KkVctwgY-1X z#4-h&>#L^tCjcnu4Oxk<@Jo49CUk{g+Zmb61?l}vCM!Uy&Iuxh-X;*%A(K3ibwoVz z&rLulK9?O;fb^J1HAu%7vQ7g?bEiyNK(fD*$(JDA=Vj6hQh`SSNb!&FR4hb4%1XmQ z`b=ajNbXOv&TNqQUj-3$T@KP=B3nUD{2^Q2NaRnA81c_hGV7C-9s}wApG;l{$wzeL znPNLZ&gw*D{|87kUV2G7g7`+GVmcAq!f23qJne#X^!R5cP^n#Zy$mG8MkZ46M|8+q5K?cHDW%(e{!(?&@BtBRs{{jibtskDIegdRSC!(oe z28kOfTb%*v@eshF~O90u_(mq`Uk@V{hI6NCQm!)^MMy~yl!C`Fx+l|BF|Gm)=A z${&@jE`r29CKKNoSe71_{fq-y_k>L5&A|Bce^N&4pwwg{dqEPPl66WzdTRs`g{}nY zep=Q!3DWkAOx_@!TA6$a;;MX3M!y2Jn#kWEjyhSV-%JcN6B!ATZz2;w;_GEAx;nhk zMCOCoT+ho&OMuc$WIaeQZs+ohkF6jXCUOHvQG={g0uuO=OdbGCA#*`e&dOvXNSTS;0uqRq3VW<7LE22D2BgPC&VZDDg6khVW*-67o|7GY4N}%2 zlixwwKNmy{J-U29_6wPWft2V(Y@8E8T5-RfC$BjmrQd^i;-4g-8bauy%!)C*EkL-E?NX)OY*=Udg zoe0-aApRF+tE)lkO(ct~dS#uPK+=BKh!OuB2dWZ?3D@-?Xa6UgeMn}1$>dv*%D)8> zHDhzoWmde9%H4{CK$5)#5js&IojSqzr_TbQ3~$*i4dk$0Ci_8R9I~VPL3(u}{5%KJ zg_|ZlP5mxNn^Pt~f>fxwXD$9#WaE)hAuZ@_-~sfWB8Gyn*)o|7 z(l|#VE_M}A>0Al1G?3glK}2`l01|YKOl}3~)QM=Jdq5f%%YL2&DPAIz(;yut;_3p5 zO_G(^JZwTH5(HAROx76(QfeY`AbmQqQUkH&AZ5#Ct89?SYXuQHH@kpZbR_C=6r?*v zHhU7pe~nB|gLIk5d60^=vd%@2#C0+mIv*2Js!Zn0NB<|K%V-&tGH`RUrx!PYMBx0}0NN$paw8J7rP>(wZ-mQ}Yr3q!q~MO(^wVFO#o9@^6rdGaij^B4a?R zO=J#8=YH908HmFrlQa-lun83bMVrVmkVF%y2B|q9J9-(U>}HvK1QL9UOnN{HO~iWv zW((IrS!obZ(jl3IgXG>WlgS`0M`W@9q~I=@Tno~Bk4!Q_%FAW42c+s>rkWK4)&E;o zx*w$Pm`t7kNqayhFN4%RD3jA5!BsLj2U7ZsAXaVb_z|S}S-jf9n28ws3#jW^*(_io zhF-l)LO_cCE0ZZ8Wlb_k0LgemCYwNl-jvB+km%ERwTEX^-wt&4jI8t^NZLCxISEqw zu1r1xX)}>uKoUQcb-b>^w(yBehJ&=XgLvW}x?iv4Gg&DCB<-9`Qb8g+WU>dO_H&us z0TS}1OzsCM>y$|yNcguzT*m3QR&w;6tkexs@S{we30RhX7DV)7AV{T7ytIA|1?e)8 z7?9XsWIu@@hkwp6Ne4M$5L*B7 z1Z5y!e_82Pkc7(w5%s75Db$H5;z^MB0kTySh<~6=J_czWER%0Rx`r4;!*{NcRMpB!To^A(M3=wbKO=)yM_u(+R3U`QHN6hG!0WnvsL_%#g{W zAjz>Zc@tzEo;4w?aPD({dUiG|#XC-kh|Io%jz3;a;PHGBq%6)ukiT*b2HKS#glAoX zTriQTAQh`*okbuut7Vb_lCV}L`9#*q#^#C&bm!98I*|HXUfDC2~@LLMzJ8VTV!$#Ncc9HtOaQ@ zksToZ`La$iNd6v~+y@eTgG_2%K%Ip$dJClZCYgK-l6$jEtc$VT7t3TYNZ}ztMBhh% zH0ngO>kP8`x2$v3V)TF81G1wv$s-{7)iQY=qyldY z^>olXi!uJ2Uy{+cP%3{#CYB}W`!{5A8A$S*G8qkW;cb~r207a*ldD03-f3? zzm|2b1ZmWX=+_L8j&EeELXd)QWl{-JdqF0zf)s!6l2Hdx&-XI<8zkfxnS>=_((RGS zERclXWU>w<>ra_n57OKxlUqRonO#2qQw~&S!HZNee~Fqs0@C1+$!j3>s!Yy;XR&ayauEqQ6{TF97!_C1u4V3I6YP_(pfE&qeM1n#E5^61Lbd$ zm7W1w@vyl-xk}wJtJ>{DaS%F>F)vG_&4<0}&s)c+fq2%Q zlQ%fkgVuJ1H-@T1`36;WxWe%$CF*D~&StE~s4|gwkP9Y~OhlEfHiI`p-K1k8 zhd@|AS%-r}yG-aYpac_n0i@7GPJ@)1$fqDpCejVkZX%Wq=x0AU`+*=?el7#;+L@O_ zZxD;=FNkQ5FeoJl%47maiHXF3G`UG`UjD94>G`bHO{jb3K__;g;U@zRBB!UGRSfiz zcOH|V#0D8kWVQ~Z)A7R*KB7cJP;elMjx$*pvz+i*mZtv9H zTQL>5$@bmZ+CAX@c!8^@NJ=VJGdx+^Lk5E+xI$z!2Iz!NtZetxDYy#;o98H@12QdI zBdu<-RVNL2n=HAuvaPyRkDE~QPlM->FgdSykh0MUh8Za>18Ny#kmQMzr%VNP;NfGU z)cSon?1E0T+ud>9bOwu#;+6f?rv9Qesj=fj@t9<(v0MGs1Z(FE+FVDt=+P$av4&g9 z+M0&{@WxnC2O@(&{7obhB*;W&f<&0eVvsbQh%Vg-l5Zk;E}&XB%HEZU*VJWhik%~8 zPd902tdNUHciLB*$N~6iH<3~h+e+DrZh($3kz;8t95peaCty}>A}^3@6L}3Ja+U1* z1CTZoIS+DpwXE|8NP~&^rX$SlFrlFsWGQQ8voRo9CK3ZuvsTtg1PNRxlPnPb^)lHD z5^o~6fVfIG$Vz2E)mvop7)W%sOkM?Pb(7?YQ>J2#WUV=}&PUK$w^JtHk>_0oAuF62 zW?j?W2okew#8jDQC=nS1(tJ=R<3aik@oxvH+tkh(ltN=XgQo_nk6IH-#HhX`fLdVKB?MmIc120irCll>yS%=+(tU6pUJ7GfK zfjExJnf(cpW+FbDu)LYbK#+`kWUG-NMLMxkUThLbxrxl%gi+mQGFwGT_sNbngJjPRSk4W*uk3?(!po{NE=##430 zB%_hZ80W_&vMDF`dhAUagmU{I{DeF#i0~Ykf!$=Ch$7Nf?#h2eRvHbZ788jA33*g@ zJr9IEA(KRqG@Xdd)`OJP$U56VifUzYJxI)eIvJG$HNH^y++cO0T}{wNB@NkP{^M{A z*_IbX+*Ep->VQypYJ_?l9(n$vHjsH%h&m`H{6)i^c!?*bF*l)RIh}(|+f7n)c4#lw zY<`hH7ovtPYj>xR?pM&YHMsq4(o|Wln+O@Tauc%ZhE;_@_+8`G0d=vX)SE2Uvkg?v z(7>RV440%n5#3w#68|k!jrKa*;KS3OagO30BUEQyN|?IA;#K*Q5C7>I=aAr3yuB?G z0aB~m+;}2$ zL6S}64v;JpsQ@V)U_y@rmA=eB9;+5oDO1L&N32yZYuz5ygtU@IQCB;ajCFuiH1ZMS zp$)By@zAbq)SAYXnwqzJW5(vG4Vs0h9`5@CX>=3v@i%1DQmZ^|7`ZmydbOIy=R~RDR{uA+f2YC>R(MyW)`M%nU4-N#cfJy~AlIdj!vyeL|A1h$?bV_B{BOkG7Z z&0+=bd4_Xon_QcFseWyI!!&dcwA!bkd+OUXZM!!3-{+;%kp|`$gS3kGMMWB8P!R~I z2n=-CF#{07l9_;Q?|ZzIe!#7>;03H`mU@uaj8tv*Cd&E)au>-9CScZB8LLj@8MD-( zR^W~~Xd&lpHJIm)Q5}|dsiI+leIHy}$G#8v!*kVbmX~-yoEk=N(4H2jhFbB~*w!fc zEWI3$pD&D4v-!9=hOh6)*T_+4k$>Wcm--WgIxwF1pRcA{g7{Ncs$u=Ik5Bsh-!#*osjj*ukIluF^wx=&*^GrJNrauMY7JqU`wO+teWb<0LhS z-?2a)?!bO)-qtC>x`W(U;o$y-*d|{a!V9srT9H^8i($CrD!`i^Ja?`-B8aZ0%W#+9 z*djAN=Ov5OZQh@%m?`<^5!fiB;?Vvv3928DxJDghy$(Hc4T@NlfK~F3Bz36eRetCi z42J8iyl5v9E+n8QXd52b&P=5bX^deq8z4BV9 zCUhsJT|%M(^kiPKL#(1w0Pl>Mz5M(e*w*uv8t$OR?Qs zZ8jc7?YWyjo{T*Eth^PU#(x@x?ufDR$F76IyQBD`mG}1XriuJk{0_98H_Bn;YCF#xQ!o>T^YIv8)~Snm(rVOr<|xDU zAW`EQQDeNg>_zBV?%?NWIF_!2?*;twHSit$^`*Xpzvdg(pgHk2-8s}+$CvUS*1&mE zsNpE&WKwn3^H+)0cZum#+b@9Nw+=Zx z8-Q1?Acx@P{1|=XZMptwYN&S*j?JokR5UjK)~RUCEUv7Ft0pS_RhE3d8&Y6H*QEt- z=;GDu;kGwG6g>M{9=icgV~t@nywJakawYWT;$NtA7M{uE!Ye6JC?n!|QSWe`zT4;cqW3^5Jj! zA89BuUY4s3-D#`%ZRsfT`Z4@Td|S%+JLzf|-lS%1M>v&#I zI9ku+Sel-P_hGDZMLghYbr@b(Q=3ft5UgNCORR0 ztTBo@JR81BuM`qPDMEA&=htHhS(9vh|60^Bb|dnq5XSn0!q3A`VD&$8tiH&DH)CS! zhr?-NV*5o*Y}?X!^=4Eid>n7Zw;JotEKbWzrI);lN%Rx`^ae~6*Xh~*wMm_5iQ-RV z=ME9fBU{ukug>4KoxS0%PD}^!e~4;}9qL}1GX9i_x*JDg`(!d2q}xQMf~5Q{>&ydb zwcw512t$SERUlb5nQX_4Us;s5jP`@{n8*>3HoL4-1yZTXhc-ioc|Aphw) z%ms~^`T*)r1E`s1Lv7~h=A#1OcGosF!ZL~fYnvK2A~5LE(g;FxY=wpU&sWo|c!43! zP5mt>y_jIrk#j#0PfnOZ@gOack0NUX2&d_*S`=i%7JVe)MVT|QF?4H&T$)|Y5T2Wj z?R^pd1Pa!Td+*&&qh_ixaKps(M=yjDwbrMT0Dj$eWc04cXyP_C+`Ar=gCFm=ULCA$ zEt~nD(6E*c;~_iL&@t6`ZG~qauN!sga1&#uhi=vm^u%cF7mA(;<^fk=j9T~cUO2Jh zZH2)(sBI9Rn}dMh=t5&G@72b#+KX8lu{Ihnk~X-Zd|)=_RSL7UZMl`dougi5{a)ok zxoW6aSFnS>5~>d2n5Y%JK`Jd54RIxZD;LFHaU<`Bj{3nBMoX*`t4uN8^^DyGi<7V2 zi3SMgE`0Hm+tJb#iCG=Pd1Ia$&HHxZP<@~-?Arw)L>GEVh}4BWc@SbWq0kzy!(I7+ zNxINY!a7~pu^U2`E?giXUl+FRfl#CiT_lv~!sfjY%7^osz1W|s(&5Gez#3iXAfZ7Q zHe3&(Sr^(#Xw!u?`yh1a!dVh7=)%eyAoLFBl{X*@+X&GD%L@Vhb)l7nU|m>pBZLTD zXdxk57Z&Y@5T^^xBqZv>LKlRT5xmreEHZRBuLv+#7aB<@)P*?*ARN|(1`^72VdhN` zDs`crglb)wb~A+f5xnSTWYMIa2+ImIjQ zz~;7YByYm^nELl=%4Yguox(l1_F$xu)Ar2m+jI70G7J*mBWg-ukK5a(%&pnvA01tA zM2)82fAWaB&>HzN|Lq8>kHM3Fr@AmO%Hs={yX9=cQZt;Nxl@e}3>eciT{)1m_GO^)Ch23eHYex9ECYc-`L9H?^aXB6uHYv`MrES z4jeZctwyD%b}c@||9dw|Esl2??fEryaUiAlZZ$e4S*s7FY~GGDg7{Rq{i44Juv~X( z(e|6NaFhyLYsOKuEM}PMqv$VjG?BdIZQY^Sl(}uv^V4@s0mCNL16`Vkg36F{j5{AP zII#~0M%`tB7j2}}yS>mzq5g>K;KgOAQIk7mSElGh%vdjIDf&S|v^Gk+9mg>-Pjn-N z_QV74K?~xTP|-c`VRQS~ylIa%Rx#qAqm(M`=&R9Q1vfA{K6v3CHF{m4+lESgCsM>Q z2(9io@lN?Qm}>R_bk@0RhQ=U6R_XSWnz}>lD{KRW_o9@Taw_jdzhk5Q0CJ#lc)`lj z^~S{v<;#(h@6IPvFF!WYc}N*!9DNaoMK3QzhNf{l83c#;ZsTet9mt9-S5v5U4wkE- zi#pt1akNG&8IF?cD=A%CK>c6t)}gx0xY0Pss*NLDS3u(ii^k98*rwv#HO;y{H;0 { expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', ); - expect(build).toContain("-march=armv5te"); + expect(build).toContain("-march=armv4t"); + expect(build).not.toContain("-march=armv5"); expect(build).toContain("-msoft-float"); expect(build).toContain("-D_WIN32_WCE=0x0502"); expect(patch).toContain("#undef CONFIG_ATOMICS"); From e664c90eacc1312c5f8fb11216cda58629d73fc1 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 01:15:35 +0900 Subject: [PATCH 13/53] feat(wm6): boot the PocketJS Cards bundle --- hosts/wm6/quickjs/README.md | 10 + hosts/wm6/quickjs/build-cards.sh | 19 + hosts/wm6/quickjs/build-runtime.sh | 70 + hosts/wm6/quickjs/cards-host.js | 66 + hosts/wm6/quickjs/src/runtime_dll.c | 190 + hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 26 +- hosts/wm6/vs2005/README.md | 12 +- .../wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js | 3783 +++++++++++++++++ .../vs2005/prebuilt/PocketJS.WM6.QuickJS.dll | Bin 0 -> 802157 bytes hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h | 34 + hosts/wm6/vs2005/src/quickjs_deploy.c | 168 +- tests/wm6-project.test.ts | 27 +- 12 files changed, 4378 insertions(+), 27 deletions(-) create mode 100644 hosts/wm6/quickjs/build-cards.sh create mode 100644 hosts/wm6/quickjs/build-runtime.sh create mode 100644 hosts/wm6/quickjs/cards-host.js create mode 100644 hosts/wm6/quickjs/src/runtime_dll.c create mode 100644 hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js create mode 100644 hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.dll create mode 100644 hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index 78bfb2872..5b930bb1c 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -48,6 +48,16 @@ QuickJS runtime and 256 KiB stack. Each cycle calls a native `print` function from a Promise job. Success shows `QuickJS 6,10,16,26` under the title `QuickJS: 100 cycles passed` in a native WM6 message box. +## Cards bundle host + +`build-runtime.sh` builds `PocketJS.WM6.QuickJS.dll` with a five-function, +versioned C ABI and statically linked libgcc. `build-cards.sh` combines the +minimal WM6 HostOps bootstrap with the real `dist/cards-main.js` output. +VS2005 builds `PocketJS.WM6.QuickJS.Host.exe`, deploys both files, mounts the +Solid application in QuickJS, and displays a native-tree receipt containing +the Cards text. This receipt is the bundle/HostOps gate; GDI layout and paint +are the next milestone. + The compatibility patch: - disables QuickJS atomics because WM6 has no pthread/C11 atomic API; diff --git a/hosts/wm6/quickjs/build-cards.sh b/hosts/wm6/quickjs/build-cards.sh new file mode 100644 index 000000000..c37926d64 --- /dev/null +++ b/hosts/wm6/quickjs/build-cards.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +repo_root="$(cd "${script_dir}/../../.." && pwd)" +bundle="${repo_root}/dist/cards-main.js" +output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Cards.js}" + +if [[ ! -f "$bundle" ]]; then + echo "Missing dist/cards-main.js; run: bun tools/build.ts cards-main" >&2 + exit 2 +fi +mkdir -p "$(dirname "$output")" +{ + printf '%s\n' '/* PocketJS WM6 bootstrap + real apps/cards bundle. */' + sed 's/$/\r/' "${script_dir}/cards-host.js" + sed 's/$/\r/' "$bundle" +} > "$output" +echo "Built ${output}" diff --git a/hosts/wm6/quickjs/build-runtime.sh b/hosts/wm6/quickjs/build-runtime.sh new file mode 100644 index 000000000..eaee1bfb2 --- /dev/null +++ b/hosts/wm6/quickjs/build-runtime.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +set -euo pipefail + +quickjs_repo="https://github.com/pocket-stack/quickjs-rs" +quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61" +quickjs_version="2026-06-04" + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.QuickJS.dll}" +work_dir="$(mktemp -d "${TMPDIR:-/tmp}/pocketjs-wm6-quickjs-dll.XXXXXX")" +trap 'rm -rf "$work_dir"' EXIT + +if [[ -z "${WM6_CEGCC_ROOT:-}" ]]; then + echo "WM6_CEGCC_ROOT must point at an extracted mingw32ce toolchain." >&2 + exit 2 +fi +tool_bin="${WM6_CEGCC_ROOT}/mingw32ce/bin" +cc="${tool_bin}/arm-mingw32ce-gcc" +if [[ ! -x "$cc" ]]; then + echo "arm-mingw32ce-gcc was not found under ${tool_bin}." >&2 + exit 2 +fi +if [[ -n "${WM6_CEGCC_LIBDIR:-}" ]]; then + export LD_LIBRARY_PATH="${WM6_CEGCC_LIBDIR}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" +fi + +if [[ -n "${WM6_QUICKJS_SOURCE:-}" ]]; then + if [[ "$(git -C "$WM6_QUICKJS_SOURCE" rev-parse HEAD)" != "$quickjs_rev" ]]; then + echo "WM6_QUICKJS_SOURCE is not at the pinned revision ${quickjs_rev}." >&2 + exit 2 + fi + cp -R "$WM6_QUICKJS_SOURCE" "${work_dir}/quickjs-rs" +else + git init -q "${work_dir}/quickjs-rs" + git -C "${work_dir}/quickjs-rs" remote add origin "$quickjs_repo" + git -C "${work_dir}/quickjs-rs" fetch -q --depth 1 origin "$quickjs_rev" + git -C "${work_dir}/quickjs-rs" checkout -q FETCH_HEAD +fi + +quickjs_dir="${work_dir}/quickjs-rs/libquickjs-sys/embed/quickjs" +patch -d "$quickjs_dir" -p1 < "${script_dir}/patches/quickjs-wm6.patch" +mkdir -p "${work_dir}/obj" "$(dirname "$output")" +cp "${script_dir}/src/wm6_math.c" "${work_dir}/wm6_math.c" +cp "${script_dir}/src/runtime_dll.c" "${work_dir}/runtime_dll.c" +cp "${script_dir}/../vs2005/runtime/wm6_quickjs_abi.h" \ + "${work_dir}/wm6_quickjs_abi.h" + +common_flags=( + -std=gnu99 -march=armv4t -msoft-float -Os -funsigned-char + -D_WIN32_WCE=0x0502 -DWINCE -D_WIN32 + "-DCONFIG_VERSION=\"${quickjs_version}\"" + "-I${quickjs_dir}" "-I${work_dir}" +) +for source in cutils dtoa libregexp libunicode quickjs; do + "$cc" "${common_flags[@]}" -c "${quickjs_dir}/${source}.c" \ + -o "${work_dir}/obj/${source}.o" +done +"$cc" "${common_flags[@]}" -c "${work_dir}/wm6_math.c" \ + -o "${work_dir}/obj/wm6_math.o" +"$cc" "${common_flags[@]}" -c "${work_dir}/runtime_dll.c" \ + -o "${work_dir}/obj/runtime_dll.o" + +"$cc" -shared -static-libgcc -march=armv4t -msoft-float \ + -o "${work_dir}/PocketJS.WM6.QuickJS.dll" \ + "${work_dir}/obj/runtime_dll.o" "${work_dir}/obj/wm6_math.o" \ + "${work_dir}/obj/quickjs.o" "${work_dir}/obj/cutils.o" \ + "${work_dir}/obj/dtoa.o" "${work_dir}/obj/libregexp.o" \ + "${work_dir}/obj/libunicode.o" -lm +cp "${work_dir}/PocketJS.WM6.QuickJS.dll" "$output" +echo "Built ${output}" diff --git a/hosts/wm6/quickjs/cards-host.js b/hosts/wm6/quickjs/cards-host.js new file mode 100644 index 000000000..f341247d1 --- /dev/null +++ b/hosts/wm6/quickjs/cards-host.js @@ -0,0 +1,66 @@ +(() => { + let nextNode = 2; + let nextAnim = 1; + const nodes = new Map(); + nodes.set(1, { id: 1, type: 0, style: -1, text: "", children: [] }); + + const node = (id) => nodes.get(id); + const detach = (id) => { + for (const parent of nodes.values()) { + const at = parent.children.indexOf(id); + if (at >= 0) parent.children.splice(at, 1); + } + }; + + globalThis.ui = { + __host: "wm6", + __hostAbi: 1, + __textures: {}, + __viewport: { w: 480, h: 272 }, + createNode(type) { + const id = nextNode++; + nodes.set(id, { id, type, style: -1, text: "", children: [] }); + return id; + }, + destroyNode(id) { + detach(id); + nodes.delete(id); + }, + insertBefore(parentId, childId, anchor) { + const parent = node(parentId); + if (!parent) return; + detach(childId); + const at = anchor ? parent.children.indexOf(anchor) : -1; + if (at >= 0) parent.children.splice(at, 0, childId); + else parent.children.push(childId); + }, + removeChild(_parent, child) { detach(child); }, + setStyle(id, style) { const n = node(id); if (n) n.style = style; }, + setProp() {}, + setText(id, text) { const n = node(id); if (n) n.text = String(text); }, + replaceText(id, text) { this.setText(id, text); }, + uploadTexture() { return -1; }, + setImage() {}, + setSprite() {}, + animate() { return nextAnim++; }, + cancelAnim() {}, + setFocus() {}, + setActive() {}, + measureText(text, fontSlot) { + const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; + return String(text).length * width; + } + }; + + globalThis.__wm6Snapshot = () => { + const lines = ["PocketJS Cards (real bundle)", "viewport 480x272", ""]; + const visit = (id, depth) => { + const n = node(id); + if (!n) return; + if (n.text) lines.push(" ".repeat(depth) + n.text); + for (const child of n.children) visit(child, depth + 1); + }; + visit(1, 0); + return lines.join("\n"); + }; +})(); diff --git a/hosts/wm6/quickjs/src/runtime_dll.c b/hosts/wm6/quickjs/src/runtime_dll.c new file mode 100644 index 000000000..ef4799808 --- /dev/null +++ b/hosts/wm6/quickjs/src/runtime_dll.c @@ -0,0 +1,190 @@ +#include +#include +#include + +#include "quickjs.h" +#include "wm6_quickjs_abi.h" + +typedef struct Wm6QuickJS { + JSRuntime *runtime; + JSContext *context; + char printed[256]; +} Wm6QuickJS; + +static void copy_text(char *output, unsigned int capacity, const char *text) +{ + unsigned int index; + + if (!output || capacity == 0) + return; + index = 0; + while (text && text[index] != '\0' && index + 1 < capacity) { + output[index] = text[index]; + index++; + } + output[index] = '\0'; +} + +static void copy_exception(JSContext *context, char *output, + unsigned int capacity) +{ + JSValue exception; + const char *text; + + exception = JS_GetException(context); + text = JS_ToCString(context, exception); + copy_text(output, capacity, text ? text : "JavaScript exception"); + if (text) + JS_FreeCString(context, text); + JS_FreeValue(context, exception); +} + +static JSValue runtime_print(JSContext *context, JSValueConst this_value, + int argument_count, JSValueConst *arguments) +{ + Wm6QuickJS *host; + const char *text; + + (void)this_value; + host = (Wm6QuickJS *)JS_GetContextOpaque(context); + if (!host || argument_count < 1) + return JS_UNDEFINED; + text = JS_ToCString(context, arguments[0]); + if (!text) + return JS_EXCEPTION; + copy_text(host->printed, sizeof(host->printed), text); + JS_FreeCString(context, text); + return JS_UNDEFINED; +} + +__declspec(dllexport) unsigned int __cdecl wm6_qjs_abi_version(void) +{ + return WM6_QJS_ABI_VERSION; +} + +__declspec(dllexport) wm6_qjs_handle __cdecl wm6_qjs_create( + unsigned int memory_limit, + unsigned int stack_limit, + char *error, + unsigned int error_capacity) +{ + Wm6QuickJS *host; + JSValue global; + + copy_text(error, error_capacity, ""); + host = (Wm6QuickJS *)malloc(sizeof(*host)); + if (!host) { + copy_text(error, error_capacity, "host allocation failed"); + return NULL; + } + memset(host, 0, sizeof(*host)); + host->runtime = JS_NewRuntime(); + if (!host->runtime) { + free(host); + copy_text(error, error_capacity, "JS_NewRuntime failed"); + return NULL; + } + JS_SetMemoryLimit(host->runtime, memory_limit); + JS_SetMaxStackSize(host->runtime, stack_limit); + host->context = JS_NewContext(host->runtime); + if (!host->context) { + JS_FreeRuntime(host->runtime); + free(host); + copy_text(error, error_capacity, "JS_NewContext failed"); + return NULL; + } + JS_SetContextOpaque(host->context, host); + global = JS_GetGlobalObject(host->context); + if (JS_SetPropertyStr( + host->context, + global, + "print", + JS_NewCFunction(host->context, runtime_print, "print", 1)) < 0) { + JS_FreeValue(host->context, global); + JS_FreeContext(host->context); + JS_FreeRuntime(host->runtime); + free(host); + copy_text(error, error_capacity, "registering print failed"); + return NULL; + } + JS_FreeValue(host->context, global); + return (wm6_qjs_handle)host; +} + +__declspec(dllexport) int __cdecl wm6_qjs_eval( + wm6_qjs_handle opaque, + const char *source, + unsigned int source_length, + char *output, + unsigned int output_capacity) +{ + Wm6QuickJS *host; + JSValue result; + const char *text; + + host = (Wm6QuickJS *)opaque; + if (!host || !source) + return -1; + host->printed[0] = '\0'; + copy_text(output, output_capacity, ""); + result = JS_Eval(host->context, source, source_length, + "pocketjs-wm6.js", JS_EVAL_TYPE_GLOBAL); + if (JS_IsException(result)) { + copy_exception(host->context, output, output_capacity); + JS_FreeValue(host->context, result); + return -2; + } + text = JS_ToCString(host->context, result); + copy_text(output, output_capacity, text ? text : "ok"); + if (text) + JS_FreeCString(host->context, text); + JS_FreeValue(host->context, result); + return 0; +} + +__declspec(dllexport) int __cdecl wm6_qjs_drain_jobs( + wm6_qjs_handle opaque, + char *output, + unsigned int output_capacity) +{ + Wm6QuickJS *host; + JSContext *job_context; + int count; + + host = (Wm6QuickJS *)opaque; + if (!host) + return -1; + count = 0; + while (JS_IsJobPending(host->runtime)) { + job_context = NULL; + if (JS_ExecutePendingJob(host->runtime, &job_context) < 0) { + copy_exception(job_context ? job_context : host->context, + output, output_capacity); + return -2; + } + count++; + } + copy_text(output, output_capacity, + host->printed[0] ? host->printed : "no print output"); + return count; +} + +__declspec(dllexport) void __cdecl wm6_qjs_destroy(wm6_qjs_handle opaque) +{ + Wm6QuickJS *host; + + host = (Wm6QuickJS *)opaque; + if (!host) + return; + JS_FreeContext(host->context); + JS_FreeRuntime(host->runtime); + free(host); +} + +BOOL WINAPI DllMain(HANDLE module, DWORD reason, LPVOID reserved) +{ + (void)module; + (void)reason; + (void)reserved; + return TRUE; +} diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index 596eb08b8..164e48ac2 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -30,13 +30,14 @@ ExecutionBucket="7" Optimization="0" PreprocessorDefinitions="_WIN32_WCE=$(CEVER);UNDER_CE;$(PLATFORMDEFINES);WINCE;_WINDOWS;_DEBUG;DEBUG;$(ARCHFAM);$(_ARCHFAM_);UNICODE;_UNICODE" + AdditionalIncludeDirectories=".\runtime" MinimalRebuild="false" BasicRuntimeChecks="0" RuntimeLibrary="3" UsePrecompiledHeader="0" WarningLevel="4" WarnAsError="true" - DisableSpecificWarnings="4201;4115;4214" + DisableSpecificWarnings="4201;4115;4214;4191" DebugInformationFormat="3" CompileAs="1" /> @@ -47,10 +48,10 @@ Name="VCLinkerTool" AdditionalOptions="/subsystem:windowsce,5.02" AdditionalDependencies="coredll.lib" - OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.Deploy.exe" + OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.Host.exe" LinkIncremental="1" GenerateDebugInformation="true" - ProgramDatabaseFile="$(OutDir)\PocketJS.WM6.QuickJS.Deploy.pdb" + ProgramDatabaseFile="$(OutDir)\PocketJS.WM6.QuickJS.Host.pdb" SubSystem="0" TargetMachine="0" /> @@ -66,10 +67,10 @@ ForceDirty="-1" RemoteDirectory="%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS" RegisterOutput="0" - AdditionalFiles="PocketJS.WM6.QuickJS.Probe.exe|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" + AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" /> @@ -106,7 +108,7 @@ Name="VCLinkerTool" AdditionalOptions="/subsystem:windowsce,5.02 /opt:ref /opt:icf" AdditionalDependencies="coredll.lib" - OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.Deploy.exe" + OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.Host.exe" LinkIncremental="1" GenerateDebugInformation="false" SubSystem="0" @@ -126,10 +128,10 @@ ForceDirty="-1" RemoteDirectory="%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS" RegisterOutput="0" - AdditionalFiles="PocketJS.WM6.QuickJS.Probe.exe|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" + AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" /> @@ -139,6 +141,12 @@ + + + + + + diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index ac8f1427d..3928ab117 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -8,9 +8,9 @@ This solution contains three native Smart Device applications for the HP iPAQ - `PocketJS.WM6.Vapor` runs the repository's Pocket Vapor Todo component after ahead-of-time compilation to portable C. It is the first application UI on WM6, but it is not a QuickJS host and cannot load ordinary PocketJS bundles. -- `PocketJS.WM6.QuickJS` deploys and starts the CeGCC-built QuickJS probe. It - evaluates actual modern JavaScript on ARM/WinCE; it is the first runtime - toolchain gate, not a PocketJS UI host yet. +- `PocketJS.WM6.QuickJS` builds a VC8 host and deploys the CeGCC-built QuickJS + DLL plus the real `apps/cards` bundle. Its first receipt mounts Solid and + shows the HostOps text tree; GDI layout and painting are still in progress. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a @@ -41,9 +41,9 @@ but does not yet connect PocketJS lifecycle, input, or rendering APIs; see Windows Mobile Classic/Pocket PC devices to this SDK; the similarly named Standard SDK is for non-touchscreen Smartphones. 4. Open `PocketJS.WM6.sln`. -5. To rebuild QuickJS, generate `prebuilt\PocketJS.WM6.QuickJS.Probe.exe` - using `..\quickjs\build-probe.sh` under WSL. A known-good ARM/WinCE binary is - checked in so a clean clone can deploy immediately. +5. To rebuild the Cards host assets, run `tools/build.ts cards-main`, then + `..\quickjs\build-cards.sh` and `..\quickjs\build-runtime.sh` under WSL. + Known-good ARM/WinCE and JavaScript files are checked in for deployment. 6. Select `Release | Windows Mobile 6 Professional SDK (ARMV4I)`. 7. Right-click the project you want to run and choose **Set as StartUp Project**. diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js new file mode 100644 index 000000000..d83686f5d --- /dev/null +++ b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js @@ -0,0 +1,3783 @@ +/* PocketJS WM6 bootstrap + real apps/cards bundle. */ +(() => { + let nextNode = 2; + let nextAnim = 1; + const nodes = new Map(); + nodes.set(1, { id: 1, type: 0, style: -1, text: "", children: [] }); + + const node = (id) => nodes.get(id); + const detach = (id) => { + for (const parent of nodes.values()) { + const at = parent.children.indexOf(id); + if (at >= 0) parent.children.splice(at, 1); + } + }; + + globalThis.ui = { + __host: "wm6", + __hostAbi: 1, + __textures: {}, + __viewport: { w: 480, h: 272 }, + createNode(type) { + const id = nextNode++; + nodes.set(id, { id, type, style: -1, text: "", children: [] }); + return id; + }, + destroyNode(id) { + detach(id); + nodes.delete(id); + }, + insertBefore(parentId, childId, anchor) { + const parent = node(parentId); + if (!parent) return; + detach(childId); + const at = anchor ? parent.children.indexOf(anchor) : -1; + if (at >= 0) parent.children.splice(at, 0, childId); + else parent.children.push(childId); + }, + removeChild(_parent, child) { detach(child); }, + setStyle(id, style) { const n = node(id); if (n) n.style = style; }, + setProp() {}, + setText(id, text) { const n = node(id); if (n) n.text = String(text); }, + replaceText(id, text) { this.setText(id, text); }, + uploadTexture() { return -1; }, + setImage() {}, + setSprite() {}, + animate() { return nextAnim++; }, + cancelAnim() {}, + setFocus() {}, + setActive() {}, + measureText(text, fontSlot) { + const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; + return String(text).length * width; + } + }; + + globalThis.__wm6Snapshot = () => { + const lines = ["PocketJS Cards (real bundle)", "viewport 480x272", ""]; + const visit = (id, depth) => { + const n = node(id); + if (!n) return; + if (n.text) lines.push(" ".repeat(depth) + n.text); + for (const child of n.children) visit(child, depth + 1); + }; + visit(1, 0); + return lines.join("\n"); + }; +})(); +(() => { + // node_modules/solid-js/dist/solid.js + var sharedConfig = { + context: undefined, + registry: undefined, + effects: undefined, + done: false, + getContextId() { + return getContextId(this.context.count); + }, + getNextContextId() { + return getContextId(this.context.count++); + } + }; + function getContextId(count) { + const num = String(count), len = num.length - 1; + return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : "") + num; + } + function setHydrateContext(context) { + sharedConfig.context = context; + } + function nextHydrateContext() { + return { + ...sharedConfig.context, + id: sharedConfig.getNextContextId(), + count: 0 + }; + } + var IS_DEV = false; + var equalFn = (a, b) => a === b; + var $PROXY = Symbol("solid-proxy"); + var SUPPORTS_PROXY = typeof Proxy === "function"; + var $TRACK = Symbol("solid-track"); + var $DEVCOMP = Symbol("solid-dev-component"); + var signalOptions = { + equals: equalFn + }; + var ERROR = null; + var runEffects = runQueue; + var STALE = 1; + var PENDING = 2; + var UNOWNED = { + owned: null, + cleanups: null, + context: null, + owner: null + }; + var Owner = null; + var Transition = null; + var Scheduler = null; + var ExternalSourceConfig = null; + var Listener = null; + var Updates = null; + var Effects = null; + var ExecCount = 0; + function createRoot(fn, detachedOwner) { + const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === undefined ? owner : detachedOwner, root = unowned ? UNOWNED : { + owned: null, + cleanups: null, + context: current ? current.context : null, + owner: current + }, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root))); + Owner = root; + Listener = null; + try { + return runUpdates(updateFn, true); + } finally { + Listener = listener; + Owner = owner; + } + } + function createSignal(value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const s = { + value, + observers: null, + observerSlots: null, + comparator: options.equals || undefined + }; + const setter = (value2) => { + if (typeof value2 === "function") { + if (Transition && Transition.running && Transition.sources.has(s)) + value2 = value2(s.tValue); + else + value2 = value2(s.value); + } + return writeSignal(s, value2); + }; + return [readSignal.bind(s), setter]; + } + function createRenderEffect(fn, value, options) { + const c = createComputation(fn, value, false, STALE); + if (Scheduler && Transition && Transition.running) + Updates.push(c); + else + updateComputation(c); + } + function createEffect(fn, value, options) { + runEffects = runUserEffects; + const c = createComputation(fn, value, false, STALE), s = SuspenseContext && useContext(SuspenseContext); + if (s) + c.suspense = s; + if (!options || !options.render) + c.user = true; + Effects ? Effects.push(c) : updateComputation(c); + } + function createMemo(fn, value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const c = createComputation(fn, value, true, 0); + c.observers = null; + c.observerSlots = null; + c.comparator = options.equals || undefined; + if (Scheduler && Transition && Transition.running) { + c.tState = STALE; + Updates.push(c); + } else + updateComputation(c); + return readSignal.bind(c); + } + function untrack(fn) { + if (!ExternalSourceConfig && Listener === null) + return fn(); + const listener = Listener; + Listener = null; + try { + if (ExternalSourceConfig) + return ExternalSourceConfig.untrack(fn); + return fn(); + } finally { + Listener = listener; + } + } + function onMount(fn) { + createEffect(() => untrack(fn)); + } + function onCleanup(fn) { + if (Owner === null) + ; + else if (Owner.cleanups === null) + Owner.cleanups = [fn]; + else + Owner.cleanups.push(fn); + return fn; + } + function startTransition(fn) { + if (Transition && Transition.running) { + fn(); + return Transition.done; + } + const l = Listener; + const o = Owner; + return Promise.resolve().then(() => { + Listener = l; + Owner = o; + let t; + if (Scheduler || SuspenseContext) { + t = Transition || (Transition = { + sources: new Set, + effects: [], + promises: new Set, + disposed: new Set, + queue: new Set, + running: true + }); + t.done || (t.done = new Promise((res) => t.resolve = res)); + t.running = true; + } + runUpdates(fn, false); + Listener = Owner = null; + return t ? t.done : undefined; + }); + } + var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false); + function useContext(context) { + let value; + return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue; + } + var SuspenseContext; + function readSignal() { + const runningTransition = Transition && Transition.running; + if (this.sources && (runningTransition ? this.tState : this.state)) { + if ((runningTransition ? this.tState : this.state) === STALE) + updateComputation(this); + else { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(this), false); + Updates = updates; + } + } + if (Listener) { + const observers = this.observers; + if (!observers || observers[observers.length - 1] !== Listener) { + const sSlot = observers ? observers.length : 0; + if (!Listener.sources) { + Listener.sources = [this]; + Listener.sourceSlots = [sSlot]; + } else { + Listener.sources.push(this); + Listener.sourceSlots.push(sSlot); + } + if (!observers) { + this.observers = [Listener]; + this.observerSlots = [Listener.sources.length - 1]; + } else { + observers.push(Listener); + this.observerSlots.push(Listener.sources.length - 1); + } + } + } + if (runningTransition && Transition.sources.has(this)) + return this.tValue; + return this.value; + } + function writeSignal(node, value, isComp) { + let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value; + if (!node.comparator || !node.comparator(current, value)) { + if (Transition) { + const TransitionRunning = Transition.running; + if (TransitionRunning || !isComp && Transition.sources.has(node)) { + Transition.sources.add(node); + node.tValue = value; + } + if (!TransitionRunning) + node.value = value; + } else + node.value = value; + if (node.observers && node.observers.length) { + runUpdates(() => { + for (let i = 0;i < node.observers.length; i += 1) { + const o = node.observers[i]; + const TransitionRunning = Transition && Transition.running; + if (TransitionRunning && Transition.disposed.has(o)) + continue; + if (TransitionRunning ? !o.tState : !o.state) { + if (o.pure) + Updates.push(o); + else + Effects.push(o); + if (o.observers) + markDownstream(o); + } + if (!TransitionRunning) + o.state = STALE; + else + o.tState = STALE; + } + if (Updates.length > 1e6) { + Updates = []; + if (IS_DEV) + ; + throw new Error; + } + }, false); + } + } + return value; + } + function updateComputation(node) { + if (!node.fn) + return; + cleanNode(node); + const time = ExecCount; + runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time); + if (Transition && !Transition.running && Transition.sources.has(node)) { + queueMicrotask(() => { + runUpdates(() => { + Transition && (Transition.running = true); + Listener = Owner = node; + runComputation(node, node.tValue, time); + Listener = Owner = null; + }, false); + }); + } + } + function runComputation(node, value, time) { + let nextValue; + const owner = Owner, listener = Listener; + Listener = Owner = node; + try { + nextValue = node.fn(value); + } catch (err) { + if (node.pure) { + if (Transition && Transition.running) { + node.tState = STALE; + node.tOwned && node.tOwned.forEach(cleanNode); + node.tOwned = undefined; + } else { + node.state = STALE; + node.owned && node.owned.forEach(cleanNode); + node.owned = null; + } + } + node.updatedAt = time + 1; + return handleError(err); + } finally { + Listener = listener; + Owner = owner; + } + if (!node.updatedAt || node.updatedAt <= time) { + if (node.updatedAt != null && "observers" in node) { + writeSignal(node, nextValue, true); + } else if (Transition && Transition.running && node.pure) { + if (!Transition.sources.has(node)) + node.value = nextValue; + Transition.sources.add(node); + node.tValue = nextValue; + } else + node.value = nextValue; + node.updatedAt = time; + } + } + function createComputation(fn, init, pure, state = STALE, options) { + const c = { + fn, + state, + updatedAt: null, + owned: null, + sources: null, + sourceSlots: null, + cleanups: null, + value: init, + owner: Owner, + context: Owner ? Owner.context : null, + pure + }; + if (Transition && Transition.running) { + c.state = 0; + c.tState = state; + } + if (Owner === null) + ; + else if (Owner !== UNOWNED) { + if (Transition && Transition.running && Owner.pure) { + if (!Owner.tOwned) + Owner.tOwned = [c]; + else + Owner.tOwned.push(c); + } else { + if (!Owner.owned) + Owner.owned = [c]; + else + Owner.owned.push(c); + } + } + if (ExternalSourceConfig && c.fn) { + const sourceFn = c.fn; + const [track, trigger] = createSignal(undefined, { + equals: false + }); + const ordinary = ExternalSourceConfig.factory(sourceFn, trigger); + onCleanup(() => ordinary.dispose()); + let inTransition; + const triggerInTransition = () => startTransition(trigger).then(() => { + if (inTransition) { + inTransition.dispose(); + inTransition = undefined; + } + }); + c.fn = (x) => { + track(); + if (Transition && Transition.running) { + if (!inTransition) + inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition); + return inTransition.track(x); + } + return ordinary.track(x); + }; + } + return c; + } + function runTop(node) { + const runningTransition = Transition && Transition.running; + if ((runningTransition ? node.tState : node.state) === 0) + return; + if ((runningTransition ? node.tState : node.state) === PENDING) + return lookUpstream(node); + if (node.suspense && untrack(node.suspense.inFallback)) + return node.suspense.effects.push(node); + const ancestors = [node]; + while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) { + if (runningTransition && Transition.disposed.has(node)) + return; + if (runningTransition ? node.tState : node.state) + ancestors.push(node); + } + for (let i = ancestors.length - 1;i >= 0; i--) { + node = ancestors[i]; + if (runningTransition) { + let top = node, prev = ancestors[i + 1]; + while ((top = top.owner) && top !== prev) { + if (Transition.disposed.has(top)) + return; + } + } + if ((runningTransition ? node.tState : node.state) === STALE) { + updateComputation(node); + } else if ((runningTransition ? node.tState : node.state) === PENDING) { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(node, ancestors[0]), false); + Updates = updates; + } + } + } + function runUpdates(fn, init) { + if (Updates) + return fn(); + let wait = false; + if (!init) + Updates = []; + if (Effects) + wait = true; + else + Effects = []; + ExecCount++; + try { + const res = fn(); + completeUpdates(wait); + return res; + } catch (err) { + if (!wait) + Effects = null; + Updates = null; + handleError(err); + } + } + function completeUpdates(wait) { + if (Updates) { + if (Scheduler && Transition && Transition.running) + scheduleQueue(Updates); + else + runQueue(Updates); + Updates = null; + } + if (wait) + return; + let res; + if (Transition) { + if (!Transition.promises.size && !Transition.queue.size) { + const sources = Transition.sources; + const disposed = Transition.disposed; + Effects.push.apply(Effects, Transition.effects); + res = Transition.resolve; + for (const e2 of Effects) { + "tState" in e2 && (e2.state = e2.tState); + delete e2.tState; + } + Transition = null; + runUpdates(() => { + for (const d of disposed) + cleanNode(d); + for (const v of sources) { + v.value = v.tValue; + if (v.owned) { + for (let i = 0, len = v.owned.length;i < len; i++) + cleanNode(v.owned[i]); + } + if (v.tOwned) + v.owned = v.tOwned; + delete v.tValue; + delete v.tOwned; + v.tState = 0; + } + setTransPending(false); + }, false); + } else if (Transition.running) { + Transition.running = false; + Transition.effects.push.apply(Transition.effects, Effects); + Effects = null; + setTransPending(true); + return; + } + } + const e = Effects; + Effects = null; + if (e.length) + runUpdates(() => runEffects(e), false); + if (res) + res(); + } + function runQueue(queue) { + for (let i = 0;i < queue.length; i++) + runTop(queue[i]); + } + function scheduleQueue(queue) { + for (let i = 0;i < queue.length; i++) { + const item = queue[i]; + const tasks = Transition.queue; + if (!tasks.has(item)) { + tasks.add(item); + Scheduler(() => { + tasks.delete(item); + runUpdates(() => { + Transition.running = true; + runTop(item); + }, false); + Transition && (Transition.running = false); + }); + } + } + } + function runUserEffects(queue) { + let i, userLength = 0; + for (i = 0;i < queue.length; i++) { + const e = queue[i]; + if (!e.user) + runTop(e); + else + queue[userLength++] = e; + } + if (sharedConfig.context) { + if (sharedConfig.count) { + sharedConfig.effects || (sharedConfig.effects = []); + sharedConfig.effects.push(...queue.slice(0, userLength)); + return; + } + setHydrateContext(); + } + if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) { + queue = [...sharedConfig.effects, ...queue]; + userLength += sharedConfig.effects.length; + delete sharedConfig.effects; + } + for (i = 0;i < userLength; i++) + runTop(queue[i]); + } + function lookUpstream(node, ignore) { + const runningTransition = Transition && Transition.running; + if (runningTransition) + node.tState = 0; + else + node.state = 0; + for (let i = 0;i < node.sources.length; i += 1) { + const source = node.sources[i]; + if (source.sources) { + const state = runningTransition ? source.tState : source.state; + if (state === STALE) { + if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) + runTop(source); + } else if (state === PENDING) + lookUpstream(source, ignore); + } + } + } + function markDownstream(node) { + const runningTransition = Transition && Transition.running; + for (let i = 0;i < node.observers.length; i += 1) { + const o = node.observers[i]; + if (runningTransition ? !o.tState : !o.state) { + if (runningTransition) + o.tState = PENDING; + else + o.state = PENDING; + if (o.pure) + Updates.push(o); + else + Effects.push(o); + o.observers && markDownstream(o); + } + } + } + function cleanNode(node) { + let i; + if (node.sources) { + while (node.sources.length) { + const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers; + if (obs && obs.length) { + const n = obs.pop(), s = source.observerSlots.pop(); + if (index < obs.length) { + n.sourceSlots[s] = index; + obs[index] = n; + source.observerSlots[index] = s; + } + } + } + } + if (node.tOwned) { + for (i = node.tOwned.length - 1;i >= 0; i--) + cleanNode(node.tOwned[i]); + delete node.tOwned; + } + if (Transition && Transition.running && node.pure) { + reset(node, true); + } else if (node.owned) { + for (i = node.owned.length - 1;i >= 0; i--) + cleanNode(node.owned[i]); + node.owned = null; + } + if (node.cleanups) { + for (i = node.cleanups.length - 1;i >= 0; i--) + node.cleanups[i](); + node.cleanups = null; + } + if (Transition && Transition.running) + node.tState = 0; + else + node.state = 0; + } + function reset(node, top) { + if (!top) { + node.tState = 0; + Transition.disposed.add(node); + } + if (node.owned) { + for (let i = 0;i < node.owned.length; i++) + reset(node.owned[i]); + } + } + function castError(err) { + if (err instanceof Error) + return err; + return new Error(typeof err === "string" ? err : "Unknown error", { + cause: err + }); + } + function runErrors(err, fns, owner) { + try { + for (const f of fns) + f(err); + } catch (e) { + handleError(e, owner && owner.owner || null); + } + } + function handleError(err, owner = Owner) { + const fns = ERROR && owner && owner.context && owner.context[ERROR]; + const error = castError(err); + if (!fns) + throw error; + if (Effects) + Effects.push({ + fn() { + runErrors(error, fns, owner); + }, + state: STALE + }); + else + runErrors(error, fns, owner); + } + var FALLBACK = Symbol("fallback"); + var hydrationEnabled = false; + function createComponent(Comp, props) { + if (hydrationEnabled) { + if (sharedConfig.context) { + const c = sharedConfig.context; + setHydrateContext(nextHydrateContext()); + const r = untrack(() => Comp(props || {})); + setHydrateContext(c); + return r; + } + } + return untrack(() => Comp(props || {})); + } + function trueFn() { + return true; + } + var propTraps = { + get(_, property, receiver) { + if (property === $PROXY) + return receiver; + return _.get(property); + }, + has(_, property) { + if (property === $PROXY) + return true; + return _.has(property); + }, + set: trueFn, + deleteProperty: trueFn, + getOwnPropertyDescriptor(_, property) { + return { + configurable: true, + enumerable: true, + get() { + return _.get(property); + }, + set: trueFn, + deleteProperty: trueFn + }; + }, + ownKeys(_) { + return _.keys(); + } + }; + function resolveSource(s) { + return !(s = typeof s === "function" ? s() : s) ? {} : s; + } + function resolveSources() { + for (let i = 0, length = this.length;i < length; ++i) { + const v = this[i](); + if (v !== undefined) + return v; + } + } + function mergeProps(...sources) { + let proxy = false; + for (let i = 0;i < sources.length; i++) { + const s = sources[i]; + proxy = proxy || !!s && $PROXY in s; + sources[i] = typeof s === "function" ? (proxy = true, createMemo(s)) : s; + } + if (SUPPORTS_PROXY && proxy) { + return new Proxy({ + get(property) { + for (let i = sources.length - 1;i >= 0; i--) { + const v = resolveSource(sources[i])[property]; + if (v !== undefined) + return v; + } + }, + has(property) { + for (let i = sources.length - 1;i >= 0; i--) { + if (property in resolveSource(sources[i])) + return true; + } + return false; + }, + keys() { + const keys = []; + for (let i = 0;i < sources.length; i++) + keys.push(...Object.keys(resolveSource(sources[i]))); + return [...new Set(keys)]; + } + }, propTraps); + } + const sourcesMap = {}; + const defined = Object.create(null); + for (let i = sources.length - 1;i >= 0; i--) { + const source = sources[i]; + if (!source) + continue; + const sourceKeys = Object.getOwnPropertyNames(source); + for (let i2 = sourceKeys.length - 1;i2 >= 0; i2--) { + const key = sourceKeys[i2]; + if (key === "__proto__" || key === "constructor") + continue; + const desc = Object.getOwnPropertyDescriptor(source, key); + if (!defined[key]) { + defined[key] = desc.get ? { + enumerable: true, + configurable: true, + get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)]) + } : desc.value !== undefined ? desc : undefined; + } else { + const sources2 = sourcesMap[key]; + if (sources2) { + if (desc.get) + sources2.push(desc.get.bind(source)); + else if (desc.value !== undefined) + sources2.push(() => desc.value); + } + } + } + } + const target = {}; + const definedKeys = Object.keys(defined); + for (let i = definedKeys.length - 1;i >= 0; i--) { + const key = definedKeys[i], desc = defined[key]; + if (desc && desc.get) + Object.defineProperty(target, key, desc); + else + target[key] = desc ? desc.value : undefined; + } + return target; + } + var narrowedError = (name) => `Stale read from <${name}>.`; + function Show(props) { + const keyed = props.keyed; + const conditionValue = createMemo(() => props.when, undefined, undefined); + const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, { + equals: (a, b) => !a === !b + }); + return createMemo(() => { + const c = condition(); + if (c) { + const child = props.children; + const fn = typeof child === "function" && child.length > 0; + return fn ? untrack(() => child(keyed ? c : () => { + if (!untrack(condition)) + throw narrowedError("Show"); + return conditionValue(); + })) : child; + } + return props.fallback; + }, undefined, undefined); + } + + // node_modules/solid-js/universal/dist/universal.js + var memo = (fn) => createMemo(() => fn()); + function createRenderer$1({ + createElement, + createTextNode, + isTextNode, + replaceText, + insertNode, + removeNode, + setProperty, + getParentNode, + getFirstChild, + getNextSibling + }) { + function insert(parent, accessor, marker, initial) { + if (marker !== undefined && !initial) + initial = []; + if (typeof accessor !== "function") + return insertExpression(parent, accessor, initial, marker); + createRenderEffect((current) => insertExpression(parent, accessor(), current, marker), initial); + } + function insertExpression(parent, value, current, marker, unwrapArray) { + while (typeof current === "function") + current = current(); + if (value === current) + return current; + const t = typeof value, multi = marker !== undefined; + if (t === "string" || t === "number") { + if (t === "number") + value = value.toString(); + if (multi) { + let node = current[0]; + if (node && isTextNode(node)) { + replaceText(node, value); + } else + node = createTextNode(value); + current = cleanChildren(parent, current, marker, node); + } else { + if (current !== "" && typeof current === "string") { + replaceText(getFirstChild(parent), current = value); + } else { + cleanChildren(parent, current, marker, createTextNode(value)); + current = value; + } + } + } else if (value == null || t === "boolean") { + current = cleanChildren(parent, current, marker); + } else if (t === "function") { + createRenderEffect(() => { + let v = value(); + while (typeof v === "function") + v = v(); + current = insertExpression(parent, v, current, marker); + }); + return () => current; + } else if (Array.isArray(value)) { + const array = []; + if (normalizeIncomingArray(array, value, unwrapArray)) { + createRenderEffect(() => current = insertExpression(parent, array, current, marker, true)); + return () => current; + } + if (array.length === 0) { + const replacement = cleanChildren(parent, current, marker); + if (multi) + return current = replacement; + } else { + if (Array.isArray(current)) { + if (current.length === 0) { + appendNodes(parent, array, marker); + } else + reconcileArrays(parent, current, array); + } else if (current == null || current === "") { + appendNodes(parent, array); + } else { + reconcileArrays(parent, multi && current || [getFirstChild(parent)], array); + } + } + current = array; + } else { + if (Array.isArray(current)) { + if (multi) + return current = cleanChildren(parent, current, marker, value); + cleanChildren(parent, current, null, value); + } else if (current == null || current === "" || !getFirstChild(parent)) { + insertNode(parent, value); + } else + replaceNode(parent, value, getFirstChild(parent)); + current = value; + } + return current; + } + function normalizeIncomingArray(normalized, array, unwrap) { + let dynamic = false; + for (let i = 0, len = array.length;i < len; i++) { + let item = array[i], t; + if (item == null || item === true || item === false) + ; + else if (Array.isArray(item)) { + dynamic = normalizeIncomingArray(normalized, item) || dynamic; + } else if ((t = typeof item) === "string" || t === "number") { + normalized.push(createTextNode(item)); + } else if (t === "function") { + if (unwrap) { + while (typeof item === "function") + item = item(); + dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic; + } else { + normalized.push(item); + dynamic = true; + } + } else + normalized.push(item); + } + return dynamic; + } + function reconcileArrays(parentNode, a, b) { + let bLength = b.length, aEnd = a.length, bEnd = bLength, aStart = 0, bStart = 0, after = getNextSibling(a[aEnd - 1]), map = null; + while (aStart < aEnd || bStart < bEnd) { + if (a[aStart] === b[bStart]) { + aStart++; + bStart++; + continue; + } + while (a[aEnd - 1] === b[bEnd - 1]) { + aEnd--; + bEnd--; + } + if (aEnd === aStart) { + const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after; + while (bStart < bEnd) + insertNode(parentNode, b[bStart++], node); + } else if (bEnd === bStart) { + while (aStart < aEnd) { + if (!map || !map.has(a[aStart])) + removeNode(parentNode, a[aStart]); + aStart++; + } + } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) { + const node = getNextSibling(a[--aEnd]); + insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++])); + insertNode(parentNode, b[--bEnd], node); + a[aEnd] = b[bEnd]; + } else { + if (!map) { + map = new Map; + let i = bStart; + while (i < bEnd) + map.set(b[i], i++); + } + const index = map.get(a[aStart]); + if (index != null) { + if (bStart < index && index < bEnd) { + let i = aStart, sequence = 1, t; + while (++i < aEnd && i < bEnd) { + if ((t = map.get(a[i])) == null || t !== index + sequence) + break; + sequence++; + } + if (sequence > index - bStart) { + const node = a[aStart]; + while (bStart < index) + insertNode(parentNode, b[bStart++], node); + } else + replaceNode(parentNode, b[bStart++], a[aStart++]); + } else + aStart++; + } else + removeNode(parentNode, a[aStart++]); + } + } + } + function cleanChildren(parent, current, marker, replacement) { + if (marker === undefined) { + let removed; + while (removed = getFirstChild(parent)) + removeNode(parent, removed); + replacement && insertNode(parent, replacement); + return ""; + } + const node = replacement || createTextNode(""); + if (current.length) { + let inserted = false; + for (let i = current.length - 1;i >= 0; i--) { + const el = current[i]; + if (node !== el) { + const isParent = getParentNode(el) === parent; + if (!inserted && !i) + isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker); + else + isParent && removeNode(parent, el); + } else + inserted = true; + } + } else + insertNode(parent, node, marker); + return [node]; + } + function appendNodes(parent, array, marker) { + for (let i = 0, len = array.length;i < len; i++) + insertNode(parent, array[i], marker); + } + function replaceNode(parent, newNode, oldNode) { + insertNode(parent, newNode, oldNode); + removeNode(parent, oldNode); + } + function spreadExpression(node, props, prevProps = {}, skipChildren) { + props || (props = {}); + if (!skipChildren) { + createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children)); + } + createRenderEffect(() => props.ref && props.ref(node)); + createRenderEffect(() => { + for (const prop in props) { + if (prop === "children" || prop === "ref") + continue; + const value = props[prop]; + if (value === prevProps[prop]) + continue; + setProperty(node, prop, value, prevProps[prop]); + prevProps[prop] = value; + } + }); + return prevProps; + } + return { + render(code, element) { + let disposer; + createRoot((dispose) => { + disposer = dispose; + insert(element, code()); + }); + return disposer; + }, + insert, + spread(node, accessor, skipChildren) { + if (typeof accessor === "function") { + createRenderEffect((current) => spreadExpression(node, accessor(), current, skipChildren)); + } else + spreadExpression(node, accessor, undefined, skipChildren); + }, + createElement, + createTextNode, + insertNode, + setProp(node, name, value, prev) { + setProperty(node, name, value, prev); + return value; + }, + mergeProps, + effect: createRenderEffect, + memo, + createComponent, + use(fn, element, arg) { + return untrack(() => fn(element, arg)); + } + }; + } + function createRenderer(options) { + const renderer = createRenderer$1(options); + renderer.mergeProps = mergeProps; + return renderer; + } + + // contracts/spec/spec.ts + var SCREEN_W = 480; + var SCREEN_H = 272; + var NODE_TYPE = { + view: 0, + text: 1, + image: 2 + }; + var ROOT_ID = 1; + var STYLE_ID_NONE = -1; + var PROP = { + width: 1, + height: 2, + minW: 3, + minH: 4, + maxW: 5, + maxH: 6, + paddingT: 8, + paddingR: 9, + paddingB: 10, + paddingL: 11, + marginT: 12, + marginR: 13, + marginB: 14, + marginL: 15, + gap: 16, + flexDir: 17, + justify: 18, + align: 19, + grow: 20, + shrink: 21, + basis: 22, + flexWrap: 23, + posType: 24, + insetT: 25, + insetR: 26, + insetB: 27, + insetL: 28, + display: 29, + overflow: 30, + zIndex: 31, + bgColor: 64, + gradFrom: 65, + gradTo: 66, + gradDir: 67, + radius: 68, + opacity: 69, + borderColor: 70, + borderWidth: 71, + shadow: 72, + bevelOuterLight: 77, + bevelOuterDark: 78, + bevelInnerLight: 79, + bevelInnerDark: 80, + bevelWidth: 81, + textColor: 96, + fontSlot: 97, + textAlign: 98, + lineHeight: 99, + tracking: 100, + translateX: 128, + translateY: 129, + scale: 130, + rotate: 131, + scaleX: 132, + scaleY: 133, + originX: 134, + originY: 135, + rotateX: 136, + rotateY: 137, + translateZ: 138, + perspective: 139, + arcStart: 140, + arcSweep: 141, + arcWidth: 142 + }; + var ANIMATABLE = [ + "width", + "height", + "paddingT", + "paddingR", + "paddingB", + "paddingL", + "marginT", + "marginR", + "marginB", + "marginL", + "gap", + "basis", + "insetT", + "insetR", + "insetB", + "insetL", + "bgColor", + "gradFrom", + "gradTo", + "radius", + "opacity", + "borderColor", + "borderWidth", + "textColor", + "lineHeight", + "tracking", + "translateX", + "translateY", + "scale", + "rotate", + "scaleX", + "scaleY", + "rotateX", + "rotateY", + "translateZ", + "arcStart", + "arcSweep", + "arcWidth" + ]; + function animBit(prop) { + return ANIMATABLE.indexOf(prop); + } + var VALUE_KIND = { + f32: 0, + color: 1, + int: 2 + }; + var PROP_VALUE_KIND = { + width: VALUE_KIND.f32, + height: VALUE_KIND.f32, + minW: VALUE_KIND.f32, + minH: VALUE_KIND.f32, + maxW: VALUE_KIND.f32, + maxH: VALUE_KIND.f32, + paddingT: VALUE_KIND.f32, + paddingR: VALUE_KIND.f32, + paddingB: VALUE_KIND.f32, + paddingL: VALUE_KIND.f32, + marginT: VALUE_KIND.f32, + marginR: VALUE_KIND.f32, + marginB: VALUE_KIND.f32, + marginL: VALUE_KIND.f32, + gap: VALUE_KIND.f32, + flexDir: VALUE_KIND.int, + justify: VALUE_KIND.int, + align: VALUE_KIND.int, + grow: VALUE_KIND.f32, + shrink: VALUE_KIND.f32, + basis: VALUE_KIND.f32, + flexWrap: VALUE_KIND.int, + posType: VALUE_KIND.int, + insetT: VALUE_KIND.f32, + insetR: VALUE_KIND.f32, + insetB: VALUE_KIND.f32, + insetL: VALUE_KIND.f32, + display: VALUE_KIND.int, + overflow: VALUE_KIND.int, + zIndex: VALUE_KIND.int, + bgColor: VALUE_KIND.color, + gradFrom: VALUE_KIND.color, + gradTo: VALUE_KIND.color, + gradDir: VALUE_KIND.int, + radius: VALUE_KIND.f32, + opacity: VALUE_KIND.f32, + borderColor: VALUE_KIND.color, + borderWidth: VALUE_KIND.f32, + shadow: VALUE_KIND.int, + bevelOuterLight: VALUE_KIND.color, + bevelOuterDark: VALUE_KIND.color, + bevelInnerLight: VALUE_KIND.color, + bevelInnerDark: VALUE_KIND.color, + bevelWidth: VALUE_KIND.f32, + textColor: VALUE_KIND.color, + fontSlot: VALUE_KIND.int, + textAlign: VALUE_KIND.int, + lineHeight: VALUE_KIND.f32, + tracking: VALUE_KIND.f32, + translateX: VALUE_KIND.f32, + translateY: VALUE_KIND.f32, + scale: VALUE_KIND.f32, + rotate: VALUE_KIND.f32, + scaleX: VALUE_KIND.f32, + scaleY: VALUE_KIND.f32, + originX: VALUE_KIND.f32, + originY: VALUE_KIND.f32, + rotateX: VALUE_KIND.f32, + rotateY: VALUE_KIND.f32, + translateZ: VALUE_KIND.f32, + perspective: VALUE_KIND.f32, + arcStart: VALUE_KIND.f32, + arcSweep: VALUE_KIND.f32, + arcWidth: VALUE_KIND.f32 + }; + var ENUMS = { + FlexDir: { + Row: 0, + Col: 1 + }, + Justify: { + Start: 0, + Center: 1, + End: 2, + Between: 3, + Around: 4 + }, + Align: { + Start: 0, + Center: 1, + End: 2, + Stretch: 3 + }, + PosType: { + Relative: 0, + Absolute: 1 + }, + Display: { + Flex: 0, + None: 1 + }, + Overflow: { + Visible: 0, + Hidden: 1 + }, + TextAlign: { + Left: 0, + Center: 1, + Right: 2 + }, + GradDir: { + ToTop: 0, + ToBottom: 1, + ToLeft: 2, + ToRight: 3 + }, + Easing: { + Linear: 0, + EaseIn: 1, + EaseOut: 2, + EaseInOut: 3, + OutBack: 4, + Spring: 5, + SpringBouncy: 6, + CubicBezier: 7 + } + }; + var PSM = { + PSM_5650: 0, + PSM_4444: 2, + PSM_8888: 3, + PSM_T8: 5 + }; + var IMG_FLAG_RLE = 1 << 0; + var IMG_FLAG_LINEAR = 1 << 1; + var TILESET_FLAG_RLE = 1 << 0; + var TILESET_FLAG_LINEAR = 1 << 1; + var SVC_IMG_MAX_BYTES = 128 * 1024; + var STREAM_FLAG_ENDED = 1 << 0; + var STYLE_VARIANT_BASE = 1 << 0; + var STYLE_VARIANT_FOCUS = 1 << 1; + var STYLE_VARIANT_ACTIVE = 1 << 2; + var STYLE_HAS_TRANSITION = 1 << 3; + var STYLE_HAS_ANIMATION = 1 << 4; + var ANIM_FILL_BACKWARDS = 1 << 0; + var ANIM_FILL_FORWARDS = 1 << 1; + function abgr(r, g, b, a = 255) { + return ((a & 255) << 24 | (b & 255) << 16 | (g & 255) << 8 | r & 255) >>> 0; + } + var FONT_FLAG_BOLD = 1 << 0; + var PAK_MAGIC = 1263551300; + var PAK_VERSION = 1; + var PAK_HEADER_SIZE = 32; + var PAK_ENTRY_SIZE = 24; + var BTN = { + SELECT: 1, + START: 8, + UP: 16, + RIGHT: 32, + DOWN: 64, + LEFT: 128, + LTRIGGER: 256, + RTRIGGER: 512, + TRIANGLE: 4096, + CIRCLE: 8192, + CROSS: 16384, + SQUARE: 32768 + }; + var ANALOG_CENTER = 32896; + var FIXED_DT = 1 / 60; + + // framework/src/host.ts + function hostViewport(ops) { + return ops.__viewport ?? null; + } + var current = null; + function embeddedBuildHostContract() { + const target = ""; + const hostAbi = 0; + return target && hostAbi > 0 ? { + target, + hostAbi + } : null; + } + function assertNativeHostContract(ops, expected = embeddedBuildHostContract()) { + if (!expected) + return; + if (typeof ops.__host !== "string") { + throw new Error(`PocketJS: this bundle targets "${expected.target}" but the native host predates platform ` + "contracts — add __host/__hostAbi to its ui namespace (see framework/src/host.ts HostOps)"); + } + if (ops.__host !== expected.target) { + throw new Error(`PocketJS: native target mismatch (bundle=${expected.target}, host=${ops.__host})`); + } + if (ops.__hostAbi !== expected.hostAbi) { + throw new Error(`PocketJS: native host ABI mismatch (bundle=${expected.hostAbi}, host=${ops.__hostAbi ?? "missing"})`); + } + } + function detectHost(injected) { + const native = globalThis.ui; + const nativeMarked = native !== undefined && (typeof native.__host === "string" || native.__textures !== undefined); + if (injected) { + if (native !== undefined && injected === native && nativeMarked) { + assertNativeHostContract(native); + return { + ops: injected, + kind: "native", + target: native.__host ?? "unknown", + strict: false + }; + } + return { + ops: injected, + kind: "injected", + target: injected.__host ?? "injected", + strict: true + }; + } + if (native !== undefined && nativeMarked) { + assertNativeHostContract(native); + return { + ops: native, + kind: "native", + target: native.__host ?? "unknown", + strict: false + }; + } + if (native) { + return { + ops: native, + kind: "injected", + target: "injected", + strict: true + }; + } + throw new Error("PocketJS: no host — pass HostOps to render() (web/test) or run under a native runtime (globalThis.ui)"); + } + function installHost(host) { + current = host; + } + function getHost() { + if (!current) { + throw new Error("PocketJS: host not installed — call render() first"); + } + return current; + } + function getOps() { + return getHost().ops; + } + function installFrameHandler(fn) { + globalThis.frame = fn; + } + function installResizeViewportHook(resizeViewport) { + const globals = globalThis; + const previous = globals.__pocketResizeViewport; + const hook = (width, height) => resizeViewport(width, height); + globals.__pocketResizeViewport = hook; + return () => { + if (globals.__pocketResizeViewport !== hook) + return; + if (previous) + globals.__pocketResizeViewport = previous; + else + delete globals.__pocketResizeViewport; + }; + } + function parseHexColor(s) { + let hex = s.slice(1); + if (hex.length === 3) { + hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; + } + if (hex.length !== 6 && hex.length !== 8) { + throw new Error(`PocketJS: bad color '${s}' (expected #rgb/#rrggbb/#rrggbbaa)`); + } + if (!/^[0-9a-fA-F]+$/.test(hex)) + throw new Error(`PocketJS: bad color '${s}'`); + const n = parseInt(hex, 16); + if (hex.length === 6) { + return abgr(n >>> 16 & 255, n >>> 8 & 255, n & 255, 255); + } + return abgr(n >>> 24 & 255, n >>> 16 & 255, n >>> 8 & 255, n & 255); + } + function encodePropValue(prop, value) { + const kind = PROP_VALUE_KIND[prop]; + if (typeof value === "string") { + if (kind === VALUE_KIND.color) + return parseHexColor(value); + const n = Number(value); + if (Number.isNaN(n)) { + throw new Error(`PocketJS: non-numeric value '${value}' for prop '${prop}'`); + } + value = n; + } + if (kind === VALUE_KIND.color || kind === VALUE_KIND.int) + return value >>> 0; + return value; + } + + // framework/src/clock.ts + var TICKS_PER_SECOND = 60; + var VALID_HZ = [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]; + var hz = TICKS_PER_SECOND; + var frame = -1; + var timerSeq = 0; + var timers = []; + function normalizeHz(raw) { + if (!Number.isFinite(raw) || raw <= 0) + return TICKS_PER_SECOND; + let best = VALID_HZ[0]; + for (const v of VALID_HZ) { + if (Math.abs(v - raw) < Math.abs(best - raw)) + best = v; + } + return best; + } + function ticksPerFrame() { + return TICKS_PER_SECOND / hz; + } + function virtualFrame() { + return frame < 0 ? 0 : frame; + } + function resetClock() { + const raw = globalThis.__simHz; + hz = typeof raw === "number" ? normalizeHz(raw) : TICKS_PER_SECOND; + frame = -1; + timers = []; + timerSeq = 0; + } + function __advanceClock() { + frame = frame < 0 ? 0 : frame + 1; + if (timers.length === 0) + return; + const due = timers.filter((t) => t.at <= frame).sort((a, b) => a.at - b.at || a.seq - b.seq); + if (due.length === 0) + return; + timers = timers.filter((t) => t.at > frame); + for (const t of due) + t.cb(); + } + + // framework/src/analog.ts + var ANALOG_DEADZONE = 0.12; + var analogPacked = ANALOG_CENTER; + function __setAnalog(packed) { + analogPacked = packed === undefined ? ANALOG_CENTER : packed & 65535; + } + function __resetAnalog() { + analogPacked = ANALOG_CENTER; + } + function axis(raw) { + const value = Math.max(-1, Math.min(1, (raw - 128) / 127)); + const magnitude = Math.abs(value); + if (magnitude < ANALOG_DEADZONE) + return 0; + return Math.sign(value) * (magnitude - ANALOG_DEADZONE) / (1 - ANALOG_DEADZONE); + } + function analogX() { + return axis(analogPacked >> 8 & 255); + } + function analogY() { + return axis(analogPacked & 255); + } + + // framework/src/frame.ts + var callbacks = new Set; + var buttonHandlerBlockDepth = 0; + function resetFrameHooks() { + callbacks.clear(); + buttonHandlerBlockDepth = 0; + __resetAnalog(); + } + function runFrameHooks(buttons) { + for (const cb of [...callbacks]) + cb(buttons); + } + + // framework/src/pak.ts + var map = null; + var bytes = null; + function readKey(u8, off, len) { + let s = ""; + for (let i = 0;i < len; i++) + s += String.fromCharCode(u8[off + i]); + return s; + } + function parse(ab) { + const dv = new DataView(ab); + if (ab.byteLength < PAK_HEADER_SIZE || dv.getUint32(0, true) !== PAK_MAGIC) { + throw new Error("pak: bad magic"); + } + const version = dv.getUint16(4, true); + if (version !== PAK_VERSION) { + throw new Error("pak: unsupported version " + version); + } + const entryCount = dv.getUint32(8, true); + const dirOff = dv.getUint32(12, true); + const namesOff = dv.getUint32(16, true); + const u8 = new Uint8Array(ab); + const m = new Map; + for (let i = 0;i < entryCount; i++) { + const e = dirOff + i * PAK_ENTRY_SIZE; + const blobOff = dv.getUint32(e + 4, true); + const byteLen = dv.getUint32(e + 8, true); + const nameOff = dv.getUint32(e + 12, true); + const nameLen = dv.getUint16(e + 16, true); + const dtype = u8[e + 18]; + m.set(readKey(u8, namesOff + nameOff, nameLen), { + off: blobOff, + len: byteLen, + dtype + }); + } + map = m; + bytes = u8; + } + function loadPack(ab) { + parse(ab); + } + function ensureLoaded() { + if (map) + return; + const ab = globalThis.__pak; + if (!ab) + return; + parse(ab); + } + function hasPack() { + ensureLoaded(); + return map !== null; + } + function entries(prefix = "") { + ensureLoaded(); + if (!map) + return []; + const out = []; + for (const key of map.keys()) { + if (key.length >= prefix.length && key.slice(0, prefix.length) === prefix) { + out.push(key); + } + } + out.sort(); + return out; + } + function get(key) { + ensureLoaded(); + const e = map ? map.get(key) : undefined; + if (!e) { + throw new Error("pak: missing key " + key + " (no __pak provided, or the pack is incomplete)"); + } + return bytes.slice(e.off, e.off + e.len); + } + + // framework/src/input.ts + var root = null; + var focused = null; + var pressedNode = null; + var prevButtons = 0; + var focusScopeStack = []; + var focusGridStack = []; + var focusControllerStack = []; + function setInputRoot(r) { + root = r; + focused = null; + pressedNode = null; + prevButtons = 0; + focusScopeStack.length = 0; + focusGridStack.length = 0; + focusControllerStack.length = 0; + if (cursor) { + cursor.pressTarget = null; + cursor.target = null; + cursor.spriteDirty = true; + cursor.fresh = true; + cursor.vw = 0; + if (cursor.tex >= 0) { + const ops = getOps(); + ops.setCursor?.(-1, 0, 0, 0, 0); + ops.freeTexture?.(cursor.tex); + cursor.tex = -1; + } + } + } + function registerPress(node, fn) { + node.onPress = fn ?? undefined; + } + function registerFocusable(node, on) { + node.focusable = on; + __notifyTreeMutation(); + if (!on && focused === node) { + focusNode(null); + } + } + function focusNode(node) { + if (pressedNode && pressedNode !== node) + setPressedNode(null); + focused = node; + getOps().setFocus(node ? node.id : 0); + } + function setPressedNode(node) { + if (pressedNode === node) + return; + const ops = getOps(); + if (pressedNode) + ops.setActive?.(pressedNode.id, 0); + pressedNode = node; + if (node) + ops.setActive?.(node.id, 1); + } + function activeFocusRoot() { + return focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : root; + } + function collectFocusables(node, out) { + if (!node) + return; + if (node.focusable) + out.push(node); + if (!Array.isArray(node.children)) + return; + for (let i = 0;i < node.children.length; i++) { + collectFocusables(node.children[i], out); + } + } + function focusables() { + const out = []; + const r = activeFocusRoot(); + if (r) + collectFocusables(r, out); + return out; + } + function linearDirection(direction) { + return direction === "down" || direction === "right" ? 1 : -1; + } + function moveLinearFocus(direction) { + const dir = linearDirection(direction); + const list = focusables(); + if (list.length === 0) { + if (focused) + focusNode(null); + return; + } + const i = focused ? list.indexOf(focused) : -1; + if (i < 0) { + focusNode(dir === 1 ? list[0] : list[list.length - 1]); + return; + } + const j = i + dir; + if (j < 0 || j >= list.length) + return; + focusNode(list[j]); + } + function activeGrid() { + if (!focused) + return null; + const active = activeFocusRoot(); + if (active && !isWithin(focused, active)) + return null; + for (let i = focusGridStack.length - 1;i >= 0; i--) { + const grid = focusGridStack[i]; + if (active && !isWithin(grid.node, active) && !isWithin(active, grid.node)) + continue; + if (isWithin(focused, grid.node)) + return grid; + } + return null; + } + function moveGridFocus(direction) { + const grid = activeGrid(); + if (!grid) + return false; + const list = []; + collectFocusables(grid.node, list); + if (list.length === 0) { + if (focused) + focusNode(null); + return true; + } + const columns = grid.columns; + const i = focused ? list.indexOf(focused) : -1; + if (i < 0) { + focusNode(linearDirection(direction) === 1 ? list[0] : list[list.length - 1]); + return true; + } + let j = i; + switch (direction) { + case "right": + if (i + 1 < list.length && i % columns < columns - 1) + j = i + 1; + else if (grid.wrap) + j = Math.floor(i / columns) * columns; + break; + case "left": + if (i % columns > 0) + j = i - 1; + else if (grid.wrap) + j = Math.min(list.length - 1, Math.floor(i / columns) * columns + columns - 1); + break; + case "down": + if (i + columns < list.length) + j = i + columns; + else if (grid.wrap) + j = i % columns; + break; + case "up": + if (i - columns >= 0) + j = i - columns; + else if (grid.wrap) { + const col = i % columns; + j = col; + while (j + columns < list.length) + j += columns; + } + break; + } + if (j !== i) + focusNode(list[j]); + return true; + } + function activeController() { + if (!focused) + return null; + const active = activeFocusRoot(); + if (active && !isWithin(focused, active)) + return null; + for (let i = focusControllerStack.length - 1;i >= 0; i--) { + const ctl = focusControllerStack[i]; + if (active && !isWithin(ctl.node, active) && !isWithin(active, ctl.node)) + continue; + if (isWithin(focused, ctl.node)) + return ctl; + } + return null; + } + function moveFocus(direction) { + const ctl = activeController(); + if (ctl && ctl.move(direction)) + return; + if (moveGridFocus(direction)) + return; + moveLinearFocus(direction); + } + function firePress() { + let n = focused; + while (n) { + if (n.onPress) { + n.onPress(); + return; + } + n = n.parent; + } + } + function isWithin(node, ancestor) { + if (!node || !ancestor) + return false; + let n = node; + while (n) { + if (n === ancestor) + return true; + n = n.parent; + } + return false; + } + function firstFocusable(node) { + if (!node) + return null; + if (node.focusable) + return node; + if (!Array.isArray(node.children)) + return null; + for (let i = 0;i < node.children.length; i++) { + const f = firstFocusable(node.children[i]); + if (f) + return f; + } + return null; + } + function notifyDetached(node) { + if (!focused || !isWithin(focused, node)) + return; + const parent = node.parent; + if (parent) { + const idx = parent.children.indexOf(node); + for (let i = idx + 1;i < parent.children.length; i++) { + const f = firstFocusable(parent.children[i]); + if (f) { + focusNode(f); + return; + } + } + for (let i = idx - 1;i >= 0; i--) { + const f = firstFocusable(parent.children[i]); + if (f) { + focusNode(f); + return; + } + } + let a = parent; + while (a) { + if (a.focusable) { + focusNode(a); + return; + } + a = a.parent; + } + } + focusNode(null); + } + var cursor = null; + var inputGen = 0; + function __notifyTreeMutation() { + inputGen++; + } + var ARROW_OUTLINE = [1, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1985, 73, 149, 147, 288, 480]; + var ARROW_FILL = [0, 0, 2, 6, 14, 30, 62, 126, 254, 510, 62, 54, 98, 96, 192, 0]; + function defaultArrowRGBA() { + const px = new Uint8Array(16 * 16 * 4); + for (let y = 0;y < 16; y++) { + for (let x = 0;x < 16; x++) { + const outline = ARROW_OUTLINE[y] >> x & 1; + const fill = ARROW_FILL[y] >> x & 1; + if (!outline && !fill) + continue; + const i = (y * 16 + x) * 4; + const v = fill ? 255 : 0; + px[i] = v; + px[i + 1] = v; + px[i + 2] = v; + px[i + 3] = 255; + } + } + return px; + } + function cursorInitSprite(c, ops) { + const sprite = c.sprite; + c.spriteDirty = false; + const old = c.tex; + let tex = -1; + let blob = null; + if (typeof sprite.image === "string") { + try { + blob = get(sprite.image); + } catch (err) { + if (getHost().strict) + throw err; + blob = null; + } + } else if (sprite.image) { + blob = sprite.image; + } + if (blob) { + tex = ops.uploadImgEntry ? ops.uploadImgEntry(blob) : uploadImgFallback(ops, blob); + if (tex < 0 && getHost().strict) { + throw new Error("enableCursor: cursor image rejected (malformed or RLE-only IMG entry)"); + } + } + if (tex < 0) { + tex = ops.uploadTexture(defaultArrowRGBA(), 16, 16, PSM.PSM_8888); + } + c.tex = tex; + ops.setCursor(tex, sprite.hotspot[0], sprite.hotspot[1], sprite.size[0], sprite.size[1]); + if (old >= 0 && old !== tex) + ops.freeTexture?.(old); + } + function uploadImgFallback(ops, blob) { + if (blob.length < 8) + return -1; + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + if (blob[5] & IMG_FLAG_RLE) + return -1; + return ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); + } + function findMirror(node, id) { + if (!node || id === 0) + return null; + if (node.id === id) + return node; + const kids = node.children; + if (!Array.isArray(kids)) + return null; + for (let i = 0;i < kids.length; i++) { + const found = findMirror(kids[i], id); + if (found) + return found; + } + return null; + } + var hitRoot = null; + function setHitRoot(r) { + hitRoot = r; + } + function cursorTarget(hit) { + const scope = focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : null; + let n = hit; + while (n) { + if (n.focusable && (!scope || isWithin(n, scope))) + return n; + n = n.parent; + } + return null; + } + function cursorFrame(buttons, pressed, released) { + const c = cursor; + const ops = getOps(); + if (!ops.hitTest || !ops.setCursor || !ops.setCursorPos) + return false; + if (c.vw === 0) { + const vp = hostViewport(ops); + c.vw = vp ? vp.w : SCREEN_W; + c.vh = vp ? vp.h : SCREEN_H; + if (c.x < 0) { + c.x = Math.floor(c.vw / 2); + c.y = Math.floor(c.vh / 2); + } + } + if (c.spriteDirty) + cursorInitSprite(c, ops); + let vx = analogX() * c.speed; + let vy = analogY() * c.speed; + if (c.dpadSpeed > 0 && vx === 0 && vy === 0) { + if (buttons & BTN.LEFT) + vx = -c.dpadSpeed; + if (buttons & BTN.RIGHT) + vx = c.dpadSpeed; + if (buttons & BTN.UP) + vy = -c.dpadSpeed; + if (buttons & BTN.DOWN) + vy = c.dpadSpeed; + } + let moved = c.fresh; + if (vx !== 0 || vy !== 0) { + const dt = ticksPerFrame() / 60; + const nx = Math.min(Math.max(c.x + vx * dt, 0), c.vw - 1); + const ny = Math.min(Math.max(c.y + vy * dt, 0), c.vh - 1); + if (nx !== c.x || ny !== c.y) { + c.x = nx; + c.y = ny; + moved = true; + } + } + if (moved) + ops.setCursorPos(c.x, c.y); + const edges = (pressed | released) & c.button; + const gen = inputGen; + if (moved || edges !== 0 || gen !== c.gen) { + c.gen = gen; + c.fresh = false; + c.target = cursorTarget(findMirror(hitRoot ?? root, ops.hitTest(c.x, c.y))); + } + const target = c.target; + if (target !== focused) + focusNode(target); + if (pressed & c.button && target) { + c.pressTarget = target; + } + if (c.pressTarget) { + setPressedNode(target === c.pressTarget ? c.pressTarget : null); + if (released & c.button) { + const fire = target === c.pressTarget; + c.pressTarget = null; + setPressedNode(null); + if (fire) + firePress(); + } + } else if (released & c.button) { + setPressedNode(null); + } + return true; + } + function handleFrame(buttons) { + const pressed = buttons & ~prevButtons; + const released = prevButtons & ~buttons; + prevButtons = buttons; + if (cursor && cursorFrame(buttons, pressed, released)) + return; + if (released & BTN.CIRCLE) + setPressedNode(null); + if (pressed === 0) + return; + if (pressed & BTN.DOWN) + moveFocus("down"); + if (pressed & BTN.RIGHT) + moveFocus("right"); + if (pressed & BTN.UP) + moveFocus("up"); + if (pressed & BTN.LEFT) + moveFocus("left"); + if (pressed & BTN.CIRCLE) { + setPressedNode(focused); + firePress(); + } + } + + // framework/src/native-tree.ts + var treeMutationHook = null; + function setTreeMutationHook(fn) { + treeMutationHook = fn; + } + function treeMutated() { + __notifyTreeMutation(); + if (treeMutationHook) + treeMutationHook(); + } + function setDebugName(node, name) { + node.debugName = name || undefined; + treeMutated(); + } + var rootMirror = { + id: ROOT_ID, + type: NODE_TYPE.view, + parent: null, + children: [], + domNodeType: 1, + domTag: "root" + }; + var DOM_NODE = Symbol.for("pocketjs.native-node"); + var DOM_ELEMENT = 1; + var DOM_TEXT = 3; + var DOM_COMMENT = 8; + var NATIVE_ATTRIBUTE_NAMES = new Set(["class", "className", "style", "src", "onPress", "on:press", "focusable", "debugName", "ref", "nodeRef", "key", "children"]); + function domAttrs(node) { + return node.domAttrs ??= {}; + } + function cloneNativeNode(node, deep) { + const nodeType = node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); + const clone = nodeType === DOM_TEXT ? createTextNode(node.text ?? "") : nodeType === DOM_COMMENT ? createCommentNode(node.domData ?? "") : createElement(node.domTag ?? tagName(node)); + for (const key of Object.keys(node.domAttrs ?? {})) { + setDomAttribute(clone, key, node.domAttrs[key]); + } + if (deep) { + for (const child of node.children) + insertNode(clone, cloneNativeNode(child, true)); + } + return clone; + } + function setDomAttribute(node, name, value) { + if (NATIVE_ATTRIBUTE_NAMES.has(name)) { + setProp(node, name, value, node.domAttrs?.[name]); + return; + } + if (value == null) + delete domAttrs(node)[name]; + else + domAttrs(node)[name] = value; + } + function decorateNativeNode(node) { + if (node[DOM_NODE] === true) + return node; + Object.defineProperty(node, DOM_NODE, { + value: true + }); + Object.defineProperties(node, { + nodeType: { + configurable: true, + get() { + return node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); + } + }, + nodeValue: { + configurable: true, + get() { + return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; + }, + set(value) { + if (node.domNodeType === DOM_COMMENT) + node.domData = String(value ?? ""); + else + replaceText(node, String(value ?? "")); + } + }, + data: { + configurable: true, + get() { + return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; + }, + set(value) { + if (node.domNodeType === DOM_COMMENT) + node.domData = String(value ?? ""); + else + replaceText(node, String(value ?? "")); + } + }, + textContent: { + configurable: true, + get() { + if (node.domNodeType === DOM_COMMENT) + return node.domData ?? ""; + if (isTextNode(node)) + return node.text ?? ""; + return node.children.map((child) => child.text ?? "").join(""); + }, + set(value) { + const text = String(value ?? ""); + if (node.domNodeType === DOM_COMMENT) { + node.domData = text; + } else if (isTextNode(node)) { + replaceText(node, text); + } else { + clearContainer(node); + if (text) + insertNode(node, createTextNode(text)); + } + } + }, + parentNode: { + configurable: true, + get() { + return node.parent; + } + }, + parentElement: { + configurable: true, + get() { + return node.parent; + } + }, + childNodes: { + configurable: true, + get() { + return node.children; + } + }, + firstChild: { + configurable: true, + get() { + return node.children[0] ?? null; + } + }, + lastChild: { + configurable: true, + get() { + return node.children[node.children.length - 1] ?? null; + } + }, + nextSibling: { + configurable: true, + get() { + return getNextSibling(node) ?? null; + } + }, + previousSibling: { + configurable: true, + get() { + const parent = node.parent; + if (!parent) + return null; + const index = parent.children.indexOf(node); + return index > 0 ? parent.children[index - 1] : null; + } + }, + tagName: { + configurable: true, + get() { + return (node.domTag ?? tagName(node)).toUpperCase(); + } + }, + nodeName: { + configurable: true, + get() { + if (node.domNodeType === DOM_TEXT) + return "#text"; + if (node.domNodeType === DOM_COMMENT) + return "#comment"; + return (node.domTag ?? tagName(node)).toUpperCase(); + } + }, + className: { + configurable: true, + get() { + return String(node.domAttrs?.class ?? ""); + }, + set(value) { + setProp(node, "class", value, node.domAttrs?.class); + } + }, + isConnected: { + configurable: true, + get() { + let current2 = node; + while (current2) { + if (current2 === rootMirror) + return true; + current2 = current2.parent; + } + return false; + } + } + }); + const methods = { + appendChild(child) { + insertNode(node, child); + return child; + }, + insertBefore(child, anchor) { + insertNode(node, child, anchor ?? null); + return child; + }, + removeChild(child) { + removeNode(node, child); + return child; + }, + replaceChild(next, current2) { + insertNode(node, next, current2); + removeNode(node, current2); + return current2; + }, + cloneNode(deep = false) { + return cloneNativeNode(node, !!deep); + }, + remove() { + if (node.parent) + removeNode(node.parent, node); + }, + setAttribute(name, value) { + setDomAttribute(node, name, value); + }, + removeAttribute(name) { + setDomAttribute(node, name, undefined); + }, + getAttribute(name) { + const value = node.domAttrs?.[name]; + return value == null ? null : String(value); + }, + hasAttribute(name) { + return node.domAttrs?.[name] != null; + }, + hasChildNodes() { + return node.children.length > 0; + }, + contains(other) { + let current2 = other ?? null; + while (current2) { + if (current2 === node) + return true; + current2 = current2.parent; + } + return false; + }, + addEventListener() {}, + removeEventListener() {} + }; + Object.assign(node, methods, { + style: { + length: 0, + item: () => "" + }, + classList: { + add() {}, + remove() {} + } + }); + return node; + } + decorateNativeNode(rootMirror); + var styleResolver = null; + function setStyleResolver(fn) { + styleResolver = fn; + } + var missCounters = { + unknownClass: 0, + unknownTexture: 0 + }; + var textures = new Map; + function registerTexture(key, handle) { + textures.set(key, handle); + } + var sprites = new Map; + function registerSprite(key, meta) { + sprites.set(key, meta); + } + var sweepSet = new Set; + var retained = new Set; + function subtreeHasRetained(node) { + if (!node) + return false; + if (retained.has(node)) + return true; + if (node.children) { + for (let i = 0;i < node.children.length; i++) { + if (subtreeHasRetained(node.children[i])) + return true; + } + } + return false; + } + function runSweep() { + if (sweepSet.size === 0) + return; + const ops = getOps(); + const keep = []; + for (const node of sweepSet) { + if (!node) + continue; + if (node.parent !== null) + continue; + if (subtreeHasRetained(node)) { + keep.push(node); + continue; + } + ops.destroyNode(node.id); + } + sweepSet.clear(); + for (let i = 0;i < keep.length; i++) + sweepSet.add(keep[i]); + } + function createElement(tag) { + const type = NODE_TYPE[tag]; + if (type === undefined) { + throw new Error(`PocketJS: unknown element <${tag}> - only view/text/image exist`); + } + return decorateNativeNode({ + id: getOps().createNode(type), + type, + parent: null, + children: [], + domNodeType: DOM_ELEMENT, + domTag: tag + }); + } + function createTextNode(value) { + const ops = getOps(); + const id = ops.createNode(NODE_TYPE.text); + ops.setText(id, value); + return decorateNativeNode({ + id, + type: NODE_TYPE.text, + parent: null, + children: [], + text: value, + domNodeType: DOM_TEXT, + domTag: "#text" + }); + } + function createCommentNode(data = "") { + const node = createTextNode(""); + node.domNodeType = DOM_COMMENT; + node.domTag = "#comment"; + node.domData = data; + return node; + } + function replaceText(node, value) { + getOps().replaceText(node.id, value); + node.text = value; + treeMutated(); + } + function isTextNode(node) { + return node.type === NODE_TYPE.text; + } + function unlink(node) { + const p = node.parent; + if (!p) + return; + const i = p.children.indexOf(node); + if (i >= 0) + p.children.splice(i, 1); + node.parent = null; + } + function insertNode(parent, node, anchor) { + const ops = getOps(); + unlink(node); + sweepSet.delete(node); + ops.insertBefore(parent.id, node.id, anchor ? anchor.id : 0); + if (anchor) { + const i = parent.children.indexOf(anchor); + if (i < 0) + throw new Error("PocketJS: insert anchor is not a child of parent"); + parent.children.splice(i, 0, node); + } else { + parent.children.push(node); + } + node.parent = parent; + treeMutated(); + } + function removeNode(parent, node) { + if (!node) + return; + notifyDetached(node); + getOps().removeChild(parent.id, node.id); + unlink(node); + sweepSet.add(node); + treeMutated(); + } + function getParentNode(node) { + return node.parent ?? undefined; + } + function getFirstChild(node) { + return node.children[0]; + } + function getNextSibling(node) { + const p = node.parent; + if (!p) + return; + const i = p.children.indexOf(node); + return i >= 0 ? p.children[i + 1] : undefined; + } + function setClass(node, value) { + const ops = getOps(); + treeMutated(); + if (value == null || value === "") { + ops.setStyle(node.id, STYLE_ID_NONE); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: class must be a string literal of utilities"); + } + const styleId = styleResolver ? styleResolver(value) : undefined; + if (styleId === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown class "${value}" - not in the compiled style table ` + "(dynamic classes must be ternaries of full literals)"); + } + missCounters.unknownClass++; + return; + } + ops.setStyle(node.id, styleId); + } + function setSrc(node, value) { + const ops = getOps(); + if (value == null || value === "") { + ops.setImage(node.id, -1); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: src must be a string key"); + } + const handle = textures.get(value); + if (handle === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown image src "${value}" - no texture registered under that key`); + } + missCounters.unknownTexture++; + return; + } + ops.setImage(node.id, handle); + } + function setSpriteSrc(node, value) { + const ops = getOps(); + if (value == null || value === "") { + ops.setSprite(node.id, -1, 0, 0, 0); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: sprite must be a string key"); + } + const meta = sprites.get(value); + if (meta === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown sprite "${value}" - no sprite atlas registered under that key`); + } + missCounters.unknownTexture++; + return; + } + ops.setSprite(node.id, meta.handle, meta.frames, meta.cols, meta.step); + } + function setStyleObject(node, value, prev) { + const ops = getOps(); + const next = value ?? {}; + const before = prev ?? {}; + let changed = false; + for (const key in next) { + const v = next[key]; + if (before[key] === v) + continue; + const propId = PROP[key]; + if (propId === undefined) { + throw new Error(`PocketJS: unknown style prop '${key}' (see spec PROP)`); + } + ops.setProp(node.id, propId, encodePropValue(key, v)); + changed = true; + } + if (changed) + treeMutated(); + } + function setProp(node, name, value, prev) { + if (value === prev && name !== "style") + return value; + if (name === "className") + name = "class"; + if (name !== "children" && name !== "key" && name !== "ref" && name !== "nodeRef") { + if (value == null) + delete domAttrs(node)[name]; + else + domAttrs(node)[name] = value; + } + switch (name) { + case "class": + setClass(node, value); + return value; + case "onPress": + case "on:press": + registerPress(node, value); + return value; + case "src": + setSrc(node, value); + return value; + case "sprite": + setSpriteSrc(node, value); + return value; + case "style": + setStyleObject(node, value, prev); + return value; + case "focusable": + registerFocusable(node, !!value); + return value; + case "debugName": + setDebugName(node, value == null ? undefined : String(value)); + return value; + case "ref": + case "nodeRef": + case "key": + case "children": + return value; + default: + break; + } + if (name === "classList") { + throw new Error("PocketJS: classList is not supported - use ternaries of full class literals"); + } + if (name.startsWith("on:") || name.startsWith("bool:") || name.startsWith("prop:")) { + throw new Error(`PocketJS: unsupported namespaced attribute '${name}'`); + } + throw new Error(`PocketJS: unknown property '${name}' on <${tagName(node)}>`); + } + function clearContainer(container) { + for (const child of [...container.children]) + removeNode(container, child); + } + function tagName(node) { + for (const key of Object.keys(NODE_TYPE)) { + if (NODE_TYPE[key] === node.type) + return key; + } + return String(node.type); + } + + // framework/src/renderer-solid.ts + function setProperty(node, name, value, prev) { + if (name === "ref" && typeof value === "function") { + value(node); + return; + } + setProp(node, name, value, prev); + } + var renderer = createRenderer({ + createElement, + createTextNode, + replaceText, + isTextNode, + setProperty, + insertNode(parent, node, anchor) { + insertNode(parent, node, anchor); + }, + removeNode(parent, node) { + removeNode(parent, node); + }, + getParentNode, + getFirstChild, + getNextSibling + }); + var { + render, + effect, + memo: memo2, + createComponent: createComponent2, + createElement: createElement2, + insert, + spread, + mergeProps: mergeProps2, + use + } = renderer; + + // framework/src/anim.ts + var EASING_BY_NAME = { + linear: ENUMS.Easing.Linear, + in: ENUMS.Easing.EaseIn, + out: ENUMS.Easing.EaseOut, + "in-out": ENUMS.Easing.EaseInOut, + "out-back": ENUMS.Easing.OutBack, + spring: ENUMS.Easing.Spring, + "spring-bouncy": ENUMS.Easing.SpringBouncy + }; + function nodeId(node) { + return typeof node === "number" ? node : node.id; + } + function animatablePropId(prop) { + const propId = PROP[prop]; + if (propId === undefined) { + throw new Error(`PocketJS: unknown prop '${prop}'`); + } + if (animBit(prop) < 0) { + throw new Error(`PocketJS: prop '${prop}' is not animatable (see spec ANIMATABLE)`); + } + return propId; + } + function animate(node, prop, to, opts = {}) { + const propId = animatablePropId(prop); + let easing; + if (typeof opts.easing === "number") { + easing = opts.easing; + } else { + const named = EASING_BY_NAME[opts.easing ?? "out"]; + if (named === undefined) { + throw new Error(`PocketJS: unknown easing '${opts.easing}'`); + } + easing = named; + } + return getOps().animate(nodeId(node), propId, encodePropValue(prop, to), opts.dur ?? 200, easing, opts.delay ?? 0); + } + function spring(node, prop, to, preset = "default") { + const propId = animatablePropId(prop); + const easing = preset === "bouncy" ? ENUMS.Easing.SpringBouncy : ENUMS.Easing.Spring; + return getOps().animate(nodeId(node), propId, encodePropValue(prop, to), 0, easing, 0); + } + + // framework/src/overlay.ts + var overlayRoot = null; + function setOverlayRoot(root2) { + overlayRoot = root2; + } + // framework/src/primitives.ts + function callRef(ref, node) { + if (!ref) + return; + if (typeof ref === "function") + ref(node); + else if ("current" in ref) + ref.current = node; + } + function primitive(tag, props) { + const el = createElement2(tag); + spread(el, props, false); + callRef(props.nodeRef, el); + return el; + } + function View(props) { + return primitive("view", props); + } + function Text(props) { + return primitive("text", props); + } + // framework/src/hot.ts + var lastText = new WeakMap; + var lastProp = new WeakMap; + + // framework/src/platform.ts + var features = {} !== null ? Object.freeze({ + ...{} + }) : Object.freeze({}); + var platform = Object.freeze({ + target: "", + pixelRatio: Number.isInteger(1) ? 1 : 1, + features + }); + + // framework/src/tiles.ts + var parsed = new Map; + // apps/cards/app.tsx + var CARDS = [{ + title: "Layout", + caption: "Flexbox via Taffy", + detail: "Rows, columns, gaps and insets — solved natively in Rust.", + cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-blue-50 focus:border-blue-500 focus:translate-y-0 transition-all duration-150 ease-out", + strip: "h-1 w-full rounded-sm bg-gradient-to-r from-blue-500 to-blue-600", + bar: "w-1 h-7 bg-blue-500" + }, { + title: "Motion", + caption: "Springs and tweens", + detail: "Fixed-dt springs and tweens tick natively at 60 FPS.", + cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-emerald-50 focus:border-emerald-500 focus:translate-y-0 transition-all duration-150 ease-out", + strip: "h-1 w-full rounded-sm bg-gradient-to-r from-emerald-500 to-emerald-600", + bar: "w-1 h-7 bg-emerald-500" + }, { + title: "Input", + caption: "D-pad and focus", + detail: "Native focus variants respond before JS even wakes up.", + cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-amber-50 focus:border-amber-500 focus:translate-y-0 transition-all duration-150 ease-out", + strip: "h-1 w-full rounded-sm bg-gradient-to-r from-amber-500 to-amber-600", + bar: "w-1 h-7 bg-amber-500" + }]; + function Detail(props) { + let el; + onMount(() => { + if (el) + spring(el, "translateY", 0); + }); + return createComponent2(View, { + ref(r$) { + var _ref$ = el; + typeof _ref$ === "function" ? _ref$(r$) : el = r$; + }, + debugName: "Detail", + style: { + translateY: 22 + }, + class: "flex-row items-center gap-3 p-3 rounded-xl shadow-md bg-white border-slate-200", + get children() { + return [createComponent2(View, { + get ["class"]() { + return props.card.bar; + } + }), createComponent2(View, { + class: "flex-col gap-1", + get children() { + return [createComponent2(Text, { + class: "text-sm text-slate-950 font-bold", + get children() { + return props.card.title; + } + }), createComponent2(Text, { + class: "text-xs text-slate-600", + get children() { + return props.card.detail; + } + })]; + } + })]; + } + }); + } + function Cards() { + const [open, setOpen] = createSignal(-1); + const selected = () => open() >= 0 ? CARDS[open()] : undefined; + let streakA; + let streakB; + onMount(() => { + if (streakA) + animate(streakA, "translateX", 300, { + dur: 20000, + easing: "linear" + }); + if (streakB) + animate(streakB, "translateX", -260, { + dur: 26000, + easing: "linear" + }); + }); + return createComponent2(View, { + debugName: "CardsScreen", + class: "relative flex-col w-full h-full p-4 gap-3 bg-slate-50 overflow-hidden", + get children() { + return [createComponent2(View, { + ref(r$) { + var _ref$2 = streakA; + typeof _ref$2 === "function" ? _ref$2(r$) : streakA = r$; + }, + class: "absolute left-0 top-[58] w-64 h-1 rounded-full opacity-50 bg-gradient-to-r from-blue-300 to-transparent", + style: { + translateX: 24 + } + }), createComponent2(View, { + ref(r$) { + var _ref$3 = streakB; + typeof _ref$3 === "function" ? _ref$3(r$) : streakB = r$; + }, + class: "absolute left-[210] top-[246] w-56 h-1 rounded-full opacity-40 bg-gradient-to-l from-cyan-300 to-transparent", + style: { + translateX: 0 + } + }), createComponent2(View, { + debugName: "Header", + class: "flex-row items-end justify-between", + get children() { + return [createComponent2(View, { + class: "flex-col", + get children() { + return [createComponent2(Text, { + class: "text-xs text-blue-600 tracking-wide", + children: "POCKETJS SHOWCASE" + }), createComponent2(Text, { + class: "text-2xl text-slate-950 font-bold", + children: "Feature Cards" + })]; + } + }), createComponent2(Text, { + class: "text-xs text-slate-500", + children: "3 MODULES" + })]; + } + }), createComponent2(View, { + debugName: "CardRow", + class: "flex-row gap-3", + get children() { + return CARDS.map((card, i) => createComponent2(View, { + get ["class"]() { + return card.cls; + }, + focusable: true, + onPress: () => setOpen(open() === i ? -1 : i), + get children() { + return [createComponent2(View, { + get ["class"]() { + return card.strip; + } + }), createComponent2(Text, { + class: "text-sm text-slate-950 font-bold", + get children() { + return card.title; + } + }), createComponent2(Text, { + class: "text-xs text-slate-600", + get children() { + return card.caption; + } + })]; + } + })); + } + }), createComponent2(View, { + debugName: "DetailPane", + class: "grow flex-col", + get children() { + return createComponent2(Show, { + get when() { + return selected(); + }, + keyed: true, + children: (card) => createComponent2(Detail, { + card + }) + }); + } + }), createComponent2(Text, { + class: "text-xs text-slate-500", + children: "LEFT / RIGHT move focus · CIRCLE toggle details" + })]; + } + }); + } + + // framework/src/devtools.ts + var TAPE_CAP = 36000; + var TREE_THROTTLE = 30; + var STATS_EVERY = 30; + var state = { + ops: null, + transport: null, + app: undefined, + frame: 0, + tape: new Uint16Array(TAPE_CAP), + tapeAnalog: new Uint16Array(TAPE_CAP), + tapeStart: 0, + tapeLen: 0, + tapeFirstFrame: 0, + replayMasks: null, + replayAnalog: null, + replayAt: 0, + paused: false, + stepQueued: 0, + inspectReportId: null, + inspectAskedAt: 0, + treeDirty: true, + treeSentAt: -TREE_THROTTLE, + saidHello: false, + hostCalls: 0 + }; + function initDevtools(ops) { + const g = globalThis; + if (!g.console) + g.console = { + log() {}, + warn() {}, + error() {} + }; + state.ops = ops; + state.frame = 0; + state.tapeStart = 0; + state.tapeLen = 0; + state.tapeFirstFrame = 0; + state.replayMasks = null; + state.replayAnalog = null; + state.paused = false; + state.stepQueued = 0; + state.inspectReportId = null; + state.inspectAskedAt = 0; + state.treeDirty = true; + state.treeSentAt = -TREE_THROTTLE; + state.saidHello = false; + state.hostCalls = 0; + state.app = globalThis.__pocketApp; + const injected = globalThis.__pocketDevtoolsTransport; + if (injected) { + state.transport = injected; + } else if (ops.__dbgActive?.() && ops.__dbgPoll && ops.__dbgSend) { + state.transport = { + send: (l) => ops.__dbgSend(l), + recv: () => ops.__dbgPoll(), + everyFrames: 10 + }; + } else { + state.transport = null; + } + if (state.transport) { + setTreeMutationHook(() => { + state.treeDirty = true; + }); + bridgeConsole(); + } else { + setTreeMutationHook(null); + } + globalThis.__pocketDevtools = api; + } + function wrapFrameHandler(h) { + return (buttons, analogArg, touchArg) => { + state.hostCalls++; + if (state.transport) { + pollTransport(); + flushInspectReport(); + } + let mask = buttons; + let analog = analogArg === undefined ? ANALOG_CENTER : analogArg & 65535; + let touch = touchArg; + if (state.replayMasks) { + if (state.replayAt < state.replayMasks.length) { + mask = state.replayMasks[state.replayAt]; + analog = state.replayAnalog ? state.replayAnalog[state.replayAt] : ANALOG_CENTER; + touch = undefined; + state.replayAt++; + } else { + state.replayMasks = null; + state.replayAnalog = null; + send({ + t: "replayDone", + frame: state.frame + }); + } + } + if (state.paused) { + if (state.stepQueued <= 0) + return; + state.stepQueued--; + state.ops?.debugStep?.(); + } + recordMask(mask, analog); + state.frame++; + try { + h(mask, analog, touch); + } catch (e) { + send({ + t: "error", + frame: state.frame, + message: e instanceof Error ? e.message : String(e), + stack: e instanceof Error ? e.stack : undefined + }); + throw e; + } + if (state.transport) + afterFrame(); + }; + } + function recordMask(mask, analog) { + if (state.tapeLen < TAPE_CAP) { + const at = (state.tapeStart + state.tapeLen) % TAPE_CAP; + state.tape[at] = mask; + state.tapeAnalog[at] = analog; + state.tapeLen++; + } else { + state.tape[state.tapeStart] = mask; + state.tapeAnalog[state.tapeStart] = analog; + state.tapeStart = (state.tapeStart + 1) % TAPE_CAP; + state.tapeFirstFrame++; + } + } + function rlePairs(ring) { + const out = []; + for (let i = 0;i < state.tapeLen; i++) { + const v = ring[(state.tapeStart + i) % TAPE_CAP]; + const last = out[out.length - 1]; + if (last && last[0] === v) + last[1]++; + else + out.push([v, 1]); + } + return out; + } + function exportTape() { + const tape = { + v: 1, + app: state.app, + frames: state.tapeLen, + masks: rlePairs(state.tape), + startFrame: state.tapeFirstFrame + }; + const analog = rlePairs(state.tapeAnalog); + if (analog.length > 1 || analog.length === 1 && analog[0][0] !== ANALOG_CENTER) { + tape.analog = analog; + } + return tape; + } + function expandPairs(pairs, fill, total) { + const out = new Uint16Array(total).fill(fill); + let at = 0; + for (const [v, n] of pairs) { + out.fill(v, at, Math.min(at + n, total)); + at += n; + } + return out; + } + function expandTape(tape) { + let total = 0; + for (const [, n] of tape.masks) + total += n; + return expandPairs(tape.masks, 0, total); + } + function expandTapeAnalog(tape) { + let total = 0; + for (const [, n] of tape.masks) + total += n; + return expandPairs(tape.analog ?? [], ANALOG_CENTER, total); + } + function send(msg) { + try { + state.transport?.send(JSON.stringify(msg)); + } catch {} + } + function pollTransport() { + const t = state.transport; + const every = t.everyFrames ?? 1; + if (every > 1 && state.hostCalls % every !== 0) + return; + if (!state.saidHello) { + state.saidHello = true; + send({ + t: "hello", + app: state.app, + host: hostKind(), + frame: state.frame + }); + } + for (let guard = 0;guard < 64; guard++) { + const chunk = t.recv(); + if (!chunk) + break; + for (const line of chunk.split(` +`)) { + if (line.trim()) + handleMessage(line); + } + } + } + function handleMessage(line) { + let msg; + try { + msg = JSON.parse(line); + } catch { + return; + } + const ops = state.ops; + switch (msg.t) { + case "inspect": { + const id = typeof msg.id === "number" ? msg.id : 0; + ops?.debugInspect?.(id); + state.inspectReportId = id || null; + state.inspectAskedAt = state.hostCalls; + if (!id) + send({ + t: "inspect", + id: 0, + rect: null + }); + break; + } + case "pause": + state.paused = true; + state.stepQueued = 0; + ops?.debugPause?.(true); + sendStats(); + break; + case "resume": + state.paused = false; + ops?.debugPause?.(false); + sendStats(); + break; + case "step": + state.stepQueued += typeof msg.n === "number" && msg.n > 0 ? msg.n : 1; + break; + case "getTree": + sendTree(); + break; + case "eval": { + let ok = true; + let value; + try { + value = fmt((0, eval)(String(msg.code))); + } catch (e) { + ok = false; + value = e instanceof Error ? `${e.name}: ${e.message}` : String(e); + } + send({ + t: "evalResult", + id: msg.id, + ok, + value + }); + break; + } + case "dumpTape": + send({ + t: "tape", + tape: exportTape() + }); + break; + case "devStats": { + let data = null; + const raw = ops?.debugStats?.(); + if (raw) { + try { + data = JSON.parse(raw); + } catch { + data = null; + } + } + send({ + t: "devStats", + frame: state.frame, + data + }); + break; + } + case "screenshot": { + if (ops?.__dbgShot?.()) { + send({ + t: "screenshotRaw", + file: "shot.raw", + w: 480, + h: 272, + stride: 512, + frame: state.frame + }); + } else { + send({ + t: "log", + level: "warn", + args: ["screenshot: not supported on this host"] + }); + } + break; + } + case "replay": { + const tape = msg.tape; + if (tape && Array.isArray(tape.masks)) { + state.replayMasks = expandTape(tape); + state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; + state.replayAt = 0; + } + break; + } + default: + break; + } + } + function afterFrame() { + if (state.treeDirty && state.frame - state.treeSentAt >= TREE_THROTTLE) { + sendTree(); + } + if (state.frame % STATS_EVERY === 0) + sendStats(); + } + function flushInspectReport() { + const id = state.inspectReportId; + if (id == null) + return; + const ops = state.ops; + if (!ops?.debugRectXY || !ops.debugRectWH) { + state.inspectReportId = null; + return; + } + const xy = ops.debugRectXY(); + if (xy === -1) { + if (state.hostCalls - state.inspectAskedAt > 60) { + state.inspectReportId = null; + send({ + t: "inspect", + id, + rect: null + }); + } + return; + } + const wh = ops.debugRectWH(); + state.inspectReportId = null; + send({ + t: "inspect", + id, + rect: [xy << 16 >> 16, xy >> 16, wh & 65535, wh >> 16 & 65535] + }); + } + function sendStats() { + send({ + t: "stats", + frame: state.frame, + nodes: countNodes(rootMirror), + tapeLen: state.tapeLen, + paused: state.paused + }); + } + function sendTree() { + state.treeDirty = false; + state.treeSentAt = state.frame; + send({ + t: "tree", + frame: state.frame, + root: serializeNode(rootMirror) + }); + } + function isTreeMirror(value) { + if (value == null || typeof value !== "object") + return false; + const candidate = value; + return typeof candidate.id === "number" && typeof candidate.type === "number"; + } + function forEachTreeMirror(value, visit) { + if (Array.isArray(value)) { + for (const entry of value) + forEachTreeMirror(entry, visit); + return; + } + if (isTreeMirror(value)) { + visit(value); + return; + } + if (value != null && typeof value === "object") { + const nodes = value.nodes; + if (nodes !== undefined) + forEachTreeMirror(nodes, visit); + } + } + function forEachTreeChild(node, visit) { + const children2 = Array.isArray(node.children) ? node.children : []; + for (const child of children2) + forEachTreeMirror(child, visit); + } + function serializeNode(node) { + const out = { + i: node.id, + t: node.domTag ?? String(node.type) + }; + if (node.debugName) + out.n = node.debugName; + const cls = node.domAttrs?.class; + if (typeof cls === "string" && cls) + out.c = cls; + if (node.text) + out.x = node.text.length > 80 ? node.text.slice(0, 79) + "…" : node.text; + const kids = []; + forEachTreeChild(node, (child) => { + if (child.domNodeType === 8) + return; + kids.push(serializeNode(child)); + }); + if (kids.length) + out.k = kids; + return out; + } + function countNodes(node) { + let n = 1; + forEachTreeChild(node, (child) => { + n += countNodes(child); + }); + return n; + } + function bridgeConsole() { + const g = globalThis; + if (!g.console) + g.console = {}; + const c = g.console; + if (c.__pocketBridged) + return; + c.__pocketBridged = true; + for (const level of ["log", "warn", "error"]) { + const original = c[level]; + c[level] = (...args) => { + send({ + t: "log", + level, + args: args.map((a) => fmt(a)) + }); + original?.apply(c, args); + }; + } + } + function fmt(v, depth = 0) { + if (v === undefined) + return "undefined"; + if (v === null) + return "null"; + const t = typeof v; + if (t === "string") { + const s = v; + return depth === 0 ? clip(s) : JSON.stringify(clip(s)); + } + if (t === "number" || t === "boolean" || t === "bigint") + return String(v); + if (t === "function") { + const name = v.name; + return name ? `[function ${name}]` : "[function]"; + } + if (depth >= 3) + return Array.isArray(v) ? "[…]" : "{…}"; + if (Array.isArray(v)) { + const items = v.slice(0, 20).map((x) => fmt(x, depth + 1)); + if (v.length > 20) + items.push(`… ${v.length - 20} more`); + return `[${items.join(", ")}]`; + } + if (v instanceof Error) + return `${v.name}: ${v.message}`; + const entries2 = Object.entries(v).slice(0, 20); + const body = entries2.map(([k, x]) => `${k}: ${fmt(x, depth + 1)}`).join(", "); + return `{${body}}`; + } + function clip(s) { + return s.length > 200 ? s.slice(0, 199) + "…" : s; + } + function hostKind() { + const ops = state.ops; + if (typeof ops?.__host === "string") + return ops.__host; + if (ops?.__textures !== undefined) + return "psp"; + if (typeof globalThis.document !== "undefined") + return "web"; + return "headless"; + } + var api = { + get frame() { + return state.frame; + }, + dumpTape: () => exportTape(), + replay: (tape) => { + state.replayMasks = expandTape(tape); + state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; + state.replayAt = 0; + } + }; + + // framework/src/styles.ts + var verbatim = new Map; + var sortedAlias = new Map; + function normalize(cls) { + return cls.trim().replace(/\s+/g, " "); + } + function sortTokens(normalized) { + return normalized.split(" ").sort().join(" "); + } + var ALIAS_AMBIGUOUS = -1; + function registerStyles(table) { + for (const key of Object.keys(table)) { + const id = table[key]; + const norm = normalize(key); + verbatim.set(norm, id); + const sorted = sortTokens(norm); + const prev = sortedAlias.get(sorted); + sortedAlias.set(sorted, prev !== undefined && prev !== id ? ALIAS_AMBIGUOUS : id); + } + } + function resolveStyle(cls) { + const norm = normalize(cls); + const hit = verbatim.get(norm); + if (hit !== undefined) + return hit; + const alias = sortedAlias.get(sortTokens(norm)); + return alias === ALIAS_AMBIGUOUS ? undefined : alias; + } + + // framework/src/touch.ts + var LEGACY_COORD_BITS = 9; + var LEGACY_COORD_MASK = (1 << LEGACY_COORD_BITS) - 1; + var LEGACY_ID_SHIFT = LEGACY_COORD_BITS * 2; + var WIDE_MARKER = 2147483648; + var WIDE_COORD_BITS = 10; + var WIDE_COORD_MASK = (1 << WIDE_COORD_BITS) - 1; + var WIDE_ID_SHIFT = WIDE_COORD_BITS * 2; + var EMPTY = Object.freeze([]); + var snapshot = EMPTY; + function __setTouches(packed) { + if (!packed || packed.length === 0) { + snapshot = EMPTY; + return; + } + snapshot = Object.freeze(packed.slice(0, 8).map((value) => { + const wide = (value & WIDE_MARKER) !== 0; + const coordBits = wide ? WIDE_COORD_BITS : LEGACY_COORD_BITS; + const coordMask = wide ? WIDE_COORD_MASK : LEGACY_COORD_MASK; + const idShift = wide ? WIDE_ID_SHIFT : LEGACY_ID_SHIFT; + return Object.freeze({ + id: value >>> idShift & 255, + x: value & coordMask, + y: value >>> coordBits & coordMask + }); + })); + } + function __resetTouches() { + snapshot = EMPTY; + } + + // framework/src/effects.ts + var nextId = 1; + var pending = new Map; + var queue = []; + function traceSink() { + const s = globalThis.__pocketEffectTrace; + return typeof s === "function" ? s : null; + } + function resetEffects() { + nextId = 1; + pending.clear(); + queue = []; + } + function __drainEffects() { + if (queue.length === 0) + return; + const batch = queue; + queue = []; + for (const { + id, + result + } of batch) { + const entry = pending.get(id); + if (!entry) + continue; + pending.delete(id); + traceSink()?.({ + t: "delivery", + frame: virtualFrame(), + id, + kind: entry.kind + }); + entry.onResult(result); + } + } + + // framework/src/styles.generated.ts + var STYLE_IDS = { + "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-blue-50 focus:border-blue-500 focus:translate-y-0 transition-all duration-150 ease-out": 0, + "h-1 w-full rounded-sm bg-gradient-to-r from-blue-500 to-blue-600": 1, + "w-1 h-7 bg-blue-500": 2, + "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-emerald-50 focus:border-emerald-500 focus:translate-y-0 transition-all duration-150 ease-out": 3, + "h-1 w-full rounded-sm bg-gradient-to-r from-emerald-500 to-emerald-600": 4, + "w-1 h-7 bg-emerald-500": 5, + "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-amber-50 focus:border-amber-500 focus:translate-y-0 transition-all duration-150 ease-out": 6, + "h-1 w-full rounded-sm bg-gradient-to-r from-amber-500 to-amber-600": 7, + "w-1 h-7 bg-amber-500": 8, + "flex-row items-center gap-3 p-3 rounded-xl shadow-md bg-white border-slate-200": 9, + "flex-col gap-1": 10, + "text-sm text-slate-950 font-bold": 11, + "text-xs text-slate-600": 12, + "relative flex-col w-full h-full p-4 gap-3 bg-slate-50 overflow-hidden": 13, + "absolute left-0 top-[58] w-64 h-1 rounded-full opacity-50 bg-gradient-to-r from-blue-300 to-transparent": 14, + "absolute left-[210] top-[246] w-56 h-1 rounded-full opacity-40 bg-gradient-to-l from-cyan-300 to-transparent": 15, + "flex-row items-end justify-between": 16, + "flex-col": 17, + "text-xs text-blue-600 tracking-wide": 18, + "text-2xl text-slate-950 font-bold": 19, + "text-xs text-slate-500": 20, + "flex-row gap-3": 21, + "grow flex-col": 22, + "relative flex-col w-full h-full bg-slate-50 overflow-hidden": 23, + "absolute inset-0 z-50 flex-col items-center justify-center": 24, + "absolute inset-0 bg-slate-950": 25, + "flex-col gap-2 w-[328] p-3 rounded-xl shadow-lg bg-white border-slate-200": 26, + "absolute left-3 right-3 bottom-3 flex-row items-center justify-between px-2 py-1 rounded-lg shadow-md bg-white border-slate-200": 27, + "flex-row flex-wrap": 28, + grow: 29 + }; + + // framework/src/index.ts + if (typeof globalThis.queueMicrotask !== "function") { + globalThis.queueMicrotask = (fn) => { + Promise.resolve().then(fn); + }; + } + var STYLES_KEY = "ui:styles"; + var FONT_PREFIX = "ui:font."; + var IMG_PREFIX = "ui:img."; + var SPRITE_PREFIX = "ui:sprite."; + function globalOps() { + return globalThis.ui; + } + function uploadPakImages(ops) { + if (ops.__textures) + return; + for (const key of entries(IMG_PREFIX)) { + const blob = get(key); + let handle; + if (ops.uploadImgEntry) { + handle = ops.uploadImgEntry(blob); + } else { + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + handle = ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); + } + if (handle >= 0) + registerTexture(key.slice(IMG_PREFIX.length), handle); + } + } + function uploadPakSprites(ops) { + if (ops.__sprites) + return; + for (const key of entries(SPRITE_PREFIX)) { + const blob = get(key); + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + const w = dv.getUint16(0, true); + const h = dv.getUint16(2, true); + const psm = blob[4]; + const frames = dv.getUint16(6, true); + const cols = dv.getUint16(8, true); + const step = dv.getUint16(10, true); + const handle = ops.uploadTexture(blob.subarray(16), w, h, psm); + if (handle >= 0) { + registerSprite(key.slice(SPRITE_PREFIX.length), { + handle, + frames, + cols, + step + }); + } + } + } + function createLayer(style) { + const layer = createElement2("view"); + setProp(layer, "style", style, undefined); + return layer; + } + var appLayer = null; + var overlayLayer = null; + function resizeViewport(w, h) { + if (!appLayer || !overlayLayer) + return; + setProp(appLayer, "style", { + width: w, + height: h, + overflow: ENUMS.Overflow.Hidden + }, undefined); + setProp(overlayLayer, "style", { + width: w, + height: h, + posType: ENUMS.PosType.Absolute, + insetT: 0, + insetR: 0, + insetB: 0, + insetL: 0, + zIndex: 1000 + }, undefined); + const ops = getOps(); + ops.__viewport = { + w, + h + }; + } + function render2(code, opts = {}) { + const host = detectHost(opts.ops); + installHost(host); + setStyleResolver(resolveStyle); + if (opts.styles) + registerStyles(opts.styles); + const nativeTextureTable = host.kind === "native" ? host.ops.__textures : undefined; + if (host.kind === "native") { + if (nativeTextureTable) { + for (const key in nativeTextureTable) { + registerTexture(key, nativeTextureTable[key]); + } + } + const spr = host.ops.__sprites; + if (spr) { + for (const key in spr) + registerSprite(key, spr[key]); + } + } + if (host.kind === "injected" || nativeTextureTable === undefined) { + if (opts.pak) + loadPack(opts.pak); + if (hasPack()) { + for (const key of entries()) { + if (key === STYLES_KEY) { + host.ops.loadStyles?.(get(key)); + } else if (key.startsWith(FONT_PREFIX)) { + host.ops.loadFontAtlas?.(get(key)); + } + } + } + } + const viewport = hostViewport(host.ops); + const layerW = viewport?.w ?? SCREEN_W; + const layerH = viewport?.h ?? SCREEN_H; + const appRoot = createLayer({ + width: layerW, + height: layerH, + overflow: ENUMS.Overflow.Hidden + }); + const overlayRoot2 = createLayer({ + width: layerW, + height: layerH, + posType: ENUMS.PosType.Absolute, + insetT: 0, + insetR: 0, + insetB: 0, + insetL: 0, + zIndex: 1000 + }); + insertNode(rootMirror, appRoot); + insertNode(rootMirror, overlayRoot2); + setOverlayRoot(overlayRoot2); + appLayer = appRoot; + overlayLayer = overlayRoot2; + setInputRoot(appRoot); + setHitRoot(rootMirror); + resetFrameHooks(); + resetClock(); + resetEffects(); + initDevtools(host.ops); + installFrameHandler(wrapFrameHandler((buttons, analog, touches) => { + __advanceClock(); + __setAnalog(analog); + __setTouches(touches); + __drainEffects(); + runFrameHooks(buttons); + handleFrame(buttons); + runSweep(); + })); + const dispose = render(code, appRoot); + const removeResizeViewportHook = installResizeViewportHook(resizeViewport); + return () => { + removeResizeViewportHook(); + __resetTouches(); + dispose(); + setInputRoot(null); + setHitRoot(null); + setOverlayRoot(null); + appLayer = null; + overlayLayer = null; + for (const child of rootMirror.children.splice(0)) { + child.parent = null; + host.ops.destroyNode(child.id); + } + runSweep(); + }; + } + function mount(code, opts = {}) { + const ops = opts.ops ?? globalOps(); + if (!ops) { + throw new Error("PocketJS: mount() requires globalThis.ui or opts.ops"); + } + if (opts.pak) + loadPack(opts.pak); + uploadPakImages(ops); + uploadPakSprites(ops); + const dispose = render2(code, { + ops, + styles: opts.styles ?? STYLE_IDS, + pak: opts.pak + }); + return dispose; + } + + // apps/cards/main.tsx + mount(() => createComponent2(Cards, {})); +})(); diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.dll b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.dll new file mode 100644 index 0000000000000000000000000000000000000000..871c77bd3b861cf380436b6f207fb0bb8529a463 GIT binary patch literal 802157 zcmcG%3!Gh5dH28exy+n78DLLlMyA79_9Q_gM%W3cF{N?>u|~!AX(zM-~Xrc`JCB%ue~nMde*a^+j`d8@4tM^WQ{R7els)1+|N~iCHw!i|J8VX^67g| zHurV>-QfMsMSnNA_L`4;%Bx=YiQl;H%8z*;yz=88|HSp)RUh)M`>l_AANjbq;#byq zAN$1BA3E!#lZp$Hs>|;(rtY|=ZOMl}YMw5dBb~;CrfqPJlUZthzFljCYtFs^r!F>K*3Vd9U{J z|2_Sz>pyhE^%OsEfc^*|_4PP7JmXi+y86oNujI9QZPa(+VxE0civ24Yzkb$rt&H^& z*eLP-0>r1+yw2#!uOn`Y5JSFS32PLt4x}HF6p08J}-#cs3YeF5va9! zm2YxprvHc3`Q4eBDU~;7RksT~#t*t3KghzH`d!-1mg*CoKJXbszSYf)A2@;`TY79l za60wjhTwF}716)X%q%lr(9C-E36*tB(ERzCv*}0cYU?kR8@wyz%#L{J>jlq_xcG5% zGzW}s>4C|2v}LA><~o(znyYukPW_^WF;_Hmbtfim-{jAkspsGImgj^orvmOuLG+a@ z_0)r=sghO;qINHcI^7^D0JrKj_0jn9E0VqkL3FOSC(iR8Si6LqznYl=j?0@xH|QdN zSKI5&X)4#QIy~w)INF$g*8`JJ3s+c3U0yodz2NdFRp)JvNwe-8BgKHDFa)@!kNv~f+$-JA}A=4cx=hoUPkmK=dB2tahaX7BqY^~t(Y9dFc(j`!x?C`rOPZ8nJa+Vcc|haw za^1ge-v>?g`3(B}27YhjH}ihzg8EF*qJs=|WvTc2!98)d97HQ9cflz^^R|5EsDTb) z`~AYBXkjgR&g1?@8W&v34a`*6VG|ut+`cKSJ*B@yxQ zG)LP_If7R2R+`?ct<%AQuB!&r?;Y{{1jaSMxB}SHK0p66}_ zPoBCppFb@6sW1oORc)mp3%e~A%t*r-2%2qP5Pci?lvi{&SA79j*;3FHUPbdaz@MhY z?<&wrl{s7@y$p|}pBnFzl5rMooSLM;+AY0^?sHy?mM=~CGCc5Z;E39(L-e6?)34G- z_5^MGEZ1uHL~We+avRT_u#I1#AJE3k7Jk-+1TdWBJ>z)|hRG z40RSNTcU+E`gB94VHWXxJ2dBw#)Xplygn+{Hwey#$$nwdErZhv_0q;1`ckNDh&s5> zG5(?t%@bd9;P;Rl%$s#S^sxLb&)r+vX6fCj1kpogPb_*onep9WoKXCs&t2CTI%R$1 zln|c&Jn{otoL=`pLG(N0wl(^^TI0S?)}wnC*Q0OpbKQFERNvjm&~N3DobIe$9cJ7| z;&K0x$nlZSwF?{V=CUYP-xB_4W@hg#xm=j@hsg6_Z2Yi!pFb3BSiC;Wx!dDHz1GOp zhvU;L8ycN%E#9z-bZ=)|@N03-tdC87U7Yi3&=Nm06a(92z+9d@1*L{Q=EAoi1Js9F z(ueJ~546*r@$0?ge!Z(;YIAebyPrkpXe$5fn7j9TtD?)`OIfoTIkCJkhq-q8J8ST< z)#6db+>$ZsS<@uFm;txKPdB=S@IzfW^p&YLe^uNEu7`o+Ub78;S8BA{Vcyf8>@2}r zFk|t*Aj_vSW6~+2>A5v~<*n6M+~oP{ld|Qw`$<=M=#WGL;TA-1Z~W1+_&#gS5N&= z-uEtQbnyP?joIv@Q#qxe3m)5zjP7?RPd(XFx$g#-#$4L`=Bh(oz2(RAe)(OLySSNQ zTp8xgMR>=yKe#!}*KP|R-t*Pam|txc%FO!;ycGRKJWR6Qsc&KYu8598a|W6L4^7Pn z;aOK-{I?`|@yTYN;PoGmjk_au{O(4kYhU(SvnLN9E^^-#ZC}BB5q;mY@9}7C|Gd!B zwpj!39%=j--80X-?)u~L?014k??f{`{J7wb0Mph<#{a11Dt$)p+!6P@40sk@LFa*7#)AkI0Sjwx-AGs_=B&s+_D&D~r4;qaS_4@dJK z4x+a+_U5g_rW5?qCr~pUkavu4xWQH`jaacVwa04D`hP z$m~3#KhIP7)lE}r$<@Bny2hB?><7??TlH$6a8+RlJ! z2S|6y>l?0Z|6;4}C_gfw@dMxxPwey7*}V6tJ<&OBIAw65`bzL4>KlNsjtmZkYVR)9 z39WkmPWrUg*4aj#)VEA}gah6MH#o66JZ<#t^$$g-FmH9=R}sF^nae>J^;^6N4r~Pr z$5>K-0l4%2leUcl{cUfxVPVes*jthp)M@F?cSI9?qP-mW(i}AP5w7cWAFZ5sFX>xi z(N4}CidVv$^4_Yr=Iw9hz2$L^e4?qe-W>Ib{?(U)Ih6ODz;TQR{b8SAf$N=c)#)Du zzV4O{T(WvpU(UGkMc+k__P`@;i>{=%QMP$C`tPaIk&<`m9KY$Pa}=Er-Ejn1WIyes zf7wQ__rXTSsW;v1Pm$@RG zV;F4KedhT+w=lP-Ztxs)Kfk+@-?dzi|7{}e))S;FpUP|8GSJ*y>hpo8>z9Wceb7B} z)joTr)^jm=_LFDks(rsOc^2QxbPfcW04QIk zf1Baua*}rN)Ext z`uF+=BjL8sj4569Cop}o$vemR$S~?NW~evGL)q(^9lqci&UOHct(vnRnFFg-hu)MUU`Y&TX-rCz)-85JF zk>GF>*&w+h{r(rQG5eAn_qxoGo1)Qa`-+f<|Wb=CjF!Nb|cy1r}JllD9F8v-D6i-^+1h&0ym+n_J zp^g6BV)Q=$@Wf)^1;?Au<_e!b^9-)=tl~od!XfBo^L(DAgM5subh0VZfo1bYTj|&X z_#(OIy7^`P(Bcy}nyqmUW9ay$hGf?5*=z`Zp1Qsc4=mk2k%6WiY_BZ#ruvtw-wu3N zG?5d99>!I65WeCAn`YIcIz$sS)lpX+SJ*m~9~k;GnVQNYf6Gm1;()=osOKu}yZ8or zN`b~;YDd(HM%pbi%qpwdY`aNQk~s-Ne(u3bJxTdQ=x^cs7=TK5H~w573S)o{3_Yj`5(t&gu6 zti@L^uf^AP)neXHPQM#nop!ESy(iuU9b~VBDqTkb`FD0*jx_7+c#z&~r zsSY>Vy;|5_KRDr(;9s@J;@pZYQMUeATv$00bzU?QEqD|^;ig<8_b5KGhqgpB7je&Z z5x%uWBm7pPGuP`A*;0UYrg4T`kzp zoDDlZL&3cWzg_{@9bgyS*|Gg`{{Kh4r(vsFyj)%yqhtPHl5&o z*qAM!bzd+VUjV*x*gMK!AbrRTyFK#DLZ`^Lse8%?!%lQM$v${Fy4mUod9hb>&^1~= zEH_yh$0i#NDJR`+$|)awwg>-u8|5IXW943?+#=qKUNYeCP3SCh%0t+K7f0x02Zn0H zVWvtw_;l1(PjzF%skHnhW(;2KkH)|;RS4AX<;{Eir@NfsseH~K?d=q82cvo6^_yRM zqN_J}l62M{z@antxkd(BkX?~c-P9}E@1vfg`PFC&xCFQCv^hrbl%qeNnRy0%W6F5) zE$E7$3YZ5HU%uMu!k&kZN6t9wX?E@)Lp;fw)scL%(Bc8%aSkwWf17jw2OU6ZR`xK@ z=J?yu8}1ANoV7k|sPVyA_EQGh5j+q63Os>l$-q8*1d>l_J;odBW!$?ngZsN>L(7i8 zZ{Lw<(ZxaZHT-+0q06A-^}h|Dt=6$5_wWhc{Z0I)ixU4Ix|U#xq^}H%9|5cE34E9h z>#t4p6v?u|GlOV|-$U5lU*>9U5#TY(U&arQj)-3v8g9iQ1mu%{)8Ym`lymU~3A+B08=CUNjXT`&=qf{cX-DXkzY-enI_5{SktyZEY&p;PzPv8?GjTl={0~5|s`8nl(AHyH3@zy)W!I8bWWA0ci+bmgous#9he=WZ8^`D%W_kHyz z*t7KWyM9Y&^B+N@dJTTP1X$>|AU`3$7JnBUrgDt;_Q^+a4)YE^+?Vp$lqcW(DsZg_ zu4!T%()^}IebiYf@9511BXgm*{%O|U4Lnx(DOBGD4+)$;Z({~oP{42LT>q1qIi9z% zVST9vdztb21nuR@JDGbIN8d*mR2|35kq^_h`oX-wPjM(Zm-?AQ)<2`Rn48d9X!)T* zXKnGv>#)_|^4zPHQF+l^mU$=M)>lgXUDr2r-i1TP-L@W`lk3p>bk4cZ{q5-7x1v{{ zNZy^7z$rYX_@+PBCo7nB-&d0?yiE56Qw^FM7jFu40s2d6d(3>9nk_RVC*BBtQrVKq zjd`RUFH2r8JmNdRZjSy9Jc_Sn&_Vu{`#x`z#d%s@aVuTGDjh)a04MTMz8c*udlkC* z&mW(do`3XXjr98(TE z-F;!+gAdcED!gI(X6nAM#rHmQa@Z8_!xs@6H*DtJFNHbym+0)D@wKbn8}U)9?b&&* zPVzjVJhc6DCxys`u~0Ci_59pft$H3M&w2Gd@$CzS!`t6FKRg%y30Tbx{4EQAYvbB3 zK9}&j0(`Ke{BW3e)h0UB@B@?E5xyS-d2eg~!Av%38<#t4XW4L?@yXV=MQba2;|_^p^pXQ$ZhJUt?06V_@5f_2+#*UtO#54z#QzaTX($yKCbl(?Ct8oiL;?` zttt9r@0L&CnRoE~0`fXvx;oUFiKz^I1sQRNDX;qqYe;vA=CsZ@6aFCIvd36MqhDF~ z;KW(jwTooq20T}5p?oK@EsA5zPvBzwnpaa^{6a85qtUhs@G#e)(<19u&E6@=p{HW` zSbWd=DS&B>g{eS(!DuR*8M6^+9$3)NXKbtnx}VkmH#Xjk@9QmQt&JlyYS#s?F1~NU zRbw29U05OhRR?eA3B)5bkOBBCM&myc4Iy(c1fJa3?zp4+8=)D$tbtyF?aum{xeT8$ zzK_~&bWQ1dmo^Df?EeXC7VzunYWnajbe$o7K(wg$kPEi*rA@_4phG;PJj#0}eQn(< zJ&2y9ob*erDRlTxOe~|{qWuE88oEY*26$cIl@8W9HW=qAqd39>@C)`&C$Nh*qd!a; z^8xu;`a8Yd_#sxyXLUe4>ldh(`VO229NQKThQgO|ubfN2rY@HslQPoxgkR%th>Z)r zZGE(#=xhaK>@+e~^dMgD-r0UaISc(Ea}Gzn_?)s!!GF7zx7(@jHuVkKVGKy8FOm;- zEX!lDJ63Bv{0aIOjNykuXQ&0u^MIjH-4XBgo{9$PkMyuUPx5kg^IXYq{7x><^xx`= z8R&)k+w$I3VUITwznStqwUHQIdCIG8BsOPbe3#k7ngnIMS}6a`yB9nbyW=}F21RJ5 z*)7Kmo{uY z<6jI-U3FX$K|e|P4?rho^Wu3ygnW-}AH2=s0QZtf9n8Zza%hHmr&tTg7RhGtWo2VG zmW_1SkPs!uq9 zuOvFtA>d2w$yw>bLz-?3@TYmSmXDozQDwAIa(7Ld@inqJo6KYU@mt~*Rcx~H4f#1< z;QTpsm@P3s;A6;|7XPXc^94<{k={nS=B@k#%z^$wMfM!;Ya7CBr4|nAUGQXF44#^B z#-60ylf-_}j(G}y%9C-&*i#dI0Wa zn+H62<1Xwd_(bLlpNq`c=c4TP&qZ%qh%HJyT-IBO&wORwaRPP*@I?dB7P>frZ)c*ZN+|A$w!kFUC!4d7w6tc9^ZZ6BcevB{^h{=tc&sfE7?Oj`ePg3a{j z@>YNR={W1FKWm!!xu=w__0SaVh1}aVuu)IJUdfy8Xg+EtM8@RLSRFW-@`LU89y0B;OPkF+ zZAt!|k*7Y>oH%2Z^q~jgy+aM-ZeXl}$V=plYyhtgeU!TzrUd_`-*&tLV&zML!#wGo zN4>&pzIJfJudYOgxU@-Iw=J)%Y~<l@eziLC2tL&e!{t)mceaSHwFMbA`4A4(g9*)IV zkGIJ>>#QNb3k-gcPU32Q_QRHac5M9=n#ZSRdHXw|2i+gz?bwT*)e&OV)AiFg z$cK0Ihb?ypqB^05_rlfG~AUiXqm$bhI%J}~@unSEh%#bR{pdS^KO9&}jo)bX%s zs*DlvnDIIC2W|$Rkn;zSho;!)?1|3@|2>pbe&)#L&g5S5j67*xu7UW|)HHg-qW4mt zd_dHhr9FfEao!d*m;dtB4c51!%=pdG9PlZfzpO3@)OzF;$dBQjWAHI$}?=qD(Y=k?*1<>&6bIQ%r=LGZbIzNbp+iQ_2K)?K^ zKc_Xd>6@GzwGZtSP*iy*S2F`b(mXYEp*#4UK4(qyv+o$57qrWF3*OHNq8ffG!RM6M zL0>~ro<2#h5FGMt>}onktLRF!@mcv%?0$uC_p{h)$N|a8vegg3&6l9nJJ12|eh+0b z%Nb*jK9+K}zsyzSX4Z}?k1wEJzG~(AAdO0UTY)v zPx{D8bSbqV-;nSLFOFmriEjS8`h|Dl`$YAtZuRTU|AT!{8$oIvQ zPY%EK{vaBI4pe6QX+z=d&G})*8x9Al^G263px$}Z`}BA%KEgV`G5BdrEm91hXh<=^ zosAYfl>Z;-!8;K>;7{H9AMZNj_5XD3uRs^je2X?*k2OZ(0UVPJk$sIh@-1`?g+}X= z&{q!KPP!rdthi-x>%{r<_cxvT1r6!+Tby+v>kG&|Xn$7xrq+{3GTY&;vtl}Z+Np1k zmwBCyBJyMoHm%0AbKh{7ake9OWvgvtPl?^{)t~hqi{}jzze+qp4=}>di(2a*ac-YD zKU;4)rBY*Lv2C}R^|plat)W*>W?g*R=%R{O%lg|Um?O*^)=bSfyq{Pr@^H25=+m^H zg@3xxu3H(4+x$#eM8BAW4wcN}BrR|p6FSz_wu)2>fUoy&aepEE2C}1H`a>JG z4KjJN)^RRMVtG4SX~hE9)5%9W=ttM7z5YD+?*$I&_*;|f`;sfMRnT24HZF}(!!Bk& z;F>0}X?fQ_oEP0`t^5_SXwA*xY035d$yGS^8GEPB z+%8Gixk7&XGoA90XKSXnc~d#x=w*(#LksXm^w1i1&Xu7LE)_$9|Hb-NjkT{^{<$vd zgO{V@1`$5VqvG+jb1ydAH}K)z3y$|{jl=P}8_3q~JN$X@;E}kGI)8+{p%??j78nox zdpwAKnSQUVNLF0Zd>{8K%8ExFZRDXR=`4~rc`u0mHfieu)nDBZ%8#e_dMCY4@w|d% z8Se|uZfO5g@coUh)`t{NjQ-Hg{*JkiL(EF6F4cQ?QV(=$@g{ngZb}_=WhBJb35ylrg6379aQ_{}dDU))rjUyj(keHT zKZt&YT`qdm7-_tv+o$x#yufdyn2$BYe5~n)#)-0qsjD?yVn+dgb%I3_YrF zv0|1sYmJ}}zT9c!vsSTYN^GVb3&po6R>kb?fJbWH%C53&g(c?61v}!ta?sp)(W0;? zi9yQK#=_)YeU)B0z%cpTER8ODooE=q^fcxKV#G8JfvGQ5Kyn5ifKgL#wGQG^e_+L}pK z`0`ib-$RZ7|7TCBWnBC_;vMb&gWwe&(rNu)*wDoJy1{nn>b4s9r?|u0zSI?L&A7|A zLD#oA2b`5bzTtNQyPo1 zb?q6&k7$A@cmcTUW$gLD5ggxKd?ebQ%Y}VrOXEIoEc)i)qtShSjlEPy(EW(ZM#sHx z@JKYDtK|GWiywu5)HGN7jdwdS?!>YA!c!~WUH*?8zXG}f^`lolF!{g>GgI<=G54n| zt$@R>xmSg~=n|Q75PdV5%RcbP-;^URtZ<@MMI z`Z1llb@IarC5`aOmxbc4ji+smR@2>8dd2tqZ?-rS-^u6W`qZ2AlYTZN*Sd0f=>O=88&STJYsgc?d;=T7c`vq5Dp+1Do zbUW~VKF)>8zjY!PGRN6dW}mqh_}TZ=tGJV)Q-&LwuP;5nJr>;Qey)AsTJQgwtNNbW zpYo>*2R--{-8#Mk7g_1apN(%8J!o&`U^IwK$$7)1561&ut=Hq{fII0;^5+pR+uxD+ zCpEtgF4+m6VNIC(r!zajf6F%2dN6b{mHIESgSw9QUy^3!gW_Ix0ISxR;h*qHe8?Iz zXeCE|f^CcFM6_l?d=%_IU=Ko$tMzwkoKH~ZrlgGWxyl3Ilnx_0q|g01o>gai3Hkvy zYClVx?4OFNl+|1Z2KI7==#(RpCD1=SkGfQc;BzRq=7+8Q%<>=Uy zfS=>vZAsqsl=pmv-#4i54u0qZtvb|BqL2S|M|~Z78hg}O7cA6+;SO_S^GAY#v2lPy zbLn#0kp9Kl16nUYZkc86+?Tm8aOE8_5N4{Kvh=@*{gGY2)~c*iZVGxf2|Id!w=e$_uIh@_*l%^F0di5um`rs zWBUd}$6HOz)rAdUyu6^kxr3ogo~^*|l|R(*@j?8I@olHjyEi;?WzoENli~ME+#enO zMosi3Ug*>Z8l5Gr4L)XNyn_xZ{@a6{)B~?^;K$akVJ!U81C#&s17~X3A7U(OVGp>~ zdNXr#>K?P5*!V*e=tSs<_%E@s6w|qda*EB>xEoVx$=iBwLwi=GJFKIgEcIc3HdJ4$ zuC3H{*wzJ&_8ngrv^S-4f&zAs-!nx`gETa9z zqVGC$6h7#b&@n9SJ=)Afe-FQ5%%S~G^XribN1tE~?P1M<@kE|L$mrqlCao#C*x1@L ziEae^MdE}Qvj?%O6&o9}rV-q+l=f`w0(6mqmMl%xXd?)k_dzG(1zGp$iEaI7+I^PN zIT_n!1M_yp*)JVvYVCc|l3j7eD~6d>+b3k__&n#AZ=Wc@Z?m+g7%b_Ro$${rHlpIm z(anGp7&uuY}q~|j05!R@gx1i2@PxfULYnQ=l49!{Mn!La}NtXx2(0Ii)A}v zTeWD9g~{QpG@FCLqa%_e;+92{efaW(6rdmdiu?Rj{i zTigHEe{%lTtq)t@$52--G=1wP6_+MoT}Yg70sW~HUP|l*b|JXKpHO&Lhj|18A;(&Y z*1CW2FYj->c+M!cDSG4B*8EEk;@{u;?JW1b;zwqDd)}qpWjKJKl2IJPeZLia|TG)Xgod0+N(SI+_TYW{AhDDeu%Npl}BZ_KwE*<-Hvvc z4@7fn!QzfuFeo0carMBJ32s4_GG2^bX5XXDV)&u3Gq^e|LQf|L!Quiw{6Y{6>b#QE zL{ombQ7jXajJ+b;)p)nWmX6RPvhdN*oWdCs)PINa(!TMj+tQeggI@;EXxy%MCFU70 z6lxz06$@i!ijU3aX^ipvFm~!Y{K;WVvH8Pu4E00n&@1~N|78?>vWE~~yXG^P>aix48T`8%2Ht(WcTnrKe5r?#X#wHlObE>=CbF!{}Z-PIkKP3)Gd}_ZV$z z9fPw#@J-48c+U~%X!}0&CU7PlEaMR;4Ud;Uqmb6mzDcVSs4aY(yZ>`$Y9sXE^Q(ND z6JNOgCfC&VkzOJmAiGQJE4oj07VeM5y~LYd(>lyUXd9c~-RGTZH_Z2QbXdd2i0KVGDI`wAO>Yp{nV_lpF zKk|EklcM(9^?;KBaPl#50uPBYf`Qn#yOX|tmOdWfejQi&Xa?0ccv{Wu>8-i^ygj|Y ze#AMg58b8H+s2~*$3`Wtf#J_VoH+=m_{osqV>grgqmZ{WcxZ3|8L z4)i(rp&vvxRuZ~|eiZ-Hr`SWTw^B~H#dd35|2cv4rYYd7AB=h!L#-biF?)6%art?B zcEW3J^GK)9w@Lm!M4um}&pv(bLnr9O=ICSo7u>@Z?l%Z-p4~G07l2`&;2xJdw&A{-Du<_p&Hmlh2wT`}!rL#Fj)m_ph@SdB^PX{&?6H0x`C0stUg)+9_T1l+y(6(?(0hSJ^W?(_(H6~8 zAF@KR=`QpN9TW%lkHwmwij^A8%$d+-4dKJd^#I&)mc zDmyqfA^7E+6+aQZ{;#CXo0$}!f<80!Iak4_#Q54+T=Lz|+!K$|Tvc4Ix|B{o358STLfx^JYPA5Pl*<3VGpwAqO-1>P8`ukyL7 zztFY=-irgPu>t7&qWvv7>Tv#o;#c#FZ=dk5B5iP&?Ni>_(k^^5f2TSHD|KuFu1&zT z3Ap4>u{gjNtMj?oH`VWAQ=OaPOrm)^;u?Ko-Z!(((8Re*WLvz9`#kkpejz#Sdobu?L z*E-kBwhdo~AdA?@Qy0B7Go^DF;Q5DqjXSi~+DG1MFWF1J@2ljsv0aRlXg5;eh#I#BFvDVz~KMoE|@$2-V8yzA`EM}HDd@6gQ*x%F4c^eyM>@d8?Y;J>I=M!=Tjtp;9g3WR;Ru?J9)~VC`vu+m(x{1UsW`8Yxs}2%JL|Rj z@M-lyx?c(33H``afghb69@IY#?Z|E=Ci|%TlGrrtg-k* zrl!~;IwBQ^MU(?To(;R3z<){%ilvi_fej?@yc@5R=M`;lX5p~ zjIuXwv|}RQuknKBUOQ*YipM&zaPiLgi*J8p==$hF)Q6%`e3pJb3tpb3uYX2Av;Jem zm#iT+&}=^JKNkJmIYG2MkG??L*=)CT#{QFehOYYOtAEG(@!B+Eys&u-u%M6HGWmqA z@~=TxDzlj~|0iweY=f)FTdZurm#+1XOQJo{qIAa>lUS^$k}>RD-x@oI@zS_0V$9T5 zR&>XBwv~eDT8lTvF_fLOR`LaUYMo6XdU^@Gy#(G~0&gDyZ^G^GpF2Oyb#Yb@GCboS zn$TWS@iWS9KAHPBfwRG6EMWsh(ZmAMbk+xwsF(@Xg-)H=g|TO1XPkXc!I5~*4q|oc zN8;jLpNl%bwmCAvMr?~sVF@}R#v|lVpQ#K!DhGd(Q$lVEpY9R%voSxV(|Dw@FRX|> z%CN7EHG+QiPre#k&VPYekTuPhSbusG*OOUCd6Q!7;pduT?1i`U%Yl~O2u{TNQhcU! zV*W58-E#p|DO<`nAqmrCfbb^JOde2C8t{4-^-s`63;GxrFbkwazCRE=b2oWON37gSpwSI=}i4^8bKS?w#Z+*wwD| zGHh>KR|mS8{412h2gbNSC-^TUKdes`%AUHFx~RkIPU88pp>6^$jg6I870stL%`AIX z%Z{0P@oL8uKJ1wP;CCLsYx%vT-!+bLtE@-6t@91$V$Zp?TjDw3vaoJrXadfsqrIH3 zvk-LF<&M}>zul+fLB?>i)|&CnWygjTugx0xDyws5-E9-XA@j8h|8Upqw3pxg0(Gov z3Lo(7DNiz9{Uk5>?D-1hvu7vx%I9ut$IqTs9&|<4cE2#Gd~J;7zJFuC128HEt`FIf z#a1SMfA3!Zad-@HI_!a-xAWL}A)WQ@w2e=abkVAKEB>S?tq&OOno}FNlAfY*^zn&o z#IM$toN=gj@1R}9o1e=&*$C)wd+#Ez*35+;Y`tFc_kACjdtBDu(HXTq$GCU-?((_c z14jY*b+(D}%f?!YZ%TV|RR7J?udCon_o8ed?K0X^{!*3wK9p&v4hy?E^*QDL-6W4- zDgYn;v}Ng;7ik}_Cy(wICNW)qLmdl%@prgRR=38_;@>rlcV;})e#og#mze$<=kmF% z`*|&x)Rtn!ucWSARsIX&F302pyEM|e^CM}z82QxJrAeCyXQi)B((a#?_WmTTJ}Yfy zk~Tgo?LyLWRbZ$E%?kRV@TPg6_VE{ZU%;m!9LTR@&>6w3V~c`jWKrthDYVtu!m`WYU%<&uKq8NE?u!;kY^Eogi(&3DOpx zAZ<~S_I_wk?TF?z-=xb4PogQU%d{^U4z(^Q+@|ov-)-TlkN3hAYcQLcaI_9#< z`6{P*#yK$1s9oDR4t|Z5_L45J^;{NBQ_pOisl5ZVrR!|GJ)ES?riFTvHk*$AB1s#Y zh2L)`X}8Ww`+AZ#d%V9!T1tOuzwJ50_`1IG-I=LhcpBM|#+R}``goq3^4nA4A=iAA z=$PMh%-7gxqu&kJwyt+^6|czo!%eqB+>pNyxwNgZb;bzIByo0I#LXM8@vQOYYeC(kLL*pNJ@JYpz$PWc1lWc!lxhEFHYDPQ>Q zRF*YT_~1}!}^#+|@q=afsVHhNlTIvlE{}|6^|Y*dLW8_1Khx=!{>lHP)i<=CKd(`xR3g z1s_~5J~-CV_w+WObnH3mf6rN0=*%`AsIufC8>jG*L>ImgLt5wGsqWO5ptwApf3ldd zyMY6>Lw*KBqHuekOO6UJ^fSPdeS-iTIbqxrsULReoIfQf(r*6L%&g}EFG`4Cb1HGdnNYvD0RuMZ!^8m zJ%?R$88jl_v(9#uPiSc>d&m>#O23cL)=+}~4XaxAWok!G)3$6$+kP3pQtg39 z4lBkwoA`G!NwANCEuNg&k4KGXny14Fvw{6s(*@pG>MGR zT(x#GG(0(PJvwWPzEjzdO=JVU*3;bTj(84yxBZhNA-Is7pW3i^BWtrQe)&Uet=YUr zdg%YjddW06IG3^Cnc$#_^Ii0p_Bo{=#kOf2Q~LRQ^4yo;Q@)wm<9s@Go@k9ndm}|3 zv)6cZCJKH(TRt71-#)IsIn*b((sG&~)Ke&cL!JMdj+wRXe>5{ku&CavkE`d$v-fOh zOq2Z@cAxsJ{Tiefgy#+GM&OmV#yRAFt}5SjOaK1{^|mv2q>C4r_rx*u3;)`u^E~%z zKgG?3vtXEpk30%RY0_kxyNs_f%dj z;#q6RFZX{W7Jn0eEHHnSH|2x!CCI;^x%g-7Cz0Nng_ntsQXlk3+$mS-9O7{~{~_}0 zoX`s!o&I_oXLO=5Rb1|g#x$SwI~`MJ79PYKc7ccVY}lW0p5ckcS7Z3^@J!(|t>^p6 zbIMajsOQznK6_l=-+7h1IwQx%z;exlzXCor*^k)%7MIeMR{nIx>KuYed|WW4FnsV; z>Q&wckAwfOk1Mg$1M!i0YKt|*bdIv;w^#EtR~wm|tK7o* znfRJme|y}&)Y5)|z1HYHHU^@v&YA=JD_Zg$+lD%|j^jZ4E2O^w$0vayJx4>h{}|7j zgSyXZe^iyWD!Z7Emqu|i2RXkie(49TIik8H?>**)wcRZ3w{&Xh*rNY*OsC)Tz~uLS za2)RF%e4G%&`1kT`7~ashe(IW@jIrU5WnQG7bvw4vh*nnobLqoV{L)E!?YzD9!TbX z%6}yb+OQKO3phLTn2s*q$Gax)@Yl5bDVkFYnMc)RyhVG$|9sl&syq(Nmo%a6qI?Xp zH>ICTe*6Z!MZ8P)f^p8yA;kU_5TrYiU)|Mu$hDpyLNBSUY^C*a}~~B zE+=O%*A!3OIxpG)i|9z_L+8=iC9B(8?H!||vDtVBe)Z#p|9mA6_#V&J9|4aRPj(ZX zdy;hZMY>|zm&7M=to|FQ-vxf*IORXjP)>YM{4nK#E^rH%;>(slms)an0G>FK*fx)< zz0yd-BTf4VH7|s_0e5FCeEk}2Y0YaBF$u4w^C-_vJ;i$aA}=J+iBt zcd*{kj$gIid|I*9{dT?(d(%lwT&C+#^NUGcs^<&Prs8pg!yJ7<21W9DEn{xW-g4^r z!%KW;qRh80Nbkf4mLremRy+BX7v!^VpxOYIbJkO)U_RXx?{K)*j)VJmNmpCH^Mw4v zmp9EgZI0P}0K|!0-o!@i7fqNY#0GlX!n}V+n60oTSwat@tlmA#zRAq^t}t8w!%$^9 zDGxpNr{|L7$Q89`@|(>H8c*93y@CE6&+gn)T(7rvCl8 z(gNa;$frEYdmm|fM_;2H&*Qe-<$AW`g1>2ME$d&>>4AY5)DJ`}fuT+DRY{%|RHvmoY-^=J5%;t z_tp=D?BPky1}vJ-qB{+&Z#{RecS>51Ae$xRk`r#5uv z|4p<}2)md=#2%EO=Q2JB+Hv{Th;6GvofTlEy#jD{a(&v$EB28w#*DMRi-zwghklrY zez~XaYSQ-qEq*euf}g*j&ExU&Bm95j#hD6yrr)N)-;J;PkQrMs2!ix>Dm(bGG z1piNOtP;TTxuMfbC_?cA98Q+ymBqx6t&+c&M_ug2G>bNECv#Lm1* zADKJFw2u|~Sb$D6*4mFOI2`J8Ya@*Yv?4iLFt=f2ZL(`sIgkBR__;Lx(9SDpPy6N5 zIr3`shh1l7-2W|&m{*~ZB`2T}?Z5RjcX008E&%lL;ipEkquCp@CzSQA3 z>u$E|L(+LP?mADdfE>mT(y#B0*>eeMv|j-a;Nq*q(_1+SKGZMKuloD6%5yJ1BA=J` zby~fr-pVIB)_hY86|}Qi^9EdQmVCd6{gLSP;B|HLY+#pesW@NBDdo`~&^M7zEGl{Q ztqb+@IveW%4NqxL>o3^r)_A1EUfhz-Yf?HkaA~d9RlCQ5Z;4H7J<|^UGi>p}b)jT| z_`T$SY&806V}(+C7$4Bx2Ar#J+6N{6emnKGm4XPFJJrFSHK(+Ic5)5HPjpCkL{Dbz z`8Lf@?YT~6xyB$*Jv#5n&R1a5c%|v-d_MIt-j~?p%zMTa*j{e?cWIk+WV^NX?R+`@ z4A$RI=7`2XxFUbVckJRUdi|}M^=p$BwZ&97`D+@fCSo@Pqp}(L zdalMte9i!uL8m~jXuLm*9_b4w)whBO6My4k-4W>%9elhRNB=0)XvsCo=YDuhL`Kye82X@m z%f18A!(Q)jq;n=Ue-$5_+MN#c)Wv>E*)u=YIs(rb_-LmYnH2tzXNv1Mw!cVpy%1Yc z-yYOj`1dHYkhbL4bG%mU-_YW9A^1N~D33Jcf5sQo%buy;^Iw=b4c)l82%9#?m;%4G zWi&S8hnWg;;w>#-@Y8~YyqlIh6xWE+7$H_e@W30IRm!#Y*Xq1P;=^a1fy|k);IQ@W zR`L~kbf!A>v@xe0zH5gKXy=P$hG^=qh-1vTZrnP1eU-H#bFN{Y!;32LOZ=;U>FnwK z%PxL{dwO4Y$T>~^4b7ED5p2w5t-Fl|~rRqqd z;8I#8IE!cvj zt)ZmtyOQV6CeN28&!0}7S0>NDojjM5=j)Q^Qu6%qV!{1@WO%Dav+XlHy|e%Xud_hM6BNAE-O_Rx58W%y_Rb5^@7i%*O2zUcqQ&?wY!$v$4KT3R^}ZPz(mINKw450m zo0@b!)|ZIoG&S(XFHf8DQwh#fLS)4>_^*Q3G30Mx?a5>Qjekql{aXHw%OaIc{Tpqv z(}2C`QMMXpfuURHg{wb`ja>$AUte`kxrzzU9DrK za#Va*Ya#HFzREnU6S0?)Iq$k#Cv)|Ycr9xkS_jivPiu*zGv!w7l-7*2t|T6)vf`a* zaW-m|`qCKRs`aV$*gUrr(|0>DeYX?S2S0x%ZJ&Kk@;|dz_HpvrJqg8>SN|qsif_T5 z)i*xKx;wHWb0sm-_$c6^MdAcwVg%zqA%536=p0?Z`hU*6j=ev_6N(LD@6c%{q6Oh& zHZ6#UJvTiwbs(Yd(HIw!aFT$EuxM*#3zTo*~VEux?c!xr@^fU4pg^z zz4+_wwoj++zKU$2OPbT*exRy*&d5X$0AKyc)2Te)BH9TpSYBsi9xg`S+BoaI?a(J$b^F%dI@v&92w?%v^YuVlnhRv;ya$sh{^Rc?Np9ST>!FTNm#V-P69-nk?_~6FN?P+@u#Y zw{xV+uCjCl4`AGiXVF*jP4SW(SMkY|rZiTUsITxw7hPBUL+#|M@YouACh2EN-zswt zKJb)}>G@B1_7XXu=ev1ESFrZGp8tSn(XQ^#W31Xss#|MS={J^kG3Ko}!5sKfzSQ>d zflGad*V%7`>03~`PtU&)4?GAh&VFW%2EG4NR;Fj@hvvZ=(JnEW+6yOIRQyw}0#AYN zup6MWvAEspf5K#zh@b3Pvxq>Q$4kznEYdHCh%w6VSCy7+tPxT@6KITO&*}KG5dYPW>epU8J zWU8%shTe&^ZSjjbdyX{T^4;C^0xVPtCnz zSB8@B)tVPXBjwiKaC~xnvzG7Z)}unH);NQ@+gSg<6@P|s-tKQ~+!Ji&%Gnm+M*iRd zY$(-#p7ucTjd;bsE50i4UmV}$Wg0h;mwrci|6OsKUL&1YrDN%ee=T_LZHSh!OQUv= zy_|kN-UIHGCj5+0f1dtY-yXb1d`iBE^h^ZS&!?Qis;1&~Q+_D^k`3g4HD{*ZAjKv) zQ{Nxmn$3piY3-hKqC~e#f&0DmH(L#wxA5+c^M}I+eQ3P8js_$-cmcLu z5HSz;I$V43L2BIF9c<>r-v+OW&SCt;YZh~r-Xb~>ERu_Y3%PK<_%b|U>$jWu#MxWU`Sw9aSVX5e zjWRyZZJ*TMa%3ocrh__>7wj#63YyL0*IJ|X33w6vlzFc1?nvJZZ@#=g zk$vUphW@D!1H=BD-~R9&wB=UhSG=T2?2NUo<@+%Ke#!t{VJqvBwV=B=7C7euljh2~ zw6lQwY?VD#?d{<;teyPfO&h~+G5+aX5smtDp+(MddldW5jF%f5p-+`l9pX{S(*wNH z^$mL!m=FE(KPY|E_hydX2yC6+ljx_|&BP#edVhnAZHqnTkoLmpj3;m2NUXhlS^DeW zGZHU=#%$GjUHiAKSNA}fx4Ulp0r)y@78VE-}k#im+rv{wR0@=)-D z>p15<1^mbn&RkNtjF0{7e=F7)w&Wpcl83aVG3@bc&*p)dbLO7SdBlM-&JMh@d)`%{ zV84_(rS_C3M(@W5GNotX^yvhKJTTx(!}tA^ZHIF9%pHe3Iae^L{f+VbcaAhx;(urx z+&=MT5C05!ZTsY~rN2(fW+hjFJL?J;pM$>Fv1fWCu~6T_Pq{JH-bnU_(68Z!_D15D zDO#GQKGtpH;+4Y_8n=ZupWSb`cL4ejyc(C4&;a|8Ai?7K=AHCDvoZ7N2Fz(J%0ILu1spH_v;?klofUVx7#XHKDVqG~I!}ya0XL z^C8gFGSp>x7wIYojYp;yMBfrVp;5&Q3Ew#nJev)TA999iuCxJP*NF9tr2f`+-Yd37 zw&gSEO?J(f?=%dIbKWw%Qo2{p=e)AI_}~}O0lxU0Tlpe5#J3b4L67+LW?%hwxz*^&{BsUvvYdgSwfV#+zIS*zXR3wdEi=z5=;7d}VsbWbu66`{lKk`!o<&^xX#CC6 zk*E-EX}G1)=VZ&8>D%LhgYRohzwhNWF8LI1AXY9%f9JSYBJ1#5ab_Sq{2Y6J1iTub z)|B#9lYAPpIsOOT>+h+>H!P{e%4cL31wm#olg5b!D2h_GF^Yuq%ZjJ z(6Jr`PUMkvHgMG(K<|}TEL|pO-ocr- z&KT`+j&e2tS9N}+52~M2rVAd0t?9T6kX745o$2eK3mc#F-Th#G8#*lGvbQiuK6s1? zJ_^08L@!1TSExtw(w<>t_I8%$#<|j&VXm~DJ(#WXPHDr0&XQrx7dqlQS=6Cexg0)J z^;2i&T3=&{x?JXC<%-a$DE@_g#?>7bM;Y32sv1MBv2$MzqEdj)QQ=n&^xaR(=Y;=@ zn#Ulcujhkx%JEqNcsSJ5ipW*B$!|HmQXQhCq0gw(qpJ)o8T5c#R!w%hLS z5`Cew@%`!`j2sW2x*v3J8rmG{?5Hf|Ozm@VN>5sol`rLa=r3C%7H1i9X5XH8m}`c9 z+`*MPBJWD}oq~INZhkpzwzJ2*P-zSA;=BWA`L+qo{WgE6Xr`O>61$$_)IQaK|D4lS z-5IIx;3eB``l35IhZy{@&a$fcX7cK6IL#l~S8oJAN*Dgp?*)sdw$N9HHS-0$*S8|! zBmLUzKXcQCjgN`m;hS0FwRBF6_^-pcIp}!z%KmXU16nxARyIVOsU2;2E8n8xEL;3b z(R$8gCjVx9PS9=ZyAC5IwY8$rL0Qdxy%#)r=!<^d=Ab){<#M5et<=&bgXW9Oof(K! z=P}Da&@MXN-EF7sPE@z+k^LG!bm8Jq5}SeVWtkIj&Sest!MvK1K9$9u&2mns;`MUGY;aDX^=B4ezn;_Jd@^l`S%@j z8NX}z-N0`w`HgVB`;^w63LDd77)uizE>b3WKFsrj^oy9KkXRJKuQ@?{h~y9Vr~fVI zn)GPjPD#2GzN|8R#DD0regMtj16kh411tTou{er9__ut{(RN#rUv2^jvducwV_$K7@ zd8DQBZCZm^N*UF&FDWOOs`xSj+H9+eX8C?9z7_4^`66lB!_z}OHbRbA zYWq*9D=k|~%5IrecGC&U)+igyg53b8_M7P2y1%QkwE3bfcP!4(wrPN0ZEj84gda>@ zq_WALppPf*YTwZc(o>ivk1nFD;2xsvLE3-ZmybnzF?RO;?$MdkuIIh__iNPAcG5`W zj0FF;lKxwiN&T>*b;X0&H5K@Kx+akB!%`bL=8|OWZyZHG@iq5!_8V9FHxM{el`+TU z+_C3$cCg;hxQ=*O{{y@;b)7FU)X2Dx;+r0ZC%4W&J{Ntbz}XYZJHWYI%kjUkmuG7B zx2>h?pvT;we&3q=z8v4W&eRW0ycd7C_@};^HPAI2UxbV;3=UhLvDR20YNS0 zd7n<{Ai5=I3X~5f-?}{*=L>x6wzC#xyhfTXJ6K zS)p4XQbzO4`69YeQ~rb-c5`m}vQmR@exqO8IAG*VRlb)zc1eb|L7~nOE-QXwnY9y$ zdB1`F&435y&t{$DGUFR)>#+%k^J(Q<*tO4@3a{l$a_R#xOSV{D$bUS(iFP_zr&U>x zd-i^GBl9-PhrwK%N?{YPD+3?#2Uf>3rQN;wG_Zj`6smozGlC20I?@@kwDFCor4ItM z)fGjTL{A*0PnM5OQ%<^}((g|462C$0UrP>%-{$-vn)-ID9(;3qCExTueHSI~#4oAu zk@TJMTKdmFCGWwrWP3BSJO|yFyXBYHn2YCd55DbrYt^Ue8Q9Q4;bSfMs-*`e?@!8&n}e2Cc20ml%8i>REv~le`2^)S zL)ymnT*i1RzC&e%+pi@3!B*azwsS6dmXaq(-oYadr0+H>ZY#mX8xJ@~{iJW5=;p2a zBl`>Yyz@bR7fKh`S$Ks?tx++%Caq75c2#~1ABnzErTHOU{txMIl`-oiPN0i=(d{Cq zCY`SJ-mQ$-I#hNoWr^XMe2>OBfhCs{0FtErwmG@pMs)Kp2W>jZ>2`bp|Lj@!_rkR?bqOz`$-41F>Muj42 zWp#e=zH=DtHkH@-l=t#|zV`dQXWoqX<9@%7?;q!J&UwH0UVH7e*Is+=wbowyTK+p( z|9(O3dF7M*OPR4iN8R}?=-uJBE1zA}^g9M(-2d_Dr|&^FEy2euzkpw7!oj15KX^KJ zXWo+wuN>>Vr+}T1JppA|ziL>wWczD$CGXdh;}v><x9_ZxLkt=5-w^c+_^<`^-pZ$-FKxE{~y|g8J?L*q9 zAwMjh^2NoR8!Fg|nzE5i!*G7MN9E9~q2mH*XXymb?0P8lZf59R1bNg>zhlJMC`MVf zjc1K)#YO^t@_jU#zAFdo746Q>FSnaDET1c1PTtD*{=>SGVk2F0m8y@5JJ;9}6I-f* zri#h^>sO9%cetE=7Hq2li_*(b}ydg z&S&Mt%)+A`*+kOKCL+W^-KR0l^}~w`i(jQ*tcwHDxi=Kr+n-^t-BplXdDGp+8jVwN^ta$ZMUZzxnw|=j9jo*5w&)uUwFY>?T>k(%@pH+MWXD`pt4?=U9q4lmGJoXRAHsN7A{z2zP=++t#vgU+2*m^6O^3t>CJ>;G4;Xbg`}H{&^sh zhmM)2y}HN9vjsh?reY%@KUX7l@aOpO!{wC6i#k<}UB$YVE^-27J;fawJi_Hh!Ak+} zvu^-i3V3n)p;*dSz#P@K$|k^B<(0dQ`SphC#9eIR^dXXY%8O>7@~W;O?`NJ||Bb7M z`;-JGIm5jL;H1I{ z&yd~rZt?+{eJkVDg5E7Vrf<)?)tjq%#rkjI|Alo`b5pV~+KGPDuek)w9C=XaqiPU~29YsDVH;651#rJCb;2r9y(VYZ4(fk}kN7^? z0Z&pNSxd|wxntAXH*#hso$I2XMe#rsSt-7jzw&F;yGQM(7J`@0-|)-*?e+K+@dF9h zw^0s!n$kSe|8u$9TI-6QadJyNpVl2GKl(Vax8yKWerm-WM0f8mL-U$M*4N>r z^E<4o>;wGy!anN3=}*Bk`x0|A7nDBSc|mCs`q?Ds{XNWut!>ccAJ}uT_99-{uXVz+ zow@yK_E-2Lbv|N!Bz;4V_*Ql{v!|qg5o|+RYv8e6i41Laj@WFcFjpRUUOM}&!}e44 zbqX|1KsV7yWz^TNJkL1EUnV^3pQ~?hpH1k!_Rx0#Lw1H}kh8_~7yp>-CD@yH$qxT8 zwEYpE$N4Dd>g5>Nl>gKLzIgr&Z;eA(n<+py?ybkSQ2`AhG?RxaBS zcXzSIi$Bmsv8m;Xk79pS>@&Y3jCoA^(xXrO|96j@>r{NX`rtQ^S?=D61dDeg)PjXuFIRox9+u46B=DHKR5iw2qj!oWopvAMq56)yC zmH?jY60Lk|uI-anu_mZRBRF@-MH z)@kmFZaV5#m7>5|1B@}?rTvNMkOMF6<#m^;V$Bli^Gh-Jz`%pZ?3mkE=)`u?iS48l z+e!Jyk>;p#VBk&Yud+8pu>;ko@S~@8CnQ5-slLKn8{ntRj|ZaeBkY48@nZN(--k^{ za>hL4Km9CfF8vKYR^P?py)x8bj3)?vgVZ`Y(UJ z%17Jb7ijQS*21O0U_)QS+SjyH!A0hdEY(^c(Dc$dr>%nf-_2lNr z&A$iD;{1qgQ;W+B`PO@IWDK4*?H~)I zz)gG~IHF4gAClS;9+D^6V4J=TT-g|PpX&#mLhL;1&jo&*HCKKfjp2N!Fdq8T&X>I* z*7nZ_&skCo+=LnP8;J2Lh&IT|9o{uTnYU8+H0r*c=MVGzQ^E6@JU@l!C-eMXo-Yrc zpUd-Bo=e{sUjG7KvV}(AbFEv?-4!{^_`ttQvep2rib+|wSu?;&V8DB0KcdBz@L))d$+PCy2{m49GJr0 zom1k-MfUeormDuardg*Rq~8BfXJ+7A&>H(Q>S(>2+PaZk zbofNt+6u{tVh4#M#z#xNihQ6KAoC*atm)t({o3hd-RfuE%B(A8i^7w0W#b#%s<}LQ ziw~{B`brtu3-JrEcKfg;LuLiA=kvXoPbVLh{T4930WPG@GBDr7f2|{WH;Lcq9_II( z`Hf5)#}2ADA@Tqm*m2Oq_Dn8sg(9Ld1r;-~j= z@0@f2)<|>zT%5aYFQ{8wOwb2#FTV#o>{^;(KAjJo_;T7y`eh!b%z2d2n)+7OR+YIN zoFt>p4xUSQ*7I@nPwmd^K>zGyPSO6{6Z;hJTmJfOzP&Gl@9NLc&`A;JPj2lbd9}gi z*GY8E^pp)=oLt3mXB_jAm=Y)IMcT^)ZFS6PY+r5YRBiJm@3_a%ebkG#Kk6l0{ai+N zPPZ_pCGSo9^qaZ*kc;nDdMv*itQ3o5$Ok%_N?aU&+f}H#Ek(|Q3(Vaj(eN6tMVcH}_8yDKJ_abiB ztLi8ZoZLdrx;8#bp$jyLa3+yE-&tGf7kvWvVV~YxKI}L##)mut?DJ1LB;UU5GQ=E| z+qPhzrmW}~Ph(?b>=eVI_{Dffw$$bNcLMxhokhSOro9^b|9a?b;w_NvgAdj}Tl_ia z*vx*7zAAp6{W?0(h<{l4$TlE;YH)i^9HeL+-$Kr7Y(Li!3o;Wu$F$$+uOaQ=r}7^8 z*tK5lpI?thVaQGCwwp6b-4>+uIUSubA^SSbF`en~%%(_guPSz0{z0RAAU0Y{Q z_y-=9oy#RQ ztbuu?ywly>ow_`*saTvd!T%&QaS$*<&sXsLV1G{ue7s6- zqgU0B{*lcUuN6&f|I&fKqvK*?p8E?8g$D}qCs)&Jch;vLi;O$~h zN%{1bKF~<{u_a%crUtRJhR11 zG8c6hOq4#I%d-u0ZYV8aJ~XiZiR9o>=F3cUm9|diM-&@CKj%XFt4k5$e3rqRjRF2U zXB?>i_D2rX6JO?HFCM>f%osP#yV;$&*zC?5P$!5x@4t0|llAjWNv`Pqn(000fEz29 zgQIe#N~cne`l^&4>vH3VZzw32lj=jO2{qXR=!CiP8$SA0H|aDISFf0Q|2?{AjqBd( zErSkq%6$#5?4EO1p_9Jw%!_9mOK+mgf~?9fEw=-2US2WaJ>xXC!aV|hI=jgJre+0u zg{z=V2Ab8uC(GG??45jPp$53M@ZfUbX54j@S?8^ApcnX$L4LiD^&0t9L^mrgcDQ#8 z|M{9nB8L|Qc-i{ABPNEp0^sn@TMDc>p}I4Jx}T*kzqt=(o%appV2Ab(MA(}JbEAPi zTbPm=oK^M~Fdy8`TfI~1hvoH#g3d#)JJjj=@=YL=j)`3iauaTWS z#IZTMbH(LB-|Hkp`|m5+{v#W`72s;+->&q5ViY?-3jR^P|I49Y$B!dU+mjLJg~yNm z==s#(nch23;J@P2xhLZ6-Xzs37r@O}Wilh{jL*5H}s z;@>%{%udQYNEtgH-cA`SA1xd!UnB$V*~Fg6$hzRf)*X5%pk>U_`g0%qX`fePjPFCV z@i1*z*(y0J{Zwr#7oFzn$A9VT0%}7#0OM)$sZ~K+i+}tL;Qx2==BPd%5C7QzNBk23 z{$sF()*;{3hjWh82jbMu{Uv1^1KFv5old!@c$OQ5XAU~u4V|78Y*#U7*glwhjmVZC z)2~_i&0f~^=acPY9egV};<$GX^Q+TOtOu~Peq|lZg=Pz`k!JYT96efgAaFOzKJ_;cxT7B#g#l-U%6^G{vzz%c0IPZ zzUx)sWPmex95|N&=kJfxb_#w=YaNo0+3$zz_C;yS%=h0OI9ezc}FYnw#D-%xjVxii32A`M9T)g|@?V9wiejeXY)h z&1=w}tw!&uXAH)}BTY+qo($Ukmf8hZwUt07#mL7N@cAy=&geO(a(2$Krj&XVcN^$q z)vN`I0mcqQo`PGwDmPdBG;PRls^2U4eYV~)r_5R@*~wU{&0Bb9$C)$HW{hj#Bb_Cz zl|BX!vCk@0vnJW`w7S?7!ORQhvNC(y;k6(Pr>?NgOC1N+@pL=cj2-T5=Wct}hPw*F zLpT)JQ(4@h<*UwX|tnKKN{%qpbyYN9K*0bIOxKw9ur>%R5vGDu79GEMB znW2qqXd{Ju(fDzHPm^q-){ka+rY*YNYk7n=p?B))?byN4XY;ISjG@L)`=BSjgq#pR zr+m3E71+~&oz8Psj<%#%$Uc*vvYoi_4FeI@R&>xN`TrevgBMBFm7<(yn~?uVsea1Z zLb|iJq?BeC=0&5Y3=R&GV#JXZw=4Z@~pq3*V{yU zb*y8XdA5ybt7xwc_)~#z=THKfHH~L!o=pwL)!~_yk!`LoBb)Ohb+MH2^Gkdvc@O}*6RlsS;t}}D2ivOC&uH*0LuGzP)G-P7ibUtbpW+T`lpQiN*n{kgz zt|--el=EEj5Afg55rGWSd`L2Pl_S`Jhj>>Ri@jVv=*>87bksLNoTer?HYIIe%WHwmsINxuO0dEVR-%mV775SUT3B2h%u-m#-NTE z1LVZ1l25`}b#xz|>MW+tSw^N{=Uun~nKA+U4*Bw(9bSPleEgS5`hKJr?{%2^SK5Sb<+~ZE>UV2R--oKH3kZ&(9{|;LM zXWbOjsAsYp9C}K5b32Og$hlSd%>z#QV}dwew5Bc@_| z#|{A*KUhvDcO;;Hr1h7PTCE|Hmyv0?@>uFFm~or8Ve$>KdkiL0i|}8LGd5D?K>HB) zV$Z=YGAETgDcYJXv`2g!ZF?k&4Q(THYmwqHnx3fwAMmaQ-b`e->?-hHP5ucV&xa=x zBPlwA?-98W z8p!WimG))ZGT;x9lUH^a<#A|aoRvc{tr)ccm)QX>=@2eu>L7p1!u_}WZuw{8dd~K7 zZlqk}Dd63?&ifVbup=UmZYP)8?Zu11Q?cFCQj9Ze(zKk`gsqi0{fRj@R-)i3f5_Fy z(MTR#cQTLpFL~Vv4OZ~HF%NF^L+f=d&+B+U3HfZ-qqd!bbw@>OSunKOe>|;9=RJ#WPa_+=Q3mw-DXPrg69v zI%yBGl=VH2{;2jfKc!PVNLyC-vpUZ=L+#sr=7&PcH!}9w4LVr zug`F1WrFQX-d`8gpU0@bW>jCS90~X5!{B=z{aN)Y{kh^*`ZFff zpEfh5TPk&iUv91}1uxsLw~y-AcJS(_y-fk%5uaMKc@&=hSdH-8EO4;nZRhD3JhOAb zj(3q~Bl2Sl<92gpFL4+am$OFU@;PwHg=ow=Sd*i?_(ME7R^_3o;Sat)P5FCmdFQs` zIh4 zJ(llne15{`Z+vE5Qtf<<&w4&j@o^SZJ0>>TA8Ft+nV7H+wUu z*P{F0%snFOEA5e5ZyN9B^KKr`TRQIWQgds)|9P8(Zppck3^63w;47Kh2?w*a6K+U3 zO-s9)(L=5)x6)_qU*)&+-Lk&fo7KO?Tf80^#b&QDzr{<{H+%Eiw|i@6toOb>?)hR@ zeJ{4+TJPodS}#qTE%-ay`?q@ysqLOiJ?RZ8U{CAZ=DE9@6Y1P7rF8lhZz(Y9R@QoJ zzp}<#>fFNp4%@xX^|cc^ch@HFpzZ&ejLnZWccp)a4!5YhxCm^Xry|Xsa#Gnl1>L-C z0VWS(Q#yI)fk{#*QnjkGbUy2V|M#EB-791 zpS#20@*sFB|HwmyT5lh?>`jTDi_3|9?=7@s)_W&0KN_=lB$R7RwCtQ->$zRE35}uf zX~=``N5F@6>#zmZb>{ADOx=N<2b-sIfaEvu`(N-ylcPVgx;vh!>vQttt0ZS-M1EoR z656BbEGY4ByPRUPmu>AS>>T$y#YmQ8oqjAurxQJ-@)63ZJaH$x9s*w%e4N&1&!wNb zC*)=N^BA9Rk9)ef2l~dCw@$nE4Zs2(^dzq%u-F?)C$_L6vo9$%A`iYdWxvmFj7N8C z7e19-Sv;4AE)PYYHT@KfSbg_^wYPA`*e>zk+8LX@RPK_J=<-ndRK|ac;k{{{TfFpK zct3OC;E~xoylK0k8}x5*?(nL>S$cjn#V5a@Bwvmb$rTS~Zzw(V&W+x3=GQ8CKLc;B zh}3%5biq&kx#Cse6dPi{#czE(CZEv(FY5AXBW^+er;^Kq^D^p#@*c0EZRO8Xo5~|2 z_zA{d=bue|)g`}Cq`|KrJ6NbS|1dFS!*e3Uj4;w#ag5Bxo-v0x{U$?NFg zcgUHczQ%#&WUwUxM>G%jS22bOc;cz_(~K?Ug7Tey*<)xE>F6%qqkhq!2>pmE9%L5! zHlJ|aHtI$*$I_MgS-M?y8Ea^AFrD7!y^+2@ckU~3?h~A%g|mGGPJKYbP@ZTfk4@BJ zE>3UuoQ8FkpYCypnbCdJy%ml5?zfOn1e#=MM|9EneG>SpbGn-=Pde2(9Ak_-LU^dm zRbe`4j4h8fGRBOn>VGq++dy5*XO=$}Q$Gf+#Y^I$p>sz1sWSE~QxqK3{=QM~=c)br zX7-raBAoGxlWv;U3Qhd;DK)F;uVRGpRo=A6!3T`Lk(1)^g4@SD?T)9NK75g;pEH4@ zy3N1yX@jh4y7n#3;Ix&^$f|40GrOAm;^{_HZ)T+V)_6MEH?6+8ugcA>XRpvDTBbwz z*}2pVj_eVK`&bt$qdtxg-bVr&yfEun8r1S$bj+N0?3gVM#_VCr+c6_K3vC@ZXz$}a z37_4OBKMw`BhEA^(ZOdGpFMmkd>Z=iFucCJzZRcxt@mK+Hu6i#9?v$hl75 zKWyH8ru-1!@znS}=6-iP73*928t)eKF6C0*$lny-k}29pSEqct#iu>i&n)w( zUvue-vJ<028dvSUv5-jTimSVB zDb#hCoDl|w#-x|E_&aC#^?Ro`d)URAVw9=MA}=$V*PKDG-!hPNZu71gK>8=^LG`zIj)Z}?IxbCPv>15@|?kR`VN}9;HEW{e9Fb&0z++8 z(#^z$qvwz#Q)89l>Y<?>y)$IWxaiG6P(VtcmtrHs_Mk8uW=Zf!t+01{ZfV<5%+I zDv*OQQ`k4GY0R;Pn(H=Is&MoxxqI@ddW<1r{>V$o`AL!CznUr9WRi4^#{3;#HS-l7xU;KuZ9#2S6VLsNfX~%8a$T_>=`Gd2*F9Z+QH#rHq@_|Cxuzu=l%)vQ|%!oW76pjiK_N z2+GSR-^e{o4dh1;*KZqDe+%{FsRnqb;TYZt>o`N?ez0xY_2Xvh)lttKRnO=}ZUgdL zaV3Juy5@{Gx{~-KnNohFSf9ytPY(D^A=t`?s6Jf->;_;r9tU<^09)-!{}Oy3CT##u zaMezna%v}xgZ$*?U8wzrQ2UKR`-{~#r{R#=k}m4^(eFnRT91aYZ~80gbAg3n>d!O2 zMdbjmBS)fQSuI^O)}!HNj|1=Y5Ij5H%1`8G=NW&N>&B7OaZmBEHRRhS?zt};i63fo z1Nhv9O$>COau=nJ1D|_NOrKR=a>ex9!ghcS{1muKE~(u{{x=+_z0`5q+nIhPeYocY z-@Q*4H)zw|8`emB4Zy!HR8M@tJtre|0^DMZQ)7nmS#X55Zh-6TQFVV$-3zfBEbXXv zy7~Nw&mZ_C7FIi_@X?vt^Z34!PcNVCd~`m&F=!_h;F_YX7TU6Ow{1Hy_(kmtkN&tf zFFkp9&ItD((S9m`H8p@W6TaQ~&J%^`U>B(UmMu+4fW5-_jrVvJvRx_%zTsSsK4E z3fASoI%aRkT665)aPzTy!#A+6x%J0(z3HuB12JpEP0jw=uwusKVLkaQwaq%E{oxDQ z3!xutqxN%I_Asi~+f!V#dmjGemP6PI%2ub+`dM&mz30)#3g}$cR@l;U6ZGn-JYQ%= zE>b?ESGd?7v+UIsbE~@t>$2;-x9J=!>#~KL-QDah1J9FKS9kJVmq8!tFCbg|HQh~J zXyn1q$<=S-mWWrfcmF1{h2omIy@g8l5+k3ok-IBP&p4KE{>J%E)4x3NwU6}_*RCWV zZFZuUEKKyIN2|}$ZEZX1kMOLZ|HwD0wO4sp)DQWFlGrW_1?WKCAJ*#rcfT(Y%BnAK zqYsIGbjK`x=s-VdM^6a)Al*^$q!(`0-2>>6>Wg$k<&ul%sfX@^ZL6p=WYyHK^ka9y z-q*dpcOZ^@oi%f$f64YPvzF~1-N&wZ%W9Yh#UV-Pb$!RQ) z@J!<=TFCxu$J8m1=ez(d7~3Q0ks3q&9tw@I?q?KjTxe4O-t&c8Zzt#JEL~*J6J0pe zTXQmFe72=eCQP6CW{jo7iav`BZI%=jqlW(F(}nXPqDw5jqG0t>lOLG9vFIe-Vey$G ze7?%k1UrOaR$bFmyzZQ1_gm`k>bcNLIw!cL`L0U&W3K&=cZ#pOYcIfF`Tp>p=v3jD z6|eewyxJH8z1spltrDMtKj(>e*}aou?P?J@@5%zIo zzE$agfn-lp&QoVhwjwwU#6X$8q=I@m;PeBBdfI!8ZRboHx|#N9H$!jj)0Uq#!Y^7Q z&Vnwo-Dpmz|FYpoKQMexF0Ux~s13XRH%|0pyO??L$L zKAy$V$8=9R`ZqCzi^|w?CuAm0p76p%Vm>G@xu$x|MPuK)>gI;DZPiC# zH+uZeiIctGOvH8u4{fH7wJ97{*_A50q%8XUg|oWqkF{I>D>1a&ZJmJ0O&W#O`!**c=_mkceJu%B%9>S;rJ zsPRIjw-GGO+d|%-n}7X~&(lXIIlFilxwmn0V%tQ2o!A6S+xG{6 zYu!aiSyH657)>pUZ>fcqb{7X7xvcdD52yuj2@@tcG zqrSV~L^ce_))XN|D2v}oxgg`jT6)+y*fTaYu-}T3FDjnp?xc)tc-LX4ni%XItNL`l zG8+i9*zcrZG@TbN>bb4YEJObTS&VwgpuU+^KzwhkPB44jp zeyL;I$wsmj?ccQT{^76K>jCeG!`jRlU~Dr@7533CIa$=ts9RO2p?|g5QlhQoy25^o ztqmL01*IPPtX$U0#mYKX(?kC2IcGcy?u*QMark$5pSXnmy>Oh?G}$``9#k7uDdZLS z>UkSD3n$G#{lA3rvTJ;a{@FQFhyVJ>q!F0sQ|3kfYc8pd=G9w}3pem=SnqHSFt)O7 z`!;C@o3!wgOl}|^C(2_3iWabovql@;rMHW_n{G1m zL}%iqbF5+Au6yhj180mg@sQ@tF6M<(=paU#c>$e`y(h3E)H$~|+BGg(SWt@Qv61D0 zm2bu#@8bhr#?Fvre#jS_{h)JLd}`@x>xcCnqwBC1YF(6HOS*!~JeC|6t%chVXAXzu z0&TTvtk7xnPCAUrXHOt<_zfdmEKsX|u6q&4Zpp1^FFSc6+6r z{}o60uc=&fUYLe!3=OY_hT0n%J3~J|@<*X78~LAq^JH(s zBImF9jOg)Z`au)j4IQZ=2X9Y5f`^sA~Jrf%HdnU-{Xyi@G@7Dxy72dM_ zRp?(m|3xd=mWH5_cu#AfY}^~^v(~Hm?;4TWbLfj5d#$}ceKq9Np_ymsfRM?j9KY-^GeD5Oi%j&+s5oJ=#$6)mf7Sz_ET`p zaxZ~H-WUITc|H14{ioWT<|B;Vi_lW~lls?$Y<&?qr#TYiJdK`pz^j+E__{`0gtGOl zGpS3W=o3laM;?dvVZHOaO+G!RQnrz@dareQE#DD*7PWlac`W$L@lg*kmM<_)Coy(I z!Jfg|J0FHGrSm^ee+%@tzMfdk%^zw`ib4u^tJF7{A1uCT566|pv^&W!v{YY<-eW_=d;gt4%gGB-78Hs zdN=X}T8SSdv%b6zILzxc_@Ie%t+@#pL-3sT+E#w8VLg<7e?nG$SyNFz+Ndx5S9j45 z;uI}yW&2dy9YMb$^p`-)nyR$&XBmIeR`4_9_%V1$WgFpF4V3IT*Az(0`rhe4O)4w#)|J z%ZKpbBYsSRX#CJPzYmpw4ks4;_yWnZ^NAm@eHDyZ^nrOj$XZ{HWuZ0WFZ*{#zS+As zU+XR4`)+*;;QCzo*jQMsz*xMV)$I7CCPw9+UCB7d$vs z;jIPs8p`)l{*0ND>ioiTiU4~WBA|3 zyJQ4?C1v&p#Um+jOxNnHZ)r_!&$DjvZP!+dv+xp+w$ty~>i2l;-@+~6pI_0Q%CrY`IKcn!W0$b9;r-|i zv*BISKlt}&L3!O_{3O4RKx^SA8&odj+m;M_`LDsg-(lb1#axN^6rJgt%{e*67_pD6rali%;jhX~#^@{?Edza>rV5B#m?{j;W;J@2{5%juL+-DGO>1m;0g()H)% z0}GwQe|wW}gNaPam2bY>Is6j;t?b`J+^l#v$vpnlE&kjce3NoE0|OqCPfz-!*335g zFCR6qC!GE!-lLE1N#9^(l;XTj$mEKapJLAHN&$X~Iom4m6yLsmT#LWi?q{xpes-$FN^Q zJR(@_0W3QnSK0AEkA1mc_PZY9WNw76@}Us33J%fC0WTTCK`{{TSG^QE8}-b77X3Sk zAHv$xUq+@xXYJ! z{61xe`?NLa)65VK>Qn3M^vOjo+CFvFuP&%x>eCHDpAHhYZpUe?`jkF!P-FB)#^+w@ zTHVF=I^ba2)bAncNPo8D!1x>tkA)qFD*~L;A)GlR zJos`!I_!3I*X@kuNDM)kmtH>WmAF2wx(;}9P9{mts#mL8sW4 zJx*QjIT?I8jm$$9>Yn<2_TVb-zko%jc&3fF>=JwKUx(_!*!6N!PdQ)db~UJaeSn z29;y1Ej*o%b%JtxL*>?}Tri#*%SQLc(o3v)8vDCL<-TBW3&t_zD_0%idMK!q3DsFS zs*V}=z{jq7Nq24OH$lBwp?V)3T@N0xzIoMi-CIgO3+g$cdY6x`2c5$88ll&Zf_i&G zzTyk1=XQzD@R=k3UTw@aQD^j=n5DYw#b@NkAolFl>MlJ_-M6XkZt)rMq^yyzR=4Fi zb(>Td+0??^Xnc*iQ3&~r?L4lf?l51V+gu;eK8p%|tFI#@U7bsvc_P!uwB^Ltg2<#zEt_EGRcSRPG?3)1KN($b{jv32=E504z0IL|KNww)F$}lY2w$HZ)awk@`#-A3 zm`Ro?uYk!h^BOXujk=@xZJS_3;8kSW8-Yf-iGUIz}Bf*|3gb*J8E#)u4W7sQziH zACa6PhvMthzcr|z3e|rz^}m5{dk>!hK5MS4a!$Og+Bt)d{M}|urL(>c>@NhcXQw9* z(`<}zV=U^(t^IoSKNZwp6{`Qziz9lV#z{I;EVM5eeP?@k{kFQ`-T5S>utt2okV>o#nDuRd;8e>yAZ-?9+Qe-Fch z2MoOF+XuvlapsY1v#PILX>ZkDL2(?Z`aZ=o*0A@8ry_k10B`hszBddP-tgh}zXGo8 zu$mj{``7@#mqYm77KT%A;jDiJ9PJwfLotRCYzHT?hqZ8z5QioF7S9-=W!A!#-j||| z(Z{jFQ`f*@KRZZ0jltSbJ&nOiTbD7A&Z53`PhU-4?Gt@^b=TiMVC~?-N%r1r-sc?t z)_CpVUP;3t+89m4CE<3^dHi^o?`?P{xCA*(& zsmb13is#H2u@j5|Z^@a7n7q4x3RXOAM&5TfO`iKMsD+ znIrrsJIhz->po*MqJPXS;~R5`{l7+cl<+@~KRd`bS>@Ih;`GP(&B%FMx4XL#DQ*~$ zP2m~*K%Ai-j1=Bix`p!|jtlSM4^*rzezm5CyzB|v2FQ27`03M8mi?SLIe1HP+rXUi z&&$f|LLU4k+2v(d7hhfvPd!FoV&uI{I`zl``kC_I$*yrZb`IGEe=yEz!p>>zF*SUv zuC;MsyDXl0lV9#zRdogxbT%vzFyw(v`Iw$CrftitjZAD?yLEjXP49F56&z_9bf)aQJL z`g6h3zQPBBdS49ch5g;9o3T7#%Bqb^gR<8IWgiQ*(MH*%i?4)OK;=4)XRwnvx%ITu zb;9#UZx&6lb4*|kOyK+rwk3YIb=SwHcGo-8y6fW|=Z_OkRUNrVqGPo?Gid8WL0jpN zFS`0Q+WPZvhTBTeR)V$?w3VQ(2yGGk-yNZ?XwX(YZ8?*Iw$2aQ+7@c-KmUAezapW2 zJsY&Ouj4?y;6*y#JB!C$Oror=%&HflS1~BKHGa?5c z1Lp7;i%*b&kw$#EX=F|-ws-uvxfIr{h^RwiqwT+A3^1Y17 z=E?`~yl$kzU2VoxrqABhiAJhtHld>;qEc~^RW zu^yT{&2RZ`3jLgI%xw17uE&4bK`cwVc;np04hzr$6%J;{P!`wTqYxa^UDZ3UY(H zxPhm!pG+KzXfO>rrJ++bbW@z+*8*B`?!?4iOk*8R)8}83S0xQygok`x;Wql9Up={w z^{$n7)HUnaZ}F8%9{(EsEsf09DPOVhtmE71fES^M@cF=rmy{yy{gt)IC=*BNDE1KlNk4u> zU@4D6lK%JM`>?*qBd+$ch4P+Bem|aeon4YEb*B8~=FZfM7=PhKo{q{tn3x)!@mpPa z!quHg3(E@)y*d98&|){ZhWj(jr;Pi2^{2g~^blnPv%!TokX6@0`!G)?+x`4M z_gQo?Y?rjfT$>Q>T4U}?XmD;v&WUd>E3awI7S_z|ABbn!kHgR8X)|LlUQROZ*Y^4S z+e-gFfF5%d@@07uIw8wMFU3|GT2a=-0x-{npQVpr$Pf30fKF?GqqEBwGVUtJxUweS zZrWNFwDm>G%;CM2VRp>3TF+8`EFEVb%s9$#^=B79IlQBCdaoEg={J#4Wh<1kz9Pjt zs_b%N3B`w<&{b=Zo>|!GIXjF#r2UB1g=+s~bfJS$Vn1W)j}&@V_7>vcFP&UEM;iI3 zHhSte4Io2ev1~4e{7B%xO^E-~*-J{~voJbxPlUSYjmo_vTJ%icG;sEWAht1Gh^5oD z2|KT>+$I*t&`mt`4f6Qs&*o0o?tz6`!tt+ZY+Az!(5i{ZcGbwtXEwG~#M9wcaUp zejj7Z1C8IF^G4dR_KR=PMtH1*&wszkAFKa5@s(rM8-iiSDhG@>I3|e`QT&DADONDq z-@u*9+!L0TU)zsusY;PAD2Oj$ohnAM#E72g%QC%FIjzA9MRVqcVxYAaYYvIF@~ID> zMM>W%K8!`u(rw7?p1l#<+})MJ?2&#-C%#Vju`VbMBN~irf6ETH76>5GInV1C?EM5;E>ACD>)t8ILGD3?y65_3^OA|;&r2=YVwS?0Krcha5YU;o-?ef^1XFY4@!^s$S;h5OgJE6$hulCe?XCf#{a*0&h- zCdBp0uS+D|b%{83F$do=d_^p_@2CImi9TH0znP|gJ}*2F>YwD7VvaRm#DC(u<@oJ2 z-j_KezdYc8G+uT()R>3D8oJvfamm^j_SEhPtg!q{S0!R*0_VOXs_ zcph6#b{pmVJ$TF|Pey8k*IEycvX^$8?m`0kDn57h%IyPlKJx_6mY6*_`)u&knRCV1 zUfAuVHulNJ=%jl3$k#fU|Q^R?CK&nq~ypo)3tE25jKCiAnF0ZCUGk3qW9brGy{4A7pCOJBqSMf1veHX84T#v`AGc>=C!>`u_ zbPMzAn_h)qZzgZD<<}!;9!t}I|Iec)Za*v^6u*BgudXUvxiAGfn|&X9J#+*=rk&V* zC*s@YhG`5Pqiz-&i;tJEwuv{NGP2-Y?z5AQ-QaF!tuptyVUz1W#wN!)H5hffOdLiX zap_gayD<)OU2+$CzMnoxjwJgpBIaj{i3xh1xu94~f1VQ;#2goICsT?G>aIi&A#;&u zR(Ex!`>-~==PUl+UbM9DRPH?5kbHXV1ojWe=!fxFTREM9ZlmofG1)z2Qwj2U^ae4f zlBeH1!Plp*1BT^kt51ChSas+MIxpyE(21~9SYg_uza5cXAdP z5AKv^Uz_eOWFs35kJqyPXk4?L%dlrE{s_+shczed@N)R9pS{T7QP#d(@&FlLLWXxzjnmaem<;+fw|%h||{l}|t)(Pb&HER82Zmqx``LkHK@IIrhy{AY&a zTa(#~I5#rskfl*8GEHd zLUch^8riCSo%$SuFKw*ohtZj!zw%BGcGW|l@w<_&3(b9eqW$tI+kH>JOYnhhG}8TZtYn{GvHx&pw6u=J`us zNt1o`JG}qAaD*mf4NYXrfnVTzbPS(gke`wIo`QoeVsf*9^PJj-5vB>&+Xh&Z1450zV0i23)7@Cpb29-XmgD?v8>@8(P?Qw zm*3a<{4zDoo?$Yyr@Wcq5Zv=3z3BkD%IBwq8sa4+Y%fkBe zPXid+gZeW=_1{PRcjG6&iqEI`e2&jue5%?VC-QE`N$~k8|M&6Hd2;#F5AgdXKCO%V zT+Uydr+c&bF!1d>Q<mUlpXuZet&<{ANa(z*Lw3Cpus<)b4fnz3DrB1dY6F{^KX2F{k&wgbV1p< zG>&$^`=zlyE;?5rAJBq2^bBL8#t!cKws7%<$@c{>97&^7G46^h9LhI)9j%kGAr#7s zSL%BOc7gHep1DX@tLzKp;=-N~Bmc9`6|}Y1dZLle-dkN}%Bt1nWCWPJ*ZhiRR+p#p zTROJ#@+kklY_Qtjs zzq%ZS-xYr(y2$=B8$4$LbLMIOS)XX_#PTx!gI_&+3i&JQ+s93wp!pf8nP~KGo)xy*U-i|So^y03dn|NDJ|KQ?W|*|)Jz zZDikW->a-WBdqywP2vj(Tv)KwD@m`MeCARBjCLX2HMGZFP1GnOGxQ>fOq{zJ6kP?j0(J z9YQ==ohcMo&+RRIyVjQ@YePQoD_;m?miSOU6nx&|#dr$8jPl3L=EJy2M#y)e81w5G zC!M*QiteIwHco7FrLD-h7I>_oo-+q#u3jNOM$_zm`5Zr6o|QFm`WvIE+(ynR-TFeR z_STDKFGx2UdlxynG_K_+<7CghoNxH@vt?v4G1||0DfnLg2FsgP4_E(}HB9!dcn{}f zu-l04NpQ65k@D#n*}&M?y}S19(#f2FCnO)Lc{Ydk#TO6%i_cTGjYmwM%stLE())F< zv+$KYQSCoR`?kHa!Nac4!b9g8eh3a}{IAJ=?sy=7m1q)A&o}!W?Y&+AH|;k?FYP%+ zFTYG8BH^bWbdqek3uQ z`VT&`uc&ek<0V z2l7*B{kR0VAQ~z+4S4n0`5#Z8Z^q8b8*3{V&0mGbCv%6UKSwoJ+XFmzgQwslvvz5I zD<_%LkW^!|u^8Y|(yVD8E0)YjGPkrR5b zj`d4&O1@OHkKz1Zgn3qBZp91e@J4oAsoeMY*q&uyvdHKYDfTL|U$E|-+QRR(t@v{K zH+XBibhcabbYu=9e~j(f@|0|s@?nN~YW-*YdBECe@~JPb;XGPUPJMWSKIqJ+6T7AI z;;dt7`?o>%V%XnIUPRZoPbaab%U12`hx3dUGVosE;!2vC>x^eV2a~3 z^mc@AhfiKTmF@dk!<*DbpEho zb47XSYLHD@gX8IzKqlAqX|Hd2A;!(V5r>9&?^aImO%9FX=p!)-2^| zP^9aKG3;$@q+BFe^0^-jJa$L zn)9+fhtKhSp0Txje?7m67a6p;h(|t|_2&=IpOmdeyrK6yesc8i!KC^*awd>aG%N543v!anA^{ZinZQa8mxM3%<;L2-ucRp93G+WqsT? zS7rsgDO#Qx(D31;Ps8>(BQ#tN4ULV4c_Y~@Iiq+@@snWv>m|=eC<~Em?7Q(KluP9k0pz3o;BH9grBc3*P%=K`z@`#=`Zdu za$5UQwNuBs7nav2|C`Sb9}C)i8Q->Ta{_JFY5ip#Hv1j;R`hJ_LZ^kM;-6>U;@jD( z#yN+VLRZBE+wmWkp#dGk<31qy1unU({q;yX)I4afJ%;u=yVCpEH!m`=qb+W~mjN&Q zg~h5oF?YQGGkP(0)3TGt27$lO>>2Y$H#7azSbQCN`m|;K(cblAeIL7#jakX>X73c* zw7TqQ9aA!2^%Ywy`h5x*R_0$F;4OYt{t3ZCmYCc#mex1Z{)y1Uc@ zYf9z0$B+Jw1;>`ccEe9;)~_LWO>uTtTyeFMIi7!KYI`+o9lI%M;|5VccE<#MT^x-yi64B*1n=|t|hkT@?*4qRPguCz-jnjoo%zZ}TF*JFdGT6)DU+t@MLEHuF6L$uQ zE{hcZ#J$pfzc$ey%O7u~Pe;Dz)0*{ZmvC2pd5iCn4(uHf?MrC~UcxtkkHqIM;dqod zLd{wIR-EA9`LExSc}Msy9aO%0J3mjW932!5#QTDcorryj&#S6;X~mb*_Spb11Xu6W zj$$}VJo`90qHJz=O(_(+TYFg-H&iab&q=NqlW(jlUx$3bW{{E}hg>@OLUAqS;^^A3 zbc`7Lb$k~%r`?O+XhUT!F*|DG6W{b{@xCfQ_Bj`vm6yKrKLg0Kbdd8CT`z{*ur`Mm z;D=bgpZx`Px-{dIMQ$-BQDEjL`?QIYsOOQ%cPd`C_{bdTT-e3)s}oLYb>a%f@`1a# z6AHRi=X**na}NP=Q*}OTeq)QgX(sRNo>u*80XMSvFO{l(gYWRK9=72acNK3vF|2Cdt&hbn&!{cA$O9M;#X;hQ}l_Q&*<6Lo|DPc3_|7-rPra z+*in9`#&}>U z_D*LYN1u7Hc(t=ObTF?LFu&&YlQSjDx)hA*KQpEstOdHi-olj5sxd8`H6nY)YW|{+ z*nGWO_pSZ%g)Fu%lZSY`Og^gUDH9I&ZfV~LO*LhW1iYZw{sUn z>vI>d54>3NPc)9FvhZfsL#EzZfOm! zdIRg$9{JQ+Ba^I=c7FEqENo+Y$@A@j;!oG{V>3*A416V9PfqfL`AM$c{hDLU$0p6K zz4!QYD-!9cq({Ll0#hD7Ye|`0caqB|C;YYS<-o6ppv#_1GSIgoEC9xi*=AgY{B~41hT#+8o8{TnZ6?dZn2J5o=>k$Kp%94 zkCYfEbcwFY$)UMs)<@>Xv@YHKb9*6{y|)luzoyi&lJ#JHtvBIaz8@*tRVcSa*o$P7 z%=d|9L`xFcbd$-D4{!ftUfY}b#xtTgRNg1(5oFhtPawi z_WAOo!9FN6ee&>HcKBd`7xKJkC9!V?r~YGb^81gCJbl49^4v7O9zJVB_zZl)r*+G5 z@R<|fG-du!vkl>!61mkGn+Ib+E))3?l9*X(%Yg-6*POxQHXV0a(ERrc;JH(r~ z{YCO#H%(4OOJ_uPqO0W=B0m;Erw>eLeUPkwk+_5Z?H;8KpSxZ6q=!L=WA+kX3# z0j@eXZ*`P^c^x`*ybc|n4ru(10QTJ>*jEBu>uiE`R&-X*OiN?O;Z^|A*Ev3Y9}eJd z4&c5Vf;;~;;jZ<^?N#936Ts~b;4YpyLW>!%33u9S;@cm2AOyEXG-mBGyarzw zejpB&Gu%Z8fUd=TR4y8YoBK|LIUyN2TBeKV&i@CWpBDvfxMz;w9(!YLJW3n;U#pF` z1#O%gv~f+SjluF8>c@WCc=WZ}aDz5lgEpQEwei#&YvVh#ao20L@z*PTS|x)vW}h`e ztB2lL8{=ssHo6U~(=d0-UeJ#}MtvEO3$?N1jkOV@jq$J6hMw;Y+W2MAMjU^+ox3-@ zu{K_}AIp@l7X9ppK^x0MZG7^LwehL6PmGtG?H}b|pCVcz@6Dbs&paobc8SH0Igx^ilTP=PV$-{cd)Jo0!;e+^eC*BhVqUq!b|@(b86Sw66#BvN(Lr(hIz0D;=R%S0z8n$N$UH$hg}v zH|s=}bprWl$6Gd;@OT^B4fK?qM&tXXKlt=GVboamf{Vsob!}|?7X$o;g7MT?3P+7+ zXULB(`{_5pPqB`wuRR<4vf}t3!XNw=FX_MDeH@rphw3;%w!QeF2S&lVLw$v}72juV z0QxVRj^XVTaaxSA{5MvIi2;A2#uLBfFUbvU`8|q%&(cIRIP%D`e!V`86+HWs$g#ZL z4xTnPMtIK-XmLE=UNOpd{t568=QdFu7Z*RT&217TuZd#vBdbsLB(3@P7n47HEX(vFYnn?);?3Q*1|8GbEJ_oOp;NX=o5SBn(#Z7)x7u~ zbWoX_DZ@6w#F@x$FF7h+tmE9xyixx3GwGMvdooWI|Dk=IrN81PChZRFfN5+ojQKS| zj&8+yXfJ$t&qyqX_SSa;-^%B=1h93#B=_eT_^kIg37>H%5u;7nSUOse4y*n4NV}UW zx5tic_x+>V{n@B?TS7i=hj!`zp!%-dJ2uCv$z9RF84hAGb?>f;navW9Ss)Kjo|w$K zu3>+G>>rX_@=NKifhx)*DI43fmit-yN@HJGJItq+FXansEY^Dehx0p%snA%+hj|L) z@l)uku|1t{Yd^9+ANeph*UQ(rzH$OQZ~P$HV`I<$#Q5nf{3qEbC^k`Xz>z%uW#}S* zru<2pi=+HV0W8gZ;U+$j-^=(Hf%O4kF&4vT{J%o{hFK@FemT`sovWd>aQ`ptI$LOG zC1(ZV%&)3H?YO-k8ZTH9bzbE2z|yGmGM~CDqK@i?>9QP}h#uHbo`lJdi6_vxOdC(2 zxgej4jhh>NF7yO&vw6$aC)Gwecp#>PWvo<~olP3F^zo zYS$!RCakUCPZ+d)>8o=N;|zKQU5;GqkKZ-GbsRqyR`$79@N&?{VLk@W(S1}b=?^~c z^KmCIbRJM~uZjExr8;uE9BDUx|G^{e7XM9^r=IZr1J7eiwDLvo6Gi5ChIN+tV$UpY z2Y+niWv8EK%wfgh!?%Ojbp5zWhi5LnT%NJ-D6`HC$69`gXZr8JE6~vRnU;szJXG-I zWi+tCp@ZCnjm*fNZ zCvP{l_ThXEsg<0wpCO&-GvzGb%*&=-sr}5o%ak9cNo$|hyK~&Ae-_i8v)Uc3aopFw zHdy1%ffmyD*6wDF3(lu%jr%O^>TdWoGoJIb2Bau6g=ad`Ec~QXNT<7uJ|<*;MMsXc z=jySa!J!bhr-w2=&fl#xf`8n(y!bcb4;*sS zi8gCztRV(Sa-+YJ+DE*_r9Z61_pK|v<>={*p?|ilhI%@W;KSKc8N+|A#kvR6&Xsr4 zFFo59dUlqc(SPLt`ZnkB^nO+F-sW;RjWSW<%LyDvsIK)+?e>rDQxm~ z{`F|n$H?QIDw6jXy40L@i$4Yd4@zb!=3Fx2Qtmgpp7mPx&0cJs@qOSzV zeqG6FXRdbS%4uiXA*U05g=du;KHA~O5zNkinKiV#(q8zoS6AS^Exr@*kIsUMHqipU zA$ZE%*F$@=h_7no)534vnV_=B5u@j*yvly(ar9k&ix*SSeQ53o{f90+?T}&;g`aQ{ z9>VK3&5!(e&Zj+EZrAVjbzVcqI`l=wOc7t17T!IT|A6+k9rgcTKNjdb8F0wuieE6Y zaiP%}6yJCn|M8EMlQVYQn(XT7A8Kj5^-XTBM=-7?zDzWVK^xniU^YOL2>piVOdk{% zqw-G2y2?FA#V3BB8;Qfv+|av!rO#uSUsuweXdt@id4}gYGnQlyR*{!%8GSRpoZ$U( zQ!iIsQNP3c**UBi?ewFA`3sM;u5srOG76lkb}lVMcIL)cWf_}*Hg#!@-NwrQL)*K6 z$x+pL|5bgN>FG33lbO+Bn3bB4Xuz=6gs54J(t!X`(e2zI2&>IyS5#IT7hQHm?YSjG z$gqRUEwuA#@jdw60?vBesLU(8y3g`BC%+Wu6< z9=aG_I{bk%Uur4#vz~NuJwJs`lck7Occ8yA$n@>NeiHWy?mw+@aIf`|tIXJz*6#+t z*BDvF8d2U)0!NZ(*{zh5PC(~&{RQuv;fMaXehc^OxzBJFPy8+K6Wo86XVBJ~ChoBx zyHegl*1hnZ$~s?ZUC6pbtr?qEdy5@p2{N4h|LjZcjlP@K%K4l>Vgqnz101zlJ^b2NtE z%QxdQtmij)z#yWHk@3mf-bo@4a>7?`v zF}AvB?!8>Eq5pTNjOW)s-JoO7wLXL6#B(30**-Ur_kF|_lvUzFj=C^{`r>qo;|!!zuMhFYD@4%;(Q*_Zpuv(1AAC!IvGBF@fe=reb%+h4`(vaxB5|g%oTF*;fXsQMt7?J`1dED z05)JeL41rJH1ktL&y?7!Lz~Smb5UT<^2kN%HBqnG&{2e=!+j4=NJmZo$p>nSdbfig zzR_-tgfGSLWVko^wMDL0opE<{SGR|*HBvj#dusel zmCI8u?;$?;v}$=* zO`q^a%vvZiYBEKA)fN4n71t|Kz8hS+Mc{USNdHUgGw4h3P5dSq zv~@UcYcXvZ`0|49;P`UjgKpY-kB6}s!6JO{_m1|D*a z3_OiGPF%;pL%qqkp6L2&Xy})W$1eNzM{U;Q%($XRsI=M{x-!-DAzul+?9g- z(-C5i*n&&QxA#VfzjN>MU5LT}dP6k4toq;3o#;~iyYP6r1nh;8FkM6sgX?zcWPD^Y zV|^<&noZwla(xqHm9HWgHI@s2v)zq&EQrTB!zLFPni4OFjxt^kG7s5D`3vJQi3Zol z>+Xeyc*Z!w3!&i)c0@R7wAaF1t4+1{g}6QSeF^Z1Ue1PI z$b0Ov#|D@W(@xC+7swm~kLn9|o%fD}zoZTAal1BdNAeNePA11b5!lX~!P{kZYmD`_ zF?(NkkKnwFn8ip3I-(1nne3cG6XMs2F<^z>HE#9O?%r(Xvs3g=KTG3&h8gQbWu&Gu zD% z3v@o^H|QhjlJ^YEcW&B&?~HBEGiPjjmBEzOJ2RU!xnNAz}@q$}kBzc&;#0h3~7`o{StcuPE! zCYFq^FuCzB6PC~aF8-ZQ0yTcinc(?m-lZfr8G8;smu`5oVC8)e?^DdN#_8}5d7h?B zT7KYFJd5~uS$+1E@UI*3Z}*kVJA9HXt_l+Fsz5Sd?aEJ+E+Do!+0Jj(r`#irHeT#G zCIg=13>?vr&QsEvVv+%B!_<%9;68#&I{t7B|4Qx~`rZbHF>>IH-Q%F6s_Vv+dq<7E zBYs!k%8{4dBRcNnKFxSv;r>+zdFSx0X8KBc>#FC99>I_J+bfBHi@-){K_r% zp%i;Xy0LkZ)?E|Ki}BrkYozwKoDt;pGL}3xhP^%9K+>6A@T)7RL;og@E;*V;cHMHT zc~(!wPYcss&h#_u44$5mhNTenlbh^`b&NAo^cRGSLqePV}B z2mVA)P`}60H#1pF^RP=eqlK|m(|Os)c7Xg_1AQ{yC7RzZtH54`BDsWxO+l)7cOcr; zvzB5|@3gif$7GMKn>dHHLD|V^;F$gs`~v*v+0duu`N=;9C$o^7(`Q)L({ykx|Ec9I z)_nd?=l@;&=lPev{S?>d_%A|%plh#nG+!^u)e~GlKmW{^5)1d>abVweFa8_L=@^pWkf1Repqh#Rk43@k8b_SyPVZrHpMoGDPQC+VBW^ za&mtuVeRJsDgIyJU-P_j31=~B%-k2a|3G}dnEUs|_br8>exdH!f7$S*7lP{){b>*L zuHGNEwtGKJd+vGI+Q=C4O2zN&Kj>;w3~bR??yR2L8A5P zI`q*7Ep;_p7gud)g(=D=_CA4qh3`Wfwg(*OvOnF8tynD8D1VlGhbeL?@9WFi)f-0PUG~wG$F_&Fkts8g zO>>Y*qXpzA(KYfdpLg{V}?$W#P!LEuBFM5Mix~QdmpbiO-t7jUFq69>dglq z3#^eaPg~t%$Ts$E=sYmn%?4TIdvwP8K#+j;WFy$c3u>!$#vgu}_Ty#Y(e~o4=|pjr z1+QgSUBS6vSA7qDytw`!@Qm>rppyc9y@>6T^bUkNPv%_8=3|*hT!L@d96Of_*=lCRc22Oc+gt*(EH@?7pk|AFLROjmwVpdW{vuHAZK>YLJlR?1?*L_gE?D~ zU1jdE(=)CWz!7VVOn`>DH$FhiXdr)kQhivaJo|P=zfK(R|36%8YuShrrj2w?>*6u+GYQh-RW-oziZovPZ;Z4XrnRCf;&>%!rG*K_ZDcPK;QUt;c1-Z z=fMLm<&Eg&RKazz9pS~_=Ky7k*va|WL_-cz%jmYVp>N;Z^&2eI~svE>}>QbWuASg zI?OYb6MiIzWwRhx$-xQQ(B-Yb(z>~FgcN$?-h7!CJ>+w^kAxOuc>`lnnRg-!%`;cFnbt*DO-OHwMzGnlNn%*j7+(S$BJUy` zBD)mJY+=lTRpXmwbVZ?l3O4K~8H3=EY%?_HisqI|#+i1AX=ZiqjrbU(7wuxKLn$A1btc0dV51NHgNZAa0hP4^1Z-XWUXo5v2l{) z!nuUVY4Z4{;m<06FIhMc&RXJEf9s}eoQYm-X3Wc>#gsS0;8*RfjmQ04#@T@N-Gy{b zbdz2J-4q@Pe*?^dQ}iVnAUr?#UB&W$UsqYlRTBy1D?%_kl@=1kbnUm$1NssF{9*xLf#aNFlYyh@3g9R{5=!pOLZ2tyXF?nKKn^@(8EBh<9!?je*Y|PdyHBhS z|KPaxm&WZsGNt{gWBjh>h3}O(%*_t!HqK{qDKCEAiaymjP4g?#J(p|!@{D=NHTGml zo^>ricgUUwQNfsaa?UC$Vv@c%b`g`--?XXW2JwKoEscwI3Um#s?=o)(7 zLfsBxpGm$;H7&EOF1_{F=x@PAEYtWCk|SsQHnO$4(Uq<<5`L1tWM@gYsoieoUTZTy z<=h>?h5p|;_4z{P^mFuuy~r5|QCYoz7teJyHXrA?zK1d{eBMILOM5pN|JDpVLY|(n zA9U>=-JbsXr+gcEgDerOJo6%dli%=wDVuF!4P5dCdX~JI?2hd^e5$&>PnvPpgNr+Y zJ3hs{>plHyokVun-8`ELXDe{Z-jcoBfcJ9zPjv633yu@FJ&wKpA+>XM<9(j@FyUkq z^fZsTMb9K{bWJmHCgKN>vGJX<-IQz8>9DOsZ=;UpvzNXMA2^*ui^?P6;!)zcPGA2b z4?c4;Lt3wGoC9K2Bu9?fCFrwy4t|zxvdE_{*MDDQ9YRh{YK~_^UyH_gZeiO(8){SS z%>>THE;#|r(IV<-Jzvjryl=puwe!W4V_sfk2WgF6{av8^;3D=beOdT_*elqy(OUcR zr$&s=*Vt2a7$43%zs362Y|DC;`vjFvUeRK`pMUMex|Zu2{_o*mYpFA_+hp%SStuG8lw*DmC<m8qbIcf`k5v z<%~@{_D4^wt&2}IH?k8C<2#8?E&6DRpWpnQh8S(`4fH&>zHY?ZgRHD#Meu}RXzrnU_Bnji-1vmz6BW7ZxekA#>aqBewAQM$Iq`k z9wye>&j0BLgu|+Q#P$+#-)_G?v}6#!9^JUjK2&t|UHJ7z9!rPs=geN?S5cn1)VfzP zfo{Q2GW*hnqX%YLhjP{kz7260FQTVLu0<01df8@!|l%+GU9M?>3e`0AY@X|Etc1&6kb5Hk1^@PIIm)Vz z)-<2Rws{oZd4~U-;B9HG8$2<-1oyIo6&qPg>_c-vA4hX6CF?XcjmykQJhnUIu?Z*m z+-8iKc#N-y6XHDvZ<~d;DfqB}^B2JPGhl1@^qk)ij?Nto7ZJY_Jb}yij(}t1^wIF7 zfII;3DE-oq!!B)9)vj`$z{Bv2N2nJVKVPuP-*?_(S-+x>z}0t2&#lRa3fQBLFaNyC zXl{rDPkN%CJoK~lV3@w#ubzMT7<3rfXgAH>4_)sFzeis;E!|Ha$TP;}(Y}2#GK{*K zPr?7_eauCnpmh|RwccrI=0fF~(MKj{sR;j+&D>`bj%*J6%va*LOrAL%g?H%}`*Jen zOqa|@-Y3EY?~=SrIR`_l#CV<7TH?CL>T@XDZVlE_KJREtF&N3-whFck_S!vdeem_N zs$$8+9rsA@@E)GHm~+-vbtndBfxBkTURSK>2by2tZyy_Ce`>@(AEdo@?|E=`bM1@F zi{<^`S!>LH8oTZJbDU)Dyt9Dq-9fdlJE)$<^){}y^8@^}AB6T8XOz&l?XMwkVrlhd zU|>oniObY)wQbX<`u~Ti{rY|z0Cstl+tqrY`bA*wc{^jH4ca}3@_hasz@c?3>8xgS zFKygmv#u>(7u=fXHJ;9^VXeIPK=rg)e)XL^v)?{o-RSH{(^i7Gv338|#6!n!21g&N zs{Ax?08Q;tJWcSoBMU8WQ#ftx${=y?59*0tVm{u@_$fp9MVgPuZ^@9CU~uYf>VU`F z@KHP3t)W=ofoqHWMQFmZVw}(PUp))DNibiMd%$jF0_!`_4)IE4&2=$OMDN|${>YcA z;_%{y&coWr6FqwqzVianB7Wx2X;c2BQ&|@}MRG0OWE5vAuBs&#ZX0j9Vy$p8naXQl z&T{4aq|;8Hr8SP#3pbCSbKZX9VvB04vG27;pLSOTiZjiu=-j@`>n`OScU$Nb)&mc1 zL!Z-FW5cEo?1j<3o}+Dh+tR|Z;9s?HQ`B~GQEe4|q}sO0hgI9M&yvvVoW1Z0XZcc| zH3fZh_OF;rodJqJ$Jm9FIl>9$!6$p09-c6~R{(!`_^;4Mu3ul6bNldD`hd4DZ17kI z_0o!C6@p~Sl3W=~!<((`1#`8(A37m|0r|vP1HfT)vxm(?d*CIBpV$F^wL(*EkL){g zN+Pmk+h?_NUUZ7@f66zt@u3qQ-;*MCV8JJp!LCTwl;@)uv?bd2L~n!U z+LRCQX(=C%S+pQo;V>?EkGRCs)eeVqEjr}~nlrD~WYCujW~>kOt<`m>oyJ*U zZ!s3Noy^mI+@3>wk5g`pca3%>o7L_KjDZ+eY+o(IzFO7>4mf|!&__KD-(;EN6m!gc zXBWi%Z2trO9A;fdcB|GU63n0Ge?2s4mwD#v`6k-(75{@TSX(MVm&Himici#^-phV& zcKzy~8+}bZ$&>}iVxC6PcQ+&DSn%DB>lfV1_mJ1K>J#xx>Xjif>A()H&(}!Sq99X8xHs&ik z+#$dR5*aYlVIe`O#TnfC*B zCAUwyRB^ig0(mOZpC#tA7}16Ba$orp=42J;7OX{1U0mhc7RG)%LOp0}Yd`i{yKF-j zdL%D?t!M){#FHP={2^EQoor%lRXNh!OLj>P)b4YhWo-$(5l?T}g{gcQdBnI`r#9_) z`$LQIM01Sqaa@0I{~h@@^p&vapIk@DNZHTukfDJ_{FbqFiDx7SXZ;pCdoD7wXT!Mq zYDO*@IYv84m4R*=^RIkK(be`}9iwAg_>bpAbY}Wz%#us8;Y~~>IFs1KD6x$l4=i^0 zcXvDh&mUd)g$B=_&)T-~yyxL({O%U}kXifX8%0NRp|Mw${|s*HsbKqykJ0u?vh#^m zyaL0`;r=&VOmdB;*Kc6HdVxo>JX!GT8`A0EF5ps37<}B8F8KG_z^XXF5V6#5XI*%&_)oOy zZSS~a$&k}+4U$e0Bs&Yb`fc-R^XKpy?Ln`cgP*ppFPWJQ?|clMe&^9Fwa(5aIb<7hYb9$fLB9r;K0gjZGfC9awRl2 z=`_V0L|c5XdGZMB#`6o{ivGnPlKqwsER4^>-n86R;k+_&vC5{9xFb4p6X(A}Q{)=- z_bTT`Hthyv%`)*!@}s~e-phe2Y~VeAPMr*OEO%3g&0PBhG&8WUe>~$1asH0^&LBDP zTSE_>oatFVKGio&l?RNTpNZWeo{)X-ViP3Y{=lhFo^iD+cCS8V{{R!YLwi6t@zV9+ zg89g=PBVt|Lg5Vgs&7E&sB6z12>K;+fL-rRIpD{~AU=6aH%f;oCvzA0m*4gV;I}Df zjdEVW*oe|Py3XMF9NKN!yJ1}IYpq#za`d70@1m}4mFh{W&~~ce04^Lk^1QTGNA3|c zAUj*?n91vWk7<$Kc+EyIWMV{U;?O7KIwiBpQE zfP-?-QO(4#@{E;#?RAly{Fv$&B`-Di+c`TBJUAP|UDzZ#Th`&3e6%!uYrZnpCf2gH zhyU~q$wYWQwp}F?yuFcqDp)P#(fdvvthEE{`_Dn11H&Tqgz@{@p-m7uJsFj2s*Q#{;4GUHl^XGmk!kc>MFcjStxP-cHZJ z1L7Ouz-C+t%4wXN?~L$d^bk4_I^3x-k#}h93{37lN1Udbp6P6id5kj!t{0wEu1({d zfOh6{V=@`cgEwaPFwf5VanW(o=^rG|jQ{WIE`2Y-xp zKV{mTYxeu$Px0XV);B(`4PT}_nak-h? zXSr8@jdE|GT*E&4E&GAh?unF>UOcid+G8*ey>$(1oRYtSUpSQQCA}v3p_tPzS+|j0 zkbq{C$9EI!3jesgB0{RDAy)?w^eB)%F_jq%y+qWAXEEaKE2> z;re6T>-}GWYvBuhXmI@y@2BGJ`|Q0^xiV!Qh}&Vz_50#>J|4Go1?@WcUd9KamV5qLfsJNr>dVXA2I!^QUOMC#8 z;hll&o!^gRFZqb}-%OeL)R{^Ti(-1PdDnZ~J1fS=v$QL`Ht^IFKmP)CX2x|A&Z^oG za!ka-Z9Hr6zv%LxssBN)k!*(lc`rCec-GE++KuK+V|awJf?w~Or_fe5uA}jn;PIxI z#~%RaoyG0pb=c+Sb5>oV9LY#KFTIVgL_D>-v_1Sc;sLS&(!@Gt7sy7<9JkL2`Y?6& zAzO4Fu;vrpzf-XMjc|bev^~W{R};fu^#FF{Zs|_-^8j^RbV<~wU3-T9R8Q}b<#mrZ z#`0d`%-9Xfdj~_=pz?X=VdF25z5u@sT_ZUq`uQL_NBS}S?nvi+HTFXo1FWzq6rP%0 zaw)zg*aD4hashg1KK+!@eHGRg3B=VF(4X;np;76Qd7LL}Xp=snJ*nD9X~}OFf6#w| zeogAI**6w!1kK z863UpMROv&ENu9P*xQP;zXC2T=D~IcYOmk}8@`@V9#1AXYmxo;HhEYnuL8cG3KLWA zQ}KO;`oBOHW|$}D6nfok=rw&Dz2*vKV?&6JI*)@>zO3NHA2;@j;C$mzIDmvD_XrZ1g5qBu`jc1AjVXid5 z7@-Sn8qt|@g{?BUDv4&WqrkIp_pIi$$TxcYp@j6I;{Ao+967WIy1f>DOI4uhg^@2S z8%}a9Dcc-7^zD=v?fXh@bRwxvbCe*Wru%vM+b0sJ$LrOs%TC2`3v}_ zPvM(Bhi`hx&Gw-iH8;F_!rGDE&AP?+-5qJ#%ia(_f5_VLEb-N6ce^{DWj)R0wyXRN z;6*qSj|y(li*f{H3+|QwiEL2rV3u`h&3kfT-+0O$3SW481dHI34QA@P$P1$r%=yh- zvOh|UUw+s_#%4xVYW(oD@^*)T?YXlLm@(}IR;}}$8~e{+{Ts`=j{C219p?IVuG_fo zO7jvLB%Gs5TdWU&ZQZyEPNW< z)vPJ_>~q9luHXYeE3>D-C3rp_!_(Bu8J@t7A2T`Ag=WDS>-fYN25PhUod9>D3y-lW zUaT?AiN}XLGdyrf+?KJ|!Kv$j2eswkk5>k2US%-U{!Ev8%CCpsf^;u7F}@DAAM%WO z;oi&(bl$4*yGv^QE`GV&f4^`+e%u4tL3^~OAm2@R7v2~@G41W)fJYe*Kg|Lr^u=o8 z8Pem&_GE;A6oLiU+JbjvpHHD8EW{mhc7x;jc?$hUZvw z>{7hKV$6mf0A!UAH;dU*}Cx)StH7sSjsW}mG5A2Jxq(g%|9QL<4K?s*0}J13!hb!+i^uz~Ip$AeFn%z&{_cNA z^Ua#C;Zen1q~A@PvdFx!Cq#b!_rdvW;&JR1szT3uk|km?&CS76;O(nlT+R50Y6mIv z7<0f`3bF<6m4CjPn2%yI=tR^^Bv*UYC-E7VcAo%WYNMZWb2x`wG^6q=`U!dZzSFutE>L-L`K>#}R^b2x|QyVCpQTe7wx zec8kHetfe^VUTe`qwLE_Q&zDc`Htd=Mm+D$#NTa?Sb!JD^03*AoGzGHrP*I__}39X zc<=)@0lwBU)`+>{{gdwaE2rk?Yl)wC>gh&ueeVjmWcewdT1sQ{Wjk z>0Kug+aL}H{qnsv$*QGwWa#5sFOnRCX3;JE#3+fyImDpA-~VXvZr)cOvx%jCCziR1 zKW0sfJ(fxQK-v3=B5g7TtHggE{?+I-N(!u zWxFz**QjS--Kq5ne52ms!01|ZtCb&yE_nvr@-@DV?3WH{#E2XC{lPbBk9Y*I+B<%I zEKfrAmJNL0XYMRuWS^ah5vX6ylkB5wiGL6~pG>>U!!m1OvX9g5BL0_$f5Y!4x4*96 zNy;z&^jK&?GmFn1Fffb%lkm!mm3yI~!EnFFJFXXTEpT1Vb&TsSuDiKD#C4SGMy^}9 zZsY26y_0JWnzv~$mB+rWL~+p<$qPt%Yr~YA3NuCIm80j3ANrU|U$1=q*!Vv(b^MBb zGX5;{y9#-3mzZDH%M*F%vOF68tMCEdW->=Fw3wC7cU(K#-Wh8gSP_S5sN0)uQiOu_g|4|WwS>F8kkucB4-eNM_bc5 zE86C)HOY7jO{e^ zZ*V*B#?b5Jcbu{(@};IR=5s|OqlMaw`!;p}W1DMze7e>ZkqMJ8YaIa{kU&32GJHeW z>-beS*bv%1UmACj0e0_A<0pa#@hmc&I3oK6;+X5dAuBa6FHheX{))MHdHrA*+&&n- zcpvLQE_6@52ECb>GO}0eOL>p)7@*4)la|cQU>E0#WpJ=53}$QyUC!ly$Cb3p{lq@L zJJ`B@T)N$L%KSzy+5O|MD5hw=^DCltr?ie(>$-3nx?rHRI%vKQ-UL4;mQje-6}1-k z4*JgEvt~FmmG!Dx;M<4N9`w(gD=wJ!pnrZJqk%;sb5vbC{r*t)M=IZkyn$AsTiHFD zKTEV(Nx>U}f4_3fh^;~ome#Y#J1CZ`j1gIML4OlCVQqd0-Dv1Sbm<_6qy0;RX6*<$ z58sdC3z+Y&JTJJs1U6OAC^qqQWMdhAPhh_f)H;Dld;16Mz5pIKd9&h?Mm)lCSl9NR z2G%GRmH;Pj1HOigC6^U&IXk4hj`Qc&cT6h}PtWxAImz-h4zy)|zt3;g8B6lXuxFCc zB>Y-+>G_nUdoSbL2R-DuZg&UJ>HY+gIBeHF)@<<_dT z1Mo>acrNij$^5m@(m8Fcd7?KI6Vw@RqHAnZY;W^jvuq9XZvIC_5m21Yc z+nTWfltW|r;v*~D4&G%C%!=a@SL>NIM2-@?4?hW)tC(Z$EqoPvSnaF|lv`vY2V~=X zQ}vL07gJAqFa`ZsW$^1E)8KWj?WFi`$i$4ZmHXe9i=t;E7d1BxnP^ES_8FPzy6`lz zF5?W=n&B}Az81a8*J%QN$w6dRR{Qi6e{qn1Pwt=`v@U)ST~C9~#TS;1o!&Ya^i%Jb zDnnb*9*QAjLuzg{kIX^VcACt1mH%Sf61)uIYX^42t=tKfulI+1x3MUdnVPfIHcw?MX>*t^!jYngdKS2Fc zhYTDU)~jV_x-RvBJwttmdG4gIY3P$g&tPC%TC=;D{mz5oKx@2SS7E)5ctn%p5e4EA ztn;S|xiCpSz&WEWwO1=o)LYiAt)_~7_)vQd{n$n50Dc&N*PHfkgx~F&&TX`vwN=_3 zZ?Xr09ofVjNr(IzJ!|>!SpmI~kLHKG?46RGS_2?<)0Xk}c7VsOJin1=9W8$}Fn!UC z4f}rP|bzYnDdNS^TG`UB~jQdDBK|T2;`ra?P zw98>WGo16KxwwXQa~9`*aULcqAHjwqS{Z~-)saSy64Ojvw_zN)PJWb$Uuw^C*G%>s z&GfbyTlX#e?&J)yPKUT8Hj(^_89Z~GEum9EZW|df98A-?m-Mm28r$C0=By9oUWojg z)cRmDSQ{iq@ukMTg1q<=ymMIG|AYz%>GB4b!f)wmIV7H^(VnYp8nc_zdeRua$EeLhJGb4!`P>v$8&N8 zkvVTP@ zpQ8R0FT#GUrCfNwI1>IQmfdOLpSqpUN;_BE%Gb*FfZ=)3=I^j?8fUnL_?E1vO^Q~3 z6#FCRV7x}QFtUL&>(#&Lm%2&(s7xoiU$pfW#%R`BqL_qvXXVRL9p)+Jr9#0;-VX7P z^%HL~dR=l|b`JI_{MzmfhAozCoBg4DH1#W5w({@_1X<`w za@=BEx!A^3Zp6S|Vxr{2>UHdcZA|8Cbd}ATC3y$r>Ur4XvNPKo zatm8TW7N2lRy+I|jYH!iFQsEXb1jLForCYFT=&`dj!S7<>%yu05O!HP zR6QG-zs-R-vdl~!^BLML2K4l zgV%WO?RehjP-l;K5PzOMSEY?U{pw%DvPJZzwMof{lxNWg=jLiX!{t0TVi=BFhA)^W>ZRR+`~>!oRl*kj zGfoAc0-qW@r@cJ?h44o3nlyf89$DoZ`^l-m8?=+M`omnM94=1CekvOtlkJcwVJBdB zCV|WH(M`bFEZQUXvjE&F=6SfnKGULAYj)*hur{+78EsYSX~(ag6mZ`CZ@Tf_B^MO; zsMPIIzxpZ87jvP1*{kO?_8Kz|co`e{QvL@g5HDF9T`W1?%wAIIGnFqB7chI1!DmD6 zO6HpQ1p0K3_pI5Un;ISLAZE}Z{UE!;qWwnvP4;x7|D)|eXHE&6j+R61QNE*>@p`A# zl&dSeYVM}mRyxB(eA!vT2S9G?JP7&2wu{_>7aM0nz$4Yfk`3e7Ig@tb{Mr!hCZX39 z{)WzEXg1?|CY*tO@xXEP2Y_10mS>WA z;yn*Jq`bM`o{KDk_qvr+UZ6kKVLsc(M#yu)FDvmq2ET>zuc^rwZoZB)F|fNNCpww$ z=Y<3E(fa%7*IOOPc5Xp8KMf9ajy~``vFrTS29Hc* zU$e@oZTTRw!5!kXkv+GHe6kJU>fXrTI_E6y`RJ>zCblk_rM$E(u?orkZ11Y^ZtCrE z4w7SqE@b|CvFW?X2g{TPf@y+J_Q!GOC8T-YfKRcSvtt&*SkQTF_;9SBL93RJ>}vRM{^~Hrf7-h^ zifiCAro9Wy?_+U|3y#Vl+oCRbP8IP1ttNPSRk--dKI|abfsDagRol#dMtkhNwHEL= zo8OYnSMbakTV;4J^2b&OS#rX(p3t&xRiL#2$?2>MUs)p)ItwR-|1Y08$v%H%JiK)i zGD)`M)8VVgrdNX#YnF8j_TWE-sbF1rVlXYpa{iiSeJMP#m3=iyt0v!_oM3oO-{iRI z#S>dsjc2X3frpPW(5ox!-_TD+`<&>%6aLB+WS=Z0UwtU}pXfl*nq^&yt+fo;wok0J zcXZs)x}#&bXGaG)^TfDVLj@n?bec^C#4vPIARFXn?WVTX3S zmofJD+&V7Zcg|`1fRnQ|X)og*MAl4)PdLLyJi`53xT>9L;8MD;7e7+%%;&l69{F*G zu2@6c;~qpdEJX${g*C0L&Ney&8j~NWGWZ`|dM10P+tnTl{6~DBUvpNVdB`HzxC z8z#O%Owja!U8i{w9Fj%*WBGLGcSo?Rl~1>c{R@@n!W-7YB+?+Eg z{;}Mko^txCYOe*{OaFAUH&8H0eoMZ|jmc8?IMWcliU}$4s*SMtKxgI zWzAl!{5I$m`HpQgEk9UG7Jz#pd$D@AvF1dZ#{S ztSD9}StYmz_zru+_LL8%cF21U$$KWIy(4^Vz&@1AE3f&OT;6Wv40*{%ZGpiwHga0y zliod?e|TboJZ&StWiQ9$`=j%s@knlG7?Z{&T#oH~8n;ojx-RSo&Rm6jPq*LVn%tI{ z;qY%EUpv~18`C=PErT4CoIcEY_F>ku53`;vA8AkFndsQy^Ex(tw1nl87 zG@0eh`>8oHo!HXdr6J}%iU(;O_FKTD*qdTM-IXXd2u;*1&dO5$MQV(^q{>iDvAT@x z?Mi=Wv7Vf&m^GX*H#QWWiB5z@L-`=5Vi%lR^zXplte?CYd2pS^AHnx4_Uc-Gq1FT3 zf>*NR$*siHO6=tV-h!V9Xz1s@=?9^i71eanzpaVfed1X` z6MIT_Qzl2OrH|i=^(MxkA0ND0?DZVo9`?pCUZMWMbrGJt4j9wkO6;8Nv7NwPRBti= zE5py>tFZ3M8rb63*a>MXGm$Fyhl~5=rwrrg91M~7_2rxeU-X8F`FyUP=Q)1CkmU`O z@e5e%zz)EF$U8d2zH8_rcR0Ln#=+_;&QWybN(JC*7wzjY{I+7b@zg(v+r{VCrb%K580={uZ8yW0}H0>xC;J&#B4Sh=P z(jPcsAI1{&4(;aYH*J;4b;0jeJz|rRr^-oD-^o1ZvwFkfocu8H(BW_&_dg;!`T(@2b(m&k7Iwh%;#u1*Ltjg)#JaZL zh%F(R>srOy8%vR#X@)Mo8S~w{p#%9HvR|6-z!rcHa`H*4ij!;p6eB19 z^lZV7EzWoFkP|!~*tc%H9XRAu4s}!#8tc_EtvtJX`mwuQ+6s z?=~3r&y91>fJtjzY1&CuoKSd3RjjaoX&*WCl6BzJ0UyQ|A_omSo%}?_8d)2O;7AnG zL7H`Vt!JpO$e%d3mL|7Bc8A(fewFfWY;c-zo*=^iKYUY~N-7Kt4GA_H0JxYwZEQ zOt~YRvt{IA3*|VMcu%9e>Rv#dOoj0>?~5wzv7)@>N}95q4+2g`!s~B@fB7xDLA0>x zc3>fX%KnbK*q?D1W8JB5k~h;{BZs9pYDYeEMfNaf=oA@$AsTzKOgklVyd1@ct!y7- zRNYf)*9Lz5K2_tDo{ZN5r`kjr^tbf0Qz(nZrT=7Ou;*D*!O~)J@3GunbJ-=Zs&q2?R28Mm1B^@w%48n+4!?mrzAakNqq)& zI>8<1B2f_hAX+IN}IyYeoo-=9IHm$b$bNGDE;q!3@atHZXT?eO}A@w0* zqiJ^qqM8+mh_MC zrZTfBb7ovd_5u2*D-q*l))xkARv8<-;MXsoPJEDfkJcR1-jeW(#MX2+Gjy`1gLTJc z;00dEs?E=$LzHu>vm=b(4nJDuzObP2S{g4l0DN4SF8ua|*j2=IqIpGOc~jDYow zfb|UU)O9WIw#M(Qf}czmeOvh45B|t)4lCfV3tC#hJf&UvdgPIi14XQln4{nNojZ@5 zBKy1(TV+0Fv?edPtNs@-Z%JUJUD1TuXPh?czW8L8Z@=mvnWpvEnWo+fv!BkRj_Ur( zkNABKzkdAp|&o_og(8vEC&)4G+N$%1X z>jzxToPaO8BwVBS!H?={Ol z(sdH~-e36l!CEw)TR59@+eAOVtqL$$w@kErez3M488qv|gSD;59np~ePQQNj+`(|s zr;$s@q~*-{wf*G4-98x3+cy~IdA^wE1)dl8?GLZvozJ^&-p%3P<$oss8bgA!#-1e( zC0#rhnsBcmpNcsPiBG4>oRP=a?XrI$S=QO>#1k2>>;(BMs^9FQ>lyQx&03#w#D{7w zb^e3;GgTK_R_?FP+#pvz6fLa;H{GoR;X}}v$5pg;16Qs86uB~=^?NEi!eBbKBzEf@ ztH1Ul_rmvD@HfHz=-z?wAiD8o{sl*#a$DnZyqp+h9wQz<#l+B~`7*W(^r7+v`m&*e zxt?D?+pHB8>OVYkWGA^#llD9OdTDNipM4q^<(SucdBz~$MI1EWwwME5<*y{Z)C_gs zYFiIojs^X`CTl;>Qt*#pWe?nB_n-4^CE`w+PuXDi5*O2XWyVKm-SZ-Bj|BLHPpWp& zua&M3$%Ghhi1&e$K%jq9d+`AJPy7T2QLwuOM417;ezM1TK6Gt?1JyjSB z7r8tyC>M!&1g6EU489teH5+2CbnfbUIT9_`PgA9E&Qk+soEx|s)7HTdWV8cUil3JHO*1VXO74Gx@>smD`>r4eiCb>VJ?XB z#%2nq(1KSPA#a0qXRbQmO!K{fd!0|Ny#?UureEdMX*@^QW5%FY{^f7~7dBd!xk&k2;Ysb4SYCYs zey~SBR=a5lV})*!)0}xkjuY`8R3J8$@;J!jr2f%1vA1M%{Y*9=eWmi~dTb%>pI<3@ zn6kz#x=>6jLmqK%ANVT}*Gg=J4$1Y=Sq(+>NjZu)V%Kbyoc%WPE{Dv&1G_;wE6p>- zC3pOiF``>fmu&D3hK*bS-79Chkw>6CZH@cPl>4c<2JV#S`S`wtcC=Pv`B5H%$xC3dBF*IAUwan(5u)45W|_@^_t zpUpGZAAEZ^|L?+o?d2J5oAV!pZ)}mHIMx`Q__uIGoshbU$98qY%d+v9!&YdebuRLW zb-A{M|H&Ec$Q;RVWI1+z?%8Ro-9_9%X;SZ$+TryD)P@}5-x zf&-oMd+)Jfqje?ZKqq~!pFf-R(Jk<#e9?m)jEh{m{T)a1vf+tFUiKHE6W!aE=!3Z+ zPLQ%v)KzXie3mCRd9GrU^zUvaryTT-JXY5fe~EAr z)X^~}7Ldb5U-5RB+xp)o;OimxYoW8N4AJF%6MAgHRU+jVS;w` zzJ+(n5oz$R>^u0MJOsYyk*81K$KND0cCmc==hbdA?Mq%<`ETM2&Y1SFKZ=8QG4?y4 z$(?$K9x~-jp~X6Kob^Y){y5j&ULU$i zd%ZZfEzV76BD&1n(FXD)nkR5g9qf$gj49?IyBj*zei^fm69-&vY0sm~&9W3xk-)n1K(I3@I%l?-ES)!R1W696ykNaLcrlG>Eb zTc94lWixD|jA#P*swyM=$j@)AQ)q2L^P%;M#8|ZEEBdjDQT>aMsfNzfFZDI=ExbPw z+A1;^mXE$eXX@;4okf=P*96V>-Y$!!(@55YL_#$MqW*p zHa|rfvqypTxhDLda}3>cUKF|*nTu_>+MMgBoaiL&YA@y$8o!0!q<*`*?nUj7OW2h< zz8*O<`|4SLb+D2$?d8YAS?b?H-&u}n2b|d0DmHQ@+s}B~t<^QPeG%oE!^t*slkeO6 z2zV@G8?jdhKL`D&bD;L9PmM)!q_V}nKd-IUu5$DVEXUf!&YIt7kNk*%ieG&wC_^s; zvbRi|rakCX=ZiHXw?rRS3EY<>KA#3`!sC7Dtf~0_2EQ|7@OhqcyjKpw)U}8?f8N4b ziR?9meyRc<;%&iu z;da@>*nsq-^{ctdhJs{o0Nt!07j^Jie1u2YYfG%luigM%YdqS6l7nZ2yM}xL24EpK z-WjNgZt+bFy=tuRd8fk|bJoU}M8gAazmsH59{f+|Ke21cKF&Sem(F;Ds6ii{HJFxc zP(O#kS%S9JU(y>g`Jlp~T{8VWZ{~@4o4SYOu=*=99`FHQn!Ur(+7_I#54@^U^Tlp?Q zs^MP(evo_N3{N6VMoc& zkxbQms{CKXbgFo=p-stu-YYLtYcx7Ptc-ja0v^fX{FFISKRSz8Flx>OXM*`Q=L=4m zZ}NX%Gv6ifk%-R~)O_olls{v>6fe-b1|N$i4Gk8-dqI83HW&^6o?HQ~6Umm-nH}(z zdA`0H>nO_GlyC5!a$7#SO|jn1#vTR_Ms{ob+T*8jStaNkSR^Ah(7trPXif1Goky&* zd8Icbr=*`$Ub-(qUCq^BHTveA`ku|ZjKx0I^~h|WIHkqeF1m;QQ`o|mv&P75LxpI)*ifw7m)HifB`KQRq5Ac7KR)Dd+B$;%H)|s)RKV9#kJ$?6HZO}itZPEIU z*<%bWY1%jRU)U6C-wQcalalSCh5rs>nxb91_*$BJ=F6g~(Xbg)JF>VO#Kox zqIb0OJ7R{i>CO5PW%OS4R7dprYizj2+NbF556OOTdQ|qGYjV2yRuW^9+?UK3O=gj$ zl1Br`qFqZKp?@DAXfX6>_lV-H_;QUhNy@bIO&-mQVAr0mD-LOXqccAm@#t>j8>`$RK+ z%9d-&Lm#x0u|{f_X)f{gjjfNZ#@^yRrY!Yj$4mY;!`mu*m^qQG*PMx;RPJaQ%Kw)2 zWR-h*t0`A+8Y4G_HnO~PV>x@|h+{25p8c6*8nhw3v!Fp6qtMw;V|kRPpEBQ4f;L*H zFTEkUc)x*RV|W5E$VU-<%mxW&*b5DL2hyL3ah9UL1h#&P{`PN(=85s{OvG&<=ioiyqfCM_{}`9C znMdhO))^+#Meqj9(n0 z)9A14t|iZLuJwvK%Ik6Q@%fBTXMFs8G~x?A6Wr9zeoNybR+CVSj@)kfYg%i4DIQ~! z3;j^`uT9>;NUhiyV-Xm5F1w_WZ>%=e_IrtQQh%}()5mLMN7=9bX=B`eM2CMFkDE0| z<@~TWi#NP29kmZL=7sK}+7;d+@=uo4 zPqvm0uy(Q4~oF9c52YXY{9 zfw#H9qi=nHN8W9!5R{}bxB_W;ZJjM?RT>v`f1 z$d4~F7W#R*6MOj;?0UsZ7q$6MBfAfvzn<6klNa4B+h=(-aMm0^Mm)dhWNbll1_j$o z?6o?_$=1s8Z|&=(e)SyAZ)rRWOqtZt-!Eu?mLGjDOk=q-mLY<*As_ye_?u+IPc4M#C0TF^2jZ<@h>5|0NhCy={K8}Ok3ajl4;Ax8O~gtd=Q$EY%|X8IYskG_ z9o~rDki=e4&fRap&mr(5JH*)kz{`GLGk$D@-Pbqz_D&0O?t$s7J*qZo-&!^;cxVz`rBB?G39_yZNOtYm(bpb z+VTpuZQkHrNh^x&-FaMD*@6RcIbs5Pt_Ke~cX-`tGXisl4(Iic@lDY@e3aun`fDA< zs#>{!rUN^yjb|N=wl6xa?ODi*zs8SMtXQ@zdrXi;R`#=8-vkZP_v8)SORw#Y>!N#h zegt@SgY(_Yug14)%Da`k+r_(G@w>4p@0RdxjCW)4yL+a*Q#|Az-rWQu1cRr*{i}WCD0MeEJsVWD#dg z<~+`xPU`Hma&1u$c_lr-;5;+lTxza0Ll5Z7YO=I%TxY1Iplh8~nt-lF-+jbCQqcBH zp6Q*QnQx-Fd>ftTv*YI{@qB^mzzgDgy?e0uNHs0~cej|c)YHeErJgB}FT;9<`2CIG zK{kbrTuM2d(}QgxpTZgg5AcD$*|`9HT1jt4-!MMLTS%*+&=F8Fd9!)M8>!|SOWFxQ4_!lv~Y8*E3TSeJj`hU~SeE1lsp zmO019nk`XJzBPC@>!P>)j`dLJYPcf!pb6kD3sz!lIqPZW&oQv3tTOqFd&5!q-7b`C z-?8>qM+3?Sr+kulUaFw+t^qM2Ej$R&@9jWp`25n^Jc7>$EF6e3Y`gDQk~nTSJG$Jg|SGc7e~(q+ob6@Y!QG z*XA5+hdEZcXpSkVTR6nO(wUmW^r^kd zKNT&P{5tSddql_d(JXz!ny%vD7^z*&?)vc+;8}4b;rst3eB>%r8}MB_1-=_&`1r2K z9%Rt(!NuGfxN^>c@UzyrXoa?(>BctRdI`TdQ>hJDIUn->4KAm`y6|;ieb(@5 zM7!}kx3V{+>tuAyMZKEi14d^hm2U=onrnQvt(wP-=Fuew3RrK~yrJ9p-iG7Q;zvvM1Pv!0GK$F=BSRFi@w%b1MePSFC}_=0ea4=urH`U zpGEQdxi$1;?J0D5s`3_mrWN3IY1;t#ahB^3Aa6I!1QyvhDSty)9NivXP2NNY{>KdF zXq=uJdE3LC=d`icDO#Io^z&xq zmEJD_FII)NDn9A!BjL{f(XDZ27qf1nF~GNGO+)p5ZG2kfGq6lUSI&vc{3B&b+-qHP z_i=Fi%G4>;?n56oaEHw8N+i0BOt_wU#*aH2Un*V;cqn0YJ>b39#0!%@-*M|z;I{L> z5|;j7{7u5zoyN*~C1K^_XL_EP-c`dl=sLc=!^pTi<4~XY)@ClIGY^effF}N$aihm4UjxtU%97u&`&sIKk9`Bj zd}(ayc-<%EwuQ1MQf@LtZyB22%02@5=bB%H?C;^AF&_|a*FMH4_!xWrALv8$@sIG9 zi1&$Rb1`(`YH!~Bx{s=C~C*Pir;GQBeci&>zJ2IWCwQ1FWJbP*j^7l0J#Kwg8{vI zyLd;wYJ<)`1MIs_{-MFqE##Y!?}@BG#;@Xg?U&1xkV*NG@RP)Z#P?emqwUV9&31WC zo5-&Fk)yP~wEipF*ErP2|Dx^f1Mw0|CXbYIQg5 z3={WjR^3H+`8wbC=T=oRiTJ?p_uD`ERn=9u?mhRMbI&>V+;h+UDD^)U)&Iq)ep4Us z8Q+a~+^Ze&m)baoHeP{N?a1t%==eVNi=`^-n{#|(jq}=*JJg)V`>rzQq_nl+XCc=a zGN~;;JkrDacE)>KelT#k$8PRboJ~B&+w+`}&Nx33&4$VBzwFo;-6Ul&H_(%o?Mr~ep)Erb(Tk-7>z^q5ge%xnF{e) z9LwOw9V2qo6<=0bI^OaeVea3i04wL5qeI3ahFufcYRYSus=ka4oR6)yxDnfJqG{4&eb4jzV>zaA z_jls6B7LBKeH(v=jWqlOFwSHwsUF5_KQ{h4#XMpIGe0`7maX`}2=B*(_a(?~+A+3`WP|DvFU7J@wvpoujdqF#j7RMU3UNA! z-KjG#&aeHg<`q8s%-qmU(>Rs=EL^%NWCU7h$q>=j4$ z${h#TE9ggZX#c*wB6+lZ#(!btW`~w zjmJf7W5shA&A;w;!#R!SF`BDt&a8GP!XuftC(1#ivGB+Q+gG$&IGcUZ@YA{zrZd0C z2ZYUH;;+CRdCeQ22Dg8%z4ZZfm~bw6u!%lT#rjt8Pvjl>Gbh@+pTs`Z zJSetzFTrk=OjX@WsgJVZ*(MS1>3iOFT+DY|ZD^g`L7NllTxX7ifo5Q8qmFI77Y$^O zG7sGPD9=>?<9hDM=J9Kr=dKCLG$@goT*S8{5lZ=(q zxc~QP?MdgnCi09oe3e##_b%(a&JZyJYe!j&I3n%&Q#0&MN#Vb2$5+q&?kcfky4Sht z*j~G}?~`)1=YJymCos5G{+3U~! zUn?$(97Q@;<~OV(osVzhcdSYDan)L_&-FX};(c@4JEj=7L=HJL9tkG1Z+D!Y^W^3MGn<@BfnMV(2+|U-3uKjD<+N1x> z6KZy0|MMg72yI`+NG&cujb~~83(i))`Ah!uU8AKC&3|}4anG6Jt%cLqSd(t8vZoqb z#Lk6l)7mSLEYNO|c;S+<hC@{tm|6a12W;?fg70OC5HJ`GUqb zu%%sK2cB8(F+e#I%d*IVq{Mt3V_ZWi>zOqHe{(rhM`7 zh9*N9l(*tPkgS6k`pK0f!ucdF~Nz@4USGKbxnSDX>^J@6|0 z#<-4YJ(0e@LXO5`Vd8VeTgqQ5y3U06lO_0_x+P!jGJ7tCiwb$g9(q~vQZ{^m`XF}N zVc)OAd>a^$E!c3fr{O7{rONz@e$B`P{O9;B9zE7{8!6yvrO)ymP0S4}I=0e|=wsR{4UvC` z_PK7M&3${;s**8Q?{sJ}@%tA1&x3c}7)b6RoAK*1#|B<30C3kGKx zoDtVb`>D8}JR_zN9Wgj6ot^R6yT)FvufQjQ4LwXQAMGt(KRU=W(a2JJ=(w4YZv8bn zL$v-Fc?R*<)J5ZueTBW->LWBvRQRU-9(<6Cbq+^wB5GT3NY7qr>dos6yxvJwc-9|k zGDoYmmyu&RensHTBY*JSSU#~H^rbxzo!LiCU0ElTcLtXM`nb%`A4(&S(pJyrHt>^m zDmtG{KkNyv=>HJUl~7(xqD)46U5U+7J|flK9)xSzs`uUS<iU)!l6NY>EfI%p9$s@>+X%s9M5)=+`{i?APdW=u?hZoG3@tjNDN3YU)X`w(nBU zCs^0)Dnl2(O}XKi7hO{xKich~{7inc_*wiO!)LE=TT8zEKE6GRwv|iN=&D6`j-+$D zM{Ms(Vh;V|ex>+5uYbGahIZNjbw1+UQA=N_Gy1@3kv3>kydZmbZa4c~z}-W9=N-T0 z=~>5bd9l-7u`MyRznYrbztgHbkI#mDU={5>xd8l<&y8;muIK819p5txxRR_79|FGK z!djN?J>R6w-ZbY!B#Jw+FLpLtuPiav*uzGfoWs}nxi>$-{&`FLS}6O#!S&wTwZ-J_ zNfe)NwzB@&TD&Oe0UpIxA`^G7ouI`<5+tm3M_&$EDMmvK*fgO_ss5Outp zxJdaozQePZc>ighqffG*;ku1)ZsOTh+^gLyxqgywKF{^ssNK(Uzk~bBxqgH4_fY-{ z?l0xp7q|jP@0mP%m3zj|;3(H4spDF%4-l7r9oN6b7U|=9A7uw9JI1|YrS@>Wi)XYw z){+lp-3{EQ-N8V4?ri7zrd?q^$~$ie`-*oCbiu!DicDW|JRdw-!V&s`iZ*6gR zk4!;keFpu#64~&uyH@z0EO|yA{B+Br^{wcuF_nksACO%n*t>|m)p)z+H8*eUX!U~MDfvTUu{pK4#~S12ZC2V$uCDR+rX^4@mb>kWG+d) zGXiXiD!w}p`@_{a4xx|d4CAc7U&uB^pGO^0vYQnC%f_x%dai}cjD@K-h+LW zT27qwqAksL^W9GJW}CGo;xUu(fyyes#08W`wv46t-{M?MzJ9-UcTQ(YvraoZjy-Rer-CeJgSl>Ds zo=fITj>%!sTJ5VG@Vv_+ZmYx@3nzmg_7V^0%Uha~1*-pL>Qp)6b5GR&HT0joIAglM z5_+|ue?_kp<&!)!vGwfdS6k#{8`B(6b8PLwP#mDydz1$*$_lT)BiFsYwOn*1&$NdJ zd&}(MQT`fZGnA;CZ_xF%vkOD@TS`^ zaudrOPZ{GIErxT-C!=zoqn!2xcG34WXRU9}stnc7fQCBnHiLf&-Xu@dTN`%yyPY}i zO`Yfg+y<}e;@a1v!_TdUFuT~^0!mB@=xmQB$Fq}y~yl0mYu3P-@b-eLF4-cXHJNl zQZ$yxTW)MXc%Wl6^8H*h0hadyi((=eAI5h?&arOR5W9=eP;kGK`u>A_b-EW#f62X- zSA5Mmjjv;uipFa5=RB8;Gh>l;(L_N$xe#BnCC`&Ro`)|Biq#vc|6(4w<)EvBoc}!@ zz|NgWyZ3tVK$RRo&wmCWys_?OSytH zw$d(j0^ep-^2>3JZEoZHQ$h~NKt24ZgW#}M#-iX@K7ith->z4B~Rn}?uXV8Pg)pcj37IA zhV!9cF&`3c^v!!1n`YiyP=EcJY+|bt@>U8MkXL37p|$v`^ov37!dpp19<3pGbffzPk1EclmPH+~RnRdBbS(f^Fg8E=(sBPyq{pKwt&(YBu5&$Kc+mS!-ct`YHMt&{6CSJw zt}}h1EjOf*^uT+i2b9|;=hr?>UdMzFPnIcDV12L%ee7FDAFokwK41SU`kMBbvlseb zkxUkkc6nirdWUN&H_*f;&Ppdb&LiXn(q6me%_{v`R(*jp7{YwGI_GRz^=W+Ee2cH} zU#IPA7H7ZMOuSoTXnW)CllyDM*-wY>j^*9d7n@1;0K%`Gim6X{;rj=XY4bQUG2`6Q zbn(Z`!Y?z5ZhyfUAZ8AD;7g1BG4!|b4FAQ;&vLE01I=H11I9L*GJBv|>Rl9EX%957roQWzhwob6Hc-Et zoSg3GqjQGQ+4*(0^(Ev`s!(pu49c2Yiynr#HI!vg2ne92kVF>Xrt()r<+SFc^|FcOu8qna!@EnPa*|aaM~2KnC#O8(dAt?C>Nl=0 z;p zm^6lT?o0yMHGX=K$0d8y=oHb9Ju%R(bB48{JBf~E9QSrJmR)>L><&^Rsw1x>vfh$UZ`qEzp-7`G4|$ zl71LlP&EHn$xiANABzrpb~G@HmIjB^bEqXe9j*0k;b8Jc?`NU&O+SH$F;m-ivg$df zruxt?y=u1^jjdGFPiWU5PS^BZ&ocR_|I#N#(G^|n;#+3VvFZ{2l0Ndh-ZJVSFY-<@?T0{W;tiaTFcpnJl{^Azq@5t z(8(MpW78hGpEI3;6ucaMi=HiZHCwAU5{tQxcC3Bvv?^zz+KJ|P@i*Gj(*?}b`7Tpu zaaC9+b7IvgUqvc+82VsVkfc4%#yp^2*#QUC8-2$)rOwp8~H+&?}@R7+{br-JW}rYWEDDrcfpn{08@c{nfKik zBnrd$y1#}$2b>i8np*SJcv2or;Vp`)Jy=@Nt%I8A+i}GFE{; zF2n!CoYy*UZL+v>#H#x1ZN)DkXVh+%HiUo4$mG$>4u9yDGGjpK1{JJ4;y_|rJn zdY#rMV>^X$Rg)~z7}h>F+2x}D-ZP#UB`$XCzO#Ul{6dmJ+M^%KUf}LvjP@QSy4a#A zxqRunYmK_dT=zPwu}psc0(dA>XG!wb>c!7qe-ax?vi5}evRirYis#W2z|qEB zzsO#tB72pJ>{Z%xsZCx=;r6UXD6_#QxE6m2w|V)ik;zsrl<95q)msb5&wI;A#&T*r z?_^vi?>V_bo2)6I`{0W#eATc5c$2mzsqyOMHaFc0>uP2E{lG!YLIZx;oz=Ot^o2I+=oT9u%i>2JW8MONIES!G zoF6+|>5XWmh^m9m=4yi9!- za9f-oxNPpuW{bNKTmRxFdCz-4u6py}wL;mos{+-ZDlmtL+RK15`H51w+f3dvt$}JD zg{~0~8hhhm!9Y7Y=P-N+e;_-bpk2FiK|NLeV4Yk7=gS9bm7imtLT*^TRsY*6f$+sV z+fNd6$2qz9z<~j{8`G&*SNdJkGsOh2yOh3AH)kc+TfC=6LL8os@BCctM>M%-RaW@y zH1M5Mb_oi}}1=k?Y?l}eDPL&u|8-0U3Zz-(_l-t&8 zhlcQrg?^K5s`bUxyaA6K#mAG!^VqKT((I5|EcElu!Lp3jtuAaz=C`nJ)rvf}!2v!* z^tou0Zyb#c1zozu_u~KEt91?wb6Wb7bT1AhQ|iQp#CTVk9&oyoa>(E@o||}(*ydXn z>Ewm7#ZDtz9!z^B_sT05+h&aEhK-G2c+0y7SmAx(l1$ee^-IJ7B%s0HXul6IVvlCv z%U8LMCT8=kw?1$dV4u=aX#)KKIR|Tj1MuJInq`ux3`}6R&HHds|w0giWA(w48cxbV& z!e+Mylhh@grCsdLNU!O8WSz+&dRo*c%4XGn^{ZWTHTsgt2Mz2s;op%1<@C~jGq@?wS4g{awE46`kpO+d~fcpTbfg7_e||U$=}v&nR@$37C4m~ zC%yc(ks0n#^X-Bwm#<4s%wx~P{a>l5@0}-=@IASHXA*fQc`dz?v~DzfX<3XT=$Ndc zE8R6s<1>kDR_VJaZ#MhO(TNuJr*k7`Md1Uvfw8-YZ_u4Kds3jy?v!^t@Ja@rfsGW( zz!u8F2Q|T}HIpCw7#K_Wx>M8|O1Mu!xXxI^%~|kcCPzLS`luLb>8Pc`2YqPCgP*7m z@_A{zC#{xgZ~Q%CNnC)2XE>-eeVXJG2f=D<)+?ExxKG;(lNkTHfJLk+eYWb zB&`*}f5^7MzG$7j!qM6p^O$bv)vbK*?bS~Pf;jFC7*|_Yfh*`K ze0`JqNjc&n=zA*QoDXo;vUbym>Pi)Es=EQP34CkfD?ZP9E_0qXM?A?IgfrCC`IM}; zVRx+`l{~YMDbn>uA2UDJ{{%XP`Gw~3rkvui5C1H-RPl_u>yhK0@(!|6XLh(HVi=44 z#;#D_dT>-r2gr`fP&4PFuSzCAA9JBwn@?evCGu_J@nEixP49jJdzt-kXWbX{fWsE% zJnJr48BC$>b%l2XvqD~NC@x}VWvFho-#*Ix!^G_i2Wf9{(2{#9=qU`<3)U^8qFMZm zJ<35_KE)VZj(%ZHySlV4_*0x=OU&l^8NNR>FF3J3N}GXIa}3VS7GG0NeUm@lEzr** z{VWc_pUeS@*l~Hrn!cy3_7o|`#^~ex9nG}#G4Ip+Z7zI9TY`h!GUsc*RV(cxH=5t0?Kwro=#Yy% z@YlCivFn1Njf~@A(Ynop<_FO;;i2cLQ|H)x71%^C(LP<^T*nKMJ=pZNcN%+pnS0h& zvqni-gAcEnaz23GJg;UKPpPLFM~SJF_mop%v3Te>+wrF(vrHUID{W}pV+TCI^G173 z@qjlWABfo^e-66A$oWG9>fpR(;a%fO@%O;beDThaq_b%xS-o?l)wwXRiv{*8k;B)_ z+io6#4(n}e|GZ6ORP#2CfrQ{kMv{9YNCB(%p(UBOBwS=$G^Xw9Lgwco@3$6j4(7Vh z8GO&A{XFolpO)VEQcVOzC*-%TYfp@=0JPWuJYE>S+slXor0#LDDJ& z!hiWM?+y}He*kTe#j1C6^G>G^oDPj@jOA$KRNBl%V=QTH9_0+)n&qB_UA;ZXM?4k( zx2>D&8oQcbB(dX(85t8i3;Dl*y7(C$H1vfB#cRhvWAT=7E18w4$c6;J!KRV&x7P&8 z;MS2tE7t~A_2>0OCbHTON^i$R`&6(g;V_I#q|BwIB5`1VZX&ldVMX$3OH)%ayI6#hGvJ!m*epKgC z&@i;~hMNVR&nW2mxmx?lrr{gW(zPzBFQL7(c%r(#IipD2`=`*W?#h~cQtjZ^b{2uB z`8tQ|{FBO*Wqc^litv&m#(;6qX|ompuXjk_8rw%Uf@DTMU`==}b|v-#bB%rDiGC-T zAL~2_=?Liq*6Go^VL#>o?@86o&85L+;%KnNfl+w1X0vaMac1Ri@3vWkw$bzZ+LVq* zXSG)Y><9UzLVXp}MKmB!foaonZ#Q#4wH@o%V_(MC8~?}8bmnDYY~oqOCN7%??uySf zU8}3{apn^CGCz5gH09CBz4oN8 zhTiL)UBrehQXkLHq>NSc8>h~uEq7PbgSMxuJom~QwZxoRt~~j~zcN2?tRLD^IOL|O6#PR1A5 z>yfWOXQR{hdggS!j^9-m{ssFX*kRI9#7B*Ig?Z@sa~t?vhUXgoUDQY>tl?8_v#!|y zca2Ob>L+njo~!j)a!PpqT3{ZY$A5D8HBRv6ufvuczA*a#pSCr49(<@+(D|(A|5E-6 zFNL3Zz4A@=o@#GyRu9|KT=Z^qdv&P!_a}rtf9Znbz>D}@JZo8g;||LG@)Er#Hvu$+ zFU3n8iP-~_lX=$lbLjIN`E1~aG(4$qmz}Vs`Q*i6oy=Xg#_yIKxuv;;caKN!;Kv>M zM(=;bI)Vjnq-iS!zbAkbyGDMU@ZojK=^u!}-u|BKQ`46<#&IA7jrY zbu?bTg?O0KrXXGZ+u&~cE*^lMHni`|mR2WDU5mV_+=#poUi#S|h#Zc2$r0@qH4J{a ze=GMVIH!d8jsDMY{QmQJmSK#@->mZ|@DVbem&j(vjt`kZ(KliY3WmUuz;Eb#ArFKC) zw#KgJCxPWO#>ZdKhTu4g|H3WbWsl~b?^shuhVu@(|3SRRFwh@UPuw2^!-RI<4^Je$ z%YuZ{U(ZPwJN|mT=>zt9=oeUQ&dpW19CD)7`==3PMmFZ1%fmh!IdirKY|BW6OjGM1zuGkXpT?f8l1ad9k$(b9!9pCeJ`Ub!1tN0ni zSZ8toR{YN4Ns~xRU8oPYO|n`mH%1%Ev9OtNSZIY!_?U=e+kosO9*~-N`$$dyJiSt$liTuXED%@93c?3(qc1|AN}Jmk*w}Yj`nwxhnF2QD=NJ9kScB~XPm=u_6SC#(D)@9M6EGj~ z*pK%1@a(&jYMhVv(0o>WN?qN|_d34YKYqC8wW2pNqg(zA%VTYoI?sysFR1?S?%ZEL za&OG`sTW&-eBq4`;{%NAS5DZAu)Qp6@5#(hp0up$`1trw=kfoB{~T{EY28=;#SN5^ z&+)CZE$cPb=M#dRK8nAs0yc&x`Xh((`ajfslJ;8#TMj%>MlgLq@t62jDW7DVW78?N zUUCEbf%SI9_E^q}z;-VV=LOi`(j)p79v0pkFKQokA#7VQ*)6m?P^Eo0q=V$(GW=~B z(T#G#i{QM4`q_Wquu7|gOv#J|<^;qNmDJV}(ZH;YXwIqjIu(0HzuJmHL;pp$`D?>I zN#>gM(dAE!Dp%$d!JUI2@P!!K(;u~65)Fv;!Ol#!U@uOhjVskpSN$0Xvd9qCrM(;{ z%SQ;Db}5wUY1%uI_F}oLyp$$ZqjXkXb*oS4g&n|c{HKzGI_ppMDK_D?*Vxa;{S@|> z?Axc5M^^xY_*vf~Ly*xX_jguh1$(PY?AtD2kv#E?Pu%$0(mYq0f0i$dzP9AU971k! zh2~=D0Op6#XbSV1z9-i}!#?cNv#=@FjN-R5XKCqs$<52k6XF=?*PZaz8^tmts894< z`F-$!?^-xlEQ4Z1#_`i;3gzbg+mx5e@a24>2oK;ujFzxgHgJ71qm9a@7CPg}m< z_&6Ey6}r~UI-GD;^p*F2Onnz$eBeLnKR6ooHg><_ z4on6f*7S6yxL>=s5Be0rCFN62Cu`)3@C_+OQSoc*@hvSjXL~c2d9N|Kv3V=ssBZE1 zmzaOTmt(ruvoG+!a)sz>{MWrHH++5_{H;A`tiz2x2;AzU@M2X&cl;(?wZ5e~)Xrnm z!oF30Nn9!4=zsi9eLhTmE{5=^{1w0?9x!M3;scK3dme#5zs~P5ep~q|hT_NPJO{4G zMd@Kv7c_?b+DE-7(=&kw9}jzFIfLG%y({p6^{pSt__sFO%eOW^_Z+x#DGx3s(?kn& zVfHef%U_F3FgTe+8NIW?^AU^}#YtE##ABC-njZiM!jNw9~=9}#6QGs+q4t6 zdj{>A^JAj6YZKaioi^V{2Ei9b27U5h4w6B^(fC+6PiF7tE}ciKoDIxVk)zh2;?HF( z9Lg0PMO;2UC(4Qc6_3s}OH8`vd7NDwz7v1;SmY+$yZIIMah64VM09V)^4`s<4(2_w zyYyWbc!Orp10IUX>FkgnssEpDvkVP9t>LkUmz)NQ!PYs?Ix87CS!?1fHm%-VGpnySp0+1Hz6UYRqw&}yRJs}Nf4?=^h0 z$k+pWSz}bL2jR;coW~T^p*`$Z zEmt2o^N0H@xNosGjOyD?Vu#_;MiLyhTPsHCLzqh)IU_vZC-{-q=(9&!a{eRWV=MPb z4)_-P5&sQ!3^ER|UqZbu9JPTD z*l$etJvrvUtYzD|d(Aq#XyF0B!BJ$}{yBZA(wE;LCt|w1GwREYZ_t-5QD1sQGscMg|UQ+!~pnD}9|Yp|89% z{TD7`9(<#I|0<$kOuxgxBXAkIyhNYbJGaN^bL{FvfbBEl5ytDg)MkEja{$`6+E+E` z$8ZYV-p@DZ>nwQ6ir1zAhn~xhZE^kDqyHSz9>AFc$zEpfUKJlT<%`f4&K+whJ~wjY z6@9_4ulZqfW%1b&{eO#c!WYA5oyF}<6Wd2@2;-s7yynDozGPw@9CR9IfjUf))7HmoLWp0=~^ewy1b0g)R^; zN)L2uZ^m43kO}9sI#c7MW5okon$LEyf85*BtO=JEFiCDlGJiAh+_xZ%<1k|tyd`PZ z%KNoAt`^#pXM87oM7}hyoNl+uY3AE$=$nzudIk7Yuf@8aXdc4`U3(?_C&QCH*75}H z05>oUFi<+N#Emoh5z?MH{wH#e1L{YXqH4TWu07!y|){%MTjE@AGDp#IP+P5 zRh#(iD4R6;N9+C2!kyoTj2u8la_t+4>F$6JwZp!^1KN--O+lj&r^?mIc~KMiCI0Ro z5BkpVar_ zp*ip|&=2`l(^|C26Jd1w0Q?!!61ka8VGqMI4XenR=KOCjVZ$>QXYY~OOQ3l;z@MnG zCf~ua7SY2i5E~#KDasGAavwcDZ0Mn!hR_52s~;NQwAZ_p z{dv<_W7K&UW_|{#AY3%O~_FZ+im)3XxAN*8` z@n-EoYyU=1wPQmF=PlN)qu;_m8`H7JS{2cD17S4Y1( z10Phfn5j?qRv9}Oxl&6M{Mv&?PUnpe_o&ELoy)#3Tl$hgR`#3zie-<@t8rE{*nB{b{2Y zee`6--*@)h-l0%FiqBU>@KJ}6!;&fJn%|Rc(?0$`C)@T;9CtbPF9|03(ju6!{j)u; z?8c4cI73f@qfcLjFNSBSBDO$bT~oBnu#T#|fU-mGBIZf9i1sVUH}#tM2|S4p<1w#s z$IFc2}#slUZu{^NbI*ffH-JIZFV?+9W4K|4xxBQ=hZK}L~ z;LG^OWTQxLe^Wk5<^s~yl4rWgM%fCV$NLAm(8H3u2C=k}EQdBrqJ%E+k;lcA z^q;vU?Q0H)P9N4h&A~2C5X=2;))loUJXKxZZ55ZBIlg=wZS?bD;`zkm;`d{bpNikt zIrTk!ue#v-VZ9gaUr9?JqR6j_2eUKR$EG3i}mG8=BcN=YjIw6jy!0E_1>v@!w?O?_VaLLzZ_Qd-`P30;$G{PY=z2i6R%RkY4ub92i zXOpqMfPJd=zR;MhchJcA7V*6#$$>0d9c8}ZOyj7{BPlN(;Ua@l@|`p0@z+5kaLIGQ zvm2UZ$uGxVNF$>&)=GRB7}$x6{y{u;?=zR!*UzxXtsPyR^XAx9)L zU3g7bj~MerKD4*+DKRfVPU1&t$@`C-%6yn{mEG#RP;;<1Y^M~Q(e+$Yc^X)kY}n*N zW=xGOI6rA!&F_AGFY(jZHfPTBPH_`9Ij3xEKHqO+yyEXdo~sVz{)z9PjLP>BqX?X1 z4?Bx%4_nXkn_qj_*@oRitOMl}QF#V}DNp_@Q(k`V6!ZC%m1Ioynfgu4Q&e6tou+=u zr@2pBov&u9eRZqnj!~;8`D(_3meF?^+L4|jz87}1#>OvTp9J|FQ{Jh4oP#rfpOb6< zfOME>=n+rv=OP~;xHtRx!8bT2F6oKPV1$3&tNb+){`qg_K>fmZZogiVtod^E4Z5lm zI&`9|@U?M{Gi7Vw=T_|U&Ge2h5*U+ilU-^Tuw zNzBFmd#TNtvG_d6Wpf?6OnXCIYeVyl8M~T!+2D+??H?9CLmOBB>7VhxbVdDpBfnGY z{|o<%@Gg2yoVQIA4MelZHbBl~d(g{o#^2}2PKoMqy|Qx9B}Kay&4=L?$pW>lb;Bv> zwPb-l7Lf_e4-)#Ww4VnQPw@KnAxx5gvN5!dIQC!Cx0{-ZWkhFpBZp8w=QKDYo%;dq z!*%T(@?op{QcY*spD}}Rhn(n`MtkmxKf6zRSql`NVp)W(U}RC4&n5Jg;}cCg-mbLf zMF;yDjE~J*T$iqr4%K``{{D>Cj1RJ7&R7`68_qyKEvOQsK%R6<`%eSxLB0i#H9I%- zs`C9QhT8VA-7Df3Y+>QnWv_IE`=@C~<1Dtzbw-xvTmOh0(;kd(vWH=-yBnE$N}ct0 z>=s}{hWYU4Ngq#Iv-s({kl#{%%lKW#Zw!e zPUC+i`u`wT=5%BCNB{5TDjDWS|L@?6T|c%d`oDpz{ORTB{~E56VXLG6E4VT@A1g)w zuj2|0#;%V3U&$4|87oHrmvLP-S^M^u2Z}E?JW&>I7d76xj(H1sysfpx%)vG9eUH|^ z&>vUuTsHa?=6UyBp*TMDC;QTm(fdL;{+ah@le1TjNSmwOR)V=Ltpb^Yq1q?``(F$<|C3{kx{P z{gmJY+FMz7p5V%Zz1gV<-Q&%{1!zX z+Z)Oei+Fo{mIuob`e*Dr%MBXJPj$~TA+Jil%#G|S%>n=SZ^*F=Zp5=Qcs}-ku12T%WrYA;k*}>ejT5gVi5L=Bonq5JbRT&?&rCiotk+^S{ z{Wy$M_33J0H$IIIJ~8?a^l92f$U^pW8<~qAU`-}3*f-1x-khrx%*0|HJoe=z%Y za`Mq^7;VjmdzI`0@aO4AQFA0~_>Fuw=(I7(X{!o8Jo!=JV`Reccc9+{`$91o+CQLo zORCt(Ts{6PKh_+s`d0HxjS(}~;rRoS{j@DO^h`8;Ur1vU3mMbc*xS$`jwSdceQTB8 zMiwOl;Hs`~KI4|mT#ogsW-0)8LD0zPN;{9!j^!r0{Xyr+Cw7PO&(ePD}MEQ>Jffb&u4)_eyTgyTGk2FX;;Znk}uUgYa{1{ zP@ewkJSL5K^&?H+Ro_n{Sj4v)TiPcm->2cX9P=S;0lV54$bMJ=4{1!i6aGo%?r7T8 zbt8sG`6&Y#WEC+8eW`r=fFmD%m9wyO{rL6zO^ll$bk+FE94dvwmDifeGGd|B7vSlQ{Tr(5Q(-(|qowRO-T~j^ z3v5c(;|nAw-V3#qdstI;l;W~dZY%JVm`jq=$STSAnxu1)T--3hzS?-eTFykd=#VSP zWpYq4o3`A}xZBf;L&~WC%uz+V*Pvwr zJQ@2mNBJV-8hDIP0Ujy|N3`=H#p2R;?3P{+*-;MGH#bxnGt_mc7wUZRsuksn?<6K5 zqI+i&yIA(5WRBM3a?A;|)^(B>&Wq!={!9FdjO(&W^|R-q7nPd<{D@yB@`))Auf%Iu zd-1!gFR~{S^g(o&Y!IL188=^mCLZ>E471>k;e1uJ!(K!;^`?NIwi>alIV9?{U}(Xv zzli#*9P$@mPGaiwlB2z%{|bEa1IV?H7}~!8ZNqp-o$0E&j+4yuiH`uT#9ccYXQ~`@ zvfatp%LDa+{0b+XUtvAk@nT1p^I}?YYS=jFJ!=QCv5lGBAHo%0?B#xJDfi5UvLEFt zT3x{PDBextU6MACjrxyYdU5Rtvo@x@82$BrZ-tZeXlMDZj;_+K^mNK7&I?-z8)C8c zB|RXYf4@aJi*okPjxK9w`lHZYdR*_`s2+I6*jH-%@)G!q;JAW&aAevLuIv(gMj4%b zLf;Im&?vl82V3I!miXBpYY+a_4aS(s;rR5A#}Ci4m*gR0NAOA2zbJfq&?*P`}cA0^3Fxp#PQt@ep3e? zZ&nYjXNh5+#2&{(YyCm{lj}!>=T!BUW)oQ_Ss*`bvP#aB>K*v=uEXwJi@aq|8s!F_ zymRE_?azX@h4q2i&_;gR!p(}Y=~YZ!mDoOLI41rTE$`L*h4~Wr9#ibp%h-X&XA5k$ zYmxW0uRcjKyhHgo)|0bF@%>?2+?E9e4`!jtA2 zZgh{m%^EW?c+UP9L)kQnowU88d=tm19j<`D9Is$7qt8lzCBk>`e)#TD-XY_&beSnO$&o@$T=YV`mDK|MF_@wJC^w1rVAAJ|)oC0v-%T|9Zhk3Od zkgs4l@mhYzj=u53XB1Z=>yabm8q9c4!Rw46`e$+d-D&%2oLWZgI6sfy2l>67v7sC= znP46E32@~!X4j2ME~aur*e=9!2BGcpCFEy{y-eWskH=bJ-$;MoK;6>AT9eH%e%hrY z=$mwd>bDDw{lbB5DE7+eipU2E9=HB6ADnEdB5i4$%Py0>WC!#e-J?B3ibIv%wSan6 zmV8yO#Qd&r)PLCz@-3j7YO?FZpRz4ro?d+;+g;yOm5V?!#Jpdsxj?UMQnjbpd9|sw zj*j~f;feB!D{4^xKHu=fdQDz9d=i=qQ+6-~pFZ&)<6|d3F+TPQXrx>iF0euy?c+4- zlPL>dNS=8Eu&@uf4&RwI#1#DVcTcmA6uCNy`<=Tvn``!#<^smE)?0r5KCSs9d!d8! zz8s33v-dONt8*L2Q1Jq`I`+5*21f{P}w zh?h?%@2_GJ6Utde{bN}Uf*0F-R}ms(DDF%Jj*jXwxPx(wj|; zv3HYYf4v`)VVk??4p(^qn9H0QuA>qgjD6zQenSpk^%4D+6~1RWj3Mko!KR#+jLRC& z4Bcq&fdc&n-damk5Bs7_JwJ=;(Rh8-W1XVH{s;Ps>==`co24z`=$a4G9^Zo#>8Y`{ z4$i2BN1lfMf%1_HC(d6BV-a%HP5pC(C%@dZONZ5E zJJOd9`l9jHiQF(YpT>n^J%q2ArjOb`!ghN({r6E!OM*UXkDc(Bunucvi@r_YvxAit zL8?3$bn&i>GRncoyBczCAAdY-UC?1$A4%UH)umiviOQLE`R9lOH0Pw6^)~w0LLZ%f z3db5S)@%23|7st2H0;vT&v`B>Np1Qrmh^-zDejmxDumk4H(KqPM#o<&N0~ zPlhrt?Lu4HuuCD$)lQOj$mQR#+*`XTYt92_O>ped*}H1@z|)7r)2vVQPCs5eY+?o3 zH?oqLo5i)24*8A2<2O2`m|KAF>{scl@tsna_$|%1J4@ozvo*Hw zVVpl=Q@80O@AjetHGgw+*l2|i58}5=X+!>F_5yR}3;dJc@MoQSrM(F{-{+23gg^3& z0)u31f_}tvu6?lw$T&UMSQqWijQd3&)vt4DSAC!6_>EcY<&p`*#wG%b3zG%BO>Z6@!+A(Lf(@IlS8_uzTRfA$`0e`xqk?K^-$XN zAHq)Fn)c`e-^Xk6iUs%@-%F=S=26bn+im(~{F4u8Js^XASa#L;9`=TgwK3LOs+@yZ z_3t9j%B$L|BYB?9GuLvSufnwf}#f)X;qzw0Zw*U|QNx~Od`g;!{;E$;8bE#KX z*#e8X2abI*+VDF55v|?Hr;sd#aGr#WUK`^#7vk@u)T=#x$8c3nL$iM6-l}u#u&ah- z2bejnVn{C7MmwydYF~=-KL0g5W%LjCr*kivl;HkM?peD*CofNE|J;0QejOVqq4^iQ zFepEgYr#wIg#mhBvYPSY*ZvFpN7udBG(UJ1-T}YDt)6}RhVec4TE|uu{n~u?-0B&7 z)`EZI8;uFUnWC&{MII^hUNFytPO69Z`|A1{b;)l4uRj3K8Cgf(>M`aH<~x;drLHM? zavg1_ENh+63Lge`OvlENpG9NN&<4z_lW{^Q6D@|i}P4ZPAJYoxn2}6{+GmA0Ndbv z#g4mvWAb!z)?-s7y#)9T_YCzw56zL5(f1zWmZp?eG%bs90gM_u;%&*Yi+SG?%@v9J z=zivx`{`>wh&BJC;zkIg$Q}%=0XTXQ-H{nITF7==FJ2Rh|LJYay_u$8XPQ4S)k+f;E z6}_kVit5`yeV3ob`~(~`W@_lZ{qm+1%5Do^o8+8u2ftF^PGe`%&(37tH~Cr&&Yy%z+5LsJML+H6XV!5CdAW8+Sa^N{crX9 z%-ju}4o}1>Ie7QsROiC}A)F?tFUIM~z<541QvO=tGBlE07LCaJflX}nibi^``XtK~ z6EvIeY+#D(`V@7bugBz{7aozlhBoj6U=kDLaPEK;?H2<#cW>i+?+W8PX{+`TKh64- z*WWL?NfxPJ`^E~-q{j>#f8ZOz2Hfatd_!Kx0Cf=$YY$9>Q9P6c?yG=R`vqke#WCDA zaW|4PJq7Lal3We_MtgzvC%+v>2VSK;eZ!JtqDR`rF8M+`~%7g9rMdHA3-{>i+4!<9Ft)IO2VplC8x1G-KH!8>K+BI1dth$fl&?z$3h8GxSqDCq5QV zP5@rbG1~DN$8m7S^33e5i{jv7DB;UVGi>@z;xAWH%mI{$j0rP+qpA;_?wIDZp38I+8d|3Ubnjz(K4kjyeR#nKYIPmcI>>HZ*# zPrnDB<&=_QFVE8s-}!Dl9!Q#SMG!L~|{F?K;?8aUFLhvp2gzKH!W8^2nm zKlt+7UN&(+H}DO-HaO4C)#IEjs z^heZ22W@qJ|HW~Wb3koAOPka`HZC1NJ#Aj7Z#TgYs>_e&H?)zxdsQe;d7f45UR+jl zoq5DYsy_KL{ttCh-pqCM?DNX6&KzfEC7$D4P-7q4R^d)OmUWr`!>8u^Csh`l=l1K> zS&m+7doa{g4$D-Ye5v2i9%g7?BzD)8 zZM)9I_3pV&d~>d7X6Cq}eT&OpL7s~jy1*R zB$LgzjD`2Yr?MT5eU7bZ&dWm|9S2@sn~#pqgG1nx&5|t9hazLoTVeJ=L7U-LZ1jv5 z&V5_8hYy@Hf7ZIxAifUi$U*s^TT1>^cy{{d*{^juuxk!;3FTya6oC0Mo+&nav4PDR zBo|QQV(!~`wuJW@yDi+~)58`r!7UU=oS(K^Uudm?yBz*9E)VzZfCIG+yU zI;|Cf71wELeM6PJAB4u9nalP+G5R5R=F|K{ciD#t%U`SUhp%P0t=eyF zKj0qLoMr_uDF3xh4s-3lr_5M_`jReqhDINc>`H9IY#TZV-6($x@+n-8CI^Yur;RVh zM%Pg9nC0RJ@)W07CQ$mWz~b4xdF4S_!8m697{1m%Rh3hl;(I-l&bRo<=15g150Fo) zFI7zpC^l={%t02{tsHYG;4jj7yTqQu+hl{ z=g-i|1$eI*7@rvRHM}A)6>bUA#jgg;CC2ourAYpFV3ggZbt=uT-bl}y9PO3Gb;X8R z^jkTgl`9ny>HPdAZa9`2@BYIi&9wH||h9 zz_O+fUchd!u^Vm!#&&BMc(A3|H;wPdhF(e0O}uI1w&B4H_B-PtdolRJ?ltFeuDEM3 zK%b8ZHe_NpVRBRYq@+|14dtoy?-Fel|D=64>~q{I{?VAaR&_&f@q5Svev&y=wrJ`@ z2JlXBofp0TG_b3@_~XG(g|tQnVef5z_5SETeDhZJK6Vq2(9PPj!C8B0$egcLpd5$` zWfruEaaaFvSXYMfu`G?>y&S!3wbE9`X;FpyzE8W*)AMULe1cqRz$|{2T#CPa_K(#2 z^uBrr?2NP07GC4;<9hSd8{^sF5dWKS_)Ty~+^?}&)s}3|cno|ks(0cTxSug_KV|NV z-c1|>+s~oz(Bl`3kCdU8M-4#8V$q_G_o+HmAAT z*z4Jo#81Rg8a^&i9=Kko-_k`hkiGB&`JnNW(*8F5>EgL}Qzp($eptjqG5wCvy9#=W zoa&Q+AMmRrHEY_v(9UpqZ2Cm(?LO*Y$a zqdl-%9{{(#S}SOU4(R8tdcRhE=3B-kGDP+QG8no%%36ZnUs*(t=0aJJqRu4G;x$yA z_d7oB%^O5N9VdT)%h*z0a_0+mi@fBqej?7g-{c)2mO`-=!u!<`o@iTpFFMiVCPzjJ z9W6bowtmFi#%_0v{~~_&8hL8dF7JUk8}(OwA|0hNiH@h3O9u@*dWUVY3!SxFvWz}r zhlG7N2^}>)e)9YT^$1Se#h*fcY~xFD`+%3Z8hx^9OY%xEYpq1Ig_k;6r;&UZtwb=w z`{WtjZ0tUA|3IfAH7z!y?wjQml()n%_|S(&viDlz*QbWMSQZDqe%{I{8k% zGr=UCcSHIvit5JSJJhnyndQjD<$u0N*gSAB0cAbIs1P)&^gw zo{2KGj7%+4W>NHRqD;N~>~PEv!`lbQRO|}sFm}Zf#_pe->lZ@1A}LX(#Fpj)6W)2gb&oIc&9N8|z8LpCD?QUqNXe>?zU$QU9 znHx{C{MtK^X__Z<-OA6vbq8=w!rp1e-idu%PmyC+I75!~#?NB8nu>6Sd?YtCG@wnr zTLM1+`>(?9@S*RB-@W%d&hetH+g^|63iQFQGVf;YA{h7Obz<+}xW#|LWv&BFUH9_b z*tx;ya(@aR$lgDSkLltc>KC5g8TJ4E3H?8kv)lUk$>zM9t8@>#a7Rq95&S>!nb|jU zHD&ak|J$*%b}Vz?In77u6Z8m_Z+PA@#4w$X51sQ0Qp~fH?4>-<*s|pNbS``tn`LbA zL3q)e?qIx-lk)&vybYkv;x|727AErt+WuchW^_pAOpsmd-!$~3UZV%#2~-~QJ!tG& zrNmQTU>(MTj=BA^y9YUB^bNWqwB^vvdCrB3>H^pBmgWR2_RR@6cf_>A*<5L2)zj;e za6h&vIA=`{yiBNHvRSfGaa^-#L+ffr|I-F*7p9(f(MDXq+LEr1&sP#H72Bp9ryZH4 zjgDvh=~~yEQXLx5Gn;4a?nTUHnRl~>WzY4GYxnr?_66gN72sKqoa|SGCUt zz8I@ST}AYl>H#-B{*e60$iI!Ft0Nq!ElAz_SjUfRJ6LZtG7)%q#+o7Pf5b%yuWDQT zBwJJSF2zmB&XCQna>WU-#`@X#Oo+cQzEynqcEPXZfivSg*GvM}l^$p9c-UO6>ql2t zh>669D;`k%(k$M&CFVF~y`YYVAIzT^buZl_!e=OSRc5;v2opE@TQNUz9;JUalqSRfqO>qiw!q+CGwfyfnc%kSrk08X_d{3;eBQLmL_}K$Lvg3 z<2|%_@E+DK)(&NxV{>N}x2hQA78f|-JC|pQh0YZ@Yrq+5<^s+0?i_Us?AI_V>)GHyys3J$7ptAV9nCjARrrDZZ{lx< z^~i*EXpm*E#w6Cv5>uB4)?I5yT>3nv0zN3Oy&N-38dG`MJiT2mIl#fg6xuwrv~DEj z_B6HLmU1)fb+^Wr-?eV!5BZ0AGutd3=M!!9euB&l^H^w)vnyJ#D_DZmSKja0*GdNl*Ja(}Ex&u6RU-nPvQ_3ZP&72!g zJz5LRTGuq#?=&#W2ToV;?L*pHsmPKI`3 zd+c>|s||BV*O=VzIdm(q+a>x@ko_jVt9)NW|7#I)cOh`a^JM~0hAr18S3Q2$+=d{T z|6gX$xAeQ73$JHHaka?Bed~lh%z3m%bxQQ^1Z+QjqrNY?9i$c#lqi7vz(|hXF30j_iTA^KKe->G=(!18eIV zA1W(4q^V=@i(y`7-M3Pop6mT%2eqU5O!ysb6o;A*Mr}YF;s`fuAAoRZ%E(`_Iv_Wi z+7^8*;b=A2kmr7fPc-yL;}stN#XRLsA6MKR{jhV)OQL>=w7dSKSFY3ZmJN)aGl>dl$)6e^}vAs_Oev{**)#Kbg`1W-0 zVe;(~E3a~@lYKuY%0_lQ@<3SX4>6cI_5eqEx&wZ3prds3(rx%A)wafx#?f1#pJ32gwz7rT<9ft7tTQ>q4dkgL_aOEwaV;h{74xmJd$)$; z!O+tU$HZR~Yc2V$Il1co(B~+_+SYtrEjETE>O%dxB|~v@rde!Cr(VdFX6|Wj6Ktzpq{kB zH+3R!(d*|LJJc!A4tbATE?gB@CG1t&F|q=CQ0;(olfzzZ&5PP$E@}Fa0e0~tHtvba z*QheW!=dzF_?lSv>I+u}veh!Q6}G=bxk?$sZ%pS~7^9-|mB^ttOXpLW2gY&vUi@63=tf6XxuvYK~fgN2-3!<$L)`%v`tPZ)ZGjM|SQgIrRIW`R@ETnD5@s z7!p6m^+C@Etje{>w4Y12jIAdZfr-hD+IuRV|K_CA2Ea>Td;nID?)Uox-jC3`g5Mj> zf&ZR4@LqJA$Pkji(Cm3+L1%3ikz~tH$9~RW;KY0($*^e}9};cU7I`InVQ)=RD^* z&w0)imE)c88Rs9+84Sh~@9#~_@bJG4b#gPN$$KSv?~L-mKijoN5U;9E=?QT?&tk7~ zcqiG{0xX)pW`SGV70imwfS;>yyB|zGItD%^%%hR)ei(e8CYyrdL<)b&9Q%s7#Y>X8 z#4_=>i@shZHrn(e=hy~9`?`srOCN~U*fnCqht3IaqwfrS*|*x34l2eQcXJYW4awrtz`~zY-(`c8y}+%~F8CK;m#pb~$`$C~ z(`Vqd*vpguLl^Ve#7bYF^|eDBPxG$GyOQ=IwLV#9-r>){|5byprf-_V6GifuyxMn| zpNuX*`Lr8;yAQuw;mg?OneT>&4@LRi-~Lh(@5SfSsB7+TBmSlyyTUW_Y&No3bkjT_ zn+AS~h6hduC$e2gXX+|!=8O>bH~U)o=Ji@0^TF2V#807}8M`sE7BsRRDH&ad*!>|t z{Eo3HKFHEW^-!#_-d2XacW@m@8+T8px}!=C@Fp)!n+--IlaKMlJ%wV_bUF|w5z=EZsU$3e2gxdXwpS5BR;Z`59}Sk9^8vZ4POGI zY>?iZ@O#4c?qx1zjtjq+m|seKziH&V|1kS0JL2#6VaFAZsNa$mGyb^0tav<@!^HHH z3@(EMicMKNRgLp3T_$%?J5k zE!GbQS8jp(7>MbcrjOj)X7uP}f$>i=cT|w?6!K;AE6n;v`QlhCaX#>1>O;@RMzx^P zMp?$?bDc)7!C!>)3@x;)vayaEm;F}MU+CK{Jns-}$jMk=|JH7vEA)kaOoA3_J1hSQ z@ZoayTX&t=?7=&h_cfhoNEY6MP3Zhu($%xKwaqFqrm#UvXGO+mfNO4*cxTqrHOpG% zpPAelOr)Oiu2*Z%t@1l~_Zwp4nssQNyLnuEzF3DUhMz4StT3kfu`w}bGQiulv#&1Q zM6rux!!&*kC3Ff8pN8K=a;*UTj4$*I%yYzvlP^LQzp6#wYp8GPlW=2I(Ls^P@;ACB z!YR5ycUyiV{UqkGzPTF}+iO2uD!^@MR?N{nE z^K49O#bLT-OrP0c&05e{uvxxnzF{y?`=RkqkLj(rJc=2lJ1R6Dp=-D0uY)!l0_8P* z=6i-UMl;P-CX5l(7wn1lI>*xd$5)TiTE65!9kUJ z4oG*imfe3||15XYDW1G!&qZVKF$H{R-WI+!r)$oMeX68?jD`QUCivxhqPRYq8=2?P z?-W1fA?E2&HmWZ1;}w_CXX=7?8)mFB|2h0`9t*3ex23??EspZBV#UXBzhMmAQx5=l z^<{YNqfIbt%@)IqEZnZUa}wTobdh>m8Z#n?%u}xttzRzfaU30B$i57Cg;!bNj=XKn6ayxQ#-Gqc)?MS$l9Py=y zAt{=ihmK%$tL=Ob_}-AbrH?$Dm>wO_phM$Xv_B@tUO4u3z7NGXSVCNxM81dkHQ*qp z_>f-hdD-BhrCrfn39Z~v7EOE^9B4lezOG4^H~LHgyV)q6us^b{#}|4sJS3e?{E|VJ znfN^IFn4P&uM7P}`ty9|P~>H;T;vYA|K49Wm2SgYD0^+hkIX0CNmuib)(^xl=bP&0 z%%PcY;lph%ea#|!&AM=#q<+Jc(m8@>znRS?XS7e^J z_4m|^tl%5x5iV$Ce6Pdu!!tQWH}o-9o%k0F?$UXva)?88h#|Ep9a8Y^SY*EKrytJO zT*g=s4!X+d8x`s)5z9NqK_Q&S(6Q(ScPgu|%4Li4?hh*+K z!X3JWeCm?;noGV~&<>em@@Sp${YaiNXAyr?>z>tvKVjV{{~z|?vN>p1!VawUT2DET;Tt8=$^XoJ?-9RY^w9_iSF{M${sbh z{+=d2Ez-`_#2e6!^p5&%9WCn%%6OzDZS9pwb^ zJNPs6Si!5^I0kn|M0hdw)d+X+a<}%B#6yzf!qN2+&e+%J&Ow8P@MS#4t_1eefL*+t zfv04PoKN2q?T?%p23c)0%kW@!y5K!CsA7KZqB!$9#I!H)QDuKgdVU{z0xjmLIfE{Ac-L z-57rO(U*t!Y7U9{l)d+q_*8rB3*imcwQD$^x*k4Q8{=BO--FMEYf8ltOjcJlM5ksx zvCtjFD^KVQ1vu6i`G^8?UtwS3&s zFMDK5VoYO4Iv;s)uA{jkQ9-U0!gE%NovyW2at`)0#zT_v;NWYM#MdUzIGTxGJ1xgv zy4x4vbc@|a@fOZ?pk4O{;*Ln3=nS^bP0CKSlROW6lX#<~eWYFAAqFqMZQCQ;RBn;~ z*fDh>N+hgFd_5|^Qi&>!S*BSD{J=Yx*Me?|H1O1KA`1cqe4)&eQ?v{caId9`oR z7tv3#Xe773%H8FvKU44_!E9jH@pnm;H&(tSA77UUdkDX!fokX2c+>3|#_T(2& zUW4fs=Zx*oaDJjzM=8^_!2Ian_iAJbfvJ zFn@A3^*~SB81WCw9Y)+%@_aP<2CO4KRcpjo1#FYlpJp$d@s54zq8ek#=Dl+mv`yd} z{}gw_w-k~izVVVphuE^K3#aoMop#7~1G6Qk*7_}lJN$#eX#%(&`>gP1_OduDs`&X~ z-LF>N^xpxm-=Y0K(eGAbN48iC%$}6a@Q}Y_J8hWrLRHOQo zbH%IO(DeRT#tre9NAex0+#>Y9edIBBGtOAETX>?4ul09q`Np--N9X@&3w^=F$it?r zF}M-kJ-jOU^$fg&&7xRx8LZm{n}BW>XOFWDQl+} zG|rU$6JG zKQy1M%MSUPwd~X0#$MLem5S{X%mk;x!y5%p6o-y82*HuSB;NQNu~)3z#=zqia_!`$QWS^*l zkIb9Fqt(&SccXXG?l{V3DSLm^p2oM{soaMtr}#p`$qU27+ZZ!LRnClw4u_ij$U^c; z_Um1mJwfxUJzcXuI6peCMt$V_8TI8XCj$}#&y=3fp8~WI*`9fnw{nfZ?Wlj=~ z^}kq<+z#*WjAggw>0Dg+-C^GAvQqethjQKW@J9kq#@847wCtwbUk?~BJ*Qhlzk5GP z>vfHLyCAvMZq71(Keo4(!}&lq7<2{X6R?(j*#PlNA`y$7`MBm(yjsOh?s*+>wGva2 z-)@UNVa$5oO>j6erIhN?`nu@PE->wBluI z9#TCSbpDT+ecB6Ud&}yb`0nlS6Eoo+%L?ye*L(4z)~>ILbZz;EI(gsDHgesA5Z!j?XH$iru#BOyv%cu zzs8p(SMJ8<+a1iMkGG;%C4uE2>X1%#Cv(J=RmUojDv$l+X&U)YB;`phWp3I8cP-_m zwWG}MRR0b99*SPbc-o=4n*MD&lzZGPcj0Y}9l}9 z$;LVGJ9~uaUu%5}KGPkts@tYNqPbl$dZ(d-Xmq0J%(z|DtXmb)tx6&Nq+3m;{|Dlo zTsa%GRkFeB`L4Po$HbFIH1i?t9ZKD*C(U=!S$SR`=PB@9k{k)`-*G+l4-M~~OTDd} zc_+S2M+B%f)&QP^k7+7j?n_M{=u5P)-y}O<3w8#5bNM#4z&zZ~981i% zTj7CYZR?~h{Pr?eeK~&$K6>*SN24QH`I`gFy#<~=uQo34&1fC)W;p%cjQD*5_`Bd0 zXVT5P)d$XP?b-D#xXUT_@#Z}?XOyHnD;E1h*fs89zMn{b#(efG{D;pwtSWKmIJc&? z6to@^@AHoNyf0v`+wWO2%kppVlm4y1b)(`%7y0Kbm-0mQUPV_j3W~ zI+c3H-jRg3fC z559fXm3kTLT85$#b=g#Ia35SLUaYq&ElQ88gu<#jq!}$bxUAXFR$B^ZrOd$ zv0m*qct^Gr$tBu4$;w?`R~d~{#nZK2_IILs*h|`T0z4?+Anm>CJ!g3F&0afrBz$*h zbz(i@0}Hw)fFX+v$FB6+plt@cmFqEllYnPLcl_12vv)gW`^2+^cXYPt)%cO>+pFCh zkR$J@yZNi?ujX44zf;A8CVl|xC+f`K!vD>|alb(J@|$b>9K5xJKF}X*s7c}-COO+c zEY=0uJ5rx4d|=;=-TmA2D<1cH-@q4Fzp>2tx$(`txG@L#^LBwqnDWaU1U-o+>*B(>v z+SbgU(cCE?7~)zwGb4M4HGo}Uz+*y`?jb$MYpm-)=W#c1=KV|TDfRm;oKb%WSVDWn z0*5)QTWhRL?k3`HdyU7BxhtHXn5PnjJLt>#pt# z{=oXy=-_H!dDQOb<9rqJ^po=8yrpk(eKXauY;ZdS-%4+ZV+>8Ej(9CCUeQ`wb2v7>6t>6&@U-Li zo{H!8Hr}%aO8^gZYDk}4r7v|bd?7h&c_Dq(#~-n$u3z^79J@y3+?MLgq)@XNL zHoCr<23+IFHyydqk`HN70Y{Q0U`D6=Ld97Wh=EJqi ze-y$s#Z~{rnqt<0))b7p{l|OLnu75@b7wf-LqCl0{I$lu?A_S3*+XSds6XVJoO=p3 ztTlt8U&Wrd=czlQF;U=qku<=$H}KVx1CQ#j6_(o(=PUDEAr2pTS_hWFFPAi0y~Ui7 z2>GNX*JI=hb~9r;(|X#Wo-Fk;)_PkkjftXJW49Qa$|spRLi?k1L$#-IEq*^7+20C{ zY-o*1(@=8{sQ!3U~FEW$=3p(D%IFEUo z_ncc&U*`!X-iNj%@xO55Qci8^Kk~mf?vL8~5w;qwThN0$Bzr}dajGwpC#?5+V|bMR z;pY71kUr82n(NGr=|__1YiPeYkL1d+zuKQ4m{Sc+;`V@JWDZx`Dsxy|CTd%->RVj* z9_&5x+12fe zt(+%mu`cOQJH)XkCd8CIj`rGJ$-yOqsXT4-Uoc3AxaAtgwCB~p8+0=|8g?kJ@eB54 zVt;@7X>1r<7`rjfGw`-}QhBS|!*SR68O~QJZwqy=Q(oEu2Q~2?JZ5+gIca#0x!=f* z6fnH`WX<2^UYKniQCoU{T=X8_g&mYLFzEeJ(R+Afhj=$hdwPFZ^d3AITaV8Ez(>aB zZIRE+k&F|&AYGvi9JhgE_M)3)gk*#E5_6SPOgxP|b_LnF?0)2F37oOEHhO_aoa1O* zOJ_($V_G^e{NEutn;MXQ$M|(UC!|eiC)NIvU}J31UA|lK_i!9wYvYdawPwyp$`>?} z0e_(n8e8;<^5&joY!M4Wn+3FcEq&E@qmMwBza9q-iGSi$?naMVV04R^KGQ{?ayTA< zv9Xi9*!BEWL_^_pN)ru5Q}t=*+praS#1HVi=HoOFDr$kKWr-m8`f_a;vwq z5T21wM)k*IPx9}4(U|&#*DQ6!az*kkuH#(li1uSg=33c1V%d}&fNsQLWUX9Qn1d$N%{Du?*geu~ClER&8Pzvg4fdX>AixlDmFMdEl0M)Jh-N&|bU z@+NsFdHZwOS3R%sN$~*B%B$~^F>Rdp7>UT8vMYuyisy#C zRO91IoKv|^>tlFyfd60Pzw{pI{CW2Hp{3DNx95M%KG;0$t@5L0pP@jE6ccYl`pIa# zjV|o`lAnsPam+7?feWnim$@VIm&vo&Zek|l1220b_|rO}hP*TD$%Vzu0r6RlY-cX( zc%JsO&Xhj*QN@f2Wf)*wfF6KeT*N+9@;XxFdxHMQd55q=^UdhxGdX`N8j;_uH?BuU zNyq=*=e^q9vKv%b_h=o)yETjM_Tzjl1nth`9`t|5IaZbbD!TWdkAdD%y?PhRxc5=# zNIb3xUX$0l$hUKkv$y6oworbS8}f_VQo9#ZE@xp6K(CZfg!*anG?iOTIrhkPj-Rz~ z#BWjFw^QEbThdbh`h9fiz{+WlVyoX0nBCg-d+9oFM-deant8u`(&g9P|+a`<;d z{o8jD@tUrtuNB&eVqnGnv*u%4@W9`I)(8uHd*I)F?IXqCnIpCzPM&eBSC~t7Fcya_ z*Jo___@zsZ%kQYjTF2U$r~R3Nvq(F@3jG=$cYaswzQLr6+z}r~u*Y)|@nweWeE)7@ zFyY&_xc=}t%&XKX-zbfrOFrvkqsMkz@mbT};d7UXnTz#K&x#KP3_COrYEGd{uR}kQ z^h5H{;j9V#+(?$b=ubyiY%ta<_U6I3e~AKqF3e*(2NLtg3Z63-XWVj2;dzg-(eJB2 zow5#TJm?1ZzA~=zg>Lr5!J!Fsl1DM z;{&{##=GgflYfo!UBSEQWpsJ?^3jiYwJ*Zc)1tQXcNWXOUNZF*Xm*g;`x&yL zAs>;Jc>I>QyQ%Emdm_A{HKX0uDS3##A-MYo)&5iHf#<(It?xfNmHZ{I_7~dv|2y`K zIU9_evj#R7kYNv6ksp8TKP7$faqzbfnw`mhsa?(13kH8$dxbc(`n}pWA|IlIylfph z-J2%X^#9Ob@qMTRNe96X8QJyX6T^Fd&$!X^AkUxuGImd%=jU|CYhSRC-%D9DXxx?g zU&_m_)+b&IuH=1%clkU%GrYTsZ`bk;ehrrL-nI@Qh9a?r_;ygarC#ti2eYf2gE<46 zgSqfofip|z7dI2nVsmgkDS@aQIGUR(N z&)9E`9Zxbg!8eEZCEiQ_%d)4Wwawh;I8{U%Bo%&&ZwT_sfsfZ7et0OWv5DzU-xPjf zN&LcA!fyq}<@4mz8G{mjVfV1#BRFPL-vdqM?~^Qineqo?yH$CsWbn4<7V6+WsD|o! z9Gi-jUt+oF?FIL=lwGJKj;3ziiM_HSe&=ifx<6?#u&kXwdCPi!d(NM{Wf^^6Of_POK1pAJq6x!L5^@2P=Z=&4JGpg#@W)$=ZBcp|W9tPUfiX2J{BfX*Xq4*tTk z;!`DY1N%mv`RE}R_A_^^sseElfhS5sQbyCr@hKl>Y`J9R&qWcD8B zLH!rK^nAQvF5~-JUg0aIB($Ne_p--H3?*z$Q)nYi-K>#@m}3oGF}&ZVY_hVFHBw(7 z_{6`0S8+98MgDQtjdl3HF;V?so?Kb%s~0)rc?x%6C5y}aYssg&3Yk9kqbu;|!n&DP z)UU!)U*kCGa_0*)`!(mh82>f95bER(-yYxDXKd1+W>5R`q~!Un)_weLA{~Uh{!e}z zq&=kHlal3D>kyJlI-VpMbf7bvvT@nqJW(Q*!9Q(c+b155;y=x6yn+AB&%M&)(Xq47 zzkbUyblqO;c0=+9o4`Br^d|X#hhudMcZ$)A-0zir>fM~dmcC9I=7DP(w~*&X2VWxo z-^@EV*T0OuF1E0jdX#Z^zlJ=YBhR(356|AETwW$n!S#?%yw1@EuMp zUcdY9&kxj=O!nG=vHkwnZJBT^v7!X;!0WaI$H>M~S|6krEyJgA1w2VPe2;bJTxYp{ zUJUcDByZ9^A(%pbyL1NQS9cH)`Yuw49qk&;{ox&M zF86b~#P7Gp*HZZ>@XudAVJ7e#NB_0PV!p|?aECE4bZ4+}=8) z-T=-N^BxO2>b zmf3XEJH;_Tw$!>D#hCth12|Kh=NQSSXZWT=XZx=MKHXb!?JR!br!voK>nG4X0}dAQ zyqCT5PUCxz-v+S!SAsYa*4hBQ3|ZX+o<-Xwti{e#Oseg_<9j};=X=!i2cB*AE0B2& zyM3vzJ#iOZYHD#YXXg8Y3k?6zSIT@_?dG2*-b_a$kzl_YTIOi$Sl6nXyH(kPw(K5r zw`vwzC-bX=W2rAi9S(Q%OkrO-PuWh&A^)-STSKd6^pD)Rx(XjDvzMBy_`gPX<=oFu z!tL>^*rv4?AzL8$?3Ev>=xF%K@){?;7CJ`zPERn;(iiH1*XWZ=Tb-44lJTrv=hqzK zb>}>t6|jbm2VWEUzG6lg2ST{jnIheps2JFK&O(3oEl+aA@03rtSLV@Uk3Hd<;kW3W z{06^kTSqFd^xJgla{o~3eV|*kyRdQpNx7Y_EtwId>)yN*19;R5Q5`Zg_L%G zx|{K*{i~s8+*=IJ|G=;OTSc31@*jE)rQKV0%NJ3<$}if;e_n9i{~By{(enWR^==X{ zihsUo-BSA@>p5F>Shwsx^DV4-U1&>RREJ`BD1Tv5NV9BdIdj=XHDbVx&}%-lfoAOS zhxGYAbnk$sY zg>GLy2YJV@#hNiiJijDz^CbFv`rVR)VH_5V^V2FvnRfKZcKX&`?F#$-BKwEZEmiKq zD?_<*H{X6n+v9NB14}%3N(EZ^DsK=%~){jFDZGX5TANTP8=>6fcGh@H4AQ#A^ zyELGY$q(;^ztmx2a~RIqX3qQ5*&1`#@theC?%IEUHuqsbJ8Wxaohn@KBhN$&*^11+ zzsug+xg33^L_KBv@!tfGBInb&U5BWAKzS4I1$p>Kcme%MHgR(wp?F=oiS%?+p1P-0 zN5@b)@1f834PO4&NN4e=n>Nmk#+~G|^pg2^Av2=?(pNg!`%C1t-_aMyW-GmKw&8`a zy;I`$hzF4>Eg#v#KY=;(V(PLgMa`XtcVi$0op(8!8?#Pa(adu?%Df98K&*L>=V>rtI=rmo{v7xKgCZ{SDe z`oVvi-<68R;u=`9i9B&_^78`W)^<-#OpIVU$j5(eUkIP-Jef9P+-Q!~IG6q-SV!gI z6f;JX-2HN6G~QsKbW#xkw&;hUV%&qEor?);hGlD0H|J1_h z|0e7OYk@~~89f8ri#dPe_3FG!cPzW1VK#{myXv}D_EOH2FQXjm19a1k1}4Ub$rH=z zV#gMI^d%#WQe=T*7ivDLl2LixqucS&N=@QpE^jt6$}h2}}{X!cl7 z;Qw3rkFL<&RaqaLh~6w5f!}OQpNY`t=fEbI^1%B>{v#8le-CM{;(hx>?l_oM9)4}h z4BaQpyzKUvd8b!>K=)F;x}zH1|0I3ihwu7C>XDA4_Tbr(_8y7a+DV=c<;ju9MSftj zwaZJ)K8NFm`Z~H_Z4qr~eIa_v$4&aKU|QF{WdiubCS?s(B47F8kEqRcX1$^~V3O)_u|B!yonfCfcE1Z8F&Ay&ONQ(LJ z7k-^Z+$lyni1ZrLIajn=hw*zf=~&XwKiF!`<@bEj0@Axk?@NH7PohSz`ZcF8F5gucN)j?U=le!ch^`(H|O zS~_eixPO(!f9xN!{h0XWg+AiN^#!~B!kzCs`|A6+J4Uf{4<$~w?$;*vaNX+KG${WB zt82<0+oyb0`uf^I+2nB#h-tE%oV zAE0j8R;~i}bp`CC*WwRfKBPXeNc+`rzuNJ5*PoP+Pt6+Nhn*N7#vJ%_iTV2{_?Y?g z&9ZCHrM#ji)>mA)x`_78JtUTlBpSgzwA93j9a5lqv4K$Xmkv;Mb-aTpO zy@!c^^EC4LIkPUpE_OQWXuj37zHq1`0S!7W=t`fo2dsMWhcI$V^7rx=qWlHvI+E$= zUIpf6%BlQS&`Njn>HZzX=ofuex6U~1dNJ%LWjZL+A>CT{7<@R2oz8oQezNfLI)J|; zu2XUP6_c~Mu1Dj#O4L*KI^IBCx&uKnPd$im_E|?5*6l&0y+R? zT3p6N9^L`IWl{f2^m`_Jpzm5+s@`f4;u(FTTV=c0gAr|%M?N0nD|ln%Z1Zg1nYp6? zt%}qSO({o=qP}2mgd=Q-Mh6z2l-HfHB{(zs1|7G>_|~@!-+simk-bsIkM1JWw|z~t zIX)`iOq-{mjrNuD(YI#Wyi>Fp@M@nJOPlKG9R!>H5!wtO$Ev>82Se1?xT*?m25#|F z)qDJmFFQN)s4pLHe3t#uy?fn1k>q`5pfC8H_IL8&OE^2gI507SZV-JhF1+ks58?7Ho}xa%qOslB%Qwc^S-_IXKV{|) ztzVVr$fv`&tJ1-hhj(A=YTxpW6g)K%eJlsR=nM+<$Y#(DRA$9f;oPtIoMs+!)tQ^rOl z-Ynp!Tk5M9k~a;eL=(Y>Eu{QNDEG3}RlaDVx#i5I&j*Wt5z?lOGen#r)>`?wj4Rtl zX!Cf-d&2K_F0=y+_BM3RE|>d}xl3I57cDi${|&lGcejC~V(?A2yP@_CM59X#jZ}Uo>wyP$&|W?qJHMbV*;B2`n!p(lZ_+=;qE)@8{`eO8 z30!Ju4UN0;K{WVPJu9i_f1VuPOPueaHg^qYn|u6&<)2fWRClUNn0LcH#~)Jv^M4?& z9O)M%_m9}~Nd2T2NON8!RsiXF()>R;)|2@)?1`~%&i{D#;nA<{J|85e_SCdjksxmT zWbXW)Jl$(|W-e)WPW0NRkoc{gMnbNdvT+&ZSGfa~(fqG=Ox_%A%HjM|#j zBfMp&OowNuFR2Z8IrT|X`JKi7`phLY_&|4`g>_hzr>vEvjy(S}71OTMRxx$B)M2TP z6Rr9b)zN0vtt53Y9-+ln>bm^~>LaXAZI(%0c>R(&$~2yxj{``PiKulqjcu(9W7 z^Na=Cj0Mi#>6h{Ig97Vtd|Y&1QL@T$;RW!Kgnq(_!FfS6CC-0m$QvzuOGDda*Wy|N z+By>#hq$jYp1`rj=^KQP_?h#(B}=}&N&J|6WYYP_HO44$0>(ALgnTqGod`^JbUp>% z8=5my@+;KwfZynQ=w>7O-e1x6v?jV588zY~ar)7FDmG_qBHvlXC$tN|RswHD?x~bq z0EP_kN{;NRM>ei9&lRsmhqChdW)CZ?^N$Ppl?=ZJ7<=<)nDg+mYw4WoL%?+ZpE*BG z@}jhycFy?78FlTcX@BIgL-D5~A3jL6!jvs3ekG?<;?6`&&vTyeP)v;!i7Dj2)--rb=Cf(0B^-X8< z`{Qh4@E@e1_*2=gvJ=e=>vIqzOS`461)7VoOA-~S8sV^^68-t{ay$dAq+J?DL_ z@B|%pNhaWzCwwLF&yM+byl@77JW?r2%cy|{C1!B{N(H>||5Cn*KQBcW$~48PYH|O8dsEQ6W50f#HUA;WAlRKFipbEk&`H#7lM|)Mw2Z{Ss@bS~$MNYh&wEY^p3{Jekiev$?}T=i`%k zYngoY(x$&l>k0Stdb#kO!9mV2{Us}1TMIlt3(@E+!`+G9~WRt4M?&3t3SH}*Kj zFZ&E8E(QOYpA0@5+vEHm&)}2yHu$v}CpK#mWY0(0E4zTbb^ZUi#u#$xB8@#`AAbrQ z|LloTdp6~2i{J;W=aK#<7$m#J zGx|RfSs%|oqi}JK0N=q)P4e8_gG8KJ-65j&N}?3XanX5Zo-?}@{C~a8!Iwo}^saC7 zyFLFzErGwo>m%9lP1?NAN?M)HOOxL3e3@?t%CC15ZK5NP^gEMOBwa;XNxF~pJSmw- zT2o2akzDrVwLiQLoBBlluUy>YTh0b}4EuHTtuOkPnXz`a?9`UC7T)A;k})x1?`$eV zUB~aLtet`0chaZFyw6mgJORgwlRiG?{mP0r<3-9~+dQd!fN%Hnjk))v_cwieZw%Yw zwY#l;?ptp9hTJuM;x4A$MxU#ATgh|#r_kr_L>^3P%6ooO|I@@LHS4@HL)+R1b_|c; z;vKJ$?-Nb=3UNMo;C^du%`JxeMKMlKY=UjQWD~r46~16&dG+j(xpSUbLs}KDF=sXW zS>b$b|CjtZO?{XWw+Riq6k~Og-{`^zIf;z3a(+W=LWg_i-aJz0x#sRB)%m-A)|%9r zq)zmUp@i0ZjBCX+#Kys0&EdF{EdR{AhW9>>Ol1GI@d#sm683t%caRUwczb?lc)nEQ zRo`cB2=}!lqvLlUq%Q3P0E3h6_nc1Jls}?;O_+PJ`LT{>%v zE5Rl9MPyZf^q%kQF4UeSX&-|L5usl~dP?BNfYu|2QxaoN;LjO9Wo zFX`7-@ zrau?fj)33bjUoB;aDLzTEls9Q?R}{XLT{vu^5Zvmq}tb$R%*54u7b`BYn|@e!_uXao6D^|jJ+`f2l!_$U5)(q z8b71F>bm6&={m*wv-G=b06);xk2G35=1JYj#(t*lCVk_tL|b+{{z{Y9?nYl6N^-|m zk})HlQ0vdm+)cq`e3J6`3OM-Uuy$eIV}EGU>fI+#d5H0HYQ2I_llJ(X>SCXmzTI!+ zyZn?`)3T00c7m5|8G9;atsL_odUBS&Ir0z5pR&ZVh_P)|`0ZI{e9VA<4RyHG0o_a; zlEI{oBdxqfW$ha?Q`l0q(q481dBV0=z zy8CK^eEe8rj^l2{E8xuoy+>a6#(nw5#t_B@w1>RkMj2pPA8dD@sm(feZE(x6Q~b`V z@Of!Nd;gvJO$N6Hz5#FwjxA5;7e3WUd%fWH9ZM9yytB+1Mq-$ERr&(OG1uNp^SRI@ zaE}8|f*$FICDIVT!e1;vO7+q7tNWPgFa=)FsOl9iLO_c3nqfg!dAG*Mrt5>Jj; zq$!v8%8O6D88;o2(b;p2p_rc}MB9P1hUWQkd+dm%N(YAF}~r_4_FQ}r9K zsZLfuw9aI2C0z{X9@-Cj@&C)4G4WA!oZ0))OLYm4!h`C1Obw)T<|-weM?Gq)FgPf@kzCcYXjM?NB7%9|Ff?A`q8`S zto~qDqMyAeY+cS2;2@d=9%pV=yZg{%{`A8z{@UBX*{zJr=5vy^XXLT5 zW4bx7arzfSyh!fFxKce8?MIiHgDalm{|+Vdok6Cm{czo}mt?-?4Bz;BgQPoweq7f` zT8jhQV=bPqz{{0-qTj5WZ7Wy7_oEVAnOGHc7Air~OR-;C;jWbm`-LWN&}H?Qz10@M z&z%B?U(;%xLK=&^eYq_u^qFiDoMl*-Sl}>W=>O5i48aeaZOAZ3XK%pEblznox0u6P z>}wj+RF*d03SQ=q#Y_JvUgU>4d?)?)ij1ZG@p4iVURZk!rQDF-lDV&*2OoeVgPY0s zhIsLopy#nSnD14r0^4$XgG`|}xbn7DjOSkFnckqw+rR&9O|)DNErpL1d+BBkf?gn7 z(%gRH2@kL@P`J2G{T<0Fe2JgFRn;DC8)&(-F-z-`67zeNbHebRbgcqw6!GHhVqe|0 z*AMFKF>;Z+7y9wrlf1vc=n)n+8^x4j%x7Q3Mq$>x=Y%?PesjoQ8F(NK9vzEwZ?uu7 zO^wm3Og#(W32aC9#~J|BYwV6ZONS5*?xs%BOL2b1!{lMU!>1NHQEuZZzAN8v9}ykA z2D-5+C!XCE(dO+Dyp)@uJ$uvtQZI71H_+VB$v!Z8T=x%-#s85u7-yz`R&o6VWPq)+ zc#PMrcFwzZSKYmVwzbEy#Q-6C~e=lQ1dpgj|<&3MF7_Tx`1=^t-Ck8}IWQL2(b9V%- zl^u*7?F-KLYVLtBp8nXY$D z?Pv}c?bV*z(s^<9Lv83z=(vrprZ%LvI~C?+VDA90$k3YYF+UD4mlih%3p5Y0f4B?Y zYK`^?TP&~rN_@(W&=`OZVC3iG_}82XU>xw?T^Gn!I^FFv=iGQVL^%_yW(T$r@!-Sc zYu^dKn!1kMB zJpKS1tm?b`KWM8+pGscsOVq2q%lnM1IIlLf$Qd$?u_E^m`<%yv7uxc-)|l^zF9|Nd zq0ZL1w9^5eB`aL=s9t>+j+4a@#|y!!nYW_0K1aREC%zr$g3EUd@4bQcEe~FL zvW)dFHS`kB6kb}pOmHBNB)`-4XCza41#2dPRXCjz;ZQziyB=np%evy#d1OF^x$6Kh z$$v4X`K&SUy_fbR59x9I%I)Wo^MacxxMT`Rj<&oUy)ue+hF1FiGxA z+_x?`OZ@={8jp%0D1Rc&C4UcBuNec&X%Vi}uG;_I?a++5OnsJql6KKmfN#ac!+VKI zIFyGs#kkzSoQ%&ozNyoxugzPD zjjL3ieijDjMf#r$c|m?v8gDVq-xlkB#gPAy zw^`xJHaO!vvHJ*hhx^Mb-X7Tms4rb2(eD&}o*C(=4@NRgGC}v*b@-9I@xglyc|(~* zwMpLaUU1pu6Q6eREZci03E!@Ov(l6y73fP0rw5$C%DOOXc$@ZB$05LcBKLbX>t#vo zuJE>^P=6Zy?88@c1V7Y=u8`&2y@`{Sq+iMxml2PgO>ASqCOXTOqB}BVKY>43A8naH z`R?uR6Ziv!F*hbwS0jgH*Sgfmj4pJpqkh1CEOl6{(~kg#AN_UM=w5f=?fYB$ss4e} zhWeJMjLIx{rS?b+Zy}_)`l@vXb`T@CguBn-V~}89;>v%*mUQCF*pkw~t2K!DMR;ff z4;r7MU5tm=?xnd&cO=fPYz``k4TFjWrnRc@*h+cFqmF`C`4kWU;m?vd=^oLHpOWtH!P>~&9;Y%8s&JbEJSJ;)h<{BLXW zp^?myY>IqZHmc0?$YkcHA)OOXm)_%JTjpLh`3CD=wGDw;Ly=Fu$Jwauh13!IY=-{5 zq3=a>m)wX>`L2h6)rC%Z;#UZ+3jA1tr##sn(K9QYQ}mdhDt_(m&-305eg7swd%^bh znATApXMm?nPJKRC^Ni_p5?m?1>va0gq&{R>_>xo^ulRuK%x(2h+K2bB74>S)l7GlJ z{)e%AHcuFbPG^-a%kjNC9r=PNzi=fzQ~BX(gRA?sUWnQ|oW7a3px~7`d`R$4%mH`w zy;XAobc*u`?}>!*|JPLm8*U&Xe(C&-H~HeS<6|gkh!em zc-P5#uB*a-YZ-ocl^{`oKZpZL-^`q*G3`)C0(e}FPxj0^u5GmrC%u^@-W1PhZKLsI z_mkJdra(V5me47jrQlXFMK-i#zTNDVao;Kw zonXkS_5%|!`FYma*t?D%-A8;I-!-0yWl~SNjGx8pcK`I<_}=>X)sOp^2C{Lx{TAeH zBy+WHV(qhMD&_0}udy{hP%BZ+suDwk&8>u0VP3RxCSF`~4+E~ZEU8W6H&G={F!q0E zfV}P+d=ii;)M@8$_pO0(X09E_d)9HBow(hfG67$k6y?&y&Kp+|kDg@vpQ}r^-kPIL zU@py&t=VrR1}xvH+P>A*x2H3=IT${4ah>+-8pn1wblUxPK!-`-<0&-+e7n zSvev{go6ra?<7wpw^TMs{n_c@3f^HIv_1YNKM(mcrlM~sT|44=V)C)%FL<@H!7;ID z1UF-RK70@V7Fi>JH|>SoM;)0$5mak&Ao!Eu^xc1nc%lOC%bGKy{f46EK-MmK^*`)miz~YI1rI#?Qd^E$6Tz>; z0IoZQA?<_K*q9isS!CytjZ1x&Y{3pcYTJUR-T?0&DIU&auV#E`%v+R8xnbFZp_A&6&*!J`DVqd-B+pZ{pN{g#PrdhM>gGM| zj+AYotZa<3FN&VpFaLmvJ5-eagLyZXcUR~gbZ1;S;NQr%6M6q``LIC~wXZg(v9@Hq z4T-iOiC@lF@y*!6Sbr^GoPV738PZCP`2*nWRO%nG2fhN%wnjL+?@#;VY$oOLZEP5O z{mbC&`|KA9=KJWw8|lLlFN3qU9sprcyTo{BtV!=V1m5JopQ z!EvGw{A5+UC!K!pN#yLK?Dam5jh}G_kC4}9-&ge3*(2erfzQZSD5w7#<~KQ~$`ji=c&gTHn!4u#5E7KP)_!iuE4)-Dz<)Acr2$ImN?{f`{ATQ+tu*xS2OI z^lL$t{CV0ecs2GtOy4wazQO*bczzLZynyU`0eP*n0P-D8ptCwbO{`uX;ukSU_?oPWEzccqx zpmUc~bRILeyl(0&JiFUwOuQ9&o-S2q@LhgIv>I) zSUTN@4Xm;e@;=v@@8QU^?ge08jbcKGcWw8Y;H|*LdGf5v=XA!9@=3~D*zyyXJ;r_| zw%`2nnw78cj(+0np*yLlk3AbblOLKn@Qm(-lfC)M542kUdTy)r34W6wZM9~T^7wp9 zmOE9(&;T+F-qN`p@t=65d9OM_eaBLF8+;>qXH`RL!+$pec7I}>?x!R z#1$$k=Fq`L*W-CH&x@1!^s>+v`$@?()*C+wTprZwZ;GS{w&&)?vO4@ z-@-4xfWA@tG~B6v{&A(GVRa-##Q< zm!U_5Yum++L;ozkDbIP#y|Ik6Jn<9t<@MV`ybG^3oAPm8s^`ytjChGW;y=q&aofBT zADebdOM{qy_c6CCui7^4V$a?9Q|`K_ZLaL4$8FKTuP zI+w98%HD$P*Bm%jX2j*R&mEtSRr~SzSn`{gG+MWHvGij$-Bsn@$(*0(_eXU3BL9C#qi@%piIs%WKH6IK~;0?2bd50!I>A9qppU=f^hll7vuv)T{*Au=X=m)@@Ej^DEW zEngYFMRh1ofqD3ZugG3^3Hrt*9lW!T%z4f)?in7}S;59Y9+y0CR37GoqSl{9)&r91 z%o)=;vq7GA|DNI3DsS5Qx4~)u8q)9s^jBvE)0`3fZ(UB!IS39NLN&T0p(Rj`&Ih(D$3}03b-@&sS;V*1AF^;ZzsU4}xHSjVrBr{s?uqxv zfBlF3VLO^SB-dp#G4h9YRj!4$n#+Iedm+vyk?(>0mf%Lti{H=hy~J|SUip&t9zR)J z9W1$Q?d~l5ud!T~JhsJq^tpw8#5$Y$-`wY~?*uNsTORxp!SG+~nabvY?B0f4VehQ3 z{%_cB!AZlZAcvaj`>FEsKFxc{SjqP3JNt|+;T!Pg1EfbuPmrD^iErm}p^bbHB!|Se ziDEd;1%pjL4`z-yM(s+ryP<9{4c=9p3*qK0csK3?@)|j{VMI=Ayp{9FY5I~SullAj z_j&Ly86{k+ju)vzITRx5buFUKk@^_(pBhu&3#t$K6p!T!@FI82yb$B? zz2Goi*ndtixLStHV+;!)vIR=s86GT!`1mn=IR$)p9`*#vV}q}w$JdhsjKOLzF~X4z zz|=hFOa3G|&!48RqKnQ5W(N9#cQ(PTZ|gPx0(TpFH1L{ukkEZQXFU$F3rmrCk9O+5 z)Bs-;*%nnMd%{)^I=NO0f)hEqwZ+n1p1$^8~*ka4!`N(+w zYo2cezu`;hnWD{PKBVL8fSXk7G#6YYFf;H@*mVX zle}5!Y!)`$_#NwIbhi+exQ^+98y?eK7vt`+Z{mY*nYqpA%d+ja;ET>#@2tzbm8R`f zR8J>sY1wh!rZG|i&Z1X?pN15F!1yC^u2^)+yV!rqYgo?_hphm=l-A(ivc%YDN9gwU z?+m^gx@jKnEU$SqS6TBYcG;Trd}PoQp8_8`cNp^*{mTk&!9N!F!n^t?yj$4m1g~(v z6x_!=rf(_o_-BpbG0xEbhL{J)J~PH8!<-WJRN#kx>}dE+guadGm-sd^zJ}!6s90s_ zGu@r+Cu`qZv1#S!C|z4N@R##zR4g`p^@b+n3)zxOF#d@J+)pfEekbyq;kS)nE4MUI zeaa`FNzGsKg`7tn{0q3z93+|v zUh&;t4|*cwZiYA2p6XZKs&5EB4Dpkw3l8{q6b`{c-~KDAQ@nEVqpHi7ZxjBIPeZE? zotrbhne5|3+6xII~(M@n}Yr#{wBc2U@ zGWC2eRfp$m8nX-Y#Qr5^7Weu_w({R8Gd2d0&6LsJwqiYs=fGjssqPA@?0xbdzOjAv?zY@&_CrX#cgUkLo@B4Qj$c!s;NzKizU-sX$9IIhqnH-h5$9*T&An`4e4mZX!2Oa#s@_a=CM5q({gLN+@sKdQiOH1s8V*My|judbg2ABi*e$>~(Jodo2`Ww+P)u#Bs9_ZQKMV*O(8*9VX zYa4cD<#^lctuN%e;&?twj3NsdtqL|4y~}?An-u)W7;Nod>$9#nGShzp{u3A1EYF)_ zbAQN}zPhm{eLf)^()OygvQgl-sP^Cy8(*}=^jF_rzX^Ezi*;Z%d~+pv76Q+E44?Qq zW5l^}{Mw;~#>+VFg4CF4d$7mXSfMWFEpSSj$=I9@ZE}^(CT4b*7mk&-67p++Si;nm zEZzkEF3?>}SqDE#twlu_$v45Hz2AqKo8%`lQSiEJpgDU}k_PVr8B zeS!3OWTN;QUg^lPw}}tX1aLVX92p*G?4;~GK6%9Df%ftTZ5O_Ui{Ap1ZQbC5hvzc* zjpX6U6z7wYZU->nbLu+5L|{r5bsy~wyS1lGJ%*n$*g(6GV_m?jmlX_l4IIv=C0kqZ*gs0-1H5*0b4oT&$dQLvH1a8xBbhESVsD!gt*&uX-MX zF0$2z{CuHeHJ&8jK=Il0r;9Ha)cUP06Z-L=AU6F3(Mn@Xd+Y3VNiWS_Z*3tS`RPJ1+toHb>qTGDST}inYnbTa#*?HtSYdvt_z*lTD&ua*$@I$Q?cvv^$v#NCm z`qQ7Rz49fQMtxR)PheFR(?`u0;d-y_W1-*45}0oq|9kkofZwJ3uDryyWIN^NU35CZ zb3JQS>f}Fo&))p+;zz%c^f$kdq(0gDq>IJR7jni@I=$A5vw=Z#xUpjuyxN=!@RZhS zZs~TaUSk@3J{7qpeM9sAnUXQ+gvoMWf(~YnfritlW7!O7$lSRKzaNbS<`c!iH!`4w z{^!u0ljPGG8S$O`0Byb}czzYnvSA1xigl#?l4qjfZfGW5LG$^ev%|XWqI(- zb`s?i9;ZTs^UYXfp9UI;PsE4K-{|MA+(tRo};8u?CXE_RB* zQ1Lp>6s#r2MOkZ$X9DD2!y546^NB|1jp4R()X7;5&8700-tKeOz5F(!Te|CgHfD0RL=b4+-?gL>W3vlZf@aqj3kK=VwFa}|0IT;`klnJw|ZjK3hh zuiEEOoyjWaMf^?6*i+|s)v_tjXl%I$$S;~mcN}}h1w8huZpq06>oL(+w6iMyy^Ikf zqvLZH-(oDtMkW6#V|#?A@mYY38^*%Z+SMwH=dA2LY^lHGtYN8_dRfb2SIi2B;(=tI zHmPe9dvKzSRSKVX&Jhe3HfVc$IM%R9z6>p8yVW=`=iq?_+Gn589-79-KE?-Q^(!s|_#w7l zin%g1PW_<|pT_?ZS%AIC1aZvWQ!Y{YaVf=`u2Ok!m z*L2zc8+%?8xadL~`i2Nj?e`z9zN62>6Xr~!VEPSmR(=!s0seiMz(=#+#HB^a*LA*)--PxrggbQM z#sGKM=q!kAcZ}JZ-5-7vpZ)D@!3w|eKgD;&h|L0bYXzCjyB5BgwL1F^v9FogyNdQ6 zrXzQyQ%^$%OIAoeBq;9`RaXAF*EFDgFKgz|H&HSkzL#wF_Hkz~ZD`G{zF)Q`0ZE1InZ{=^V zqvIRDSox<2XNp1DR@fXcmu$CO?His~gV%Owe}VNP^|O~v-_(}+VCY9b89#eAYj2)! zc0qlGC-b2kN3NLv4!j|nI+Qj2My4COVQWyIXEMg+>yU>o(sd-4>;d}N4_-iHmhfZ~yJ zMKkJ?{IQ@Zbl)NVUxl2&4w<;vf0nbEg1=qTbz?x8=4Ilz?f zXBHa=lLeSmdv;z`u3lEvycz6 zr%HBmF38-?4o@_a+{dSH=1x9$nWa3P*bq|qu1JSi<}USluJbHCe(3ADANx~Te=^x* zg-^xcg)g>$mv46N$1ms``S$yEKi`bLKd^$my-Re?`AGQG&>;n#(%}6g%qdChDd5P} zSLB!G?Bb2}aRW=OZ?-?#-kJMpO7)6Im3JR!sdi#_I-Gat#zqIu=QmHd)ZIJ*du0yU zV)8*J)=6sykHKgCJYXo1Up%5SE~>}qZm!oT()I(?cLd)x&J^QWcHc{(sqm3-7qdnW z^RqWNl;~)u$y5~#B&-P5(uv_0hkL|8! z#!9nZkgT|oXW1hX?1eb_%NS3agY&Sn!b>&9r*Ygcj?y%Eb2@yW`Brdi%!tRdR@d6( zHONZsS=!`3hxW8De68$+&`fwZ8+@ssAK~4Z;B^+?0obhFNHV^X=R4s0FPp;FFF#b7!B~e_ZgPR;wK8J5~YsfKl_o zcm5dS6rS3C3T zeRajW7(gC>Ka$CbTu)v8i}rZd0PwQrw@bCZiEeR~aKN~xEy3UD!cILAn|8cMAi3ap z@O*wLvX65>q(TKBJ;ueUw4E&LuAh%LL}RP8!Po)>*ZS`vqsn^cHO?ZR>;yX3(^W?A zu{MqR>{i45LCr7H9VSHdVUHxM{q=BdxU(j|5ca>!JtAG4anI$SOo5MV20Q(%$!o%M z+*4k9j@!t*0eGiB)KPYUyX6t?WV4a((hYu}geQ}%nUns(jKfv+R35t@{@@Ahe@ni$ z)bCln)L(Mh(%nfv%^uf{L9)6u=&^au-4MvmB-?S0F@vvFZ8vzlpYbR>OareEb3VX~ zG1{{8#IuR|mdJT_S7C7qIW^S9eLRxCf5iSI`;qQLQOpn3kzwxm1NCJr&MgA-J5GUi z&K0b3U^RQxBp+|}4PMJ0<;kYql2%No9v>`4D?bo1v?KJA~@$1&Q za{}LEI%!;)JzetX&Tk7^iOw2RqL<1U{l7^jJWKhQZ-4d9aGVazV@-95=fve?S2=~U z535aN)dAbgtIhBZXtf)cRXMeJV^f>ko7#MWHtkE7Axq?2y{scHr#5F(_KQ)Q;LmZ; z%Vhu8ni<{urTu;x7*vm7_y8~vgT~m;MSI1Lxs`en3zm(*t9DN%|H^-&uPUc@icNi8 z-qhEd=xZYCYhp}aPp9k$l=3Id0 zIoT-2j#1%Jcm3=?M%nYw7|rP}rk9RU$xF4Z^XXgu4?IzVughM8`P8go^i6m?1DM_v z_ldPCc^qW)E7DDT8uO3Jt51LZWi%d3^r=jOUh!Neo7mVsA%p(ceL^me%q8@1C_Qe1 z^r`IRwh2b(yBj&Ae!YkO!v90@+O?~+lDio==UH5dUc8e1)RjSwbDy09ytBf%5ix$! z9(o}(F}^fLt}+)yxEuKv>2+$$XOBa_v0d-^=vg=t&3Eyv`Pax2Y-vd*_T9`Oe;}nk z9>q$)W+fZ$T;`E3{Fb!0A-VDq`lk3YW^a~p@Im^2K4W6L_e4$l7y3~n>GlN26HC{M z{Nv|G{_(P3pH6=H#-ApkF=r>0gHSCFVrh)E7aQ7}`2?RX z^smS#S@xRaq5b(?EoOZuo4w|hLmO$#y))B-Nji@*;?AXO%tpE zuLE6;wFhukv9}aMyp7Px4d<5`;5qJh3LI#xw#T$04|J&YMYPv>vS0m2$PX*g1NE%4 zK#QXI?!aJpWFbC|R*`;{kip*>-uqc#kpE-F-eBU!&p9?cgD>9r((A)BIq=iSSuEy> z#x(MH(KpNUZ%=&9za2VlYq5Zla!+A9)E;##BWZh^Xz)AuGj4mreZzZ8wEdF4)2H|h zhsvnm!omB%h5G-*FCtl0rvDY4|BH2Q&)z`X8_6xjiUDTu|E$rIMrH69n)IZ7=t`3UAaVwj8J_+niWtrNJ1Cl|x~u?Xg;4a{2Wg!4vI zj2`!uVMY#gdyyP%2WA#hLj}gjY~+sBcEh0LrEE+kbQj6kxKHT{FoRFQEdI~Xhnv}> zX~zG0?dd>!$%M3Z!(c&m(m$slJNS}8wV~e;d5P}zPR0q(50g%N5C1<&T1C2@^i9$} z&Ob;mYqou=58MAg=H5L{&Z5fWexAO}^mH2NVP+r>fpn4~2{AwifY%{tEMSL=VnjC(1O>sq@R-nH6%ki-!Fj*G zdY&ig#Nh6`pZAaVkC~_XdFpcN)Twh$ojP?Y`C`fRJ+%hXL4TqR>3VAWm^r|abnl}I z1MkB(@SE?l+cjpeN3bWM^_RZsj1=&deu0l3bWx2Ix{dFZc!17X)cWVi_UqeI&E6+G z;S=7t)ulL#L!DX^fx}=h&Y!iy@Ev2**jaRCD)L-#V zG{;z!bWTiT#+<17Wwz|4%+G4d%=F5Ps44UGUdlYlyHVs-J8Dnu=+2lN{n7gB7mVlo z{2hCBgB1f0ar&3?`h~26AND)4Q$9pJv$Tfx>UfwsQq-aNED;YkvYXMzik+e_)KSOz z*O9EV5}6KSI(2YYx9+x@QwrwjH~9N0@d<5gmJj0RAbF^JRi5OX_EksWYoz^dU~Zh2 zy{#os$T#AP*7_av{ZaVH1d=ao<1AHL)S%X#W{3+$$Dc2MGQu}L*;SE-_cgij1 z9#Yv_Si7|5@Fx*Z)^Ck<5WoBo`>>2%>m=&Xd+AJ()Jv?PnvLxyMH$hDzRA9(GP;XQ z`?#>cwF|Ci}`!nYdPuBZOoJBm@vqM&lXJkpp3dLV`)Q*iW zRG78;81hH4fri-sH9jQl{mK^l8DQL!rElB^skmHmYYq4t#k!C_a;8mv45#u<^(oGK z+nq(l_^~&w*#(f9z!^#1u`RB>NbI`$rkH5WoLvhgNXK2@$B1>q zwu>mQajjz=h+fz9obZSarMvbb*y-i}8L;eP6daBKmx^s^5erxPrj1Q92Q3D39mPoQmXf9VRgbo9-pNBw_Wd9dYxqt?gCW2Mkxi7h9)lH$sR@XMLbSZYq+ zxg@^`$sWmsPhl4ca@V5v%|1vzT}dQXaTZYbKs@JY51_UU@zVr- zf*zuG1_m6(m(O$W{De`uuV;hvKJ9~t(g*QPmEe>Pw+_Z88h^&Qma>9TeGyGR7f0s@ z|3_*+hJLM}PJP$BSHIz}l?LL{=-s_Zw@ftojDb@)QQ1Ut6?wT=WSvVFz||_-iTYMz z9dU)hQ_eYu=N8dxQohQXKlrfL%pKjoY|mKh(rjvGxm#l{n$4~zhUi%?&BkBY&2O=p zJsmUwGhe!AFkeo2hVhh55w!bnO-4t23jM z7}@e`>QY=!C&nF&$c3ua&$^)>KfpYG66`r>|5p6!n}3&`O@06y-cp+rPS<#&vq4*m zBSHK%V*B+Od-4~M)$&)Lz`4}qS+1|s^iwP=%io>+4YM!(#xYv2;`fzuW$nq}Zc#>S z8GJwRJFCkoCY;qO9+1d!2WW0(F@ju`{;&Bb7;eAWr8#tGXkewIy`N^}W}C6;ou$3J zA^feY(-Jvj^W%(SC7oU8TymGI>qFnA@sv#?%jd(d;7#IjCA;9-O3`)D7r+g?{0|>` z>jUzroajLPmmcPq7fk#v6;E^5iW-;CGheKXbX(R#z*Tn?zEtqLCy;02O}rnH9de|B z*|kG*Z#Skk^gGI+<5uFrEBo92na-)HzH*u~mw`O6NiQY#a3&z)A<7C=M z0Gq~d=DBNHVrlNvq<)Rh?8Y@t7#%6XT-RP`4EsFxq1I651!!+>Y5ckPVrS~gvV-~U zgbFV>4;3_4v9i{0`Yqh+cL2QW9FJmizonQlz<^BHID)pMKM?D&R07AEYcugfnVB4L zzQp)~m#PgOWfQV8y}%0o3q|}EcKL{e3hD#vZQ+!>KV=R}$ImnOzUI-rIir+@2adr; z(74*U8eLQSviREJ4=7(${Mib`z+@by??&RcJNF+s;7m;tj}W*;FBiUJ?MSNq%Vnd1 zey&(ioVn>{N4oq3-p_6%ZJ}dwr$7)HNd$dpv7I+^y? z(Fd{lxUsCYzMT?x?KMXb^F0>7)p?h(Va)MUz1{e!+I#q^3f90vcl~BlRZWuQ zQ|O-U@Bqb+i)3#s1_xIbbLiY-*r%Mrd*pj>lIQoiAAKCphxrCS=xrpu4;$(S@LUtL zT5m>=JCyVTe7`Yh9XFA)mx_ORL(uBIk8c-|26w$ndH#36nshYJ1>gjnA9p6{4(iwu zu&Ni6rmpBEJeTwC9p3$rbQgJ{r{3?A{&7I-LaX;-(vJbdGq%-xDd{Zvzd>7%kUkgO z|10SNX>ip01kd&CpGq!1rSFuR1DsEj{-)~SnW4PdQ_po4ZDLi~iC;N(ek)_S)yXja z(fhc^DY4bD?(angbd&=R^%6^`$C(RWgXlY<+$&C`yQ?If+~)4^mFR(iEbs6~uV2PJ zPw46J*y=Lma&v+ByyM0dW7MZJzx1aSpWjN1_yqlYx8t4VetadKOgxQE%soc|f87ZG zH*2;H_%%o;5RE*BAG+F%0g;woVp8Kc&=wo>&~y;V1TFG^?!ijXpfGU z1B2SF%cx!aL!?WNJ{vt{>rHn zzL&3nw{cd7d!n>YEBmeNFp>-LLH>{t;x*7`HJn_5zd3ib7u@<{&q)6w{oJZj@cC7x zX7w)?E821S9K7O8gg@BD7o2_H%;5{QW*cipbgxu7n1h#XzY+WKE39i?VT_Q~h0dbd z83o^nEWdHL_HAGjT!K%qt%vWrdae8JYbOrxC_%S2@QDs=Yb(4GxPa5*ZmKYC)bU<- zq{$~dc6F{al6k4VFH7h?A?~4%;}f6EmvX7T?Mwa+PfeuDzYSPJ%iv{_<8Ma?!f&_o zH)$YzC3E9P&@X<*QPKN1c!pV*X)UZfpRQ&e+;&08dY-@c`Rl&WeLhKE$##uZBV#I` zmU_li`bw5D)BAfELp@V`zZ#tT@9*UO;T|3Q?K8tW+`5Qc8_zd=nL2+?|Myn^AIMu< zf3H`+>e|jXwbe$NyWmY4{h;!9{GESDeYJf$g+8^@5A{WV&v}17e9OFgXHfo3;8wlj zzyCqK@8YM%eA~%)>-XTh{=B-^JM%0Uq{kY1WW1LjHsDwB(1<56X9(=f39muJN4c;p@A+zn=V` z1K;zfFkg@{^WkxZmUCO-OVDj%D}2tIYb#flf~#(W+^sW{PJQqI2{qxevrdoaFOB2X{{IoAcwn;xDZWjA3w``MLfqdIe1PTfetL=!oBmVQA*!9Y>}p{aa{cvG@MNPos;}@cI_$O1eig zYl4-uC;fxFH->1hLR%$#9IDH_c0yh|vhDA!&EHYC-{w=axzKB~xJR4sV?*}aT<*2W z`Q4#B_*XxyOfiUk99@BXmV2SE4DmcTOMXGJ@6j8--+O6W zW%ZjiNM$VJzZ?A^UliL_`%aVdeNGbjbT<9e`626JaDESbAc_8!y`ea>5uAVr;d?gY z7EE+9PHT`giZ?#j*ozn91FslO((BNld(ZJ;x@V7m52@cd!43_9bM&mzTlD*|k?hy- zKAOB^TQFHH-AkFH}>YfU_Ss(I2a4@J(%H`ToDvduP&~%7{;$=amy* zy>I&Pj@mO@(sdPUOY!Gf6YLy&#-yBz-Lf6KPxLUa{WSGF;-x<=SiNyRjJ761Ge%$d z#Q36o1K~Z6#h68`+nxKS(O1e@jXlo$=wu)8C%s2}qf=*fvTGgArc{?@v{#w0to_n> zGap0PEp^x7KHMXlH}rXy#y_fi2j0OR6bIi4{BP^8&X+!q+@!ya!lyq*ZNL~uuM!?C z4#r=f{v~Z=fH(3mk!*JMWE7*xgxLDHySJYb=&!y?%aW0=gjf zK;WY=KIZ7J*r8ZoM8D+WC?p)!%<)lbD zyOyWV!k*^y^d0aU$pLI<(b+li)yqFP8N&LvI$Lv-F`8Hc4+;D*OGgw#HtWXBT}~bLFDvna^9Xa0xy72m zje~bFPw^_zf0+5k+PRF)pjyYF9UEJR9p8dp`67J!MRZH#V&X-|LZ1wbx{-B47k=*Z zD&^tfSNAREjT{r*HPW`udg(l|^aS0X{gBsp=?k36W=ve(BiT0*TD!02yKFGEIMte1 zeHFiY|9JQV^{cP?{T{znUNkct50r1j{;9OSUku;Ye2PK`?BO*Gf51O9$adf+tT8}?Y%X&9OJgSeJn zgmTBX3~Al9N}oz~dGyKx{(a~tCwwqGG~=`KKhKxWrv639`~9rPx9?}&$Grx3^4GmR z4o!#-(Ho-TJKyeh{aF@eM&rlg+7hsFZwsxd#`%nSk|Lpl3dqfCyGt6L|2OieFUH{#=5!;n`!`B z4i)+x)w4?VV6T$Tccj4n0_W;g=W?%3?4CoEH9qxQ5^5K}eQY4YSC_r!-*RI*2SbT9 zj{?i11{U&2hfz!=%{|#v;LFuz)F&H?>?bN)C;tN4Rm|Nj*1Bg`ZR-EYDmzyo_U^M0 ztK(VOIf(b?!7;bQKF!cfuW$J6H-T_12%ZtBGMHb8?J(amXQQy&Jm%>jUIby(>1#YMD?Tb6C9rGzCTWMH* z$Ddet*Eg(kah|rjoi?!%FV6__WamIf=@#i}tsRYS{txBDz!)td|48x+p7uH2&eAE} z&JR4Aq{Bl?)5xm0YxDj%dp3+W?c!5QT2IONA24VBgSGf0A5rdL@&>$etu^Hyq1-0Q z4Sqzq{m2{i%EfBR4N^{LWgha%agJdqBC5C-7}Hr!`N!aDj#&$#Zp)+De3dW)^Tsq&P}AD-QF8{{y1b!%JMuHn9kw*RiqaK&!1U`50d^p zb|STPGwFHMdm!WR2x+ZPp5gf!-f`x&9Eo!VG{N3%vJ<@$n*h4xKiUSmO2>gOn=@Q? zS~i(i9ob~U^F5twQBNtj!F5$miIn3&~pD_11-oq0{sxnoqLo|is1G52 z)4!uByAo{nGtBQdfxI^|z*OJVgh)yJ%P^5cR>8J2U@$y;FLK+-M zz9Lh;*$&QD(ndXHsvj5c1GaciIg-ei&PPAjd&N(fN}k!2n*+=t_|wWlA3ij@zR8|+ z*e7Wt#r@~NWyaFlHI`PhHb`__}RyWM2*J4Zl9Ecyt`a z1}PdtHt(dB>7rr!^Bel3Ij$HiKFz34jC+fnJG6WqA9-B?raw^(!6*1O89_f@an0QE-f z-1ay+Q-qjFC(%ZGnm(m3Bre3M@g9s!Tmy<(De=#2PUdN`#|pZ5BGhu8NI{j=m>2mI>4 zVn#*yJtCDaU5pO0ldlwW#c<+A?6C02+UrB0lrqmMs`MF0~;Zlg(jMj zUu$|N77edVY;Z)IGbRo1STqJ2Zq)jYc=|`Nwjaz_7TGJD&|sGnnA@?foxI}P+Bb;h zyYLOcUIHA7b)mVbv~2G#E^ph3%hz}p!+}$r|4QV}xzroJ@4|w^1>*a@M?ac4XX&(<3I8Yz{ z7|&P!4gMh+>bJX*dfvnzMRMi&|3zK@dDyPH&On~|_2ltuk?!#CULCKZ?@8~)MxZ;) zg0(t??pIyP{+8D7vs31bdHCX7J{bP{aC8ZH5!~W?b;q*54!j>?%aVWBxPNJ|9$W=> zu!YI4CA-(hR$A6kyg!KN44&h8p2c$#&pY@V=3q#PryU4cb@kB(*~S)T7B9K+Cd*pY zhX>N4bF77nmsk&M{MP;Ll#_k!nO@>#?M-H)Ywk_YgjR#h@uq-He@)tr*Cn49A3wd` zcwOn?hxO%dHEH3zKgtktOHs_$NpIMdHA>D7nUQ;<)z@qZ^JKpwpaEZ%KG1| zF{91+%=5l6pQ2WJfp~Azt=Mu^zuJ*Lvdn8k^WYEA_+_;5&vosdlKRe`=|A-MSg*Z> ze5<8_J^OpOm+vaCzrJ2H2UrH7ThVU>h2`du{)S zwqM2{FrazPd^|0UPc1M>zkhEmG>~Q;3@>@XYwLaXX2cJ|N!RA8d{f7f4}S2Rm*)>& z9>1P6-<4l^e&pr(9eG}_;Rk-d{;j4@wd0RbZ71DM^l1Je<>jpMKjURTpXlOPds^K! zbrc0N{k_9$ul#q#X>t4Q^U8JJw|`duqh9^*P=7o1@5w7?O?7e8;nkIAzq__ywR82J znz}A$Oy=j%8*&rNvj^dM`3+9rhs0{G;l(F`2Y(;vBCr0Hd#T@_8@<#&UNF*czprn$ z2@ieFVy`^DF9tsGS$_@Z=k>>Eej3?Nemmb&HnNAf2k5u|P)@XAC(sEzm^tTZ=;TDN zt#ocf3+=Q-@wLR}+iK;|T@x z`G@iHVf+N}NjCMd*1d^+$<^p#{pe$D%sIEat@D zjIVN9XJG!JEuW7cL|YetlOy3LtObnja5!sr;YV}WA*Q6(2;kiCz7oInO=X^7ZNA2P zf0PHCKc?FE`Y5pEl4NXj>-tHeUTN{p8>v6!~UlAXJK^Xb>8=ZMG4R(Y_azkej`-}YeeZ64!+ zeFbgR%9#6nIHB_huukB+a9B&n%O`?E@FrgTWv^Y}zDI1C{7z7AYIZa?kOlWas$V0`b4;T_1{-T2W+Xi4{ESj@Fky|(t$ zTWb5QHZH7bV=8T&tkMj zPNTg8NRQp4e$CgnKk3r#{$Bl4y!z+Ei+tXAL2`rh05-gDS#z6^8$tBrri0)I(wENQ z2`^}UAKCh+biVQzp0zk04?N;+>f@hhy6Z~y`Piw$J2WQJ2{cb<^KL2dh$jAkToBL2 zCa~KW*7h}CQ}1tU>K#M97v=Jmi&_8Fjzft2f<>C?CYZGUIcmh{mQe@s_wms!5C3hrRr?0oS2cTqdCnrt z;lA#E{L&~J7|gSG01YK>W{+uZ<$Ts`@*M~gZw~yux`VWx%?H_+B#zF_&P4W;*2c#a zBlwLd_O~7XVljv90NyclowWj4G)McSo0kH!%H|TC``ZQhVZ4Jz^1+rwF=$(-?H?-i z0B=v2_-ZY7Vg}Dm2U17Xj^sb=DxQ;;!8zV5=F&(etW#VLwWVC zJ<;dTZe`+_b><#l@p61_sRQ3R>q`ZEY@e0gL^w{ecc;FZy~a2(+!!2L~wk1K(Y!J@+L?`)Lz-zX-ZoPT9K8DPHMXaLT?kb6_%KGlF?D z8JMo7-^;;;)ucXidH{!(^_xNW{eU3 z7);=mNq_5sZDI~S!Tw-F7M+8B%b)Q{ z#zQ|Bm?G&|wCihyAhb+-~PV^wJ3M z9Jrj={^)*7S#SIN=uzrG@2zI1yyQ&3T=d(--Cpb1(WiPaBiLXy5jOx?AzdP zcE#A@%+>Ic!wxHI|6BFi@oyBh|CeMQp4IKHE3Tx?P$uj|rm(kd_2BQ>gRQW~nK4@T zP_5n`VE(FKA?nz61hhr_@|6hP-R+3~%h$qAUa9^bt#QxtyO}zC*mO^bvsRtMJ;3Am5p%{$cP_OkG zzjwn$8)JJe_z*6@kJ0mjg&Y3=hZFE2pJ3N_XmLq2TmUEE+kbOu@UWLkkB@wbv#Yl` zkLdSNn@ggJAB^2xIvx7cd*LOT&X-Q%_jGud6HzYR=jRy)zxe zLN5l*xik6vt#^Jq1zh#_Iy#RTgJ-FJ#pIMvLozOXr>8gyc&D*%D;iuI2oz^GQm=+@9_hV&sx;pk62ElhGZIQXW#$?8 z5Ss6Lzmz;l-s`@?;8E^--zUaS=I@2SYEbbDq3H0B?+>>g`q$y= zyVR$(K;wtQts!hRnghz;55Ku|gPV83--kDHuDYr?Ayz71`tAdg$LO%RCq_nyGZLbV zVuC#I`{C+MvM&=WCQ!h3MqYam`lXGA#43ED<@e5cIq15}7dd z_6x=6ly9B%PJBjsEXLik@?BQCrvtsEL+ha+?c5Gr8B`0RCt3V|Nt zFF*%ZqGQctJJM=JPp(dXYPhOci@_W|v-p~h0S6kdnb{4F{0km=2z+ps;&F}3({7)` zg;hn)=E3`J-G2Igzj2aJyY%t>n*Qjln{>2;ux%wQY$r+h6|pSfWt)XJ&ZU%>JSpE~ zt9r2Pz21A>?`Osd+GKw(dKcf#81sJ4zq{?+PCJKChPv2ybz^2-hD}&?jpn`Z>c78f zUwenz*SAPgFt6S2!$#c0?E!3Z%*|KhUhGP>^>g`Z&_48F@FaSQ;qN#ST{wbogme&S z7dl0@KZu?}-F7@*Y1|0?d+@?_bK{ijrLU|B&(ePMdet$A zfBT7d5AR@IT#aY&@6WP!qKq|2yZQA+Yw*GHPi_*OpQAam8G3{!&t~4c<+GIU+z8B~ zs}%8nsV7DqI7Jr^z)qoilSy}ywgLYDq6@c#7P|DAxR z)FpqiO}d<9nRuDrnR~_Y(HS?D^G5jl$md6Ai}h_>8*_{@HZd*^^U49YDL0NX@+BD_ z87z-!<2fBUK^<<{*G*evlCQ&8pK-?W4DcMsGssi(STHc2QPGOxrA<9Vwmax8uCoAc z`Hy+!TfOoJdF4m(3{lU)Ji|N>;aSIXG|zgT8tWju13XvLBRFHj?>c^q7X}%twk_~k z;tFa{?usjz=fpiqGjAwUY6FI4*}ifva_jcjzr%PiZ~lTF{%dp-os$>LZOH%UG*)TG zD#Jb{x_=_AGaZagK3{r+{JQV9jWH&E4>Wjcc{Vt;QpK&H5(WhXVU0@FzSo}GyI%iXt_DDi$*FL<0`wmp!zfoU; zchF^pJI5UDgIbCFTKHd=t$SM%nqzY-&~h}Cke`O}Eo+^f(7JAJ>26?98ODRP`@G66 z;3t>|ci?DtTIU?VQ}WDm7&{HH{&IG@?^%sqnE5d~@BS8_YOuP>TBBGw?eFV6zj$1q zGmHLX|L;}Z$ez|fHeWJxjql>CejXG5J<;c+VzxO$K|LkAUvT6r*zT&TH*(8>6Ug0G z4E8^OA2#@=4*FMlj~GjvqKdDVuHdJ^I)B%<-|+2m@7poxMgBL|9Xs&nac0H)oN=_N zvC|lSUwNTP+sc-a0Y^`wZOKT|#P%l!5NUXP(`@Zy(cX~tGV8;9Q!?JyGL^fvcri{-)L26p!JPj6s0+;Cg+K=P`Vj4NH9RDAF4L znT-E=I=jqwa1pfn%|3CEv50!0vKyQh&c8+BfzfRKZv2}n0r=8r@~yl( zWM%o&Gj>nNn#$ig{s#HWe$)MXk97P#&N%a@_Figxy>TWn^q)G(ja$tbEO~7oj^x^oYM}i95Pl-xf^(1OKA$wY^>v9KZ*?xG=max}`k2 zi^)erCidAQJ%WQFcz&F~$F& z9%!HxOmj8}I5vCrKd1T`qbU4x(~&A??&&gZZ{nNU(;T3UFfrJ|$op2XTMaj^*{1c( z56QE)etyr?Kd&-KexG(XjdAg%eG$!Z-6crAR>9s44Rmo1g!x__Osp<;;uCrgf1^im z4h#72HuBAdAN{0tfP8+v!iDJQ-3GUQ`If2fe^#$}i|YLbu=sdUz1`HS`Kh`y*pRI} zF|GAXFh-hdyw~?vytb}ZTOR&RAHctGKNw$wT%BWZpRH*_xW9z&!s$gdxVgr|jcnis zH_#sWT9K*Mpnc1>KJU9|>GQk~rF&f30(XL6e!6GZz z8TjOC=qjSCq5_`IhSP4GYh}kr}4*TCS|+EbQWh>)X!NB)vY^xW0V&igh*p6X1<6& zF4X+lNf(06N*Cd+UqeUMcik^&ZA4aAU^FIv4KiDNu&R6(X}*)*eJz&W;;zM_*86zm zxUn>)CnTjOFjhwP=U5x`=S%a!!;8|fQ|a=%DhQ}f_sX;}-_eo7 z=gw~K$kx50Ed=fQml<-sj? zpSn8Qit)aFK2NfK=lgF#w~0Y?H)Nf70{f~)NB3cm(FYUnzaU(nZO%E+4|I>~O+LXe znKq2>kwy35Z)w4W^K-O=-M=!CcdRA3|3~@wr>Dt}t;_(fO9A1&IcQ7v1Q3cs;yP&02tUZZaLw?=YB7afY9)e>!wy9p_(O!Z2E}0-%#JnGh zDj#)^%Jh{pjH^xk8GQMaKjPJ=e3}m{BR1>*e}TWw>a4wU&&-J&bE2R1KCp|ICbzhA zLVB~gON#lRJq6vh!(Lj6xm2=K;1-x9yW}&H$)QUV<5>Gqk{`0COU@`pvurnp#=z%; z!15jkIVL{zkALZnA*-Fgy?y(rck9T1zxVemp8AVD=>ARTslR3XJ;L8R{3Vi#{kT9j zhT~QOUxZjQajU8FDCurslh1CO*`smyRwL}&%g%o-^b`U=b>OEy0iKfJq0r~Ns`UZ5 zU@lkvy074jjK)uSdpNVHx#E9AeoPt#47&R?7U#Zdudb8vo4S#F{%>@@@_+r%jm1^_ z?wBEWzH|Vu&Qq!{qmt{6;e5q0;l$I&0_SdZ9OmV}YLEPb<6fWAlg>|hG|@E$S-4x7 zQC^v)dz3M4jOjY|f|~rY4SdHt@3&-+{5^BJlB`9J8fmSY#$A5X7S@y#Ew}!g+n3MO zlw%%G(l@OYN2S&|7aTgg12{{MTHPhhUmq7{E_mfntSNs&P5G~(e}fxz$S$)Ut}XlD zkGXA2_SNE1Fi)(3`7qjKkIVQX)G?kq6aM>4-Tic{f7km%k5+w)D>@?%??KK&CzO+% zKZI{B)T6sd6ce5G3H@7Z)`25ayc-n1(K>MLcG*1?pL+!5e0q}{mH*CumbF83RP?6$ zPlwlO{lt3Hm3b-2JN)FfFn>S0>y9(U`}{fa*-poXB-yrvdAuqm`}4BODB71jNp*r# zCznAMr~Ar@$j#eFLGzmTb~bOzz9U&L|9Gtvi0h#JaHCIz6TkypZ(^@k`w`NshzBFO z_rJZ)x8=O^zb~6M;5_jy;zr}EFfa<-Wq|=6r1ghucR!~zqMvuXKN{UX&R$fUbGm_e z#Emn{9&%s|=dqYa-~}HoV(G$@?Sjrc--*mfOP^@<@3U{F{Bc$Q9xGc>m*yn8gjMaD zvSw%8V8us0g?EBcYtExcM>s3YqL+KwUSnN5uTrQVXek`X--Lk{jq_31jF6qtN9qTh z`wtv&1}6+Sb@jHvLq9l{EwT>$gpl}<#nV3C;m(b_p_!A(HzF&3N4zxX=z01oemR?`>}3Zd z-x9>D2yA)|JSe7R>%A&o8h> z)gAVVGvC7a%5F6xV(zV9zmc)o^Zhr`fmFBXZ*|t~1AIB!$eLI%A(W6uzlLABb=lMf z4VW@MZshxQjdy1$ewMA5(*LmVl639&s{ixCKXBV=*Ul_jQJyyKSD}YyDEB$aDX+2l z^X*{1oy|Ml`!Id%T6B1={kGHt&i=a0B^ z*Z(Fu)3^U*FKZm|TONF8YWzL;1e;(K9(?$GIDGh~f>-ogqX!!QGU`-Y)?V6rk+!5i z)H81AU(u<+Dw@-IIltfPtItElJJaY@T3fRIt@Iao5_7;}-&u1%k)a70l-=2Iu|E>AcI= zze|0J@!XcxIGr>X-r_D0~DzBR)}*m?3fctFvSK0}uSD+JOz= zq$chLd?DY(i_SN^=yoSCM!aZl=?fnG;x&?+{u~z{Zf9NaZTcyGFopRxpFSv$ zc%bPs^L^&m-M(_ZsKv_US}ykL^XK$LV5Uto&qd!2l+_&SeuHxPbongohv+6d=@)rv z>^h<;wK3A`vrl);-fzGDIKPFvcGfJ)Kj}(*Vt`p`pEm2se zYWSf6Zh*E2t2udm3T&g|4(M=@yvY5Yckvl*Hi30$rocjxwq*FXEG z_|5}EDDKJ#>2VuA#6JX>lI$NUma*EHZt#F@7@J2Z$(~X!|3WaEe_>R1&9ftOYo67f zsdTh>TKihMYjO4V=KLDkbN9B)9ZKAxvz7f#*0CjcpBal&E&)&d=`#DWoO`;4^V-XGkB_IIAxg(-+Mf*-7;79`^QR zivcdhlnL7G%du8;Z7-6cq=kzhc@50mH~kKG726s8{&ZO~B#@=P6n-Q9to7L=IpKEd z@;iTT%TF@2C*B^Uvs~=`u5i__j^w%R&oXIqDuyg z!kc1_S&2Xq8to0y7wKo3vy$-*$Wm}tRXVM6Zwc(g$$N|1H_O>$-qLu7puc#+^=FrU zsJ_G)1Fbm%^uzRrK8VkWSMP@n$iyNiX0~O$bKQRp*XR88yzbOm)W5-*Pg#7s%{pG= zs(vLXyJQgk?4@0Mb(-V4Z%*srF#X$)a{^W_&AJ}H<0%99rF0cfZ`7{b;z4bLv<(bC zo$Ta6z^l61e>OUj=7nP2`uAByJlTMcW$Q@%cZTA>#NS{odu?;j>()49d9V9Fti*bE zebrCf8TN13b9!pvf#Q#^g9edp*p4=1gJB)DsKgqvS9>)vi!#{VL)>LBhJKy;qKg;t zLh?klcd4~nkiD{f3hr8=7S?%QOm&3vkQ;{(x?(JVoqI7BmgKAF^HtIO@3>1!fiaG1=!Lx4*pXlE{dCTtWOWBDuKXlJfFv~cn-SG>guo<())7Y_2KsIeb zKkRc7#IsWSq9cuo=s_|$27co_BZWR^zVCmLad|C!UQzk5)>AH&aLZ~Qi-tBL%k<9B zO>Wn>6n!xEtt?}ngXYLzZ^0V`zv9S$1k8*7k1$X8e*yCn+SnV+P5%STe?cY%)AW^b z31oSuTwFi?f;V@-gPo+0;7j8eiT9Q7*LsCLZPv-yyIfs3$Xn@F%czDE;4(9G(%8n?%m%n>*3tbmn!ViH(a7@i?aQ@`csy`N*!?Fb%K9^<;`uobC zq8`Oyv=djBp|PVI;$23MWv$R9o@in7B_dZA7-Cn<82|A2fz1!;K9$-@L*&)eyZRnxl2xpUmQihg=6s~=~V9`Lp)mFDBVYX zu=x_Ckj)m`faM* z_3~NB?uEvYt-JAkH-bg<%1mEbwq)?vT4!IW_=>&a3mI!H zGHA_qUvE>pz8tpCKn|styVRv|k*=228aka*dC0pDIt%{ z`bhndKG8-W>Ql@G=)%}KS?ggBLC(+PZVan+G_=hcs5g~5uPj&#qg`HhCc1+5vNcCS z)N>KGdhso#FD0$|+7+|>el`RK0oV6Tk?nL=Nt&%<98SH zo%vEn-%2x9>QC!!^gHg}-J{<=?0?3Wu}yX7I@n7W519pwiV@XQ48gCXmSPX)9Oh^_ zgg>>`SL~e+Sqb!an>@tlvl8c(N6W4iU|i@=dThQiIhMQKrcgG~<*vc0d(PFnbS>dc zaQu??^%PHfcpNY$fgz=Dz(oJ+z^iZ~eGOa~eOh|f2R-m{c%t}__Hv{<bLt z-U&?Ed}R#vp@Wr0li>uqWSqGL{nt?*IaU@wJ!>>HL^<(9)%zcm7atZ~uuh9=40PAr zJ7ZlO=+3xP-V|Ie&5_60y;W9uPeCu+_02s?QlhNpgW5In4Icej)-Ye-Z|52Vx))EX zPjDXqv}j~?N;opUZtIufoAw&_dx}3xh6qp6Kh>Wdm$`VrUI{-x3tc9^mGWC7+3TMw zShqfhUo&ehefz5ElVF`leLtZ-AMVw{8#t@WrC#rLp<8dxnp$!Fvn}gO0a3Hdc3i+N3AITs$%+8 zvMHmn@@)vp`>UmvRdNMrRK?g?7PbJ^D#tWink6ZGNx?^;%WI2IoW zKT#PTAsMWD_weQ2-n+cPiX?L8oI$K`UeWM%`U%Z%*1WMezqA7z5HV2Rw5(06{ky1_ zSjF6t=+_-fun!3?6c^{U1n|NaDZf#;m5=ailsEU)T3z@`b(`{PyV3KT6>p^tQ*JQH zX?xaugUM$QAw@myk>vd&x|Z^3P7;UGj48akiTT)SL6`r^w|e{XiiLb+&ac-Qsea}G ze#oUTw8#3jYIFCE-fR3$^ym>AWDuY1u=Xdc>;~t+uc#m0W}h^eJhv!640PK`>dOOa zSNlP<6|uN`h`lA%@6WGhtEW7H`2KERxfg{sO?|e<(p~h;nV*D3FYlu_PQDPFCv$F0 zxWf6gv7{m%gzh1J<>EcX+_5^~O;2pULHH-uLO8V*+;Oi+f&J#}R;Mn*yHKtaBK}N} z@AZ7IkK{^q#Gnbscu(vv?kFkaKfu0Fr@^~?j%(XiOjfn)kN045Q|U6=+Zj)c@-f;N zv^G(fTZhIzDR|R!%NmccmAA1)fCh7?R8;+sfoID)zZhm8g}M#?lJsSfp(W-ZIQ$K9 z&6PKthAz@BT~N<<>2Rig>bAizd)-5E=vguYed4%ge5AD>F8?a-?LH;Jyr<2# z0*OyL(G$>J5%DHRXBR{9AhM{(;7j=* zWR6U!p;hS&CwcTL8ihXa-IAWWf8`$Ga!hBFmFR8}UPAcaZ5|#TF^zi6+L?OhBWv0V zvRf^wES1iqer70_g}&4I;7QP8ka|d0((q4Tzh3`k`h)BZC-RMHYeUNv+WjJQtvfO= zU{6B+Bl0=G6jlA;IeZO%>i)gwr9<9t|9xza-~Rh%@BJvAZ8do&lZLNrzleKlWgAo5 z=;S;@Jke*E=hA6quXg=v?dk9kekb@Hwwgo>QOzZtu~RwL5hdvajCtvK){**lAm18) z5iU3GyM!{XjdM9>mAvSo7*kKOmy-`1$#tkK|8x+iwe`*MZbtp$zveT)rb_yD&zvAl&#^z@lGi1j;nSALq@ILYK0Y~YPxxR7| zICX!X_UG;VOK)b7%}3DpHl7+Ii*ra{gZ{^nR(~ciMoahxjkQLpe;@k&>n^wcBYEf7 zhx{=0?Nd_^aruPLKs2A%`lWgu-&j|yx4BPI;|~2)B%>R*LNo9;D=*r!)-&IYUb&2z zQQxKCX3su_Z>iV*S9{#{iE9}}52^~L{h=M%te8{LYq88n6?xH~R6oa+1uHTI+jNj^ zvw4+6X(Q>j-D)ScfVYz=M@#^>t)5_izJoQE!5egM;)Wed{&0VOwcX#-rM|GvWu3RM z@@dmQcTYRTzKwjtuH!p+UoX0ou6yN+7QR@}UB5YV+Z#A8Rh|g{$FHlR{Wrmny{xy7 zK8Q|i%2{t%tO>IQ-)cvDh;KrtqG#>B1fePBQ&sa1JUmL>cY}-XjX;kB&jtp@di@CU z`*6&ufkU=Ozirv`L-5ys*ZE}Xy99bizk+8Ha~WC_y~_?MnHeE&Tr9rQiTAH`j9)VP z<=3?@oLp(>Ub05;0%zm2_y981#0EC+pt0yg=7ak1IyMj0f0#EX5}Fg-ajrRW5c6RU ze>>*}JjgoyfgRU?L&HB;$%S|)$yc%rn3>`ZzKIUd1i7~-WI-1;&+m7;HGy1 zX`3>i;Qhx*pUnHid47O@!Kc`ZKby41Z3fQ=f#Z`rnLpeQxTrGB?<0A_Z=*?`ik0;a z^_)QZMz8+qq;c$PokLwGlE&Y`$f7rS_jBH5c&9x}#;o`Aq`%Ae)ufk@evLfWP~SDA zS3y_HdA`iMZ&S|aI}4JY3?eI4R6D* zZ2J>lUfPOs)~0GFd_Faoaq0_etW-vJCyn1t(oMbJtCS}HB+X;mK8*Pp@V*&aA-qF# zpT4!a@TN=56QjSh;m7j>+MC38_)x2O!jaSyuyTPoeC8@+o16!4n#VZ~_gxe`<*X+0 z43mfZj-r}p(mTHTg0-V|j>FG-1ut<`S(jxiuWFy(>&wf$Q(NfFdxaOe*a}VJYK=OX69=wnLy{xSAO*y%h*Yvp&`k+E2p`x7q-(r_xJQ@3|z#HS;NRIVcsub*wSJ-P#`flcmI&h$WKLgk7U)RMh^zcojGy2aY@D(6%s1H5mhzHlO6dW-!( z^)tjh?EfjeF&-L+c!sqyWAb~AFY~XKrmmqskJ5(bWLf?7zbCrNexHG}vFxoQnPWarxrF|IeJ^cXNE@6-;hy!mM%VhNK3_$?i|F&E)G<9S zIObGtr`#CI0lUGK;9N&qcWE9D{k~6J(*C`)c|LW?PA&LXdS#Ukzz3!81wFh6!8_+H z-1!dPucX|UfMGUuYTR~?3A|t#-YW&3;U;Pw$q>H2bRFC2vG_d(-o{Yi96L}t=?0Sl^ z-Fy;h)-xMV<|%o-FZqwB9Qc%Ow>e2Yb^K<`dWGX_Nt3@-YXbFUw$~TF<5Mdei{`y) z*TgX}YZm4z_LWLI_bjBcUC6q12CompdnUtc6O5Va`lP8#x^@vC6?A9T|H56IasFMC zdwz_#BdzQoR!1^M2lJ;fx)#`t?J|Wd$l}iee6rO|0FJ{+H71u73d?IZ(@zmDjPI+gTT;Gb}LzR}Lsvt~nvLpzg^GYN2@{{Iy^mYfnye6Lb3W@gyZ?d`~Eg(Aa0=D2H`RO(wm$!L_eIvTAKADYt7^6w_<7vCt44om$#lu z{&RSzZ=d5C>SwPklehJI3BU2bH*@!n>sZyDp>S>D_=dBDv~@+A9ZGllm1DVsqT@zUZ?3D4*JThO&+#s_)$QwDnM?FYL87 zT6oKBaJFeqSbgOIjW@8FHFrK=x`W@`9V;3w*(v@gtF^EAy4J|igy`sI=U+K5r>EKo z@$MdeYu)=bcqZpw@LP24LGgaIJ_t~34Ur+MBnACF{? zE~GEez~*z9gP$P{EStYhT5H#9cz%gK!dE$qF;D!JIqS}E@yrb0zQH%mdFn7_#rGJu z=m|W<=clXxq@_2C@4-8v@p+1kirvYzJAZ=bFmvH6&`aYX_#P!Xiq@2q9q77hb5DKa z5xh%w@@^h?hs~?x{P)Vsoho`S7_RZ(*W}Oe9=>gCzp{_S@aIe9U0yLczRr2x^YLds zM!|)FbtzBrE0tyLLQfxqTodFA@QwT4g780+4v=PIS3~I@%^lV@`N}2u z6G%?9^MomF%<((}IddIP^o>`q#cr;BSkb{}c*kTma$|wcw(y>@=neDjbEKhf@F<&< z#$s;eSo#)$XI@J=^1!p#Ii~|RV*t-~<;eI%F&HB){;2pVgWfqU`7gk$v8yetT*Ewx zWK_>rjIJA}&ePrYTAN8rA6}j*HjU5d2=yXk=X7~B=f30c=w!YFUfCg?M0+~o*Pr&z zD@QYm7s0(x8P*1@KNNpU{_j?LMa$#_yc^v@u=RRy)v>OE{+k-#aOrqO>3(O_Cf$S0y>v$ZSz^|unoo7$Z`vUDndUb*DZYJ9ds>&{he3bN zrtZ)fVtDnxxb1XoeHur`wD$zk$CEyVr|AAXaPb&v#w+>+PxS0oZMx3i)qJP^W(F11;;4Q(az#buwaLW1ijk;$dl+*pxiz-#dVzS?dBz?%By8x$j z`#L`c{!(J#bMNSg+I-|u-hf3u?kBCIe?iv5;pB^s#XY4q`RkVv9||0yD^;cQK@WCn z|ADY@-Of73ok#iA$^8dz2EXgY7vMilZRFvPvs$d#SsTa2TR9uIi8xyI;EX=Wj{`mq zpU*?5o8ZrP_c)AARAb57VCPtlC#|uZ3BJU;G?wBY8cVGq4&|Njptg_?_Bd0P_|Wpf zMi+-~4)Lw@L*~e6_Q;e*hLwJUjGAf@=Zy4>{c`0UQ{CV7+?_IpKfN2r8A5$GayOB$ zTzH6E{&?z&Q5SSpRedM&J5p2kv($Zz_w7l(*)`vu^xCa$r-613^YWice$hgfr|N!} zJvBY0pZ~#2OAfwG8eOG&*vmK+ng}zOU2!`|r#Tba0mkGM24^&+LO>tK>K5kovK6NG{K7 z68})2vefz4_uV^t;^}qHyJo*+_x*OAU*2uM9UdVVRbDps$JvjNKJM4q=*e4tNA+EH zsap>wPue}#uf7QXf?wy`8DpbwsedmM6VHZci%)C+v7Iy9I+H!EKwO(-zBHCP<@cht zQhG;vQR6_1c&=;@bBL{{vA3;!P%s{fJuSj}#;IdvYITon`jTJrS7L5gbJP(i+_~*U z>X~CLX*x7L8+oj_lnW{vJJKfq2f#Ls{16x8m@d8J`DS{sM1N5CLg_c`(FFJ=*sMan zvN9|G?tJM`%3Z{r*7!tJh(Cf}IafMID?GKD!%sYxzGa*CuYs{CkaASN@}JG#;q^t}ZVhD=ziOe8lParvB9xck zmHN>PO=?e+*nva9TusnN;pUxFpV+>PaR84M?Nwd^t^I(%*ZB(|Xal(h>yO%($smWa zj2$op(u{KsUvJ4@{2Jb&zW%p3ox8{1$hV29z@OFujAtcJzGu)|Z182?vHrhsKWHV9 zF2iSr>g_8k1-^ri&5A?X3`}d{iDD?>`j|-XQ|wFmq+w%b+?y&l^Dc(n*T3I=HNSCC z5GXRQs*0ByAU13mJE6`dH$!vMZ{9>6Eu%h9ei~n)0(qAgR3CfNlwC&s!TcICZi*+Y zIUM4wk7QINu_i1U23F{9u6&oGTk^!%9#QkONhZE3~WCHx5o%|ujB|v=6P_h6YCoLTjy8vsL zV2Cq*^_O>*LfHa(sbbG)O!Gn7hu54{LH`UwGfkos)vNly=dG6)LMzKOHq47P$#KOP zdI;lNiD64oS}{n~R)E;9cD6GZ%RcR#K^v+o2p!7DLv(-FbAj=iw+CUc00T+%k_{UXNU9>}UU2xSYUu zJ&$GWbEI{Jky}^8r^sXc70(3!C-9AaMd{P#&yt3wO{@Zy5$#aU)ImK}Xh?IvTE|l~ zALglk9#22Dj#Is{1U3+F{XyTq4LF*ZmV{`Fgf5X`}MGiGb6fDTp}|MuAIQRGVTOtO{KE`PRz}B(beex ztBT8=Jc?NQlI@8m<_EssiJ+1HvD^yjF+1}Z`CpSKgT56{uVC%8!qhuca|auwbex3Q zGeK_zCliz1W!ZC2SPD(z3-^j>Ih(J@4n7SW>TKqpL?hrVKwpHv6K)`HI$aiRpp#YV z6VNbt6dkM2R+>FGY(RIRbEyB+XWn0Tko48Fn4{jkKhW$4jF~yhN4<8MHd1Eor81(2 zYW>)C+urbW7ifTaR;-wQFi#`Y<>MG1ts!W@dX&eZ%-r~;YB^BtuCBnLFroFlaS~Yf&*>|sYBE->(UyA0zON@8G zg1$YTwEDl?y>9Vra0e`BQQsP3V#9ljW^bSgJOzbogQEhnwCMUdhj@MJ_Xxh`i;T;PY^LEW0W83O?4#c*_7?-TLWdB-cwK-2} z^hl#yCh_T*%bAQ>_*XEl#@F}eHrJoyz^}`nV}kMLXg^mzgWZmmewq7`7gSDXj}zI1 z?}mFf^a!4tjPJ&R%2SL72<(-<#Xd}Q40Y>{>o(HhzIPwe-yxmg$w71ygQuq2=d|EQT+mG7-)1x^3*lwCQt4B7;+*M zuzG(-9ZAMdcN)ldg8igJ>$#UZ2s|m?OP*NVS69rkcY+;CI<#z#3C64aTzvE|aK|dg zSgHR9d%+*rb9sMk@{~2S%Wt#K-g}mOtvEkWCx5p6yGp-DUX7)` z;&{%nf=|)acmM4AQ~7xR4te0iJI4WD7{#t=>=D8tvNal{KIo^{j-SDtCC)eXy$xTJ zJ)OQ9d%EUXG{IW>ISc<;e86ZAymyelW9j&T9(?0_GpiLp5PycRx#NjnOBDH4m0y+i z80GU sX;#=CuWAASz(xySK|fVR|b+W`a4H-KMxetE#~j%(yIpnDd;mwe@*m2mqM z*LS9UN}qEyF#7$JzlQROo(`{hf1ch`hkRn_V=L`y4B;$hs?2~IKi#uk{CTRye&${7`f@IruUr7$+B=9} z2mT+wk2#jjSI+)XUwQF=^p%%_+xqm=+jNeoKK=4G`IJB(o5S1}a3X6F)|=4_$Wy2N zPGpMi!~&kkB;+8BgUC3gpo38#3%o^SG%5-*IG(EF zNYg=yH^do+e!joG&+b&WL7n&V`MiJBr>f4`m$lbk_r3Ps?LW|`2i#ZqVOwx#k==Rd zNN3tBpXL`GwEY-m;h!m*Kxmt}F95IdDSrlym!S_2dU!eiiNmtSwJup^e#$XDxU%!1 zdq-PKY3KRpjJ0ZWSl4B&U;UQs$dciI!6yB18Sl`Y?X+x6+EZp+y6WMJGii&7~l7! z%Xq$mv0#@a%d^NYLw~||xr=!ImX7D-4yVNb@8tPOJZBAn+?~}e>O@Ikcl{Rf!q;i? zS2m*;cAUunzvjQ>5w_lrcf|jpStFC=Ytrr>!71LkjB`!|@21~Q?!TPzN_IT|h%swh zf-ho@@HOL!=Y=|(mmazMTDA9b^KMOxIf)EB_!Wh`@>)+*ykUoO4xmG1J7s`70iHVA zS)D#|_bBb`z^9;(8STXRNNUHm{Vv*j9dQ=);9vs#pgiBUIYl4-NRnrnsX2&YX1qIg zvR0_^p3XS!n4Y^o$@^G_3a?G=v6GFnk6a~3CoUIBGSsZ~GAE0V-5s6sTT5@~p*`;1 zFntg6?)C9IExNS%(oXsxNzf){hUKpB1l1 zz*9M`Uq~0FkOK^2a8AYgZ%gxIttG5M;p1WJk42~cn`CCG^-jvHnNd<2=hE z@RrPdo6zU;k+sUZ>p}+;>%vylnPtrDngsW&`NX7FA34&@`i*E_Q0300pEl*&T?qew z?#PBorhchS#$C_5}K@TvIz@A2`{&<^rd>%mc~4h-Ps%=ZY+Qp;nF8M_}{%)FLm*DJRd z{y;XSt9;i^ZoQJTgcteRufJtnbGJwMu4uf(3(@}0xLdd}WBfA4eH!Cdj(`_zh|-k}?Guf-Tcoup6D{y6Kt_rSe;N7p9F+b1Zra4^M6@8SkD<4I&Q}mUn2hEoXfBE&T z)trTC+ESbaeKM0a{-Cv&m^QR_mxi7)#8^FO?hCa>bAiu%7p$CvpC`E7p7Rkt-cASe zM!8RIBpvjD2iDm_VuIK{+NYW&Uc`Mk@mj)1iRT810dGx4G$&X@mzo37T@UzCtj5q9 z0l zUU*GQu^`D#&e||}L*mu1f-luihr1r_l)XI-Vz9t}2WP-vrdW5QuhrLB9qKL{<#v8H zzq6SH2hg^eucKnROaL?UoC1lhK;CulgUG})+R#!;b%hhnzsB=HVzfP+RjTtMiG$|~+-oL#zu;dN9q}5O^F2Vg+qWP@< z!;J5bq_Y0kG8$JByw9wU?0j7C{+=AOjQB4egUZeB;7!LPE~m3bta%xWgia@FUWE5g z#^Z3ZU=VmbU+ecH_=2JFp|G=B(qGlYk&mY%1@>@oAM!%OI8P&Mdo`He;!E`pAU{6&no)cBZPz#!G znt^Y{Xf=289eVtrc{4b95&g*Sm^zoPptjeHchA7@l9-;J7sE@eb&qsDHbE+p=k8nD zfR~`5>GsRacHS4a^WT4e=y|&0x#o%U?JCF!<$M>Q`<$WU{!!Vpl1q|v(zjljJCKeb zrp_3_rQtb^xl;Vf_+7+DoSn}d0j*WwEM2(T$PK?t?hW$HC;<}=@OZ*q`?ghMiK?I(2Y3f`pT$QL_4w~cO zc~$-e(WcgB?AudXOTzils*wM)uR*q~Xbu#wXFWZ*c?EqGz20bLr8inq?bRO3+jH2c zF9H@~i_Ofe6T`&5pg9LV>DJmH?I(GDMXfiwEa=6KMGtn(d)(_vux*a>ABf*&u@Q9E zzSiG2%o+)0Q=0woHE1!=oSokEx^5oVx&BuKr?kAT9pg*Nz0vYgFX#3H7rddhapKDp z2eKJ&s3+rno$qYN_g;Sgmd_GCEBRFU?Bp|^%Xt0ajquJ9iaQgUCRS2Iz6Dm#2~Rs& zpMCc~Ozz(**h_YAlKc$$3fThZ0r9*)uQq1MKONMa3*<56Xve^>I=?>d!KT{M*=?P5 z!QX_QyJyb}iBDj!U#92m_trjEkMBd3xoAdR_2KHT;+^S}`hTvSzmMC|*-i_X`#X1A znt3~8(SOMc*Df(Q1FxQ|{B3brd_9x*!k%rOZyjIA`f2SK)k>@4Dqq#on z4?K2d}=hu{UTOl)Zv+u-7Nb*Rl6H%DZx^b5&gS1C;G$4!wY} z)v3?B?zp`t2L+?eyX)oIe*Q!6#;0_2Y|by>p1r%*Cd@kCvV!i|IHRrHIl(Xf_!P9M z^^%>8&DmM~=o{q*-N3kg?0(^Pz_;@@r^Hj1PqzbgBc&YAA=`M3NO;tHhE82^zV{;dk#^z#s4|a!JA6t~i)@5vq zk@uMbHbet?6^=zOdk5{ZHr>a3<2SReW6#C$SRXe$08H=Zyu~toq^s*9$(6&zN&n*WLiE%J9|O8G4r?p@*Dp3ND~s_D-9>sb3;m(iNL>?7g@vwE=|(}i`B z?yJ^a)e9LbXISZ6l|2hQwNL(-~6@sR{?s##mI%j*+>g z`Pj+XWk!WsqPx)_+)f9`z_)-AVtpy zZEdd+w0{xLx9dZEx%cfl|Ae!{l@C;s{Q92!JIaedl0{-@($!GPqur@)OmNJAIfJ+g{{!o7HDj%p)v7OmmjuMrPa+Ou!zQ!MJwA< zw5Ky&D$0k5&tEonZr;jS!LPkHI)C}6BlJnEG$XjE=WN{ZzvekI9zAhLJJfTsdH)fgUruc`u1<@zvDz0JT=P5f!wzZk=Fbqo)4HO)u+nC1#z=qe#6z`f?f z;oHUXuSO5o_{bMf>|Hu90q#W$iU%P_%zaLWLvP^C(DOKY?Yo<7uJE+87olCs?@*r7 zH+hd-A*Kc&!Xwg)4?+W?DQI2mum&ETGb-G_f6U^PF-+MUBl2Aez|R=8CWWk~EO&1K zmpgMY!Rd(f4R{(7o+^~9T3i*&hsM<^;w5Xq1^NlT)j5oI--0`TaT)JF%KJCPxN>JN zZi;brB=}(ciTD|3FV;AFv9|7B_;W9L2W{ah!TnxtY-!qBMO)71bv*kG)(5;Yx(#}D z&ouVFdwEVi5OQiycRU}u1B83#TDe2a#}OU#f!#8(9s1i|fzF9}%HBct&FU_5cPTiR zudj0##V?v8VofcbS0#O$u8u|D?3q4S-L!4@A0M16owNAy8FST7o4=7ATCnoa&D9Wd zbpScy=Bo2tMdzbR)-6IOxHIMx0kWokP_~KYiZ!dg(%B)qG zyRZix{YuW=qURklu`$DEU)r$eNy(N{I~iaXUh-#8$HBf?9Wt?FEyTc&U97mou{#7{I8JhZ@4Jd@d0(} zK@(w(OuMw5t^6pXwbp;SnAj@0M(hDkCdg&*u>});ck7-j?`e)4w+4TBeaoxCPlfv; zt$&Et{x@rX($C+eEyeN`Z!gnRB=Ggj~wNUP3-L|K3A0( z2K)rgV{nk0wxLB{KQXc^+UaoCD6zk68=B7VgGR=kC)z1Kw59 zaaHTX$R^A9(7)QO!uNYEe4j+_eij(}u^k7>&<}FA(=HajNPlLj=XgkR<6V1L|5AI{ z_q5&IMjP@ukmH;oz}cPLA>vgoXb3NoPmD!5eG@%}5%wUR(cXfN_JD2q7Hj_`JMP2Y zld|UqVBeAZX8nczW{IFB-_QUaRk8ps8P? zKUDr!WE-^F4DvQ#L^9{Xif!*O(HC=vU2%}UDC=NXTMl-!9!}l&0(*uzbI(;~f}BDx z0PebtwdZ(dVgUF%KbQ1*kD-xj^UN*~CP40(we_WGpD58w~lSn4Cd+xJ3ZsqtsQ{EWBE zXV(;;yZJ2Vzn=9Sk@244e?Py~uFgMRLA%O((0L?U_ZPkBj9q**zOQJ11A5Xrie%Oh zFb)Hw$nE@cTOY zbI;dyJYUW8Y$47&4#;CCwxV^eBJ_5f$xYi9_0axD$eq$0C{CDz$KdTb!lmNBPcc7d(-~1j`rW#(LOPfR1fX$^G9y;s|(?&Rz)*!pg6wFdm5 zw@vOpO?V1`zaF$t)^BeuvYY$}`n&hFnlJJ(iBIu9#Xj8}7tZfbel~3P782pA&%&<( zzsViT`CfSJR6O@|Q!{XPC zUAT~JDS2a$fAc)W^w|G9f$Rld=mc26FTZ>0;dJ~`&%`Zf;8OPiy#-uKS3{Gxcv{cK zj+QSXSo@%15hwElWJG;eq&xrmytg->de-jCp#Fq#a^XIF0p!wd z<@Gd8aXUMldBj|_sA%k-nzOo1GE?$+K)H-F3XKp?D;=5zM zsM2qZa}l5w<;11EIm+K*EqhzEe!jgIef?=$A9MDM?K?9nIdciJiS^X+B;#R@X2BP! zM1y@i^e5eE_>i$(cVXODiN4A~^BuIWSSmV(yaetm@$;kV4|`@L?R%r@cRly$rt>2a zxqIg9bG0eGCH*B@aOX3e3Xa^^SNN>+#^d+E<4XRs_Rvc6TXb+C|CcjH?m27?tqzi8v z>AVLUzX_h29%F$P%z3Pi<_!*k>$v~2{m}LvGnYK`8_M@Ps6SoV;gY?#PX6u%$fZu4 z4a~Lw-MsYkU$HbV<{^h$)j4cN*`D~n8-IrXs@JKL3;QhXD~BsvtVN5C+s1i(SU?pNBJ$)$$Iz(XD$_GPOb_4u-;_Wy1jPw-!3)f{5ix7e2oosB(Sz!uXy z&I_$?pA3Wc3Dlp5yzzN9)Q~R(&iTy8SCHJNt>()_Z_rMLvHiGza=&2HKJ;T^nD)gm zA@893=`ejA8)pip;&hm>ZyvwRw=ms`&&Hj7k@`ph`)hzpe62XJ?p+?@^9(d&bP;nW zxYG1z$^%;+xP*HrON3A5vFX_|?5h)e3=5%YVE`7gYYS73N%>5+Fvi)OQ4 z?2`vq9Ep~mG>Tug*7$Imi#HJ;iuD5LlTikqPRF!!3-7v$$S>K3%wdtX$n}CYNATa) zVneNsinBR?skAm)l+>Cu^a8v|aD`tovF0@H!SY6J4h;IUP}&x0tzPd{?onjNIBhJ= zuZ@<`UcmRQe3$rM&i4wwSMp6cY(`5DhGxL+3GB^hTH`E<(9(VBwv#$mLtwr}Ok&0B|d8yR`#?=1Z;^43O+fn^@; zN`9+9$?yyDOILYoO#e=n7iovRyvBxAd&jC@;GG4$;)T7mbw6$O&{mqV!iDBb_;6$E zqU>J!$n%~YKh|>AL@H;dJG61&X})6PPV{_|>g=hS_FYSZL7(Z=~-Ku!TynX|ah=PYhL*ZV5# zD(4g1&>Cw7p6TJa>IHXH=<|VrwG49-M;dpzh<8GvnHnJ${$PRv9a@k&N?!5(FNR>pJQc*?#nro z_HxXF`ksf3$nf6fkpJvlTMnIweFv}7uK2XGUA3pWqTTc2c757q&kF0;Yg)wj1L2@}UIR6in3J62pWXMSF3kiTwVe z?c)k`h3xK?3le5ecX?fpxBLT~l)k3RyKOyQBcH`zNqf2%XkHcjuLA9BtW|iu%-sm@ zu{1z?CVr^cg~rvTF#<=%M=w+M$=DWyzH{!m%G@*C!UAu%Wk(4<-Q6<>-I{7ppZ!kC zQBeE6)Xnl+eaHs|UxPixN1~^~M~G8Bf?nDQJ+S6o92-CWx7OFm@?ZC7}<{3 z;DI}kA>z|i9U80CKQxh83@p?wRJKJcDZekVK6+r*`bhsDIQDuYH;<#vZN80B&v^~y zV_b+Q-$I>`I*+OjGUL%>rQgqJzlb`LjnWet${&8T>LCNwFR;DyTsv;vQ>Ol3&A11u zdxHO8W)(5M5$F7y@W4BE$P?F#=%cI>;bQ`X+NOpG7$#t6##} zD`Q74VPms@jXH(A{AKpBV(S_kpZ#x{@R7%ojo^n~BlwzhNijJ_T;}R=`4pLZu7B*P z{AkPJQuJeN+iI-;!69-5xxt+<^uw8r@^6ehU}J3VUs-2M)5k-Mc~N;o>rCdxmkxvm z(v2TSryjGurC48H=iGU~N&DZ&rpQ#*hbeFUxaQsMp;8~(^CVex_Vc)Vh<2pM_tUn< z=kR|?jQ`8PU!70(!7g*I)uC+uJKkaOdYkdHusgu5R|TK&wcp_WpCD*I0blv)v2o>n zt#$qwa0=czji5an99N`gd1mg#7M)S{E67gq2TW|<);e@0{_HH(lidLB+uK*l4lXr^>0=?~vpm=PVdTVFyjQ-= zq;i&7mtKI36HaI9b+xJXOuNkInz+pcv`NlWjKCZUWaclq?>@Hhb zruT1G-{r9=jNd!`r*|vkcRz{WN&l&Dz1tMO`+?pmUPb?kHOW8H*;ozcw6HhreL?g4 z{fswB{vbTjOjO~809&vK9RbJk5A2S>{e)tt(m%=rCO$av<%Jnk=X`d-MI%v79_7@>(Xu0^ILxqno5kM>f( z;Bzh}^C@3Od?b6>z{Io3|JEKUZ{i)1)`^fo*vDCq_(EPW268nhtJnxWTa)wm9#y?< zA8|Mj&0ZeySB~>C*z2=LZR9lv>)u$m68AD^aZ0!L z!9#OSz!t_H&iiX3kN^FAFDeKZTa7=4{f}LS&Cfk0DRRK&pNT#mLY_W^|E>7dFMk#5 z#hc)Dj zY_e+sw3DK~+R|FJ){!<4KNEd+d%?~4%(r*;bGgZ#4DH=h*dW5K?&5icZ+*AV$d-$B z!57g5_aE2o6|U*=_P(22@AzKD=Q2LJUuS7`e>{d>CK z4f-h1Cv|O~*NmIE4Sk$?%sO-cIRzK3Yo++FzU5EyUiuL>QOIiH$- zC1c(ClJmngzQaP{_!>h~YELxvYG6>`_kGUdso=3+EwC};g;nN=zD!;CR5+I$R$cL~ ziEUH&OL1Lz#;i4*E*Kc6{OX0_^!lj~{YG8&+w0n*%y45Ydi`nmeYROTD3 z4|J0&yIAYQyvx*q1%GUADQMq}&0&4|ZPEGM`FS|{UN%QRyyf7R|Ed^->^0-J3g0Ec zwPsv67OyLod0}&Rbm2YLZj&xJAH8aPSIWz;rOk=uJag^l8b5q&DRtDg`slm&n$Tl> zYTNZ==#)C5pCPrux3RHn$jW$(KY&lrrN)jCeQI80%LvaV9>%xuE!>ZQi-MQn z-5bAZWhZ{X9^(0N-bw#xU-6Ikjtbw0QC~Rqd}3Z|Cm%F_0qvjjAJ*5j>pXwHemAhV z`f5vUNDo|IvhXkuw}6vd(CfGJyWLe}-smeeV_as>{Wjz=``?96uV``Tp+|Q=YTMcf z?`SSRnh)BWC+ss~b;<5pka{0u9)bRJ|3_b-v&FnY!Ih8wsGHtMd2Bt|4B9Ic-xZNN z6Md`mUM|J1$d`5Q>{}U+&YZi}oJ-d=<6Jt^e+Y2_+a&+g3?n)e~-bfIhS#d@b!1lmvGsixBEl7XRi*AAvPd< z7~h~Go7vt)qH$~dH+PKv)r{Nbz?|07ouA@2uWHVbX0NjDM;RrKqE&Ze%`N%KB>u%?*3yp{7zG#B#kG*0F@0bDuFw_wZp*oWZZ@pCDMyca#FZRMp(fAQbkL94P8U6cE< z5zT!`E|<#4@Va>O>T$_na$pSaOCP9?WbnXS?D_2;<@D?!+R^#sd*K)1O8ls?tKToh zW4MR^?u@G2*^}vT&6yphoOtZ5@wh(|*ZCZE)c%*x|KoZ7XU3)RiHf`m(-`6K@hwY$#glc&zPt|-^*0z)jZuS@YuOI2$ zGcG)wY;ekX4wTh@SN;U|Ty+{-M&%0+=QZEvd=Z|FjC%fgq3)^|pK1Jk{wQ~}h{iZ0 zmh%g>hpQKzXyVmna&pMoQXkkgl6xk1O0g7kFJ0VLAN6$xGjm~R-lI;k5~P%0Wnr-8 zd5*q2FXUZYFu48&3w0;1rHxDnt|&jJhdY+!FXNj|Y~?*R&J>-}Z*FbH+K!sXY>aQg z@qEhbZVvI2-j$Js=QeGAps{RyJ@vG=UwJn^ z&$%PG)m>Q|>U}yOK3PHL!2_itaY*E!;ztYkJhy59VdA5H5&^tY-Wve08sZ&DQ{KK6~J?K74dN7hma_dw*yA?tto4&S)7sumrqi z8^2;MbH?6gT%VqN*1)MTY7R2M|0e7a8?Tt2Q7z1JM38H39+-S=iYR_6b+=*&He z6u3I%|t+ZBqRvfyFCYcnZ}qv&Z2m`ri=4g5AUYIM$XHO(oty`_&Tr`mAgh zKF868@(sY*lwWjlMsxEv@lB335xeIW+16>Nn=#O~+SNGR7Sx;b-Ae5(EU$z#cz zr$6Y5eTEN$&pGXM;YZPi%KCh^vfjIE{)4mn{RcC8e%G--n$=(UQATHw6Bo=~f&bSN zkK4rB-om&}<^G)#^bfxHW<1x9XX}#H`1XuNHmjah6T8gV6idKYK#tqzOX4z#z3b3T z;1!%MqpoZJ=r`$}+&H!eUq7?l+DpQpV&>WW_ao6ms*FEgP+s=d@jT}l5FctTuYpVU zFs`igP0plp`FveQ9XkgZI;i;h za1B3~{tRtY$r}xL#<-QApl7m!)Hm{?<;qKE>0RE`BmWJ)Qy+=Fn~X1(0Up`(irpN* zUM=jivP|}2nX#@#PUwsdoi!sF28`%(ojbE+n$30&v?sXLUedF$zYV^UESHSbUbOJz zJTKCBiFIbmry9@??^fo=S}TA#4IGjQYraT1cqd)MuP%;7ucHl(Nn;>B*D3_;6Z0)z zhj>3+8jD^^dmDgNbiI=A4abtVSmACV+LS!|61k3&ZASwWx+J%VGU_`C%_)E3#AQM1 zKo^Rt71^QxL6Fl#j@}2ctxzqBa^;>(+jD0|VYL}c|^y8NC0pQyq zKY+gBhdtV}yu#F5Ve%=o&r#*S$9Z)rU%24Bx)NiAelLYi(uKc{WUHhLJrTH^u=v^) zDbMl!qN5@>ELnXe`B2_x=WpbF&@5}+OPE7&)Do>q_9Uy8zE*-u(XCg)AN#6>&nt&_ z9tn(!8_CvIp2kA@5&g>EGBgG*7U>z^ZXd#8{=0X@_?_l!ChZN;-uVsa4}25D#+S9U zmjQ0kUkN;khAf?7v!ZJ>-X$6nYw6Ob(hJ(}?PxMz$Bu)~#CwaXG|>c{i|QA+1f%k&7W=~EwVZhww2%5OxjNuqIV9@y$fIqaMYZ3s zeP-$NFzTDWC^NuE{aqCIhdeTK{$Iv_o<2VH)BA7qLHVM;Hd<0x8;NGrm&T?TZ<6+p zW~>LtxT*CL`g=LBeEC&&okC+(ELCUYPT7nN;!5=CXi~aTI9l2mYi;1}dW~smz%!o9 zA2#)>z*;u*kyz@FC6R?$Y$US|;O6Gk*V_Fij$SneLpQXyxGcCWt%`2+PV_SGTbjq| zv{?kd8dFieK5{mT{X(Bc{tC{Ad$i_mZ7z-B$NayYSb%N1XRR~+Ul`|`yq!9G zW}a(o;m!xoZC!&!7EuQ z{7M$2!0Xw}xA57cJAO-{g;=0ouEBk*#9JUQS<@jt`=jH6%a zY4vr0HB9A&{GK&*!So4Wa%J@Xf%yHCdXF8kL-_WgjRN%KGahivH}tk;{Emx>xdxWD zWjhwrR?i#=CG)QyuaWa6zRA>V-`GR#D(!1742?5xzh>p|0r<)3nvZqh{vWf@O_dn( z36f764)Sd<7JY+wR5h_7T03il;oG$_&a_UVdsbwtb^XoymQP-j{3xwe3$AxxY2}s9 zw7re>LFpg%okm)RR8D|T+50=-VLfAt7FG)$c&^&q8m+x&YgFyX_g0RW=3R5H{?dFz z17B6#qETwSLAZ`>2Zu|o)uz0g4!J)38gMRIcG9OUZW_q4uOrLIcg@{TOlL1}xc$}2 z_m&>cC3fetr574`Sy>m&N!LkI*JOa&XOZ0XWTw z4`egq-iDF2KE&ryKAq3?Tklk#dm$rZ-xH7V zKdQaS7vnphIL&u{BYlZRj^o>mo!`VzCayop(l<0_Y$=a;YF9N#DaNaElGW#*8<(k4 zhVdv)=7rZrHWv-LYkt@0&u%}KztEp}N4DDYp!1n~`b@jfqI9n6=&WGvJCzNS++gh} z$@13ZzBQ(_A2k1#|6Y~;Ysx`mOuW-N zJAZA;&j3pYo}d+v^vJ=|Fd! zT|FV+asf17!gnqs|NE+2P5!TBk!U{~Y>oaF{21H4Z0D=USkttt_^*8R(}@L(hcoaT z@s}x`^UV`^ULjr+^P-!(XIOI*9c#a(;xgHKkYF!ehOwtotlQHLap<6V7cw^^XL*YxAc?Xou0A&o=f7#nzc!DFOa>j_KBr-p1G&W+zH}At7<3b+j{Fd z@Ff{A!hgj;609Bf(k7pY&hj6bQT|euk7+nTS;J2==y~h27CR{K)aM>T?>6f z+28&B{?YCJPJn1)UUzoqBGI0o|Vix z##;r;9`K#gTtdUhIXgdH9rL4gg#+kRt&?a!jrJnz>SZg8hnRrqKU!scb$n$5Im!KlNzfH7tJNK-Z zzKByBA98WY#*jV#bk5BB8tpC*6QysM9BJA%WtPRTV%M8^^OC%6quaM<&UnRb)cMCy z=OFwG|@FYcP8?QPv{)r+j!@5A0zfjQ?f#5aXQ@&joufC2aqo}kprEt z>WmQXG-?=~d>{128KKhM+)c;(1kbhB%=PHa*Uws zKF-nr#`~n(27uF*W&ey>16;eAG1K$;|_pyVI(wn_%yaWmSep& z9nKro8BWNjFdg=ditc}gJunc@iQv^aXKK@&bw*p_t8DF!?CV<6(itm)zt=1S)(6u{rg3UR0gvI!o0(-)9I=nAbB9R}?! zFH)z(oL1$NZXYL(3$LviS38oao$aWN*Zx>`HT}i)Tsgf{S=Je}FTSaMWryE^o>70Z z>Ce$Qz96!t7D^UqZ-eh45Auoyu|8B3znsy0_Ss28zq-f72R7Xo`-f*IH+rHW`j^jm z{yt>2)=c@9Ow4;pPv@Pwyst0Dd%h$~6D4REALCfYyqJC@TXk>6sjme-?7NrqT>73E z^^{!|eb&OB;koQ8)tS#Yv=;2qhVI3H4~@MCPKZB{_^WBOh44Q@>OeROOL4hb^nbGrh5F( z_(Agw)^TKi%MSO2tN1)v;YTcWQgN{p=>q{ws3Nhb+EYX3Zk zSL!FI&)gbYTH{f_-34HYan~!IOM4006OM#8wV`uZRNlO+qK|9rDF6q^stKMM|G|x` z9FNPv@V^cGv%(njgvTBfmq1#?Afq}Ll* z51Rp#*7K%vV(I6Wcr3;j=@`pT=vOo(yr+HOi{X9c40!))2E5;i;YH5eF5N8n_&vez z6nHf2e8PE}zMaj!5ZZA*k7%X@{LFE#%ot?9fyZ3tO7Kv!wDGUBmoB`n)wxcX;hDz# z{dmuuD|<)Bc-7|x8gEc)?c%xG-oPB`Ip>+RGCuN+@jg=*&P(lW&{>sodjGd?k9nyA z4Ar2yj_3W*hWPbJeh(v?v|j7tXvDZ8omH6kk&(pE6!TIXv2gG1$gQ8sPJ3NJdKQ`h zCyFyXwZ!)Qe)^WYll=N~ZMybePg_2C(Av8Epg&jdR`yA_x`JiN3|M{`!*U9+XslZM zhkj-2wvo4U%)Kv+(~ZrwbrSEF#(OZ#xM*8r`)b_YtK#;=uckfPQkyf|OV5DsI-=q)v%IY&kIq5RJf9;Gmo=F-SZ+Dg98_HxTvrsaYctv*+zZu(n zF}zY{E{rTH;*&ahuR@nK@@t^QRKwB~HgId9uUudF7ySQ0bd6quH|8LN=irVT+Q0Jb z4qvw%G~YlQ*ihzt(0=r|;@XO}nH&(^v6$Z)o%;sxQj*NV_N*fxV_Zs3q<(Z*22 z+6dUDZRu?ncUVv-SAupY(c>8(*nlq)Sez)gguIpLi{PS*`~aOZjDF1N%&)wKE7F-_ zeLNRG9oCSX-85b&ma26d10#0|==^5kSUIs;qx0jrMW&g%50$4O8+-jbY`@q*i%VS#JepVcUhh<1?L0K2>_*D!eTK1!KGq##UKeX#$(3^Rs(dfy zo=Cr7(?sOMM5`F1H+7cu8grJkbb}v{NjV+YeZ8xV)dMb7W+8L`uVYr0AnOK& z7ugXXVEo;@U;m#r2MxKOlblYKtUkKrQhOIo8rU@>%na(UjZc?`zKG zuG!=;c%n_seQ#FxYhwE`27HT+0|9sFGAzqnxi%cNflQ-ym%(Us05Bo<;|);$y0Y{(36qgNr;R~>69SGRNCzD_K} zyKr*<5YKPE)$+6W#_icR`%{2HIYtW^o8U?n)`yOkKJ$GGSAWbO#fIo*W!va~@ZxCU zF?=ZDQR}PS-pXbhA4;^M_EhFO3C;|Fo@9r2cfi`_&BnRq2a5(2K#V zv2}q%aLFeb+hpPS5Pd5ac_!c5AMgZwn>u45Z{fLL+s4^QtZCPglZ^F$fwwe!RlLS^ z=y1;Z!v{_m$wv>b8Icc+?lnI5ntOIUmeU;=v5##0V_-;zpvL`((qUIH%F)TVq*s;>PgbnRDohyQj`-!iyWBs|mHOy?9!m zTlu+Ie+02CZ&*CQbJ)j>BaFvUJYqCaTsx93{*@Vn_)U5#T?5a7<=G`MtXc>AbFebE z6Wv9|TeEnRt>ibxpqZWI#-Cy0U>bw?vJbp`Kc?N`qT&?GoBzgGR3DiOJ=nGq{1#2B zp5*D_1|H6pDj2)R#Q5-`OuwDw4m$)*yWCLYL&kA6L(lZNA=nkYSoB;*o>pvs%IlQA z5YN3Trsvlwr-C^WKY6UbIG=njG`qwn4p$(jJ*L@}HO5XptMUwqt3^w}>lD3q(5|Cd zjj@kh%;ogkyxP);_9}@EC12IwvO2Ln=IEvL=h|ORf6DtwR#$|n+PA}m%F$nm{^VaQ zq0Un3IJlk*9#?J(#@a>$zk|=|Gr_6Y;N3Bd9xx{9Gg(|RJ6#WEedl|@tU`Tk?!v~{ z+!S=H2nx85<6k2rg&!1DyE|}eV*$~PUSn#BW8FB&t(6_x?K4-%|+0&qY>>Z@k%=X zoV#G_#LnthkEH9!3^S)|qh5bYsJTstoQKCb*@_YAemuooI60vCWXvPW`Jd!JXQOO% z^w1Te^GaipU&lUSev>6+bJ?u>P4wq?pdWWwdDWORnkK)%=@#vgRR8HlYP2`M+4SG% ze9IG_`9kje_(UFf$aP6j&*E-vl%$@)2X_Yw$2#+uHJ$rb0>euF z=lDNC|0`(M(eBcaa`Z2Hkj>r=OtL*B8`DK{v+>X8XRQVssZo|vT`i)_#afj&- zy*}Y^>~O0&T|uARKPVl0A2c*5A6YQ{3>aKFH}3_>J@zDM%>5p7!F=SjXO%PX)8u- zQ+x+33mU|Jh0m(x#f*M4?iBMq9LoX6%kZg@1Dd;Ctci5a;SKzk9j7>#i3wt>%Px^D zpZy7PNM6T&o!hKWHWb_KpHt37$@(&~hp;E6VhUgTl$Ed0z|>l>%KXCzbeH>>Ij=tt zo$LI`w=q`Ze<5SV=aL_?A7s;a}rkR^4_*92dh+uj=Rk@tY@gI-_R?Bl<3OFZZ@0bO3*ye3ThH^DnM zS>A!C?Ox~9sJr*b+_6pWiufoSp2~WmwRK(wjG9|`XChGt)<)QN^sby>ouxGpVm}sQ zyD@LqN);n;eDisHRq;)h@tN4DZ`;s1k@&`~|0FpxSiGUL-!+EbxNqcyVr^C~SD*#x z!NnI0eZ2PiNfMSRSdJ~U5r<2AEP4C^fZ%a6+Pe`w#B@#UPJFNz+D zRyLkrB8DTns6rROm!=M9XtkVfJ0YeE;!K0+Fq@mtzEjOPbikaS-Dd7{p2qJXt2F-n zr3BJ?K~obZPMa59T??I9TXj)ceP5@0fT!$L$>=_C#T|9y4wi2} zYkkn+^4M&A?g8xH!C~Mv`z%D`(pAv7)^(gtm7TUI08e%NAZTM4I+AU#d62#qoXVeL zjyd}o8O-?nkTLSxkK=kOvu|?p_M;>lO7v3>r`6v9T$<;5j$zJNFVE1P^bq&O>vw{= zO-Y_Pd2tQ0D0w1l2gs#FF>U4u`-HegDr6ovBHt-)_?TEVIV{CcYmgKAy|9Sih8>8x10RePTN6L&dT8(ZDcbv=_(^&4Ih~L6;+Pi2FQUI}F_@LC z1hZ1rVAfIt8~E@=kMf&tk>70i%=$}bP4kz2f-ZXrb>v6=7(F%woSl7r{9o)Gh<=dg zX6Px((;D^q@g*2_eP;(x&@{|SG|=xFg=ANN^(o3W`4uM(nzLqnsk z{I`KiewXE;w;7+t^3V$XHavunm+Pi&_4AbwEuX=kPA(S^X#$)W=%q z!{q#FK0d?q0pHpe(%bO%?Nk0N{4SrHSVJ^V^9bH0AGBT${CkFcYwPMRRqUSoq*qz9 z*FNNp=(Ohjv+Y?oYcHTLKh|+oYwr-FP&_`m2|Ng{4_~D9I-cci%v5_Wt^x0gZ%Kd8 zD{hU%Tk=0Ho56FZ@?8Fh-K&THK|JD(JQK|eUT85v|0(2C>SUg4J`%;)_XzT%?Asqn z2Oi(>4m6g7fAIgudprD&d5k$lJdQi94Q&YrN&d_B1fQHQr@No59h+c`R;MIJB?Gdw z*F#&fXJzA#+_TB#YoxuMk@A?P>V?uniBXm3ygX=^v$GuxBYv^R{r3F`g;0ijNvaP?V zb&ig4-^+hzTMx&4_(E)IV?U9*Wq7d69x9!QT7>^f)=m_UrG0P+9-sWA<+C>f`(o%( zHk#zNV#I$~Z{IO@#CvUwRXH!>LB;oseE}^Qxku3*rkhgPs6Ws3DG@tbe z?%&+RnJF{p8T}I}_AmcRGFRhD=NU8OW^YVO`4+N~Wh?jbz5k!>SZRNc?xoizHH{`9Ed0{W9@?n>i;FU6S65w;!v3?rJyl zB-zLM(kZ|p`&9O5pRb%l&e6w4T*&h@?XGfr<w%i`IrL!@H-mSA8;DJ)m9)f-pZ`Qj~5!#{89Pswi zzxHori_BX*XL-IyZw3y^B#M0024n03{|@&iXO=y#$HNz$=Rfo}C`0`nlYe|RgwB%H zyRGp%*@ik#BUJ)V^poqvd%!bfH#T94HL?tRk@+(C$~V4YaIKgiIejhJjDmYYeu~x( zS*uNv>qwos)S0_Gp403ZoG0PocjWniQ|X!QYOj=O0aHu9w)Ssme^+lnNA ziR6!Tieem_j)gyJTc!JQ!l(Qt>D?Y+nH&2{tC@#OI^N%aj@SNcttr2s=U4dBZ$|It zbhmat&*aOS_Q>~yUnaD+i0=_C2;~19TuW3xDkpkVTt8bMi#~W$9OJH9nw7pQ(}v1@ zn_PF3XA{4}hBa`jzq$0Kcc<}8@k9A)^7A#{+WRDa1vjkoTRT8`Qu1r`UU*mg%72oL zl<|>qJd0YEh8KeawRLa|Tc-Bg3+~QwXbdOCV>r4K7W#7fOXv0+3YNs5faTs8mcIrT zat)&eB|ARJPmNFGnc_du6VId{hAWii+vD@uxD8^LW^GoqptFg5#;W{#XMbG68m;Ed z;X=4MhP78{(X^}oFXz8-3f;DOuJs&)!{zy1J4?pnWqhFCo5=&F>o5I{d8o*^!DlP}i)@Q#KhtpEu*V z!{_sPE*@P9k6susk0s(o%(LJZze>)YL%xc})kU0skiA1wbXEzPqJQU`$!{?<%$O8U zzr^&-8XW&sUpSM_xMvr3OM^b@&{F(PYwn_}B<(An-`<`Cz{{O+6OeL z^<)G4Ew8lW)-%~#dfr1H|Aovc#{HX^n13){0Gv(fUE&ji8RR?qbcg6XqcY$|d7)kC zf7yM~@yLFYuPWO!Ls_+-^*0*2djE1eHu+VFJma99MCsZvS^i|0C2qRJ;-$&CRQE}L z6#1W_|F2_9IoxX=)`CO*cjK+{A9>Jv4|5DmMi(f@K<$gpBp+p)bhh!q8Esq?w{h}; zKi1z%_gQ*Az`h701LfP4IRjzV?hJ6EBTsJ&-aFWH^~?$Oyv5bOj%loDMi-&-&Lzi;vub-r$_dqmBx7SBO_QqXmx;_B%s4o~Hh6eq-})Obq}R_&Jg9+1w%f zTkNl-p9tk+p+^V*u>$W)M$BkeXPdys6LsE$Q}VZ`pL^sr0&^ax#^=T=e)-+b*w&~* zkAcO3-p^vJUBpI&KX|p>Ria(m?=EnrJg`DfJEZ?rRyIh+l*bm~*?w@Xwh~p=ZW_DE zRc9|W<&3T=pzr9{?SXsO8Iu!|38DeFhwE%?f^+#?)}8j=@~$55J^XgL`^v*y0?oKH znB@0KmatZ6Xj$`q+=u9&xEKE2M8?f`1$fFq6aOw}>D3#jbdvZ^euQ*Gjyxjibd&2%U&6}{ za6Kj8YV_%c#)i|LxBlAnwi18W(N>^*pB;uzbU*y2_&h;u?L9h!*V=ez8X4$fgrhgJ zM;U!$;0I>mLpYXPP=0v(*OpfWm*BjXG3mYJsM^@f{|x_44s1uh@T=mzC(6yqhUASj zwnmOe%)Z_ddx*j17Hl-d37DHX(9RrqY4A|z1i88IgO>}~;=iYTzasr~z12@;$;s;@ zWR|gWkY%|mpeL2rK9}!ZIB9ZFdQY3q*UF{pBW_0QpR=Q{$JaT;{Vl**gaIVm2ZbH&`#ITDfzMJ z#mq?`u?O8*n#~h~pp4GfOZk=;kj1&Tx^^m-mn1`v;5qt1<)-!)$VQSaqVrg^=RxOt z$R~I9`IMc743Hk&^AkHantSoCnRn)=pYe*GvgLIx-EFVf@Q*mxUN(tWp-=e0wQ1_a zG&9wX@D(5{>Ict%GxWpSl5nN`uM2@o@oe}vC0v1%W{UBhNdMWw<|t&%+4-Bu8Rar4wm zV0$0K-8)&@8=_7wxIR46^WHQ-yX4?Wr*2$Twf3pxoyMuTm+Y!akJ0v1IVXO(#~vP4lbVTge(F=QinnE8SnfIy5<_tSK;d z54=_rYsURxG`fp+9j(be{Lz8Q{VvA|8`{_+f@v}I^z% z-N0Ph9`=^C?r-*S-7dVdUu6!o_Aq>8#&!v@wrBq@dk>fBO1fD&1=@GN5ZNfYO4IMc zfM<2lmd>}r#?`Yb&uaFW*1-CKcM-5;3znu9#4=g*w;MSu++7Nsq7e@o5uS%=cbIm? z7YiH6;}SGn9*dy!Y4}Zhvqu-@4NS~ubtLU2N3pS5%4L*YzmR&Y%NW{M-kj@OxDp-} zQ~2q(vAYTZfvVZm@9HbO<$Q9w^^;5Fn8c_ zut)1A@%`Q?^<0KNyP%okcZvCO*LOd8zMSJopJ7`u7SB(1teY4cB`0_~@A`hUz`BWV zV>rx%y{8VGciO<()2;Ejv0nTwi(}TAj1TXgAMv!}QD$GHfz_){U*CDY;ADO0FN#f9 zfRk7_v05V&7FU6jy;TYJR3SeNO}TzO`jy=1s#^c98(3W)oMJ8`$k3_SH1QXc4_6MF z%Y$9f;n2O450b@hjVA+b4aanU2e_BtEuTyF5%$x43DFn+sPv8cW~|5pWLG^MU%lRk56 z=1WKM>H91>bSJe6k9zw}y~4>YHT+zBGz5-|jzP$3<@fV

!in-l6FzNF$Hm03@j2_{p3wOw_=rYszz3Ay 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

6)V7K> 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%0DpQrMnxmp5 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 -/* - * VS2005 needs a normal Smart Device output before it enables Deploy. - * The debugger is configured to start the separately built CeGCC QuickJS - * executable, so this tiny launcher is only a deployment anchor. - */ +#include "wm6_quickjs_abi.h" + +static int append_file_name(WCHAR *path, unsigned int capacity, + const WCHAR *name) +{ + unsigned int length; + unsigned int index; + + length = 0; + while (path[length] != L'\0') + length++; + while (length > 0 && path[length - 1] != L'\\') + length--; + index = 0; + while (name[index] != L'\0' && length + index + 1 < capacity) { + path[length + index] = name[index]; + index++; + } + path[length + index] = L'\0'; + return name[index] == L'\0'; +} + +static char *read_cards_bundle(unsigned int *length) +{ + WCHAR path[MAX_PATH]; + HANDLE file; + DWORD size; + DWORD read; + char *bytes; + + *length = 0; + if (!GetModuleFileName(NULL, path, MAX_PATH)) + return NULL; + if (!append_file_name(path, MAX_PATH, L"PocketJS.WM6.Cards.js")) + return NULL; + file = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + if (file == INVALID_HANDLE_VALUE) + return NULL; + size = GetFileSize(file, NULL); + if (size == INVALID_FILE_SIZE || size == 0) { + CloseHandle(file); + return NULL; + } + bytes = (char *)LocalAlloc(LMEM_FIXED, size + 1); + if (!bytes) { + CloseHandle(file); + return NULL; + } + if (!ReadFile(file, bytes, size, &read, NULL) || read != size) { + LocalFree(bytes); + CloseHandle(file); + return NULL; + } + CloseHandle(file); + bytes[size] = '\0'; + *length = size; + return bytes; +} + +static void ascii_to_wide(WCHAR *output, unsigned int capacity, + const char *text) +{ + unsigned int index; + + if (capacity == 0) + return; + index = 0; + while (text && text[index] != '\0' && index + 1 < capacity) { + unsigned char ch = (unsigned char)text[index]; + output[index] = ch < 128 ? (WCHAR)ch : L'?'; + index++; + } + output[index] = L'\0'; +} + int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int show) { + static const char snapshot[] = "__wm6Snapshot()"; + HMODULE module; + wm6_qjs_abi_version_fn abi_version; + wm6_qjs_create_fn create_runtime; + wm6_qjs_eval_fn eval; + wm6_qjs_drain_jobs_fn drain_jobs; + wm6_qjs_destroy_fn destroy_runtime; + wm6_qjs_handle runtime; + char result[256]; + char *bundle; + char *snapshot_text; + unsigned int bundle_length; + WCHAR *message; + int status; + (void)instance; (void)previous; (void)command; (void)show; - MessageBox(NULL, - L"Build the QuickJS probe with hosts/wm6/quickjs/build-probe.sh.", - L"PocketJS QuickJS deploy helper", + + module = LoadLibrary(L"PocketJS.WM6.QuickJS.dll"); + if (!module) { + MessageBox(NULL, L"LoadLibrary failed", L"PocketJS QuickJS Host", MB_OK); + return 1; + } + abi_version = (wm6_qjs_abi_version_fn)GetProcAddress( + module, L"wm6_qjs_abi_version"); + create_runtime = (wm6_qjs_create_fn)GetProcAddress( + module, L"wm6_qjs_create"); + eval = (wm6_qjs_eval_fn)GetProcAddress(module, L"wm6_qjs_eval"); + drain_jobs = (wm6_qjs_drain_jobs_fn)GetProcAddress( + module, L"wm6_qjs_drain_jobs"); + destroy_runtime = (wm6_qjs_destroy_fn)GetProcAddress( + module, L"wm6_qjs_destroy"); + if (!abi_version || !create_runtime || !eval || + !drain_jobs || !destroy_runtime) { + FreeLibrary(module); + MessageBox(NULL, L"QuickJS ABI export missing", + L"PocketJS QuickJS Host", MB_OK); + return 2; + } + if (abi_version() != WM6_QJS_ABI_VERSION) { + FreeLibrary(module); + MessageBox(NULL, L"QuickJS ABI version mismatch", + L"PocketJS QuickJS Host", MB_OK); + return 3; + } + + runtime = create_runtime(8u * 1024u * 1024u, 256u * 1024u, + result, sizeof(result)); + if (!runtime) { + ascii_to_wide(message, 256, result); + FreeLibrary(module); + MessageBox(NULL, message, L"QuickJS create failed", MB_OK); + return 4; + } + bundle = read_cards_bundle(&bundle_length); + snapshot_text = (char *)LocalAlloc(LMEM_FIXED, 8192); + message = (WCHAR *)LocalAlloc(LMEM_FIXED, 8192 * sizeof(WCHAR)); + if (!bundle || !snapshot_text || !message) { + if (bundle) LocalFree(bundle); + if (snapshot_text) LocalFree(snapshot_text); + if (message) LocalFree(message); + destroy_runtime(runtime); + FreeLibrary(module); + MessageBox(NULL, L"Cards bundle allocation failed", + L"PocketJS QuickJS Host", MB_OK); + return 5; + } + status = eval(runtime, bundle, bundle_length, + result, sizeof(result)); + if (status == 0) + status = drain_jobs(runtime, result, sizeof(result)) < 0 ? -1 : 0; + if (status == 0) + status = eval(runtime, snapshot, sizeof(snapshot) - 1, + snapshot_text, 8192); + LocalFree(bundle); + destroy_runtime(runtime); + FreeLibrary(module); + + ascii_to_wide(message, 8192, status == 0 ? snapshot_text : result); + MessageBox(NULL, message, + status == 0 ? L"PocketJS Cards bundle mounted" + : L"PocketJS QuickJS DLL failure", MB_OK); - return 0; + LocalFree(snapshot_text); + LocalFree(message); + return status == 0 ? 0 : 5; } diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index b3a1d072e..d9ddba3a1 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -94,29 +94,36 @@ describe("Windows Mobile 6 VS2005 projects", () => { test("includes a pinned CeGCC QuickJS ARM/WinCE probe", async () => { const quickjsRoot = new URL("../hosts/wm6/quickjs/", import.meta.url); - const [solution, project, build, patch, probe, math, executable] = + const [solution, project, build, runtimeBuild, cardsBuild, patch, probe, + runtime, abi, cards, math, executable, dll] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), readFile(new URL("PocketJS.WM6.QuickJS.vcproj", root), "utf8"), readFile(new URL("build-probe.sh", quickjsRoot), "utf8"), + readFile(new URL("build-runtime.sh", quickjsRoot), "utf8"), + readFile(new URL("build-cards.sh", quickjsRoot), "utf8"), readFile(new URL("patches/quickjs-wm6.patch", quickjsRoot), "utf8"), readFile(new URL("src/probe.c", quickjsRoot), "utf8"), + readFile(new URL("src/runtime_dll.c", quickjsRoot), "utf8"), + readFile(new URL("runtime/wm6_quickjs_abi.h", root), "utf8"), + readFile(new URL("prebuilt/PocketJS.WM6.Cards.js", root), "utf8"), readFile(new URL("src/wm6_math.c", quickjsRoot), "utf8"), readFile( new URL("prebuilt/PocketJS.WM6.QuickJS.Probe.exe", root), ), + readFile(new URL("prebuilt/PocketJS.WM6.QuickJS.dll", root)), ]); expect(solution).toContain('"PocketJS.WM6.QuickJS"'); expect(solution).toContain("{AA37CB32-6044-4A78-A3A5-1F58080498C8}"); expect(project).toContain('Version="8.00"'); expect(project).toContain( - 'AdditionalFiles="PocketJS.WM6.QuickJS.Probe.exe|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\\PocketJS.WM6.QuickJS|0"', + 'PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\\PocketJS.WM6.QuickJS|0', ); expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); expect( project.match( - /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\\PocketJS\.WM6\.QuickJS\.Probe\.exe"/g, + /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\\PocketJS\.WM6\.QuickJS\.Host\.exe"/g, ), ).toHaveLength(2); @@ -127,6 +134,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(build).not.toContain("-march=armv5"); expect(build).toContain("-msoft-float"); expect(build).toContain("-D_WIN32_WCE=0x0502"); + expect(runtimeBuild).toContain("-shared"); + expect(runtimeBuild).toContain("-static-libgcc"); + expect(cardsBuild).toContain("dist/cards-main.js"); expect(patch).toContain("#undef CONFIG_ATOMICS"); expect(patch).toContain("#elif defined(_WIN32_WCE)"); expect(probe).toContain("JS_SetMemoryLimit(runtime, 8u * 1024u * 1024u)"); @@ -138,6 +148,13 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(probe).toContain("QuickJS 6,10,16,26"); expect(math).toContain("double fmax"); expect(math).toContain("double fmin"); + expect(abi).toContain("#define WM6_QJS_ABI_VERSION 1u"); + expect(runtime).toContain("wm6_qjs_create"); + expect(runtime).toContain("wm6_qjs_eval"); + expect(runtime).toContain("wm6_qjs_drain_jobs"); + expect(cards).toContain("PocketJS Cards (real bundle)"); + expect(cards).toContain("Feature Cards"); + expect(cards).toContain("Flexbox via Taffy"); expect(executable.subarray(0, 2).toString("ascii")).toBe("MZ"); const peOffset = executable.readUInt32LE(0x3c); @@ -146,5 +163,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { ); expect(executable.readUInt16LE(peOffset + 4)).toBe(0x01c0); expect(executable.readUInt16LE(peOffset + 24 + 68)).toBe(9); + expect(dll.subarray(0, 2).toString("ascii")).toBe("MZ"); + const dllPeOffset = dll.readUInt32LE(0x3c); + expect(dll.readUInt16LE(dllPeOffset + 4)).toBe(0x01c0); + expect(dll.readUInt16LE(dllPeOffset + 22) & 0x2000).toBe(0x2000); }); }); From 0cee66f0585f5fbf41e49b24346b48c82f0578f4 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 01:19:45 +0900 Subject: [PATCH 14/53] fix(wm6): initialize the QuickJS host error buffer --- hosts/wm6/vs2005/src/quickjs_deploy.c | 5 +++-- tests/wm6-project.test.ts | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 9f4a480d7..02bcc54b2 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -90,6 +90,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s char *bundle; char *snapshot_text; unsigned int bundle_length; + WCHAR create_error[256]; WCHAR *message; int status; @@ -129,9 +130,9 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s runtime = create_runtime(8u * 1024u * 1024u, 256u * 1024u, result, sizeof(result)); if (!runtime) { - ascii_to_wide(message, 256, result); + ascii_to_wide(create_error, 256, result); FreeLibrary(module); - MessageBox(NULL, message, L"QuickJS create failed", MB_OK); + MessageBox(NULL, create_error, L"QuickJS create failed", MB_OK); return 4; } bundle = read_cards_bundle(&bundle_length); diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index d9ddba3a1..af2949816 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -94,11 +94,12 @@ describe("Windows Mobile 6 VS2005 projects", () => { test("includes a pinned CeGCC QuickJS ARM/WinCE probe", async () => { const quickjsRoot = new URL("../hosts/wm6/quickjs/", import.meta.url); - const [solution, project, build, runtimeBuild, cardsBuild, patch, probe, + const [solution, project, host, build, runtimeBuild, cardsBuild, patch, probe, runtime, abi, cards, math, executable, dll] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), readFile(new URL("PocketJS.WM6.QuickJS.vcproj", root), "utf8"), + readFile(new URL("src/quickjs_deploy.c", root), "utf8"), readFile(new URL("build-probe.sh", quickjsRoot), "utf8"), readFile(new URL("build-runtime.sh", quickjsRoot), "utf8"), readFile(new URL("build-cards.sh", quickjsRoot), "utf8"), @@ -126,6 +127,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\\PocketJS\.WM6\.QuickJS\.Host\.exe"/g, ), ).toHaveLength(2); + expect(host).toContain("WCHAR create_error[256]"); + expect(host).toContain("ascii_to_wide(create_error, 256, result)"); + expect(host).not.toContain("ascii_to_wide(message, 256, result)"); expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', From a2e19633f94f58ccc5f222a50e61f2ddb0fe7d68 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 08:54:14 +0900 Subject: [PATCH 15/53] fix(wm6): preserve the QuickJS deploy entry name --- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 10 +++++----- tests/wm6-project.test.ts | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index 164e48ac2..50392403d 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -48,10 +48,10 @@ Name="VCLinkerTool" AdditionalOptions="/subsystem:windowsce,5.02" AdditionalDependencies="coredll.lib" - OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.Host.exe" + OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.Probe.exe" LinkIncremental="1" GenerateDebugInformation="true" - ProgramDatabaseFile="$(OutDir)\PocketJS.WM6.QuickJS.Host.pdb" + ProgramDatabaseFile="$(OutDir)\PocketJS.WM6.QuickJS.Probe.pdb" SubSystem="0" TargetMachine="0" /> @@ -70,7 +70,7 @@ AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" /> diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index af2949816..db7dbd127 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -122,9 +122,12 @@ describe("Windows Mobile 6 VS2005 projects", () => { 'PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\\PocketJS.WM6.QuickJS|0', ); expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); + expect( + project.match(/OutputFile="\$\(OutDir\)\\PocketJS\.WM6\.QuickJS\.Probe\.exe"/g), + ).toHaveLength(2); expect( project.match( - /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\\PocketJS\.WM6\.QuickJS\.Host\.exe"/g, + /RemoteExecutable="%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\\PocketJS\.WM6\.QuickJS\.Probe\.exe"/g, ), ).toHaveLength(2); expect(host).toContain("WCHAR create_error[256]"); From e719037324ee0a9140c12c5a30a54a7c3a242ae8 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 10:51:51 +0900 Subject: [PATCH 16/53] feat(wm6): render the PocketJS Cards screen --- hosts/wm6/quickjs/README.md | 10 +- hosts/wm6/quickjs/build-cards.sh | 4 +- hosts/wm6/quickjs/cards-host.js | 76 +- hosts/wm6/vs2005/README.md | 4 +- .../wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js | 7634 +++++++++-------- hosts/wm6/vs2005/src/quickjs_deploy.c | 184 +- tests/wm6-project.test.ts | 4 + 7 files changed, 4116 insertions(+), 3800 deletions(-) diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index 5b930bb1c..6c24279ab 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -53,10 +53,12 @@ from a Promise job. Success shows `QuickJS 6,10,16,26` under the title `build-runtime.sh` builds `PocketJS.WM6.QuickJS.dll` with a five-function, versioned C ABI and statically linked libgcc. `build-cards.sh` combines the minimal WM6 HostOps bootstrap with the real `dist/cards-main.js` output. -VS2005 builds `PocketJS.WM6.QuickJS.Host.exe`, deploys both files, mounts the -Solid application in QuickJS, and displays a native-tree receipt containing -the Cards text. This receipt is the bundle/HostOps gate; GDI layout and paint -are the next milestone. +VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, +deploys both files, mounts the +Solid application in QuickJS, and turns its native tree into a compact GDI +draw list. The first graphical milestone paints the Cards header, three module +cards, accent strips, captions, and footer in a centered 480×272 viewport. +Input-driven focus and detail updates are the next milestone. The compatibility patch: diff --git a/hosts/wm6/quickjs/build-cards.sh b/hosts/wm6/quickjs/build-cards.sh index c37926d64..13f9d7335 100644 --- a/hosts/wm6/quickjs/build-cards.sh +++ b/hosts/wm6/quickjs/build-cards.sh @@ -13,7 +13,7 @@ fi mkdir -p "$(dirname "$output")" { printf '%s\n' '/* PocketJS WM6 bootstrap + real apps/cards bundle. */' - sed 's/$/\r/' "${script_dir}/cards-host.js" - sed 's/$/\r/' "$bundle" + sed -n 'p' "${script_dir}/cards-host.js" + sed -n 'p' "$bundle" } > "$output" echo "Built ${output}" diff --git a/hosts/wm6/quickjs/cards-host.js b/hosts/wm6/quickjs/cards-host.js index f341247d1..783ad7822 100644 --- a/hosts/wm6/quickjs/cards-host.js +++ b/hosts/wm6/quickjs/cards-host.js @@ -1,8 +1,9 @@ (() => { let nextNode = 2; let nextAnim = 1; + let focused = 0; const nodes = new Map(); - nodes.set(1, { id: 1, type: 0, style: -1, text: "", children: [] }); + nodes.set(1, { id: 1, type: 0, style: -1, text: "", parent: 0, children: [] }); const node = (id) => nodes.get(id); const detach = (id) => { @@ -10,6 +11,8 @@ const at = parent.children.indexOf(id); if (at >= 0) parent.children.splice(at, 1); } + const child = node(id); + if (child) child.parent = 0; }; globalThis.ui = { @@ -19,7 +22,7 @@ __viewport: { w: 480, h: 272 }, createNode(type) { const id = nextNode++; - nodes.set(id, { id, type, style: -1, text: "", children: [] }); + nodes.set(id, { id, type, style: -1, text: "", parent: 0, children: [] }); return id; }, destroyNode(id) { @@ -33,6 +36,8 @@ const at = anchor ? parent.children.indexOf(anchor) : -1; if (at >= 0) parent.children.splice(at, 0, childId); else parent.children.push(childId); + const child = node(childId); + if (child) child.parent = parentId; }, removeChild(_parent, child) { detach(child); }, setStyle(id, style) { const n = node(id); if (n) n.style = style; }, @@ -44,7 +49,7 @@ setSprite() {}, animate() { return nextAnim++; }, cancelAnim() {}, - setFocus() {}, + setFocus(id) { focused = id; }, setActive() {}, measureText(text, fontSlot) { const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; @@ -63,4 +68,69 @@ visit(1, 0); return lines.join("\n"); }; + + globalThis.__wm6DrawList = () => { + const out = ["B|248|250|252"]; + const safe = (text) => String(text).replace(/[|\r\n]/g, " "); + const text = (x, y, size, r, g, b, value) => + out.push(`T|${x}|${y}|${size}|${r}|${g}|${b}|${safe(value)}`); + const rect = (x, y, w, h, r, g, b) => + out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); + let cardIndex = 0; + const effectiveStyle = (n) => { + let current = n; + while (current) { + if (current.style >= 0) return current.style; + current = node(current.parent); + } + return -1; + }; + + for (const n of nodes.values()) { + if (!n.text) continue; + const style = effectiveStyle(n); + if (style === 18) text(16, 18, 12, 37, 99, 235, n.text); + else if (style === 19) text(16, 35, 24, 15, 23, 42, n.text); + else if (style === 20 && n.text === "3 MODULES") + text(398, 43, 12, 100, 116, 139, n.text); + else if (style === 20) + text(16, 250, 12, 100, 116, 139, n.text); + } + for (const n of nodes.values()) { + if (n.style !== 0 && n.style !== 3 && n.style !== 6) continue; + const x = 16 + cardIndex * 148; + const isFocused = n.id === focused; + const accent = n.style === 0 ? [59, 130, 246] + : n.style === 3 ? [16, 185, 129] : [245, 158, 11]; + rect(x, 76, 136, 82, isFocused ? 239 : 255, + isFocused ? 246 : 255, isFocused ? 255 : 255); + rect(x, 76, 136, 4, accent[0], accent[1], accent[2]); + const labels = []; + const collect = (id) => { + const child = node(id); + if (!child) return; + if (child.text) labels.push(child.text); + for (const nested of child.children) collect(nested); + }; + collect(n.id); + if (labels[0]) text(x + 12, 91, 14, 15, 23, 42, labels[0]); + if (labels[1]) text(x + 12, 115, 12, 71, 85, 105, labels[1]); + cardIndex++; + } + for (const n of nodes.values()) { + if (n.style !== 9) continue; + rect(16, 174, 448, 54, 255, 255, 255); + const labels = []; + const collect = (id) => { + const child = node(id); + if (!child) return; + if (child.text) labels.push(child.text); + for (const nested of child.children) collect(nested); + }; + collect(n.id); + if (labels[0]) text(34, 184, 14, 15, 23, 42, labels[0]); + if (labels[1]) text(34, 204, 12, 71, 85, 105, labels[1]); + } + return out.join("\n"); + }; })(); diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 3928ab117..7314d5787 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -9,8 +9,8 @@ This solution contains three native Smart Device applications for the HP iPAQ ahead-of-time compilation to portable C. It is the first application UI on WM6, but it is not a QuickJS host and cannot load ordinary PocketJS bundles. - `PocketJS.WM6.QuickJS` builds a VC8 host and deploys the CeGCC-built QuickJS - DLL plus the real `apps/cards` bundle. Its first receipt mounts Solid and - shows the HostOps text tree; GDI layout and painting are still in progress. + DLL plus the real `apps/cards` bundle. It mounts Solid, derives a draw list + from the HostOps tree, and paints the first Cards screen with GDI. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js index d83686f5d..7f7c9ccb5 100644 --- a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js +++ b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js @@ -1,3783 +1,3853 @@ /* PocketJS WM6 bootstrap + real apps/cards bundle. */ -(() => { - let nextNode = 2; - let nextAnim = 1; - const nodes = new Map(); - nodes.set(1, { id: 1, type: 0, style: -1, text: "", children: [] }); - - const node = (id) => nodes.get(id); - const detach = (id) => { - for (const parent of nodes.values()) { - const at = parent.children.indexOf(id); - if (at >= 0) parent.children.splice(at, 1); - } - }; - - globalThis.ui = { - __host: "wm6", - __hostAbi: 1, - __textures: {}, - __viewport: { w: 480, h: 272 }, - createNode(type) { - const id = nextNode++; - nodes.set(id, { id, type, style: -1, text: "", children: [] }); - return id; - }, - destroyNode(id) { - detach(id); - nodes.delete(id); - }, - insertBefore(parentId, childId, anchor) { - const parent = node(parentId); - if (!parent) return; - detach(childId); - const at = anchor ? parent.children.indexOf(anchor) : -1; - if (at >= 0) parent.children.splice(at, 0, childId); - else parent.children.push(childId); - }, - removeChild(_parent, child) { detach(child); }, - setStyle(id, style) { const n = node(id); if (n) n.style = style; }, - setProp() {}, - setText(id, text) { const n = node(id); if (n) n.text = String(text); }, - replaceText(id, text) { this.setText(id, text); }, - uploadTexture() { return -1; }, - setImage() {}, - setSprite() {}, - animate() { return nextAnim++; }, - cancelAnim() {}, - setFocus() {}, - setActive() {}, - measureText(text, fontSlot) { - const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; - return String(text).length * width; - } - }; - - globalThis.__wm6Snapshot = () => { - const lines = ["PocketJS Cards (real bundle)", "viewport 480x272", ""]; - const visit = (id, depth) => { - const n = node(id); - if (!n) return; - if (n.text) lines.push(" ".repeat(depth) + n.text); - for (const child of n.children) visit(child, depth + 1); - }; - visit(1, 0); - return lines.join("\n"); - }; -})(); -(() => { - // node_modules/solid-js/dist/solid.js - var sharedConfig = { - context: undefined, - registry: undefined, - effects: undefined, - done: false, - getContextId() { - return getContextId(this.context.count); - }, - getNextContextId() { - return getContextId(this.context.count++); - } - }; - function getContextId(count) { - const num = String(count), len = num.length - 1; - return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : "") + num; - } - function setHydrateContext(context) { - sharedConfig.context = context; - } - function nextHydrateContext() { - return { - ...sharedConfig.context, - id: sharedConfig.getNextContextId(), - count: 0 - }; - } - var IS_DEV = false; - var equalFn = (a, b) => a === b; - var $PROXY = Symbol("solid-proxy"); - var SUPPORTS_PROXY = typeof Proxy === "function"; - var $TRACK = Symbol("solid-track"); - var $DEVCOMP = Symbol("solid-dev-component"); - var signalOptions = { - equals: equalFn - }; - var ERROR = null; - var runEffects = runQueue; - var STALE = 1; - var PENDING = 2; - var UNOWNED = { - owned: null, - cleanups: null, - context: null, - owner: null - }; - var Owner = null; - var Transition = null; - var Scheduler = null; - var ExternalSourceConfig = null; - var Listener = null; - var Updates = null; - var Effects = null; - var ExecCount = 0; - function createRoot(fn, detachedOwner) { - const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === undefined ? owner : detachedOwner, root = unowned ? UNOWNED : { - owned: null, - cleanups: null, - context: current ? current.context : null, - owner: current - }, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root))); - Owner = root; - Listener = null; - try { - return runUpdates(updateFn, true); - } finally { - Listener = listener; - Owner = owner; - } - } - function createSignal(value, options) { - options = options ? Object.assign({}, signalOptions, options) : signalOptions; - const s = { - value, - observers: null, - observerSlots: null, - comparator: options.equals || undefined - }; - const setter = (value2) => { - if (typeof value2 === "function") { - if (Transition && Transition.running && Transition.sources.has(s)) - value2 = value2(s.tValue); - else - value2 = value2(s.value); - } - return writeSignal(s, value2); - }; - return [readSignal.bind(s), setter]; - } - function createRenderEffect(fn, value, options) { - const c = createComputation(fn, value, false, STALE); - if (Scheduler && Transition && Transition.running) - Updates.push(c); - else - updateComputation(c); - } - function createEffect(fn, value, options) { - runEffects = runUserEffects; - const c = createComputation(fn, value, false, STALE), s = SuspenseContext && useContext(SuspenseContext); - if (s) - c.suspense = s; - if (!options || !options.render) - c.user = true; - Effects ? Effects.push(c) : updateComputation(c); - } - function createMemo(fn, value, options) { - options = options ? Object.assign({}, signalOptions, options) : signalOptions; - const c = createComputation(fn, value, true, 0); - c.observers = null; - c.observerSlots = null; - c.comparator = options.equals || undefined; - if (Scheduler && Transition && Transition.running) { - c.tState = STALE; - Updates.push(c); - } else - updateComputation(c); - return readSignal.bind(c); - } - function untrack(fn) { - if (!ExternalSourceConfig && Listener === null) - return fn(); - const listener = Listener; - Listener = null; - try { - if (ExternalSourceConfig) - return ExternalSourceConfig.untrack(fn); - return fn(); - } finally { - Listener = listener; - } - } - function onMount(fn) { - createEffect(() => untrack(fn)); - } - function onCleanup(fn) { - if (Owner === null) - ; - else if (Owner.cleanups === null) - Owner.cleanups = [fn]; - else - Owner.cleanups.push(fn); - return fn; - } - function startTransition(fn) { - if (Transition && Transition.running) { - fn(); - return Transition.done; - } - const l = Listener; - const o = Owner; - return Promise.resolve().then(() => { - Listener = l; - Owner = o; - let t; - if (Scheduler || SuspenseContext) { - t = Transition || (Transition = { - sources: new Set, - effects: [], - promises: new Set, - disposed: new Set, - queue: new Set, - running: true - }); - t.done || (t.done = new Promise((res) => t.resolve = res)); - t.running = true; - } - runUpdates(fn, false); - Listener = Owner = null; - return t ? t.done : undefined; - }); - } - var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false); - function useContext(context) { - let value; - return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue; - } - var SuspenseContext; - function readSignal() { - const runningTransition = Transition && Transition.running; - if (this.sources && (runningTransition ? this.tState : this.state)) { - if ((runningTransition ? this.tState : this.state) === STALE) - updateComputation(this); - else { - const updates = Updates; - Updates = null; - runUpdates(() => lookUpstream(this), false); - Updates = updates; - } - } - if (Listener) { - const observers = this.observers; - if (!observers || observers[observers.length - 1] !== Listener) { - const sSlot = observers ? observers.length : 0; - if (!Listener.sources) { - Listener.sources = [this]; - Listener.sourceSlots = [sSlot]; - } else { - Listener.sources.push(this); - Listener.sourceSlots.push(sSlot); - } - if (!observers) { - this.observers = [Listener]; - this.observerSlots = [Listener.sources.length - 1]; - } else { - observers.push(Listener); - this.observerSlots.push(Listener.sources.length - 1); - } - } - } - if (runningTransition && Transition.sources.has(this)) - return this.tValue; - return this.value; - } - function writeSignal(node, value, isComp) { - let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value; - if (!node.comparator || !node.comparator(current, value)) { - if (Transition) { - const TransitionRunning = Transition.running; - if (TransitionRunning || !isComp && Transition.sources.has(node)) { - Transition.sources.add(node); - node.tValue = value; - } - if (!TransitionRunning) - node.value = value; - } else - node.value = value; - if (node.observers && node.observers.length) { - runUpdates(() => { - for (let i = 0;i < node.observers.length; i += 1) { - const o = node.observers[i]; - const TransitionRunning = Transition && Transition.running; - if (TransitionRunning && Transition.disposed.has(o)) - continue; - if (TransitionRunning ? !o.tState : !o.state) { - if (o.pure) - Updates.push(o); - else - Effects.push(o); - if (o.observers) - markDownstream(o); - } - if (!TransitionRunning) - o.state = STALE; - else - o.tState = STALE; - } - if (Updates.length > 1e6) { - Updates = []; - if (IS_DEV) - ; - throw new Error; - } - }, false); - } - } - return value; - } - function updateComputation(node) { - if (!node.fn) - return; - cleanNode(node); - const time = ExecCount; - runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time); - if (Transition && !Transition.running && Transition.sources.has(node)) { - queueMicrotask(() => { - runUpdates(() => { - Transition && (Transition.running = true); - Listener = Owner = node; - runComputation(node, node.tValue, time); - Listener = Owner = null; - }, false); - }); - } - } - function runComputation(node, value, time) { - let nextValue; - const owner = Owner, listener = Listener; - Listener = Owner = node; - try { - nextValue = node.fn(value); - } catch (err) { - if (node.pure) { - if (Transition && Transition.running) { - node.tState = STALE; - node.tOwned && node.tOwned.forEach(cleanNode); - node.tOwned = undefined; - } else { - node.state = STALE; - node.owned && node.owned.forEach(cleanNode); - node.owned = null; - } - } - node.updatedAt = time + 1; - return handleError(err); - } finally { - Listener = listener; - Owner = owner; - } - if (!node.updatedAt || node.updatedAt <= time) { - if (node.updatedAt != null && "observers" in node) { - writeSignal(node, nextValue, true); - } else if (Transition && Transition.running && node.pure) { - if (!Transition.sources.has(node)) - node.value = nextValue; - Transition.sources.add(node); - node.tValue = nextValue; - } else - node.value = nextValue; - node.updatedAt = time; - } - } - function createComputation(fn, init, pure, state = STALE, options) { - const c = { - fn, - state, - updatedAt: null, - owned: null, - sources: null, - sourceSlots: null, - cleanups: null, - value: init, - owner: Owner, - context: Owner ? Owner.context : null, - pure - }; - if (Transition && Transition.running) { - c.state = 0; - c.tState = state; - } - if (Owner === null) - ; - else if (Owner !== UNOWNED) { - if (Transition && Transition.running && Owner.pure) { - if (!Owner.tOwned) - Owner.tOwned = [c]; - else - Owner.tOwned.push(c); - } else { - if (!Owner.owned) - Owner.owned = [c]; - else - Owner.owned.push(c); - } - } - if (ExternalSourceConfig && c.fn) { - const sourceFn = c.fn; - const [track, trigger] = createSignal(undefined, { - equals: false - }); - const ordinary = ExternalSourceConfig.factory(sourceFn, trigger); - onCleanup(() => ordinary.dispose()); - let inTransition; - const triggerInTransition = () => startTransition(trigger).then(() => { - if (inTransition) { - inTransition.dispose(); - inTransition = undefined; - } - }); - c.fn = (x) => { - track(); - if (Transition && Transition.running) { - if (!inTransition) - inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition); - return inTransition.track(x); - } - return ordinary.track(x); - }; - } - return c; - } - function runTop(node) { - const runningTransition = Transition && Transition.running; - if ((runningTransition ? node.tState : node.state) === 0) - return; - if ((runningTransition ? node.tState : node.state) === PENDING) - return lookUpstream(node); - if (node.suspense && untrack(node.suspense.inFallback)) - return node.suspense.effects.push(node); - const ancestors = [node]; - while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) { - if (runningTransition && Transition.disposed.has(node)) - return; - if (runningTransition ? node.tState : node.state) - ancestors.push(node); - } - for (let i = ancestors.length - 1;i >= 0; i--) { - node = ancestors[i]; - if (runningTransition) { - let top = node, prev = ancestors[i + 1]; - while ((top = top.owner) && top !== prev) { - if (Transition.disposed.has(top)) - return; - } - } - if ((runningTransition ? node.tState : node.state) === STALE) { - updateComputation(node); - } else if ((runningTransition ? node.tState : node.state) === PENDING) { - const updates = Updates; - Updates = null; - runUpdates(() => lookUpstream(node, ancestors[0]), false); - Updates = updates; - } - } - } - function runUpdates(fn, init) { - if (Updates) - return fn(); - let wait = false; - if (!init) - Updates = []; - if (Effects) - wait = true; - else - Effects = []; - ExecCount++; - try { - const res = fn(); - completeUpdates(wait); - return res; - } catch (err) { - if (!wait) - Effects = null; - Updates = null; - handleError(err); - } - } - function completeUpdates(wait) { - if (Updates) { - if (Scheduler && Transition && Transition.running) - scheduleQueue(Updates); - else - runQueue(Updates); - Updates = null; - } - if (wait) - return; - let res; - if (Transition) { - if (!Transition.promises.size && !Transition.queue.size) { - const sources = Transition.sources; - const disposed = Transition.disposed; - Effects.push.apply(Effects, Transition.effects); - res = Transition.resolve; - for (const e2 of Effects) { - "tState" in e2 && (e2.state = e2.tState); - delete e2.tState; - } - Transition = null; - runUpdates(() => { - for (const d of disposed) - cleanNode(d); - for (const v of sources) { - v.value = v.tValue; - if (v.owned) { - for (let i = 0, len = v.owned.length;i < len; i++) - cleanNode(v.owned[i]); - } - if (v.tOwned) - v.owned = v.tOwned; - delete v.tValue; - delete v.tOwned; - v.tState = 0; - } - setTransPending(false); - }, false); - } else if (Transition.running) { - Transition.running = false; - Transition.effects.push.apply(Transition.effects, Effects); - Effects = null; - setTransPending(true); - return; - } - } - const e = Effects; - Effects = null; - if (e.length) - runUpdates(() => runEffects(e), false); - if (res) - res(); - } - function runQueue(queue) { - for (let i = 0;i < queue.length; i++) - runTop(queue[i]); - } - function scheduleQueue(queue) { - for (let i = 0;i < queue.length; i++) { - const item = queue[i]; - const tasks = Transition.queue; - if (!tasks.has(item)) { - tasks.add(item); - Scheduler(() => { - tasks.delete(item); - runUpdates(() => { - Transition.running = true; - runTop(item); - }, false); - Transition && (Transition.running = false); - }); - } - } - } - function runUserEffects(queue) { - let i, userLength = 0; - for (i = 0;i < queue.length; i++) { - const e = queue[i]; - if (!e.user) - runTop(e); - else - queue[userLength++] = e; - } - if (sharedConfig.context) { - if (sharedConfig.count) { - sharedConfig.effects || (sharedConfig.effects = []); - sharedConfig.effects.push(...queue.slice(0, userLength)); - return; - } - setHydrateContext(); - } - if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) { - queue = [...sharedConfig.effects, ...queue]; - userLength += sharedConfig.effects.length; - delete sharedConfig.effects; - } - for (i = 0;i < userLength; i++) - runTop(queue[i]); - } - function lookUpstream(node, ignore) { - const runningTransition = Transition && Transition.running; - if (runningTransition) - node.tState = 0; - else - node.state = 0; - for (let i = 0;i < node.sources.length; i += 1) { - const source = node.sources[i]; - if (source.sources) { - const state = runningTransition ? source.tState : source.state; - if (state === STALE) { - if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) - runTop(source); - } else if (state === PENDING) - lookUpstream(source, ignore); - } - } - } - function markDownstream(node) { - const runningTransition = Transition && Transition.running; - for (let i = 0;i < node.observers.length; i += 1) { - const o = node.observers[i]; - if (runningTransition ? !o.tState : !o.state) { - if (runningTransition) - o.tState = PENDING; - else - o.state = PENDING; - if (o.pure) - Updates.push(o); - else - Effects.push(o); - o.observers && markDownstream(o); - } - } - } - function cleanNode(node) { - let i; - if (node.sources) { - while (node.sources.length) { - const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers; - if (obs && obs.length) { - const n = obs.pop(), s = source.observerSlots.pop(); - if (index < obs.length) { - n.sourceSlots[s] = index; - obs[index] = n; - source.observerSlots[index] = s; - } - } - } - } - if (node.tOwned) { - for (i = node.tOwned.length - 1;i >= 0; i--) - cleanNode(node.tOwned[i]); - delete node.tOwned; - } - if (Transition && Transition.running && node.pure) { - reset(node, true); - } else if (node.owned) { - for (i = node.owned.length - 1;i >= 0; i--) - cleanNode(node.owned[i]); - node.owned = null; - } - if (node.cleanups) { - for (i = node.cleanups.length - 1;i >= 0; i--) - node.cleanups[i](); - node.cleanups = null; - } - if (Transition && Transition.running) - node.tState = 0; - else - node.state = 0; - } - function reset(node, top) { - if (!top) { - node.tState = 0; - Transition.disposed.add(node); - } - if (node.owned) { - for (let i = 0;i < node.owned.length; i++) - reset(node.owned[i]); - } - } - function castError(err) { - if (err instanceof Error) - return err; - return new Error(typeof err === "string" ? err : "Unknown error", { - cause: err - }); - } - function runErrors(err, fns, owner) { - try { - for (const f of fns) - f(err); - } catch (e) { - handleError(e, owner && owner.owner || null); - } - } - function handleError(err, owner = Owner) { - const fns = ERROR && owner && owner.context && owner.context[ERROR]; - const error = castError(err); - if (!fns) - throw error; - if (Effects) - Effects.push({ - fn() { - runErrors(error, fns, owner); - }, - state: STALE - }); - else - runErrors(error, fns, owner); - } - var FALLBACK = Symbol("fallback"); - var hydrationEnabled = false; - function createComponent(Comp, props) { - if (hydrationEnabled) { - if (sharedConfig.context) { - const c = sharedConfig.context; - setHydrateContext(nextHydrateContext()); - const r = untrack(() => Comp(props || {})); - setHydrateContext(c); - return r; - } - } - return untrack(() => Comp(props || {})); - } - function trueFn() { - return true; - } - var propTraps = { - get(_, property, receiver) { - if (property === $PROXY) - return receiver; - return _.get(property); - }, - has(_, property) { - if (property === $PROXY) - return true; - return _.has(property); - }, - set: trueFn, - deleteProperty: trueFn, - getOwnPropertyDescriptor(_, property) { - return { - configurable: true, - enumerable: true, - get() { - return _.get(property); - }, - set: trueFn, - deleteProperty: trueFn - }; - }, - ownKeys(_) { - return _.keys(); - } - }; - function resolveSource(s) { - return !(s = typeof s === "function" ? s() : s) ? {} : s; - } - function resolveSources() { - for (let i = 0, length = this.length;i < length; ++i) { - const v = this[i](); - if (v !== undefined) - return v; - } - } - function mergeProps(...sources) { - let proxy = false; - for (let i = 0;i < sources.length; i++) { - const s = sources[i]; - proxy = proxy || !!s && $PROXY in s; - sources[i] = typeof s === "function" ? (proxy = true, createMemo(s)) : s; - } - if (SUPPORTS_PROXY && proxy) { - return new Proxy({ - get(property) { - for (let i = sources.length - 1;i >= 0; i--) { - const v = resolveSource(sources[i])[property]; - if (v !== undefined) - return v; - } - }, - has(property) { - for (let i = sources.length - 1;i >= 0; i--) { - if (property in resolveSource(sources[i])) - return true; - } - return false; - }, - keys() { - const keys = []; - for (let i = 0;i < sources.length; i++) - keys.push(...Object.keys(resolveSource(sources[i]))); - return [...new Set(keys)]; - } - }, propTraps); - } - const sourcesMap = {}; - const defined = Object.create(null); - for (let i = sources.length - 1;i >= 0; i--) { - const source = sources[i]; - if (!source) - continue; - const sourceKeys = Object.getOwnPropertyNames(source); - for (let i2 = sourceKeys.length - 1;i2 >= 0; i2--) { - const key = sourceKeys[i2]; - if (key === "__proto__" || key === "constructor") - continue; - const desc = Object.getOwnPropertyDescriptor(source, key); - if (!defined[key]) { - defined[key] = desc.get ? { - enumerable: true, - configurable: true, - get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)]) - } : desc.value !== undefined ? desc : undefined; - } else { - const sources2 = sourcesMap[key]; - if (sources2) { - if (desc.get) - sources2.push(desc.get.bind(source)); - else if (desc.value !== undefined) - sources2.push(() => desc.value); - } - } - } - } - const target = {}; - const definedKeys = Object.keys(defined); - for (let i = definedKeys.length - 1;i >= 0; i--) { - const key = definedKeys[i], desc = defined[key]; - if (desc && desc.get) - Object.defineProperty(target, key, desc); - else - target[key] = desc ? desc.value : undefined; - } - return target; - } - var narrowedError = (name) => `Stale read from <${name}>.`; - function Show(props) { - const keyed = props.keyed; - const conditionValue = createMemo(() => props.when, undefined, undefined); - const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, { - equals: (a, b) => !a === !b - }); - return createMemo(() => { - const c = condition(); - if (c) { - const child = props.children; - const fn = typeof child === "function" && child.length > 0; - return fn ? untrack(() => child(keyed ? c : () => { - if (!untrack(condition)) - throw narrowedError("Show"); - return conditionValue(); - })) : child; - } - return props.fallback; - }, undefined, undefined); - } - - // node_modules/solid-js/universal/dist/universal.js - var memo = (fn) => createMemo(() => fn()); - function createRenderer$1({ - createElement, - createTextNode, - isTextNode, - replaceText, - insertNode, - removeNode, - setProperty, - getParentNode, - getFirstChild, - getNextSibling - }) { - function insert(parent, accessor, marker, initial) { - if (marker !== undefined && !initial) - initial = []; - if (typeof accessor !== "function") - return insertExpression(parent, accessor, initial, marker); - createRenderEffect((current) => insertExpression(parent, accessor(), current, marker), initial); - } - function insertExpression(parent, value, current, marker, unwrapArray) { - while (typeof current === "function") - current = current(); - if (value === current) - return current; - const t = typeof value, multi = marker !== undefined; - if (t === "string" || t === "number") { - if (t === "number") - value = value.toString(); - if (multi) { - let node = current[0]; - if (node && isTextNode(node)) { - replaceText(node, value); - } else - node = createTextNode(value); - current = cleanChildren(parent, current, marker, node); - } else { - if (current !== "" && typeof current === "string") { - replaceText(getFirstChild(parent), current = value); - } else { - cleanChildren(parent, current, marker, createTextNode(value)); - current = value; - } - } - } else if (value == null || t === "boolean") { - current = cleanChildren(parent, current, marker); - } else if (t === "function") { - createRenderEffect(() => { - let v = value(); - while (typeof v === "function") - v = v(); - current = insertExpression(parent, v, current, marker); - }); - return () => current; - } else if (Array.isArray(value)) { - const array = []; - if (normalizeIncomingArray(array, value, unwrapArray)) { - createRenderEffect(() => current = insertExpression(parent, array, current, marker, true)); - return () => current; - } - if (array.length === 0) { - const replacement = cleanChildren(parent, current, marker); - if (multi) - return current = replacement; - } else { - if (Array.isArray(current)) { - if (current.length === 0) { - appendNodes(parent, array, marker); - } else - reconcileArrays(parent, current, array); - } else if (current == null || current === "") { - appendNodes(parent, array); - } else { - reconcileArrays(parent, multi && current || [getFirstChild(parent)], array); - } - } - current = array; - } else { - if (Array.isArray(current)) { - if (multi) - return current = cleanChildren(parent, current, marker, value); - cleanChildren(parent, current, null, value); - } else if (current == null || current === "" || !getFirstChild(parent)) { - insertNode(parent, value); - } else - replaceNode(parent, value, getFirstChild(parent)); - current = value; - } - return current; - } - function normalizeIncomingArray(normalized, array, unwrap) { - let dynamic = false; - for (let i = 0, len = array.length;i < len; i++) { - let item = array[i], t; - if (item == null || item === true || item === false) - ; - else if (Array.isArray(item)) { - dynamic = normalizeIncomingArray(normalized, item) || dynamic; - } else if ((t = typeof item) === "string" || t === "number") { - normalized.push(createTextNode(item)); - } else if (t === "function") { - if (unwrap) { - while (typeof item === "function") - item = item(); - dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic; - } else { - normalized.push(item); - dynamic = true; - } - } else - normalized.push(item); - } - return dynamic; - } - function reconcileArrays(parentNode, a, b) { - let bLength = b.length, aEnd = a.length, bEnd = bLength, aStart = 0, bStart = 0, after = getNextSibling(a[aEnd - 1]), map = null; - while (aStart < aEnd || bStart < bEnd) { - if (a[aStart] === b[bStart]) { - aStart++; - bStart++; - continue; - } - while (a[aEnd - 1] === b[bEnd - 1]) { - aEnd--; - bEnd--; - } - if (aEnd === aStart) { - const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after; - while (bStart < bEnd) - insertNode(parentNode, b[bStart++], node); - } else if (bEnd === bStart) { - while (aStart < aEnd) { - if (!map || !map.has(a[aStart])) - removeNode(parentNode, a[aStart]); - aStart++; - } - } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) { - const node = getNextSibling(a[--aEnd]); - insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++])); - insertNode(parentNode, b[--bEnd], node); - a[aEnd] = b[bEnd]; - } else { - if (!map) { - map = new Map; - let i = bStart; - while (i < bEnd) - map.set(b[i], i++); - } - const index = map.get(a[aStart]); - if (index != null) { - if (bStart < index && index < bEnd) { - let i = aStart, sequence = 1, t; - while (++i < aEnd && i < bEnd) { - if ((t = map.get(a[i])) == null || t !== index + sequence) - break; - sequence++; - } - if (sequence > index - bStart) { - const node = a[aStart]; - while (bStart < index) - insertNode(parentNode, b[bStart++], node); - } else - replaceNode(parentNode, b[bStart++], a[aStart++]); - } else - aStart++; - } else - removeNode(parentNode, a[aStart++]); - } - } - } - function cleanChildren(parent, current, marker, replacement) { - if (marker === undefined) { - let removed; - while (removed = getFirstChild(parent)) - removeNode(parent, removed); - replacement && insertNode(parent, replacement); - return ""; - } - const node = replacement || createTextNode(""); - if (current.length) { - let inserted = false; - for (let i = current.length - 1;i >= 0; i--) { - const el = current[i]; - if (node !== el) { - const isParent = getParentNode(el) === parent; - if (!inserted && !i) - isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker); - else - isParent && removeNode(parent, el); - } else - inserted = true; - } - } else - insertNode(parent, node, marker); - return [node]; - } - function appendNodes(parent, array, marker) { - for (let i = 0, len = array.length;i < len; i++) - insertNode(parent, array[i], marker); - } - function replaceNode(parent, newNode, oldNode) { - insertNode(parent, newNode, oldNode); - removeNode(parent, oldNode); - } - function spreadExpression(node, props, prevProps = {}, skipChildren) { - props || (props = {}); - if (!skipChildren) { - createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children)); - } - createRenderEffect(() => props.ref && props.ref(node)); - createRenderEffect(() => { - for (const prop in props) { - if (prop === "children" || prop === "ref") - continue; - const value = props[prop]; - if (value === prevProps[prop]) - continue; - setProperty(node, prop, value, prevProps[prop]); - prevProps[prop] = value; - } - }); - return prevProps; - } - return { - render(code, element) { - let disposer; - createRoot((dispose) => { - disposer = dispose; - insert(element, code()); - }); - return disposer; - }, - insert, - spread(node, accessor, skipChildren) { - if (typeof accessor === "function") { - createRenderEffect((current) => spreadExpression(node, accessor(), current, skipChildren)); - } else - spreadExpression(node, accessor, undefined, skipChildren); - }, - createElement, - createTextNode, - insertNode, - setProp(node, name, value, prev) { - setProperty(node, name, value, prev); - return value; - }, - mergeProps, - effect: createRenderEffect, - memo, - createComponent, - use(fn, element, arg) { - return untrack(() => fn(element, arg)); - } - }; - } - function createRenderer(options) { - const renderer = createRenderer$1(options); - renderer.mergeProps = mergeProps; - return renderer; - } - - // contracts/spec/spec.ts - var SCREEN_W = 480; - var SCREEN_H = 272; - var NODE_TYPE = { - view: 0, - text: 1, - image: 2 - }; - var ROOT_ID = 1; - var STYLE_ID_NONE = -1; - var PROP = { - width: 1, - height: 2, - minW: 3, - minH: 4, - maxW: 5, - maxH: 6, - paddingT: 8, - paddingR: 9, - paddingB: 10, - paddingL: 11, - marginT: 12, - marginR: 13, - marginB: 14, - marginL: 15, - gap: 16, - flexDir: 17, - justify: 18, - align: 19, - grow: 20, - shrink: 21, - basis: 22, - flexWrap: 23, - posType: 24, - insetT: 25, - insetR: 26, - insetB: 27, - insetL: 28, - display: 29, - overflow: 30, - zIndex: 31, - bgColor: 64, - gradFrom: 65, - gradTo: 66, - gradDir: 67, - radius: 68, - opacity: 69, - borderColor: 70, - borderWidth: 71, - shadow: 72, - bevelOuterLight: 77, - bevelOuterDark: 78, - bevelInnerLight: 79, - bevelInnerDark: 80, - bevelWidth: 81, - textColor: 96, - fontSlot: 97, - textAlign: 98, - lineHeight: 99, - tracking: 100, - translateX: 128, - translateY: 129, - scale: 130, - rotate: 131, - scaleX: 132, - scaleY: 133, - originX: 134, - originY: 135, - rotateX: 136, - rotateY: 137, - translateZ: 138, - perspective: 139, - arcStart: 140, - arcSweep: 141, - arcWidth: 142 - }; - var ANIMATABLE = [ - "width", - "height", - "paddingT", - "paddingR", - "paddingB", - "paddingL", - "marginT", - "marginR", - "marginB", - "marginL", - "gap", - "basis", - "insetT", - "insetR", - "insetB", - "insetL", - "bgColor", - "gradFrom", - "gradTo", - "radius", - "opacity", - "borderColor", - "borderWidth", - "textColor", - "lineHeight", - "tracking", - "translateX", - "translateY", - "scale", - "rotate", - "scaleX", - "scaleY", - "rotateX", - "rotateY", - "translateZ", - "arcStart", - "arcSweep", - "arcWidth" - ]; - function animBit(prop) { - return ANIMATABLE.indexOf(prop); - } - var VALUE_KIND = { - f32: 0, - color: 1, - int: 2 - }; - var PROP_VALUE_KIND = { - width: VALUE_KIND.f32, - height: VALUE_KIND.f32, - minW: VALUE_KIND.f32, - minH: VALUE_KIND.f32, - maxW: VALUE_KIND.f32, - maxH: VALUE_KIND.f32, - paddingT: VALUE_KIND.f32, - paddingR: VALUE_KIND.f32, - paddingB: VALUE_KIND.f32, - paddingL: VALUE_KIND.f32, - marginT: VALUE_KIND.f32, - marginR: VALUE_KIND.f32, - marginB: VALUE_KIND.f32, - marginL: VALUE_KIND.f32, - gap: VALUE_KIND.f32, - flexDir: VALUE_KIND.int, - justify: VALUE_KIND.int, - align: VALUE_KIND.int, - grow: VALUE_KIND.f32, - shrink: VALUE_KIND.f32, - basis: VALUE_KIND.f32, - flexWrap: VALUE_KIND.int, - posType: VALUE_KIND.int, - insetT: VALUE_KIND.f32, - insetR: VALUE_KIND.f32, - insetB: VALUE_KIND.f32, - insetL: VALUE_KIND.f32, - display: VALUE_KIND.int, - overflow: VALUE_KIND.int, - zIndex: VALUE_KIND.int, - bgColor: VALUE_KIND.color, - gradFrom: VALUE_KIND.color, - gradTo: VALUE_KIND.color, - gradDir: VALUE_KIND.int, - radius: VALUE_KIND.f32, - opacity: VALUE_KIND.f32, - borderColor: VALUE_KIND.color, - borderWidth: VALUE_KIND.f32, - shadow: VALUE_KIND.int, - bevelOuterLight: VALUE_KIND.color, - bevelOuterDark: VALUE_KIND.color, - bevelInnerLight: VALUE_KIND.color, - bevelInnerDark: VALUE_KIND.color, - bevelWidth: VALUE_KIND.f32, - textColor: VALUE_KIND.color, - fontSlot: VALUE_KIND.int, - textAlign: VALUE_KIND.int, - lineHeight: VALUE_KIND.f32, - tracking: VALUE_KIND.f32, - translateX: VALUE_KIND.f32, - translateY: VALUE_KIND.f32, - scale: VALUE_KIND.f32, - rotate: VALUE_KIND.f32, - scaleX: VALUE_KIND.f32, - scaleY: VALUE_KIND.f32, - originX: VALUE_KIND.f32, - originY: VALUE_KIND.f32, - rotateX: VALUE_KIND.f32, - rotateY: VALUE_KIND.f32, - translateZ: VALUE_KIND.f32, - perspective: VALUE_KIND.f32, - arcStart: VALUE_KIND.f32, - arcSweep: VALUE_KIND.f32, - arcWidth: VALUE_KIND.f32 - }; - var ENUMS = { - FlexDir: { - Row: 0, - Col: 1 - }, - Justify: { - Start: 0, - Center: 1, - End: 2, - Between: 3, - Around: 4 - }, - Align: { - Start: 0, - Center: 1, - End: 2, - Stretch: 3 - }, - PosType: { - Relative: 0, - Absolute: 1 - }, - Display: { - Flex: 0, - None: 1 - }, - Overflow: { - Visible: 0, - Hidden: 1 - }, - TextAlign: { - Left: 0, - Center: 1, - Right: 2 - }, - GradDir: { - ToTop: 0, - ToBottom: 1, - ToLeft: 2, - ToRight: 3 - }, - Easing: { - Linear: 0, - EaseIn: 1, - EaseOut: 2, - EaseInOut: 3, - OutBack: 4, - Spring: 5, - SpringBouncy: 6, - CubicBezier: 7 - } - }; - var PSM = { - PSM_5650: 0, - PSM_4444: 2, - PSM_8888: 3, - PSM_T8: 5 - }; - var IMG_FLAG_RLE = 1 << 0; - var IMG_FLAG_LINEAR = 1 << 1; - var TILESET_FLAG_RLE = 1 << 0; - var TILESET_FLAG_LINEAR = 1 << 1; - var SVC_IMG_MAX_BYTES = 128 * 1024; - var STREAM_FLAG_ENDED = 1 << 0; - var STYLE_VARIANT_BASE = 1 << 0; - var STYLE_VARIANT_FOCUS = 1 << 1; - var STYLE_VARIANT_ACTIVE = 1 << 2; - var STYLE_HAS_TRANSITION = 1 << 3; - var STYLE_HAS_ANIMATION = 1 << 4; - var ANIM_FILL_BACKWARDS = 1 << 0; - var ANIM_FILL_FORWARDS = 1 << 1; - function abgr(r, g, b, a = 255) { - return ((a & 255) << 24 | (b & 255) << 16 | (g & 255) << 8 | r & 255) >>> 0; - } - var FONT_FLAG_BOLD = 1 << 0; - var PAK_MAGIC = 1263551300; - var PAK_VERSION = 1; - var PAK_HEADER_SIZE = 32; - var PAK_ENTRY_SIZE = 24; - var BTN = { - SELECT: 1, - START: 8, - UP: 16, - RIGHT: 32, - DOWN: 64, - LEFT: 128, - LTRIGGER: 256, - RTRIGGER: 512, - TRIANGLE: 4096, - CIRCLE: 8192, - CROSS: 16384, - SQUARE: 32768 - }; - var ANALOG_CENTER = 32896; - var FIXED_DT = 1 / 60; - - // framework/src/host.ts - function hostViewport(ops) { - return ops.__viewport ?? null; - } - var current = null; - function embeddedBuildHostContract() { - const target = ""; - const hostAbi = 0; - return target && hostAbi > 0 ? { - target, - hostAbi - } : null; - } - function assertNativeHostContract(ops, expected = embeddedBuildHostContract()) { - if (!expected) - return; - if (typeof ops.__host !== "string") { - throw new Error(`PocketJS: this bundle targets "${expected.target}" but the native host predates platform ` + "contracts — add __host/__hostAbi to its ui namespace (see framework/src/host.ts HostOps)"); - } - if (ops.__host !== expected.target) { - throw new Error(`PocketJS: native target mismatch (bundle=${expected.target}, host=${ops.__host})`); - } - if (ops.__hostAbi !== expected.hostAbi) { - throw new Error(`PocketJS: native host ABI mismatch (bundle=${expected.hostAbi}, host=${ops.__hostAbi ?? "missing"})`); - } - } - function detectHost(injected) { - const native = globalThis.ui; - const nativeMarked = native !== undefined && (typeof native.__host === "string" || native.__textures !== undefined); - if (injected) { - if (native !== undefined && injected === native && nativeMarked) { - assertNativeHostContract(native); - return { - ops: injected, - kind: "native", - target: native.__host ?? "unknown", - strict: false - }; - } - return { - ops: injected, - kind: "injected", - target: injected.__host ?? "injected", - strict: true - }; - } - if (native !== undefined && nativeMarked) { - assertNativeHostContract(native); - return { - ops: native, - kind: "native", - target: native.__host ?? "unknown", - strict: false - }; - } - if (native) { - return { - ops: native, - kind: "injected", - target: "injected", - strict: true - }; - } - throw new Error("PocketJS: no host — pass HostOps to render() (web/test) or run under a native runtime (globalThis.ui)"); - } - function installHost(host) { - current = host; - } - function getHost() { - if (!current) { - throw new Error("PocketJS: host not installed — call render() first"); - } - return current; - } - function getOps() { - return getHost().ops; - } - function installFrameHandler(fn) { - globalThis.frame = fn; - } - function installResizeViewportHook(resizeViewport) { - const globals = globalThis; - const previous = globals.__pocketResizeViewport; - const hook = (width, height) => resizeViewport(width, height); - globals.__pocketResizeViewport = hook; - return () => { - if (globals.__pocketResizeViewport !== hook) - return; - if (previous) - globals.__pocketResizeViewport = previous; - else - delete globals.__pocketResizeViewport; - }; - } - function parseHexColor(s) { - let hex = s.slice(1); - if (hex.length === 3) { - hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; - } - if (hex.length !== 6 && hex.length !== 8) { - throw new Error(`PocketJS: bad color '${s}' (expected #rgb/#rrggbb/#rrggbbaa)`); - } - if (!/^[0-9a-fA-F]+$/.test(hex)) - throw new Error(`PocketJS: bad color '${s}'`); - const n = parseInt(hex, 16); - if (hex.length === 6) { - return abgr(n >>> 16 & 255, n >>> 8 & 255, n & 255, 255); - } - return abgr(n >>> 24 & 255, n >>> 16 & 255, n >>> 8 & 255, n & 255); - } - function encodePropValue(prop, value) { - const kind = PROP_VALUE_KIND[prop]; - if (typeof value === "string") { - if (kind === VALUE_KIND.color) - return parseHexColor(value); - const n = Number(value); - if (Number.isNaN(n)) { - throw new Error(`PocketJS: non-numeric value '${value}' for prop '${prop}'`); - } - value = n; - } - if (kind === VALUE_KIND.color || kind === VALUE_KIND.int) - return value >>> 0; - return value; - } - - // framework/src/clock.ts - var TICKS_PER_SECOND = 60; - var VALID_HZ = [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]; - var hz = TICKS_PER_SECOND; - var frame = -1; - var timerSeq = 0; - var timers = []; - function normalizeHz(raw) { - if (!Number.isFinite(raw) || raw <= 0) - return TICKS_PER_SECOND; - let best = VALID_HZ[0]; - for (const v of VALID_HZ) { - if (Math.abs(v - raw) < Math.abs(best - raw)) - best = v; - } - return best; - } - function ticksPerFrame() { - return TICKS_PER_SECOND / hz; - } - function virtualFrame() { - return frame < 0 ? 0 : frame; - } - function resetClock() { - const raw = globalThis.__simHz; - hz = typeof raw === "number" ? normalizeHz(raw) : TICKS_PER_SECOND; - frame = -1; - timers = []; - timerSeq = 0; - } - function __advanceClock() { - frame = frame < 0 ? 0 : frame + 1; - if (timers.length === 0) - return; - const due = timers.filter((t) => t.at <= frame).sort((a, b) => a.at - b.at || a.seq - b.seq); - if (due.length === 0) - return; - timers = timers.filter((t) => t.at > frame); - for (const t of due) - t.cb(); - } - - // framework/src/analog.ts - var ANALOG_DEADZONE = 0.12; - var analogPacked = ANALOG_CENTER; - function __setAnalog(packed) { - analogPacked = packed === undefined ? ANALOG_CENTER : packed & 65535; - } - function __resetAnalog() { - analogPacked = ANALOG_CENTER; - } - function axis(raw) { - const value = Math.max(-1, Math.min(1, (raw - 128) / 127)); - const magnitude = Math.abs(value); - if (magnitude < ANALOG_DEADZONE) - return 0; - return Math.sign(value) * (magnitude - ANALOG_DEADZONE) / (1 - ANALOG_DEADZONE); - } - function analogX() { - return axis(analogPacked >> 8 & 255); - } - function analogY() { - return axis(analogPacked & 255); - } - - // framework/src/frame.ts - var callbacks = new Set; - var buttonHandlerBlockDepth = 0; - function resetFrameHooks() { - callbacks.clear(); - buttonHandlerBlockDepth = 0; - __resetAnalog(); - } - function runFrameHooks(buttons) { - for (const cb of [...callbacks]) - cb(buttons); - } - - // framework/src/pak.ts - var map = null; - var bytes = null; - function readKey(u8, off, len) { - let s = ""; - for (let i = 0;i < len; i++) - s += String.fromCharCode(u8[off + i]); - return s; - } - function parse(ab) { - const dv = new DataView(ab); - if (ab.byteLength < PAK_HEADER_SIZE || dv.getUint32(0, true) !== PAK_MAGIC) { - throw new Error("pak: bad magic"); - } - const version = dv.getUint16(4, true); - if (version !== PAK_VERSION) { - throw new Error("pak: unsupported version " + version); - } - const entryCount = dv.getUint32(8, true); - const dirOff = dv.getUint32(12, true); - const namesOff = dv.getUint32(16, true); - const u8 = new Uint8Array(ab); - const m = new Map; - for (let i = 0;i < entryCount; i++) { - const e = dirOff + i * PAK_ENTRY_SIZE; - const blobOff = dv.getUint32(e + 4, true); - const byteLen = dv.getUint32(e + 8, true); - const nameOff = dv.getUint32(e + 12, true); - const nameLen = dv.getUint16(e + 16, true); - const dtype = u8[e + 18]; - m.set(readKey(u8, namesOff + nameOff, nameLen), { - off: blobOff, - len: byteLen, - dtype - }); - } - map = m; - bytes = u8; - } - function loadPack(ab) { - parse(ab); - } - function ensureLoaded() { - if (map) - return; - const ab = globalThis.__pak; - if (!ab) - return; - parse(ab); - } - function hasPack() { - ensureLoaded(); - return map !== null; - } - function entries(prefix = "") { - ensureLoaded(); - if (!map) - return []; - const out = []; - for (const key of map.keys()) { - if (key.length >= prefix.length && key.slice(0, prefix.length) === prefix) { - out.push(key); - } - } - out.sort(); - return out; - } - function get(key) { - ensureLoaded(); - const e = map ? map.get(key) : undefined; - if (!e) { - throw new Error("pak: missing key " + key + " (no __pak provided, or the pack is incomplete)"); - } - return bytes.slice(e.off, e.off + e.len); - } - - // framework/src/input.ts - var root = null; - var focused = null; - var pressedNode = null; - var prevButtons = 0; - var focusScopeStack = []; - var focusGridStack = []; - var focusControllerStack = []; - function setInputRoot(r) { - root = r; - focused = null; - pressedNode = null; - prevButtons = 0; - focusScopeStack.length = 0; - focusGridStack.length = 0; - focusControllerStack.length = 0; - if (cursor) { - cursor.pressTarget = null; - cursor.target = null; - cursor.spriteDirty = true; - cursor.fresh = true; - cursor.vw = 0; - if (cursor.tex >= 0) { - const ops = getOps(); - ops.setCursor?.(-1, 0, 0, 0, 0); - ops.freeTexture?.(cursor.tex); - cursor.tex = -1; - } - } - } - function registerPress(node, fn) { - node.onPress = fn ?? undefined; - } - function registerFocusable(node, on) { - node.focusable = on; - __notifyTreeMutation(); - if (!on && focused === node) { - focusNode(null); - } - } - function focusNode(node) { - if (pressedNode && pressedNode !== node) - setPressedNode(null); - focused = node; - getOps().setFocus(node ? node.id : 0); - } - function setPressedNode(node) { - if (pressedNode === node) - return; - const ops = getOps(); - if (pressedNode) - ops.setActive?.(pressedNode.id, 0); - pressedNode = node; - if (node) - ops.setActive?.(node.id, 1); - } - function activeFocusRoot() { - return focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : root; - } - function collectFocusables(node, out) { - if (!node) - return; - if (node.focusable) - out.push(node); - if (!Array.isArray(node.children)) - return; - for (let i = 0;i < node.children.length; i++) { - collectFocusables(node.children[i], out); - } - } - function focusables() { - const out = []; - const r = activeFocusRoot(); - if (r) - collectFocusables(r, out); - return out; - } - function linearDirection(direction) { - return direction === "down" || direction === "right" ? 1 : -1; - } - function moveLinearFocus(direction) { - const dir = linearDirection(direction); - const list = focusables(); - if (list.length === 0) { - if (focused) - focusNode(null); - return; - } - const i = focused ? list.indexOf(focused) : -1; - if (i < 0) { - focusNode(dir === 1 ? list[0] : list[list.length - 1]); - return; - } - const j = i + dir; - if (j < 0 || j >= list.length) - return; - focusNode(list[j]); - } - function activeGrid() { - if (!focused) - return null; - const active = activeFocusRoot(); - if (active && !isWithin(focused, active)) - return null; - for (let i = focusGridStack.length - 1;i >= 0; i--) { - const grid = focusGridStack[i]; - if (active && !isWithin(grid.node, active) && !isWithin(active, grid.node)) - continue; - if (isWithin(focused, grid.node)) - return grid; - } - return null; - } - function moveGridFocus(direction) { - const grid = activeGrid(); - if (!grid) - return false; - const list = []; - collectFocusables(grid.node, list); - if (list.length === 0) { - if (focused) - focusNode(null); - return true; - } - const columns = grid.columns; - const i = focused ? list.indexOf(focused) : -1; - if (i < 0) { - focusNode(linearDirection(direction) === 1 ? list[0] : list[list.length - 1]); - return true; - } - let j = i; - switch (direction) { - case "right": - if (i + 1 < list.length && i % columns < columns - 1) - j = i + 1; - else if (grid.wrap) - j = Math.floor(i / columns) * columns; - break; - case "left": - if (i % columns > 0) - j = i - 1; - else if (grid.wrap) - j = Math.min(list.length - 1, Math.floor(i / columns) * columns + columns - 1); - break; - case "down": - if (i + columns < list.length) - j = i + columns; - else if (grid.wrap) - j = i % columns; - break; - case "up": - if (i - columns >= 0) - j = i - columns; - else if (grid.wrap) { - const col = i % columns; - j = col; - while (j + columns < list.length) - j += columns; - } - break; - } - if (j !== i) - focusNode(list[j]); - return true; - } - function activeController() { - if (!focused) - return null; - const active = activeFocusRoot(); - if (active && !isWithin(focused, active)) - return null; - for (let i = focusControllerStack.length - 1;i >= 0; i--) { - const ctl = focusControllerStack[i]; - if (active && !isWithin(ctl.node, active) && !isWithin(active, ctl.node)) - continue; - if (isWithin(focused, ctl.node)) - return ctl; - } - return null; - } - function moveFocus(direction) { - const ctl = activeController(); - if (ctl && ctl.move(direction)) - return; - if (moveGridFocus(direction)) - return; - moveLinearFocus(direction); - } - function firePress() { - let n = focused; - while (n) { - if (n.onPress) { - n.onPress(); - return; - } - n = n.parent; - } - } - function isWithin(node, ancestor) { - if (!node || !ancestor) - return false; - let n = node; - while (n) { - if (n === ancestor) - return true; - n = n.parent; - } - return false; - } - function firstFocusable(node) { - if (!node) - return null; - if (node.focusable) - return node; - if (!Array.isArray(node.children)) - return null; - for (let i = 0;i < node.children.length; i++) { - const f = firstFocusable(node.children[i]); - if (f) - return f; - } - return null; - } - function notifyDetached(node) { - if (!focused || !isWithin(focused, node)) - return; - const parent = node.parent; - if (parent) { - const idx = parent.children.indexOf(node); - for (let i = idx + 1;i < parent.children.length; i++) { - const f = firstFocusable(parent.children[i]); - if (f) { - focusNode(f); - return; - } - } - for (let i = idx - 1;i >= 0; i--) { - const f = firstFocusable(parent.children[i]); - if (f) { - focusNode(f); - return; - } - } - let a = parent; - while (a) { - if (a.focusable) { - focusNode(a); - return; - } - a = a.parent; - } - } - focusNode(null); - } - var cursor = null; - var inputGen = 0; - function __notifyTreeMutation() { - inputGen++; - } - var ARROW_OUTLINE = [1, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1985, 73, 149, 147, 288, 480]; - var ARROW_FILL = [0, 0, 2, 6, 14, 30, 62, 126, 254, 510, 62, 54, 98, 96, 192, 0]; - function defaultArrowRGBA() { - const px = new Uint8Array(16 * 16 * 4); - for (let y = 0;y < 16; y++) { - for (let x = 0;x < 16; x++) { - const outline = ARROW_OUTLINE[y] >> x & 1; - const fill = ARROW_FILL[y] >> x & 1; - if (!outline && !fill) - continue; - const i = (y * 16 + x) * 4; - const v = fill ? 255 : 0; - px[i] = v; - px[i + 1] = v; - px[i + 2] = v; - px[i + 3] = 255; - } - } - return px; - } - function cursorInitSprite(c, ops) { - const sprite = c.sprite; - c.spriteDirty = false; - const old = c.tex; - let tex = -1; - let blob = null; - if (typeof sprite.image === "string") { - try { - blob = get(sprite.image); - } catch (err) { - if (getHost().strict) - throw err; - blob = null; - } - } else if (sprite.image) { - blob = sprite.image; - } - if (blob) { - tex = ops.uploadImgEntry ? ops.uploadImgEntry(blob) : uploadImgFallback(ops, blob); - if (tex < 0 && getHost().strict) { - throw new Error("enableCursor: cursor image rejected (malformed or RLE-only IMG entry)"); - } - } - if (tex < 0) { - tex = ops.uploadTexture(defaultArrowRGBA(), 16, 16, PSM.PSM_8888); - } - c.tex = tex; - ops.setCursor(tex, sprite.hotspot[0], sprite.hotspot[1], sprite.size[0], sprite.size[1]); - if (old >= 0 && old !== tex) - ops.freeTexture?.(old); - } - function uploadImgFallback(ops, blob) { - if (blob.length < 8) - return -1; - const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); - if (blob[5] & IMG_FLAG_RLE) - return -1; - return ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); - } - function findMirror(node, id) { - if (!node || id === 0) - return null; - if (node.id === id) - return node; - const kids = node.children; - if (!Array.isArray(kids)) - return null; - for (let i = 0;i < kids.length; i++) { - const found = findMirror(kids[i], id); - if (found) - return found; - } - return null; - } - var hitRoot = null; - function setHitRoot(r) { - hitRoot = r; - } - function cursorTarget(hit) { - const scope = focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : null; - let n = hit; - while (n) { - if (n.focusable && (!scope || isWithin(n, scope))) - return n; - n = n.parent; - } - return null; - } - function cursorFrame(buttons, pressed, released) { - const c = cursor; - const ops = getOps(); - if (!ops.hitTest || !ops.setCursor || !ops.setCursorPos) - return false; - if (c.vw === 0) { - const vp = hostViewport(ops); - c.vw = vp ? vp.w : SCREEN_W; - c.vh = vp ? vp.h : SCREEN_H; - if (c.x < 0) { - c.x = Math.floor(c.vw / 2); - c.y = Math.floor(c.vh / 2); - } - } - if (c.spriteDirty) - cursorInitSprite(c, ops); - let vx = analogX() * c.speed; - let vy = analogY() * c.speed; - if (c.dpadSpeed > 0 && vx === 0 && vy === 0) { - if (buttons & BTN.LEFT) - vx = -c.dpadSpeed; - if (buttons & BTN.RIGHT) - vx = c.dpadSpeed; - if (buttons & BTN.UP) - vy = -c.dpadSpeed; - if (buttons & BTN.DOWN) - vy = c.dpadSpeed; - } - let moved = c.fresh; - if (vx !== 0 || vy !== 0) { - const dt = ticksPerFrame() / 60; - const nx = Math.min(Math.max(c.x + vx * dt, 0), c.vw - 1); - const ny = Math.min(Math.max(c.y + vy * dt, 0), c.vh - 1); - if (nx !== c.x || ny !== c.y) { - c.x = nx; - c.y = ny; - moved = true; - } - } - if (moved) - ops.setCursorPos(c.x, c.y); - const edges = (pressed | released) & c.button; - const gen = inputGen; - if (moved || edges !== 0 || gen !== c.gen) { - c.gen = gen; - c.fresh = false; - c.target = cursorTarget(findMirror(hitRoot ?? root, ops.hitTest(c.x, c.y))); - } - const target = c.target; - if (target !== focused) - focusNode(target); - if (pressed & c.button && target) { - c.pressTarget = target; - } - if (c.pressTarget) { - setPressedNode(target === c.pressTarget ? c.pressTarget : null); - if (released & c.button) { - const fire = target === c.pressTarget; - c.pressTarget = null; - setPressedNode(null); - if (fire) - firePress(); - } - } else if (released & c.button) { - setPressedNode(null); - } - return true; - } - function handleFrame(buttons) { - const pressed = buttons & ~prevButtons; - const released = prevButtons & ~buttons; - prevButtons = buttons; - if (cursor && cursorFrame(buttons, pressed, released)) - return; - if (released & BTN.CIRCLE) - setPressedNode(null); - if (pressed === 0) - return; - if (pressed & BTN.DOWN) - moveFocus("down"); - if (pressed & BTN.RIGHT) - moveFocus("right"); - if (pressed & BTN.UP) - moveFocus("up"); - if (pressed & BTN.LEFT) - moveFocus("left"); - if (pressed & BTN.CIRCLE) { - setPressedNode(focused); - firePress(); - } - } - - // framework/src/native-tree.ts - var treeMutationHook = null; - function setTreeMutationHook(fn) { - treeMutationHook = fn; - } - function treeMutated() { - __notifyTreeMutation(); - if (treeMutationHook) - treeMutationHook(); - } - function setDebugName(node, name) { - node.debugName = name || undefined; - treeMutated(); - } - var rootMirror = { - id: ROOT_ID, - type: NODE_TYPE.view, - parent: null, - children: [], - domNodeType: 1, - domTag: "root" - }; - var DOM_NODE = Symbol.for("pocketjs.native-node"); - var DOM_ELEMENT = 1; - var DOM_TEXT = 3; - var DOM_COMMENT = 8; - var NATIVE_ATTRIBUTE_NAMES = new Set(["class", "className", "style", "src", "onPress", "on:press", "focusable", "debugName", "ref", "nodeRef", "key", "children"]); - function domAttrs(node) { - return node.domAttrs ??= {}; - } - function cloneNativeNode(node, deep) { - const nodeType = node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); - const clone = nodeType === DOM_TEXT ? createTextNode(node.text ?? "") : nodeType === DOM_COMMENT ? createCommentNode(node.domData ?? "") : createElement(node.domTag ?? tagName(node)); - for (const key of Object.keys(node.domAttrs ?? {})) { - setDomAttribute(clone, key, node.domAttrs[key]); - } - if (deep) { - for (const child of node.children) - insertNode(clone, cloneNativeNode(child, true)); - } - return clone; - } - function setDomAttribute(node, name, value) { - if (NATIVE_ATTRIBUTE_NAMES.has(name)) { - setProp(node, name, value, node.domAttrs?.[name]); - return; - } - if (value == null) - delete domAttrs(node)[name]; - else - domAttrs(node)[name] = value; - } - function decorateNativeNode(node) { - if (node[DOM_NODE] === true) - return node; - Object.defineProperty(node, DOM_NODE, { - value: true - }); - Object.defineProperties(node, { - nodeType: { - configurable: true, - get() { - return node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); - } - }, - nodeValue: { - configurable: true, - get() { - return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; - }, - set(value) { - if (node.domNodeType === DOM_COMMENT) - node.domData = String(value ?? ""); - else - replaceText(node, String(value ?? "")); - } - }, - data: { - configurable: true, - get() { - return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; - }, - set(value) { - if (node.domNodeType === DOM_COMMENT) - node.domData = String(value ?? ""); - else - replaceText(node, String(value ?? "")); - } - }, - textContent: { - configurable: true, - get() { - if (node.domNodeType === DOM_COMMENT) - return node.domData ?? ""; - if (isTextNode(node)) - return node.text ?? ""; - return node.children.map((child) => child.text ?? "").join(""); - }, - set(value) { - const text = String(value ?? ""); - if (node.domNodeType === DOM_COMMENT) { - node.domData = text; - } else if (isTextNode(node)) { - replaceText(node, text); - } else { - clearContainer(node); - if (text) - insertNode(node, createTextNode(text)); - } - } - }, - parentNode: { - configurable: true, - get() { - return node.parent; - } - }, - parentElement: { - configurable: true, - get() { - return node.parent; - } - }, - childNodes: { - configurable: true, - get() { - return node.children; - } - }, - firstChild: { - configurable: true, - get() { - return node.children[0] ?? null; - } - }, - lastChild: { - configurable: true, - get() { - return node.children[node.children.length - 1] ?? null; - } - }, - nextSibling: { - configurable: true, - get() { - return getNextSibling(node) ?? null; - } - }, - previousSibling: { - configurable: true, - get() { - const parent = node.parent; - if (!parent) - return null; - const index = parent.children.indexOf(node); - return index > 0 ? parent.children[index - 1] : null; - } - }, - tagName: { - configurable: true, - get() { - return (node.domTag ?? tagName(node)).toUpperCase(); - } - }, - nodeName: { - configurable: true, - get() { - if (node.domNodeType === DOM_TEXT) - return "#text"; - if (node.domNodeType === DOM_COMMENT) - return "#comment"; - return (node.domTag ?? tagName(node)).toUpperCase(); - } - }, - className: { - configurable: true, - get() { - return String(node.domAttrs?.class ?? ""); - }, - set(value) { - setProp(node, "class", value, node.domAttrs?.class); - } - }, - isConnected: { - configurable: true, - get() { - let current2 = node; - while (current2) { - if (current2 === rootMirror) - return true; - current2 = current2.parent; - } - return false; - } - } - }); - const methods = { - appendChild(child) { - insertNode(node, child); - return child; - }, - insertBefore(child, anchor) { - insertNode(node, child, anchor ?? null); - return child; - }, - removeChild(child) { - removeNode(node, child); - return child; - }, - replaceChild(next, current2) { - insertNode(node, next, current2); - removeNode(node, current2); - return current2; - }, - cloneNode(deep = false) { - return cloneNativeNode(node, !!deep); - }, - remove() { - if (node.parent) - removeNode(node.parent, node); - }, - setAttribute(name, value) { - setDomAttribute(node, name, value); - }, - removeAttribute(name) { - setDomAttribute(node, name, undefined); - }, - getAttribute(name) { - const value = node.domAttrs?.[name]; - return value == null ? null : String(value); - }, - hasAttribute(name) { - return node.domAttrs?.[name] != null; - }, - hasChildNodes() { - return node.children.length > 0; - }, - contains(other) { - let current2 = other ?? null; - while (current2) { - if (current2 === node) - return true; - current2 = current2.parent; - } - return false; - }, - addEventListener() {}, - removeEventListener() {} - }; - Object.assign(node, methods, { - style: { - length: 0, - item: () => "" - }, - classList: { - add() {}, - remove() {} - } - }); - return node; - } - decorateNativeNode(rootMirror); - var styleResolver = null; - function setStyleResolver(fn) { - styleResolver = fn; - } - var missCounters = { - unknownClass: 0, - unknownTexture: 0 - }; - var textures = new Map; - function registerTexture(key, handle) { - textures.set(key, handle); - } - var sprites = new Map; - function registerSprite(key, meta) { - sprites.set(key, meta); - } - var sweepSet = new Set; - var retained = new Set; - function subtreeHasRetained(node) { - if (!node) - return false; - if (retained.has(node)) - return true; - if (node.children) { - for (let i = 0;i < node.children.length; i++) { - if (subtreeHasRetained(node.children[i])) - return true; - } - } - return false; - } - function runSweep() { - if (sweepSet.size === 0) - return; - const ops = getOps(); - const keep = []; - for (const node of sweepSet) { - if (!node) - continue; - if (node.parent !== null) - continue; - if (subtreeHasRetained(node)) { - keep.push(node); - continue; - } - ops.destroyNode(node.id); - } - sweepSet.clear(); - for (let i = 0;i < keep.length; i++) - sweepSet.add(keep[i]); - } - function createElement(tag) { - const type = NODE_TYPE[tag]; - if (type === undefined) { - throw new Error(`PocketJS: unknown element <${tag}> - only view/text/image exist`); - } - return decorateNativeNode({ - id: getOps().createNode(type), - type, - parent: null, - children: [], - domNodeType: DOM_ELEMENT, - domTag: tag - }); - } - function createTextNode(value) { - const ops = getOps(); - const id = ops.createNode(NODE_TYPE.text); - ops.setText(id, value); - return decorateNativeNode({ - id, - type: NODE_TYPE.text, - parent: null, - children: [], - text: value, - domNodeType: DOM_TEXT, - domTag: "#text" - }); - } - function createCommentNode(data = "") { - const node = createTextNode(""); - node.domNodeType = DOM_COMMENT; - node.domTag = "#comment"; - node.domData = data; - return node; - } - function replaceText(node, value) { - getOps().replaceText(node.id, value); - node.text = value; - treeMutated(); - } - function isTextNode(node) { - return node.type === NODE_TYPE.text; - } - function unlink(node) { - const p = node.parent; - if (!p) - return; - const i = p.children.indexOf(node); - if (i >= 0) - p.children.splice(i, 1); - node.parent = null; - } - function insertNode(parent, node, anchor) { - const ops = getOps(); - unlink(node); - sweepSet.delete(node); - ops.insertBefore(parent.id, node.id, anchor ? anchor.id : 0); - if (anchor) { - const i = parent.children.indexOf(anchor); - if (i < 0) - throw new Error("PocketJS: insert anchor is not a child of parent"); - parent.children.splice(i, 0, node); - } else { - parent.children.push(node); - } - node.parent = parent; - treeMutated(); - } - function removeNode(parent, node) { - if (!node) - return; - notifyDetached(node); - getOps().removeChild(parent.id, node.id); - unlink(node); - sweepSet.add(node); - treeMutated(); - } - function getParentNode(node) { - return node.parent ?? undefined; - } - function getFirstChild(node) { - return node.children[0]; - } - function getNextSibling(node) { - const p = node.parent; - if (!p) - return; - const i = p.children.indexOf(node); - return i >= 0 ? p.children[i + 1] : undefined; - } - function setClass(node, value) { - const ops = getOps(); - treeMutated(); - if (value == null || value === "") { - ops.setStyle(node.id, STYLE_ID_NONE); - return; - } - if (typeof value !== "string") { - throw new Error("PocketJS: class must be a string literal of utilities"); - } - const styleId = styleResolver ? styleResolver(value) : undefined; - if (styleId === undefined) { - if (getHost().strict) { - throw new Error(`PocketJS: unknown class "${value}" - not in the compiled style table ` + "(dynamic classes must be ternaries of full literals)"); - } - missCounters.unknownClass++; - return; - } - ops.setStyle(node.id, styleId); - } - function setSrc(node, value) { - const ops = getOps(); - if (value == null || value === "") { - ops.setImage(node.id, -1); - return; - } - if (typeof value !== "string") { - throw new Error("PocketJS: src must be a string key"); - } - const handle = textures.get(value); - if (handle === undefined) { - if (getHost().strict) { - throw new Error(`PocketJS: unknown image src "${value}" - no texture registered under that key`); - } - missCounters.unknownTexture++; - return; - } - ops.setImage(node.id, handle); - } - function setSpriteSrc(node, value) { - const ops = getOps(); - if (value == null || value === "") { - ops.setSprite(node.id, -1, 0, 0, 0); - return; - } - if (typeof value !== "string") { - throw new Error("PocketJS: sprite must be a string key"); - } - const meta = sprites.get(value); - if (meta === undefined) { - if (getHost().strict) { - throw new Error(`PocketJS: unknown sprite "${value}" - no sprite atlas registered under that key`); - } - missCounters.unknownTexture++; - return; - } - ops.setSprite(node.id, meta.handle, meta.frames, meta.cols, meta.step); - } - function setStyleObject(node, value, prev) { - const ops = getOps(); - const next = value ?? {}; - const before = prev ?? {}; - let changed = false; - for (const key in next) { - const v = next[key]; - if (before[key] === v) - continue; - const propId = PROP[key]; - if (propId === undefined) { - throw new Error(`PocketJS: unknown style prop '${key}' (see spec PROP)`); - } - ops.setProp(node.id, propId, encodePropValue(key, v)); - changed = true; - } - if (changed) - treeMutated(); - } - function setProp(node, name, value, prev) { - if (value === prev && name !== "style") - return value; - if (name === "className") - name = "class"; - if (name !== "children" && name !== "key" && name !== "ref" && name !== "nodeRef") { - if (value == null) - delete domAttrs(node)[name]; - else - domAttrs(node)[name] = value; - } - switch (name) { - case "class": - setClass(node, value); - return value; - case "onPress": - case "on:press": - registerPress(node, value); - return value; - case "src": - setSrc(node, value); - return value; - case "sprite": - setSpriteSrc(node, value); - return value; - case "style": - setStyleObject(node, value, prev); - return value; - case "focusable": - registerFocusable(node, !!value); - return value; - case "debugName": - setDebugName(node, value == null ? undefined : String(value)); - return value; - case "ref": - case "nodeRef": - case "key": - case "children": - return value; - default: - break; - } - if (name === "classList") { - throw new Error("PocketJS: classList is not supported - use ternaries of full class literals"); - } - if (name.startsWith("on:") || name.startsWith("bool:") || name.startsWith("prop:")) { - throw new Error(`PocketJS: unsupported namespaced attribute '${name}'`); - } - throw new Error(`PocketJS: unknown property '${name}' on <${tagName(node)}>`); - } - function clearContainer(container) { - for (const child of [...container.children]) - removeNode(container, child); - } - function tagName(node) { - for (const key of Object.keys(NODE_TYPE)) { - if (NODE_TYPE[key] === node.type) - return key; - } - return String(node.type); - } - - // framework/src/renderer-solid.ts - function setProperty(node, name, value, prev) { - if (name === "ref" && typeof value === "function") { - value(node); - return; - } - setProp(node, name, value, prev); - } - var renderer = createRenderer({ - createElement, - createTextNode, - replaceText, - isTextNode, - setProperty, - insertNode(parent, node, anchor) { - insertNode(parent, node, anchor); - }, - removeNode(parent, node) { - removeNode(parent, node); - }, - getParentNode, - getFirstChild, - getNextSibling - }); - var { - render, - effect, - memo: memo2, - createComponent: createComponent2, - createElement: createElement2, - insert, - spread, - mergeProps: mergeProps2, - use - } = renderer; - - // framework/src/anim.ts - var EASING_BY_NAME = { - linear: ENUMS.Easing.Linear, - in: ENUMS.Easing.EaseIn, - out: ENUMS.Easing.EaseOut, - "in-out": ENUMS.Easing.EaseInOut, - "out-back": ENUMS.Easing.OutBack, - spring: ENUMS.Easing.Spring, - "spring-bouncy": ENUMS.Easing.SpringBouncy - }; - function nodeId(node) { - return typeof node === "number" ? node : node.id; - } - function animatablePropId(prop) { - const propId = PROP[prop]; - if (propId === undefined) { - throw new Error(`PocketJS: unknown prop '${prop}'`); - } - if (animBit(prop) < 0) { - throw new Error(`PocketJS: prop '${prop}' is not animatable (see spec ANIMATABLE)`); - } - return propId; - } - function animate(node, prop, to, opts = {}) { - const propId = animatablePropId(prop); - let easing; - if (typeof opts.easing === "number") { - easing = opts.easing; - } else { - const named = EASING_BY_NAME[opts.easing ?? "out"]; - if (named === undefined) { - throw new Error(`PocketJS: unknown easing '${opts.easing}'`); - } - easing = named; - } - return getOps().animate(nodeId(node), propId, encodePropValue(prop, to), opts.dur ?? 200, easing, opts.delay ?? 0); - } - function spring(node, prop, to, preset = "default") { - const propId = animatablePropId(prop); - const easing = preset === "bouncy" ? ENUMS.Easing.SpringBouncy : ENUMS.Easing.Spring; - return getOps().animate(nodeId(node), propId, encodePropValue(prop, to), 0, easing, 0); - } - - // framework/src/overlay.ts - var overlayRoot = null; - function setOverlayRoot(root2) { - overlayRoot = root2; - } - // framework/src/primitives.ts - function callRef(ref, node) { - if (!ref) - return; - if (typeof ref === "function") - ref(node); - else if ("current" in ref) - ref.current = node; - } - function primitive(tag, props) { - const el = createElement2(tag); - spread(el, props, false); - callRef(props.nodeRef, el); - return el; - } - function View(props) { - return primitive("view", props); - } - function Text(props) { - return primitive("text", props); - } - // framework/src/hot.ts - var lastText = new WeakMap; - var lastProp = new WeakMap; - - // framework/src/platform.ts - var features = {} !== null ? Object.freeze({ - ...{} - }) : Object.freeze({}); - var platform = Object.freeze({ - target: "", - pixelRatio: Number.isInteger(1) ? 1 : 1, - features - }); - - // framework/src/tiles.ts - var parsed = new Map; - // apps/cards/app.tsx - var CARDS = [{ - title: "Layout", - caption: "Flexbox via Taffy", - detail: "Rows, columns, gaps and insets — solved natively in Rust.", - cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-blue-50 focus:border-blue-500 focus:translate-y-0 transition-all duration-150 ease-out", - strip: "h-1 w-full rounded-sm bg-gradient-to-r from-blue-500 to-blue-600", - bar: "w-1 h-7 bg-blue-500" - }, { - title: "Motion", - caption: "Springs and tweens", - detail: "Fixed-dt springs and tweens tick natively at 60 FPS.", - cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-emerald-50 focus:border-emerald-500 focus:translate-y-0 transition-all duration-150 ease-out", - strip: "h-1 w-full rounded-sm bg-gradient-to-r from-emerald-500 to-emerald-600", - bar: "w-1 h-7 bg-emerald-500" - }, { - title: "Input", - caption: "D-pad and focus", - detail: "Native focus variants respond before JS even wakes up.", - cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-amber-50 focus:border-amber-500 focus:translate-y-0 transition-all duration-150 ease-out", - strip: "h-1 w-full rounded-sm bg-gradient-to-r from-amber-500 to-amber-600", - bar: "w-1 h-7 bg-amber-500" - }]; - function Detail(props) { - let el; - onMount(() => { - if (el) - spring(el, "translateY", 0); - }); - return createComponent2(View, { - ref(r$) { - var _ref$ = el; - typeof _ref$ === "function" ? _ref$(r$) : el = r$; - }, - debugName: "Detail", - style: { - translateY: 22 - }, - class: "flex-row items-center gap-3 p-3 rounded-xl shadow-md bg-white border-slate-200", - get children() { - return [createComponent2(View, { - get ["class"]() { - return props.card.bar; - } - }), createComponent2(View, { - class: "flex-col gap-1", - get children() { - return [createComponent2(Text, { - class: "text-sm text-slate-950 font-bold", - get children() { - return props.card.title; - } - }), createComponent2(Text, { - class: "text-xs text-slate-600", - get children() { - return props.card.detail; - } - })]; - } - })]; - } - }); - } - function Cards() { - const [open, setOpen] = createSignal(-1); - const selected = () => open() >= 0 ? CARDS[open()] : undefined; - let streakA; - let streakB; - onMount(() => { - if (streakA) - animate(streakA, "translateX", 300, { - dur: 20000, - easing: "linear" - }); - if (streakB) - animate(streakB, "translateX", -260, { - dur: 26000, - easing: "linear" - }); - }); - return createComponent2(View, { - debugName: "CardsScreen", - class: "relative flex-col w-full h-full p-4 gap-3 bg-slate-50 overflow-hidden", - get children() { - return [createComponent2(View, { - ref(r$) { - var _ref$2 = streakA; - typeof _ref$2 === "function" ? _ref$2(r$) : streakA = r$; - }, - class: "absolute left-0 top-[58] w-64 h-1 rounded-full opacity-50 bg-gradient-to-r from-blue-300 to-transparent", - style: { - translateX: 24 - } - }), createComponent2(View, { - ref(r$) { - var _ref$3 = streakB; - typeof _ref$3 === "function" ? _ref$3(r$) : streakB = r$; - }, - class: "absolute left-[210] top-[246] w-56 h-1 rounded-full opacity-40 bg-gradient-to-l from-cyan-300 to-transparent", - style: { - translateX: 0 - } - }), createComponent2(View, { - debugName: "Header", - class: "flex-row items-end justify-between", - get children() { - return [createComponent2(View, { - class: "flex-col", - get children() { - return [createComponent2(Text, { - class: "text-xs text-blue-600 tracking-wide", - children: "POCKETJS SHOWCASE" - }), createComponent2(Text, { - class: "text-2xl text-slate-950 font-bold", - children: "Feature Cards" - })]; - } - }), createComponent2(Text, { - class: "text-xs text-slate-500", - children: "3 MODULES" - })]; - } - }), createComponent2(View, { - debugName: "CardRow", - class: "flex-row gap-3", - get children() { - return CARDS.map((card, i) => createComponent2(View, { - get ["class"]() { - return card.cls; - }, - focusable: true, - onPress: () => setOpen(open() === i ? -1 : i), - get children() { - return [createComponent2(View, { - get ["class"]() { - return card.strip; - } - }), createComponent2(Text, { - class: "text-sm text-slate-950 font-bold", - get children() { - return card.title; - } - }), createComponent2(Text, { - class: "text-xs text-slate-600", - get children() { - return card.caption; - } - })]; - } - })); - } - }), createComponent2(View, { - debugName: "DetailPane", - class: "grow flex-col", - get children() { - return createComponent2(Show, { - get when() { - return selected(); - }, - keyed: true, - children: (card) => createComponent2(Detail, { - card - }) - }); - } - }), createComponent2(Text, { - class: "text-xs text-slate-500", - children: "LEFT / RIGHT move focus · CIRCLE toggle details" - })]; - } - }); - } - - // framework/src/devtools.ts - var TAPE_CAP = 36000; - var TREE_THROTTLE = 30; - var STATS_EVERY = 30; - var state = { - ops: null, - transport: null, - app: undefined, - frame: 0, - tape: new Uint16Array(TAPE_CAP), - tapeAnalog: new Uint16Array(TAPE_CAP), - tapeStart: 0, - tapeLen: 0, - tapeFirstFrame: 0, - replayMasks: null, - replayAnalog: null, - replayAt: 0, - paused: false, - stepQueued: 0, - inspectReportId: null, - inspectAskedAt: 0, - treeDirty: true, - treeSentAt: -TREE_THROTTLE, - saidHello: false, - hostCalls: 0 - }; - function initDevtools(ops) { - const g = globalThis; - if (!g.console) - g.console = { - log() {}, - warn() {}, - error() {} - }; - state.ops = ops; - state.frame = 0; - state.tapeStart = 0; - state.tapeLen = 0; - state.tapeFirstFrame = 0; - state.replayMasks = null; - state.replayAnalog = null; - state.paused = false; - state.stepQueued = 0; - state.inspectReportId = null; - state.inspectAskedAt = 0; - state.treeDirty = true; - state.treeSentAt = -TREE_THROTTLE; - state.saidHello = false; - state.hostCalls = 0; - state.app = globalThis.__pocketApp; - const injected = globalThis.__pocketDevtoolsTransport; - if (injected) { - state.transport = injected; - } else if (ops.__dbgActive?.() && ops.__dbgPoll && ops.__dbgSend) { - state.transport = { - send: (l) => ops.__dbgSend(l), - recv: () => ops.__dbgPoll(), - everyFrames: 10 - }; - } else { - state.transport = null; - } - if (state.transport) { - setTreeMutationHook(() => { - state.treeDirty = true; - }); - bridgeConsole(); - } else { - setTreeMutationHook(null); - } - globalThis.__pocketDevtools = api; - } - function wrapFrameHandler(h) { - return (buttons, analogArg, touchArg) => { - state.hostCalls++; - if (state.transport) { - pollTransport(); - flushInspectReport(); - } - let mask = buttons; - let analog = analogArg === undefined ? ANALOG_CENTER : analogArg & 65535; - let touch = touchArg; - if (state.replayMasks) { - if (state.replayAt < state.replayMasks.length) { - mask = state.replayMasks[state.replayAt]; - analog = state.replayAnalog ? state.replayAnalog[state.replayAt] : ANALOG_CENTER; - touch = undefined; - state.replayAt++; - } else { - state.replayMasks = null; - state.replayAnalog = null; - send({ - t: "replayDone", - frame: state.frame - }); - } - } - if (state.paused) { - if (state.stepQueued <= 0) - return; - state.stepQueued--; - state.ops?.debugStep?.(); - } - recordMask(mask, analog); - state.frame++; - try { - h(mask, analog, touch); - } catch (e) { - send({ - t: "error", - frame: state.frame, - message: e instanceof Error ? e.message : String(e), - stack: e instanceof Error ? e.stack : undefined - }); - throw e; - } - if (state.transport) - afterFrame(); - }; - } - function recordMask(mask, analog) { - if (state.tapeLen < TAPE_CAP) { - const at = (state.tapeStart + state.tapeLen) % TAPE_CAP; - state.tape[at] = mask; - state.tapeAnalog[at] = analog; - state.tapeLen++; - } else { - state.tape[state.tapeStart] = mask; - state.tapeAnalog[state.tapeStart] = analog; - state.tapeStart = (state.tapeStart + 1) % TAPE_CAP; - state.tapeFirstFrame++; - } - } - function rlePairs(ring) { - const out = []; - for (let i = 0;i < state.tapeLen; i++) { - const v = ring[(state.tapeStart + i) % TAPE_CAP]; - const last = out[out.length - 1]; - if (last && last[0] === v) - last[1]++; - else - out.push([v, 1]); - } - return out; - } - function exportTape() { - const tape = { - v: 1, - app: state.app, - frames: state.tapeLen, - masks: rlePairs(state.tape), - startFrame: state.tapeFirstFrame - }; - const analog = rlePairs(state.tapeAnalog); - if (analog.length > 1 || analog.length === 1 && analog[0][0] !== ANALOG_CENTER) { - tape.analog = analog; - } - return tape; - } - function expandPairs(pairs, fill, total) { - const out = new Uint16Array(total).fill(fill); - let at = 0; - for (const [v, n] of pairs) { - out.fill(v, at, Math.min(at + n, total)); - at += n; - } - return out; - } - function expandTape(tape) { - let total = 0; - for (const [, n] of tape.masks) - total += n; - return expandPairs(tape.masks, 0, total); - } - function expandTapeAnalog(tape) { - let total = 0; - for (const [, n] of tape.masks) - total += n; - return expandPairs(tape.analog ?? [], ANALOG_CENTER, total); - } - function send(msg) { - try { - state.transport?.send(JSON.stringify(msg)); - } catch {} - } - function pollTransport() { - const t = state.transport; - const every = t.everyFrames ?? 1; - if (every > 1 && state.hostCalls % every !== 0) - return; - if (!state.saidHello) { - state.saidHello = true; - send({ - t: "hello", - app: state.app, - host: hostKind(), - frame: state.frame - }); - } - for (let guard = 0;guard < 64; guard++) { - const chunk = t.recv(); - if (!chunk) - break; - for (const line of chunk.split(` -`)) { - if (line.trim()) - handleMessage(line); - } - } - } - function handleMessage(line) { - let msg; - try { - msg = JSON.parse(line); - } catch { - return; - } - const ops = state.ops; - switch (msg.t) { - case "inspect": { - const id = typeof msg.id === "number" ? msg.id : 0; - ops?.debugInspect?.(id); - state.inspectReportId = id || null; - state.inspectAskedAt = state.hostCalls; - if (!id) - send({ - t: "inspect", - id: 0, - rect: null - }); - break; - } - case "pause": - state.paused = true; - state.stepQueued = 0; - ops?.debugPause?.(true); - sendStats(); - break; - case "resume": - state.paused = false; - ops?.debugPause?.(false); - sendStats(); - break; - case "step": - state.stepQueued += typeof msg.n === "number" && msg.n > 0 ? msg.n : 1; - break; - case "getTree": - sendTree(); - break; - case "eval": { - let ok = true; - let value; - try { - value = fmt((0, eval)(String(msg.code))); - } catch (e) { - ok = false; - value = e instanceof Error ? `${e.name}: ${e.message}` : String(e); - } - send({ - t: "evalResult", - id: msg.id, - ok, - value - }); - break; - } - case "dumpTape": - send({ - t: "tape", - tape: exportTape() - }); - break; - case "devStats": { - let data = null; - const raw = ops?.debugStats?.(); - if (raw) { - try { - data = JSON.parse(raw); - } catch { - data = null; - } - } - send({ - t: "devStats", - frame: state.frame, - data - }); - break; - } - case "screenshot": { - if (ops?.__dbgShot?.()) { - send({ - t: "screenshotRaw", - file: "shot.raw", - w: 480, - h: 272, - stride: 512, - frame: state.frame - }); - } else { - send({ - t: "log", - level: "warn", - args: ["screenshot: not supported on this host"] - }); - } - break; - } - case "replay": { - const tape = msg.tape; - if (tape && Array.isArray(tape.masks)) { - state.replayMasks = expandTape(tape); - state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; - state.replayAt = 0; - } - break; - } - default: - break; - } - } - function afterFrame() { - if (state.treeDirty && state.frame - state.treeSentAt >= TREE_THROTTLE) { - sendTree(); - } - if (state.frame % STATS_EVERY === 0) - sendStats(); - } - function flushInspectReport() { - const id = state.inspectReportId; - if (id == null) - return; - const ops = state.ops; - if (!ops?.debugRectXY || !ops.debugRectWH) { - state.inspectReportId = null; - return; - } - const xy = ops.debugRectXY(); - if (xy === -1) { - if (state.hostCalls - state.inspectAskedAt > 60) { - state.inspectReportId = null; - send({ - t: "inspect", - id, - rect: null - }); - } - return; - } - const wh = ops.debugRectWH(); - state.inspectReportId = null; - send({ - t: "inspect", - id, - rect: [xy << 16 >> 16, xy >> 16, wh & 65535, wh >> 16 & 65535] - }); - } - function sendStats() { - send({ - t: "stats", - frame: state.frame, - nodes: countNodes(rootMirror), - tapeLen: state.tapeLen, - paused: state.paused - }); - } - function sendTree() { - state.treeDirty = false; - state.treeSentAt = state.frame; - send({ - t: "tree", - frame: state.frame, - root: serializeNode(rootMirror) - }); - } - function isTreeMirror(value) { - if (value == null || typeof value !== "object") - return false; - const candidate = value; - return typeof candidate.id === "number" && typeof candidate.type === "number"; - } - function forEachTreeMirror(value, visit) { - if (Array.isArray(value)) { - for (const entry of value) - forEachTreeMirror(entry, visit); - return; - } - if (isTreeMirror(value)) { - visit(value); - return; - } - if (value != null && typeof value === "object") { - const nodes = value.nodes; - if (nodes !== undefined) - forEachTreeMirror(nodes, visit); - } - } - function forEachTreeChild(node, visit) { - const children2 = Array.isArray(node.children) ? node.children : []; - for (const child of children2) - forEachTreeMirror(child, visit); - } - function serializeNode(node) { - const out = { - i: node.id, - t: node.domTag ?? String(node.type) - }; - if (node.debugName) - out.n = node.debugName; - const cls = node.domAttrs?.class; - if (typeof cls === "string" && cls) - out.c = cls; - if (node.text) - out.x = node.text.length > 80 ? node.text.slice(0, 79) + "…" : node.text; - const kids = []; - forEachTreeChild(node, (child) => { - if (child.domNodeType === 8) - return; - kids.push(serializeNode(child)); - }); - if (kids.length) - out.k = kids; - return out; - } - function countNodes(node) { - let n = 1; - forEachTreeChild(node, (child) => { - n += countNodes(child); - }); - return n; - } - function bridgeConsole() { - const g = globalThis; - if (!g.console) - g.console = {}; - const c = g.console; - if (c.__pocketBridged) - return; - c.__pocketBridged = true; - for (const level of ["log", "warn", "error"]) { - const original = c[level]; - c[level] = (...args) => { - send({ - t: "log", - level, - args: args.map((a) => fmt(a)) - }); - original?.apply(c, args); - }; - } - } - function fmt(v, depth = 0) { - if (v === undefined) - return "undefined"; - if (v === null) - return "null"; - const t = typeof v; - if (t === "string") { - const s = v; - return depth === 0 ? clip(s) : JSON.stringify(clip(s)); - } - if (t === "number" || t === "boolean" || t === "bigint") - return String(v); - if (t === "function") { - const name = v.name; - return name ? `[function ${name}]` : "[function]"; - } - if (depth >= 3) - return Array.isArray(v) ? "[…]" : "{…}"; - if (Array.isArray(v)) { - const items = v.slice(0, 20).map((x) => fmt(x, depth + 1)); - if (v.length > 20) - items.push(`… ${v.length - 20} more`); - return `[${items.join(", ")}]`; - } - if (v instanceof Error) - return `${v.name}: ${v.message}`; - const entries2 = Object.entries(v).slice(0, 20); - const body = entries2.map(([k, x]) => `${k}: ${fmt(x, depth + 1)}`).join(", "); - return `{${body}}`; - } - function clip(s) { - return s.length > 200 ? s.slice(0, 199) + "…" : s; - } - function hostKind() { - const ops = state.ops; - if (typeof ops?.__host === "string") - return ops.__host; - if (ops?.__textures !== undefined) - return "psp"; - if (typeof globalThis.document !== "undefined") - return "web"; - return "headless"; - } - var api = { - get frame() { - return state.frame; - }, - dumpTape: () => exportTape(), - replay: (tape) => { - state.replayMasks = expandTape(tape); - state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; - state.replayAt = 0; - } - }; - - // framework/src/styles.ts - var verbatim = new Map; - var sortedAlias = new Map; - function normalize(cls) { - return cls.trim().replace(/\s+/g, " "); - } - function sortTokens(normalized) { - return normalized.split(" ").sort().join(" "); - } - var ALIAS_AMBIGUOUS = -1; - function registerStyles(table) { - for (const key of Object.keys(table)) { - const id = table[key]; - const norm = normalize(key); - verbatim.set(norm, id); - const sorted = sortTokens(norm); - const prev = sortedAlias.get(sorted); - sortedAlias.set(sorted, prev !== undefined && prev !== id ? ALIAS_AMBIGUOUS : id); - } - } - function resolveStyle(cls) { - const norm = normalize(cls); - const hit = verbatim.get(norm); - if (hit !== undefined) - return hit; - const alias = sortedAlias.get(sortTokens(norm)); - return alias === ALIAS_AMBIGUOUS ? undefined : alias; - } - - // framework/src/touch.ts - var LEGACY_COORD_BITS = 9; - var LEGACY_COORD_MASK = (1 << LEGACY_COORD_BITS) - 1; - var LEGACY_ID_SHIFT = LEGACY_COORD_BITS * 2; - var WIDE_MARKER = 2147483648; - var WIDE_COORD_BITS = 10; - var WIDE_COORD_MASK = (1 << WIDE_COORD_BITS) - 1; - var WIDE_ID_SHIFT = WIDE_COORD_BITS * 2; - var EMPTY = Object.freeze([]); - var snapshot = EMPTY; - function __setTouches(packed) { - if (!packed || packed.length === 0) { - snapshot = EMPTY; - return; - } - snapshot = Object.freeze(packed.slice(0, 8).map((value) => { - const wide = (value & WIDE_MARKER) !== 0; - const coordBits = wide ? WIDE_COORD_BITS : LEGACY_COORD_BITS; - const coordMask = wide ? WIDE_COORD_MASK : LEGACY_COORD_MASK; - const idShift = wide ? WIDE_ID_SHIFT : LEGACY_ID_SHIFT; - return Object.freeze({ - id: value >>> idShift & 255, - x: value & coordMask, - y: value >>> coordBits & coordMask - }); - })); - } - function __resetTouches() { - snapshot = EMPTY; - } - - // framework/src/effects.ts - var nextId = 1; - var pending = new Map; - var queue = []; - function traceSink() { - const s = globalThis.__pocketEffectTrace; - return typeof s === "function" ? s : null; - } - function resetEffects() { - nextId = 1; - pending.clear(); - queue = []; - } - function __drainEffects() { - if (queue.length === 0) - return; - const batch = queue; - queue = []; - for (const { - id, - result - } of batch) { - const entry = pending.get(id); - if (!entry) - continue; - pending.delete(id); - traceSink()?.({ - t: "delivery", - frame: virtualFrame(), - id, - kind: entry.kind - }); - entry.onResult(result); - } - } - - // framework/src/styles.generated.ts - var STYLE_IDS = { - "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-blue-50 focus:border-blue-500 focus:translate-y-0 transition-all duration-150 ease-out": 0, - "h-1 w-full rounded-sm bg-gradient-to-r from-blue-500 to-blue-600": 1, - "w-1 h-7 bg-blue-500": 2, - "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-emerald-50 focus:border-emerald-500 focus:translate-y-0 transition-all duration-150 ease-out": 3, - "h-1 w-full rounded-sm bg-gradient-to-r from-emerald-500 to-emerald-600": 4, - "w-1 h-7 bg-emerald-500": 5, - "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-amber-50 focus:border-amber-500 focus:translate-y-0 transition-all duration-150 ease-out": 6, - "h-1 w-full rounded-sm bg-gradient-to-r from-amber-500 to-amber-600": 7, - "w-1 h-7 bg-amber-500": 8, - "flex-row items-center gap-3 p-3 rounded-xl shadow-md bg-white border-slate-200": 9, - "flex-col gap-1": 10, - "text-sm text-slate-950 font-bold": 11, - "text-xs text-slate-600": 12, - "relative flex-col w-full h-full p-4 gap-3 bg-slate-50 overflow-hidden": 13, - "absolute left-0 top-[58] w-64 h-1 rounded-full opacity-50 bg-gradient-to-r from-blue-300 to-transparent": 14, - "absolute left-[210] top-[246] w-56 h-1 rounded-full opacity-40 bg-gradient-to-l from-cyan-300 to-transparent": 15, - "flex-row items-end justify-between": 16, - "flex-col": 17, - "text-xs text-blue-600 tracking-wide": 18, - "text-2xl text-slate-950 font-bold": 19, - "text-xs text-slate-500": 20, - "flex-row gap-3": 21, - "grow flex-col": 22, - "relative flex-col w-full h-full bg-slate-50 overflow-hidden": 23, - "absolute inset-0 z-50 flex-col items-center justify-center": 24, - "absolute inset-0 bg-slate-950": 25, - "flex-col gap-2 w-[328] p-3 rounded-xl shadow-lg bg-white border-slate-200": 26, - "absolute left-3 right-3 bottom-3 flex-row items-center justify-between px-2 py-1 rounded-lg shadow-md bg-white border-slate-200": 27, - "flex-row flex-wrap": 28, - grow: 29 - }; - - // framework/src/index.ts - if (typeof globalThis.queueMicrotask !== "function") { - globalThis.queueMicrotask = (fn) => { - Promise.resolve().then(fn); - }; - } - var STYLES_KEY = "ui:styles"; - var FONT_PREFIX = "ui:font."; - var IMG_PREFIX = "ui:img."; - var SPRITE_PREFIX = "ui:sprite."; - function globalOps() { - return globalThis.ui; - } - function uploadPakImages(ops) { - if (ops.__textures) - return; - for (const key of entries(IMG_PREFIX)) { - const blob = get(key); - let handle; - if (ops.uploadImgEntry) { - handle = ops.uploadImgEntry(blob); - } else { - const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); - handle = ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); - } - if (handle >= 0) - registerTexture(key.slice(IMG_PREFIX.length), handle); - } - } - function uploadPakSprites(ops) { - if (ops.__sprites) - return; - for (const key of entries(SPRITE_PREFIX)) { - const blob = get(key); - const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); - const w = dv.getUint16(0, true); - const h = dv.getUint16(2, true); - const psm = blob[4]; - const frames = dv.getUint16(6, true); - const cols = dv.getUint16(8, true); - const step = dv.getUint16(10, true); - const handle = ops.uploadTexture(blob.subarray(16), w, h, psm); - if (handle >= 0) { - registerSprite(key.slice(SPRITE_PREFIX.length), { - handle, - frames, - cols, - step - }); - } - } - } - function createLayer(style) { - const layer = createElement2("view"); - setProp(layer, "style", style, undefined); - return layer; - } - var appLayer = null; - var overlayLayer = null; - function resizeViewport(w, h) { - if (!appLayer || !overlayLayer) - return; - setProp(appLayer, "style", { - width: w, - height: h, - overflow: ENUMS.Overflow.Hidden - }, undefined); - setProp(overlayLayer, "style", { - width: w, - height: h, - posType: ENUMS.PosType.Absolute, - insetT: 0, - insetR: 0, - insetB: 0, - insetL: 0, - zIndex: 1000 - }, undefined); - const ops = getOps(); - ops.__viewport = { - w, - h - }; - } - function render2(code, opts = {}) { - const host = detectHost(opts.ops); - installHost(host); - setStyleResolver(resolveStyle); - if (opts.styles) - registerStyles(opts.styles); - const nativeTextureTable = host.kind === "native" ? host.ops.__textures : undefined; - if (host.kind === "native") { - if (nativeTextureTable) { - for (const key in nativeTextureTable) { - registerTexture(key, nativeTextureTable[key]); - } - } - const spr = host.ops.__sprites; - if (spr) { - for (const key in spr) - registerSprite(key, spr[key]); - } - } - if (host.kind === "injected" || nativeTextureTable === undefined) { - if (opts.pak) - loadPack(opts.pak); - if (hasPack()) { - for (const key of entries()) { - if (key === STYLES_KEY) { - host.ops.loadStyles?.(get(key)); - } else if (key.startsWith(FONT_PREFIX)) { - host.ops.loadFontAtlas?.(get(key)); - } - } - } - } - const viewport = hostViewport(host.ops); - const layerW = viewport?.w ?? SCREEN_W; - const layerH = viewport?.h ?? SCREEN_H; - const appRoot = createLayer({ - width: layerW, - height: layerH, - overflow: ENUMS.Overflow.Hidden - }); - const overlayRoot2 = createLayer({ - width: layerW, - height: layerH, - posType: ENUMS.PosType.Absolute, - insetT: 0, - insetR: 0, - insetB: 0, - insetL: 0, - zIndex: 1000 - }); - insertNode(rootMirror, appRoot); - insertNode(rootMirror, overlayRoot2); - setOverlayRoot(overlayRoot2); - appLayer = appRoot; - overlayLayer = overlayRoot2; - setInputRoot(appRoot); - setHitRoot(rootMirror); - resetFrameHooks(); - resetClock(); - resetEffects(); - initDevtools(host.ops); - installFrameHandler(wrapFrameHandler((buttons, analog, touches) => { - __advanceClock(); - __setAnalog(analog); - __setTouches(touches); - __drainEffects(); - runFrameHooks(buttons); - handleFrame(buttons); - runSweep(); - })); - const dispose = render(code, appRoot); - const removeResizeViewportHook = installResizeViewportHook(resizeViewport); - return () => { - removeResizeViewportHook(); - __resetTouches(); - dispose(); - setInputRoot(null); - setHitRoot(null); - setOverlayRoot(null); - appLayer = null; - overlayLayer = null; - for (const child of rootMirror.children.splice(0)) { - child.parent = null; - host.ops.destroyNode(child.id); - } - runSweep(); - }; - } - function mount(code, opts = {}) { - const ops = opts.ops ?? globalOps(); - if (!ops) { - throw new Error("PocketJS: mount() requires globalThis.ui or opts.ops"); - } - if (opts.pak) - loadPack(opts.pak); - uploadPakImages(ops); - uploadPakSprites(ops); - const dispose = render2(code, { - ops, - styles: opts.styles ?? STYLE_IDS, - pak: opts.pak - }); - return dispose; - } - - // apps/cards/main.tsx - mount(() => createComponent2(Cards, {})); -})(); +(() => { + let nextNode = 2; + let nextAnim = 1; + let focused = 0; + const nodes = new Map(); + nodes.set(1, { id: 1, type: 0, style: -1, text: "", parent: 0, children: [] }); + + const node = (id) => nodes.get(id); + const detach = (id) => { + for (const parent of nodes.values()) { + const at = parent.children.indexOf(id); + if (at >= 0) parent.children.splice(at, 1); + } + const child = node(id); + if (child) child.parent = 0; + }; + + globalThis.ui = { + __host: "wm6", + __hostAbi: 1, + __textures: {}, + __viewport: { w: 480, h: 272 }, + createNode(type) { + const id = nextNode++; + nodes.set(id, { id, type, style: -1, text: "", parent: 0, children: [] }); + return id; + }, + destroyNode(id) { + detach(id); + nodes.delete(id); + }, + insertBefore(parentId, childId, anchor) { + const parent = node(parentId); + if (!parent) return; + detach(childId); + const at = anchor ? parent.children.indexOf(anchor) : -1; + if (at >= 0) parent.children.splice(at, 0, childId); + else parent.children.push(childId); + const child = node(childId); + if (child) child.parent = parentId; + }, + removeChild(_parent, child) { detach(child); }, + setStyle(id, style) { const n = node(id); if (n) n.style = style; }, + setProp() {}, + setText(id, text) { const n = node(id); if (n) n.text = String(text); }, + replaceText(id, text) { this.setText(id, text); }, + uploadTexture() { return -1; }, + setImage() {}, + setSprite() {}, + animate() { return nextAnim++; }, + cancelAnim() {}, + setFocus(id) { focused = id; }, + setActive() {}, + measureText(text, fontSlot) { + const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; + return String(text).length * width; + } + }; + + globalThis.__wm6Snapshot = () => { + const lines = ["PocketJS Cards (real bundle)", "viewport 480x272", ""]; + const visit = (id, depth) => { + const n = node(id); + if (!n) return; + if (n.text) lines.push(" ".repeat(depth) + n.text); + for (const child of n.children) visit(child, depth + 1); + }; + visit(1, 0); + return lines.join("\n"); + }; + + globalThis.__wm6DrawList = () => { + const out = ["B|248|250|252"]; + const safe = (text) => String(text).replace(/[|\r\n]/g, " "); + const text = (x, y, size, r, g, b, value) => + out.push(`T|${x}|${y}|${size}|${r}|${g}|${b}|${safe(value)}`); + const rect = (x, y, w, h, r, g, b) => + out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); + let cardIndex = 0; + const effectiveStyle = (n) => { + let current = n; + while (current) { + if (current.style >= 0) return current.style; + current = node(current.parent); + } + return -1; + }; + + for (const n of nodes.values()) { + if (!n.text) continue; + const style = effectiveStyle(n); + if (style === 18) text(16, 18, 12, 37, 99, 235, n.text); + else if (style === 19) text(16, 35, 24, 15, 23, 42, n.text); + else if (style === 20 && n.text === "3 MODULES") + text(398, 43, 12, 100, 116, 139, n.text); + else if (style === 20) + text(16, 250, 12, 100, 116, 139, n.text); + } + for (const n of nodes.values()) { + if (n.style !== 0 && n.style !== 3 && n.style !== 6) continue; + const x = 16 + cardIndex * 148; + const isFocused = n.id === focused; + const accent = n.style === 0 ? [59, 130, 246] + : n.style === 3 ? [16, 185, 129] : [245, 158, 11]; + rect(x, 76, 136, 82, isFocused ? 239 : 255, + isFocused ? 246 : 255, isFocused ? 255 : 255); + rect(x, 76, 136, 4, accent[0], accent[1], accent[2]); + const labels = []; + const collect = (id) => { + const child = node(id); + if (!child) return; + if (child.text) labels.push(child.text); + for (const nested of child.children) collect(nested); + }; + collect(n.id); + if (labels[0]) text(x + 12, 91, 14, 15, 23, 42, labels[0]); + if (labels[1]) text(x + 12, 115, 12, 71, 85, 105, labels[1]); + cardIndex++; + } + for (const n of nodes.values()) { + if (n.style !== 9) continue; + rect(16, 174, 448, 54, 255, 255, 255); + const labels = []; + const collect = (id) => { + const child = node(id); + if (!child) return; + if (child.text) labels.push(child.text); + for (const nested of child.children) collect(nested); + }; + collect(n.id); + if (labels[0]) text(34, 184, 14, 15, 23, 42, labels[0]); + if (labels[1]) text(34, 204, 12, 71, 85, 105, labels[1]); + } + return out.join("\n"); + }; +})(); +(() => { + // node_modules/solid-js/dist/solid.js + var sharedConfig = { + context: undefined, + registry: undefined, + effects: undefined, + done: false, + getContextId() { + return getContextId(this.context.count); + }, + getNextContextId() { + return getContextId(this.context.count++); + } + }; + function getContextId(count) { + const num = String(count), len = num.length - 1; + return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : "") + num; + } + function setHydrateContext(context) { + sharedConfig.context = context; + } + function nextHydrateContext() { + return { + ...sharedConfig.context, + id: sharedConfig.getNextContextId(), + count: 0 + }; + } + var IS_DEV = false; + var equalFn = (a, b) => a === b; + var $PROXY = Symbol("solid-proxy"); + var SUPPORTS_PROXY = typeof Proxy === "function"; + var $TRACK = Symbol("solid-track"); + var $DEVCOMP = Symbol("solid-dev-component"); + var signalOptions = { + equals: equalFn + }; + var ERROR = null; + var runEffects = runQueue; + var STALE = 1; + var PENDING = 2; + var UNOWNED = { + owned: null, + cleanups: null, + context: null, + owner: null + }; + var Owner = null; + var Transition = null; + var Scheduler = null; + var ExternalSourceConfig = null; + var Listener = null; + var Updates = null; + var Effects = null; + var ExecCount = 0; + function createRoot(fn, detachedOwner) { + const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === undefined ? owner : detachedOwner, root = unowned ? UNOWNED : { + owned: null, + cleanups: null, + context: current ? current.context : null, + owner: current + }, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root))); + Owner = root; + Listener = null; + try { + return runUpdates(updateFn, true); + } finally { + Listener = listener; + Owner = owner; + } + } + function createSignal(value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const s = { + value, + observers: null, + observerSlots: null, + comparator: options.equals || undefined + }; + const setter = (value2) => { + if (typeof value2 === "function") { + if (Transition && Transition.running && Transition.sources.has(s)) + value2 = value2(s.tValue); + else + value2 = value2(s.value); + } + return writeSignal(s, value2); + }; + return [readSignal.bind(s), setter]; + } + function createRenderEffect(fn, value, options) { + const c = createComputation(fn, value, false, STALE); + if (Scheduler && Transition && Transition.running) + Updates.push(c); + else + updateComputation(c); + } + function createEffect(fn, value, options) { + runEffects = runUserEffects; + const c = createComputation(fn, value, false, STALE), s = SuspenseContext && useContext(SuspenseContext); + if (s) + c.suspense = s; + if (!options || !options.render) + c.user = true; + Effects ? Effects.push(c) : updateComputation(c); + } + function createMemo(fn, value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const c = createComputation(fn, value, true, 0); + c.observers = null; + c.observerSlots = null; + c.comparator = options.equals || undefined; + if (Scheduler && Transition && Transition.running) { + c.tState = STALE; + Updates.push(c); + } else + updateComputation(c); + return readSignal.bind(c); + } + function untrack(fn) { + if (!ExternalSourceConfig && Listener === null) + return fn(); + const listener = Listener; + Listener = null; + try { + if (ExternalSourceConfig) + return ExternalSourceConfig.untrack(fn); + return fn(); + } finally { + Listener = listener; + } + } + function onMount(fn) { + createEffect(() => untrack(fn)); + } + function onCleanup(fn) { + if (Owner === null) + ; + else if (Owner.cleanups === null) + Owner.cleanups = [fn]; + else + Owner.cleanups.push(fn); + return fn; + } + function startTransition(fn) { + if (Transition && Transition.running) { + fn(); + return Transition.done; + } + const l = Listener; + const o = Owner; + return Promise.resolve().then(() => { + Listener = l; + Owner = o; + let t; + if (Scheduler || SuspenseContext) { + t = Transition || (Transition = { + sources: new Set, + effects: [], + promises: new Set, + disposed: new Set, + queue: new Set, + running: true + }); + t.done || (t.done = new Promise((res) => t.resolve = res)); + t.running = true; + } + runUpdates(fn, false); + Listener = Owner = null; + return t ? t.done : undefined; + }); + } + var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false); + function useContext(context) { + let value; + return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue; + } + var SuspenseContext; + function readSignal() { + const runningTransition = Transition && Transition.running; + if (this.sources && (runningTransition ? this.tState : this.state)) { + if ((runningTransition ? this.tState : this.state) === STALE) + updateComputation(this); + else { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(this), false); + Updates = updates; + } + } + if (Listener) { + const observers = this.observers; + if (!observers || observers[observers.length - 1] !== Listener) { + const sSlot = observers ? observers.length : 0; + if (!Listener.sources) { + Listener.sources = [this]; + Listener.sourceSlots = [sSlot]; + } else { + Listener.sources.push(this); + Listener.sourceSlots.push(sSlot); + } + if (!observers) { + this.observers = [Listener]; + this.observerSlots = [Listener.sources.length - 1]; + } else { + observers.push(Listener); + this.observerSlots.push(Listener.sources.length - 1); + } + } + } + if (runningTransition && Transition.sources.has(this)) + return this.tValue; + return this.value; + } + function writeSignal(node, value, isComp) { + let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value; + if (!node.comparator || !node.comparator(current, value)) { + if (Transition) { + const TransitionRunning = Transition.running; + if (TransitionRunning || !isComp && Transition.sources.has(node)) { + Transition.sources.add(node); + node.tValue = value; + } + if (!TransitionRunning) + node.value = value; + } else + node.value = value; + if (node.observers && node.observers.length) { + runUpdates(() => { + for (let i = 0;i < node.observers.length; i += 1) { + const o = node.observers[i]; + const TransitionRunning = Transition && Transition.running; + if (TransitionRunning && Transition.disposed.has(o)) + continue; + if (TransitionRunning ? !o.tState : !o.state) { + if (o.pure) + Updates.push(o); + else + Effects.push(o); + if (o.observers) + markDownstream(o); + } + if (!TransitionRunning) + o.state = STALE; + else + o.tState = STALE; + } + if (Updates.length > 1e6) { + Updates = []; + if (IS_DEV) + ; + throw new Error; + } + }, false); + } + } + return value; + } + function updateComputation(node) { + if (!node.fn) + return; + cleanNode(node); + const time = ExecCount; + runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time); + if (Transition && !Transition.running && Transition.sources.has(node)) { + queueMicrotask(() => { + runUpdates(() => { + Transition && (Transition.running = true); + Listener = Owner = node; + runComputation(node, node.tValue, time); + Listener = Owner = null; + }, false); + }); + } + } + function runComputation(node, value, time) { + let nextValue; + const owner = Owner, listener = Listener; + Listener = Owner = node; + try { + nextValue = node.fn(value); + } catch (err) { + if (node.pure) { + if (Transition && Transition.running) { + node.tState = STALE; + node.tOwned && node.tOwned.forEach(cleanNode); + node.tOwned = undefined; + } else { + node.state = STALE; + node.owned && node.owned.forEach(cleanNode); + node.owned = null; + } + } + node.updatedAt = time + 1; + return handleError(err); + } finally { + Listener = listener; + Owner = owner; + } + if (!node.updatedAt || node.updatedAt <= time) { + if (node.updatedAt != null && "observers" in node) { + writeSignal(node, nextValue, true); + } else if (Transition && Transition.running && node.pure) { + if (!Transition.sources.has(node)) + node.value = nextValue; + Transition.sources.add(node); + node.tValue = nextValue; + } else + node.value = nextValue; + node.updatedAt = time; + } + } + function createComputation(fn, init, pure, state = STALE, options) { + const c = { + fn, + state, + updatedAt: null, + owned: null, + sources: null, + sourceSlots: null, + cleanups: null, + value: init, + owner: Owner, + context: Owner ? Owner.context : null, + pure + }; + if (Transition && Transition.running) { + c.state = 0; + c.tState = state; + } + if (Owner === null) + ; + else if (Owner !== UNOWNED) { + if (Transition && Transition.running && Owner.pure) { + if (!Owner.tOwned) + Owner.tOwned = [c]; + else + Owner.tOwned.push(c); + } else { + if (!Owner.owned) + Owner.owned = [c]; + else + Owner.owned.push(c); + } + } + if (ExternalSourceConfig && c.fn) { + const sourceFn = c.fn; + const [track, trigger] = createSignal(undefined, { + equals: false + }); + const ordinary = ExternalSourceConfig.factory(sourceFn, trigger); + onCleanup(() => ordinary.dispose()); + let inTransition; + const triggerInTransition = () => startTransition(trigger).then(() => { + if (inTransition) { + inTransition.dispose(); + inTransition = undefined; + } + }); + c.fn = (x) => { + track(); + if (Transition && Transition.running) { + if (!inTransition) + inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition); + return inTransition.track(x); + } + return ordinary.track(x); + }; + } + return c; + } + function runTop(node) { + const runningTransition = Transition && Transition.running; + if ((runningTransition ? node.tState : node.state) === 0) + return; + if ((runningTransition ? node.tState : node.state) === PENDING) + return lookUpstream(node); + if (node.suspense && untrack(node.suspense.inFallback)) + return node.suspense.effects.push(node); + const ancestors = [node]; + while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) { + if (runningTransition && Transition.disposed.has(node)) + return; + if (runningTransition ? node.tState : node.state) + ancestors.push(node); + } + for (let i = ancestors.length - 1;i >= 0; i--) { + node = ancestors[i]; + if (runningTransition) { + let top = node, prev = ancestors[i + 1]; + while ((top = top.owner) && top !== prev) { + if (Transition.disposed.has(top)) + return; + } + } + if ((runningTransition ? node.tState : node.state) === STALE) { + updateComputation(node); + } else if ((runningTransition ? node.tState : node.state) === PENDING) { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(node, ancestors[0]), false); + Updates = updates; + } + } + } + function runUpdates(fn, init) { + if (Updates) + return fn(); + let wait = false; + if (!init) + Updates = []; + if (Effects) + wait = true; + else + Effects = []; + ExecCount++; + try { + const res = fn(); + completeUpdates(wait); + return res; + } catch (err) { + if (!wait) + Effects = null; + Updates = null; + handleError(err); + } + } + function completeUpdates(wait) { + if (Updates) { + if (Scheduler && Transition && Transition.running) + scheduleQueue(Updates); + else + runQueue(Updates); + Updates = null; + } + if (wait) + return; + let res; + if (Transition) { + if (!Transition.promises.size && !Transition.queue.size) { + const sources = Transition.sources; + const disposed = Transition.disposed; + Effects.push.apply(Effects, Transition.effects); + res = Transition.resolve; + for (const e2 of Effects) { + "tState" in e2 && (e2.state = e2.tState); + delete e2.tState; + } + Transition = null; + runUpdates(() => { + for (const d of disposed) + cleanNode(d); + for (const v of sources) { + v.value = v.tValue; + if (v.owned) { + for (let i = 0, len = v.owned.length;i < len; i++) + cleanNode(v.owned[i]); + } + if (v.tOwned) + v.owned = v.tOwned; + delete v.tValue; + delete v.tOwned; + v.tState = 0; + } + setTransPending(false); + }, false); + } else if (Transition.running) { + Transition.running = false; + Transition.effects.push.apply(Transition.effects, Effects); + Effects = null; + setTransPending(true); + return; + } + } + const e = Effects; + Effects = null; + if (e.length) + runUpdates(() => runEffects(e), false); + if (res) + res(); + } + function runQueue(queue) { + for (let i = 0;i < queue.length; i++) + runTop(queue[i]); + } + function scheduleQueue(queue) { + for (let i = 0;i < queue.length; i++) { + const item = queue[i]; + const tasks = Transition.queue; + if (!tasks.has(item)) { + tasks.add(item); + Scheduler(() => { + tasks.delete(item); + runUpdates(() => { + Transition.running = true; + runTop(item); + }, false); + Transition && (Transition.running = false); + }); + } + } + } + function runUserEffects(queue) { + let i, userLength = 0; + for (i = 0;i < queue.length; i++) { + const e = queue[i]; + if (!e.user) + runTop(e); + else + queue[userLength++] = e; + } + if (sharedConfig.context) { + if (sharedConfig.count) { + sharedConfig.effects || (sharedConfig.effects = []); + sharedConfig.effects.push(...queue.slice(0, userLength)); + return; + } + setHydrateContext(); + } + if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) { + queue = [...sharedConfig.effects, ...queue]; + userLength += sharedConfig.effects.length; + delete sharedConfig.effects; + } + for (i = 0;i < userLength; i++) + runTop(queue[i]); + } + function lookUpstream(node, ignore) { + const runningTransition = Transition && Transition.running; + if (runningTransition) + node.tState = 0; + else + node.state = 0; + for (let i = 0;i < node.sources.length; i += 1) { + const source = node.sources[i]; + if (source.sources) { + const state = runningTransition ? source.tState : source.state; + if (state === STALE) { + if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) + runTop(source); + } else if (state === PENDING) + lookUpstream(source, ignore); + } + } + } + function markDownstream(node) { + const runningTransition = Transition && Transition.running; + for (let i = 0;i < node.observers.length; i += 1) { + const o = node.observers[i]; + if (runningTransition ? !o.tState : !o.state) { + if (runningTransition) + o.tState = PENDING; + else + o.state = PENDING; + if (o.pure) + Updates.push(o); + else + Effects.push(o); + o.observers && markDownstream(o); + } + } + } + function cleanNode(node) { + let i; + if (node.sources) { + while (node.sources.length) { + const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers; + if (obs && obs.length) { + const n = obs.pop(), s = source.observerSlots.pop(); + if (index < obs.length) { + n.sourceSlots[s] = index; + obs[index] = n; + source.observerSlots[index] = s; + } + } + } + } + if (node.tOwned) { + for (i = node.tOwned.length - 1;i >= 0; i--) + cleanNode(node.tOwned[i]); + delete node.tOwned; + } + if (Transition && Transition.running && node.pure) { + reset(node, true); + } else if (node.owned) { + for (i = node.owned.length - 1;i >= 0; i--) + cleanNode(node.owned[i]); + node.owned = null; + } + if (node.cleanups) { + for (i = node.cleanups.length - 1;i >= 0; i--) + node.cleanups[i](); + node.cleanups = null; + } + if (Transition && Transition.running) + node.tState = 0; + else + node.state = 0; + } + function reset(node, top) { + if (!top) { + node.tState = 0; + Transition.disposed.add(node); + } + if (node.owned) { + for (let i = 0;i < node.owned.length; i++) + reset(node.owned[i]); + } + } + function castError(err) { + if (err instanceof Error) + return err; + return new Error(typeof err === "string" ? err : "Unknown error", { + cause: err + }); + } + function runErrors(err, fns, owner) { + try { + for (const f of fns) + f(err); + } catch (e) { + handleError(e, owner && owner.owner || null); + } + } + function handleError(err, owner = Owner) { + const fns = ERROR && owner && owner.context && owner.context[ERROR]; + const error = castError(err); + if (!fns) + throw error; + if (Effects) + Effects.push({ + fn() { + runErrors(error, fns, owner); + }, + state: STALE + }); + else + runErrors(error, fns, owner); + } + var FALLBACK = Symbol("fallback"); + var hydrationEnabled = false; + function createComponent(Comp, props) { + if (hydrationEnabled) { + if (sharedConfig.context) { + const c = sharedConfig.context; + setHydrateContext(nextHydrateContext()); + const r = untrack(() => Comp(props || {})); + setHydrateContext(c); + return r; + } + } + return untrack(() => Comp(props || {})); + } + function trueFn() { + return true; + } + var propTraps = { + get(_, property, receiver) { + if (property === $PROXY) + return receiver; + return _.get(property); + }, + has(_, property) { + if (property === $PROXY) + return true; + return _.has(property); + }, + set: trueFn, + deleteProperty: trueFn, + getOwnPropertyDescriptor(_, property) { + return { + configurable: true, + enumerable: true, + get() { + return _.get(property); + }, + set: trueFn, + deleteProperty: trueFn + }; + }, + ownKeys(_) { + return _.keys(); + } + }; + function resolveSource(s) { + return !(s = typeof s === "function" ? s() : s) ? {} : s; + } + function resolveSources() { + for (let i = 0, length = this.length;i < length; ++i) { + const v = this[i](); + if (v !== undefined) + return v; + } + } + function mergeProps(...sources) { + let proxy = false; + for (let i = 0;i < sources.length; i++) { + const s = sources[i]; + proxy = proxy || !!s && $PROXY in s; + sources[i] = typeof s === "function" ? (proxy = true, createMemo(s)) : s; + } + if (SUPPORTS_PROXY && proxy) { + return new Proxy({ + get(property) { + for (let i = sources.length - 1;i >= 0; i--) { + const v = resolveSource(sources[i])[property]; + if (v !== undefined) + return v; + } + }, + has(property) { + for (let i = sources.length - 1;i >= 0; i--) { + if (property in resolveSource(sources[i])) + return true; + } + return false; + }, + keys() { + const keys = []; + for (let i = 0;i < sources.length; i++) + keys.push(...Object.keys(resolveSource(sources[i]))); + return [...new Set(keys)]; + } + }, propTraps); + } + const sourcesMap = {}; + const defined = Object.create(null); + for (let i = sources.length - 1;i >= 0; i--) { + const source = sources[i]; + if (!source) + continue; + const sourceKeys = Object.getOwnPropertyNames(source); + for (let i2 = sourceKeys.length - 1;i2 >= 0; i2--) { + const key = sourceKeys[i2]; + if (key === "__proto__" || key === "constructor") + continue; + const desc = Object.getOwnPropertyDescriptor(source, key); + if (!defined[key]) { + defined[key] = desc.get ? { + enumerable: true, + configurable: true, + get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)]) + } : desc.value !== undefined ? desc : undefined; + } else { + const sources2 = sourcesMap[key]; + if (sources2) { + if (desc.get) + sources2.push(desc.get.bind(source)); + else if (desc.value !== undefined) + sources2.push(() => desc.value); + } + } + } + } + const target = {}; + const definedKeys = Object.keys(defined); + for (let i = definedKeys.length - 1;i >= 0; i--) { + const key = definedKeys[i], desc = defined[key]; + if (desc && desc.get) + Object.defineProperty(target, key, desc); + else + target[key] = desc ? desc.value : undefined; + } + return target; + } + var narrowedError = (name) => `Stale read from <${name}>.`; + function Show(props) { + const keyed = props.keyed; + const conditionValue = createMemo(() => props.when, undefined, undefined); + const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, { + equals: (a, b) => !a === !b + }); + return createMemo(() => { + const c = condition(); + if (c) { + const child = props.children; + const fn = typeof child === "function" && child.length > 0; + return fn ? untrack(() => child(keyed ? c : () => { + if (!untrack(condition)) + throw narrowedError("Show"); + return conditionValue(); + })) : child; + } + return props.fallback; + }, undefined, undefined); + } + + // node_modules/solid-js/universal/dist/universal.js + var memo = (fn) => createMemo(() => fn()); + function createRenderer$1({ + createElement, + createTextNode, + isTextNode, + replaceText, + insertNode, + removeNode, + setProperty, + getParentNode, + getFirstChild, + getNextSibling + }) { + function insert(parent, accessor, marker, initial) { + if (marker !== undefined && !initial) + initial = []; + if (typeof accessor !== "function") + return insertExpression(parent, accessor, initial, marker); + createRenderEffect((current) => insertExpression(parent, accessor(), current, marker), initial); + } + function insertExpression(parent, value, current, marker, unwrapArray) { + while (typeof current === "function") + current = current(); + if (value === current) + return current; + const t = typeof value, multi = marker !== undefined; + if (t === "string" || t === "number") { + if (t === "number") + value = value.toString(); + if (multi) { + let node = current[0]; + if (node && isTextNode(node)) { + replaceText(node, value); + } else + node = createTextNode(value); + current = cleanChildren(parent, current, marker, node); + } else { + if (current !== "" && typeof current === "string") { + replaceText(getFirstChild(parent), current = value); + } else { + cleanChildren(parent, current, marker, createTextNode(value)); + current = value; + } + } + } else if (value == null || t === "boolean") { + current = cleanChildren(parent, current, marker); + } else if (t === "function") { + createRenderEffect(() => { + let v = value(); + while (typeof v === "function") + v = v(); + current = insertExpression(parent, v, current, marker); + }); + return () => current; + } else if (Array.isArray(value)) { + const array = []; + if (normalizeIncomingArray(array, value, unwrapArray)) { + createRenderEffect(() => current = insertExpression(parent, array, current, marker, true)); + return () => current; + } + if (array.length === 0) { + const replacement = cleanChildren(parent, current, marker); + if (multi) + return current = replacement; + } else { + if (Array.isArray(current)) { + if (current.length === 0) { + appendNodes(parent, array, marker); + } else + reconcileArrays(parent, current, array); + } else if (current == null || current === "") { + appendNodes(parent, array); + } else { + reconcileArrays(parent, multi && current || [getFirstChild(parent)], array); + } + } + current = array; + } else { + if (Array.isArray(current)) { + if (multi) + return current = cleanChildren(parent, current, marker, value); + cleanChildren(parent, current, null, value); + } else if (current == null || current === "" || !getFirstChild(parent)) { + insertNode(parent, value); + } else + replaceNode(parent, value, getFirstChild(parent)); + current = value; + } + return current; + } + function normalizeIncomingArray(normalized, array, unwrap) { + let dynamic = false; + for (let i = 0, len = array.length;i < len; i++) { + let item = array[i], t; + if (item == null || item === true || item === false) + ; + else if (Array.isArray(item)) { + dynamic = normalizeIncomingArray(normalized, item) || dynamic; + } else if ((t = typeof item) === "string" || t === "number") { + normalized.push(createTextNode(item)); + } else if (t === "function") { + if (unwrap) { + while (typeof item === "function") + item = item(); + dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic; + } else { + normalized.push(item); + dynamic = true; + } + } else + normalized.push(item); + } + return dynamic; + } + function reconcileArrays(parentNode, a, b) { + let bLength = b.length, aEnd = a.length, bEnd = bLength, aStart = 0, bStart = 0, after = getNextSibling(a[aEnd - 1]), map = null; + while (aStart < aEnd || bStart < bEnd) { + if (a[aStart] === b[bStart]) { + aStart++; + bStart++; + continue; + } + while (a[aEnd - 1] === b[bEnd - 1]) { + aEnd--; + bEnd--; + } + if (aEnd === aStart) { + const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after; + while (bStart < bEnd) + insertNode(parentNode, b[bStart++], node); + } else if (bEnd === bStart) { + while (aStart < aEnd) { + if (!map || !map.has(a[aStart])) + removeNode(parentNode, a[aStart]); + aStart++; + } + } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) { + const node = getNextSibling(a[--aEnd]); + insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++])); + insertNode(parentNode, b[--bEnd], node); + a[aEnd] = b[bEnd]; + } else { + if (!map) { + map = new Map; + let i = bStart; + while (i < bEnd) + map.set(b[i], i++); + } + const index = map.get(a[aStart]); + if (index != null) { + if (bStart < index && index < bEnd) { + let i = aStart, sequence = 1, t; + while (++i < aEnd && i < bEnd) { + if ((t = map.get(a[i])) == null || t !== index + sequence) + break; + sequence++; + } + if (sequence > index - bStart) { + const node = a[aStart]; + while (bStart < index) + insertNode(parentNode, b[bStart++], node); + } else + replaceNode(parentNode, b[bStart++], a[aStart++]); + } else + aStart++; + } else + removeNode(parentNode, a[aStart++]); + } + } + } + function cleanChildren(parent, current, marker, replacement) { + if (marker === undefined) { + let removed; + while (removed = getFirstChild(parent)) + removeNode(parent, removed); + replacement && insertNode(parent, replacement); + return ""; + } + const node = replacement || createTextNode(""); + if (current.length) { + let inserted = false; + for (let i = current.length - 1;i >= 0; i--) { + const el = current[i]; + if (node !== el) { + const isParent = getParentNode(el) === parent; + if (!inserted && !i) + isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker); + else + isParent && removeNode(parent, el); + } else + inserted = true; + } + } else + insertNode(parent, node, marker); + return [node]; + } + function appendNodes(parent, array, marker) { + for (let i = 0, len = array.length;i < len; i++) + insertNode(parent, array[i], marker); + } + function replaceNode(parent, newNode, oldNode) { + insertNode(parent, newNode, oldNode); + removeNode(parent, oldNode); + } + function spreadExpression(node, props, prevProps = {}, skipChildren) { + props || (props = {}); + if (!skipChildren) { + createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children)); + } + createRenderEffect(() => props.ref && props.ref(node)); + createRenderEffect(() => { + for (const prop in props) { + if (prop === "children" || prop === "ref") + continue; + const value = props[prop]; + if (value === prevProps[prop]) + continue; + setProperty(node, prop, value, prevProps[prop]); + prevProps[prop] = value; + } + }); + return prevProps; + } + return { + render(code, element) { + let disposer; + createRoot((dispose) => { + disposer = dispose; + insert(element, code()); + }); + return disposer; + }, + insert, + spread(node, accessor, skipChildren) { + if (typeof accessor === "function") { + createRenderEffect((current) => spreadExpression(node, accessor(), current, skipChildren)); + } else + spreadExpression(node, accessor, undefined, skipChildren); + }, + createElement, + createTextNode, + insertNode, + setProp(node, name, value, prev) { + setProperty(node, name, value, prev); + return value; + }, + mergeProps, + effect: createRenderEffect, + memo, + createComponent, + use(fn, element, arg) { + return untrack(() => fn(element, arg)); + } + }; + } + function createRenderer(options) { + const renderer = createRenderer$1(options); + renderer.mergeProps = mergeProps; + return renderer; + } + + // contracts/spec/spec.ts + var SCREEN_W = 480; + var SCREEN_H = 272; + var NODE_TYPE = { + view: 0, + text: 1, + image: 2 + }; + var ROOT_ID = 1; + var STYLE_ID_NONE = -1; + var PROP = { + width: 1, + height: 2, + minW: 3, + minH: 4, + maxW: 5, + maxH: 6, + paddingT: 8, + paddingR: 9, + paddingB: 10, + paddingL: 11, + marginT: 12, + marginR: 13, + marginB: 14, + marginL: 15, + gap: 16, + flexDir: 17, + justify: 18, + align: 19, + grow: 20, + shrink: 21, + basis: 22, + flexWrap: 23, + posType: 24, + insetT: 25, + insetR: 26, + insetB: 27, + insetL: 28, + display: 29, + overflow: 30, + zIndex: 31, + bgColor: 64, + gradFrom: 65, + gradTo: 66, + gradDir: 67, + radius: 68, + opacity: 69, + borderColor: 70, + borderWidth: 71, + shadow: 72, + bevelOuterLight: 77, + bevelOuterDark: 78, + bevelInnerLight: 79, + bevelInnerDark: 80, + bevelWidth: 81, + textColor: 96, + fontSlot: 97, + textAlign: 98, + lineHeight: 99, + tracking: 100, + translateX: 128, + translateY: 129, + scale: 130, + rotate: 131, + scaleX: 132, + scaleY: 133, + originX: 134, + originY: 135, + rotateX: 136, + rotateY: 137, + translateZ: 138, + perspective: 139, + arcStart: 140, + arcSweep: 141, + arcWidth: 142 + }; + var ANIMATABLE = [ + "width", + "height", + "paddingT", + "paddingR", + "paddingB", + "paddingL", + "marginT", + "marginR", + "marginB", + "marginL", + "gap", + "basis", + "insetT", + "insetR", + "insetB", + "insetL", + "bgColor", + "gradFrom", + "gradTo", + "radius", + "opacity", + "borderColor", + "borderWidth", + "textColor", + "lineHeight", + "tracking", + "translateX", + "translateY", + "scale", + "rotate", + "scaleX", + "scaleY", + "rotateX", + "rotateY", + "translateZ", + "arcStart", + "arcSweep", + "arcWidth" + ]; + function animBit(prop) { + return ANIMATABLE.indexOf(prop); + } + var VALUE_KIND = { + f32: 0, + color: 1, + int: 2 + }; + var PROP_VALUE_KIND = { + width: VALUE_KIND.f32, + height: VALUE_KIND.f32, + minW: VALUE_KIND.f32, + minH: VALUE_KIND.f32, + maxW: VALUE_KIND.f32, + maxH: VALUE_KIND.f32, + paddingT: VALUE_KIND.f32, + paddingR: VALUE_KIND.f32, + paddingB: VALUE_KIND.f32, + paddingL: VALUE_KIND.f32, + marginT: VALUE_KIND.f32, + marginR: VALUE_KIND.f32, + marginB: VALUE_KIND.f32, + marginL: VALUE_KIND.f32, + gap: VALUE_KIND.f32, + flexDir: VALUE_KIND.int, + justify: VALUE_KIND.int, + align: VALUE_KIND.int, + grow: VALUE_KIND.f32, + shrink: VALUE_KIND.f32, + basis: VALUE_KIND.f32, + flexWrap: VALUE_KIND.int, + posType: VALUE_KIND.int, + insetT: VALUE_KIND.f32, + insetR: VALUE_KIND.f32, + insetB: VALUE_KIND.f32, + insetL: VALUE_KIND.f32, + display: VALUE_KIND.int, + overflow: VALUE_KIND.int, + zIndex: VALUE_KIND.int, + bgColor: VALUE_KIND.color, + gradFrom: VALUE_KIND.color, + gradTo: VALUE_KIND.color, + gradDir: VALUE_KIND.int, + radius: VALUE_KIND.f32, + opacity: VALUE_KIND.f32, + borderColor: VALUE_KIND.color, + borderWidth: VALUE_KIND.f32, + shadow: VALUE_KIND.int, + bevelOuterLight: VALUE_KIND.color, + bevelOuterDark: VALUE_KIND.color, + bevelInnerLight: VALUE_KIND.color, + bevelInnerDark: VALUE_KIND.color, + bevelWidth: VALUE_KIND.f32, + textColor: VALUE_KIND.color, + fontSlot: VALUE_KIND.int, + textAlign: VALUE_KIND.int, + lineHeight: VALUE_KIND.f32, + tracking: VALUE_KIND.f32, + translateX: VALUE_KIND.f32, + translateY: VALUE_KIND.f32, + scale: VALUE_KIND.f32, + rotate: VALUE_KIND.f32, + scaleX: VALUE_KIND.f32, + scaleY: VALUE_KIND.f32, + originX: VALUE_KIND.f32, + originY: VALUE_KIND.f32, + rotateX: VALUE_KIND.f32, + rotateY: VALUE_KIND.f32, + translateZ: VALUE_KIND.f32, + perspective: VALUE_KIND.f32, + arcStart: VALUE_KIND.f32, + arcSweep: VALUE_KIND.f32, + arcWidth: VALUE_KIND.f32 + }; + var ENUMS = { + FlexDir: { + Row: 0, + Col: 1 + }, + Justify: { + Start: 0, + Center: 1, + End: 2, + Between: 3, + Around: 4 + }, + Align: { + Start: 0, + Center: 1, + End: 2, + Stretch: 3 + }, + PosType: { + Relative: 0, + Absolute: 1 + }, + Display: { + Flex: 0, + None: 1 + }, + Overflow: { + Visible: 0, + Hidden: 1 + }, + TextAlign: { + Left: 0, + Center: 1, + Right: 2 + }, + GradDir: { + ToTop: 0, + ToBottom: 1, + ToLeft: 2, + ToRight: 3 + }, + Easing: { + Linear: 0, + EaseIn: 1, + EaseOut: 2, + EaseInOut: 3, + OutBack: 4, + Spring: 5, + SpringBouncy: 6, + CubicBezier: 7 + } + }; + var PSM = { + PSM_5650: 0, + PSM_4444: 2, + PSM_8888: 3, + PSM_T8: 5 + }; + var IMG_FLAG_RLE = 1 << 0; + var IMG_FLAG_LINEAR = 1 << 1; + var TILESET_FLAG_RLE = 1 << 0; + var TILESET_FLAG_LINEAR = 1 << 1; + var SVC_IMG_MAX_BYTES = 128 * 1024; + var STREAM_FLAG_ENDED = 1 << 0; + var STYLE_VARIANT_BASE = 1 << 0; + var STYLE_VARIANT_FOCUS = 1 << 1; + var STYLE_VARIANT_ACTIVE = 1 << 2; + var STYLE_HAS_TRANSITION = 1 << 3; + var STYLE_HAS_ANIMATION = 1 << 4; + var ANIM_FILL_BACKWARDS = 1 << 0; + var ANIM_FILL_FORWARDS = 1 << 1; + function abgr(r, g, b, a = 255) { + return ((a & 255) << 24 | (b & 255) << 16 | (g & 255) << 8 | r & 255) >>> 0; + } + var FONT_FLAG_BOLD = 1 << 0; + var PAK_MAGIC = 1263551300; + var PAK_VERSION = 1; + var PAK_HEADER_SIZE = 32; + var PAK_ENTRY_SIZE = 24; + var BTN = { + SELECT: 1, + START: 8, + UP: 16, + RIGHT: 32, + DOWN: 64, + LEFT: 128, + LTRIGGER: 256, + RTRIGGER: 512, + TRIANGLE: 4096, + CIRCLE: 8192, + CROSS: 16384, + SQUARE: 32768 + }; + var ANALOG_CENTER = 32896; + var FIXED_DT = 1 / 60; + + // framework/src/host.ts + function hostViewport(ops) { + return ops.__viewport ?? null; + } + var current = null; + function embeddedBuildHostContract() { + const target = ""; + const hostAbi = 0; + return target && hostAbi > 0 ? { + target, + hostAbi + } : null; + } + function assertNativeHostContract(ops, expected = embeddedBuildHostContract()) { + if (!expected) + return; + if (typeof ops.__host !== "string") { + throw new Error(`PocketJS: this bundle targets "${expected.target}" but the native host predates platform ` + "contracts — add __host/__hostAbi to its ui namespace (see framework/src/host.ts HostOps)"); + } + if (ops.__host !== expected.target) { + throw new Error(`PocketJS: native target mismatch (bundle=${expected.target}, host=${ops.__host})`); + } + if (ops.__hostAbi !== expected.hostAbi) { + throw new Error(`PocketJS: native host ABI mismatch (bundle=${expected.hostAbi}, host=${ops.__hostAbi ?? "missing"})`); + } + } + function detectHost(injected) { + const native = globalThis.ui; + const nativeMarked = native !== undefined && (typeof native.__host === "string" || native.__textures !== undefined); + if (injected) { + if (native !== undefined && injected === native && nativeMarked) { + assertNativeHostContract(native); + return { + ops: injected, + kind: "native", + target: native.__host ?? "unknown", + strict: false + }; + } + return { + ops: injected, + kind: "injected", + target: injected.__host ?? "injected", + strict: true + }; + } + if (native !== undefined && nativeMarked) { + assertNativeHostContract(native); + return { + ops: native, + kind: "native", + target: native.__host ?? "unknown", + strict: false + }; + } + if (native) { + return { + ops: native, + kind: "injected", + target: "injected", + strict: true + }; + } + throw new Error("PocketJS: no host — pass HostOps to render() (web/test) or run under a native runtime (globalThis.ui)"); + } + function installHost(host) { + current = host; + } + function getHost() { + if (!current) { + throw new Error("PocketJS: host not installed — call render() first"); + } + return current; + } + function getOps() { + return getHost().ops; + } + function installFrameHandler(fn) { + globalThis.frame = fn; + } + function installResizeViewportHook(resizeViewport) { + const globals = globalThis; + const previous = globals.__pocketResizeViewport; + const hook = (width, height) => resizeViewport(width, height); + globals.__pocketResizeViewport = hook; + return () => { + if (globals.__pocketResizeViewport !== hook) + return; + if (previous) + globals.__pocketResizeViewport = previous; + else + delete globals.__pocketResizeViewport; + }; + } + function parseHexColor(s) { + let hex = s.slice(1); + if (hex.length === 3) { + hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; + } + if (hex.length !== 6 && hex.length !== 8) { + throw new Error(`PocketJS: bad color '${s}' (expected #rgb/#rrggbb/#rrggbbaa)`); + } + if (!/^[0-9a-fA-F]+$/.test(hex)) + throw new Error(`PocketJS: bad color '${s}'`); + const n = parseInt(hex, 16); + if (hex.length === 6) { + return abgr(n >>> 16 & 255, n >>> 8 & 255, n & 255, 255); + } + return abgr(n >>> 24 & 255, n >>> 16 & 255, n >>> 8 & 255, n & 255); + } + function encodePropValue(prop, value) { + const kind = PROP_VALUE_KIND[prop]; + if (typeof value === "string") { + if (kind === VALUE_KIND.color) + return parseHexColor(value); + const n = Number(value); + if (Number.isNaN(n)) { + throw new Error(`PocketJS: non-numeric value '${value}' for prop '${prop}'`); + } + value = n; + } + if (kind === VALUE_KIND.color || kind === VALUE_KIND.int) + return value >>> 0; + return value; + } + + // framework/src/clock.ts + var TICKS_PER_SECOND = 60; + var VALID_HZ = [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]; + var hz = TICKS_PER_SECOND; + var frame = -1; + var timerSeq = 0; + var timers = []; + function normalizeHz(raw) { + if (!Number.isFinite(raw) || raw <= 0) + return TICKS_PER_SECOND; + let best = VALID_HZ[0]; + for (const v of VALID_HZ) { + if (Math.abs(v - raw) < Math.abs(best - raw)) + best = v; + } + return best; + } + function ticksPerFrame() { + return TICKS_PER_SECOND / hz; + } + function virtualFrame() { + return frame < 0 ? 0 : frame; + } + function resetClock() { + const raw = globalThis.__simHz; + hz = typeof raw === "number" ? normalizeHz(raw) : TICKS_PER_SECOND; + frame = -1; + timers = []; + timerSeq = 0; + } + function __advanceClock() { + frame = frame < 0 ? 0 : frame + 1; + if (timers.length === 0) + return; + const due = timers.filter((t) => t.at <= frame).sort((a, b) => a.at - b.at || a.seq - b.seq); + if (due.length === 0) + return; + timers = timers.filter((t) => t.at > frame); + for (const t of due) + t.cb(); + } + + // framework/src/analog.ts + var ANALOG_DEADZONE = 0.12; + var analogPacked = ANALOG_CENTER; + function __setAnalog(packed) { + analogPacked = packed === undefined ? ANALOG_CENTER : packed & 65535; + } + function __resetAnalog() { + analogPacked = ANALOG_CENTER; + } + function axis(raw) { + const value = Math.max(-1, Math.min(1, (raw - 128) / 127)); + const magnitude = Math.abs(value); + if (magnitude < ANALOG_DEADZONE) + return 0; + return Math.sign(value) * (magnitude - ANALOG_DEADZONE) / (1 - ANALOG_DEADZONE); + } + function analogX() { + return axis(analogPacked >> 8 & 255); + } + function analogY() { + return axis(analogPacked & 255); + } + + // framework/src/frame.ts + var callbacks = new Set; + var buttonHandlerBlockDepth = 0; + function resetFrameHooks() { + callbacks.clear(); + buttonHandlerBlockDepth = 0; + __resetAnalog(); + } + function runFrameHooks(buttons) { + for (const cb of [...callbacks]) + cb(buttons); + } + + // framework/src/pak.ts + var map = null; + var bytes = null; + function readKey(u8, off, len) { + let s = ""; + for (let i = 0;i < len; i++) + s += String.fromCharCode(u8[off + i]); + return s; + } + function parse(ab) { + const dv = new DataView(ab); + if (ab.byteLength < PAK_HEADER_SIZE || dv.getUint32(0, true) !== PAK_MAGIC) { + throw new Error("pak: bad magic"); + } + const version = dv.getUint16(4, true); + if (version !== PAK_VERSION) { + throw new Error("pak: unsupported version " + version); + } + const entryCount = dv.getUint32(8, true); + const dirOff = dv.getUint32(12, true); + const namesOff = dv.getUint32(16, true); + const u8 = new Uint8Array(ab); + const m = new Map; + for (let i = 0;i < entryCount; i++) { + const e = dirOff + i * PAK_ENTRY_SIZE; + const blobOff = dv.getUint32(e + 4, true); + const byteLen = dv.getUint32(e + 8, true); + const nameOff = dv.getUint32(e + 12, true); + const nameLen = dv.getUint16(e + 16, true); + const dtype = u8[e + 18]; + m.set(readKey(u8, namesOff + nameOff, nameLen), { + off: blobOff, + len: byteLen, + dtype + }); + } + map = m; + bytes = u8; + } + function loadPack(ab) { + parse(ab); + } + function ensureLoaded() { + if (map) + return; + const ab = globalThis.__pak; + if (!ab) + return; + parse(ab); + } + function hasPack() { + ensureLoaded(); + return map !== null; + } + function entries(prefix = "") { + ensureLoaded(); + if (!map) + return []; + const out = []; + for (const key of map.keys()) { + if (key.length >= prefix.length && key.slice(0, prefix.length) === prefix) { + out.push(key); + } + } + out.sort(); + return out; + } + function get(key) { + ensureLoaded(); + const e = map ? map.get(key) : undefined; + if (!e) { + throw new Error("pak: missing key " + key + " (no __pak provided, or the pack is incomplete)"); + } + return bytes.slice(e.off, e.off + e.len); + } + + // framework/src/input.ts + var root = null; + var focused = null; + var pressedNode = null; + var prevButtons = 0; + var focusScopeStack = []; + var focusGridStack = []; + var focusControllerStack = []; + function setInputRoot(r) { + root = r; + focused = null; + pressedNode = null; + prevButtons = 0; + focusScopeStack.length = 0; + focusGridStack.length = 0; + focusControllerStack.length = 0; + if (cursor) { + cursor.pressTarget = null; + cursor.target = null; + cursor.spriteDirty = true; + cursor.fresh = true; + cursor.vw = 0; + if (cursor.tex >= 0) { + const ops = getOps(); + ops.setCursor?.(-1, 0, 0, 0, 0); + ops.freeTexture?.(cursor.tex); + cursor.tex = -1; + } + } + } + function registerPress(node, fn) { + node.onPress = fn ?? undefined; + } + function registerFocusable(node, on) { + node.focusable = on; + __notifyTreeMutation(); + if (!on && focused === node) { + focusNode(null); + } + } + function focusNode(node) { + if (pressedNode && pressedNode !== node) + setPressedNode(null); + focused = node; + getOps().setFocus(node ? node.id : 0); + } + function setPressedNode(node) { + if (pressedNode === node) + return; + const ops = getOps(); + if (pressedNode) + ops.setActive?.(pressedNode.id, 0); + pressedNode = node; + if (node) + ops.setActive?.(node.id, 1); + } + function activeFocusRoot() { + return focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : root; + } + function collectFocusables(node, out) { + if (!node) + return; + if (node.focusable) + out.push(node); + if (!Array.isArray(node.children)) + return; + for (let i = 0;i < node.children.length; i++) { + collectFocusables(node.children[i], out); + } + } + function focusables() { + const out = []; + const r = activeFocusRoot(); + if (r) + collectFocusables(r, out); + return out; + } + function linearDirection(direction) { + return direction === "down" || direction === "right" ? 1 : -1; + } + function moveLinearFocus(direction) { + const dir = linearDirection(direction); + const list = focusables(); + if (list.length === 0) { + if (focused) + focusNode(null); + return; + } + const i = focused ? list.indexOf(focused) : -1; + if (i < 0) { + focusNode(dir === 1 ? list[0] : list[list.length - 1]); + return; + } + const j = i + dir; + if (j < 0 || j >= list.length) + return; + focusNode(list[j]); + } + function activeGrid() { + if (!focused) + return null; + const active = activeFocusRoot(); + if (active && !isWithin(focused, active)) + return null; + for (let i = focusGridStack.length - 1;i >= 0; i--) { + const grid = focusGridStack[i]; + if (active && !isWithin(grid.node, active) && !isWithin(active, grid.node)) + continue; + if (isWithin(focused, grid.node)) + return grid; + } + return null; + } + function moveGridFocus(direction) { + const grid = activeGrid(); + if (!grid) + return false; + const list = []; + collectFocusables(grid.node, list); + if (list.length === 0) { + if (focused) + focusNode(null); + return true; + } + const columns = grid.columns; + const i = focused ? list.indexOf(focused) : -1; + if (i < 0) { + focusNode(linearDirection(direction) === 1 ? list[0] : list[list.length - 1]); + return true; + } + let j = i; + switch (direction) { + case "right": + if (i + 1 < list.length && i % columns < columns - 1) + j = i + 1; + else if (grid.wrap) + j = Math.floor(i / columns) * columns; + break; + case "left": + if (i % columns > 0) + j = i - 1; + else if (grid.wrap) + j = Math.min(list.length - 1, Math.floor(i / columns) * columns + columns - 1); + break; + case "down": + if (i + columns < list.length) + j = i + columns; + else if (grid.wrap) + j = i % columns; + break; + case "up": + if (i - columns >= 0) + j = i - columns; + else if (grid.wrap) { + const col = i % columns; + j = col; + while (j + columns < list.length) + j += columns; + } + break; + } + if (j !== i) + focusNode(list[j]); + return true; + } + function activeController() { + if (!focused) + return null; + const active = activeFocusRoot(); + if (active && !isWithin(focused, active)) + return null; + for (let i = focusControllerStack.length - 1;i >= 0; i--) { + const ctl = focusControllerStack[i]; + if (active && !isWithin(ctl.node, active) && !isWithin(active, ctl.node)) + continue; + if (isWithin(focused, ctl.node)) + return ctl; + } + return null; + } + function moveFocus(direction) { + const ctl = activeController(); + if (ctl && ctl.move(direction)) + return; + if (moveGridFocus(direction)) + return; + moveLinearFocus(direction); + } + function firePress() { + let n = focused; + while (n) { + if (n.onPress) { + n.onPress(); + return; + } + n = n.parent; + } + } + function isWithin(node, ancestor) { + if (!node || !ancestor) + return false; + let n = node; + while (n) { + if (n === ancestor) + return true; + n = n.parent; + } + return false; + } + function firstFocusable(node) { + if (!node) + return null; + if (node.focusable) + return node; + if (!Array.isArray(node.children)) + return null; + for (let i = 0;i < node.children.length; i++) { + const f = firstFocusable(node.children[i]); + if (f) + return f; + } + return null; + } + function notifyDetached(node) { + if (!focused || !isWithin(focused, node)) + return; + const parent = node.parent; + if (parent) { + const idx = parent.children.indexOf(node); + for (let i = idx + 1;i < parent.children.length; i++) { + const f = firstFocusable(parent.children[i]); + if (f) { + focusNode(f); + return; + } + } + for (let i = idx - 1;i >= 0; i--) { + const f = firstFocusable(parent.children[i]); + if (f) { + focusNode(f); + return; + } + } + let a = parent; + while (a) { + if (a.focusable) { + focusNode(a); + return; + } + a = a.parent; + } + } + focusNode(null); + } + var cursor = null; + var inputGen = 0; + function __notifyTreeMutation() { + inputGen++; + } + var ARROW_OUTLINE = [1, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1985, 73, 149, 147, 288, 480]; + var ARROW_FILL = [0, 0, 2, 6, 14, 30, 62, 126, 254, 510, 62, 54, 98, 96, 192, 0]; + function defaultArrowRGBA() { + const px = new Uint8Array(16 * 16 * 4); + for (let y = 0;y < 16; y++) { + for (let x = 0;x < 16; x++) { + const outline = ARROW_OUTLINE[y] >> x & 1; + const fill = ARROW_FILL[y] >> x & 1; + if (!outline && !fill) + continue; + const i = (y * 16 + x) * 4; + const v = fill ? 255 : 0; + px[i] = v; + px[i + 1] = v; + px[i + 2] = v; + px[i + 3] = 255; + } + } + return px; + } + function cursorInitSprite(c, ops) { + const sprite = c.sprite; + c.spriteDirty = false; + const old = c.tex; + let tex = -1; + let blob = null; + if (typeof sprite.image === "string") { + try { + blob = get(sprite.image); + } catch (err) { + if (getHost().strict) + throw err; + blob = null; + } + } else if (sprite.image) { + blob = sprite.image; + } + if (blob) { + tex = ops.uploadImgEntry ? ops.uploadImgEntry(blob) : uploadImgFallback(ops, blob); + if (tex < 0 && getHost().strict) { + throw new Error("enableCursor: cursor image rejected (malformed or RLE-only IMG entry)"); + } + } + if (tex < 0) { + tex = ops.uploadTexture(defaultArrowRGBA(), 16, 16, PSM.PSM_8888); + } + c.tex = tex; + ops.setCursor(tex, sprite.hotspot[0], sprite.hotspot[1], sprite.size[0], sprite.size[1]); + if (old >= 0 && old !== tex) + ops.freeTexture?.(old); + } + function uploadImgFallback(ops, blob) { + if (blob.length < 8) + return -1; + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + if (blob[5] & IMG_FLAG_RLE) + return -1; + return ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); + } + function findMirror(node, id) { + if (!node || id === 0) + return null; + if (node.id === id) + return node; + const kids = node.children; + if (!Array.isArray(kids)) + return null; + for (let i = 0;i < kids.length; i++) { + const found = findMirror(kids[i], id); + if (found) + return found; + } + return null; + } + var hitRoot = null; + function setHitRoot(r) { + hitRoot = r; + } + function cursorTarget(hit) { + const scope = focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : null; + let n = hit; + while (n) { + if (n.focusable && (!scope || isWithin(n, scope))) + return n; + n = n.parent; + } + return null; + } + function cursorFrame(buttons, pressed, released) { + const c = cursor; + const ops = getOps(); + if (!ops.hitTest || !ops.setCursor || !ops.setCursorPos) + return false; + if (c.vw === 0) { + const vp = hostViewport(ops); + c.vw = vp ? vp.w : SCREEN_W; + c.vh = vp ? vp.h : SCREEN_H; + if (c.x < 0) { + c.x = Math.floor(c.vw / 2); + c.y = Math.floor(c.vh / 2); + } + } + if (c.spriteDirty) + cursorInitSprite(c, ops); + let vx = analogX() * c.speed; + let vy = analogY() * c.speed; + if (c.dpadSpeed > 0 && vx === 0 && vy === 0) { + if (buttons & BTN.LEFT) + vx = -c.dpadSpeed; + if (buttons & BTN.RIGHT) + vx = c.dpadSpeed; + if (buttons & BTN.UP) + vy = -c.dpadSpeed; + if (buttons & BTN.DOWN) + vy = c.dpadSpeed; + } + let moved = c.fresh; + if (vx !== 0 || vy !== 0) { + const dt = ticksPerFrame() / 60; + const nx = Math.min(Math.max(c.x + vx * dt, 0), c.vw - 1); + const ny = Math.min(Math.max(c.y + vy * dt, 0), c.vh - 1); + if (nx !== c.x || ny !== c.y) { + c.x = nx; + c.y = ny; + moved = true; + } + } + if (moved) + ops.setCursorPos(c.x, c.y); + const edges = (pressed | released) & c.button; + const gen = inputGen; + if (moved || edges !== 0 || gen !== c.gen) { + c.gen = gen; + c.fresh = false; + c.target = cursorTarget(findMirror(hitRoot ?? root, ops.hitTest(c.x, c.y))); + } + const target = c.target; + if (target !== focused) + focusNode(target); + if (pressed & c.button && target) { + c.pressTarget = target; + } + if (c.pressTarget) { + setPressedNode(target === c.pressTarget ? c.pressTarget : null); + if (released & c.button) { + const fire = target === c.pressTarget; + c.pressTarget = null; + setPressedNode(null); + if (fire) + firePress(); + } + } else if (released & c.button) { + setPressedNode(null); + } + return true; + } + function handleFrame(buttons) { + const pressed = buttons & ~prevButtons; + const released = prevButtons & ~buttons; + prevButtons = buttons; + if (cursor && cursorFrame(buttons, pressed, released)) + return; + if (released & BTN.CIRCLE) + setPressedNode(null); + if (pressed === 0) + return; + if (pressed & BTN.DOWN) + moveFocus("down"); + if (pressed & BTN.RIGHT) + moveFocus("right"); + if (pressed & BTN.UP) + moveFocus("up"); + if (pressed & BTN.LEFT) + moveFocus("left"); + if (pressed & BTN.CIRCLE) { + setPressedNode(focused); + firePress(); + } + } + + // framework/src/native-tree.ts + var treeMutationHook = null; + function setTreeMutationHook(fn) { + treeMutationHook = fn; + } + function treeMutated() { + __notifyTreeMutation(); + if (treeMutationHook) + treeMutationHook(); + } + function setDebugName(node, name) { + node.debugName = name || undefined; + treeMutated(); + } + var rootMirror = { + id: ROOT_ID, + type: NODE_TYPE.view, + parent: null, + children: [], + domNodeType: 1, + domTag: "root" + }; + var DOM_NODE = Symbol.for("pocketjs.native-node"); + var DOM_ELEMENT = 1; + var DOM_TEXT = 3; + var DOM_COMMENT = 8; + var NATIVE_ATTRIBUTE_NAMES = new Set(["class", "className", "style", "src", "onPress", "on:press", "focusable", "debugName", "ref", "nodeRef", "key", "children"]); + function domAttrs(node) { + return node.domAttrs ??= {}; + } + function cloneNativeNode(node, deep) { + const nodeType = node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); + const clone = nodeType === DOM_TEXT ? createTextNode(node.text ?? "") : nodeType === DOM_COMMENT ? createCommentNode(node.domData ?? "") : createElement(node.domTag ?? tagName(node)); + for (const key of Object.keys(node.domAttrs ?? {})) { + setDomAttribute(clone, key, node.domAttrs[key]); + } + if (deep) { + for (const child of node.children) + insertNode(clone, cloneNativeNode(child, true)); + } + return clone; + } + function setDomAttribute(node, name, value) { + if (NATIVE_ATTRIBUTE_NAMES.has(name)) { + setProp(node, name, value, node.domAttrs?.[name]); + return; + } + if (value == null) + delete domAttrs(node)[name]; + else + domAttrs(node)[name] = value; + } + function decorateNativeNode(node) { + if (node[DOM_NODE] === true) + return node; + Object.defineProperty(node, DOM_NODE, { + value: true + }); + Object.defineProperties(node, { + nodeType: { + configurable: true, + get() { + return node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); + } + }, + nodeValue: { + configurable: true, + get() { + return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; + }, + set(value) { + if (node.domNodeType === DOM_COMMENT) + node.domData = String(value ?? ""); + else + replaceText(node, String(value ?? "")); + } + }, + data: { + configurable: true, + get() { + return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; + }, + set(value) { + if (node.domNodeType === DOM_COMMENT) + node.domData = String(value ?? ""); + else + replaceText(node, String(value ?? "")); + } + }, + textContent: { + configurable: true, + get() { + if (node.domNodeType === DOM_COMMENT) + return node.domData ?? ""; + if (isTextNode(node)) + return node.text ?? ""; + return node.children.map((child) => child.text ?? "").join(""); + }, + set(value) { + const text = String(value ?? ""); + if (node.domNodeType === DOM_COMMENT) { + node.domData = text; + } else if (isTextNode(node)) { + replaceText(node, text); + } else { + clearContainer(node); + if (text) + insertNode(node, createTextNode(text)); + } + } + }, + parentNode: { + configurable: true, + get() { + return node.parent; + } + }, + parentElement: { + configurable: true, + get() { + return node.parent; + } + }, + childNodes: { + configurable: true, + get() { + return node.children; + } + }, + firstChild: { + configurable: true, + get() { + return node.children[0] ?? null; + } + }, + lastChild: { + configurable: true, + get() { + return node.children[node.children.length - 1] ?? null; + } + }, + nextSibling: { + configurable: true, + get() { + return getNextSibling(node) ?? null; + } + }, + previousSibling: { + configurable: true, + get() { + const parent = node.parent; + if (!parent) + return null; + const index = parent.children.indexOf(node); + return index > 0 ? parent.children[index - 1] : null; + } + }, + tagName: { + configurable: true, + get() { + return (node.domTag ?? tagName(node)).toUpperCase(); + } + }, + nodeName: { + configurable: true, + get() { + if (node.domNodeType === DOM_TEXT) + return "#text"; + if (node.domNodeType === DOM_COMMENT) + return "#comment"; + return (node.domTag ?? tagName(node)).toUpperCase(); + } + }, + className: { + configurable: true, + get() { + return String(node.domAttrs?.class ?? ""); + }, + set(value) { + setProp(node, "class", value, node.domAttrs?.class); + } + }, + isConnected: { + configurable: true, + get() { + let current2 = node; + while (current2) { + if (current2 === rootMirror) + return true; + current2 = current2.parent; + } + return false; + } + } + }); + const methods = { + appendChild(child) { + insertNode(node, child); + return child; + }, + insertBefore(child, anchor) { + insertNode(node, child, anchor ?? null); + return child; + }, + removeChild(child) { + removeNode(node, child); + return child; + }, + replaceChild(next, current2) { + insertNode(node, next, current2); + removeNode(node, current2); + return current2; + }, + cloneNode(deep = false) { + return cloneNativeNode(node, !!deep); + }, + remove() { + if (node.parent) + removeNode(node.parent, node); + }, + setAttribute(name, value) { + setDomAttribute(node, name, value); + }, + removeAttribute(name) { + setDomAttribute(node, name, undefined); + }, + getAttribute(name) { + const value = node.domAttrs?.[name]; + return value == null ? null : String(value); + }, + hasAttribute(name) { + return node.domAttrs?.[name] != null; + }, + hasChildNodes() { + return node.children.length > 0; + }, + contains(other) { + let current2 = other ?? null; + while (current2) { + if (current2 === node) + return true; + current2 = current2.parent; + } + return false; + }, + addEventListener() {}, + removeEventListener() {} + }; + Object.assign(node, methods, { + style: { + length: 0, + item: () => "" + }, + classList: { + add() {}, + remove() {} + } + }); + return node; + } + decorateNativeNode(rootMirror); + var styleResolver = null; + function setStyleResolver(fn) { + styleResolver = fn; + } + var missCounters = { + unknownClass: 0, + unknownTexture: 0 + }; + var textures = new Map; + function registerTexture(key, handle) { + textures.set(key, handle); + } + var sprites = new Map; + function registerSprite(key, meta) { + sprites.set(key, meta); + } + var sweepSet = new Set; + var retained = new Set; + function subtreeHasRetained(node) { + if (!node) + return false; + if (retained.has(node)) + return true; + if (node.children) { + for (let i = 0;i < node.children.length; i++) { + if (subtreeHasRetained(node.children[i])) + return true; + } + } + return false; + } + function runSweep() { + if (sweepSet.size === 0) + return; + const ops = getOps(); + const keep = []; + for (const node of sweepSet) { + if (!node) + continue; + if (node.parent !== null) + continue; + if (subtreeHasRetained(node)) { + keep.push(node); + continue; + } + ops.destroyNode(node.id); + } + sweepSet.clear(); + for (let i = 0;i < keep.length; i++) + sweepSet.add(keep[i]); + } + function createElement(tag) { + const type = NODE_TYPE[tag]; + if (type === undefined) { + throw new Error(`PocketJS: unknown element <${tag}> - only view/text/image exist`); + } + return decorateNativeNode({ + id: getOps().createNode(type), + type, + parent: null, + children: [], + domNodeType: DOM_ELEMENT, + domTag: tag + }); + } + function createTextNode(value) { + const ops = getOps(); + const id = ops.createNode(NODE_TYPE.text); + ops.setText(id, value); + return decorateNativeNode({ + id, + type: NODE_TYPE.text, + parent: null, + children: [], + text: value, + domNodeType: DOM_TEXT, + domTag: "#text" + }); + } + function createCommentNode(data = "") { + const node = createTextNode(""); + node.domNodeType = DOM_COMMENT; + node.domTag = "#comment"; + node.domData = data; + return node; + } + function replaceText(node, value) { + getOps().replaceText(node.id, value); + node.text = value; + treeMutated(); + } + function isTextNode(node) { + return node.type === NODE_TYPE.text; + } + function unlink(node) { + const p = node.parent; + if (!p) + return; + const i = p.children.indexOf(node); + if (i >= 0) + p.children.splice(i, 1); + node.parent = null; + } + function insertNode(parent, node, anchor) { + const ops = getOps(); + unlink(node); + sweepSet.delete(node); + ops.insertBefore(parent.id, node.id, anchor ? anchor.id : 0); + if (anchor) { + const i = parent.children.indexOf(anchor); + if (i < 0) + throw new Error("PocketJS: insert anchor is not a child of parent"); + parent.children.splice(i, 0, node); + } else { + parent.children.push(node); + } + node.parent = parent; + treeMutated(); + } + function removeNode(parent, node) { + if (!node) + return; + notifyDetached(node); + getOps().removeChild(parent.id, node.id); + unlink(node); + sweepSet.add(node); + treeMutated(); + } + function getParentNode(node) { + return node.parent ?? undefined; + } + function getFirstChild(node) { + return node.children[0]; + } + function getNextSibling(node) { + const p = node.parent; + if (!p) + return; + const i = p.children.indexOf(node); + return i >= 0 ? p.children[i + 1] : undefined; + } + function setClass(node, value) { + const ops = getOps(); + treeMutated(); + if (value == null || value === "") { + ops.setStyle(node.id, STYLE_ID_NONE); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: class must be a string literal of utilities"); + } + const styleId = styleResolver ? styleResolver(value) : undefined; + if (styleId === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown class "${value}" - not in the compiled style table ` + "(dynamic classes must be ternaries of full literals)"); + } + missCounters.unknownClass++; + return; + } + ops.setStyle(node.id, styleId); + } + function setSrc(node, value) { + const ops = getOps(); + if (value == null || value === "") { + ops.setImage(node.id, -1); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: src must be a string key"); + } + const handle = textures.get(value); + if (handle === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown image src "${value}" - no texture registered under that key`); + } + missCounters.unknownTexture++; + return; + } + ops.setImage(node.id, handle); + } + function setSpriteSrc(node, value) { + const ops = getOps(); + if (value == null || value === "") { + ops.setSprite(node.id, -1, 0, 0, 0); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: sprite must be a string key"); + } + const meta = sprites.get(value); + if (meta === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown sprite "${value}" - no sprite atlas registered under that key`); + } + missCounters.unknownTexture++; + return; + } + ops.setSprite(node.id, meta.handle, meta.frames, meta.cols, meta.step); + } + function setStyleObject(node, value, prev) { + const ops = getOps(); + const next = value ?? {}; + const before = prev ?? {}; + let changed = false; + for (const key in next) { + const v = next[key]; + if (before[key] === v) + continue; + const propId = PROP[key]; + if (propId === undefined) { + throw new Error(`PocketJS: unknown style prop '${key}' (see spec PROP)`); + } + ops.setProp(node.id, propId, encodePropValue(key, v)); + changed = true; + } + if (changed) + treeMutated(); + } + function setProp(node, name, value, prev) { + if (value === prev && name !== "style") + return value; + if (name === "className") + name = "class"; + if (name !== "children" && name !== "key" && name !== "ref" && name !== "nodeRef") { + if (value == null) + delete domAttrs(node)[name]; + else + domAttrs(node)[name] = value; + } + switch (name) { + case "class": + setClass(node, value); + return value; + case "onPress": + case "on:press": + registerPress(node, value); + return value; + case "src": + setSrc(node, value); + return value; + case "sprite": + setSpriteSrc(node, value); + return value; + case "style": + setStyleObject(node, value, prev); + return value; + case "focusable": + registerFocusable(node, !!value); + return value; + case "debugName": + setDebugName(node, value == null ? undefined : String(value)); + return value; + case "ref": + case "nodeRef": + case "key": + case "children": + return value; + default: + break; + } + if (name === "classList") { + throw new Error("PocketJS: classList is not supported - use ternaries of full class literals"); + } + if (name.startsWith("on:") || name.startsWith("bool:") || name.startsWith("prop:")) { + throw new Error(`PocketJS: unsupported namespaced attribute '${name}'`); + } + throw new Error(`PocketJS: unknown property '${name}' on <${tagName(node)}>`); + } + function clearContainer(container) { + for (const child of [...container.children]) + removeNode(container, child); + } + function tagName(node) { + for (const key of Object.keys(NODE_TYPE)) { + if (NODE_TYPE[key] === node.type) + return key; + } + return String(node.type); + } + + // framework/src/renderer-solid.ts + function setProperty(node, name, value, prev) { + if (name === "ref" && typeof value === "function") { + value(node); + return; + } + setProp(node, name, value, prev); + } + var renderer = createRenderer({ + createElement, + createTextNode, + replaceText, + isTextNode, + setProperty, + insertNode(parent, node, anchor) { + insertNode(parent, node, anchor); + }, + removeNode(parent, node) { + removeNode(parent, node); + }, + getParentNode, + getFirstChild, + getNextSibling + }); + var { + render, + effect, + memo: memo2, + createComponent: createComponent2, + createElement: createElement2, + insert, + spread, + mergeProps: mergeProps2, + use + } = renderer; + + // framework/src/anim.ts + var EASING_BY_NAME = { + linear: ENUMS.Easing.Linear, + in: ENUMS.Easing.EaseIn, + out: ENUMS.Easing.EaseOut, + "in-out": ENUMS.Easing.EaseInOut, + "out-back": ENUMS.Easing.OutBack, + spring: ENUMS.Easing.Spring, + "spring-bouncy": ENUMS.Easing.SpringBouncy + }; + function nodeId(node) { + return typeof node === "number" ? node : node.id; + } + function animatablePropId(prop) { + const propId = PROP[prop]; + if (propId === undefined) { + throw new Error(`PocketJS: unknown prop '${prop}'`); + } + if (animBit(prop) < 0) { + throw new Error(`PocketJS: prop '${prop}' is not animatable (see spec ANIMATABLE)`); + } + return propId; + } + function animate(node, prop, to, opts = {}) { + const propId = animatablePropId(prop); + let easing; + if (typeof opts.easing === "number") { + easing = opts.easing; + } else { + const named = EASING_BY_NAME[opts.easing ?? "out"]; + if (named === undefined) { + throw new Error(`PocketJS: unknown easing '${opts.easing}'`); + } + easing = named; + } + return getOps().animate(nodeId(node), propId, encodePropValue(prop, to), opts.dur ?? 200, easing, opts.delay ?? 0); + } + function spring(node, prop, to, preset = "default") { + const propId = animatablePropId(prop); + const easing = preset === "bouncy" ? ENUMS.Easing.SpringBouncy : ENUMS.Easing.Spring; + return getOps().animate(nodeId(node), propId, encodePropValue(prop, to), 0, easing, 0); + } + + // framework/src/overlay.ts + var overlayRoot = null; + function setOverlayRoot(root2) { + overlayRoot = root2; + } + // framework/src/primitives.ts + function callRef(ref, node) { + if (!ref) + return; + if (typeof ref === "function") + ref(node); + else if ("current" in ref) + ref.current = node; + } + function primitive(tag, props) { + const el = createElement2(tag); + spread(el, props, false); + callRef(props.nodeRef, el); + return el; + } + function View(props) { + return primitive("view", props); + } + function Text(props) { + return primitive("text", props); + } + // framework/src/hot.ts + var lastText = new WeakMap; + var lastProp = new WeakMap; + + // framework/src/platform.ts + var features = {} !== null ? Object.freeze({ + ...{} + }) : Object.freeze({}); + var platform = Object.freeze({ + target: "", + pixelRatio: Number.isInteger(1) ? 1 : 1, + features + }); + + // framework/src/tiles.ts + var parsed = new Map; + // apps/cards/app.tsx + var CARDS = [{ + title: "Layout", + caption: "Flexbox via Taffy", + detail: "Rows, columns, gaps and insets — solved natively in Rust.", + cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-blue-50 focus:border-blue-500 focus:translate-y-0 transition-all duration-150 ease-out", + strip: "h-1 w-full rounded-sm bg-gradient-to-r from-blue-500 to-blue-600", + bar: "w-1 h-7 bg-blue-500" + }, { + title: "Motion", + caption: "Springs and tweens", + detail: "Fixed-dt springs and tweens tick natively at 60 FPS.", + cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-emerald-50 focus:border-emerald-500 focus:translate-y-0 transition-all duration-150 ease-out", + strip: "h-1 w-full rounded-sm bg-gradient-to-r from-emerald-500 to-emerald-600", + bar: "w-1 h-7 bg-emerald-500" + }, { + title: "Input", + caption: "D-pad and focus", + detail: "Native focus variants respond before JS even wakes up.", + cls: "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-amber-50 focus:border-amber-500 focus:translate-y-0 transition-all duration-150 ease-out", + strip: "h-1 w-full rounded-sm bg-gradient-to-r from-amber-500 to-amber-600", + bar: "w-1 h-7 bg-amber-500" + }]; + function Detail(props) { + let el; + onMount(() => { + if (el) + spring(el, "translateY", 0); + }); + return createComponent2(View, { + ref(r$) { + var _ref$ = el; + typeof _ref$ === "function" ? _ref$(r$) : el = r$; + }, + debugName: "Detail", + style: { + translateY: 22 + }, + class: "flex-row items-center gap-3 p-3 rounded-xl shadow-md bg-white border-slate-200", + get children() { + return [createComponent2(View, { + get ["class"]() { + return props.card.bar; + } + }), createComponent2(View, { + class: "flex-col gap-1", + get children() { + return [createComponent2(Text, { + class: "text-sm text-slate-950 font-bold", + get children() { + return props.card.title; + } + }), createComponent2(Text, { + class: "text-xs text-slate-600", + get children() { + return props.card.detail; + } + })]; + } + })]; + } + }); + } + function Cards() { + const [open, setOpen] = createSignal(-1); + const selected = () => open() >= 0 ? CARDS[open()] : undefined; + let streakA; + let streakB; + onMount(() => { + if (streakA) + animate(streakA, "translateX", 300, { + dur: 20000, + easing: "linear" + }); + if (streakB) + animate(streakB, "translateX", -260, { + dur: 26000, + easing: "linear" + }); + }); + return createComponent2(View, { + debugName: "CardsScreen", + class: "relative flex-col w-full h-full p-4 gap-3 bg-slate-50 overflow-hidden", + get children() { + return [createComponent2(View, { + ref(r$) { + var _ref$2 = streakA; + typeof _ref$2 === "function" ? _ref$2(r$) : streakA = r$; + }, + class: "absolute left-0 top-[58] w-64 h-1 rounded-full opacity-50 bg-gradient-to-r from-blue-300 to-transparent", + style: { + translateX: 24 + } + }), createComponent2(View, { + ref(r$) { + var _ref$3 = streakB; + typeof _ref$3 === "function" ? _ref$3(r$) : streakB = r$; + }, + class: "absolute left-[210] top-[246] w-56 h-1 rounded-full opacity-40 bg-gradient-to-l from-cyan-300 to-transparent", + style: { + translateX: 0 + } + }), createComponent2(View, { + debugName: "Header", + class: "flex-row items-end justify-between", + get children() { + return [createComponent2(View, { + class: "flex-col", + get children() { + return [createComponent2(Text, { + class: "text-xs text-blue-600 tracking-wide", + children: "POCKETJS SHOWCASE" + }), createComponent2(Text, { + class: "text-2xl text-slate-950 font-bold", + children: "Feature Cards" + })]; + } + }), createComponent2(Text, { + class: "text-xs text-slate-500", + children: "3 MODULES" + })]; + } + }), createComponent2(View, { + debugName: "CardRow", + class: "flex-row gap-3", + get children() { + return CARDS.map((card, i) => createComponent2(View, { + get ["class"]() { + return card.cls; + }, + focusable: true, + onPress: () => setOpen(open() === i ? -1 : i), + get children() { + return [createComponent2(View, { + get ["class"]() { + return card.strip; + } + }), createComponent2(Text, { + class: "text-sm text-slate-950 font-bold", + get children() { + return card.title; + } + }), createComponent2(Text, { + class: "text-xs text-slate-600", + get children() { + return card.caption; + } + })]; + } + })); + } + }), createComponent2(View, { + debugName: "DetailPane", + class: "grow flex-col", + get children() { + return createComponent2(Show, { + get when() { + return selected(); + }, + keyed: true, + children: (card) => createComponent2(Detail, { + card + }) + }); + } + }), createComponent2(Text, { + class: "text-xs text-slate-500", + children: "LEFT / RIGHT move focus · CIRCLE toggle details" + })]; + } + }); + } + + // framework/src/devtools.ts + var TAPE_CAP = 36000; + var TREE_THROTTLE = 30; + var STATS_EVERY = 30; + var state = { + ops: null, + transport: null, + app: undefined, + frame: 0, + tape: new Uint16Array(TAPE_CAP), + tapeAnalog: new Uint16Array(TAPE_CAP), + tapeStart: 0, + tapeLen: 0, + tapeFirstFrame: 0, + replayMasks: null, + replayAnalog: null, + replayAt: 0, + paused: false, + stepQueued: 0, + inspectReportId: null, + inspectAskedAt: 0, + treeDirty: true, + treeSentAt: -TREE_THROTTLE, + saidHello: false, + hostCalls: 0 + }; + function initDevtools(ops) { + const g = globalThis; + if (!g.console) + g.console = { + log() {}, + warn() {}, + error() {} + }; + state.ops = ops; + state.frame = 0; + state.tapeStart = 0; + state.tapeLen = 0; + state.tapeFirstFrame = 0; + state.replayMasks = null; + state.replayAnalog = null; + state.paused = false; + state.stepQueued = 0; + state.inspectReportId = null; + state.inspectAskedAt = 0; + state.treeDirty = true; + state.treeSentAt = -TREE_THROTTLE; + state.saidHello = false; + state.hostCalls = 0; + state.app = globalThis.__pocketApp; + const injected = globalThis.__pocketDevtoolsTransport; + if (injected) { + state.transport = injected; + } else if (ops.__dbgActive?.() && ops.__dbgPoll && ops.__dbgSend) { + state.transport = { + send: (l) => ops.__dbgSend(l), + recv: () => ops.__dbgPoll(), + everyFrames: 10 + }; + } else { + state.transport = null; + } + if (state.transport) { + setTreeMutationHook(() => { + state.treeDirty = true; + }); + bridgeConsole(); + } else { + setTreeMutationHook(null); + } + globalThis.__pocketDevtools = api; + } + function wrapFrameHandler(h) { + return (buttons, analogArg, touchArg) => { + state.hostCalls++; + if (state.transport) { + pollTransport(); + flushInspectReport(); + } + let mask = buttons; + let analog = analogArg === undefined ? ANALOG_CENTER : analogArg & 65535; + let touch = touchArg; + if (state.replayMasks) { + if (state.replayAt < state.replayMasks.length) { + mask = state.replayMasks[state.replayAt]; + analog = state.replayAnalog ? state.replayAnalog[state.replayAt] : ANALOG_CENTER; + touch = undefined; + state.replayAt++; + } else { + state.replayMasks = null; + state.replayAnalog = null; + send({ + t: "replayDone", + frame: state.frame + }); + } + } + if (state.paused) { + if (state.stepQueued <= 0) + return; + state.stepQueued--; + state.ops?.debugStep?.(); + } + recordMask(mask, analog); + state.frame++; + try { + h(mask, analog, touch); + } catch (e) { + send({ + t: "error", + frame: state.frame, + message: e instanceof Error ? e.message : String(e), + stack: e instanceof Error ? e.stack : undefined + }); + throw e; + } + if (state.transport) + afterFrame(); + }; + } + function recordMask(mask, analog) { + if (state.tapeLen < TAPE_CAP) { + const at = (state.tapeStart + state.tapeLen) % TAPE_CAP; + state.tape[at] = mask; + state.tapeAnalog[at] = analog; + state.tapeLen++; + } else { + state.tape[state.tapeStart] = mask; + state.tapeAnalog[state.tapeStart] = analog; + state.tapeStart = (state.tapeStart + 1) % TAPE_CAP; + state.tapeFirstFrame++; + } + } + function rlePairs(ring) { + const out = []; + for (let i = 0;i < state.tapeLen; i++) { + const v = ring[(state.tapeStart + i) % TAPE_CAP]; + const last = out[out.length - 1]; + if (last && last[0] === v) + last[1]++; + else + out.push([v, 1]); + } + return out; + } + function exportTape() { + const tape = { + v: 1, + app: state.app, + frames: state.tapeLen, + masks: rlePairs(state.tape), + startFrame: state.tapeFirstFrame + }; + const analog = rlePairs(state.tapeAnalog); + if (analog.length > 1 || analog.length === 1 && analog[0][0] !== ANALOG_CENTER) { + tape.analog = analog; + } + return tape; + } + function expandPairs(pairs, fill, total) { + const out = new Uint16Array(total).fill(fill); + let at = 0; + for (const [v, n] of pairs) { + out.fill(v, at, Math.min(at + n, total)); + at += n; + } + return out; + } + function expandTape(tape) { + let total = 0; + for (const [, n] of tape.masks) + total += n; + return expandPairs(tape.masks, 0, total); + } + function expandTapeAnalog(tape) { + let total = 0; + for (const [, n] of tape.masks) + total += n; + return expandPairs(tape.analog ?? [], ANALOG_CENTER, total); + } + function send(msg) { + try { + state.transport?.send(JSON.stringify(msg)); + } catch {} + } + function pollTransport() { + const t = state.transport; + const every = t.everyFrames ?? 1; + if (every > 1 && state.hostCalls % every !== 0) + return; + if (!state.saidHello) { + state.saidHello = true; + send({ + t: "hello", + app: state.app, + host: hostKind(), + frame: state.frame + }); + } + for (let guard = 0;guard < 64; guard++) { + const chunk = t.recv(); + if (!chunk) + break; + for (const line of chunk.split(` +`)) { + if (line.trim()) + handleMessage(line); + } + } + } + function handleMessage(line) { + let msg; + try { + msg = JSON.parse(line); + } catch { + return; + } + const ops = state.ops; + switch (msg.t) { + case "inspect": { + const id = typeof msg.id === "number" ? msg.id : 0; + ops?.debugInspect?.(id); + state.inspectReportId = id || null; + state.inspectAskedAt = state.hostCalls; + if (!id) + send({ + t: "inspect", + id: 0, + rect: null + }); + break; + } + case "pause": + state.paused = true; + state.stepQueued = 0; + ops?.debugPause?.(true); + sendStats(); + break; + case "resume": + state.paused = false; + ops?.debugPause?.(false); + sendStats(); + break; + case "step": + state.stepQueued += typeof msg.n === "number" && msg.n > 0 ? msg.n : 1; + break; + case "getTree": + sendTree(); + break; + case "eval": { + let ok = true; + let value; + try { + value = fmt((0, eval)(String(msg.code))); + } catch (e) { + ok = false; + value = e instanceof Error ? `${e.name}: ${e.message}` : String(e); + } + send({ + t: "evalResult", + id: msg.id, + ok, + value + }); + break; + } + case "dumpTape": + send({ + t: "tape", + tape: exportTape() + }); + break; + case "devStats": { + let data = null; + const raw = ops?.debugStats?.(); + if (raw) { + try { + data = JSON.parse(raw); + } catch { + data = null; + } + } + send({ + t: "devStats", + frame: state.frame, + data + }); + break; + } + case "screenshot": { + if (ops?.__dbgShot?.()) { + send({ + t: "screenshotRaw", + file: "shot.raw", + w: 480, + h: 272, + stride: 512, + frame: state.frame + }); + } else { + send({ + t: "log", + level: "warn", + args: ["screenshot: not supported on this host"] + }); + } + break; + } + case "replay": { + const tape = msg.tape; + if (tape && Array.isArray(tape.masks)) { + state.replayMasks = expandTape(tape); + state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; + state.replayAt = 0; + } + break; + } + default: + break; + } + } + function afterFrame() { + if (state.treeDirty && state.frame - state.treeSentAt >= TREE_THROTTLE) { + sendTree(); + } + if (state.frame % STATS_EVERY === 0) + sendStats(); + } + function flushInspectReport() { + const id = state.inspectReportId; + if (id == null) + return; + const ops = state.ops; + if (!ops?.debugRectXY || !ops.debugRectWH) { + state.inspectReportId = null; + return; + } + const xy = ops.debugRectXY(); + if (xy === -1) { + if (state.hostCalls - state.inspectAskedAt > 60) { + state.inspectReportId = null; + send({ + t: "inspect", + id, + rect: null + }); + } + return; + } + const wh = ops.debugRectWH(); + state.inspectReportId = null; + send({ + t: "inspect", + id, + rect: [xy << 16 >> 16, xy >> 16, wh & 65535, wh >> 16 & 65535] + }); + } + function sendStats() { + send({ + t: "stats", + frame: state.frame, + nodes: countNodes(rootMirror), + tapeLen: state.tapeLen, + paused: state.paused + }); + } + function sendTree() { + state.treeDirty = false; + state.treeSentAt = state.frame; + send({ + t: "tree", + frame: state.frame, + root: serializeNode(rootMirror) + }); + } + function isTreeMirror(value) { + if (value == null || typeof value !== "object") + return false; + const candidate = value; + return typeof candidate.id === "number" && typeof candidate.type === "number"; + } + function forEachTreeMirror(value, visit) { + if (Array.isArray(value)) { + for (const entry of value) + forEachTreeMirror(entry, visit); + return; + } + if (isTreeMirror(value)) { + visit(value); + return; + } + if (value != null && typeof value === "object") { + const nodes = value.nodes; + if (nodes !== undefined) + forEachTreeMirror(nodes, visit); + } + } + function forEachTreeChild(node, visit) { + const children2 = Array.isArray(node.children) ? node.children : []; + for (const child of children2) + forEachTreeMirror(child, visit); + } + function serializeNode(node) { + const out = { + i: node.id, + t: node.domTag ?? String(node.type) + }; + if (node.debugName) + out.n = node.debugName; + const cls = node.domAttrs?.class; + if (typeof cls === "string" && cls) + out.c = cls; + if (node.text) + out.x = node.text.length > 80 ? node.text.slice(0, 79) + "…" : node.text; + const kids = []; + forEachTreeChild(node, (child) => { + if (child.domNodeType === 8) + return; + kids.push(serializeNode(child)); + }); + if (kids.length) + out.k = kids; + return out; + } + function countNodes(node) { + let n = 1; + forEachTreeChild(node, (child) => { + n += countNodes(child); + }); + return n; + } + function bridgeConsole() { + const g = globalThis; + if (!g.console) + g.console = {}; + const c = g.console; + if (c.__pocketBridged) + return; + c.__pocketBridged = true; + for (const level of ["log", "warn", "error"]) { + const original = c[level]; + c[level] = (...args) => { + send({ + t: "log", + level, + args: args.map((a) => fmt(a)) + }); + original?.apply(c, args); + }; + } + } + function fmt(v, depth = 0) { + if (v === undefined) + return "undefined"; + if (v === null) + return "null"; + const t = typeof v; + if (t === "string") { + const s = v; + return depth === 0 ? clip(s) : JSON.stringify(clip(s)); + } + if (t === "number" || t === "boolean" || t === "bigint") + return String(v); + if (t === "function") { + const name = v.name; + return name ? `[function ${name}]` : "[function]"; + } + if (depth >= 3) + return Array.isArray(v) ? "[…]" : "{…}"; + if (Array.isArray(v)) { + const items = v.slice(0, 20).map((x) => fmt(x, depth + 1)); + if (v.length > 20) + items.push(`… ${v.length - 20} more`); + return `[${items.join(", ")}]`; + } + if (v instanceof Error) + return `${v.name}: ${v.message}`; + const entries2 = Object.entries(v).slice(0, 20); + const body = entries2.map(([k, x]) => `${k}: ${fmt(x, depth + 1)}`).join(", "); + return `{${body}}`; + } + function clip(s) { + return s.length > 200 ? s.slice(0, 199) + "…" : s; + } + function hostKind() { + const ops = state.ops; + if (typeof ops?.__host === "string") + return ops.__host; + if (ops?.__textures !== undefined) + return "psp"; + if (typeof globalThis.document !== "undefined") + return "web"; + return "headless"; + } + var api = { + get frame() { + return state.frame; + }, + dumpTape: () => exportTape(), + replay: (tape) => { + state.replayMasks = expandTape(tape); + state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; + state.replayAt = 0; + } + }; + + // framework/src/styles.ts + var verbatim = new Map; + var sortedAlias = new Map; + function normalize(cls) { + return cls.trim().replace(/\s+/g, " "); + } + function sortTokens(normalized) { + return normalized.split(" ").sort().join(" "); + } + var ALIAS_AMBIGUOUS = -1; + function registerStyles(table) { + for (const key of Object.keys(table)) { + const id = table[key]; + const norm = normalize(key); + verbatim.set(norm, id); + const sorted = sortTokens(norm); + const prev = sortedAlias.get(sorted); + sortedAlias.set(sorted, prev !== undefined && prev !== id ? ALIAS_AMBIGUOUS : id); + } + } + function resolveStyle(cls) { + const norm = normalize(cls); + const hit = verbatim.get(norm); + if (hit !== undefined) + return hit; + const alias = sortedAlias.get(sortTokens(norm)); + return alias === ALIAS_AMBIGUOUS ? undefined : alias; + } + + // framework/src/touch.ts + var LEGACY_COORD_BITS = 9; + var LEGACY_COORD_MASK = (1 << LEGACY_COORD_BITS) - 1; + var LEGACY_ID_SHIFT = LEGACY_COORD_BITS * 2; + var WIDE_MARKER = 2147483648; + var WIDE_COORD_BITS = 10; + var WIDE_COORD_MASK = (1 << WIDE_COORD_BITS) - 1; + var WIDE_ID_SHIFT = WIDE_COORD_BITS * 2; + var EMPTY = Object.freeze([]); + var snapshot = EMPTY; + function __setTouches(packed) { + if (!packed || packed.length === 0) { + snapshot = EMPTY; + return; + } + snapshot = Object.freeze(packed.slice(0, 8).map((value) => { + const wide = (value & WIDE_MARKER) !== 0; + const coordBits = wide ? WIDE_COORD_BITS : LEGACY_COORD_BITS; + const coordMask = wide ? WIDE_COORD_MASK : LEGACY_COORD_MASK; + const idShift = wide ? WIDE_ID_SHIFT : LEGACY_ID_SHIFT; + return Object.freeze({ + id: value >>> idShift & 255, + x: value & coordMask, + y: value >>> coordBits & coordMask + }); + })); + } + function __resetTouches() { + snapshot = EMPTY; + } + + // framework/src/effects.ts + var nextId = 1; + var pending = new Map; + var queue = []; + function traceSink() { + const s = globalThis.__pocketEffectTrace; + return typeof s === "function" ? s : null; + } + function resetEffects() { + nextId = 1; + pending.clear(); + queue = []; + } + function __drainEffects() { + if (queue.length === 0) + return; + const batch = queue; + queue = []; + for (const { + id, + result + } of batch) { + const entry = pending.get(id); + if (!entry) + continue; + pending.delete(id); + traceSink()?.({ + t: "delivery", + frame: virtualFrame(), + id, + kind: entry.kind + }); + entry.onResult(result); + } + } + + // framework/src/styles.generated.ts + var STYLE_IDS = { + "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-blue-50 focus:border-blue-500 focus:translate-y-0 transition-all duration-150 ease-out": 0, + "h-1 w-full rounded-sm bg-gradient-to-r from-blue-500 to-blue-600": 1, + "w-1 h-7 bg-blue-500": 2, + "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-emerald-50 focus:border-emerald-500 focus:translate-y-0 transition-all duration-150 ease-out": 3, + "h-1 w-full rounded-sm bg-gradient-to-r from-emerald-500 to-emerald-600": 4, + "w-1 h-7 bg-emerald-500": 5, + "flex-col gap-1 p-3 w-[136] rounded-xl shadow-md overflow-hidden bg-white border-slate-200 translate-y-1 focus:bg-amber-50 focus:border-amber-500 focus:translate-y-0 transition-all duration-150 ease-out": 6, + "h-1 w-full rounded-sm bg-gradient-to-r from-amber-500 to-amber-600": 7, + "w-1 h-7 bg-amber-500": 8, + "flex-row items-center gap-3 p-3 rounded-xl shadow-md bg-white border-slate-200": 9, + "flex-col gap-1": 10, + "text-sm text-slate-950 font-bold": 11, + "text-xs text-slate-600": 12, + "relative flex-col w-full h-full p-4 gap-3 bg-slate-50 overflow-hidden": 13, + "absolute left-0 top-[58] w-64 h-1 rounded-full opacity-50 bg-gradient-to-r from-blue-300 to-transparent": 14, + "absolute left-[210] top-[246] w-56 h-1 rounded-full opacity-40 bg-gradient-to-l from-cyan-300 to-transparent": 15, + "flex-row items-end justify-between": 16, + "flex-col": 17, + "text-xs text-blue-600 tracking-wide": 18, + "text-2xl text-slate-950 font-bold": 19, + "text-xs text-slate-500": 20, + "flex-row gap-3": 21, + "grow flex-col": 22, + "relative flex-col w-full h-full bg-slate-50 overflow-hidden": 23, + "absolute inset-0 z-50 flex-col items-center justify-center": 24, + "absolute inset-0 bg-slate-950": 25, + "flex-col gap-2 w-[328] p-3 rounded-xl shadow-lg bg-white border-slate-200": 26, + "absolute left-3 right-3 bottom-3 flex-row items-center justify-between px-2 py-1 rounded-lg shadow-md bg-white border-slate-200": 27, + "flex-row flex-wrap": 28, + grow: 29 + }; + + // framework/src/index.ts + if (typeof globalThis.queueMicrotask !== "function") { + globalThis.queueMicrotask = (fn) => { + Promise.resolve().then(fn); + }; + } + var STYLES_KEY = "ui:styles"; + var FONT_PREFIX = "ui:font."; + var IMG_PREFIX = "ui:img."; + var SPRITE_PREFIX = "ui:sprite."; + function globalOps() { + return globalThis.ui; + } + function uploadPakImages(ops) { + if (ops.__textures) + return; + for (const key of entries(IMG_PREFIX)) { + const blob = get(key); + let handle; + if (ops.uploadImgEntry) { + handle = ops.uploadImgEntry(blob); + } else { + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + handle = ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); + } + if (handle >= 0) + registerTexture(key.slice(IMG_PREFIX.length), handle); + } + } + function uploadPakSprites(ops) { + if (ops.__sprites) + return; + for (const key of entries(SPRITE_PREFIX)) { + const blob = get(key); + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + const w = dv.getUint16(0, true); + const h = dv.getUint16(2, true); + const psm = blob[4]; + const frames = dv.getUint16(6, true); + const cols = dv.getUint16(8, true); + const step = dv.getUint16(10, true); + const handle = ops.uploadTexture(blob.subarray(16), w, h, psm); + if (handle >= 0) { + registerSprite(key.slice(SPRITE_PREFIX.length), { + handle, + frames, + cols, + step + }); + } + } + } + function createLayer(style) { + const layer = createElement2("view"); + setProp(layer, "style", style, undefined); + return layer; + } + var appLayer = null; + var overlayLayer = null; + function resizeViewport(w, h) { + if (!appLayer || !overlayLayer) + return; + setProp(appLayer, "style", { + width: w, + height: h, + overflow: ENUMS.Overflow.Hidden + }, undefined); + setProp(overlayLayer, "style", { + width: w, + height: h, + posType: ENUMS.PosType.Absolute, + insetT: 0, + insetR: 0, + insetB: 0, + insetL: 0, + zIndex: 1000 + }, undefined); + const ops = getOps(); + ops.__viewport = { + w, + h + }; + } + function render2(code, opts = {}) { + const host = detectHost(opts.ops); + installHost(host); + setStyleResolver(resolveStyle); + if (opts.styles) + registerStyles(opts.styles); + const nativeTextureTable = host.kind === "native" ? host.ops.__textures : undefined; + if (host.kind === "native") { + if (nativeTextureTable) { + for (const key in nativeTextureTable) { + registerTexture(key, nativeTextureTable[key]); + } + } + const spr = host.ops.__sprites; + if (spr) { + for (const key in spr) + registerSprite(key, spr[key]); + } + } + if (host.kind === "injected" || nativeTextureTable === undefined) { + if (opts.pak) + loadPack(opts.pak); + if (hasPack()) { + for (const key of entries()) { + if (key === STYLES_KEY) { + host.ops.loadStyles?.(get(key)); + } else if (key.startsWith(FONT_PREFIX)) { + host.ops.loadFontAtlas?.(get(key)); + } + } + } + } + const viewport = hostViewport(host.ops); + const layerW = viewport?.w ?? SCREEN_W; + const layerH = viewport?.h ?? SCREEN_H; + const appRoot = createLayer({ + width: layerW, + height: layerH, + overflow: ENUMS.Overflow.Hidden + }); + const overlayRoot2 = createLayer({ + width: layerW, + height: layerH, + posType: ENUMS.PosType.Absolute, + insetT: 0, + insetR: 0, + insetB: 0, + insetL: 0, + zIndex: 1000 + }); + insertNode(rootMirror, appRoot); + insertNode(rootMirror, overlayRoot2); + setOverlayRoot(overlayRoot2); + appLayer = appRoot; + overlayLayer = overlayRoot2; + setInputRoot(appRoot); + setHitRoot(rootMirror); + resetFrameHooks(); + resetClock(); + resetEffects(); + initDevtools(host.ops); + installFrameHandler(wrapFrameHandler((buttons, analog, touches) => { + __advanceClock(); + __setAnalog(analog); + __setTouches(touches); + __drainEffects(); + runFrameHooks(buttons); + handleFrame(buttons); + runSweep(); + })); + const dispose = render(code, appRoot); + const removeResizeViewportHook = installResizeViewportHook(resizeViewport); + return () => { + removeResizeViewportHook(); + __resetTouches(); + dispose(); + setInputRoot(null); + setHitRoot(null); + setOverlayRoot(null); + appLayer = null; + overlayLayer = null; + for (const child of rootMirror.children.splice(0)) { + child.parent = null; + host.ops.destroyNode(child.id); + } + runSweep(); + }; + } + function mount(code, opts = {}) { + const ops = opts.ops ?? globalOps(); + if (!ops) { + throw new Error("PocketJS: mount() requires globalThis.ui or opts.ops"); + } + if (opts.pak) + loadPack(opts.pak); + uploadPakImages(ops); + uploadPakSprites(ops); + const dispose = render2(code, { + ops, + styles: opts.styles ?? STYLE_IDS, + pak: opts.pak + }); + return dispose; + } + + // apps/cards/main.tsx + mount(() => createComponent2(Cards, {})); +})(); diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 02bcc54b2..072fa8e9f 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -76,9 +76,147 @@ static void ascii_to_wide(WCHAR *output, unsigned int capacity, output[index] = L'\0'; } +static char *g_draw_list; + +static int wide_length(const WCHAR *text) +{ + int length; + + length = 0; + while (text[length] != L'\0') + length++; + return length; +} + +static int read_number(char **cursor) +{ + int value; + + if (**cursor == '|') + (*cursor)++; + value = 0; + while (**cursor >= '0' && **cursor <= '9') { + value = value * 10 + (**cursor - '0'); + (*cursor)++; + } + return value; +} + +static void paint_cards(HWND window, HDC dc) +{ + RECT client; + RECT logical; + char *line; + char *next; + char *cursor; + char saved; + int offset_x; + int offset_y; + + GetClientRect(window, &client); + FillRect(dc, &client, (HBRUSH)GetStockObject(BLACK_BRUSH)); + offset_x = (client.right - 480) / 2; + offset_y = (client.bottom - 272) / 2; + line = g_draw_list; + while (line && *line) { + int x, y, w, h, size, r, g, b; + HBRUSH brush; + COLORREF color; + + next = line; + while (*next && *next != '\n') + next++; + saved = *next; + *next = '\0'; + cursor = line + 1; + if (line[0] == 'B') { + r = read_number(&cursor); + g = read_number(&cursor); + b = read_number(&cursor); + logical.left = offset_x; + logical.top = offset_y; + logical.right = offset_x + 480; + logical.bottom = offset_y + 272; + brush = CreateSolidBrush(RGB(r, g, b)); + FillRect(dc, &logical, brush); + DeleteObject(brush); + } else if (line[0] == 'R') { + x = read_number(&cursor); + y = read_number(&cursor); + w = read_number(&cursor); + h = read_number(&cursor); + r = read_number(&cursor); + g = read_number(&cursor); + b = read_number(&cursor); + logical.left = offset_x + x; + logical.top = offset_y + y; + logical.right = logical.left + w; + logical.bottom = logical.top + h; + brush = CreateSolidBrush(RGB(r, g, b)); + FillRect(dc, &logical, brush); + DeleteObject(brush); + } else if (line[0] == 'T') { + LOGFONT font_spec; + HFONT font; + HFONT previous_font; + WCHAR text[256]; + + x = read_number(&cursor); + y = read_number(&cursor); + size = read_number(&cursor); + r = read_number(&cursor); + g = read_number(&cursor); + b = read_number(&cursor); + if (*cursor == '|') + cursor++; + ascii_to_wide(text, 256, cursor); + memset(&font_spec, 0, sizeof(font_spec)); + font_spec.lfHeight = -size; + font_spec.lfWeight = size >= 14 ? FW_BOLD : FW_NORMAL; + font = CreateFontIndirect(&font_spec); + previous_font = (HFONT)SelectObject(dc, font); + color = RGB(r, g, b); + SetTextColor(dc, color); + SetBkMode(dc, TRANSPARENT); + TextOut(dc, offset_x + x, offset_y + y, + text, wide_length(text)); + SelectObject(dc, previous_font); + DeleteObject(font); + } + *next = saved; + line = saved ? next + 1 : next; + } +} + +static LRESULT CALLBACK CardsWindowProc(HWND window, UINT message, + WPARAM wparam, LPARAM lparam) +{ + switch (message) { + case WM_PAINT: + { + PAINTSTRUCT paint; + HDC dc = BeginPaint(window, &paint); + paint_cards(window, dc); + EndPaint(window, &paint); + } + return 0; + case WM_KEYDOWN: + if (wparam == VK_ESCAPE) { + DestroyWindow(window); + return 0; + } + break; + case WM_DESTROY: + PostQuitMessage(0); + return 0; + } + return DefWindowProc(window, message, wparam, lparam); +} + int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int show) { - static const char snapshot[] = "__wm6Snapshot()"; + static const char snapshot[] = "__wm6DrawList()"; + static const WCHAR class_name[] = L"PocketJSWM6Cards"; HMODULE module; wm6_qjs_abi_version_fn abi_version; wm6_qjs_create_fn create_runtime; @@ -92,6 +230,9 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s unsigned int bundle_length; WCHAR create_error[256]; WCHAR *message; + WNDCLASS window_class; + HWND window; + MSG message_loop; int status; (void)instance; @@ -159,12 +300,41 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s destroy_runtime(runtime); FreeLibrary(module); - ascii_to_wide(message, 8192, status == 0 ? snapshot_text : result); - MessageBox(NULL, message, - status == 0 ? L"PocketJS Cards bundle mounted" - : L"PocketJS QuickJS DLL failure", - MB_OK); + if (status != 0) { + ascii_to_wide(message, 8192, result); + MessageBox(NULL, message, L"PocketJS QuickJS DLL failure", MB_OK); + LocalFree(snapshot_text); + LocalFree(message); + return 5; + } + g_draw_list = snapshot_text; + memset(&window_class, 0, sizeof(window_class)); + window_class.lpfnWndProc = CardsWindowProc; + window_class.hInstance = instance; + window_class.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); + window_class.lpszClassName = class_name; + if (!RegisterClass(&window_class)) { + LocalFree(snapshot_text); + LocalFree(message); + return 6; + } + window = CreateWindow(class_name, L"PocketJS Feature Cards", + WS_VISIBLE, 0, 0, + GetSystemMetrics(SM_CXSCREEN), + GetSystemMetrics(SM_CYSCREEN), + NULL, NULL, instance, NULL); + if (!window) { + LocalFree(snapshot_text); + LocalFree(message); + return 7; + } + ShowWindow(window, show); + UpdateWindow(window); + while (GetMessage(&message_loop, NULL, 0, 0)) { + TranslateMessage(&message_loop); + DispatchMessage(&message_loop); + } LocalFree(snapshot_text); LocalFree(message); - return status == 0 ? 0 : 5; + return 0; } diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index db7dbd127..854c39920 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -133,6 +133,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).toContain("WCHAR create_error[256]"); expect(host).toContain("ascii_to_wide(create_error, 256, result)"); expect(host).not.toContain("ascii_to_wide(message, 256, result)"); + expect(host).toContain('static const char snapshot[] = "__wm6DrawList()"'); + expect(host).toContain("CreateWindow(class_name"); + expect(host).toContain("paint_cards(window, dc)"); expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', @@ -162,6 +165,7 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(cards).toContain("PocketJS Cards (real bundle)"); expect(cards).toContain("Feature Cards"); expect(cards).toContain("Flexbox via Taffy"); + expect(cards).toContain("globalThis.__wm6DrawList"); expect(executable.subarray(0, 2).toString("ascii")).toBe("MZ"); const peOffset = executable.readUInt32LE(0x3c); From dd3e27bdabbf35c36656ca6dcac4eeb61f3977c7 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 11:23:20 +0900 Subject: [PATCH 17/53] fix(wm6): use the Windows CE text API --- hosts/wm6/vs2005/src/quickjs_deploy.c | 4 ++-- tests/wm6-project.test.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 072fa8e9f..e4319fd13 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -178,8 +178,8 @@ static void paint_cards(HWND window, HDC dc) color = RGB(r, g, b); SetTextColor(dc, color); SetBkMode(dc, TRANSPARENT); - TextOut(dc, offset_x + x, offset_y + y, - text, wide_length(text)); + ExtTextOut(dc, offset_x + x, offset_y + y, 0, NULL, + text, wide_length(text), NULL); SelectObject(dc, previous_font); DeleteObject(font); } diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 854c39920..0eeceed84 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -136,6 +136,8 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).toContain('static const char snapshot[] = "__wm6DrawList()"'); expect(host).toContain("CreateWindow(class_name"); expect(host).toContain("paint_cards(window, dc)"); + expect(host).toContain("ExtTextOut(dc"); + expect(host).not.toContain("\n TextOut(dc"); expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', From da2b79cb642ae869613197c41806bcbeae33164a Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 11:35:55 +0900 Subject: [PATCH 18/53] feat(wm6): present Cards through an RGB565 framebuffer --- hosts/wm6/quickjs/README.md | 13 +- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 6 +- hosts/wm6/vs2005/README.md | 8 +- hosts/wm6/vs2005/src/quickjs_deploy.c | 15 +- hosts/wm6/vs2005/src/wm6_framebuffer.c | 257 +++++++++++++++++++ hosts/wm6/vs2005/src/wm6_framebuffer.h | 14 + tests/wm6-project.test.ts | 14 +- 7 files changed, 311 insertions(+), 16 deletions(-) create mode 100644 hosts/wm6/vs2005/src/wm6_framebuffer.c create mode 100644 hosts/wm6/vs2005/src/wm6_framebuffer.h diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index 6c24279ab..2590f2dde 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -54,11 +54,14 @@ from a Promise job. Success shows `QuickJS 6,10,16,26` under the title versioned C ABI and statically linked libgcc. `build-cards.sh` combines the minimal WM6 HostOps bootstrap with the real `dist/cards-main.js` output. VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, -deploys both files, mounts the -Solid application in QuickJS, and turns its native tree into a compact GDI -draw list. The first graphical milestone paints the Cards header, three module -cards, accent strips, captions, and footer in a centered 480×272 viewport. -Input-driven focus and detail updates are the next milestone. +deploys both files, mounts the Solid application in QuickJS, and turns its +native tree into a compact draw list. The WM6 host rasterizes backgrounds and +rectangles into an application-owned 480×272 RGB565 framebuffer, then presents +it through a locked DirectDraw primary surface. Text is still drawn through +GDI after the surface is unlocked, and the complete GDI renderer remains the +fallback when DirectDraw or the display pixel format is unavailable. +Input-driven focus, font-atlas rasterization, and detail updates are the next +milestones. The compatibility patch: diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index 50392403d..f795def14 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -47,7 +47,7 @@ + + diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 7314d5787..5bb1c0dcb 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -10,13 +10,13 @@ This solution contains three native Smart Device applications for the HP iPAQ WM6, but it is not a QuickJS host and cannot load ordinary PocketJS bundles. - `PocketJS.WM6.QuickJS` builds a VC8 host and deploys the CeGCC-built QuickJS DLL plus the real `apps/cards` bundle. It mounts Solid, derives a draw list - from the HostOps tree, and paints the first Cards screen with GDI. + from the HostOps tree, paints backgrounds and cards into an RGB565 + framebuffer, presents it through DirectDraw, and overlays text with GDI. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a -VC8 Smart Device project, while its actual runtime executable comes from -CeGCC. The probe exercises the OS surface that a future full PocketJS host will -need: +VC8 Smart Device project; only its QuickJS DLL comes from CeGCC. The probe +exercises the OS surface that a future full PocketJS host will need: - ARMV4I code generation for the PXA310 device; - a fullscreen, dynamically sized native window; diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index e4319fd13..10756022e 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -1,6 +1,7 @@ #include #include "wm6_quickjs_abi.h" +#include "wm6_framebuffer.h" static int append_file_name(WCHAR *path, unsigned int capacity, const WCHAR *name) @@ -77,6 +78,7 @@ static void ascii_to_wide(WCHAR *output, unsigned int capacity, } static char *g_draw_list; +static int g_framebuffer_ready; static int wide_length(const WCHAR *text) { @@ -114,7 +116,8 @@ static void paint_cards(HWND window, HDC dc) int offset_y; GetClientRect(window, &client); - FillRect(dc, &client, (HBRUSH)GetStockObject(BLACK_BRUSH)); + if (!g_framebuffer_ready) + FillRect(dc, &client, (HBRUSH)GetStockObject(BLACK_BRUSH)); offset_x = (client.right - 480) / 2; offset_y = (client.bottom - 272) / 2; line = g_draw_list; @@ -129,7 +132,7 @@ static void paint_cards(HWND window, HDC dc) saved = *next; *next = '\0'; cursor = line + 1; - if (line[0] == 'B') { + if (line[0] == 'B' && !g_framebuffer_ready) { r = read_number(&cursor); g = read_number(&cursor); b = read_number(&cursor); @@ -140,7 +143,7 @@ static void paint_cards(HWND window, HDC dc) brush = CreateSolidBrush(RGB(r, g, b)); FillRect(dc, &logical, brush); DeleteObject(brush); - } else if (line[0] == 'R') { + } else if (line[0] == 'R' && !g_framebuffer_ready) { x = read_number(&cursor); y = read_number(&cursor); w = read_number(&cursor); @@ -196,6 +199,8 @@ static LRESULT CALLBACK CardsWindowProc(HWND window, UINT message, { PAINTSTRUCT paint; HDC dc = BeginPaint(window, &paint); + if (g_framebuffer_ready && !wm6_framebuffer_present()) + g_framebuffer_ready = 0; paint_cards(window, dc); EndPaint(window, &paint); } @@ -207,6 +212,7 @@ static LRESULT CALLBACK CardsWindowProc(HWND window, UINT message, } break; case WM_DESTROY: + wm6_framebuffer_close(); PostQuitMessage(0); return 0; } @@ -328,6 +334,9 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s LocalFree(message); return 7; } + g_framebuffer_ready = wm6_framebuffer_open(window); + if (g_framebuffer_ready) + wm6_framebuffer_render(g_draw_list); ShowWindow(window, show); UpdateWindow(window); while (GetMessage(&message_loop, NULL, 0, 0)) { diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c new file mode 100644 index 000000000..0088dd64b --- /dev/null +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -0,0 +1,257 @@ +#define COBJMACROS +#include +#include + +#include "wm6_framebuffer.h" + +static LPDIRECTDRAW g_direct_draw; +static LPDIRECTDRAWSURFACE g_primary; +static unsigned short g_pixels[WM6_FB_WIDTH * WM6_FB_HEIGHT]; + +static int read_number(const char **cursor) +{ + int value; + + if (**cursor == '|') + (*cursor)++; + value = 0; + while (**cursor >= '0' && **cursor <= '9') { + value = value * 10 + (**cursor - '0'); + (*cursor)++; + } + return value; +} + +static unsigned short rgb565(int red, int green, int blue) +{ + return (unsigned short)(((red & 0xf8) << 8) | + ((green & 0xfc) << 3) | + (blue >> 3)); +} + +static void fill_rect(int x, int y, int width, int height, + unsigned short color) +{ + int left; + int top; + int right; + int bottom; + int row; + int column; + + left = x < 0 ? 0 : x; + top = y < 0 ? 0 : y; + right = x + width; + bottom = y + height; + if (right > WM6_FB_WIDTH) + right = WM6_FB_WIDTH; + if (bottom > WM6_FB_HEIGHT) + bottom = WM6_FB_HEIGHT; + if (left >= right || top >= bottom) + return; + for (row = top; row < bottom; row++) { + unsigned short *destination; + + destination = &g_pixels[row * WM6_FB_WIDTH + left]; + for (column = left; column < right; column++) + *destination++ = color; + } +} + +static DWORD pack_component(unsigned int value, DWORD mask) +{ + DWORD shifted; + DWORD maximum; + int shift; + + if (!mask) + return 0; + shift = 0; + shifted = mask; + while ((shifted & 1u) == 0) { + shifted >>= 1; + shift++; + } + maximum = shifted; + return (((DWORD)value * maximum + 127u) / 255u) << shift; +} + +static DWORD convert_pixel(unsigned short source, const DDPIXELFORMAT *format) +{ + unsigned int red; + unsigned int green; + unsigned int blue; + + red = ((source >> 11) & 31u) * 255u / 31u; + green = ((source >> 5) & 63u) * 255u / 63u; + blue = (source & 31u) * 255u / 31u; + return pack_component(red, format->dwRBitMask) | + pack_component(green, format->dwGBitMask) | + pack_component(blue, format->dwBBitMask); +} + +int wm6_framebuffer_open(HWND window) +{ + DDSURFACEDESC description; + HRESULT status; + + wm6_framebuffer_close(); + status = DirectDrawCreate(NULL, &g_direct_draw, NULL); + if (status != DD_OK || !g_direct_draw) + return 0; + status = IDirectDraw_SetCooperativeLevel( + g_direct_draw, window, DDSCL_NORMAL); + if (status != DD_OK) { + wm6_framebuffer_close(); + return 0; + } + memset(&description, 0, sizeof(description)); + description.dwSize = sizeof(description); + description.dwFlags = DDSD_CAPS; + description.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; + status = IDirectDraw_CreateSurface( + g_direct_draw, &description, &g_primary, NULL); + if (status != DD_OK || !g_primary) { + wm6_framebuffer_close(); + return 0; + } + return 1; +} + +void wm6_framebuffer_close(void) +{ + if (g_primary) { + IDirectDrawSurface_Release(g_primary); + g_primary = NULL; + } + if (g_direct_draw) { + IDirectDraw_Release(g_direct_draw); + g_direct_draw = NULL; + } +} + +int wm6_framebuffer_render(const char *draw_list) +{ + const char *line; + + if (!draw_list) + return 0; + fill_rect(0, 0, WM6_FB_WIDTH, WM6_FB_HEIGHT, rgb565(0, 0, 0)); + line = draw_list; + while (*line) { + const char *cursor; + int x; + int y; + int width; + int height; + int red; + int green; + int blue; + + cursor = line + 1; + if (line[0] == 'B') { + red = read_number(&cursor); + green = read_number(&cursor); + blue = read_number(&cursor); + fill_rect(0, 0, WM6_FB_WIDTH, WM6_FB_HEIGHT, + rgb565(red, green, blue)); + } else if (line[0] == 'R') { + x = read_number(&cursor); + y = read_number(&cursor); + width = read_number(&cursor); + height = read_number(&cursor); + red = read_number(&cursor); + green = read_number(&cursor); + blue = read_number(&cursor); + fill_rect(x, y, width, height, rgb565(red, green, blue)); + } + while (*line && *line != '\n') + line++; + if (*line == '\n') + line++; + } + return 1; +} + +int wm6_framebuffer_present(void) +{ + DDSURFACEDESC surface; + HRESULT status; + int offset_x; + int offset_y; + int copy_width; + int copy_height; + int source_x; + int source_y; + int y; + + if (!g_primary) + return 0; + memset(&surface, 0, sizeof(surface)); + surface.dwSize = sizeof(surface); + status = IDirectDrawSurface_Lock( + g_primary, NULL, &surface, DDLOCK_WAIT, NULL); + if (status == DDERR_SURFACELOST) { + IDirectDrawSurface_Restore(g_primary); + status = IDirectDrawSurface_Lock( + g_primary, NULL, &surface, DDLOCK_WAIT, NULL); + } + if (status != DD_OK || !surface.lpSurface) + return 0; + + offset_x = ((int)surface.dwWidth - WM6_FB_WIDTH) / 2; + offset_y = ((int)surface.dwHeight - WM6_FB_HEIGHT) / 2; + source_x = offset_x < 0 ? -offset_x : 0; + source_y = offset_y < 0 ? -offset_y : 0; + copy_width = WM6_FB_WIDTH - source_x; + copy_height = WM6_FB_HEIGHT - source_y; + if (offset_x < 0) + offset_x = 0; + if (offset_y < 0) + offset_y = 0; + if (copy_width > (int)surface.dwWidth - offset_x) + copy_width = (int)surface.dwWidth - offset_x; + if (copy_height > (int)surface.dwHeight - offset_y) + copy_height = (int)surface.dwHeight - offset_y; + + for (y = 0; y < copy_height; y++) { + unsigned char *destination; + const unsigned short *source; + int x; + + destination = (unsigned char *)surface.lpSurface + + (offset_y + y) * surface.lPitch; + source = &g_pixels[(source_y + y) * WM6_FB_WIDTH + source_x]; + if (surface.ddpfPixelFormat.dwRGBBitCount == 16) { + unsigned short *pixels; + + pixels = (unsigned short *)destination + offset_x; + for (x = 0; x < copy_width; x++) + pixels[x] = (unsigned short)convert_pixel( + source[x], &surface.ddpfPixelFormat); + } else if (surface.ddpfPixelFormat.dwRGBBitCount == 32) { + DWORD *pixels; + + pixels = (DWORD *)destination + offset_x; + for (x = 0; x < copy_width; x++) + pixels[x] = convert_pixel(source[x], &surface.ddpfPixelFormat); + } else if (surface.ddpfPixelFormat.dwRGBBitCount == 24) { + unsigned char *pixels; + + pixels = destination + offset_x * 3; + for (x = 0; x < copy_width; x++) { + DWORD color; + + color = convert_pixel(source[x], &surface.ddpfPixelFormat); + pixels[x * 3] = (unsigned char)color; + pixels[x * 3 + 1] = (unsigned char)(color >> 8); + pixels[x * 3 + 2] = (unsigned char)(color >> 16); + } + } else { + IDirectDrawSurface_Unlock(g_primary, surface.lpSurface); + return 0; + } + } + IDirectDrawSurface_Unlock(g_primary, surface.lpSurface); + return 1; +} diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.h b/hosts/wm6/vs2005/src/wm6_framebuffer.h new file mode 100644 index 000000000..9b8522268 --- /dev/null +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.h @@ -0,0 +1,14 @@ +#ifndef POCKETJS_WM6_FRAMEBUFFER_H +#define POCKETJS_WM6_FRAMEBUFFER_H + +#include + +#define WM6_FB_WIDTH 480 +#define WM6_FB_HEIGHT 272 + +int wm6_framebuffer_open(HWND window); +void wm6_framebuffer_close(void); +int wm6_framebuffer_render(const char *draw_list); +int wm6_framebuffer_present(void); + +#endif diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 0eeceed84..86b9bb5df 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -94,12 +94,13 @@ describe("Windows Mobile 6 VS2005 projects", () => { test("includes a pinned CeGCC QuickJS ARM/WinCE probe", async () => { const quickjsRoot = new URL("../hosts/wm6/quickjs/", import.meta.url); - const [solution, project, host, build, runtimeBuild, cardsBuild, patch, probe, - runtime, abi, cards, math, executable, dll] = + const [solution, project, host, framebuffer, build, runtimeBuild, cardsBuild, + patch, probe, runtime, abi, cards, math, executable, dll] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), readFile(new URL("PocketJS.WM6.QuickJS.vcproj", root), "utf8"), readFile(new URL("src/quickjs_deploy.c", root), "utf8"), + readFile(new URL("src/wm6_framebuffer.c", root), "utf8"), readFile(new URL("build-probe.sh", quickjsRoot), "utf8"), readFile(new URL("build-runtime.sh", quickjsRoot), "utf8"), readFile(new URL("build-cards.sh", quickjsRoot), "utf8"), @@ -122,6 +123,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { 'PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\\PocketJS.WM6.QuickJS|0', ); expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); + expect(project.match(/AdditionalDependencies="ddraw\.lib coredll\.lib"/g)) + .toHaveLength(2); + expect(project).toContain('RelativePath=".\\src\\wm6_framebuffer.c"'); expect( project.match(/OutputFile="\$\(OutDir\)\\PocketJS\.WM6\.QuickJS\.Probe\.exe"/g), ).toHaveLength(2); @@ -138,6 +142,12 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).toContain("paint_cards(window, dc)"); expect(host).toContain("ExtTextOut(dc"); expect(host).not.toContain("\n TextOut(dc"); + expect(host).toContain("wm6_framebuffer_open(window)"); + expect(host).toContain("wm6_framebuffer_present()"); + expect(framebuffer).toContain("#include "); + expect(framebuffer).toContain("static unsigned short g_pixels["); + expect(framebuffer).toContain("IDirectDrawSurface_Lock("); + expect(framebuffer).toContain("IDirectDrawSurface_Unlock("); expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', From 75d6359f11df9ab0fbbf3e24c17431f8d1bc4217 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 11:39:49 +0900 Subject: [PATCH 19/53] chore(wm6): report the active display backend --- hosts/wm6/vs2005/src/quickjs_deploy.c | 6 +++++- tests/wm6-project.test.ts | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 10756022e..8600d9153 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -335,8 +335,12 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s return 7; } g_framebuffer_ready = wm6_framebuffer_open(window); - if (g_framebuffer_ready) + if (g_framebuffer_ready) { wm6_framebuffer_render(g_draw_list); + OutputDebugString(L"PocketJS WM6: DirectDraw RGB565 active\r\n"); + } else { + OutputDebugString(L"PocketJS WM6: DirectDraw unavailable; using GDI\r\n"); + } ShowWindow(window, show); UpdateWindow(window); while (GetMessage(&message_loop, NULL, 0, 0)) { diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 86b9bb5df..774b7b5e1 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -144,6 +144,8 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).not.toContain("\n TextOut(dc"); expect(host).toContain("wm6_framebuffer_open(window)"); expect(host).toContain("wm6_framebuffer_present()"); + expect(host).toContain("DirectDraw RGB565 active"); + expect(host).toContain("DirectDraw unavailable; using GDI"); expect(framebuffer).toContain("#include "); expect(framebuffer).toContain("static unsigned short g_pixels["); expect(framebuffer).toContain("IDirectDrawSurface_Lock("); From 12bfb499c4fc7bad2279ae19e4d7c1d6046ef147 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 11:45:39 +0900 Subject: [PATCH 20/53] fix(wm6): call the Windows CE DirectDraw vtable --- hosts/wm6/vs2005/src/wm6_framebuffer.c | 23 +++++++++++------------ tests/wm6-project.test.ts | 6 ++++-- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index 0088dd64b..9950583a8 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -1,4 +1,3 @@ -#define COBJMACROS #include #include @@ -99,7 +98,7 @@ int wm6_framebuffer_open(HWND window) status = DirectDrawCreate(NULL, &g_direct_draw, NULL); if (status != DD_OK || !g_direct_draw) return 0; - status = IDirectDraw_SetCooperativeLevel( + status = g_direct_draw->lpVtbl->SetCooperativeLevel( g_direct_draw, window, DDSCL_NORMAL); if (status != DD_OK) { wm6_framebuffer_close(); @@ -109,7 +108,7 @@ int wm6_framebuffer_open(HWND window) description.dwSize = sizeof(description); description.dwFlags = DDSD_CAPS; description.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; - status = IDirectDraw_CreateSurface( + status = g_direct_draw->lpVtbl->CreateSurface( g_direct_draw, &description, &g_primary, NULL); if (status != DD_OK || !g_primary) { wm6_framebuffer_close(); @@ -121,11 +120,11 @@ int wm6_framebuffer_open(HWND window) void wm6_framebuffer_close(void) { if (g_primary) { - IDirectDrawSurface_Release(g_primary); + g_primary->lpVtbl->Release(g_primary); g_primary = NULL; } if (g_direct_draw) { - IDirectDraw_Release(g_direct_draw); + g_direct_draw->lpVtbl->Release(g_direct_draw); g_direct_draw = NULL; } } @@ -189,12 +188,12 @@ int wm6_framebuffer_present(void) return 0; memset(&surface, 0, sizeof(surface)); surface.dwSize = sizeof(surface); - status = IDirectDrawSurface_Lock( - g_primary, NULL, &surface, DDLOCK_WAIT, NULL); + status = g_primary->lpVtbl->Lock( + g_primary, NULL, &surface, 0, NULL); if (status == DDERR_SURFACELOST) { - IDirectDrawSurface_Restore(g_primary); - status = IDirectDrawSurface_Lock( - g_primary, NULL, &surface, DDLOCK_WAIT, NULL); + g_primary->lpVtbl->Restore(g_primary); + status = g_primary->lpVtbl->Lock( + g_primary, NULL, &surface, 0, NULL); } if (status != DD_OK || !surface.lpSurface) return 0; @@ -248,10 +247,10 @@ int wm6_framebuffer_present(void) pixels[x * 3 + 2] = (unsigned char)(color >> 16); } } else { - IDirectDrawSurface_Unlock(g_primary, surface.lpSurface); + g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); return 0; } } - IDirectDrawSurface_Unlock(g_primary, surface.lpSurface); + g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); return 1; } diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 774b7b5e1..6f03b82e3 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -148,8 +148,10 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).toContain("DirectDraw unavailable; using GDI"); expect(framebuffer).toContain("#include "); expect(framebuffer).toContain("static unsigned short g_pixels["); - expect(framebuffer).toContain("IDirectDrawSurface_Lock("); - expect(framebuffer).toContain("IDirectDrawSurface_Unlock("); + expect(framebuffer).toContain("g_primary->lpVtbl->Lock("); + expect(framebuffer).toContain("g_primary->lpVtbl->Unlock("); + expect(framebuffer).not.toContain("DDLOCK_WAIT"); + expect(framebuffer).not.toContain("IDirectDrawSurface_"); expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', From 2fd0ebd05e305b46c8859b5a3b1057717d104264 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 12:29:01 +0900 Subject: [PATCH 21/53] feat(wm6): rasterize PocketJS font atlases --- hosts/wm6/quickjs/README.md | 11 +- hosts/wm6/quickjs/build-cards.sh | 9 +- hosts/wm6/quickjs/cards-host.js | 20 +- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 4 +- hosts/wm6/vs2005/README.md | 4 +- .../wm6/vs2005/prebuilt/PocketJS.WM6.Cards.js | 20 +- .../vs2005/prebuilt/PocketJS.WM6.Cards.pak | Bin 0 -> 152784 bytes hosts/wm6/vs2005/src/quickjs_deploy.c | 36 +- hosts/wm6/vs2005/src/wm6_framebuffer.c | 336 +++++++++++++++++- hosts/wm6/vs2005/src/wm6_framebuffer.h | 1 + tests/wm6-project.test.ts | 19 +- 11 files changed, 417 insertions(+), 43 deletions(-) create mode 100644 hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.pak diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index 2590f2dde..a5444edfa 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -56,11 +56,12 @@ minimal WM6 HostOps bootstrap with the real `dist/cards-main.js` output. VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, deploys both files, mounts the Solid application in QuickJS, and turns its native tree into a compact draw list. The WM6 host rasterizes backgrounds and -rectangles into an application-owned 480×272 RGB565 framebuffer, then presents -it through a locked DirectDraw primary surface. Text is still drawn through -GDI after the surface is unlocked, and the complete GDI renderer remains the -fallback when DirectDraw or the display pixel format is unavailable. -Input-driven focus, font-atlas rasterization, and detail updates are the next +rectangles into an application-owned 480×272 RGB565 framebuffer. It reads the +same Inter font-atlas entries that other PocketJS hosts consume from the Cards +PAK and alpha-blends glyph coverage directly into RGB565. The finished buffer +is presented through a locked DirectDraw primary surface. The complete GDI +renderer remains the fallback when DirectDraw, the PAK, or the display pixel +format is unavailable. Input-driven focus and detail updates are the next milestones. The compatibility patch: diff --git a/hosts/wm6/quickjs/build-cards.sh b/hosts/wm6/quickjs/build-cards.sh index 13f9d7335..e8f12d82a 100644 --- a/hosts/wm6/quickjs/build-cards.sh +++ b/hosts/wm6/quickjs/build-cards.sh @@ -4,10 +4,12 @@ set -euo pipefail script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" repo_root="$(cd "${script_dir}/../../.." && pwd)" bundle="${repo_root}/dist/cards-main.js" +pak="${repo_root}/dist/cards-main.pak" output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Cards.js}" +pak_output="${output%.*}.pak" -if [[ ! -f "$bundle" ]]; then - echo "Missing dist/cards-main.js; run: bun tools/build.ts cards-main" >&2 +if [[ ! -f "$bundle" || ! -f "$pak" ]]; then + echo "Missing Cards bundle or pak; run: bun tools/build.ts cards-main" >&2 exit 2 fi mkdir -p "$(dirname "$output")" @@ -16,4 +18,5 @@ mkdir -p "$(dirname "$output")" sed -n 'p' "${script_dir}/cards-host.js" sed -n 'p' "$bundle" } > "$output" -echo "Built ${output}" +cp "$pak" "$pak_output" +echo "Built ${output} and ${pak_output}" diff --git a/hosts/wm6/quickjs/cards-host.js b/hosts/wm6/quickjs/cards-host.js index 783ad7822..441b1f0c0 100644 --- a/hosts/wm6/quickjs/cards-host.js +++ b/hosts/wm6/quickjs/cards-host.js @@ -72,8 +72,8 @@ globalThis.__wm6DrawList = () => { const out = ["B|248|250|252"]; const safe = (text) => String(text).replace(/[|\r\n]/g, " "); - const text = (x, y, size, r, g, b, value) => - out.push(`T|${x}|${y}|${size}|${r}|${g}|${b}|${safe(value)}`); + const text = (x, y, slot, r, g, b, value) => + out.push(`T|${x}|${y}|${slot}|${r}|${g}|${b}|${safe(value)}`); const rect = (x, y, w, h, r, g, b) => out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); let cardIndex = 0; @@ -89,12 +89,12 @@ for (const n of nodes.values()) { if (!n.text) continue; const style = effectiveStyle(n); - if (style === 18) text(16, 18, 12, 37, 99, 235, n.text); - else if (style === 19) text(16, 35, 24, 15, 23, 42, n.text); + if (style === 18) text(16, 18, 0, 37, 99, 235, n.text); + else if (style === 19) text(16, 35, 12, 15, 23, 42, n.text); else if (style === 20 && n.text === "3 MODULES") - text(398, 43, 12, 100, 116, 139, n.text); + text(398, 43, 0, 100, 116, 139, n.text); else if (style === 20) - text(16, 250, 12, 100, 116, 139, n.text); + text(16, 250, 0, 100, 116, 139, n.text); } for (const n of nodes.values()) { if (n.style !== 0 && n.style !== 3 && n.style !== 6) continue; @@ -113,8 +113,8 @@ for (const nested of child.children) collect(nested); }; collect(n.id); - if (labels[0]) text(x + 12, 91, 14, 15, 23, 42, labels[0]); - if (labels[1]) text(x + 12, 115, 12, 71, 85, 105, labels[1]); + if (labels[0]) text(x + 12, 91, 8, 15, 23, 42, labels[0]); + if (labels[1]) text(x + 12, 115, 0, 71, 85, 105, labels[1]); cardIndex++; } for (const n of nodes.values()) { @@ -128,8 +128,8 @@ for (const nested of child.children) collect(nested); }; collect(n.id); - if (labels[0]) text(34, 184, 14, 15, 23, 42, labels[0]); - if (labels[1]) text(34, 204, 12, 71, 85, 105, labels[1]); + if (labels[0]) text(34, 184, 8, 15, 23, 42, labels[0]); + if (labels[1]) text(34, 204, 0, 71, 85, 105, labels[1]); } return out.join("\n"); }; diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index f795def14..2b414e146 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -67,7 +67,7 @@ ForceDirty="-1" RemoteDirectory="%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS" RegisterOutput="0" - AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" + AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.pak|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" /> { const out = ["B|248|250|252"]; const safe = (text) => String(text).replace(/[|\r\n]/g, " "); - const text = (x, y, size, r, g, b, value) => - out.push(`T|${x}|${y}|${size}|${r}|${g}|${b}|${safe(value)}`); + const text = (x, y, slot, r, g, b, value) => + out.push(`T|${x}|${y}|${slot}|${r}|${g}|${b}|${safe(value)}`); const rect = (x, y, w, h, r, g, b) => out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); let cardIndex = 0; @@ -90,12 +90,12 @@ for (const n of nodes.values()) { if (!n.text) continue; const style = effectiveStyle(n); - if (style === 18) text(16, 18, 12, 37, 99, 235, n.text); - else if (style === 19) text(16, 35, 24, 15, 23, 42, n.text); + if (style === 18) text(16, 18, 0, 37, 99, 235, n.text); + else if (style === 19) text(16, 35, 12, 15, 23, 42, n.text); else if (style === 20 && n.text === "3 MODULES") - text(398, 43, 12, 100, 116, 139, n.text); + text(398, 43, 0, 100, 116, 139, n.text); else if (style === 20) - text(16, 250, 12, 100, 116, 139, n.text); + text(16, 250, 0, 100, 116, 139, n.text); } for (const n of nodes.values()) { if (n.style !== 0 && n.style !== 3 && n.style !== 6) continue; @@ -114,8 +114,8 @@ for (const nested of child.children) collect(nested); }; collect(n.id); - if (labels[0]) text(x + 12, 91, 14, 15, 23, 42, labels[0]); - if (labels[1]) text(x + 12, 115, 12, 71, 85, 105, labels[1]); + if (labels[0]) text(x + 12, 91, 8, 15, 23, 42, labels[0]); + if (labels[1]) text(x + 12, 115, 0, 71, 85, 105, labels[1]); cardIndex++; } for (const n of nodes.values()) { @@ -129,8 +129,8 @@ for (const nested of child.children) collect(nested); }; collect(n.id); - if (labels[0]) text(34, 184, 14, 15, 23, 42, labels[0]); - if (labels[1]) text(34, 204, 12, 71, 85, 105, labels[1]); + if (labels[0]) text(34, 184, 8, 15, 23, 42, labels[0]); + if (labels[1]) text(34, 204, 0, 71, 85, 105, labels[1]); } return out.join("\n"); }; diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.pak b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Cards.pak new file mode 100644 index 0000000000000000000000000000000000000000..e18e2a472b871b43a982fbf23bc20bb6ecf7c5e0 GIT binary patch literal 152784 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 MFmdOO!6H8V|2JQzWB>pF literal 0 HcmV?d00001 diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 8600d9153..63dbbd5e2 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -90,6 +90,17 @@ static int wide_length(const WCHAR *text) return length; } +static int font_pixels_for_slot(int slot) +{ + static const int pixels[] = { 12, 14, 16, 18, 20, 24, 36 }; + int index; + + index = slot >= 7 ? slot - 7 : slot; + if (index < 0 || index >= 7) + return 16; + return pixels[index]; +} + static int read_number(char **cursor) { int value; @@ -122,7 +133,7 @@ static void paint_cards(HWND window, HDC dc) offset_y = (client.bottom - 272) / 2; line = g_draw_list; while (line && *line) { - int x, y, w, h, size, r, g, b; + int x, y, w, h, slot, r, g, b; HBRUSH brush; COLORREF color; @@ -158,7 +169,7 @@ static void paint_cards(HWND window, HDC dc) brush = CreateSolidBrush(RGB(r, g, b)); FillRect(dc, &logical, brush); DeleteObject(brush); - } else if (line[0] == 'T') { + } else if (line[0] == 'T' && !g_framebuffer_ready) { LOGFONT font_spec; HFONT font; HFONT previous_font; @@ -166,7 +177,7 @@ static void paint_cards(HWND window, HDC dc) x = read_number(&cursor); y = read_number(&cursor); - size = read_number(&cursor); + slot = read_number(&cursor); r = read_number(&cursor); g = read_number(&cursor); b = read_number(&cursor); @@ -174,8 +185,8 @@ static void paint_cards(HWND window, HDC dc) cursor++; ascii_to_wide(text, 256, cursor); memset(&font_spec, 0, sizeof(font_spec)); - font_spec.lfHeight = -size; - font_spec.lfWeight = size >= 14 ? FW_BOLD : FW_NORMAL; + font_spec.lfHeight = -font_pixels_for_slot(slot); + font_spec.lfWeight = slot >= 7 ? FW_BOLD : FW_NORMAL; font = CreateFontIndirect(&font_spec); previous_font = (HFONT)SelectObject(dc, font); color = RGB(r, g, b); @@ -235,6 +246,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s char *snapshot_text; unsigned int bundle_length; WCHAR create_error[256]; + WCHAR pak_path[MAX_PATH]; WCHAR *message; WNDCLASS window_class; HWND window; @@ -334,11 +346,17 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s LocalFree(message); return 7; } - g_framebuffer_ready = wm6_framebuffer_open(window); - if (g_framebuffer_ready) { - wm6_framebuffer_render(g_draw_list); - OutputDebugString(L"PocketJS WM6: DirectDraw RGB565 active\r\n"); + g_framebuffer_ready = 0; + if (GetModuleFileName(NULL, pak_path, MAX_PATH) && + append_file_name(pak_path, MAX_PATH, L"PocketJS.WM6.Cards.pak") && + wm6_framebuffer_open(window) && + wm6_framebuffer_load_pak(pak_path) && + wm6_framebuffer_render(g_draw_list)) { + g_framebuffer_ready = 1; + OutputDebugString( + L"PocketJS WM6: DirectDraw RGB565 + font atlas active\r\n"); } else { + wm6_framebuffer_close(); OutputDebugString(L"PocketJS WM6: DirectDraw unavailable; using GDI\r\n"); } ShowWindow(window, show); diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index 9950583a8..35f07856a 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -6,6 +6,45 @@ static LPDIRECTDRAW g_direct_draw; static LPDIRECTDRAWSURFACE g_primary; static unsigned short g_pixels[WM6_FB_WIDTH * WM6_FB_HEIGHT]; +static unsigned char *g_pak; +static unsigned int g_pak_size; + +#define WM6_MAX_FONT_SLOTS 16 +#define WM6_PAK_MAGIC 0x4b504344u +#define WM6_PAK_ENTRY_SIZE 24u +#define WM6_FONT_MAGIC 0x41464344u +#define WM6_FONT_HEADER_SIZE 16u +#define WM6_FONT_CMAP_SIZE 8u + +typedef struct Wm6FontAtlas { + const unsigned char *cmap; + const unsigned char *bitmap; + unsigned short glyph_count; + unsigned char cell_width; + unsigned char cell_height; + unsigned char density; +} Wm6FontAtlas; + +static Wm6FontAtlas g_fonts[WM6_MAX_FONT_SLOTS]; + +static unsigned short read_u16(const unsigned char *bytes) +{ + return (unsigned short)(bytes[0] | ((unsigned short)bytes[1] << 8)); +} + +static unsigned int read_u32(const unsigned char *bytes) +{ + return (unsigned int)bytes[0] | + ((unsigned int)bytes[1] << 8) | + ((unsigned int)bytes[2] << 16) | + ((unsigned int)bytes[3] << 24); +} + +static int range_valid(unsigned int offset, unsigned int length, + unsigned int total) +{ + return offset <= total && length <= total - offset; +} static int read_number(const char **cursor) { @@ -28,6 +67,32 @@ static unsigned short rgb565(int red, int green, int blue) (blue >> 3)); } +static void blend_pixel(int x, int y, int red, int green, int blue, + unsigned int alpha) +{ + unsigned short destination; + unsigned int inverse; + int destination_red; + int destination_green; + int destination_blue; + + if (x < 0 || x >= WM6_FB_WIDTH || y < 0 || y >= WM6_FB_HEIGHT || + alpha == 0) + return; + destination = g_pixels[y * WM6_FB_WIDTH + x]; + destination_red = (int)(((destination >> 11) & 31u) * 255u / 31u); + destination_green = (int)(((destination >> 5) & 63u) * 255u / 63u); + destination_blue = (int)((destination & 31u) * 255u / 31u); + inverse = 255u - alpha; + red = (int)(((unsigned int)red * alpha + + (unsigned int)destination_red * inverse + 127u) / 255u); + green = (int)(((unsigned int)green * alpha + + (unsigned int)destination_green * inverse + 127u) / 255u); + blue = (int)(((unsigned int)blue * alpha + + (unsigned int)destination_blue * inverse + 127u) / 255u); + g_pixels[y * WM6_FB_WIDTH + x] = rgb565(red, green, blue); +} + static void fill_rect(int x, int y, int width, int height, unsigned short color) { @@ -89,6 +154,255 @@ static DWORD convert_pixel(unsigned short source, const DDPIXELFORMAT *format) pack_component(blue, format->dwBBitMask); } +static int parse_font_atlas(const unsigned char *blob, unsigned int length) +{ + Wm6FontAtlas *atlas; + unsigned int glyph_count; + unsigned int coverage_width; + unsigned int coverage_height; + unsigned int bitmap_offset; + unsigned int bitmap_length; + unsigned int slot; + unsigned int density; + + if (length < WM6_FONT_HEADER_SIZE || read_u32(blob) != WM6_FONT_MAGIC) + return 0; + glyph_count = read_u16(blob + 6); + slot = blob[12]; + density = blob[14]; + if (read_u16(blob + 4) != 3 || glyph_count == 0 || + slot >= WM6_MAX_FONT_SLOTS || blob[8] == 0 || blob[9] == 0 || + density == 0) + return 0; + if (glyph_count > (length - WM6_FONT_HEADER_SIZE) / WM6_FONT_CMAP_SIZE) + return 0; + bitmap_offset = WM6_FONT_HEADER_SIZE + + glyph_count * WM6_FONT_CMAP_SIZE; + coverage_width = (unsigned int)blob[8] * density; + coverage_height = (unsigned int)blob[9] * density; + if (coverage_width == 0 || coverage_height == 0 || + glyph_count > (length - bitmap_offset) / + coverage_width / coverage_height) + return 0; + bitmap_length = glyph_count * coverage_width * coverage_height; + if (!range_valid(bitmap_offset, bitmap_length, length)) + return 0; + atlas = &g_fonts[slot]; + atlas->cmap = blob + WM6_FONT_HEADER_SIZE; + atlas->bitmap = blob + bitmap_offset; + atlas->glyph_count = (unsigned short)glyph_count; + atlas->cell_width = blob[8]; + atlas->cell_height = blob[9]; + atlas->density = (unsigned char)density; + return 1; +} + +int wm6_framebuffer_load_pak(const WCHAR *path) +{ + HANDLE file; + DWORD size; + DWORD received; + unsigned int entry_count; + unsigned int directory_offset; + unsigned int index; + int font_count; + + if (g_pak) { + LocalFree(g_pak); + g_pak = NULL; + g_pak_size = 0; + } + memset(g_fonts, 0, sizeof(g_fonts)); + file = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + if (file == INVALID_HANDLE_VALUE) + return 0; + size = GetFileSize(file, NULL); + if (size == INVALID_FILE_SIZE || size < 32) { + CloseHandle(file); + return 0; + } + g_pak = (unsigned char *)LocalAlloc(LMEM_FIXED, size); + if (!g_pak) { + CloseHandle(file); + return 0; + } + if (!ReadFile(file, g_pak, size, &received, NULL) || received != size) { + CloseHandle(file); + LocalFree(g_pak); + g_pak = NULL; + return 0; + } + CloseHandle(file); + g_pak_size = (unsigned int)size; + if (read_u32(g_pak) != WM6_PAK_MAGIC) { + wm6_framebuffer_close(); + return 0; + } + entry_count = read_u32(g_pak + 8); + directory_offset = read_u32(g_pak + 12); + if (entry_count > g_pak_size / WM6_PAK_ENTRY_SIZE || + !range_valid(directory_offset, entry_count * WM6_PAK_ENTRY_SIZE, + g_pak_size)) { + wm6_framebuffer_close(); + return 0; + } + font_count = 0; + for (index = 0; index < entry_count; index++) { + const unsigned char *entry; + unsigned int blob_offset; + unsigned int blob_length; + + entry = g_pak + directory_offset + index * WM6_PAK_ENTRY_SIZE; + blob_offset = read_u32(entry + 4); + blob_length = read_u32(entry + 8); + if (!range_valid(blob_offset, blob_length, g_pak_size)) + continue; + if (blob_length >= 4 && + read_u32(g_pak + blob_offset) == WM6_FONT_MAGIC && + parse_font_atlas(g_pak + blob_offset, blob_length)) + font_count++; + } + if (font_count == 0) { + wm6_framebuffer_close(); + return 0; + } + return 1; +} + +static unsigned int next_codepoint(const unsigned char **cursor) +{ + const unsigned char *text; + unsigned int codepoint; + + text = *cursor; + if (text[0] < 0x80) { + *cursor = text + 1; + return text[0]; + } + if ((text[0] & 0xe0) == 0xc0 && + (text[1] & 0xc0) == 0x80) { + codepoint = ((unsigned int)(text[0] & 0x1f) << 6) | + (unsigned int)(text[1] & 0x3f); + *cursor = text + 2; + return codepoint; + } + if ((text[0] & 0xf0) == 0xe0 && + (text[1] & 0xc0) == 0x80 && + (text[2] & 0xc0) == 0x80) { + codepoint = ((unsigned int)(text[0] & 0x0f) << 12) | + ((unsigned int)(text[1] & 0x3f) << 6) | + (unsigned int)(text[2] & 0x3f); + *cursor = text + 3; + return codepoint; + } + *cursor = text + 1; + return (unsigned int)'?'; +} + +static const unsigned char *find_glyph(const Wm6FontAtlas *atlas, + unsigned int codepoint) +{ + unsigned int left; + unsigned int right; + + left = 0; + right = atlas->glyph_count; + while (left < right) { + unsigned int middle; + const unsigned char *entry; + unsigned int candidate; + + middle = left + (right - left) / 2; + entry = atlas->cmap + middle * WM6_FONT_CMAP_SIZE; + candidate = read_u32(entry); + if (candidate < codepoint) + left = middle + 1; + else + right = middle; + } + if (left < atlas->glyph_count) { + const unsigned char *entry; + + entry = atlas->cmap + left * WM6_FONT_CMAP_SIZE; + if (read_u32(entry) == codepoint) + return entry; + } + return atlas->cmap; +} + +static unsigned int logical_coverage(const Wm6FontAtlas *atlas, + unsigned int glyph, int x, int y) +{ + unsigned int density; + unsigned int coverage_width; + unsigned int coverage_height; + unsigned int glyph_size; + unsigned int sample_x; + unsigned int sample_y; + unsigned int sum; + + density = atlas->density; + coverage_width = (unsigned int)atlas->cell_width * density; + coverage_height = (unsigned int)atlas->cell_height * density; + glyph_size = coverage_width * coverage_height; + sum = 0; + for (sample_y = 0; sample_y < density; sample_y++) { + unsigned int row; + + row = glyph * glyph_size + + ((unsigned int)y * density + sample_y) * coverage_width + + (unsigned int)x * density; + for (sample_x = 0; sample_x < density; sample_x++) + sum += atlas->bitmap[row + sample_x]; + } + return (sum + density * density / 2) / (density * density); +} + +static int draw_text(int x, int y, int slot, int red, int green, int blue, + const char *value) +{ + const Wm6FontAtlas *atlas; + const unsigned char *text; + int pen_x; + + if (slot < 0 || slot >= WM6_MAX_FONT_SLOTS) + return 0; + atlas = &g_fonts[slot]; + if (!atlas->bitmap) + return 0; + text = (const unsigned char *)value; + pen_x = x; + while (*text && *text != '\n') { + const unsigned char *glyph_entry; + unsigned int codepoint; + unsigned int glyph; + int glyph_x; + int row; + int column; + + codepoint = next_codepoint(&text); + glyph_entry = find_glyph(atlas, codepoint); + glyph = read_u16(glyph_entry + 4); + if (glyph >= atlas->glyph_count) + glyph = 0; + glyph_x = pen_x - glyph_entry[7]; + for (row = 0; row < atlas->cell_height; row++) { + for (column = 0; column < atlas->cell_width; column++) { + unsigned int coverage; + + coverage = logical_coverage( + atlas, glyph, column, row); + if (coverage) + blend_pixel(glyph_x + column, y + row, + red, green, blue, coverage); + } + } + pen_x += glyph_entry[6]; + } + return 1; +} + int wm6_framebuffer_open(HWND window) { DDSURFACEDESC description; @@ -127,15 +441,23 @@ void wm6_framebuffer_close(void) g_direct_draw->lpVtbl->Release(g_direct_draw); g_direct_draw = NULL; } + if (g_pak) { + LocalFree(g_pak); + g_pak = NULL; + g_pak_size = 0; + } + memset(g_fonts, 0, sizeof(g_fonts)); } int wm6_framebuffer_render(const char *draw_list) { const char *line; + int succeeded; if (!draw_list) return 0; fill_rect(0, 0, WM6_FB_WIDTH, WM6_FB_HEIGHT, rgb565(0, 0, 0)); + succeeded = 1; line = draw_list; while (*line) { const char *cursor; @@ -143,6 +465,7 @@ int wm6_framebuffer_render(const char *draw_list) int y; int width; int height; + int slot; int red; int green; int blue; @@ -163,13 +486,24 @@ int wm6_framebuffer_render(const char *draw_list) green = read_number(&cursor); blue = read_number(&cursor); fill_rect(x, y, width, height, rgb565(red, green, blue)); + } else if (line[0] == 'T') { + x = read_number(&cursor); + y = read_number(&cursor); + slot = read_number(&cursor); + red = read_number(&cursor); + green = read_number(&cursor); + blue = read_number(&cursor); + if (*cursor == '|') + cursor++; + if (!draw_text(x, y, slot, red, green, blue, cursor)) + succeeded = 0; } while (*line && *line != '\n') line++; if (*line == '\n') line++; } - return 1; + return succeeded; } int wm6_framebuffer_present(void) diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.h b/hosts/wm6/vs2005/src/wm6_framebuffer.h index 9b8522268..9aa5655cd 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.h +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.h @@ -7,6 +7,7 @@ #define WM6_FB_HEIGHT 272 int wm6_framebuffer_open(HWND window); +int wm6_framebuffer_load_pak(const WCHAR *path); void wm6_framebuffer_close(void); int wm6_framebuffer_render(const char *draw_list); int wm6_framebuffer_present(void); diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 6f03b82e3..31a05b0a5 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -95,7 +95,7 @@ describe("Windows Mobile 6 VS2005 projects", () => { test("includes a pinned CeGCC QuickJS ARM/WinCE probe", async () => { const quickjsRoot = new URL("../hosts/wm6/quickjs/", import.meta.url); const [solution, project, host, framebuffer, build, runtimeBuild, cardsBuild, - patch, probe, runtime, abi, cards, math, executable, dll] = + patch, probe, runtime, abi, cards, cardsPak, math, executable, dll] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), readFile(new URL("PocketJS.WM6.QuickJS.vcproj", root), "utf8"), @@ -109,6 +109,7 @@ describe("Windows Mobile 6 VS2005 projects", () => { readFile(new URL("src/runtime_dll.c", quickjsRoot), "utf8"), readFile(new URL("runtime/wm6_quickjs_abi.h", root), "utf8"), readFile(new URL("prebuilt/PocketJS.WM6.Cards.js", root), "utf8"), + readFile(new URL("prebuilt/PocketJS.WM6.Cards.pak", root)), readFile(new URL("src/wm6_math.c", quickjsRoot), "utf8"), readFile( new URL("prebuilt/PocketJS.WM6.QuickJS.Probe.exe", root), @@ -122,6 +123,11 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(project).toContain( 'PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\\PocketJS.WM6.QuickJS|0', ); + expect( + project.match( + /PocketJS\.WM6\.Cards\.pak\|\$\(SolutionDir\)prebuilt\|%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\|0/g, + ), + ).toHaveLength(2); expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); expect(project.match(/AdditionalDependencies="ddraw\.lib coredll\.lib"/g)) .toHaveLength(2); @@ -144,7 +150,7 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).not.toContain("\n TextOut(dc"); expect(host).toContain("wm6_framebuffer_open(window)"); expect(host).toContain("wm6_framebuffer_present()"); - expect(host).toContain("DirectDraw RGB565 active"); + expect(host).toContain("DirectDraw RGB565 + font atlas active"); expect(host).toContain("DirectDraw unavailable; using GDI"); expect(framebuffer).toContain("#include "); expect(framebuffer).toContain("static unsigned short g_pixels["); @@ -152,6 +158,10 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(framebuffer).toContain("g_primary->lpVtbl->Unlock("); expect(framebuffer).not.toContain("DDLOCK_WAIT"); expect(framebuffer).not.toContain("IDirectDrawSurface_"); + expect(framebuffer).toContain("wm6_framebuffer_load_pak"); + expect(framebuffer).toContain("parse_font_atlas"); + expect(framebuffer).toContain("logical_coverage"); + expect(framebuffer).toContain("draw_text("); expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', @@ -163,6 +173,7 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(runtimeBuild).toContain("-shared"); expect(runtimeBuild).toContain("-static-libgcc"); expect(cardsBuild).toContain("dist/cards-main.js"); + expect(cardsBuild).toContain("dist/cards-main.pak"); expect(patch).toContain("#undef CONFIG_ATOMICS"); expect(patch).toContain("#elif defined(_WIN32_WCE)"); expect(probe).toContain("JS_SetMemoryLimit(runtime, 8u * 1024u * 1024u)"); @@ -182,6 +193,10 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(cards).toContain("Feature Cards"); expect(cards).toContain("Flexbox via Taffy"); expect(cards).toContain("globalThis.__wm6DrawList"); + expect(cards).toContain("text(16, 35, 12, 15, 23, 42"); + expect(cardsPak.subarray(0, 4).toString()).toBe("DCPK"); + expect(cardsPak.includes(Buffer.from("ui:font.0"))).toBeTrue(); + expect(cardsPak.includes(Buffer.from("ui:font.12"))).toBeTrue(); expect(executable.subarray(0, 2).toString("ascii")).toBe("MZ"); const peOffset = executable.readUInt32LE(0x3c); From 910c20aafc0e2532ddb004c68955bb1dfd2b784e Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 13:52:36 +0900 Subject: [PATCH 22/53] feat(wm6): switch to the Cursor demo --- hosts/wm6/quickjs/README.md | 13 +- hosts/wm6/quickjs/build-demo.sh | 22 + hosts/wm6/quickjs/demo-host.js | 116 + hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 4 +- hosts/wm6/vs2005/README.md | 8 +- .../wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js | 3589 +++++++++++++++++ .../wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak | Bin 0 -> 51312 bytes hosts/wm6/vs2005/src/quickjs_deploy.c | 24 +- tests/wm6-project.test.ts | 36 +- 9 files changed, 3771 insertions(+), 41 deletions(-) create mode 100644 hosts/wm6/quickjs/build-demo.sh create mode 100644 hosts/wm6/quickjs/demo-host.js create mode 100644 hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js create mode 100644 hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index a5444edfa..b1dfb4290 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -48,21 +48,22 @@ QuickJS runtime and 256 KiB stack. Each cycle calls a native `print` function from a Promise job. Success shows `QuickJS 6,10,16,26` under the title `QuickJS: 100 cycles passed` in a native WM6 message box. -## Cards bundle host +## Cursor demo host `build-runtime.sh` builds `PocketJS.WM6.QuickJS.dll` with a five-function, -versioned C ABI and statically linked libgcc. `build-cards.sh` combines the -minimal WM6 HostOps bootstrap with the real `dist/cards-main.js` output. +versioned C ABI and statically linked libgcc. `build-demo.sh` combines the +minimal WM6 HostOps bootstrap with the real `dist/cursor-main.js` output. VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, deploys both files, mounts the Solid application in QuickJS, and turns its native tree into a compact draw list. The WM6 host rasterizes backgrounds and rectangles into an application-owned 480×272 RGB565 framebuffer. It reads the -same Inter font-atlas entries that other PocketJS hosts consume from the Cards +same Inter font-atlas entries that other PocketJS hosts consume from the demo PAK and alpha-blends glyph coverage directly into RGB565. The finished buffer is presented through a locked DirectDraw primary surface. The complete GDI renderer remains the fallback when DirectDraw, the PAK, or the display pixel -format is unavailable. Input-driven focus and detail updates are the next -milestones. +format is unavailable. The three-button Cursor screen is intentionally the +smallest existing interactive PocketJS/Solid demo; input-driven focus and +status updates are the next milestones. The compatibility patch: diff --git a/hosts/wm6/quickjs/build-demo.sh b/hosts/wm6/quickjs/build-demo.sh new file mode 100644 index 000000000..d79ee4011 --- /dev/null +++ b/hosts/wm6/quickjs/build-demo.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -euo pipefail + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +repo_root="$(cd "${script_dir}/../../.." && pwd)" +bundle="${repo_root}/dist/cursor-main.js" +pak="${repo_root}/dist/cursor-main.pak" +output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Demo.js}" +pak_output="${output%.*}.pak" + +if [[ ! -f "$bundle" || ! -f "$pak" ]]; then + echo "Missing Cursor bundle or pak; run: bun tools/build.ts cursor-main" >&2 + exit 2 +fi +mkdir -p "$(dirname "$output")" +{ + printf '%s\n' '/* PocketJS WM6 bootstrap + real apps/cursor bundle. */' + sed -n 'p' "${script_dir}/demo-host.js" + sed -n 'p' "$bundle" +} > "$output" +cp "$pak" "$pak_output" +echo "Built ${output} and ${pak_output}" diff --git a/hosts/wm6/quickjs/demo-host.js b/hosts/wm6/quickjs/demo-host.js new file mode 100644 index 000000000..e1b9ff309 --- /dev/null +++ b/hosts/wm6/quickjs/demo-host.js @@ -0,0 +1,116 @@ +(() => { + let nextNode = 2; + let nextAnim = 1; + let focused = 0; + const nodes = new Map(); + nodes.set(1, { id: 1, type: 0, style: -1, text: "", parent: 0, children: [] }); + + const node = (id) => nodes.get(id); + const detach = (id) => { + for (const parent of nodes.values()) { + const at = parent.children.indexOf(id); + if (at >= 0) parent.children.splice(at, 1); + } + const child = node(id); + if (child) child.parent = 0; + }; + + globalThis.ui = { + __host: "wm6", + __hostAbi: 1, + __textures: {}, + __viewport: { w: 480, h: 272 }, + createNode(type) { + const id = nextNode++; + nodes.set(id, { id, type, style: -1, text: "", parent: 0, children: [] }); + return id; + }, + destroyNode(id) { + detach(id); + nodes.delete(id); + }, + insertBefore(parentId, childId, anchor) { + const parent = node(parentId); + if (!parent) return; + detach(childId); + const at = anchor ? parent.children.indexOf(anchor) : -1; + if (at >= 0) parent.children.splice(at, 0, childId); + else parent.children.push(childId); + const child = node(childId); + if (child) child.parent = parentId; + }, + removeChild(_parent, child) { detach(child); }, + setStyle(id, style) { const n = node(id); if (n) n.style = style; }, + setProp() {}, + setText(id, text) { const n = node(id); if (n) n.text = String(text); }, + replaceText(id, text) { this.setText(id, text); }, + uploadTexture() { return -1; }, + freeTexture() {}, + setImage() {}, + setSprite() {}, + animate() { return nextAnim++; }, + cancelAnim() {}, + setFocus(id) { focused = id; }, + setActive() {}, + measureText(text, fontSlot) { + const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; + return String(text).length * width; + } + }; + + globalThis.__wm6Snapshot = () => { + const lines = ["PocketJS Cursor (real bundle)", "viewport 480x272", ""]; + const visit = (id, depth) => { + const current = node(id); + if (!current) return; + if (current.text) lines.push(" ".repeat(depth) + current.text); + for (const child of current.children) visit(child, depth + 1); + }; + visit(1, 0); + return lines.join("\n"); + }; + + globalThis.__wm6DrawList = () => { + const out = ["B|0|128|128"]; + const safe = (value) => String(value).replace(/[|\r\n]/g, " "); + const rect = (x, y, w, h, r, g, b) => + out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); + const text = (x, y, value) => + out.push(`T|${x}|${y}|0|0|0|0|${safe(value)}`); + const bevel = (x, y, w, h, pressed) => { + rect(x, y, w, h, pressed ? 210 : 192, pressed ? 206 : 192, + pressed ? 198 : 192); + rect(x, y, w, 2, pressed ? 0 : 255, pressed ? 0 : 255, + pressed ? 0 : 255); + rect(x, y, 2, h, pressed ? 0 : 255, pressed ? 0 : 255, + pressed ? 0 : 255); + rect(x, y + h - 2, w, 2, pressed ? 255 : 0, pressed ? 255 : 0, + pressed ? 255 : 0); + rect(x + w - 2, y, 2, h, pressed ? 255 : 0, pressed ? 255 : 0, + pressed ? 255 : 0); + }; + const labels = ["REPLAY TAPE", "OPEN MEMORY STICK", "LAUNCH SHELL"]; + + labels.forEach((label, index) => { + let owner = 0; + for (const current of nodes.values()) { + if (current.text === label) { + owner = current.parent; + break; + } + } + const y = 78 + index * 32; + bevel(120, y, 240, 24, owner === focused); + text(240 - Math.floor(label.length * 7 / 2), y + 5, label); + }); + + let status = "hover a row, press CIRCLE"; + for (const current of nodes.values()) { + if (current.text && labels.indexOf(current.text) < 0) + status = current.text; + } + bevel(120, 184, 240, 18, false); + text(128, 187, status); + return out.join("\n"); + }; +})(); diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index 2b414e146..527b9ced5 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -67,7 +67,7 @@ ForceDirty="-1" RemoteDirectory="%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS" RegisterOutput="0" - AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Cards.pak|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" + AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.pak|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" /> { + let nextNode = 2; + let nextAnim = 1; + let focused = 0; + const nodes = new Map(); + nodes.set(1, { id: 1, type: 0, style: -1, text: "", parent: 0, children: [] }); + + const node = (id) => nodes.get(id); + const detach = (id) => { + for (const parent of nodes.values()) { + const at = parent.children.indexOf(id); + if (at >= 0) parent.children.splice(at, 1); + } + const child = node(id); + if (child) child.parent = 0; + }; + + globalThis.ui = { + __host: "wm6", + __hostAbi: 1, + __textures: {}, + __viewport: { w: 480, h: 272 }, + createNode(type) { + const id = nextNode++; + nodes.set(id, { id, type, style: -1, text: "", parent: 0, children: [] }); + return id; + }, + destroyNode(id) { + detach(id); + nodes.delete(id); + }, + insertBefore(parentId, childId, anchor) { + const parent = node(parentId); + if (!parent) return; + detach(childId); + const at = anchor ? parent.children.indexOf(anchor) : -1; + if (at >= 0) parent.children.splice(at, 0, childId); + else parent.children.push(childId); + const child = node(childId); + if (child) child.parent = parentId; + }, + removeChild(_parent, child) { detach(child); }, + setStyle(id, style) { const n = node(id); if (n) n.style = style; }, + setProp() {}, + setText(id, text) { const n = node(id); if (n) n.text = String(text); }, + replaceText(id, text) { this.setText(id, text); }, + uploadTexture() { return -1; }, + freeTexture() {}, + setImage() {}, + setSprite() {}, + animate() { return nextAnim++; }, + cancelAnim() {}, + setFocus(id) { focused = id; }, + setActive() {}, + measureText(text, fontSlot) { + const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; + return String(text).length * width; + } + }; + + globalThis.__wm6Snapshot = () => { + const lines = ["PocketJS Cursor (real bundle)", "viewport 480x272", ""]; + const visit = (id, depth) => { + const current = node(id); + if (!current) return; + if (current.text) lines.push(" ".repeat(depth) + current.text); + for (const child of current.children) visit(child, depth + 1); + }; + visit(1, 0); + return lines.join("\n"); + }; + + globalThis.__wm6DrawList = () => { + const out = ["B|0|128|128"]; + const safe = (value) => String(value).replace(/[|\r\n]/g, " "); + const rect = (x, y, w, h, r, g, b) => + out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); + const text = (x, y, value) => + out.push(`T|${x}|${y}|0|0|0|0|${safe(value)}`); + const bevel = (x, y, w, h, pressed) => { + rect(x, y, w, h, pressed ? 210 : 192, pressed ? 206 : 192, + pressed ? 198 : 192); + rect(x, y, w, 2, pressed ? 0 : 255, pressed ? 0 : 255, + pressed ? 0 : 255); + rect(x, y, 2, h, pressed ? 0 : 255, pressed ? 0 : 255, + pressed ? 0 : 255); + rect(x, y + h - 2, w, 2, pressed ? 255 : 0, pressed ? 255 : 0, + pressed ? 255 : 0); + rect(x + w - 2, y, 2, h, pressed ? 255 : 0, pressed ? 255 : 0, + pressed ? 255 : 0); + }; + const labels = ["REPLAY TAPE", "OPEN MEMORY STICK", "LAUNCH SHELL"]; + + labels.forEach((label, index) => { + let owner = 0; + for (const current of nodes.values()) { + if (current.text === label) { + owner = current.parent; + break; + } + } + const y = 78 + index * 32; + bevel(120, y, 240, 24, owner === focused); + text(240 - Math.floor(label.length * 7 / 2), y + 5, label); + }); + + let status = "hover a row, press CIRCLE"; + for (const current of nodes.values()) { + if (current.text && labels.indexOf(current.text) < 0) + status = current.text; + } + bevel(120, 184, 240, 18, false); + text(128, 187, status); + return out.join("\n"); + }; +})(); +(() => { + // node_modules/solid-js/dist/solid.js + var sharedConfig = { + context: undefined, + registry: undefined, + effects: undefined, + done: false, + getContextId() { + return getContextId(this.context.count); + }, + getNextContextId() { + return getContextId(this.context.count++); + } + }; + function getContextId(count) { + const num = String(count), len = num.length - 1; + return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : "") + num; + } + function setHydrateContext(context) { + sharedConfig.context = context; + } + function nextHydrateContext() { + return { + ...sharedConfig.context, + id: sharedConfig.getNextContextId(), + count: 0 + }; + } + var IS_DEV = false; + var equalFn = (a, b) => a === b; + var $PROXY = Symbol("solid-proxy"); + var SUPPORTS_PROXY = typeof Proxy === "function"; + var $TRACK = Symbol("solid-track"); + var $DEVCOMP = Symbol("solid-dev-component"); + var signalOptions = { + equals: equalFn + }; + var ERROR = null; + var runEffects = runQueue; + var STALE = 1; + var PENDING = 2; + var UNOWNED = { + owned: null, + cleanups: null, + context: null, + owner: null + }; + var Owner = null; + var Transition = null; + var Scheduler = null; + var ExternalSourceConfig = null; + var Listener = null; + var Updates = null; + var Effects = null; + var ExecCount = 0; + function createRoot(fn, detachedOwner) { + const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === undefined ? owner : detachedOwner, root = unowned ? UNOWNED : { + owned: null, + cleanups: null, + context: current ? current.context : null, + owner: current + }, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root))); + Owner = root; + Listener = null; + try { + return runUpdates(updateFn, true); + } finally { + Listener = listener; + Owner = owner; + } + } + function createSignal(value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const s = { + value, + observers: null, + observerSlots: null, + comparator: options.equals || undefined + }; + const setter = (value2) => { + if (typeof value2 === "function") { + if (Transition && Transition.running && Transition.sources.has(s)) + value2 = value2(s.tValue); + else + value2 = value2(s.value); + } + return writeSignal(s, value2); + }; + return [readSignal.bind(s), setter]; + } + function createRenderEffect(fn, value, options) { + const c = createComputation(fn, value, false, STALE); + if (Scheduler && Transition && Transition.running) + Updates.push(c); + else + updateComputation(c); + } + function createMemo(fn, value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const c = createComputation(fn, value, true, 0); + c.observers = null; + c.observerSlots = null; + c.comparator = options.equals || undefined; + if (Scheduler && Transition && Transition.running) { + c.tState = STALE; + Updates.push(c); + } else + updateComputation(c); + return readSignal.bind(c); + } + function untrack(fn) { + if (!ExternalSourceConfig && Listener === null) + return fn(); + const listener = Listener; + Listener = null; + try { + if (ExternalSourceConfig) + return ExternalSourceConfig.untrack(fn); + return fn(); + } finally { + Listener = listener; + } + } + function onCleanup(fn) { + if (Owner === null) + ; + else if (Owner.cleanups === null) + Owner.cleanups = [fn]; + else + Owner.cleanups.push(fn); + return fn; + } + function startTransition(fn) { + if (Transition && Transition.running) { + fn(); + return Transition.done; + } + const l = Listener; + const o = Owner; + return Promise.resolve().then(() => { + Listener = l; + Owner = o; + let t; + if (Scheduler || SuspenseContext) { + t = Transition || (Transition = { + sources: new Set, + effects: [], + promises: new Set, + disposed: new Set, + queue: new Set, + running: true + }); + t.done || (t.done = new Promise((res) => t.resolve = res)); + t.running = true; + } + runUpdates(fn, false); + Listener = Owner = null; + return t ? t.done : undefined; + }); + } + var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false); + var SuspenseContext; + function readSignal() { + const runningTransition = Transition && Transition.running; + if (this.sources && (runningTransition ? this.tState : this.state)) { + if ((runningTransition ? this.tState : this.state) === STALE) + updateComputation(this); + else { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(this), false); + Updates = updates; + } + } + if (Listener) { + const observers = this.observers; + if (!observers || observers[observers.length - 1] !== Listener) { + const sSlot = observers ? observers.length : 0; + if (!Listener.sources) { + Listener.sources = [this]; + Listener.sourceSlots = [sSlot]; + } else { + Listener.sources.push(this); + Listener.sourceSlots.push(sSlot); + } + if (!observers) { + this.observers = [Listener]; + this.observerSlots = [Listener.sources.length - 1]; + } else { + observers.push(Listener); + this.observerSlots.push(Listener.sources.length - 1); + } + } + } + if (runningTransition && Transition.sources.has(this)) + return this.tValue; + return this.value; + } + function writeSignal(node, value, isComp) { + let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value; + if (!node.comparator || !node.comparator(current, value)) { + if (Transition) { + const TransitionRunning = Transition.running; + if (TransitionRunning || !isComp && Transition.sources.has(node)) { + Transition.sources.add(node); + node.tValue = value; + } + if (!TransitionRunning) + node.value = value; + } else + node.value = value; + if (node.observers && node.observers.length) { + runUpdates(() => { + for (let i = 0;i < node.observers.length; i += 1) { + const o = node.observers[i]; + const TransitionRunning = Transition && Transition.running; + if (TransitionRunning && Transition.disposed.has(o)) + continue; + if (TransitionRunning ? !o.tState : !o.state) { + if (o.pure) + Updates.push(o); + else + Effects.push(o); + if (o.observers) + markDownstream(o); + } + if (!TransitionRunning) + o.state = STALE; + else + o.tState = STALE; + } + if (Updates.length > 1e6) { + Updates = []; + if (IS_DEV) + ; + throw new Error; + } + }, false); + } + } + return value; + } + function updateComputation(node) { + if (!node.fn) + return; + cleanNode(node); + const time = ExecCount; + runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time); + if (Transition && !Transition.running && Transition.sources.has(node)) { + queueMicrotask(() => { + runUpdates(() => { + Transition && (Transition.running = true); + Listener = Owner = node; + runComputation(node, node.tValue, time); + Listener = Owner = null; + }, false); + }); + } + } + function runComputation(node, value, time) { + let nextValue; + const owner = Owner, listener = Listener; + Listener = Owner = node; + try { + nextValue = node.fn(value); + } catch (err) { + if (node.pure) { + if (Transition && Transition.running) { + node.tState = STALE; + node.tOwned && node.tOwned.forEach(cleanNode); + node.tOwned = undefined; + } else { + node.state = STALE; + node.owned && node.owned.forEach(cleanNode); + node.owned = null; + } + } + node.updatedAt = time + 1; + return handleError(err); + } finally { + Listener = listener; + Owner = owner; + } + if (!node.updatedAt || node.updatedAt <= time) { + if (node.updatedAt != null && "observers" in node) { + writeSignal(node, nextValue, true); + } else if (Transition && Transition.running && node.pure) { + if (!Transition.sources.has(node)) + node.value = nextValue; + Transition.sources.add(node); + node.tValue = nextValue; + } else + node.value = nextValue; + node.updatedAt = time; + } + } + function createComputation(fn, init, pure, state = STALE, options) { + const c = { + fn, + state, + updatedAt: null, + owned: null, + sources: null, + sourceSlots: null, + cleanups: null, + value: init, + owner: Owner, + context: Owner ? Owner.context : null, + pure + }; + if (Transition && Transition.running) { + c.state = 0; + c.tState = state; + } + if (Owner === null) + ; + else if (Owner !== UNOWNED) { + if (Transition && Transition.running && Owner.pure) { + if (!Owner.tOwned) + Owner.tOwned = [c]; + else + Owner.tOwned.push(c); + } else { + if (!Owner.owned) + Owner.owned = [c]; + else + Owner.owned.push(c); + } + } + if (ExternalSourceConfig && c.fn) { + const sourceFn = c.fn; + const [track, trigger] = createSignal(undefined, { + equals: false + }); + const ordinary = ExternalSourceConfig.factory(sourceFn, trigger); + onCleanup(() => ordinary.dispose()); + let inTransition; + const triggerInTransition = () => startTransition(trigger).then(() => { + if (inTransition) { + inTransition.dispose(); + inTransition = undefined; + } + }); + c.fn = (x) => { + track(); + if (Transition && Transition.running) { + if (!inTransition) + inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition); + return inTransition.track(x); + } + return ordinary.track(x); + }; + } + return c; + } + function runTop(node) { + const runningTransition = Transition && Transition.running; + if ((runningTransition ? node.tState : node.state) === 0) + return; + if ((runningTransition ? node.tState : node.state) === PENDING) + return lookUpstream(node); + if (node.suspense && untrack(node.suspense.inFallback)) + return node.suspense.effects.push(node); + const ancestors = [node]; + while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) { + if (runningTransition && Transition.disposed.has(node)) + return; + if (runningTransition ? node.tState : node.state) + ancestors.push(node); + } + for (let i = ancestors.length - 1;i >= 0; i--) { + node = ancestors[i]; + if (runningTransition) { + let top = node, prev = ancestors[i + 1]; + while ((top = top.owner) && top !== prev) { + if (Transition.disposed.has(top)) + return; + } + } + if ((runningTransition ? node.tState : node.state) === STALE) { + updateComputation(node); + } else if ((runningTransition ? node.tState : node.state) === PENDING) { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(node, ancestors[0]), false); + Updates = updates; + } + } + } + function runUpdates(fn, init) { + if (Updates) + return fn(); + let wait = false; + if (!init) + Updates = []; + if (Effects) + wait = true; + else + Effects = []; + ExecCount++; + try { + const res = fn(); + completeUpdates(wait); + return res; + } catch (err) { + if (!wait) + Effects = null; + Updates = null; + handleError(err); + } + } + function completeUpdates(wait) { + if (Updates) { + if (Scheduler && Transition && Transition.running) + scheduleQueue(Updates); + else + runQueue(Updates); + Updates = null; + } + if (wait) + return; + let res; + if (Transition) { + if (!Transition.promises.size && !Transition.queue.size) { + const sources = Transition.sources; + const disposed = Transition.disposed; + Effects.push.apply(Effects, Transition.effects); + res = Transition.resolve; + for (const e2 of Effects) { + "tState" in e2 && (e2.state = e2.tState); + delete e2.tState; + } + Transition = null; + runUpdates(() => { + for (const d of disposed) + cleanNode(d); + for (const v of sources) { + v.value = v.tValue; + if (v.owned) { + for (let i = 0, len = v.owned.length;i < len; i++) + cleanNode(v.owned[i]); + } + if (v.tOwned) + v.owned = v.tOwned; + delete v.tValue; + delete v.tOwned; + v.tState = 0; + } + setTransPending(false); + }, false); + } else if (Transition.running) { + Transition.running = false; + Transition.effects.push.apply(Transition.effects, Effects); + Effects = null; + setTransPending(true); + return; + } + } + const e = Effects; + Effects = null; + if (e.length) + runUpdates(() => runEffects(e), false); + if (res) + res(); + } + function runQueue(queue) { + for (let i = 0;i < queue.length; i++) + runTop(queue[i]); + } + function scheduleQueue(queue) { + for (let i = 0;i < queue.length; i++) { + const item = queue[i]; + const tasks = Transition.queue; + if (!tasks.has(item)) { + tasks.add(item); + Scheduler(() => { + tasks.delete(item); + runUpdates(() => { + Transition.running = true; + runTop(item); + }, false); + Transition && (Transition.running = false); + }); + } + } + } + function lookUpstream(node, ignore) { + const runningTransition = Transition && Transition.running; + if (runningTransition) + node.tState = 0; + else + node.state = 0; + for (let i = 0;i < node.sources.length; i += 1) { + const source = node.sources[i]; + if (source.sources) { + const state = runningTransition ? source.tState : source.state; + if (state === STALE) { + if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) + runTop(source); + } else if (state === PENDING) + lookUpstream(source, ignore); + } + } + } + function markDownstream(node) { + const runningTransition = Transition && Transition.running; + for (let i = 0;i < node.observers.length; i += 1) { + const o = node.observers[i]; + if (runningTransition ? !o.tState : !o.state) { + if (runningTransition) + o.tState = PENDING; + else + o.state = PENDING; + if (o.pure) + Updates.push(o); + else + Effects.push(o); + o.observers && markDownstream(o); + } + } + } + function cleanNode(node) { + let i; + if (node.sources) { + while (node.sources.length) { + const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers; + if (obs && obs.length) { + const n = obs.pop(), s = source.observerSlots.pop(); + if (index < obs.length) { + n.sourceSlots[s] = index; + obs[index] = n; + source.observerSlots[index] = s; + } + } + } + } + if (node.tOwned) { + for (i = node.tOwned.length - 1;i >= 0; i--) + cleanNode(node.tOwned[i]); + delete node.tOwned; + } + if (Transition && Transition.running && node.pure) { + reset(node, true); + } else if (node.owned) { + for (i = node.owned.length - 1;i >= 0; i--) + cleanNode(node.owned[i]); + node.owned = null; + } + if (node.cleanups) { + for (i = node.cleanups.length - 1;i >= 0; i--) + node.cleanups[i](); + node.cleanups = null; + } + if (Transition && Transition.running) + node.tState = 0; + else + node.state = 0; + } + function reset(node, top) { + if (!top) { + node.tState = 0; + Transition.disposed.add(node); + } + if (node.owned) { + for (let i = 0;i < node.owned.length; i++) + reset(node.owned[i]); + } + } + function castError(err) { + if (err instanceof Error) + return err; + return new Error(typeof err === "string" ? err : "Unknown error", { + cause: err + }); + } + function runErrors(err, fns, owner) { + try { + for (const f of fns) + f(err); + } catch (e) { + handleError(e, owner && owner.owner || null); + } + } + function handleError(err, owner = Owner) { + const fns = ERROR && owner && owner.context && owner.context[ERROR]; + const error = castError(err); + if (!fns) + throw error; + if (Effects) + Effects.push({ + fn() { + runErrors(error, fns, owner); + }, + state: STALE + }); + else + runErrors(error, fns, owner); + } + var FALLBACK = Symbol("fallback"); + var hydrationEnabled = false; + function createComponent(Comp, props) { + if (hydrationEnabled) { + if (sharedConfig.context) { + const c = sharedConfig.context; + setHydrateContext(nextHydrateContext()); + const r = untrack(() => Comp(props || {})); + setHydrateContext(c); + return r; + } + } + return untrack(() => Comp(props || {})); + } + function trueFn() { + return true; + } + var propTraps = { + get(_, property, receiver) { + if (property === $PROXY) + return receiver; + return _.get(property); + }, + has(_, property) { + if (property === $PROXY) + return true; + return _.has(property); + }, + set: trueFn, + deleteProperty: trueFn, + getOwnPropertyDescriptor(_, property) { + return { + configurable: true, + enumerable: true, + get() { + return _.get(property); + }, + set: trueFn, + deleteProperty: trueFn + }; + }, + ownKeys(_) { + return _.keys(); + } + }; + function resolveSource(s) { + return !(s = typeof s === "function" ? s() : s) ? {} : s; + } + function resolveSources() { + for (let i = 0, length = this.length;i < length; ++i) { + const v = this[i](); + if (v !== undefined) + return v; + } + } + function mergeProps(...sources) { + let proxy = false; + for (let i = 0;i < sources.length; i++) { + const s = sources[i]; + proxy = proxy || !!s && $PROXY in s; + sources[i] = typeof s === "function" ? (proxy = true, createMemo(s)) : s; + } + if (SUPPORTS_PROXY && proxy) { + return new Proxy({ + get(property) { + for (let i = sources.length - 1;i >= 0; i--) { + const v = resolveSource(sources[i])[property]; + if (v !== undefined) + return v; + } + }, + has(property) { + for (let i = sources.length - 1;i >= 0; i--) { + if (property in resolveSource(sources[i])) + return true; + } + return false; + }, + keys() { + const keys = []; + for (let i = 0;i < sources.length; i++) + keys.push(...Object.keys(resolveSource(sources[i]))); + return [...new Set(keys)]; + } + }, propTraps); + } + const sourcesMap = {}; + const defined = Object.create(null); + for (let i = sources.length - 1;i >= 0; i--) { + const source = sources[i]; + if (!source) + continue; + const sourceKeys = Object.getOwnPropertyNames(source); + for (let i2 = sourceKeys.length - 1;i2 >= 0; i2--) { + const key = sourceKeys[i2]; + if (key === "__proto__" || key === "constructor") + continue; + const desc = Object.getOwnPropertyDescriptor(source, key); + if (!defined[key]) { + defined[key] = desc.get ? { + enumerable: true, + configurable: true, + get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)]) + } : desc.value !== undefined ? desc : undefined; + } else { + const sources2 = sourcesMap[key]; + if (sources2) { + if (desc.get) + sources2.push(desc.get.bind(source)); + else if (desc.value !== undefined) + sources2.push(() => desc.value); + } + } + } + } + const target = {}; + const definedKeys = Object.keys(defined); + for (let i = definedKeys.length - 1;i >= 0; i--) { + const key = definedKeys[i], desc = defined[key]; + if (desc && desc.get) + Object.defineProperty(target, key, desc); + else + target[key] = desc ? desc.value : undefined; + } + return target; + } + + // node_modules/solid-js/universal/dist/universal.js + var memo = (fn) => createMemo(() => fn()); + function createRenderer$1({ + createElement, + createTextNode, + isTextNode, + replaceText, + insertNode, + removeNode, + setProperty, + getParentNode, + getFirstChild, + getNextSibling + }) { + function insert(parent, accessor, marker, initial) { + if (marker !== undefined && !initial) + initial = []; + if (typeof accessor !== "function") + return insertExpression(parent, accessor, initial, marker); + createRenderEffect((current) => insertExpression(parent, accessor(), current, marker), initial); + } + function insertExpression(parent, value, current, marker, unwrapArray) { + while (typeof current === "function") + current = current(); + if (value === current) + return current; + const t = typeof value, multi = marker !== undefined; + if (t === "string" || t === "number") { + if (t === "number") + value = value.toString(); + if (multi) { + let node = current[0]; + if (node && isTextNode(node)) { + replaceText(node, value); + } else + node = createTextNode(value); + current = cleanChildren(parent, current, marker, node); + } else { + if (current !== "" && typeof current === "string") { + replaceText(getFirstChild(parent), current = value); + } else { + cleanChildren(parent, current, marker, createTextNode(value)); + current = value; + } + } + } else if (value == null || t === "boolean") { + current = cleanChildren(parent, current, marker); + } else if (t === "function") { + createRenderEffect(() => { + let v = value(); + while (typeof v === "function") + v = v(); + current = insertExpression(parent, v, current, marker); + }); + return () => current; + } else if (Array.isArray(value)) { + const array = []; + if (normalizeIncomingArray(array, value, unwrapArray)) { + createRenderEffect(() => current = insertExpression(parent, array, current, marker, true)); + return () => current; + } + if (array.length === 0) { + const replacement = cleanChildren(parent, current, marker); + if (multi) + return current = replacement; + } else { + if (Array.isArray(current)) { + if (current.length === 0) { + appendNodes(parent, array, marker); + } else + reconcileArrays(parent, current, array); + } else if (current == null || current === "") { + appendNodes(parent, array); + } else { + reconcileArrays(parent, multi && current || [getFirstChild(parent)], array); + } + } + current = array; + } else { + if (Array.isArray(current)) { + if (multi) + return current = cleanChildren(parent, current, marker, value); + cleanChildren(parent, current, null, value); + } else if (current == null || current === "" || !getFirstChild(parent)) { + insertNode(parent, value); + } else + replaceNode(parent, value, getFirstChild(parent)); + current = value; + } + return current; + } + function normalizeIncomingArray(normalized, array, unwrap) { + let dynamic = false; + for (let i = 0, len = array.length;i < len; i++) { + let item = array[i], t; + if (item == null || item === true || item === false) + ; + else if (Array.isArray(item)) { + dynamic = normalizeIncomingArray(normalized, item) || dynamic; + } else if ((t = typeof item) === "string" || t === "number") { + normalized.push(createTextNode(item)); + } else if (t === "function") { + if (unwrap) { + while (typeof item === "function") + item = item(); + dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic; + } else { + normalized.push(item); + dynamic = true; + } + } else + normalized.push(item); + } + return dynamic; + } + function reconcileArrays(parentNode, a, b) { + let bLength = b.length, aEnd = a.length, bEnd = bLength, aStart = 0, bStart = 0, after = getNextSibling(a[aEnd - 1]), map = null; + while (aStart < aEnd || bStart < bEnd) { + if (a[aStart] === b[bStart]) { + aStart++; + bStart++; + continue; + } + while (a[aEnd - 1] === b[bEnd - 1]) { + aEnd--; + bEnd--; + } + if (aEnd === aStart) { + const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after; + while (bStart < bEnd) + insertNode(parentNode, b[bStart++], node); + } else if (bEnd === bStart) { + while (aStart < aEnd) { + if (!map || !map.has(a[aStart])) + removeNode(parentNode, a[aStart]); + aStart++; + } + } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) { + const node = getNextSibling(a[--aEnd]); + insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++])); + insertNode(parentNode, b[--bEnd], node); + a[aEnd] = b[bEnd]; + } else { + if (!map) { + map = new Map; + let i = bStart; + while (i < bEnd) + map.set(b[i], i++); + } + const index = map.get(a[aStart]); + if (index != null) { + if (bStart < index && index < bEnd) { + let i = aStart, sequence = 1, t; + while (++i < aEnd && i < bEnd) { + if ((t = map.get(a[i])) == null || t !== index + sequence) + break; + sequence++; + } + if (sequence > index - bStart) { + const node = a[aStart]; + while (bStart < index) + insertNode(parentNode, b[bStart++], node); + } else + replaceNode(parentNode, b[bStart++], a[aStart++]); + } else + aStart++; + } else + removeNode(parentNode, a[aStart++]); + } + } + } + function cleanChildren(parent, current, marker, replacement) { + if (marker === undefined) { + let removed; + while (removed = getFirstChild(parent)) + removeNode(parent, removed); + replacement && insertNode(parent, replacement); + return ""; + } + const node = replacement || createTextNode(""); + if (current.length) { + let inserted = false; + for (let i = current.length - 1;i >= 0; i--) { + const el = current[i]; + if (node !== el) { + const isParent = getParentNode(el) === parent; + if (!inserted && !i) + isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker); + else + isParent && removeNode(parent, el); + } else + inserted = true; + } + } else + insertNode(parent, node, marker); + return [node]; + } + function appendNodes(parent, array, marker) { + for (let i = 0, len = array.length;i < len; i++) + insertNode(parent, array[i], marker); + } + function replaceNode(parent, newNode, oldNode) { + insertNode(parent, newNode, oldNode); + removeNode(parent, oldNode); + } + function spreadExpression(node, props, prevProps = {}, skipChildren) { + props || (props = {}); + if (!skipChildren) { + createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children)); + } + createRenderEffect(() => props.ref && props.ref(node)); + createRenderEffect(() => { + for (const prop in props) { + if (prop === "children" || prop === "ref") + continue; + const value = props[prop]; + if (value === prevProps[prop]) + continue; + setProperty(node, prop, value, prevProps[prop]); + prevProps[prop] = value; + } + }); + return prevProps; + } + return { + render(code, element) { + let disposer; + createRoot((dispose) => { + disposer = dispose; + insert(element, code()); + }); + return disposer; + }, + insert, + spread(node, accessor, skipChildren) { + if (typeof accessor === "function") { + createRenderEffect((current) => spreadExpression(node, accessor(), current, skipChildren)); + } else + spreadExpression(node, accessor, undefined, skipChildren); + }, + createElement, + createTextNode, + insertNode, + setProp(node, name, value, prev) { + setProperty(node, name, value, prev); + return value; + }, + mergeProps, + effect: createRenderEffect, + memo, + createComponent, + use(fn, element, arg) { + return untrack(() => fn(element, arg)); + } + }; + } + function createRenderer(options) { + const renderer = createRenderer$1(options); + renderer.mergeProps = mergeProps; + return renderer; + } + + // contracts/spec/spec.ts + var SCREEN_W = 480; + var SCREEN_H = 272; + var NODE_TYPE = { + view: 0, + text: 1, + image: 2 + }; + var ROOT_ID = 1; + var STYLE_ID_NONE = -1; + var PROP = { + width: 1, + height: 2, + minW: 3, + minH: 4, + maxW: 5, + maxH: 6, + paddingT: 8, + paddingR: 9, + paddingB: 10, + paddingL: 11, + marginT: 12, + marginR: 13, + marginB: 14, + marginL: 15, + gap: 16, + flexDir: 17, + justify: 18, + align: 19, + grow: 20, + shrink: 21, + basis: 22, + flexWrap: 23, + posType: 24, + insetT: 25, + insetR: 26, + insetB: 27, + insetL: 28, + display: 29, + overflow: 30, + zIndex: 31, + bgColor: 64, + gradFrom: 65, + gradTo: 66, + gradDir: 67, + radius: 68, + opacity: 69, + borderColor: 70, + borderWidth: 71, + shadow: 72, + bevelOuterLight: 77, + bevelOuterDark: 78, + bevelInnerLight: 79, + bevelInnerDark: 80, + bevelWidth: 81, + textColor: 96, + fontSlot: 97, + textAlign: 98, + lineHeight: 99, + tracking: 100, + translateX: 128, + translateY: 129, + scale: 130, + rotate: 131, + scaleX: 132, + scaleY: 133, + originX: 134, + originY: 135, + rotateX: 136, + rotateY: 137, + translateZ: 138, + perspective: 139, + arcStart: 140, + arcSweep: 141, + arcWidth: 142 + }; + var VALUE_KIND = { + f32: 0, + color: 1, + int: 2 + }; + var PROP_VALUE_KIND = { + width: VALUE_KIND.f32, + height: VALUE_KIND.f32, + minW: VALUE_KIND.f32, + minH: VALUE_KIND.f32, + maxW: VALUE_KIND.f32, + maxH: VALUE_KIND.f32, + paddingT: VALUE_KIND.f32, + paddingR: VALUE_KIND.f32, + paddingB: VALUE_KIND.f32, + paddingL: VALUE_KIND.f32, + marginT: VALUE_KIND.f32, + marginR: VALUE_KIND.f32, + marginB: VALUE_KIND.f32, + marginL: VALUE_KIND.f32, + gap: VALUE_KIND.f32, + flexDir: VALUE_KIND.int, + justify: VALUE_KIND.int, + align: VALUE_KIND.int, + grow: VALUE_KIND.f32, + shrink: VALUE_KIND.f32, + basis: VALUE_KIND.f32, + flexWrap: VALUE_KIND.int, + posType: VALUE_KIND.int, + insetT: VALUE_KIND.f32, + insetR: VALUE_KIND.f32, + insetB: VALUE_KIND.f32, + insetL: VALUE_KIND.f32, + display: VALUE_KIND.int, + overflow: VALUE_KIND.int, + zIndex: VALUE_KIND.int, + bgColor: VALUE_KIND.color, + gradFrom: VALUE_KIND.color, + gradTo: VALUE_KIND.color, + gradDir: VALUE_KIND.int, + radius: VALUE_KIND.f32, + opacity: VALUE_KIND.f32, + borderColor: VALUE_KIND.color, + borderWidth: VALUE_KIND.f32, + shadow: VALUE_KIND.int, + bevelOuterLight: VALUE_KIND.color, + bevelOuterDark: VALUE_KIND.color, + bevelInnerLight: VALUE_KIND.color, + bevelInnerDark: VALUE_KIND.color, + bevelWidth: VALUE_KIND.f32, + textColor: VALUE_KIND.color, + fontSlot: VALUE_KIND.int, + textAlign: VALUE_KIND.int, + lineHeight: VALUE_KIND.f32, + tracking: VALUE_KIND.f32, + translateX: VALUE_KIND.f32, + translateY: VALUE_KIND.f32, + scale: VALUE_KIND.f32, + rotate: VALUE_KIND.f32, + scaleX: VALUE_KIND.f32, + scaleY: VALUE_KIND.f32, + originX: VALUE_KIND.f32, + originY: VALUE_KIND.f32, + rotateX: VALUE_KIND.f32, + rotateY: VALUE_KIND.f32, + translateZ: VALUE_KIND.f32, + perspective: VALUE_KIND.f32, + arcStart: VALUE_KIND.f32, + arcSweep: VALUE_KIND.f32, + arcWidth: VALUE_KIND.f32 + }; + var ENUMS = { + FlexDir: { + Row: 0, + Col: 1 + }, + Justify: { + Start: 0, + Center: 1, + End: 2, + Between: 3, + Around: 4 + }, + Align: { + Start: 0, + Center: 1, + End: 2, + Stretch: 3 + }, + PosType: { + Relative: 0, + Absolute: 1 + }, + Display: { + Flex: 0, + None: 1 + }, + Overflow: { + Visible: 0, + Hidden: 1 + }, + TextAlign: { + Left: 0, + Center: 1, + Right: 2 + }, + GradDir: { + ToTop: 0, + ToBottom: 1, + ToLeft: 2, + ToRight: 3 + }, + Easing: { + Linear: 0, + EaseIn: 1, + EaseOut: 2, + EaseInOut: 3, + OutBack: 4, + Spring: 5, + SpringBouncy: 6, + CubicBezier: 7 + } + }; + var PSM = { + PSM_5650: 0, + PSM_4444: 2, + PSM_8888: 3, + PSM_T8: 5 + }; + var IMG_FLAG_RLE = 1 << 0; + var IMG_FLAG_LINEAR = 1 << 1; + var TILESET_FLAG_RLE = 1 << 0; + var TILESET_FLAG_LINEAR = 1 << 1; + var SVC_IMG_MAX_BYTES = 128 * 1024; + var STREAM_FLAG_ENDED = 1 << 0; + var STYLE_VARIANT_BASE = 1 << 0; + var STYLE_VARIANT_FOCUS = 1 << 1; + var STYLE_VARIANT_ACTIVE = 1 << 2; + var STYLE_HAS_TRANSITION = 1 << 3; + var STYLE_HAS_ANIMATION = 1 << 4; + var ANIM_FILL_BACKWARDS = 1 << 0; + var ANIM_FILL_FORWARDS = 1 << 1; + function abgr(r, g, b, a = 255) { + return ((a & 255) << 24 | (b & 255) << 16 | (g & 255) << 8 | r & 255) >>> 0; + } + var FONT_FLAG_BOLD = 1 << 0; + var PAK_MAGIC = 1263551300; + var PAK_VERSION = 1; + var PAK_HEADER_SIZE = 32; + var PAK_ENTRY_SIZE = 24; + var BTN = { + SELECT: 1, + START: 8, + UP: 16, + RIGHT: 32, + DOWN: 64, + LEFT: 128, + LTRIGGER: 256, + RTRIGGER: 512, + TRIANGLE: 4096, + CIRCLE: 8192, + CROSS: 16384, + SQUARE: 32768 + }; + var ANALOG_CENTER = 32896; + var FIXED_DT = 1 / 60; + + // framework/src/host.ts + function hostViewport(ops) { + return ops.__viewport ?? null; + } + var current = null; + function embeddedBuildHostContract() { + const target = ""; + const hostAbi = 0; + return target && hostAbi > 0 ? { + target, + hostAbi + } : null; + } + function assertNativeHostContract(ops, expected = embeddedBuildHostContract()) { + if (!expected) + return; + if (typeof ops.__host !== "string") { + throw new Error(`PocketJS: this bundle targets "${expected.target}" but the native host predates platform ` + "contracts — add __host/__hostAbi to its ui namespace (see framework/src/host.ts HostOps)"); + } + if (ops.__host !== expected.target) { + throw new Error(`PocketJS: native target mismatch (bundle=${expected.target}, host=${ops.__host})`); + } + if (ops.__hostAbi !== expected.hostAbi) { + throw new Error(`PocketJS: native host ABI mismatch (bundle=${expected.hostAbi}, host=${ops.__hostAbi ?? "missing"})`); + } + } + function detectHost(injected) { + const native = globalThis.ui; + const nativeMarked = native !== undefined && (typeof native.__host === "string" || native.__textures !== undefined); + if (injected) { + if (native !== undefined && injected === native && nativeMarked) { + assertNativeHostContract(native); + return { + ops: injected, + kind: "native", + target: native.__host ?? "unknown", + strict: false + }; + } + return { + ops: injected, + kind: "injected", + target: injected.__host ?? "injected", + strict: true + }; + } + if (native !== undefined && nativeMarked) { + assertNativeHostContract(native); + return { + ops: native, + kind: "native", + target: native.__host ?? "unknown", + strict: false + }; + } + if (native) { + return { + ops: native, + kind: "injected", + target: "injected", + strict: true + }; + } + throw new Error("PocketJS: no host — pass HostOps to render() (web/test) or run under a native runtime (globalThis.ui)"); + } + function installHost(host) { + current = host; + } + function getHost() { + if (!current) { + throw new Error("PocketJS: host not installed — call render() first"); + } + return current; + } + function getOps() { + return getHost().ops; + } + function installFrameHandler(fn) { + globalThis.frame = fn; + } + function installResizeViewportHook(resizeViewport) { + const globals = globalThis; + const previous = globals.__pocketResizeViewport; + const hook = (width, height) => resizeViewport(width, height); + globals.__pocketResizeViewport = hook; + return () => { + if (globals.__pocketResizeViewport !== hook) + return; + if (previous) + globals.__pocketResizeViewport = previous; + else + delete globals.__pocketResizeViewport; + }; + } + function parseHexColor(s) { + let hex = s.slice(1); + if (hex.length === 3) { + hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; + } + if (hex.length !== 6 && hex.length !== 8) { + throw new Error(`PocketJS: bad color '${s}' (expected #rgb/#rrggbb/#rrggbbaa)`); + } + if (!/^[0-9a-fA-F]+$/.test(hex)) + throw new Error(`PocketJS: bad color '${s}'`); + const n = parseInt(hex, 16); + if (hex.length === 6) { + return abgr(n >>> 16 & 255, n >>> 8 & 255, n & 255, 255); + } + return abgr(n >>> 24 & 255, n >>> 16 & 255, n >>> 8 & 255, n & 255); + } + function encodePropValue(prop, value) { + const kind = PROP_VALUE_KIND[prop]; + if (typeof value === "string") { + if (kind === VALUE_KIND.color) + return parseHexColor(value); + const n = Number(value); + if (Number.isNaN(n)) { + throw new Error(`PocketJS: non-numeric value '${value}' for prop '${prop}'`); + } + value = n; + } + if (kind === VALUE_KIND.color || kind === VALUE_KIND.int) + return value >>> 0; + return value; + } + + // framework/src/clock.ts + var TICKS_PER_SECOND = 60; + var VALID_HZ = [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]; + var hz = TICKS_PER_SECOND; + var frame = -1; + var timerSeq = 0; + var timers = []; + function normalizeHz(raw) { + if (!Number.isFinite(raw) || raw <= 0) + return TICKS_PER_SECOND; + let best = VALID_HZ[0]; + for (const v of VALID_HZ) { + if (Math.abs(v - raw) < Math.abs(best - raw)) + best = v; + } + return best; + } + function ticksPerFrame() { + return TICKS_PER_SECOND / hz; + } + function virtualFrame() { + return frame < 0 ? 0 : frame; + } + function resetClock() { + const raw = globalThis.__simHz; + hz = typeof raw === "number" ? normalizeHz(raw) : TICKS_PER_SECOND; + frame = -1; + timers = []; + timerSeq = 0; + } + function __advanceClock() { + frame = frame < 0 ? 0 : frame + 1; + if (timers.length === 0) + return; + const due = timers.filter((t) => t.at <= frame).sort((a, b) => a.at - b.at || a.seq - b.seq); + if (due.length === 0) + return; + timers = timers.filter((t) => t.at > frame); + for (const t of due) + t.cb(); + } + + // framework/src/analog.ts + var ANALOG_DEADZONE = 0.12; + var analogPacked = ANALOG_CENTER; + function __setAnalog(packed) { + analogPacked = packed === undefined ? ANALOG_CENTER : packed & 65535; + } + function __resetAnalog() { + analogPacked = ANALOG_CENTER; + } + function axis(raw) { + const value = Math.max(-1, Math.min(1, (raw - 128) / 127)); + const magnitude = Math.abs(value); + if (magnitude < ANALOG_DEADZONE) + return 0; + return Math.sign(value) * (magnitude - ANALOG_DEADZONE) / (1 - ANALOG_DEADZONE); + } + function analogX() { + return axis(analogPacked >> 8 & 255); + } + function analogY() { + return axis(analogPacked & 255); + } + + // framework/src/frame.ts + var callbacks = new Set; + var buttonHandlerBlockDepth = 0; + function resetFrameHooks() { + callbacks.clear(); + buttonHandlerBlockDepth = 0; + __resetAnalog(); + } + function runFrameHooks(buttons) { + for (const cb of [...callbacks]) + cb(buttons); + } + + // framework/src/pak.ts + var map = null; + var bytes = null; + function readKey(u8, off, len) { + let s = ""; + for (let i = 0;i < len; i++) + s += String.fromCharCode(u8[off + i]); + return s; + } + function parse(ab) { + const dv = new DataView(ab); + if (ab.byteLength < PAK_HEADER_SIZE || dv.getUint32(0, true) !== PAK_MAGIC) { + throw new Error("pak: bad magic"); + } + const version = dv.getUint16(4, true); + if (version !== PAK_VERSION) { + throw new Error("pak: unsupported version " + version); + } + const entryCount = dv.getUint32(8, true); + const dirOff = dv.getUint32(12, true); + const namesOff = dv.getUint32(16, true); + const u8 = new Uint8Array(ab); + const m = new Map; + for (let i = 0;i < entryCount; i++) { + const e = dirOff + i * PAK_ENTRY_SIZE; + const blobOff = dv.getUint32(e + 4, true); + const byteLen = dv.getUint32(e + 8, true); + const nameOff = dv.getUint32(e + 12, true); + const nameLen = dv.getUint16(e + 16, true); + const dtype = u8[e + 18]; + m.set(readKey(u8, namesOff + nameOff, nameLen), { + off: blobOff, + len: byteLen, + dtype + }); + } + map = m; + bytes = u8; + } + function loadPack(ab) { + parse(ab); + } + function ensureLoaded() { + if (map) + return; + const ab = globalThis.__pak; + if (!ab) + return; + parse(ab); + } + function hasPack() { + ensureLoaded(); + return map !== null; + } + function entries(prefix = "") { + ensureLoaded(); + if (!map) + return []; + const out = []; + for (const key of map.keys()) { + if (key.length >= prefix.length && key.slice(0, prefix.length) === prefix) { + out.push(key); + } + } + out.sort(); + return out; + } + function get(key) { + ensureLoaded(); + const e = map ? map.get(key) : undefined; + if (!e) { + throw new Error("pak: missing key " + key + " (no __pak provided, or the pack is incomplete)"); + } + return bytes.slice(e.off, e.off + e.len); + } + + // framework/src/input.ts + var root = null; + var focused = null; + var pressedNode = null; + var prevButtons = 0; + var focusScopeStack = []; + var focusGridStack = []; + var focusControllerStack = []; + function setInputRoot(r) { + root = r; + focused = null; + pressedNode = null; + prevButtons = 0; + focusScopeStack.length = 0; + focusGridStack.length = 0; + focusControllerStack.length = 0; + if (cursor) { + cursor.pressTarget = null; + cursor.target = null; + cursor.spriteDirty = true; + cursor.fresh = true; + cursor.vw = 0; + if (cursor.tex >= 0) { + const ops = getOps(); + ops.setCursor?.(-1, 0, 0, 0, 0); + ops.freeTexture?.(cursor.tex); + cursor.tex = -1; + } + } + } + function registerPress(node, fn) { + node.onPress = fn ?? undefined; + } + function registerFocusable(node, on) { + node.focusable = on; + __notifyTreeMutation(); + if (!on && focused === node) { + focusNode(null); + } + } + function focusNode(node) { + if (pressedNode && pressedNode !== node) + setPressedNode(null); + focused = node; + getOps().setFocus(node ? node.id : 0); + } + function setPressedNode(node) { + if (pressedNode === node) + return; + const ops = getOps(); + if (pressedNode) + ops.setActive?.(pressedNode.id, 0); + pressedNode = node; + if (node) + ops.setActive?.(node.id, 1); + } + function activeFocusRoot() { + return focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : root; + } + function collectFocusables(node, out) { + if (!node) + return; + if (node.focusable) + out.push(node); + if (!Array.isArray(node.children)) + return; + for (let i = 0;i < node.children.length; i++) { + collectFocusables(node.children[i], out); + } + } + function focusables() { + const out = []; + const r = activeFocusRoot(); + if (r) + collectFocusables(r, out); + return out; + } + function linearDirection(direction) { + return direction === "down" || direction === "right" ? 1 : -1; + } + function moveLinearFocus(direction) { + const dir = linearDirection(direction); + const list = focusables(); + if (list.length === 0) { + if (focused) + focusNode(null); + return; + } + const i = focused ? list.indexOf(focused) : -1; + if (i < 0) { + focusNode(dir === 1 ? list[0] : list[list.length - 1]); + return; + } + const j = i + dir; + if (j < 0 || j >= list.length) + return; + focusNode(list[j]); + } + function activeGrid() { + if (!focused) + return null; + const active = activeFocusRoot(); + if (active && !isWithin(focused, active)) + return null; + for (let i = focusGridStack.length - 1;i >= 0; i--) { + const grid = focusGridStack[i]; + if (active && !isWithin(grid.node, active) && !isWithin(active, grid.node)) + continue; + if (isWithin(focused, grid.node)) + return grid; + } + return null; + } + function moveGridFocus(direction) { + const grid = activeGrid(); + if (!grid) + return false; + const list = []; + collectFocusables(grid.node, list); + if (list.length === 0) { + if (focused) + focusNode(null); + return true; + } + const columns = grid.columns; + const i = focused ? list.indexOf(focused) : -1; + if (i < 0) { + focusNode(linearDirection(direction) === 1 ? list[0] : list[list.length - 1]); + return true; + } + let j = i; + switch (direction) { + case "right": + if (i + 1 < list.length && i % columns < columns - 1) + j = i + 1; + else if (grid.wrap) + j = Math.floor(i / columns) * columns; + break; + case "left": + if (i % columns > 0) + j = i - 1; + else if (grid.wrap) + j = Math.min(list.length - 1, Math.floor(i / columns) * columns + columns - 1); + break; + case "down": + if (i + columns < list.length) + j = i + columns; + else if (grid.wrap) + j = i % columns; + break; + case "up": + if (i - columns >= 0) + j = i - columns; + else if (grid.wrap) { + const col = i % columns; + j = col; + while (j + columns < list.length) + j += columns; + } + break; + } + if (j !== i) + focusNode(list[j]); + return true; + } + function activeController() { + if (!focused) + return null; + const active = activeFocusRoot(); + if (active && !isWithin(focused, active)) + return null; + for (let i = focusControllerStack.length - 1;i >= 0; i--) { + const ctl = focusControllerStack[i]; + if (active && !isWithin(ctl.node, active) && !isWithin(active, ctl.node)) + continue; + if (isWithin(focused, ctl.node)) + return ctl; + } + return null; + } + function moveFocus(direction) { + const ctl = activeController(); + if (ctl && ctl.move(direction)) + return; + if (moveGridFocus(direction)) + return; + moveLinearFocus(direction); + } + function firePress() { + let n = focused; + while (n) { + if (n.onPress) { + n.onPress(); + return; + } + n = n.parent; + } + } + function isWithin(node, ancestor) { + if (!node || !ancestor) + return false; + let n = node; + while (n) { + if (n === ancestor) + return true; + n = n.parent; + } + return false; + } + function firstFocusable(node) { + if (!node) + return null; + if (node.focusable) + return node; + if (!Array.isArray(node.children)) + return null; + for (let i = 0;i < node.children.length; i++) { + const f = firstFocusable(node.children[i]); + if (f) + return f; + } + return null; + } + function notifyDetached(node) { + if (!focused || !isWithin(focused, node)) + return; + const parent = node.parent; + if (parent) { + const idx = parent.children.indexOf(node); + for (let i = idx + 1;i < parent.children.length; i++) { + const f = firstFocusable(parent.children[i]); + if (f) { + focusNode(f); + return; + } + } + for (let i = idx - 1;i >= 0; i--) { + const f = firstFocusable(parent.children[i]); + if (f) { + focusNode(f); + return; + } + } + let a = parent; + while (a) { + if (a.focusable) { + focusNode(a); + return; + } + a = a.parent; + } + } + focusNode(null); + } + var cursor = null; + var inputGen = 0; + function __notifyTreeMutation() { + inputGen++; + } + var ARROW_OUTLINE = [1, 3, 5, 9, 17, 33, 65, 129, 257, 513, 1985, 73, 149, 147, 288, 480]; + var ARROW_FILL = [0, 0, 2, 6, 14, 30, 62, 126, 254, 510, 62, 54, 98, 96, 192, 0]; + function defaultArrowRGBA() { + const px = new Uint8Array(16 * 16 * 4); + for (let y = 0;y < 16; y++) { + for (let x = 0;x < 16; x++) { + const outline = ARROW_OUTLINE[y] >> x & 1; + const fill = ARROW_FILL[y] >> x & 1; + if (!outline && !fill) + continue; + const i = (y * 16 + x) * 4; + const v = fill ? 255 : 0; + px[i] = v; + px[i + 1] = v; + px[i + 2] = v; + px[i + 3] = 255; + } + } + return px; + } + function enableCursor(opts = {}) { + const prev = cursor; + if (prev?.pressTarget) + setPressedNode(null); + const sprite = { + image: opts.image, + hotspot: opts.hotspot ?? [0, 0], + size: opts.size ?? [0, 0] + }; + const sameSprite = prev !== null && !prev.spriteDirty && prev.sprite.image === sprite.image && prev.sprite.hotspot[0] === sprite.hotspot[0] && prev.sprite.hotspot[1] === sprite.hotspot[1] && prev.sprite.size[0] === sprite.size[0] && prev.sprite.size[1] === sprite.size[1]; + cursor = { + x: opts.start ? opts.start[0] : prev ? prev.x : -1, + y: opts.start ? opts.start[1] : prev ? prev.y : -1, + vw: prev ? prev.vw : 0, + vh: prev ? prev.vh : 0, + speed: opts.speed ?? 240, + dpadSpeed: opts.dpadSpeed ?? 0, + button: opts.button ?? BTN.CIRCLE, + pressTarget: null, + tex: prev ? prev.tex : -1, + sprite, + spriteDirty: !sameSprite, + target: null, + gen: -1, + fresh: true + }; + return disableCursor; + } + function disableCursor() { + if (!cursor) + return; + const c = cursor; + cursor = null; + setPressedNode(null); + if (focused) + focusNode(null); + if (c.tex >= 0) { + const ops = getOps(); + ops.setCursor?.(-1, 0, 0, 0, 0); + ops.freeTexture?.(c.tex); + } + } + function cursorInitSprite(c, ops) { + const sprite = c.sprite; + c.spriteDirty = false; + const old = c.tex; + let tex = -1; + let blob = null; + if (typeof sprite.image === "string") { + try { + blob = get(sprite.image); + } catch (err) { + if (getHost().strict) + throw err; + blob = null; + } + } else if (sprite.image) { + blob = sprite.image; + } + if (blob) { + tex = ops.uploadImgEntry ? ops.uploadImgEntry(blob) : uploadImgFallback(ops, blob); + if (tex < 0 && getHost().strict) { + throw new Error("enableCursor: cursor image rejected (malformed or RLE-only IMG entry)"); + } + } + if (tex < 0) { + tex = ops.uploadTexture(defaultArrowRGBA(), 16, 16, PSM.PSM_8888); + } + c.tex = tex; + ops.setCursor(tex, sprite.hotspot[0], sprite.hotspot[1], sprite.size[0], sprite.size[1]); + if (old >= 0 && old !== tex) + ops.freeTexture?.(old); + } + function uploadImgFallback(ops, blob) { + if (blob.length < 8) + return -1; + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + if (blob[5] & IMG_FLAG_RLE) + return -1; + return ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); + } + function findMirror(node, id) { + if (!node || id === 0) + return null; + if (node.id === id) + return node; + const kids = node.children; + if (!Array.isArray(kids)) + return null; + for (let i = 0;i < kids.length; i++) { + const found = findMirror(kids[i], id); + if (found) + return found; + } + return null; + } + var hitRoot = null; + function setHitRoot(r) { + hitRoot = r; + } + function cursorTarget(hit) { + const scope = focusScopeStack.length > 0 ? focusScopeStack[focusScopeStack.length - 1] : null; + let n = hit; + while (n) { + if (n.focusable && (!scope || isWithin(n, scope))) + return n; + n = n.parent; + } + return null; + } + function cursorFrame(buttons, pressed, released) { + const c = cursor; + const ops = getOps(); + if (!ops.hitTest || !ops.setCursor || !ops.setCursorPos) + return false; + if (c.vw === 0) { + const vp = hostViewport(ops); + c.vw = vp ? vp.w : SCREEN_W; + c.vh = vp ? vp.h : SCREEN_H; + if (c.x < 0) { + c.x = Math.floor(c.vw / 2); + c.y = Math.floor(c.vh / 2); + } + } + if (c.spriteDirty) + cursorInitSprite(c, ops); + let vx = analogX() * c.speed; + let vy = analogY() * c.speed; + if (c.dpadSpeed > 0 && vx === 0 && vy === 0) { + if (buttons & BTN.LEFT) + vx = -c.dpadSpeed; + if (buttons & BTN.RIGHT) + vx = c.dpadSpeed; + if (buttons & BTN.UP) + vy = -c.dpadSpeed; + if (buttons & BTN.DOWN) + vy = c.dpadSpeed; + } + let moved = c.fresh; + if (vx !== 0 || vy !== 0) { + const dt = ticksPerFrame() / 60; + const nx = Math.min(Math.max(c.x + vx * dt, 0), c.vw - 1); + const ny = Math.min(Math.max(c.y + vy * dt, 0), c.vh - 1); + if (nx !== c.x || ny !== c.y) { + c.x = nx; + c.y = ny; + moved = true; + } + } + if (moved) + ops.setCursorPos(c.x, c.y); + const edges = (pressed | released) & c.button; + const gen = inputGen; + if (moved || edges !== 0 || gen !== c.gen) { + c.gen = gen; + c.fresh = false; + c.target = cursorTarget(findMirror(hitRoot ?? root, ops.hitTest(c.x, c.y))); + } + const target = c.target; + if (target !== focused) + focusNode(target); + if (pressed & c.button && target) { + c.pressTarget = target; + } + if (c.pressTarget) { + setPressedNode(target === c.pressTarget ? c.pressTarget : null); + if (released & c.button) { + const fire = target === c.pressTarget; + c.pressTarget = null; + setPressedNode(null); + if (fire) + firePress(); + } + } else if (released & c.button) { + setPressedNode(null); + } + return true; + } + function handleFrame(buttons) { + const pressed = buttons & ~prevButtons; + const released = prevButtons & ~buttons; + prevButtons = buttons; + if (cursor && cursorFrame(buttons, pressed, released)) + return; + if (released & BTN.CIRCLE) + setPressedNode(null); + if (pressed === 0) + return; + if (pressed & BTN.DOWN) + moveFocus("down"); + if (pressed & BTN.RIGHT) + moveFocus("right"); + if (pressed & BTN.UP) + moveFocus("up"); + if (pressed & BTN.LEFT) + moveFocus("left"); + if (pressed & BTN.CIRCLE) { + setPressedNode(focused); + firePress(); + } + } + + // framework/src/native-tree.ts + var treeMutationHook = null; + function setTreeMutationHook(fn) { + treeMutationHook = fn; + } + function treeMutated() { + __notifyTreeMutation(); + if (treeMutationHook) + treeMutationHook(); + } + function setDebugName(node, name) { + node.debugName = name || undefined; + treeMutated(); + } + var rootMirror = { + id: ROOT_ID, + type: NODE_TYPE.view, + parent: null, + children: [], + domNodeType: 1, + domTag: "root" + }; + var DOM_NODE = Symbol.for("pocketjs.native-node"); + var DOM_ELEMENT = 1; + var DOM_TEXT = 3; + var DOM_COMMENT = 8; + var NATIVE_ATTRIBUTE_NAMES = new Set(["class", "className", "style", "src", "onPress", "on:press", "focusable", "debugName", "ref", "nodeRef", "key", "children"]); + function domAttrs(node) { + return node.domAttrs ??= {}; + } + function cloneNativeNode(node, deep) { + const nodeType = node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); + const clone = nodeType === DOM_TEXT ? createTextNode(node.text ?? "") : nodeType === DOM_COMMENT ? createCommentNode(node.domData ?? "") : createElement(node.domTag ?? tagName(node)); + for (const key of Object.keys(node.domAttrs ?? {})) { + setDomAttribute(clone, key, node.domAttrs[key]); + } + if (deep) { + for (const child of node.children) + insertNode(clone, cloneNativeNode(child, true)); + } + return clone; + } + function setDomAttribute(node, name, value) { + if (NATIVE_ATTRIBUTE_NAMES.has(name)) { + setProp(node, name, value, node.domAttrs?.[name]); + return; + } + if (value == null) + delete domAttrs(node)[name]; + else + domAttrs(node)[name] = value; + } + function decorateNativeNode(node) { + if (node[DOM_NODE] === true) + return node; + Object.defineProperty(node, DOM_NODE, { + value: true + }); + Object.defineProperties(node, { + nodeType: { + configurable: true, + get() { + return node.domNodeType ?? (isTextNode(node) ? DOM_TEXT : DOM_ELEMENT); + } + }, + nodeValue: { + configurable: true, + get() { + return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; + }, + set(value) { + if (node.domNodeType === DOM_COMMENT) + node.domData = String(value ?? ""); + else + replaceText(node, String(value ?? "")); + } + }, + data: { + configurable: true, + get() { + return node.domNodeType === DOM_COMMENT ? node.domData ?? "" : node.text ?? ""; + }, + set(value) { + if (node.domNodeType === DOM_COMMENT) + node.domData = String(value ?? ""); + else + replaceText(node, String(value ?? "")); + } + }, + textContent: { + configurable: true, + get() { + if (node.domNodeType === DOM_COMMENT) + return node.domData ?? ""; + if (isTextNode(node)) + return node.text ?? ""; + return node.children.map((child) => child.text ?? "").join(""); + }, + set(value) { + const text = String(value ?? ""); + if (node.domNodeType === DOM_COMMENT) { + node.domData = text; + } else if (isTextNode(node)) { + replaceText(node, text); + } else { + clearContainer(node); + if (text) + insertNode(node, createTextNode(text)); + } + } + }, + parentNode: { + configurable: true, + get() { + return node.parent; + } + }, + parentElement: { + configurable: true, + get() { + return node.parent; + } + }, + childNodes: { + configurable: true, + get() { + return node.children; + } + }, + firstChild: { + configurable: true, + get() { + return node.children[0] ?? null; + } + }, + lastChild: { + configurable: true, + get() { + return node.children[node.children.length - 1] ?? null; + } + }, + nextSibling: { + configurable: true, + get() { + return getNextSibling(node) ?? null; + } + }, + previousSibling: { + configurable: true, + get() { + const parent = node.parent; + if (!parent) + return null; + const index = parent.children.indexOf(node); + return index > 0 ? parent.children[index - 1] : null; + } + }, + tagName: { + configurable: true, + get() { + return (node.domTag ?? tagName(node)).toUpperCase(); + } + }, + nodeName: { + configurable: true, + get() { + if (node.domNodeType === DOM_TEXT) + return "#text"; + if (node.domNodeType === DOM_COMMENT) + return "#comment"; + return (node.domTag ?? tagName(node)).toUpperCase(); + } + }, + className: { + configurable: true, + get() { + return String(node.domAttrs?.class ?? ""); + }, + set(value) { + setProp(node, "class", value, node.domAttrs?.class); + } + }, + isConnected: { + configurable: true, + get() { + let current2 = node; + while (current2) { + if (current2 === rootMirror) + return true; + current2 = current2.parent; + } + return false; + } + } + }); + const methods = { + appendChild(child) { + insertNode(node, child); + return child; + }, + insertBefore(child, anchor) { + insertNode(node, child, anchor ?? null); + return child; + }, + removeChild(child) { + removeNode(node, child); + return child; + }, + replaceChild(next, current2) { + insertNode(node, next, current2); + removeNode(node, current2); + return current2; + }, + cloneNode(deep = false) { + return cloneNativeNode(node, !!deep); + }, + remove() { + if (node.parent) + removeNode(node.parent, node); + }, + setAttribute(name, value) { + setDomAttribute(node, name, value); + }, + removeAttribute(name) { + setDomAttribute(node, name, undefined); + }, + getAttribute(name) { + const value = node.domAttrs?.[name]; + return value == null ? null : String(value); + }, + hasAttribute(name) { + return node.domAttrs?.[name] != null; + }, + hasChildNodes() { + return node.children.length > 0; + }, + contains(other) { + let current2 = other ?? null; + while (current2) { + if (current2 === node) + return true; + current2 = current2.parent; + } + return false; + }, + addEventListener() {}, + removeEventListener() {} + }; + Object.assign(node, methods, { + style: { + length: 0, + item: () => "" + }, + classList: { + add() {}, + remove() {} + } + }); + return node; + } + decorateNativeNode(rootMirror); + var styleResolver = null; + function setStyleResolver(fn) { + styleResolver = fn; + } + var missCounters = { + unknownClass: 0, + unknownTexture: 0 + }; + var textures = new Map; + function registerTexture(key, handle) { + textures.set(key, handle); + } + var sprites = new Map; + function registerSprite(key, meta) { + sprites.set(key, meta); + } + var sweepSet = new Set; + var retained = new Set; + function subtreeHasRetained(node) { + if (!node) + return false; + if (retained.has(node)) + return true; + if (node.children) { + for (let i = 0;i < node.children.length; i++) { + if (subtreeHasRetained(node.children[i])) + return true; + } + } + return false; + } + function runSweep() { + if (sweepSet.size === 0) + return; + const ops = getOps(); + const keep = []; + for (const node of sweepSet) { + if (!node) + continue; + if (node.parent !== null) + continue; + if (subtreeHasRetained(node)) { + keep.push(node); + continue; + } + ops.destroyNode(node.id); + } + sweepSet.clear(); + for (let i = 0;i < keep.length; i++) + sweepSet.add(keep[i]); + } + function createElement(tag) { + const type = NODE_TYPE[tag]; + if (type === undefined) { + throw new Error(`PocketJS: unknown element <${tag}> - only view/text/image exist`); + } + return decorateNativeNode({ + id: getOps().createNode(type), + type, + parent: null, + children: [], + domNodeType: DOM_ELEMENT, + domTag: tag + }); + } + function createTextNode(value) { + const ops = getOps(); + const id = ops.createNode(NODE_TYPE.text); + ops.setText(id, value); + return decorateNativeNode({ + id, + type: NODE_TYPE.text, + parent: null, + children: [], + text: value, + domNodeType: DOM_TEXT, + domTag: "#text" + }); + } + function createCommentNode(data = "") { + const node = createTextNode(""); + node.domNodeType = DOM_COMMENT; + node.domTag = "#comment"; + node.domData = data; + return node; + } + function replaceText(node, value) { + getOps().replaceText(node.id, value); + node.text = value; + treeMutated(); + } + function isTextNode(node) { + return node.type === NODE_TYPE.text; + } + function unlink(node) { + const p = node.parent; + if (!p) + return; + const i = p.children.indexOf(node); + if (i >= 0) + p.children.splice(i, 1); + node.parent = null; + } + function insertNode(parent, node, anchor) { + const ops = getOps(); + unlink(node); + sweepSet.delete(node); + ops.insertBefore(parent.id, node.id, anchor ? anchor.id : 0); + if (anchor) { + const i = parent.children.indexOf(anchor); + if (i < 0) + throw new Error("PocketJS: insert anchor is not a child of parent"); + parent.children.splice(i, 0, node); + } else { + parent.children.push(node); + } + node.parent = parent; + treeMutated(); + } + function removeNode(parent, node) { + if (!node) + return; + notifyDetached(node); + getOps().removeChild(parent.id, node.id); + unlink(node); + sweepSet.add(node); + treeMutated(); + } + function getParentNode(node) { + return node.parent ?? undefined; + } + function getFirstChild(node) { + return node.children[0]; + } + function getNextSibling(node) { + const p = node.parent; + if (!p) + return; + const i = p.children.indexOf(node); + return i >= 0 ? p.children[i + 1] : undefined; + } + function setClass(node, value) { + const ops = getOps(); + treeMutated(); + if (value == null || value === "") { + ops.setStyle(node.id, STYLE_ID_NONE); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: class must be a string literal of utilities"); + } + const styleId = styleResolver ? styleResolver(value) : undefined; + if (styleId === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown class "${value}" - not in the compiled style table ` + "(dynamic classes must be ternaries of full literals)"); + } + missCounters.unknownClass++; + return; + } + ops.setStyle(node.id, styleId); + } + function setSrc(node, value) { + const ops = getOps(); + if (value == null || value === "") { + ops.setImage(node.id, -1); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: src must be a string key"); + } + const handle = textures.get(value); + if (handle === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown image src "${value}" - no texture registered under that key`); + } + missCounters.unknownTexture++; + return; + } + ops.setImage(node.id, handle); + } + function setSpriteSrc(node, value) { + const ops = getOps(); + if (value == null || value === "") { + ops.setSprite(node.id, -1, 0, 0, 0); + return; + } + if (typeof value !== "string") { + throw new Error("PocketJS: sprite must be a string key"); + } + const meta = sprites.get(value); + if (meta === undefined) { + if (getHost().strict) { + throw new Error(`PocketJS: unknown sprite "${value}" - no sprite atlas registered under that key`); + } + missCounters.unknownTexture++; + return; + } + ops.setSprite(node.id, meta.handle, meta.frames, meta.cols, meta.step); + } + function setStyleObject(node, value, prev) { + const ops = getOps(); + const next = value ?? {}; + const before = prev ?? {}; + let changed = false; + for (const key in next) { + const v = next[key]; + if (before[key] === v) + continue; + const propId = PROP[key]; + if (propId === undefined) { + throw new Error(`PocketJS: unknown style prop '${key}' (see spec PROP)`); + } + ops.setProp(node.id, propId, encodePropValue(key, v)); + changed = true; + } + if (changed) + treeMutated(); + } + function setProp(node, name, value, prev) { + if (value === prev && name !== "style") + return value; + if (name === "className") + name = "class"; + if (name !== "children" && name !== "key" && name !== "ref" && name !== "nodeRef") { + if (value == null) + delete domAttrs(node)[name]; + else + domAttrs(node)[name] = value; + } + switch (name) { + case "class": + setClass(node, value); + return value; + case "onPress": + case "on:press": + registerPress(node, value); + return value; + case "src": + setSrc(node, value); + return value; + case "sprite": + setSpriteSrc(node, value); + return value; + case "style": + setStyleObject(node, value, prev); + return value; + case "focusable": + registerFocusable(node, !!value); + return value; + case "debugName": + setDebugName(node, value == null ? undefined : String(value)); + return value; + case "ref": + case "nodeRef": + case "key": + case "children": + return value; + default: + break; + } + if (name === "classList") { + throw new Error("PocketJS: classList is not supported - use ternaries of full class literals"); + } + if (name.startsWith("on:") || name.startsWith("bool:") || name.startsWith("prop:")) { + throw new Error(`PocketJS: unsupported namespaced attribute '${name}'`); + } + throw new Error(`PocketJS: unknown property '${name}' on <${tagName(node)}>`); + } + function clearContainer(container) { + for (const child of [...container.children]) + removeNode(container, child); + } + function tagName(node) { + for (const key of Object.keys(NODE_TYPE)) { + if (NODE_TYPE[key] === node.type) + return key; + } + return String(node.type); + } + + // framework/src/renderer-solid.ts + function setProperty(node, name, value, prev) { + if (name === "ref" && typeof value === "function") { + value(node); + return; + } + setProp(node, name, value, prev); + } + var renderer = createRenderer({ + createElement, + createTextNode, + replaceText, + isTextNode, + setProperty, + insertNode(parent, node, anchor) { + insertNode(parent, node, anchor); + }, + removeNode(parent, node) { + removeNode(parent, node); + }, + getParentNode, + getFirstChild, + getNextSibling + }); + var { + render, + effect, + memo: memo2, + createComponent: createComponent2, + createElement: createElement2, + insert, + spread, + mergeProps: mergeProps2, + use + } = renderer; + + // framework/src/anim.ts + var EASING_BY_NAME = { + linear: ENUMS.Easing.Linear, + in: ENUMS.Easing.EaseIn, + out: ENUMS.Easing.EaseOut, + "in-out": ENUMS.Easing.EaseInOut, + "out-back": ENUMS.Easing.OutBack, + spring: ENUMS.Easing.Spring, + "spring-bouncy": ENUMS.Easing.SpringBouncy + }; + + // framework/src/overlay.ts + var overlayRoot = null; + function setOverlayRoot(root2) { + overlayRoot = root2; + } + // framework/src/primitives.ts + function callRef(ref, node) { + if (!ref) + return; + if (typeof ref === "function") + ref(node); + else if ("current" in ref) + ref.current = node; + } + function primitive(tag, props) { + const el = createElement2(tag); + spread(el, props, false); + callRef(props.nodeRef, el); + return el; + } + function View(props) { + return primitive("view", props); + } + function Text(props) { + return primitive("text", props); + } + // framework/src/hot.ts + var lastText = new WeakMap; + var lastProp = new WeakMap; + + // framework/src/platform.ts + var features = {} !== null ? Object.freeze({ + ...{} + }) : Object.freeze({}); + var platform = Object.freeze({ + target: "", + pixelRatio: Number.isInteger(1) ? 1 : 1, + features + }); + + // framework/src/tiles.ts + var parsed = new Map; + // apps/cursor/app.tsx + var ROWS = ["REPLAY TAPE", "OPEN MEMORY STICK", "LAUNCH SHELL"]; + function CursorDemo() { + const [status, setStatus] = createSignal("hover a row, press CIRCLE"); + return createComponent2(View, { + class: "w-full h-full flex-col items-center justify-center gap-[10] bg-[#008080]", + get children() { + return [createComponent2(View, { + debugName: "Panel", + class: "w-[240] flex-col gap-[8]", + get children() { + return ROWS.map((label) => createComponent2(View, { + debugName: label, + focusable: true, + onPress: () => setStatus(label), + class: "h-[24] flex-col justify-center items-center bg-[#c0c0c0] bevel-[#ffffff,#000000,#dfdfdf,#808080] focus:bg-[#d2cec6] active:bevel-[#000000,#ffffff,#808080,#dfdfdf]", + get children() { + return createComponent2(Text, { + class: "text-xs text-black", + children: label + }); + } + })); + } + }), createComponent2(View, { + debugName: "Status", + class: "h-[18] pl-[8] pr-[8] flex-col justify-center bg-[#c0c0c0] bevel-[#808080,#ffffff]", + get children() { + return createComponent2(Text, { + class: "text-xs text-black", + get children() { + return status(); + } + }); + } + })]; + } + }); + } + + // framework/src/devtools.ts + var TAPE_CAP = 36000; + var TREE_THROTTLE = 30; + var STATS_EVERY = 30; + var state = { + ops: null, + transport: null, + app: undefined, + frame: 0, + tape: new Uint16Array(TAPE_CAP), + tapeAnalog: new Uint16Array(TAPE_CAP), + tapeStart: 0, + tapeLen: 0, + tapeFirstFrame: 0, + replayMasks: null, + replayAnalog: null, + replayAt: 0, + paused: false, + stepQueued: 0, + inspectReportId: null, + inspectAskedAt: 0, + treeDirty: true, + treeSentAt: -TREE_THROTTLE, + saidHello: false, + hostCalls: 0 + }; + function initDevtools(ops) { + const g = globalThis; + if (!g.console) + g.console = { + log() {}, + warn() {}, + error() {} + }; + state.ops = ops; + state.frame = 0; + state.tapeStart = 0; + state.tapeLen = 0; + state.tapeFirstFrame = 0; + state.replayMasks = null; + state.replayAnalog = null; + state.paused = false; + state.stepQueued = 0; + state.inspectReportId = null; + state.inspectAskedAt = 0; + state.treeDirty = true; + state.treeSentAt = -TREE_THROTTLE; + state.saidHello = false; + state.hostCalls = 0; + state.app = globalThis.__pocketApp; + const injected = globalThis.__pocketDevtoolsTransport; + if (injected) { + state.transport = injected; + } else if (ops.__dbgActive?.() && ops.__dbgPoll && ops.__dbgSend) { + state.transport = { + send: (l) => ops.__dbgSend(l), + recv: () => ops.__dbgPoll(), + everyFrames: 10 + }; + } else { + state.transport = null; + } + if (state.transport) { + setTreeMutationHook(() => { + state.treeDirty = true; + }); + bridgeConsole(); + } else { + setTreeMutationHook(null); + } + globalThis.__pocketDevtools = api; + } + function wrapFrameHandler(h) { + return (buttons, analogArg, touchArg) => { + state.hostCalls++; + if (state.transport) { + pollTransport(); + flushInspectReport(); + } + let mask = buttons; + let analog = analogArg === undefined ? ANALOG_CENTER : analogArg & 65535; + let touch = touchArg; + if (state.replayMasks) { + if (state.replayAt < state.replayMasks.length) { + mask = state.replayMasks[state.replayAt]; + analog = state.replayAnalog ? state.replayAnalog[state.replayAt] : ANALOG_CENTER; + touch = undefined; + state.replayAt++; + } else { + state.replayMasks = null; + state.replayAnalog = null; + send({ + t: "replayDone", + frame: state.frame + }); + } + } + if (state.paused) { + if (state.stepQueued <= 0) + return; + state.stepQueued--; + state.ops?.debugStep?.(); + } + recordMask(mask, analog); + state.frame++; + try { + h(mask, analog, touch); + } catch (e) { + send({ + t: "error", + frame: state.frame, + message: e instanceof Error ? e.message : String(e), + stack: e instanceof Error ? e.stack : undefined + }); + throw e; + } + if (state.transport) + afterFrame(); + }; + } + function recordMask(mask, analog) { + if (state.tapeLen < TAPE_CAP) { + const at = (state.tapeStart + state.tapeLen) % TAPE_CAP; + state.tape[at] = mask; + state.tapeAnalog[at] = analog; + state.tapeLen++; + } else { + state.tape[state.tapeStart] = mask; + state.tapeAnalog[state.tapeStart] = analog; + state.tapeStart = (state.tapeStart + 1) % TAPE_CAP; + state.tapeFirstFrame++; + } + } + function rlePairs(ring) { + const out = []; + for (let i = 0;i < state.tapeLen; i++) { + const v = ring[(state.tapeStart + i) % TAPE_CAP]; + const last = out[out.length - 1]; + if (last && last[0] === v) + last[1]++; + else + out.push([v, 1]); + } + return out; + } + function exportTape() { + const tape = { + v: 1, + app: state.app, + frames: state.tapeLen, + masks: rlePairs(state.tape), + startFrame: state.tapeFirstFrame + }; + const analog = rlePairs(state.tapeAnalog); + if (analog.length > 1 || analog.length === 1 && analog[0][0] !== ANALOG_CENTER) { + tape.analog = analog; + } + return tape; + } + function expandPairs(pairs, fill, total) { + const out = new Uint16Array(total).fill(fill); + let at = 0; + for (const [v, n] of pairs) { + out.fill(v, at, Math.min(at + n, total)); + at += n; + } + return out; + } + function expandTape(tape) { + let total = 0; + for (const [, n] of tape.masks) + total += n; + return expandPairs(tape.masks, 0, total); + } + function expandTapeAnalog(tape) { + let total = 0; + for (const [, n] of tape.masks) + total += n; + return expandPairs(tape.analog ?? [], ANALOG_CENTER, total); + } + function send(msg) { + try { + state.transport?.send(JSON.stringify(msg)); + } catch {} + } + function pollTransport() { + const t = state.transport; + const every = t.everyFrames ?? 1; + if (every > 1 && state.hostCalls % every !== 0) + return; + if (!state.saidHello) { + state.saidHello = true; + send({ + t: "hello", + app: state.app, + host: hostKind(), + frame: state.frame + }); + } + for (let guard = 0;guard < 64; guard++) { + const chunk = t.recv(); + if (!chunk) + break; + for (const line of chunk.split(` +`)) { + if (line.trim()) + handleMessage(line); + } + } + } + function handleMessage(line) { + let msg; + try { + msg = JSON.parse(line); + } catch { + return; + } + const ops = state.ops; + switch (msg.t) { + case "inspect": { + const id = typeof msg.id === "number" ? msg.id : 0; + ops?.debugInspect?.(id); + state.inspectReportId = id || null; + state.inspectAskedAt = state.hostCalls; + if (!id) + send({ + t: "inspect", + id: 0, + rect: null + }); + break; + } + case "pause": + state.paused = true; + state.stepQueued = 0; + ops?.debugPause?.(true); + sendStats(); + break; + case "resume": + state.paused = false; + ops?.debugPause?.(false); + sendStats(); + break; + case "step": + state.stepQueued += typeof msg.n === "number" && msg.n > 0 ? msg.n : 1; + break; + case "getTree": + sendTree(); + break; + case "eval": { + let ok = true; + let value; + try { + value = fmt((0, eval)(String(msg.code))); + } catch (e) { + ok = false; + value = e instanceof Error ? `${e.name}: ${e.message}` : String(e); + } + send({ + t: "evalResult", + id: msg.id, + ok, + value + }); + break; + } + case "dumpTape": + send({ + t: "tape", + tape: exportTape() + }); + break; + case "devStats": { + let data = null; + const raw = ops?.debugStats?.(); + if (raw) { + try { + data = JSON.parse(raw); + } catch { + data = null; + } + } + send({ + t: "devStats", + frame: state.frame, + data + }); + break; + } + case "screenshot": { + if (ops?.__dbgShot?.()) { + send({ + t: "screenshotRaw", + file: "shot.raw", + w: 480, + h: 272, + stride: 512, + frame: state.frame + }); + } else { + send({ + t: "log", + level: "warn", + args: ["screenshot: not supported on this host"] + }); + } + break; + } + case "replay": { + const tape = msg.tape; + if (tape && Array.isArray(tape.masks)) { + state.replayMasks = expandTape(tape); + state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; + state.replayAt = 0; + } + break; + } + default: + break; + } + } + function afterFrame() { + if (state.treeDirty && state.frame - state.treeSentAt >= TREE_THROTTLE) { + sendTree(); + } + if (state.frame % STATS_EVERY === 0) + sendStats(); + } + function flushInspectReport() { + const id = state.inspectReportId; + if (id == null) + return; + const ops = state.ops; + if (!ops?.debugRectXY || !ops.debugRectWH) { + state.inspectReportId = null; + return; + } + const xy = ops.debugRectXY(); + if (xy === -1) { + if (state.hostCalls - state.inspectAskedAt > 60) { + state.inspectReportId = null; + send({ + t: "inspect", + id, + rect: null + }); + } + return; + } + const wh = ops.debugRectWH(); + state.inspectReportId = null; + send({ + t: "inspect", + id, + rect: [xy << 16 >> 16, xy >> 16, wh & 65535, wh >> 16 & 65535] + }); + } + function sendStats() { + send({ + t: "stats", + frame: state.frame, + nodes: countNodes(rootMirror), + tapeLen: state.tapeLen, + paused: state.paused + }); + } + function sendTree() { + state.treeDirty = false; + state.treeSentAt = state.frame; + send({ + t: "tree", + frame: state.frame, + root: serializeNode(rootMirror) + }); + } + function isTreeMirror(value) { + if (value == null || typeof value !== "object") + return false; + const candidate = value; + return typeof candidate.id === "number" && typeof candidate.type === "number"; + } + function forEachTreeMirror(value, visit) { + if (Array.isArray(value)) { + for (const entry of value) + forEachTreeMirror(entry, visit); + return; + } + if (isTreeMirror(value)) { + visit(value); + return; + } + if (value != null && typeof value === "object") { + const nodes = value.nodes; + if (nodes !== undefined) + forEachTreeMirror(nodes, visit); + } + } + function forEachTreeChild(node, visit) { + const children2 = Array.isArray(node.children) ? node.children : []; + for (const child of children2) + forEachTreeMirror(child, visit); + } + function serializeNode(node) { + const out = { + i: node.id, + t: node.domTag ?? String(node.type) + }; + if (node.debugName) + out.n = node.debugName; + const cls = node.domAttrs?.class; + if (typeof cls === "string" && cls) + out.c = cls; + if (node.text) + out.x = node.text.length > 80 ? node.text.slice(0, 79) + "…" : node.text; + const kids = []; + forEachTreeChild(node, (child) => { + if (child.domNodeType === 8) + return; + kids.push(serializeNode(child)); + }); + if (kids.length) + out.k = kids; + return out; + } + function countNodes(node) { + let n = 1; + forEachTreeChild(node, (child) => { + n += countNodes(child); + }); + return n; + } + function bridgeConsole() { + const g = globalThis; + if (!g.console) + g.console = {}; + const c = g.console; + if (c.__pocketBridged) + return; + c.__pocketBridged = true; + for (const level of ["log", "warn", "error"]) { + const original = c[level]; + c[level] = (...args) => { + send({ + t: "log", + level, + args: args.map((a) => fmt(a)) + }); + original?.apply(c, args); + }; + } + } + function fmt(v, depth = 0) { + if (v === undefined) + return "undefined"; + if (v === null) + return "null"; + const t = typeof v; + if (t === "string") { + const s = v; + return depth === 0 ? clip(s) : JSON.stringify(clip(s)); + } + if (t === "number" || t === "boolean" || t === "bigint") + return String(v); + if (t === "function") { + const name = v.name; + return name ? `[function ${name}]` : "[function]"; + } + if (depth >= 3) + return Array.isArray(v) ? "[…]" : "{…}"; + if (Array.isArray(v)) { + const items = v.slice(0, 20).map((x) => fmt(x, depth + 1)); + if (v.length > 20) + items.push(`… ${v.length - 20} more`); + return `[${items.join(", ")}]`; + } + if (v instanceof Error) + return `${v.name}: ${v.message}`; + const entries2 = Object.entries(v).slice(0, 20); + const body = entries2.map(([k, x]) => `${k}: ${fmt(x, depth + 1)}`).join(", "); + return `{${body}}`; + } + function clip(s) { + return s.length > 200 ? s.slice(0, 199) + "…" : s; + } + function hostKind() { + const ops = state.ops; + if (typeof ops?.__host === "string") + return ops.__host; + if (ops?.__textures !== undefined) + return "psp"; + if (typeof globalThis.document !== "undefined") + return "web"; + return "headless"; + } + var api = { + get frame() { + return state.frame; + }, + dumpTape: () => exportTape(), + replay: (tape) => { + state.replayMasks = expandTape(tape); + state.replayAnalog = tape.analog ? expandTapeAnalog(tape) : null; + state.replayAt = 0; + } + }; + + // framework/src/styles.ts + var verbatim = new Map; + var sortedAlias = new Map; + function normalize(cls) { + return cls.trim().replace(/\s+/g, " "); + } + function sortTokens(normalized) { + return normalized.split(" ").sort().join(" "); + } + var ALIAS_AMBIGUOUS = -1; + function registerStyles(table) { + for (const key of Object.keys(table)) { + const id = table[key]; + const norm = normalize(key); + verbatim.set(norm, id); + const sorted = sortTokens(norm); + const prev = sortedAlias.get(sorted); + sortedAlias.set(sorted, prev !== undefined && prev !== id ? ALIAS_AMBIGUOUS : id); + } + } + function resolveStyle(cls) { + const norm = normalize(cls); + const hit = verbatim.get(norm); + if (hit !== undefined) + return hit; + const alias = sortedAlias.get(sortTokens(norm)); + return alias === ALIAS_AMBIGUOUS ? undefined : alias; + } + + // framework/src/touch.ts + var LEGACY_COORD_BITS = 9; + var LEGACY_COORD_MASK = (1 << LEGACY_COORD_BITS) - 1; + var LEGACY_ID_SHIFT = LEGACY_COORD_BITS * 2; + var WIDE_MARKER = 2147483648; + var WIDE_COORD_BITS = 10; + var WIDE_COORD_MASK = (1 << WIDE_COORD_BITS) - 1; + var WIDE_ID_SHIFT = WIDE_COORD_BITS * 2; + var EMPTY = Object.freeze([]); + var snapshot = EMPTY; + function __setTouches(packed) { + if (!packed || packed.length === 0) { + snapshot = EMPTY; + return; + } + snapshot = Object.freeze(packed.slice(0, 8).map((value) => { + const wide = (value & WIDE_MARKER) !== 0; + const coordBits = wide ? WIDE_COORD_BITS : LEGACY_COORD_BITS; + const coordMask = wide ? WIDE_COORD_MASK : LEGACY_COORD_MASK; + const idShift = wide ? WIDE_ID_SHIFT : LEGACY_ID_SHIFT; + return Object.freeze({ + id: value >>> idShift & 255, + x: value & coordMask, + y: value >>> coordBits & coordMask + }); + })); + } + function __resetTouches() { + snapshot = EMPTY; + } + + // framework/src/effects.ts + var nextId = 1; + var pending = new Map; + var queue = []; + function traceSink() { + const s = globalThis.__pocketEffectTrace; + return typeof s === "function" ? s : null; + } + function resetEffects() { + nextId = 1; + pending.clear(); + queue = []; + } + function __drainEffects() { + if (queue.length === 0) + return; + const batch = queue; + queue = []; + for (const { + id, + result + } of batch) { + const entry = pending.get(id); + if (!entry) + continue; + pending.delete(id); + traceSink()?.({ + t: "delivery", + frame: virtualFrame(), + id, + kind: entry.kind + }); + entry.onResult(result); + } + } + + // framework/src/styles.generated.ts + var STYLE_IDS = { + "w-full h-full flex-col items-center justify-center gap-[10] bg-[#008080]": 0, + "w-[240] flex-col gap-[8]": 1, + "h-[24] flex-col justify-center items-center bg-[#c0c0c0] bevel-[#ffffff,#000000,#dfdfdf,#808080] focus:bg-[#d2cec6] active:bevel-[#000000,#ffffff,#808080,#dfdfdf]": 2, + "text-xs text-black": 3, + "h-[18] pl-[8] pr-[8] flex-col justify-center bg-[#c0c0c0] bevel-[#808080,#ffffff]": 4, + "relative flex-col w-full h-full bg-slate-50 overflow-hidden": 5, + "absolute inset-0 z-50 flex-col items-center justify-center": 6, + "absolute inset-0 bg-slate-950": 7, + "flex-col gap-2 w-[328] p-3 rounded-xl shadow-lg bg-white border-slate-200": 8, + "absolute left-3 right-3 bottom-3 flex-row items-center justify-between px-2 py-1 rounded-lg shadow-md bg-white border-slate-200": 9, + "flex-row flex-wrap": 10, + grow: 11 + }; + + // framework/src/index.ts + if (typeof globalThis.queueMicrotask !== "function") { + globalThis.queueMicrotask = (fn) => { + Promise.resolve().then(fn); + }; + } + var STYLES_KEY = "ui:styles"; + var FONT_PREFIX = "ui:font."; + var IMG_PREFIX = "ui:img."; + var SPRITE_PREFIX = "ui:sprite."; + function globalOps() { + return globalThis.ui; + } + function uploadPakImages(ops) { + if (ops.__textures) + return; + for (const key of entries(IMG_PREFIX)) { + const blob = get(key); + let handle; + if (ops.uploadImgEntry) { + handle = ops.uploadImgEntry(blob); + } else { + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + handle = ops.uploadTexture(blob.subarray(8), dv.getUint16(0, true), dv.getUint16(2, true), blob[4]); + } + if (handle >= 0) + registerTexture(key.slice(IMG_PREFIX.length), handle); + } + } + function uploadPakSprites(ops) { + if (ops.__sprites) + return; + for (const key of entries(SPRITE_PREFIX)) { + const blob = get(key); + const dv = new DataView(blob.buffer, blob.byteOffset, blob.byteLength); + const w = dv.getUint16(0, true); + const h = dv.getUint16(2, true); + const psm = blob[4]; + const frames = dv.getUint16(6, true); + const cols = dv.getUint16(8, true); + const step = dv.getUint16(10, true); + const handle = ops.uploadTexture(blob.subarray(16), w, h, psm); + if (handle >= 0) { + registerSprite(key.slice(SPRITE_PREFIX.length), { + handle, + frames, + cols, + step + }); + } + } + } + function createLayer(style) { + const layer = createElement2("view"); + setProp(layer, "style", style, undefined); + return layer; + } + var appLayer = null; + var overlayLayer = null; + function resizeViewport(w, h) { + if (!appLayer || !overlayLayer) + return; + setProp(appLayer, "style", { + width: w, + height: h, + overflow: ENUMS.Overflow.Hidden + }, undefined); + setProp(overlayLayer, "style", { + width: w, + height: h, + posType: ENUMS.PosType.Absolute, + insetT: 0, + insetR: 0, + insetB: 0, + insetL: 0, + zIndex: 1000 + }, undefined); + const ops = getOps(); + ops.__viewport = { + w, + h + }; + } + function render2(code, opts = {}) { + const host = detectHost(opts.ops); + installHost(host); + setStyleResolver(resolveStyle); + if (opts.styles) + registerStyles(opts.styles); + const nativeTextureTable = host.kind === "native" ? host.ops.__textures : undefined; + if (host.kind === "native") { + if (nativeTextureTable) { + for (const key in nativeTextureTable) { + registerTexture(key, nativeTextureTable[key]); + } + } + const spr = host.ops.__sprites; + if (spr) { + for (const key in spr) + registerSprite(key, spr[key]); + } + } + if (host.kind === "injected" || nativeTextureTable === undefined) { + if (opts.pak) + loadPack(opts.pak); + if (hasPack()) { + for (const key of entries()) { + if (key === STYLES_KEY) { + host.ops.loadStyles?.(get(key)); + } else if (key.startsWith(FONT_PREFIX)) { + host.ops.loadFontAtlas?.(get(key)); + } + } + } + } + const viewport = hostViewport(host.ops); + const layerW = viewport?.w ?? SCREEN_W; + const layerH = viewport?.h ?? SCREEN_H; + const appRoot = createLayer({ + width: layerW, + height: layerH, + overflow: ENUMS.Overflow.Hidden + }); + const overlayRoot2 = createLayer({ + width: layerW, + height: layerH, + posType: ENUMS.PosType.Absolute, + insetT: 0, + insetR: 0, + insetB: 0, + insetL: 0, + zIndex: 1000 + }); + insertNode(rootMirror, appRoot); + insertNode(rootMirror, overlayRoot2); + setOverlayRoot(overlayRoot2); + appLayer = appRoot; + overlayLayer = overlayRoot2; + setInputRoot(appRoot); + setHitRoot(rootMirror); + resetFrameHooks(); + resetClock(); + resetEffects(); + initDevtools(host.ops); + installFrameHandler(wrapFrameHandler((buttons, analog, touches) => { + __advanceClock(); + __setAnalog(analog); + __setTouches(touches); + __drainEffects(); + runFrameHooks(buttons); + handleFrame(buttons); + runSweep(); + })); + const dispose = render(code, appRoot); + const removeResizeViewportHook = installResizeViewportHook(resizeViewport); + return () => { + removeResizeViewportHook(); + __resetTouches(); + dispose(); + setInputRoot(null); + setHitRoot(null); + setOverlayRoot(null); + appLayer = null; + overlayLayer = null; + for (const child of rootMirror.children.splice(0)) { + child.parent = null; + host.ops.destroyNode(child.id); + } + runSweep(); + }; + } + function mount(code, opts = {}) { + const ops = opts.ops ?? globalOps(); + if (!ops) { + throw new Error("PocketJS: mount() requires globalThis.ui or opts.ops"); + } + if (opts.pak) + loadPack(opts.pak); + uploadPakImages(ops); + uploadPakSprites(ops); + const dispose = render2(code, { + ops, + styles: opts.styles ?? STYLE_IDS, + pak: opts.pak + }); + return dispose; + } + // apps/cursor/main.tsx + enableCursor({ + dpadSpeed: 60 + }); + mount(() => createComponent2(CursorDemo, {})); +})(); diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak new file mode 100644 index 0000000000000000000000000000000000000000..21be530d0a26d7ac495a57ff02223cece1d9d7fc GIT binary patch literal 51312 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 literal 0 HcmV?d00001 diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 63dbbd5e2..653aacfdd 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -23,7 +23,7 @@ static int append_file_name(WCHAR *path, unsigned int capacity, return name[index] == L'\0'; } -static char *read_cards_bundle(unsigned int *length) +static char *read_demo_bundle(unsigned int *length) { WCHAR path[MAX_PATH]; HANDLE file; @@ -34,7 +34,7 @@ static char *read_cards_bundle(unsigned int *length) *length = 0; if (!GetModuleFileName(NULL, path, MAX_PATH)) return NULL; - if (!append_file_name(path, MAX_PATH, L"PocketJS.WM6.Cards.js")) + if (!append_file_name(path, MAX_PATH, L"PocketJS.WM6.Demo.js")) return NULL; file = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); @@ -115,7 +115,7 @@ static int read_number(char **cursor) return value; } -static void paint_cards(HWND window, HDC dc) +static void paint_demo(HWND window, HDC dc) { RECT client; RECT logical; @@ -202,8 +202,8 @@ static void paint_cards(HWND window, HDC dc) } } -static LRESULT CALLBACK CardsWindowProc(HWND window, UINT message, - WPARAM wparam, LPARAM lparam) +static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, + WPARAM wparam, LPARAM lparam) { switch (message) { case WM_PAINT: @@ -212,7 +212,7 @@ static LRESULT CALLBACK CardsWindowProc(HWND window, UINT message, HDC dc = BeginPaint(window, &paint); if (g_framebuffer_ready && !wm6_framebuffer_present()) g_framebuffer_ready = 0; - paint_cards(window, dc); + paint_demo(window, dc); EndPaint(window, &paint); } return 0; @@ -233,7 +233,7 @@ static LRESULT CALLBACK CardsWindowProc(HWND window, UINT message, int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int show) { static const char snapshot[] = "__wm6DrawList()"; - static const WCHAR class_name[] = L"PocketJSWM6Cards"; + static const WCHAR class_name[] = L"PocketJSWM6Demo"; HMODULE module; wm6_qjs_abi_version_fn abi_version; wm6_qjs_create_fn create_runtime; @@ -294,7 +294,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s MessageBox(NULL, create_error, L"QuickJS create failed", MB_OK); return 4; } - bundle = read_cards_bundle(&bundle_length); + bundle = read_demo_bundle(&bundle_length); snapshot_text = (char *)LocalAlloc(LMEM_FIXED, 8192); message = (WCHAR *)LocalAlloc(LMEM_FIXED, 8192 * sizeof(WCHAR)); if (!bundle || !snapshot_text || !message) { @@ -303,7 +303,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s if (message) LocalFree(message); destroy_runtime(runtime); FreeLibrary(module); - MessageBox(NULL, L"Cards bundle allocation failed", + MessageBox(NULL, L"Demo bundle allocation failed", L"PocketJS QuickJS Host", MB_OK); return 5; } @@ -327,7 +327,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s } g_draw_list = snapshot_text; memset(&window_class, 0, sizeof(window_class)); - window_class.lpfnWndProc = CardsWindowProc; + window_class.lpfnWndProc = DemoWindowProc; window_class.hInstance = instance; window_class.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); window_class.lpszClassName = class_name; @@ -336,7 +336,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s LocalFree(message); return 6; } - window = CreateWindow(class_name, L"PocketJS Feature Cards", + window = CreateWindow(class_name, L"PocketJS Cursor Demo", WS_VISIBLE, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), @@ -348,7 +348,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s } g_framebuffer_ready = 0; if (GetModuleFileName(NULL, pak_path, MAX_PATH) && - append_file_name(pak_path, MAX_PATH, L"PocketJS.WM6.Cards.pak") && + append_file_name(pak_path, MAX_PATH, L"PocketJS.WM6.Demo.pak") && wm6_framebuffer_open(window) && wm6_framebuffer_load_pak(pak_path) && wm6_framebuffer_render(g_draw_list)) { diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 31a05b0a5..6a326b231 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -94,8 +94,8 @@ describe("Windows Mobile 6 VS2005 projects", () => { test("includes a pinned CeGCC QuickJS ARM/WinCE probe", async () => { const quickjsRoot = new URL("../hosts/wm6/quickjs/", import.meta.url); - const [solution, project, host, framebuffer, build, runtimeBuild, cardsBuild, - patch, probe, runtime, abi, cards, cardsPak, math, executable, dll] = + const [solution, project, host, framebuffer, build, runtimeBuild, demoBuild, + patch, probe, runtime, abi, demo, demoPak, math, executable, dll] = await Promise.all([ readFile(new URL("PocketJS.WM6.sln", root), "utf8"), readFile(new URL("PocketJS.WM6.QuickJS.vcproj", root), "utf8"), @@ -103,13 +103,13 @@ describe("Windows Mobile 6 VS2005 projects", () => { readFile(new URL("src/wm6_framebuffer.c", root), "utf8"), readFile(new URL("build-probe.sh", quickjsRoot), "utf8"), readFile(new URL("build-runtime.sh", quickjsRoot), "utf8"), - readFile(new URL("build-cards.sh", quickjsRoot), "utf8"), + readFile(new URL("build-demo.sh", quickjsRoot), "utf8"), readFile(new URL("patches/quickjs-wm6.patch", quickjsRoot), "utf8"), readFile(new URL("src/probe.c", quickjsRoot), "utf8"), readFile(new URL("src/runtime_dll.c", quickjsRoot), "utf8"), readFile(new URL("runtime/wm6_quickjs_abi.h", root), "utf8"), - readFile(new URL("prebuilt/PocketJS.WM6.Cards.js", root), "utf8"), - readFile(new URL("prebuilt/PocketJS.WM6.Cards.pak", root)), + readFile(new URL("prebuilt/PocketJS.WM6.Demo.js", root), "utf8"), + readFile(new URL("prebuilt/PocketJS.WM6.Demo.pak", root)), readFile(new URL("src/wm6_math.c", quickjsRoot), "utf8"), readFile( new URL("prebuilt/PocketJS.WM6.QuickJS.Probe.exe", root), @@ -125,7 +125,7 @@ describe("Windows Mobile 6 VS2005 projects", () => { ); expect( project.match( - /PocketJS\.WM6\.Cards\.pak\|\$\(SolutionDir\)prebuilt\|%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\|0/g, + /PocketJS\.WM6\.Demo\.pak\|\$\(SolutionDir\)prebuilt\|%CSIDL_PROGRAM_FILES%\\PocketJS\.WM6\.QuickJS\|0/g, ), ).toHaveLength(2); expect(project.match(/TargetMachine="0"/g)).toHaveLength(2); @@ -145,7 +145,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).not.toContain("ascii_to_wide(message, 256, result)"); expect(host).toContain('static const char snapshot[] = "__wm6DrawList()"'); expect(host).toContain("CreateWindow(class_name"); - expect(host).toContain("paint_cards(window, dc)"); + expect(host).toContain("paint_demo(window, dc)"); + expect(host).toContain('L"PocketJS.WM6.Demo.js"'); + expect(host).toContain('L"PocketJS.WM6.Demo.pak"'); expect(host).toContain("ExtTextOut(dc"); expect(host).not.toContain("\n TextOut(dc"); expect(host).toContain("wm6_framebuffer_open(window)"); @@ -172,8 +174,8 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(build).toContain("-D_WIN32_WCE=0x0502"); expect(runtimeBuild).toContain("-shared"); expect(runtimeBuild).toContain("-static-libgcc"); - expect(cardsBuild).toContain("dist/cards-main.js"); - expect(cardsBuild).toContain("dist/cards-main.pak"); + expect(demoBuild).toContain("dist/cursor-main.js"); + expect(demoBuild).toContain("dist/cursor-main.pak"); expect(patch).toContain("#undef CONFIG_ATOMICS"); expect(patch).toContain("#elif defined(_WIN32_WCE)"); expect(probe).toContain("JS_SetMemoryLimit(runtime, 8u * 1024u * 1024u)"); @@ -189,14 +191,14 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(runtime).toContain("wm6_qjs_create"); expect(runtime).toContain("wm6_qjs_eval"); expect(runtime).toContain("wm6_qjs_drain_jobs"); - expect(cards).toContain("PocketJS Cards (real bundle)"); - expect(cards).toContain("Feature Cards"); - expect(cards).toContain("Flexbox via Taffy"); - expect(cards).toContain("globalThis.__wm6DrawList"); - expect(cards).toContain("text(16, 35, 12, 15, 23, 42"); - expect(cardsPak.subarray(0, 4).toString()).toBe("DCPK"); - expect(cardsPak.includes(Buffer.from("ui:font.0"))).toBeTrue(); - expect(cardsPak.includes(Buffer.from("ui:font.12"))).toBeTrue(); + expect(demo).toContain("PocketJS Cursor (real bundle)"); + expect(demo).toContain("REPLAY TAPE"); + expect(demo).toContain("OPEN MEMORY STICK"); + expect(demo).toContain("globalThis.__wm6DrawList"); + expect(demo).toContain('const out = ["B|0|128|128"]'); + expect(demoPak.subarray(0, 4).toString()).toBe("DCPK"); + expect(demoPak.includes(Buffer.from("ui:font.0"))).toBeTrue(); + expect(demoPak.includes(Buffer.from("ui:font.2"))).toBeTrue(); expect(executable.subarray(0, 2).toString("ascii")).toBe("MZ"); const peOffset = executable.readUInt32LE(0x3c); From 8c94418c39b0c6c3b68c61ee22f34009fc4adf8d Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 15:48:36 +0900 Subject: [PATCH 23/53] feat(wm6): switch to the Hero demo --- hosts/wm6/quickjs/README.md | 18 +- hosts/wm6/quickjs/build-demo.sh | 8 +- hosts/wm6/quickjs/demo-host.js | 110 ++-- hosts/wm6/vs2005/README.md | 12 +- .../wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js | 561 +++++++++++++----- .../wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak | Bin 51312 -> 464704 bytes hosts/wm6/vs2005/src/quickjs_deploy.c | 4 +- hosts/wm6/vs2005/src/wm6_framebuffer.c | 131 ++++ tests/wm6-project.test.ts | 22 +- 9 files changed, 661 insertions(+), 205 deletions(-) diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index b1dfb4290..34ed5bf93 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -48,22 +48,22 @@ QuickJS runtime and 256 KiB stack. Each cycle calls a native `print` function from a Promise job. Success shows `QuickJS 6,10,16,26` under the title `QuickJS: 100 cycles passed` in a native WM6 message box. -## Cursor demo host +## Hero demo host `build-runtime.sh` builds `PocketJS.WM6.QuickJS.dll` with a five-function, versioned C ABI and statically linked libgcc. `build-demo.sh` combines the -minimal WM6 HostOps bootstrap with the real `dist/cursor-main.js` output. +minimal WM6 HostOps bootstrap with the real `dist/hero-main.js` output. VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, deploys both files, mounts the Solid application in QuickJS, and turns its native tree into a compact draw list. The WM6 host rasterizes backgrounds and rectangles into an application-owned 480×272 RGB565 framebuffer. It reads the -same Inter font-atlas entries that other PocketJS hosts consume from the demo -PAK and alpha-blends glyph coverage directly into RGB565. The finished buffer -is presented through a locked DirectDraw primary surface. The complete GDI -renderer remains the fallback when DirectDraw, the PAK, or the display pixel -format is unavailable. The three-button Cursor screen is intentionally the -smallest existing interactive PocketJS/Solid demo; input-driven focus and -status updates are the next milestones. +same Inter font-atlas and RGBA image entries that other PocketJS hosts consume +from the demo PAK, alpha-blends glyphs, the logo, and a spinner frame directly +into RGB565, then presents the buffer through a locked DirectDraw primary +surface. The complete GDI renderer remains the fallback when DirectDraw, the +PAK, or the display pixel format is unavailable. The current milestone renders +the Hero first frame; its 60 FPS spinner, underline tween, and reactive button +are the next runtime-loop milestone. The compatibility patch: diff --git a/hosts/wm6/quickjs/build-demo.sh b/hosts/wm6/quickjs/build-demo.sh index d79ee4011..fdf56a723 100644 --- a/hosts/wm6/quickjs/build-demo.sh +++ b/hosts/wm6/quickjs/build-demo.sh @@ -3,18 +3,18 @@ set -euo pipefail script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" repo_root="$(cd "${script_dir}/../../.." && pwd)" -bundle="${repo_root}/dist/cursor-main.js" -pak="${repo_root}/dist/cursor-main.pak" +bundle="${repo_root}/dist/hero-main.js" +pak="${repo_root}/dist/hero-main.pak" output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Demo.js}" pak_output="${output%.*}.pak" if [[ ! -f "$bundle" || ! -f "$pak" ]]; then - echo "Missing Cursor bundle or pak; run: bun tools/build.ts cursor-main" >&2 + echo "Missing Hero bundle or pak; run: bun tools/build.ts hero-main" >&2 exit 2 fi mkdir -p "$(dirname "$output")" { - printf '%s\n' '/* PocketJS WM6 bootstrap + real apps/cursor bundle. */' + printf '%s\n' '/* PocketJS WM6 bootstrap + real apps/hero bundle. */' sed -n 'p' "${script_dir}/demo-host.js" sed -n 'p' "$bundle" } > "$output" diff --git a/hosts/wm6/quickjs/demo-host.js b/hosts/wm6/quickjs/demo-host.js index e1b9ff309..d27d8e58a 100644 --- a/hosts/wm6/quickjs/demo-host.js +++ b/hosts/wm6/quickjs/demo-host.js @@ -15,14 +15,26 @@ if (child) child.parent = 0; }; + const textures = { + "logo.png": 1, + "spinner-00.svg": 2, + "spinner-01.svg": 3, + "spinner-02.svg": 4, + "spinner-03.svg": 5, + "spinner-04.svg": 6, + "spinner-05.svg": 7, + "spinner-06.svg": 8, + "spinner-07.svg": 9 + }; + globalThis.ui = { __host: "wm6", __hostAbi: 1, - __textures: {}, + __textures: textures, __viewport: { w: 480, h: 272 }, createNode(type) { const id = nextNode++; - nodes.set(id, { id, type, style: -1, text: "", parent: 0, children: [] }); + nodes.set(id, { id, type, style: -1, text: "", image: -1, parent: 0, children: [] }); return id; }, destroyNode(id) { @@ -46,7 +58,7 @@ replaceText(id, text) { this.setText(id, text); }, uploadTexture() { return -1; }, freeTexture() {}, - setImage() {}, + setImage(id, handle) { const n = node(id); if (n) n.image = handle; }, setSprite() {}, animate() { return nextAnim++; }, cancelAnim() {}, @@ -59,7 +71,7 @@ }; globalThis.__wm6Snapshot = () => { - const lines = ["PocketJS Cursor (real bundle)", "viewport 480x272", ""]; + const lines = ["PocketJS Hero (real bundle)", "viewport 480x272", ""]; const visit = (id, depth) => { const current = node(id); if (!current) return; @@ -71,46 +83,68 @@ }; globalThis.__wm6DrawList = () => { - const out = ["B|0|128|128"]; + const out = ["B|248|250|252"]; const safe = (value) => String(value).replace(/[|\r\n]/g, " "); const rect = (x, y, w, h, r, g, b) => out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); - const text = (x, y, value) => - out.push(`T|${x}|${y}|0|0|0|0|${safe(value)}`); - const bevel = (x, y, w, h, pressed) => { - rect(x, y, w, h, pressed ? 210 : 192, pressed ? 206 : 192, - pressed ? 198 : 192); - rect(x, y, w, 2, pressed ? 0 : 255, pressed ? 0 : 255, - pressed ? 0 : 255); - rect(x, y, 2, h, pressed ? 0 : 255, pressed ? 0 : 255, - pressed ? 0 : 255); - rect(x, y + h - 2, w, 2, pressed ? 255 : 0, pressed ? 255 : 0, - pressed ? 255 : 0); - rect(x + w - 2, y, 2, h, pressed ? 255 : 0, pressed ? 255 : 0, - pressed ? 255 : 0); + const text = (x, y, slot, r, g, b, value) => + out.push(`T|${x}|${y}|${slot}|${r}|${g}|${b}|${safe(value)}`); + const image = (x, y, w, h, handle) => { + if (handle > 0) out.push(`I|${x}|${y}|${w}|${h}|${handle}`); }; - const labels = ["REPLAY TAPE", "OPEN MEMORY STICK", "LAUNCH SHELL"]; - - labels.forEach((label, index) => { - let owner = 0; - for (const current of nodes.values()) { - if (current.text === label) { - owner = current.parent; - break; - } - } - const y = 78 + index * 32; - bevel(120, y, 240, 24, owner === focused); - text(240 - Math.floor(label.length * 7 / 2), y + 5, label); - }); - - let status = "hover a row, press CIRCLE"; + const values = []; + const imageHandles = []; for (const current of nodes.values()) { - if (current.text && labels.indexOf(current.text) < 0) - status = current.text; + if (current.text) values.push(current.text); + if (current.image > 0) imageHandles.push(current.image); } - bevel(120, 184, 240, 18, false); - text(128, 187, status); + const exact = (value, fallback) => + values.indexOf(value) >= 0 ? value : fallback; + const prefix = (value, fallback) => + values.find((entry) => entry.indexOf(value) === 0) || fallback; + + image(20, 20, 40, 40, textures["logo.png"]); + text(72, 21, 9, 15, 23, 42, exact("PocketJS", "PocketJS")); + text(72, 43, 0, 100, 116, 139, + exact("Solid", "Solid") + + (values.find((entry) => entry.indexOf("+ RUST + SCEGU") >= 0) || + " + RUST + SCEGU")); + + text(348, 20, 10, 5, 150, 105, exact("60", "60")); + text(349, 43, 0, 100, 116, 139, exact("FPS", "FPS")); + text(397, 20, 10, 37, 99, 235, exact("42", "42")); + text(394, 43, 0, 100, 116, 139, exact("NODES", "NODES")); + text(449, 20, 10, 217, 119, 6, exact("9", "9")); + text(438, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); + + text(20, 91, 0, 37, 99, 235, + exact("ONE RUST CORE · ONE JSX APP", + "ONE RUST CORE · ONE JSX APP")); + text(20, 112, 13, 15, 23, 42, + exact("JSX at 60 FPS.", "JSX at 60 FPS.")); + image(420, 108, 40, 40, + imageHandles.find((handle) => handle >= 2) || + textures["spinner-00.svg"]); + rect(20, 159, 105, 4, 59, 130, 246); + rect(125, 159, 105, 4, 6, 182, 212); + text(20, 174, 1, 71, 85, 105, + exact("Flexbox, springs and baked type —", + "Flexbox, springs and baked type —")); + text(253, 174, 1, 71, 85, 105, + exact("running on a 2005 handheld.", + "running on a 2005 handheld.")); + + rect(20, 220, 132, 32, focused ? 37 : 37, + focused ? 99 : 99, focused ? 235 : 235); + text(34, 226, 9, 255, 255, 255, + exact("Press Circle", "Press Circle")); + const counters = values.filter((entry) => /^\d+$/.test(entry)); + text(172, 228, 1, 71, 85, 105, + prefix("Count: ", "Count: ") + (counters[counters.length - 1] || "0")); + const reactive = values.find((entry) => + entry === "Reactive on real hardware."); + if (reactive) + text(250, 228, 1, 5, 150, 105, reactive); return out.join("\n"); }; })(); diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 5bec365ac..9b2170663 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -9,11 +9,11 @@ This solution contains three native Smart Device applications for the HP iPAQ ahead-of-time compilation to portable C. It is the first application UI on WM6, but it is not a QuickJS host and cannot load ordinary PocketJS bundles. - `PocketJS.WM6.QuickJS` builds a VC8 host and deploys the CeGCC-built QuickJS - DLL plus the real `apps/cursor` bundle. It mounts Solid, derives a draw list - from the HostOps tree, paints the simple three-button demo into an RGB565 - framebuffer, rasterizes the PAK's Inter font atlases into the same buffer, - and presents it through DirectDraw. GDI is retained only as a compatibility - fallback. + DLL plus the real `apps/hero` bundle (`JSX at 60 FPS.`). It mounts Solid, + derives a draw list from the HostOps tree, paints the Hero screen into an + RGB565 framebuffer, rasterizes the PAK's Inter fonts and RGBA logo/spinner + assets into the same buffer, and presents it through DirectDraw. GDI is + retained only as a compatibility fallback. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a @@ -43,7 +43,7 @@ but does not yet connect PocketJS lifecycle, input, or rendering APIs; see Windows Mobile Classic/Pocket PC devices to this SDK; the similarly named Standard SDK is for non-touchscreen Smartphones. 4. Open `PocketJS.WM6.sln`. -5. To rebuild the Cursor host assets, run `tools/build.ts cursor-main`, then +5. To rebuild the Hero host assets, run `tools/build.ts hero-main`, then `..\quickjs\build-demo.sh` and `..\quickjs\build-runtime.sh` under WSL. Known-good ARM/WinCE and JavaScript files are checked in for deployment. 6. Select `Release | Windows Mobile 6 Professional SDK (ARMV4I)`. diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js index 002a885e1..ca2ad3637 100644 --- a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js +++ b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js @@ -1,4 +1,4 @@ -/* PocketJS WM6 bootstrap + real apps/cursor bundle. */ +/* PocketJS WM6 bootstrap + real apps/hero bundle. */ (() => { let nextNode = 2; let nextAnim = 1; @@ -16,14 +16,26 @@ if (child) child.parent = 0; }; + const textures = { + "logo.png": 1, + "spinner-00.svg": 2, + "spinner-01.svg": 3, + "spinner-02.svg": 4, + "spinner-03.svg": 5, + "spinner-04.svg": 6, + "spinner-05.svg": 7, + "spinner-06.svg": 8, + "spinner-07.svg": 9 + }; + globalThis.ui = { __host: "wm6", __hostAbi: 1, - __textures: {}, + __textures: textures, __viewport: { w: 480, h: 272 }, createNode(type) { const id = nextNode++; - nodes.set(id, { id, type, style: -1, text: "", parent: 0, children: [] }); + nodes.set(id, { id, type, style: -1, text: "", image: -1, parent: 0, children: [] }); return id; }, destroyNode(id) { @@ -47,7 +59,7 @@ replaceText(id, text) { this.setText(id, text); }, uploadTexture() { return -1; }, freeTexture() {}, - setImage() {}, + setImage(id, handle) { const n = node(id); if (n) n.image = handle; }, setSprite() {}, animate() { return nextAnim++; }, cancelAnim() {}, @@ -60,7 +72,7 @@ }; globalThis.__wm6Snapshot = () => { - const lines = ["PocketJS Cursor (real bundle)", "viewport 480x272", ""]; + const lines = ["PocketJS Hero (real bundle)", "viewport 480x272", ""]; const visit = (id, depth) => { const current = node(id); if (!current) return; @@ -72,46 +84,68 @@ }; globalThis.__wm6DrawList = () => { - const out = ["B|0|128|128"]; + const out = ["B|248|250|252"]; const safe = (value) => String(value).replace(/[|\r\n]/g, " "); const rect = (x, y, w, h, r, g, b) => out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); - const text = (x, y, value) => - out.push(`T|${x}|${y}|0|0|0|0|${safe(value)}`); - const bevel = (x, y, w, h, pressed) => { - rect(x, y, w, h, pressed ? 210 : 192, pressed ? 206 : 192, - pressed ? 198 : 192); - rect(x, y, w, 2, pressed ? 0 : 255, pressed ? 0 : 255, - pressed ? 0 : 255); - rect(x, y, 2, h, pressed ? 0 : 255, pressed ? 0 : 255, - pressed ? 0 : 255); - rect(x, y + h - 2, w, 2, pressed ? 255 : 0, pressed ? 255 : 0, - pressed ? 255 : 0); - rect(x + w - 2, y, 2, h, pressed ? 255 : 0, pressed ? 255 : 0, - pressed ? 255 : 0); + const text = (x, y, slot, r, g, b, value) => + out.push(`T|${x}|${y}|${slot}|${r}|${g}|${b}|${safe(value)}`); + const image = (x, y, w, h, handle) => { + if (handle > 0) out.push(`I|${x}|${y}|${w}|${h}|${handle}`); }; - const labels = ["REPLAY TAPE", "OPEN MEMORY STICK", "LAUNCH SHELL"]; - - labels.forEach((label, index) => { - let owner = 0; - for (const current of nodes.values()) { - if (current.text === label) { - owner = current.parent; - break; - } - } - const y = 78 + index * 32; - bevel(120, y, 240, 24, owner === focused); - text(240 - Math.floor(label.length * 7 / 2), y + 5, label); - }); - - let status = "hover a row, press CIRCLE"; + const values = []; + const imageHandles = []; for (const current of nodes.values()) { - if (current.text && labels.indexOf(current.text) < 0) - status = current.text; + if (current.text) values.push(current.text); + if (current.image > 0) imageHandles.push(current.image); } - bevel(120, 184, 240, 18, false); - text(128, 187, status); + const exact = (value, fallback) => + values.indexOf(value) >= 0 ? value : fallback; + const prefix = (value, fallback) => + values.find((entry) => entry.indexOf(value) === 0) || fallback; + + image(20, 20, 40, 40, textures["logo.png"]); + text(72, 21, 9, 15, 23, 42, exact("PocketJS", "PocketJS")); + text(72, 43, 0, 100, 116, 139, + exact("Solid", "Solid") + + (values.find((entry) => entry.indexOf("+ RUST + SCEGU") >= 0) || + " + RUST + SCEGU")); + + text(348, 20, 10, 5, 150, 105, exact("60", "60")); + text(349, 43, 0, 100, 116, 139, exact("FPS", "FPS")); + text(397, 20, 10, 37, 99, 235, exact("42", "42")); + text(394, 43, 0, 100, 116, 139, exact("NODES", "NODES")); + text(449, 20, 10, 217, 119, 6, exact("9", "9")); + text(438, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); + + text(20, 91, 0, 37, 99, 235, + exact("ONE RUST CORE · ONE JSX APP", + "ONE RUST CORE · ONE JSX APP")); + text(20, 112, 13, 15, 23, 42, + exact("JSX at 60 FPS.", "JSX at 60 FPS.")); + image(420, 108, 40, 40, + imageHandles.find((handle) => handle >= 2) || + textures["spinner-00.svg"]); + rect(20, 159, 105, 4, 59, 130, 246); + rect(125, 159, 105, 4, 6, 182, 212); + text(20, 174, 1, 71, 85, 105, + exact("Flexbox, springs and baked type —", + "Flexbox, springs and baked type —")); + text(253, 174, 1, 71, 85, 105, + exact("running on a 2005 handheld.", + "running on a 2005 handheld.")); + + rect(20, 220, 132, 32, focused ? 37 : 37, + focused ? 99 : 99, focused ? 235 : 235); + text(34, 226, 9, 255, 255, 255, + exact("Press Circle", "Press Circle")); + const counters = values.filter((entry) => /^\d+$/.test(entry)); + text(172, 228, 1, 71, 85, 105, + prefix("Count: ", "Count: ") + (counters[counters.length - 1] || "0")); + const reactive = values.find((entry) => + entry === "Reactive on real hardware."); + if (reactive) + text(250, 228, 1, 5, 150, 105, reactive); return out.join("\n"); }; })(); @@ -212,6 +246,15 @@ else updateComputation(c); } + function createEffect(fn, value, options) { + runEffects = runUserEffects; + const c = createComputation(fn, value, false, STALE), s = SuspenseContext && useContext(SuspenseContext); + if (s) + c.suspense = s; + if (!options || !options.render) + c.user = true; + Effects ? Effects.push(c) : updateComputation(c); + } function createMemo(fn, value, options) { options = options ? Object.assign({}, signalOptions, options) : signalOptions; const c = createComputation(fn, value, true, 0); @@ -238,6 +281,9 @@ Listener = listener; } } + function onMount(fn) { + createEffect(() => untrack(fn)); + } function onCleanup(fn) { if (Owner === null) ; @@ -276,6 +322,10 @@ }); } var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false); + function useContext(context) { + let value; + return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue; + } var SuspenseContext; function readSignal() { const runningTransition = Transition && Transition.running; @@ -601,6 +651,31 @@ } } } + function runUserEffects(queue) { + let i, userLength = 0; + for (i = 0;i < queue.length; i++) { + const e = queue[i]; + if (!e.user) + runTop(e); + else + queue[userLength++] = e; + } + if (sharedConfig.context) { + if (sharedConfig.count) { + sharedConfig.effects || (sharedConfig.effects = []); + sharedConfig.effects.push(...queue.slice(0, userLength)); + return; + } + setHydrateContext(); + } + if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) { + queue = [...sharedConfig.effects, ...queue]; + userLength += sharedConfig.effects.length; + delete sharedConfig.effects; + } + for (i = 0;i < userLength; i++) + runTop(queue[i]); + } function lookUpstream(node, ignore) { const runningTransition = Transition && Transition.running; if (runningTransition) @@ -839,6 +914,27 @@ } return target; } + var narrowedError = (name) => `Stale read from <${name}>.`; + function Show(props) { + const keyed = props.keyed; + const conditionValue = createMemo(() => props.when, undefined, undefined); + const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, { + equals: (a, b) => !a === !b + }); + return createMemo(() => { + const c = condition(); + if (c) { + const child = props.children; + const fn = typeof child === "function" && child.length > 0; + return fn ? untrack(() => child(keyed ? c : () => { + if (!untrack(condition)) + throw narrowedError("Show"); + return conditionValue(); + })) : child; + } + return props.fallback; + }, undefined, undefined); + } // node_modules/solid-js/universal/dist/universal.js var memo = (fn) => createMemo(() => fn()); @@ -1178,6 +1274,49 @@ arcSweep: 141, arcWidth: 142 }; + var ANIMATABLE = [ + "width", + "height", + "paddingT", + "paddingR", + "paddingB", + "paddingL", + "marginT", + "marginR", + "marginB", + "marginL", + "gap", + "basis", + "insetT", + "insetR", + "insetB", + "insetL", + "bgColor", + "gradFrom", + "gradTo", + "radius", + "opacity", + "borderColor", + "borderWidth", + "textColor", + "lineHeight", + "tracking", + "translateX", + "translateY", + "scale", + "rotate", + "scaleX", + "scaleY", + "rotateX", + "rotateY", + "translateZ", + "arcStart", + "arcSweep", + "arcWidth" + ]; + function animBit(prop) { + return ANIMATABLE.indexOf(prop); + } var VALUE_KIND = { f32: 0, color: 1, @@ -1548,6 +1687,21 @@ for (const cb of [...callbacks]) cb(buttons); } + function onFrame(callback) { + callbacks.add(callback); + onCleanup(() => callbacks.delete(callback)); + } + function createSpriteAnimation(frames, opts = {}) { + if (frames.length === 0) { + throw new Error("PocketJS: createSpriteAnimation() requires at least one frame"); + } + const frameStep = Math.max(1, Math.floor(opts.frameStep ?? 1)); + const [frame2, setFrame] = createSignal(0); + onFrame(() => { + setFrame((frame2() + 1) % (frames.length * frameStep)); + }); + return () => frames[Math.floor(frame2() / frameStep) % frames.length]; + } // framework/src/pak.ts var map = null; @@ -1904,48 +2058,6 @@ } return px; } - function enableCursor(opts = {}) { - const prev = cursor; - if (prev?.pressTarget) - setPressedNode(null); - const sprite = { - image: opts.image, - hotspot: opts.hotspot ?? [0, 0], - size: opts.size ?? [0, 0] - }; - const sameSprite = prev !== null && !prev.spriteDirty && prev.sprite.image === sprite.image && prev.sprite.hotspot[0] === sprite.hotspot[0] && prev.sprite.hotspot[1] === sprite.hotspot[1] && prev.sprite.size[0] === sprite.size[0] && prev.sprite.size[1] === sprite.size[1]; - cursor = { - x: opts.start ? opts.start[0] : prev ? prev.x : -1, - y: opts.start ? opts.start[1] : prev ? prev.y : -1, - vw: prev ? prev.vw : 0, - vh: prev ? prev.vh : 0, - speed: opts.speed ?? 240, - dpadSpeed: opts.dpadSpeed ?? 0, - button: opts.button ?? BTN.CIRCLE, - pressTarget: null, - tex: prev ? prev.tex : -1, - sprite, - spriteDirty: !sameSprite, - target: null, - gen: -1, - fresh: true - }; - return disableCursor; - } - function disableCursor() { - if (!cursor) - return; - const c = cursor; - cursor = null; - setPressedNode(null); - if (focused) - focusNode(null); - if (c.tex >= 0) { - const ops = getOps(); - ops.setCursor?.(-1, 0, 0, 0, 0); - ops.freeTexture?.(c.tex); - } - } function cursorInitSprite(c, ops) { const sprite = c.sprite; c.spriteDirty = false; @@ -2693,6 +2805,33 @@ spring: ENUMS.Easing.Spring, "spring-bouncy": ENUMS.Easing.SpringBouncy }; + function nodeId(node) { + return typeof node === "number" ? node : node.id; + } + function animatablePropId(prop) { + const propId = PROP[prop]; + if (propId === undefined) { + throw new Error(`PocketJS: unknown prop '${prop}'`); + } + if (animBit(prop) < 0) { + throw new Error(`PocketJS: prop '${prop}' is not animatable (see spec ANIMATABLE)`); + } + return propId; + } + function animate(node, prop, to, opts = {}) { + const propId = animatablePropId(prop); + let easing; + if (typeof opts.easing === "number") { + easing = opts.easing; + } else { + const named = EASING_BY_NAME[opts.easing ?? "out"]; + if (named === undefined) { + throw new Error(`PocketJS: unknown easing '${opts.easing}'`); + } + easing = named; + } + return getOps().animate(nodeId(node), propId, encodePropValue(prop, to), opts.dur ?? 200, easing, opts.delay ?? 0); + } // framework/src/overlay.ts var overlayRoot = null; @@ -2720,6 +2859,9 @@ function Text(props) { return primitive("text", props); } + function Image(props) { + return primitive("image", props); + } // framework/src/hot.ts var lastText = new WeakMap; var lastProp = new WeakMap; @@ -2736,46 +2878,6 @@ // framework/src/tiles.ts var parsed = new Map; - // apps/cursor/app.tsx - var ROWS = ["REPLAY TAPE", "OPEN MEMORY STICK", "LAUNCH SHELL"]; - function CursorDemo() { - const [status, setStatus] = createSignal("hover a row, press CIRCLE"); - return createComponent2(View, { - class: "w-full h-full flex-col items-center justify-center gap-[10] bg-[#008080]", - get children() { - return [createComponent2(View, { - debugName: "Panel", - class: "w-[240] flex-col gap-[8]", - get children() { - return ROWS.map((label) => createComponent2(View, { - debugName: label, - focusable: true, - onPress: () => setStatus(label), - class: "h-[24] flex-col justify-center items-center bg-[#c0c0c0] bevel-[#ffffff,#000000,#dfdfdf,#808080] focus:bg-[#d2cec6] active:bevel-[#000000,#ffffff,#808080,#dfdfdf]", - get children() { - return createComponent2(Text, { - class: "text-xs text-black", - children: label - }); - } - })); - } - }), createComponent2(View, { - debugName: "Status", - class: "h-[18] pl-[8] pr-[8] flex-col justify-center bg-[#c0c0c0] bevel-[#808080,#ffffff]", - get children() { - return createComponent2(Text, { - class: "text-xs text-black", - get children() { - return status(); - } - }); - } - })]; - } - }); - } - // framework/src/devtools.ts var TAPE_CAP = 36000; var TREE_THROTTLE = 30; @@ -3380,18 +3482,36 @@ // framework/src/styles.generated.ts var STYLE_IDS = { - "w-full h-full flex-col items-center justify-center gap-[10] bg-[#008080]": 0, - "w-[240] flex-col gap-[8]": 1, - "h-[24] flex-col justify-center items-center bg-[#c0c0c0] bevel-[#ffffff,#000000,#dfdfdf,#808080] focus:bg-[#d2cec6] active:bevel-[#000000,#ffffff,#808080,#dfdfdf]": 2, - "text-xs text-black": 3, - "h-[18] pl-[8] pr-[8] flex-col justify-center bg-[#c0c0c0] bevel-[#808080,#ffffff]": 4, - "relative flex-col w-full h-full bg-slate-50 overflow-hidden": 5, - "absolute inset-0 z-50 flex-col items-center justify-center": 6, - "absolute inset-0 bg-slate-950": 7, - "flex-col gap-2 w-[328] p-3 rounded-xl shadow-lg bg-white border-slate-200": 8, - "absolute left-3 right-3 bottom-3 flex-row items-center justify-between px-2 py-1 rounded-lg shadow-md bg-white border-slate-200": 9, - "flex-row flex-wrap": 10, - grow: 11 + "flex-col items-end": 0, + "text-xs text-slate-500 tracking-wide": 1, + "w-full h-full flex-col justify-between p-5 bg-gradient-to-b from-slate-50 to-slate-100": 2, + "flex-row flex-wrap items-center justify-between": 3, + "flex-row items-center gap-3": 4, + "w-10 h-10 rounded-lg shadow": 5, + "flex-col": 6, + "text-base text-slate-950 font-bold tracking-wide": 7, + "flex-row gap-4": 8, + "text-lg text-emerald-600 font-bold": 9, + "text-lg text-blue-600 font-bold": 10, + "text-lg text-amber-600 font-bold": 11, + "flex-col gap-2": 12, + "text-xs text-blue-600 tracking-wide": 13, + "text-4xl text-slate-950 font-bold": 14, + "w-10 h-10": 15, + "h-1 w-0 rounded-full shadow bg-gradient-to-r from-blue-500 to-cyan-500": 16, + "flex-row flex-wrap gap-1": 17, + "text-sm text-slate-600": 18, + "flex-row flex-wrap items-center gap-4": 19, + "px-4 py-2 rounded-xl shadow-md bg-blue-600 border-blue-500 focus:bg-blue-500 active:bg-blue-700 transition-colors duration-150": 20, + "text-base text-white font-bold": 21, + "text-sm text-emerald-600": 22, + "relative flex-col w-full h-full bg-slate-50 overflow-hidden": 23, + "absolute inset-0 z-50 flex-col items-center justify-center": 24, + "absolute inset-0 bg-slate-950": 25, + "flex-col gap-2 w-[328] p-3 rounded-xl shadow-lg bg-white border-slate-200": 26, + "absolute left-3 right-3 bottom-3 flex-row items-center justify-between px-2 py-1 rounded-lg shadow-md bg-white border-slate-200": 27, + "flex-row flex-wrap": 28, + grow: 29 }; // framework/src/index.ts @@ -3404,6 +3524,9 @@ var FONT_PREFIX = "ui:font."; var IMG_PREFIX = "ui:img."; var SPRITE_PREFIX = "ui:sprite."; + function frameworkName() { + return "Solid"; + } function globalOps() { return globalThis.ui; } @@ -3581,9 +3704,171 @@ }); return dispose; } - // apps/cursor/main.tsx - enableCursor({ - dpadSpeed: 60 - }); - mount(() => createComponent2(CursorDemo, {})); + + // apps/hero/app.tsx + var SPINNER_FRAME_STEP = 3; + var SPINNER_FRAMES = ["spinner-00.svg", "spinner-01.svg", "spinner-02.svg", "spinner-03.svg", "spinner-04.svg", "spinner-05.svg", "spinner-06.svg", "spinner-07.svg"]; + function Stat(props) { + return createComponent2(View, { + class: "flex-col items-end", + get children() { + return [createComponent2(Text, { + get ["class"]() { + return props.cls; + }, + get children() { + return props.value; + } + }), createComponent2(Text, { + class: "text-xs text-slate-500 tracking-wide", + get children() { + return props.label; + } + })]; + } + }); + } + function Hero() { + const [count, setCount] = createSignal(0); + const spinnerSrc = createSpriteAnimation(SPINNER_FRAMES, { + frameStep: SPINNER_FRAME_STEP + }); + let underline; + onMount(() => { + if (underline) + animate(underline, "width", 210, { + dur: 700, + easing: "out", + delay: 150 + }); + }); + return createComponent2(View, { + debugName: "HeroScreen", + class: "w-full h-full flex-col justify-between p-5 bg-gradient-to-b from-slate-50 to-slate-100", + get children() { + return [createComponent2(View, { + debugName: "Header", + class: "flex-row flex-wrap items-center justify-between", + get children() { + return [createComponent2(View, { + class: "flex-row items-center gap-3", + get children() { + return [createComponent2(Image, { + class: "w-10 h-10 rounded-lg shadow", + src: "logo.png" + }), createComponent2(View, { + class: "flex-col", + get children() { + return [createComponent2(Text, { + class: "text-base text-slate-950 font-bold tracking-wide", + children: "PocketJS" + }), createComponent2(Text, { + class: "text-xs text-slate-500 tracking-wide", + get children() { + return [memo2(() => frameworkName()), " + RUST + SCEGU"]; + } + })]; + } + })]; + } + }), createComponent2(View, { + class: "flex-row gap-4", + get children() { + return [createComponent2(Stat, { + label: "FPS", + value: "60", + cls: "text-lg text-emerald-600 font-bold" + }), createComponent2(Stat, { + label: "NODES", + value: "42", + cls: "text-lg text-blue-600 font-bold" + }), createComponent2(Stat, { + label: "DRAWS", + value: "9", + cls: "text-lg text-amber-600 font-bold" + })]; + } + })]; + } + }), createComponent2(View, { + class: "flex-col gap-2", + get children() { + return [createComponent2(Text, { + class: "text-xs text-blue-600 tracking-wide", + children: "ONE RUST CORE · ONE JSX APP" + }), createComponent2(View, { + class: "flex-row flex-wrap items-center justify-between", + get children() { + return [createComponent2(Text, { + class: "text-4xl text-slate-950 font-bold", + children: "JSX at 60 FPS." + }), createComponent2(Image, { + class: "w-10 h-10", + get src() { + return spinnerSrc(); + } + })]; + } + }), createComponent2(View, { + ref(r$) { + var _ref$ = underline; + typeof _ref$ === "function" ? _ref$(r$) : underline = r$; + }, + class: "h-1 w-0 rounded-full shadow bg-gradient-to-r from-blue-500 to-cyan-500", + get style() { + return { + translateX: count() * 2 + }; + } + }), createComponent2(View, { + debugName: "Description", + class: "flex-row flex-wrap gap-1", + get children() { + return [createComponent2(Text, { + class: "text-sm text-slate-600", + children: "Flexbox, springs and baked type —" + }), createComponent2(Text, { + class: "text-sm text-slate-600", + children: "running on a 2005 handheld." + })]; + } + })]; + } + }), createComponent2(View, { + class: "flex-row flex-wrap items-center gap-4", + get children() { + return [createComponent2(View, { + class: "px-4 py-2 rounded-xl shadow-md bg-blue-600 border-blue-500 focus:bg-blue-500 active:bg-blue-700 transition-colors duration-150", + focusable: true, + onPress: () => setCount(count() + 1), + get children() { + return createComponent2(Text, { + class: "text-base text-white font-bold", + children: "Press Circle" + }); + } + }), createComponent2(Text, { + class: "text-sm text-slate-600", + get children() { + return ["Count: ", memo2(() => count())]; + } + }), createComponent2(Show, { + get when() { + return count() > 3; + }, + get children() { + return createComponent2(Text, { + class: "text-sm text-emerald-600", + children: "Reactive on real hardware." + }); + } + })]; + } + })]; + } + }); + } + + // apps/hero/main.tsx + mount(() => createComponent2(Hero, {})); })(); diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak index 21be530d0a26d7ac495a57ff02223cece1d9d7fc..e2a8503e2c2165d5d5ff30e2d6f0899d04fb86cb 100644 GIT binary patch literal 464704 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

a2f_lf}SRd7k=?#7p< z4*;L@e{uANak=IPHDB}ifJiF*c2wg=RSm+kp+adcO46$dH~R2-NG2cTQ0y2oiAxW&N$zFaT=bhwsse4gsO z7<|Wejq5uf4_xM&&p6!5jsuQKXXSDI%|vGfA^l3-V*-3x?xfQ_BguW{yWDbsw1wT{ zRCc*Df8a|wcj=9L&TSh(UXQ|savz3E+xIak&wwlIdmPPfTq|$B75!^3|7)%PlulXO z_D|~x=z+EE|7adme#L=`0~H4<4xHrx+J_tAw&mtqr;CL$B+r{w3 za;X+$ovQ)oW;lJ$7k!3H+Xw8@1URHUZa)k6xiP*p9w2Yhek+_yyMAVT={x|8C*VkH zk}GXLA7F;%u4&hPX}qTl06xn;iEcN(aD4!{tnZr6G`}<%0DS5?m(HZ;E%K|#AK+5g zrO~b5l{Oaz_-kGMEKl&@3Am(kXMAS;M;glVb#ON+$LGv;3~3fx{}uiB0*@s6ssHat zlY6|U4v*W@pLw1OzPkXIr2i@Z*QLQO>K)*a2caA=oJBj!J&tz0x1aA)cmvK^*6*3PScv?=b{7okPp;}rRjT(cTqlYWqnVgTgTs26uf22 zr=q_&`CqoO&4Ulhe`fuc2hK950S~5b|CX7qNpMqgFmeB95*St5iUSn~Dh^Z}$j5=| zJb-+Bs!~-Ps5nq@phym&KTJEu%G^6uFzreEY2FE*r0ypz5|2gXrOKUjy8CF{XTB@V zp1%m1U6`P4rS6?_aWCQ-^mEUYTi$Wcnfqyrz-1A6TyFG(p4;FiIUlz$`3Kwv9Bs&@ z@4*XY1u&;QADQjmO!|-X!i9HKGkh_`vy3p{koItGxDJ09?^5?dy2;^!9AuNp9^2>oQ%O_Z-CoXaJRtmd>lGH zPjy}lzT;ZIxOM-TYd$B#x|r0!mHmRavyvu0Ckgqm+~a7E5KqT2_>P%$MpdoIBB7C237l7CBHNXYB49Q0?d`_2n*)^xy?bv=o09sk0- za4P!OUjElw|FNE+4yJW84z+XEpM~F1MINeHSOBJJu8n{ z-UB|%KBPA;T(~{}T-J9@XPRG{3;;fLT^zk(T;Y3E0hhWijc)y}v~#fmf33@(bq73{ zx&9*$wwpJ?aeqG@pEK(W(k!(8EBdbi9-+MJF!g`xeeHP9I&>=>_p!Tzafrr zn${#g7ahole4tJ&P2X$0i}Hah>v|I1I{xOO;4ND|75&A@|FV^B9(+*#GwZ)RaF#g@ zcrbPQx6E`+f}4_qiTgj3z^Kwz9H=-@aiHQrJ`Pmp0p#OTm8#-E#es?gMREZB;gz~~ zpA^>LeHdlTyFG(o;%>S=;z@D(iJBE$cy{RsY~a6h6-Tb3-<(E?`GEH`>p$c{ zx*vga&(dJ{d3nlU)--@a+FiQc=ghql_;%{{58o!8C7^jxIuC#Y%h{zle9l}akMF1I z|KPg^;WVvr{v)%NZ`${O&H5hF8yC(srcq?T{J1!}tGJ2-6$dH~%!32atz5ry9o$XI@i}$9-aPP1f&tvPUY=_M?@^A= zQ=J!s@2-Z6Tlb&2<}(SuGUI_O`vv#IJrFp?O>|Ze(zD#-Xm{7WE{z-jSC)Gm?V1;S zms<{ymU6CXP4aWy<5Xsu>%4(0j&^)ZTml(2bEuOpyEKqfrV7fL51o_qj9~0DQ_{ z9KB&&;d3&8OI_#Ene_a$qRU<92ly9q(tlZ&KluRqXRiOqgJ)Yj9j>JupEJ)oSgQ2|ZF!lemd-^%2oVvFg?{9!h(*LXvPuH?qrVlveK_~|dXVK1bC!O5GALsZk zRSxi;Jm8%)ZvAI?F0{LR1x)G#>cmvK^*6*3E{<+DE*BlhhkT$;EKT2Qyo>UIE9<*U zYut0ID0s`3Pep%m^1p0ln+G41|IGR?51eIA10E!uX_MLhEi+w{;HKnY;{MMhFsif_ z2PzI!9H=;uj{`5h>y@v%qW0Ay@wqFWT04iQMvcSxb64J9d*hqm8U3hu_r}`$-}k;d z&t1p&4?o8D4?lJd{(s;SO&%Y(!~xs~E^%qd2QJB6o>t?4=2Gp+FMc`Nu6_D*Ux@A! zxu3i0sfe%DB%3ytw^hzPR*KnfjcBLp-lI{|w+s zOx{@g%fI-GJI`IgoE}y=ox9@x+STuU6H*XMhR_l@p}||un~+%0t0-X3G9^Ak&VmE@ zT0-OSHe#ad@9m( zlU?U-WF8N12}7O8B{dg>DL=3>f3Q>lSQ#Tz0$3&yL^3dPfUKF|2o5?&Zjca)l@1IL%Roj$%-a4*l--9B E0NCzoVgLXD diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 653aacfdd..6a2868d72 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -336,7 +336,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s LocalFree(message); return 6; } - window = CreateWindow(class_name, L"PocketJS Cursor Demo", + window = CreateWindow(class_name, L"PocketJS Hero Demo", WS_VISIBLE, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), @@ -354,7 +354,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s wm6_framebuffer_render(g_draw_list)) { g_framebuffer_ready = 1; OutputDebugString( - L"PocketJS WM6: DirectDraw RGB565 + font atlas active\r\n"); + L"PocketJS WM6: DirectDraw RGB565 + PAK assets active\r\n"); } else { wm6_framebuffer_close(); OutputDebugString(L"PocketJS WM6: DirectDraw unavailable; using GDI\r\n"); diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index 35f07856a..f8eeac265 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -10,6 +10,7 @@ static unsigned char *g_pak; static unsigned int g_pak_size; #define WM6_MAX_FONT_SLOTS 16 +#define WM6_MAX_IMAGES 10 #define WM6_PAK_MAGIC 0x4b504344u #define WM6_PAK_ENTRY_SIZE 24u #define WM6_FONT_MAGIC 0x41464344u @@ -25,7 +26,15 @@ typedef struct Wm6FontAtlas { unsigned char density; } Wm6FontAtlas; +typedef struct Wm6Image { + const unsigned char *pixels; + unsigned short width; + unsigned short height; + unsigned char format; +} Wm6Image; + static Wm6FontAtlas g_fonts[WM6_MAX_FONT_SLOTS]; +static Wm6Image g_images[WM6_MAX_IMAGES]; static unsigned short read_u16(const unsigned char *bytes) { @@ -197,6 +206,69 @@ static int parse_font_atlas(const unsigned char *blob, unsigned int length) return 1; } +static int name_equals(const unsigned char *name, unsigned int length, + const char *expected) +{ + unsigned int index; + + index = 0; + while (expected[index]) { + if (index >= length || name[index] != (unsigned char)expected[index]) + return 0; + index++; + } + return index == length; +} + +static int image_handle(const unsigned char *name, unsigned int length) +{ + static const char *names[] = { + "", + "ui:img.logo.png", + "ui:img.spinner-00.svg", + "ui:img.spinner-01.svg", + "ui:img.spinner-02.svg", + "ui:img.spinner-03.svg", + "ui:img.spinner-04.svg", + "ui:img.spinner-05.svg", + "ui:img.spinner-06.svg", + "ui:img.spinner-07.svg" + }; + int handle; + + for (handle = 1; handle < WM6_MAX_IMAGES; handle++) { + if (name_equals(name, length, names[handle])) + return handle; + } + return 0; +} + +static int parse_image(int handle, const unsigned char *blob, + unsigned int length) +{ + Wm6Image *image; + unsigned int width; + unsigned int height; + unsigned int required; + + if (handle <= 0 || handle >= WM6_MAX_IMAGES || length < 8) + return 0; + width = read_u16(blob); + height = read_u16(blob + 2); + if (width == 0 || height == 0 || blob[4] != 3 || + width > (length - 8) / 4 / height) + return 0; + required = width * height * 4; + if (!range_valid(8, required, length)) + return 0; + image = &g_images[handle]; + image->pixels = blob + 8; + image->width = (unsigned short)width; + image->height = (unsigned short)height; + image->format = blob[4]; + return 1; +} + int wm6_framebuffer_load_pak(const WCHAR *path) { HANDLE file; @@ -204,6 +276,7 @@ int wm6_framebuffer_load_pak(const WCHAR *path) DWORD received; unsigned int entry_count; unsigned int directory_offset; + unsigned int names_offset; unsigned int index; int font_count; @@ -213,6 +286,7 @@ int wm6_framebuffer_load_pak(const WCHAR *path) g_pak_size = 0; } memset(g_fonts, 0, sizeof(g_fonts)); + memset(g_images, 0, sizeof(g_images)); file = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (file == INVALID_HANDLE_VALUE) @@ -241,6 +315,7 @@ int wm6_framebuffer_load_pak(const WCHAR *path) } entry_count = read_u32(g_pak + 8); directory_offset = read_u32(g_pak + 12); + names_offset = read_u32(g_pak + 16); if (entry_count > g_pak_size / WM6_PAK_ENTRY_SIZE || !range_valid(directory_offset, entry_count * WM6_PAK_ENTRY_SIZE, g_pak_size)) { @@ -252,16 +327,28 @@ int wm6_framebuffer_load_pak(const WCHAR *path) const unsigned char *entry; unsigned int blob_offset; unsigned int blob_length; + unsigned int name_offset; + unsigned int name_length; + int handle; entry = g_pak + directory_offset + index * WM6_PAK_ENTRY_SIZE; blob_offset = read_u32(entry + 4); blob_length = read_u32(entry + 8); + name_offset = read_u32(entry + 12); + name_length = read_u16(entry + 16); if (!range_valid(blob_offset, blob_length, g_pak_size)) continue; if (blob_length >= 4 && read_u32(g_pak + blob_offset) == WM6_FONT_MAGIC && parse_font_atlas(g_pak + blob_offset, blob_length)) font_count++; + if (!range_valid(names_offset, name_offset, g_pak_size) || + !range_valid(names_offset + name_offset, name_length, g_pak_size)) + continue; + handle = image_handle( + g_pak + names_offset + name_offset, name_length); + if (handle) + parse_image(handle, g_pak + blob_offset, blob_length); } if (font_count == 0) { wm6_framebuffer_close(); @@ -403,6 +490,40 @@ static int draw_text(int x, int y, int slot, int red, int green, int blue, return 1; } +static int draw_image(int x, int y, int width, int height, int handle) +{ + const Wm6Image *image; + int destination_y; + int destination_x; + + if (handle <= 0 || handle >= WM6_MAX_IMAGES || + width <= 0 || height <= 0) + return 0; + image = &g_images[handle]; + if (!image->pixels || image->format != 3) + return 0; + for (destination_y = 0; destination_y < height; destination_y++) { + unsigned int source_y; + + source_y = (unsigned int)destination_y * image->height / + (unsigned int)height; + for (destination_x = 0; destination_x < width; destination_x++) { + unsigned int source_x; + unsigned int offset; + + source_x = (unsigned int)destination_x * image->width / + (unsigned int)width; + offset = (source_y * image->width + source_x) * 4u; + blend_pixel(x + destination_x, y + destination_y, + image->pixels[offset], + image->pixels[offset + 1], + image->pixels[offset + 2], + image->pixels[offset + 3]); + } + } + return 1; +} + int wm6_framebuffer_open(HWND window) { DDSURFACEDESC description; @@ -447,6 +568,7 @@ void wm6_framebuffer_close(void) g_pak_size = 0; } memset(g_fonts, 0, sizeof(g_fonts)); + memset(g_images, 0, sizeof(g_images)); } int wm6_framebuffer_render(const char *draw_list) @@ -466,6 +588,7 @@ int wm6_framebuffer_render(const char *draw_list) int width; int height; int slot; + int handle; int red; int green; int blue; @@ -497,6 +620,14 @@ int wm6_framebuffer_render(const char *draw_list) cursor++; if (!draw_text(x, y, slot, red, green, blue, cursor)) succeeded = 0; + } else if (line[0] == 'I') { + x = read_number(&cursor); + y = read_number(&cursor); + width = read_number(&cursor); + height = read_number(&cursor); + handle = read_number(&cursor); + if (!draw_image(x, y, width, height, handle)) + succeeded = 0; } while (*line && *line != '\n') line++; diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 6a326b231..ebefaf67b 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -152,7 +152,7 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).not.toContain("\n TextOut(dc"); expect(host).toContain("wm6_framebuffer_open(window)"); expect(host).toContain("wm6_framebuffer_present()"); - expect(host).toContain("DirectDraw RGB565 + font atlas active"); + expect(host).toContain("DirectDraw RGB565 + PAK assets active"); expect(host).toContain("DirectDraw unavailable; using GDI"); expect(framebuffer).toContain("#include "); expect(framebuffer).toContain("static unsigned short g_pixels["); @@ -164,6 +164,8 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(framebuffer).toContain("parse_font_atlas"); expect(framebuffer).toContain("logical_coverage"); expect(framebuffer).toContain("draw_text("); + expect(framebuffer).toContain("parse_image("); + expect(framebuffer).toContain("draw_image("); expect(build).toContain( 'quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61"', @@ -174,8 +176,8 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(build).toContain("-D_WIN32_WCE=0x0502"); expect(runtimeBuild).toContain("-shared"); expect(runtimeBuild).toContain("-static-libgcc"); - expect(demoBuild).toContain("dist/cursor-main.js"); - expect(demoBuild).toContain("dist/cursor-main.pak"); + expect(demoBuild).toContain("dist/hero-main.js"); + expect(demoBuild).toContain("dist/hero-main.pak"); expect(patch).toContain("#undef CONFIG_ATOMICS"); expect(patch).toContain("#elif defined(_WIN32_WCE)"); expect(probe).toContain("JS_SetMemoryLimit(runtime, 8u * 1024u * 1024u)"); @@ -191,14 +193,18 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(runtime).toContain("wm6_qjs_create"); expect(runtime).toContain("wm6_qjs_eval"); expect(runtime).toContain("wm6_qjs_drain_jobs"); - expect(demo).toContain("PocketJS Cursor (real bundle)"); - expect(demo).toContain("REPLAY TAPE"); - expect(demo).toContain("OPEN MEMORY STICK"); + expect(demo).toContain("PocketJS Hero (real bundle)"); + expect(demo).toContain("JSX at 60 FPS."); + expect(demo).toContain("ONE RUST CORE"); + expect(demo).toContain("spinner-00.svg"); expect(demo).toContain("globalThis.__wm6DrawList"); - expect(demo).toContain('const out = ["B|0|128|128"]'); + expect(demo).toContain('const out = ["B|248|250|252"]'); + expect(demo).toContain("I|${x}|${y}|${w}|${h}|${handle}"); expect(demoPak.subarray(0, 4).toString()).toBe("DCPK"); expect(demoPak.includes(Buffer.from("ui:font.0"))).toBeTrue(); - expect(demoPak.includes(Buffer.from("ui:font.2"))).toBeTrue(); + expect(demoPak.includes(Buffer.from("ui:font.13"))).toBeTrue(); + expect(demoPak.includes(Buffer.from("ui:img.logo.png"))).toBeTrue(); + expect(demoPak.includes(Buffer.from("ui:img.spinner-00.svg"))).toBeTrue(); expect(executable.subarray(0, 2).toString("ascii")).toBe("MZ"); const peOffset = executable.readUInt32LE(0x3c); From fe2c3aa8d8ef187f63a75df3038cc3429759c4d6 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 17:25:01 +0900 Subject: [PATCH 24/53] fix(wm6): rotate the Hero demo into landscape --- hosts/wm6/vs2005/README.md | 3 +- hosts/wm6/vs2005/src/quickjs_deploy.c | 51 +++++++++++++++++++++++++++ tests/wm6-project.test.ts | 5 +++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 9b2170663..a882d0ea5 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -13,7 +13,8 @@ This solution contains three native Smart Device applications for the HP iPAQ derives a draw list from the HostOps tree, paints the Hero screen into an RGB565 framebuffer, rasterizes the PAK's Inter fonts and RGBA logo/spinner assets into the same buffer, and presents it through DirectDraw. GDI is - retained only as a compatibility fallback. + retained only as a compatibility fallback. A portrait display is rotated + 90 degrees before the demo window is created and restored when it exits. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 6a2868d72..631516bce 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -79,6 +79,49 @@ static void ascii_to_wide(WCHAR *output, unsigned int capacity, static char *g_draw_list; static int g_framebuffer_ready; +static DEVMODE g_original_display_mode; +static int g_display_rotated; + +static int rotate_display_landscape(void) +{ + DEVMODE current; + DEVMODE requested; + LONG status; + + memset(¤t, 0, sizeof(current)); + current.dmSize = sizeof(current); + if (!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, ¤t)) + return 0; + if (GetSystemMetrics(SM_CXSCREEN) >= GetSystemMetrics(SM_CYSCREEN)) + return 1; + g_original_display_mode = current; + requested = current; + requested.dmFields = DM_DISPLAYORIENTATION; + requested.dmDisplayOrientation = + (current.dmDisplayOrientation + DMDO_90) & 3; + status = ChangeDisplaySettingsEx( + NULL, &requested, NULL, CDS_TEST, NULL); + if (status != DISP_CHANGE_SUCCESSFUL) + return 0; + status = ChangeDisplaySettingsEx( + NULL, &requested, NULL, CDS_RESET, NULL); + if (status != DISP_CHANGE_SUCCESSFUL) + return 0; + g_display_rotated = 1; + return 1; +} + +static void restore_display_orientation(void) +{ + DEVMODE requested; + + if (!g_display_rotated) + return; + requested = g_original_display_mode; + requested.dmFields = DM_DISPLAYORIENTATION; + ChangeDisplaySettingsEx(NULL, &requested, NULL, CDS_RESET, NULL); + g_display_rotated = 0; +} static int wide_length(const WCHAR *text) { @@ -326,12 +369,18 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s return 5; } g_draw_list = snapshot_text; + g_display_rotated = 0; + if (rotate_display_landscape()) + OutputDebugString(L"PocketJS WM6: landscape display active\r\n"); + else + OutputDebugString(L"PocketJS WM6: display rotation unavailable\r\n"); memset(&window_class, 0, sizeof(window_class)); window_class.lpfnWndProc = DemoWindowProc; window_class.hInstance = instance; window_class.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); window_class.lpszClassName = class_name; if (!RegisterClass(&window_class)) { + restore_display_orientation(); LocalFree(snapshot_text); LocalFree(message); return 6; @@ -342,6 +391,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s GetSystemMetrics(SM_CYSCREEN), NULL, NULL, instance, NULL); if (!window) { + restore_display_orientation(); LocalFree(snapshot_text); LocalFree(message); return 7; @@ -365,6 +415,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s TranslateMessage(&message_loop); DispatchMessage(&message_loop); } + restore_display_orientation(); LocalFree(snapshot_text); LocalFree(message); return 0; diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index ebefaf67b..1fe69de52 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -145,6 +145,11 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).not.toContain("ascii_to_wide(message, 256, result)"); expect(host).toContain('static const char snapshot[] = "__wm6DrawList()"'); expect(host).toContain("CreateWindow(class_name"); + expect(host).toContain("rotate_display_landscape()"); + expect(host).toContain("EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS"); + expect(host).toContain("DM_DISPLAYORIENTATION"); + expect(host).toContain("DMDO_90"); + expect(host).toContain("restore_display_orientation()"); expect(host).toContain("paint_demo(window, dc)"); expect(host).toContain('L"PocketJS.WM6.Demo.js"'); expect(host).toContain('L"PocketJS.WM6.Demo.pak"'); From e71997e3064e67afa04676b15d7212bc48f9850e Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 17:41:21 +0900 Subject: [PATCH 25/53] feat(wm6): adapt Hero output to the display --- hosts/wm6/vs2005/README.md | 8 ++- hosts/wm6/vs2005/src/quickjs_deploy.c | 16 +++-- hosts/wm6/vs2005/src/wm6_framebuffer.c | 91 +++++++++++++++++--------- tests/wm6-project.test.ts | 12 +++- 4 files changed, 87 insertions(+), 40 deletions(-) diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index a882d0ea5..ff3080094 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -13,8 +13,12 @@ This solution contains three native Smart Device applications for the HP iPAQ derives a draw list from the HostOps tree, paints the Hero screen into an RGB565 framebuffer, rasterizes the PAK's Inter fonts and RGBA logo/spinner assets into the same buffer, and presents it through DirectDraw. GDI is - retained only as a compatibility fallback. A portrait display is rotated - 90 degrees before the demo window is created and restored when it exits. + retained only as a compatibility fallback. The host requests the absolute + `DMDO_90` orientation relative to the device's default portrait mode before + creating the window and restores the previous mode when it exits. The + 480x272 logical framebuffer is aspect-fitted and centered on the actual + DirectDraw surface, so QVGA, VGA, and other WM6 display sizes share the same + bundle without cropping. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 631516bce..a1a3b8f29 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -82,7 +82,9 @@ static int g_framebuffer_ready; static DEVMODE g_original_display_mode; static int g_display_rotated; -static int rotate_display_landscape(void) +static void restore_display_orientation(void); + +static int rotate_display_90(void) { DEVMODE current; DEVMODE requested; @@ -92,13 +94,13 @@ static int rotate_display_landscape(void) current.dmSize = sizeof(current); if (!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, ¤t)) return 0; - if (GetSystemMetrics(SM_CXSCREEN) >= GetSystemMetrics(SM_CYSCREEN)) + if (current.dmDisplayOrientation == DMDO_90 && + GetSystemMetrics(SM_CXSCREEN) > GetSystemMetrics(SM_CYSCREEN)) return 1; g_original_display_mode = current; requested = current; requested.dmFields = DM_DISPLAYORIENTATION; - requested.dmDisplayOrientation = - (current.dmDisplayOrientation + DMDO_90) & 3; + requested.dmDisplayOrientation = DMDO_90; status = ChangeDisplaySettingsEx( NULL, &requested, NULL, CDS_TEST, NULL); if (status != DISP_CHANGE_SUCCESSFUL) @@ -108,6 +110,10 @@ static int rotate_display_landscape(void) if (status != DISP_CHANGE_SUCCESSFUL) return 0; g_display_rotated = 1; + if (GetSystemMetrics(SM_CXSCREEN) <= GetSystemMetrics(SM_CYSCREEN)) { + restore_display_orientation(); + return 0; + } return 1; } @@ -370,7 +376,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s } g_draw_list = snapshot_text; g_display_rotated = 0; - if (rotate_display_landscape()) + if (rotate_display_90()) OutputDebugString(L"PocketJS WM6: landscape display active\r\n"); else OutputDebugString(L"PocketJS WM6: display rotation unavailable\r\n"); diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index f8eeac265..ca0267152 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -643,10 +643,11 @@ int wm6_framebuffer_present(void) HRESULT status; int offset_x; int offset_y; - int copy_width; - int copy_height; - int source_x; - int source_y; + int destination_width; + int destination_height; + int surface_width; + int surface_height; + int bytes_per_pixel; int y; if (!g_primary) @@ -663,57 +664,85 @@ int wm6_framebuffer_present(void) if (status != DD_OK || !surface.lpSurface) return 0; - offset_x = ((int)surface.dwWidth - WM6_FB_WIDTH) / 2; - offset_y = ((int)surface.dwHeight - WM6_FB_HEIGHT) / 2; - source_x = offset_x < 0 ? -offset_x : 0; - source_y = offset_y < 0 ? -offset_y : 0; - copy_width = WM6_FB_WIDTH - source_x; - copy_height = WM6_FB_HEIGHT - source_y; - if (offset_x < 0) - offset_x = 0; - if (offset_y < 0) - offset_y = 0; - if (copy_width > (int)surface.dwWidth - offset_x) - copy_width = (int)surface.dwWidth - offset_x; - if (copy_height > (int)surface.dwHeight - offset_y) - copy_height = (int)surface.dwHeight - offset_y; - - for (y = 0; y < copy_height; y++) { + surface_width = (int)surface.dwWidth; + surface_height = (int)surface.dwHeight; + if (surface_width <= 0 || surface_height <= 0) { + g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + return 0; + } + if (surface_width * WM6_FB_HEIGHT <= + surface_height * WM6_FB_WIDTH) { + destination_width = surface_width; + destination_height = + WM6_FB_HEIGHT * surface_width / WM6_FB_WIDTH; + } else { + destination_height = surface_height; + destination_width = + WM6_FB_WIDTH * surface_height / WM6_FB_HEIGHT; + } + if (destination_width <= 0 || destination_height <= 0) { + g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + return 0; + } + offset_x = (surface_width - destination_width) / 2; + offset_y = (surface_height - destination_height) / 2; + bytes_per_pixel = (int)surface.ddpfPixelFormat.dwRGBBitCount / 8; + if (bytes_per_pixel != 2 && bytes_per_pixel != 3 && + bytes_per_pixel != 4) { + g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + return 0; + } + for (y = 0; y < surface_height; y++) + memset((unsigned char *)surface.lpSurface + y * surface.lPitch, + 0, surface_width * bytes_per_pixel); + + for (y = 0; y < destination_height; y++) { unsigned char *destination; const unsigned short *source; + int source_y; int x; + source_y = y * WM6_FB_HEIGHT / destination_height; destination = (unsigned char *)surface.lpSurface + (offset_y + y) * surface.lPitch; - source = &g_pixels[(source_y + y) * WM6_FB_WIDTH + source_x]; + source = &g_pixels[source_y * WM6_FB_WIDTH]; if (surface.ddpfPixelFormat.dwRGBBitCount == 16) { unsigned short *pixels; pixels = (unsigned short *)destination + offset_x; - for (x = 0; x < copy_width; x++) + for (x = 0; x < destination_width; x++) { + int source_x; + + source_x = x * WM6_FB_WIDTH / destination_width; pixels[x] = (unsigned short)convert_pixel( - source[x], &surface.ddpfPixelFormat); + source[source_x], &surface.ddpfPixelFormat); + } } else if (surface.ddpfPixelFormat.dwRGBBitCount == 32) { DWORD *pixels; pixels = (DWORD *)destination + offset_x; - for (x = 0; x < copy_width; x++) - pixels[x] = convert_pixel(source[x], &surface.ddpfPixelFormat); - } else if (surface.ddpfPixelFormat.dwRGBBitCount == 24) { + for (x = 0; x < destination_width; x++) { + int source_x; + + source_x = x * WM6_FB_WIDTH / destination_width; + pixels[x] = convert_pixel( + source[source_x], &surface.ddpfPixelFormat); + } + } else { unsigned char *pixels; pixels = destination + offset_x * 3; - for (x = 0; x < copy_width; x++) { + for (x = 0; x < destination_width; x++) { DWORD color; + int source_x; - color = convert_pixel(source[x], &surface.ddpfPixelFormat); + source_x = x * WM6_FB_WIDTH / destination_width; + color = convert_pixel( + source[source_x], &surface.ddpfPixelFormat); pixels[x * 3] = (unsigned char)color; pixels[x * 3 + 1] = (unsigned char)(color >> 8); pixels[x * 3 + 2] = (unsigned char)(color >> 16); } - } else { - g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); - return 0; } } g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 1fe69de52..5cd9ef4e8 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -145,10 +145,10 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).not.toContain("ascii_to_wide(message, 256, result)"); expect(host).toContain('static const char snapshot[] = "__wm6DrawList()"'); expect(host).toContain("CreateWindow(class_name"); - expect(host).toContain("rotate_display_landscape()"); + expect(host).toContain("rotate_display_90()"); expect(host).toContain("EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS"); expect(host).toContain("DM_DISPLAYORIENTATION"); - expect(host).toContain("DMDO_90"); + expect(host).toContain("requested.dmDisplayOrientation = DMDO_90"); expect(host).toContain("restore_display_orientation()"); expect(host).toContain("paint_demo(window, dc)"); expect(host).toContain('L"PocketJS.WM6.Demo.js"'); @@ -163,6 +163,14 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(framebuffer).toContain("static unsigned short g_pixels["); expect(framebuffer).toContain("g_primary->lpVtbl->Lock("); expect(framebuffer).toContain("g_primary->lpVtbl->Unlock("); + expect(framebuffer).toContain("destination_width"); + expect(framebuffer).toContain("destination_height"); + expect(framebuffer).toContain( + "source_x = x * WM6_FB_WIDTH / destination_width", + ); + expect(framebuffer).toContain( + "source_y = y * WM6_FB_HEIGHT / destination_height", + ); expect(framebuffer).not.toContain("DDLOCK_WAIT"); expect(framebuffer).not.toContain("IDirectDrawSurface_"); expect(framebuffer).toContain("wm6_framebuffer_load_pak"); From 943cbffcedf015691081c3fc62c776dd56727753 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 17:52:28 +0900 Subject: [PATCH 26/53] fix(wm6): preserve the requested display rotation --- hosts/wm6/vs2005/README.md | 3 ++- hosts/wm6/vs2005/src/quickjs_deploy.c | 14 ++++++++++++-- tests/wm6-project.test.ts | 5 +++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index ff3080094..8c5797bb8 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -18,7 +18,8 @@ This solution contains three native Smart Device applications for the HP iPAQ creating the window and restores the previous mode when it exits. The 480x272 logical framebuffer is aspect-fitted and centered on the actual DirectDraw surface, so QVGA, VGA, and other WM6 display sizes share the same - bundle without cropping. + bundle without cropping. The window title reports whether landscape rotation + succeeded, even when the process was launched without a debugger attached. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index a1a3b8f29..2676c1f39 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -105,6 +105,11 @@ static int rotate_display_90(void) NULL, &requested, NULL, CDS_TEST, NULL); if (status != DISP_CHANGE_SUCCESSFUL) return 0; + /* + * Windows CE also uses CDS_TEST with DM_DISPLAYORIENTATION to return the + * current orientation in this field, so restore the requested value. + */ + requested.dmDisplayOrientation = DMDO_90; status = ChangeDisplaySettingsEx( NULL, &requested, NULL, CDS_RESET, NULL); if (status != DISP_CHANGE_SUCCESSFUL) @@ -300,6 +305,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s WNDCLASS window_class; HWND window; MSG message_loop; + int rotation_ready; int status; (void)instance; @@ -376,7 +382,8 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s } g_draw_list = snapshot_text; g_display_rotated = 0; - if (rotate_display_90()) + rotation_ready = rotate_display_90(); + if (rotation_ready) OutputDebugString(L"PocketJS WM6: landscape display active\r\n"); else OutputDebugString(L"PocketJS WM6: display rotation unavailable\r\n"); @@ -391,7 +398,10 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s LocalFree(message); return 6; } - window = CreateWindow(class_name, L"PocketJS Hero Demo", + window = CreateWindow(class_name, + rotation_ready + ? L"PocketJS Hero Demo [landscape]" + : L"PocketJS Hero Demo [rotation unavailable]", WS_VISIBLE, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 5cd9ef4e8..08d16ae8a 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -149,7 +149,12 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).toContain("EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS"); expect(host).toContain("DM_DISPLAYORIENTATION"); expect(host).toContain("requested.dmDisplayOrientation = DMDO_90"); + expect( + host.match(/requested\.dmDisplayOrientation = DMDO_90/g), + ).toHaveLength(2); expect(host).toContain("restore_display_orientation()"); + expect(host).toContain('L"PocketJS Hero Demo [landscape]"'); + expect(host).toContain('L"PocketJS Hero Demo [rotation unavailable]"'); expect(host).toContain("paint_demo(window, dc)"); expect(host).toContain('L"PocketJS.WM6.Demo.js"'); expect(host).toContain('L"PocketJS.WM6.Demo.pak"'); From 8232aab91c60fb451279f020a84178be65e631c4 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 19:49:51 +0900 Subject: [PATCH 27/53] fix(wm6): recover rotated surface pixel masks --- hosts/wm6/vs2005/README.md | 3 ++ hosts/wm6/vs2005/src/wm6_framebuffer.c | 54 +++++++++++++++++++++++--- tests/wm6-project.test.ts | 3 ++ 3 files changed, 54 insertions(+), 6 deletions(-) diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 8c5797bb8..5437db6bd 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -20,6 +20,9 @@ This solution contains three native Smart Device applications for the HP iPAQ DirectDraw surface, so QVGA, VGA, and other WM6 display sizes share the same bundle without cropping. The window title reports whether landscape rotation succeeded, even when the process was launched without a debugger attached. + Pixel masks are queried from the primary surface separately after a display + rotation; a missing 16-bit mask falls back to the WM6 RGB565 layout instead + of silently converting every source color to black. The Probe and Vapor applications are VC8-compatible Smart Device projects rather than desktop Win32 projects. The QuickJS deployment anchor is also a diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index ca0267152..1a83ff3e5 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -163,6 +163,37 @@ static DWORD convert_pixel(unsigned short source, const DDPIXELFORMAT *format) pack_component(blue, format->dwBBitMask); } +static int resolve_primary_pixel_format(const DDSURFACEDESC *surface, + DDPIXELFORMAT *format) +{ + HRESULT status; + + memset(format, 0, sizeof(*format)); + format->dwSize = sizeof(*format); + status = g_primary->lpVtbl->GetPixelFormat(g_primary, format); + if (status != DD_OK || format->dwRGBBitCount == 0) + *format = surface->ddpfPixelFormat; + if (format->dwRGBBitCount == 16 && + (!format->dwRBitMask || !format->dwGBitMask || + !format->dwBBitMask)) { + format->dwRBitMask = 0xf800u; + format->dwGBitMask = 0x07e0u; + format->dwBBitMask = 0x001fu; + } else if ((format->dwRGBBitCount == 24 || + format->dwRGBBitCount == 32) && + (!format->dwRBitMask || !format->dwGBitMask || + !format->dwBBitMask)) { + format->dwRBitMask = 0x00ff0000u; + format->dwGBitMask = 0x0000ff00u; + format->dwBBitMask = 0x000000ffu; + } + return (format->dwRGBBitCount == 16 || + format->dwRGBBitCount == 24 || + format->dwRGBBitCount == 32) && + format->dwRBitMask && format->dwGBitMask && + format->dwBBitMask; +} + static int parse_font_atlas(const unsigned char *blob, unsigned int length) { Wm6FontAtlas *atlas; @@ -640,6 +671,7 @@ int wm6_framebuffer_render(const char *draw_list) int wm6_framebuffer_present(void) { DDSURFACEDESC surface; + DDPIXELFORMAT pixel_format; HRESULT status; int offset_x; int offset_y; @@ -648,6 +680,7 @@ int wm6_framebuffer_present(void) int surface_width; int surface_height; int bytes_per_pixel; + int pitch; int y; if (!g_primary) @@ -663,6 +696,10 @@ int wm6_framebuffer_present(void) } if (status != DD_OK || !surface.lpSurface) return 0; + if (!resolve_primary_pixel_format(&surface, &pixel_format)) { + g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + return 0; + } surface_width = (int)surface.dwWidth; surface_height = (int)surface.dwHeight; @@ -686,12 +723,17 @@ int wm6_framebuffer_present(void) } offset_x = (surface_width - destination_width) / 2; offset_y = (surface_height - destination_height) / 2; - bytes_per_pixel = (int)surface.ddpfPixelFormat.dwRGBBitCount / 8; + bytes_per_pixel = (int)pixel_format.dwRGBBitCount / 8; if (bytes_per_pixel != 2 && bytes_per_pixel != 3 && bytes_per_pixel != 4) { g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); return 0; } + pitch = surface.lPitch < 0 ? -surface.lPitch : surface.lPitch; + if (surface_width * bytes_per_pixel > pitch) { + g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + return 0; + } for (y = 0; y < surface_height; y++) memset((unsigned char *)surface.lpSurface + y * surface.lPitch, 0, surface_width * bytes_per_pixel); @@ -706,7 +748,7 @@ int wm6_framebuffer_present(void) destination = (unsigned char *)surface.lpSurface + (offset_y + y) * surface.lPitch; source = &g_pixels[source_y * WM6_FB_WIDTH]; - if (surface.ddpfPixelFormat.dwRGBBitCount == 16) { + if (pixel_format.dwRGBBitCount == 16) { unsigned short *pixels; pixels = (unsigned short *)destination + offset_x; @@ -715,9 +757,9 @@ int wm6_framebuffer_present(void) source_x = x * WM6_FB_WIDTH / destination_width; pixels[x] = (unsigned short)convert_pixel( - source[source_x], &surface.ddpfPixelFormat); + source[source_x], &pixel_format); } - } else if (surface.ddpfPixelFormat.dwRGBBitCount == 32) { + } else if (pixel_format.dwRGBBitCount == 32) { DWORD *pixels; pixels = (DWORD *)destination + offset_x; @@ -726,7 +768,7 @@ int wm6_framebuffer_present(void) source_x = x * WM6_FB_WIDTH / destination_width; pixels[x] = convert_pixel( - source[source_x], &surface.ddpfPixelFormat); + source[source_x], &pixel_format); } } else { unsigned char *pixels; @@ -738,7 +780,7 @@ int wm6_framebuffer_present(void) source_x = x * WM6_FB_WIDTH / destination_width; color = convert_pixel( - source[source_x], &surface.ddpfPixelFormat); + source[source_x], &pixel_format); pixels[x * 3] = (unsigned char)color; pixels[x * 3 + 1] = (unsigned char)(color >> 8); pixels[x * 3 + 2] = (unsigned char)(color >> 16); diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index 08d16ae8a..fe292bafd 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -168,6 +168,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(framebuffer).toContain("static unsigned short g_pixels["); expect(framebuffer).toContain("g_primary->lpVtbl->Lock("); expect(framebuffer).toContain("g_primary->lpVtbl->Unlock("); + expect(framebuffer).toContain("g_primary->lpVtbl->GetPixelFormat("); + expect(framebuffer).toContain("resolve_primary_pixel_format"); + expect(framebuffer).toContain("format->dwRBitMask = 0xf800u"); expect(framebuffer).toContain("destination_width"); expect(framebuffer).toContain("destination_height"); expect(framebuffer).toContain( From 62c248d48b1672ea6a5e412c2562fb503de49c55 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Mon, 27 Jul 2026 20:36:49 +0900 Subject: [PATCH 28/53] feat(wm6): use the rotated runtime viewport --- hosts/wm6/quickjs/README.md | 5 +- hosts/wm6/quickjs/demo-host.js | 51 ++++++---- hosts/wm6/vs2005/README.md | 12 ++- .../wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js | 51 ++++++---- hosts/wm6/vs2005/src/quickjs_deploy.c | 93 +++++++++++++++++-- hosts/wm6/vs2005/src/wm6_framebuffer.c | 65 ++++++++----- hosts/wm6/vs2005/src/wm6_framebuffer.h | 5 +- tests/wm6-project.test.ts | 19 +++- 8 files changed, 217 insertions(+), 84 deletions(-) diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index 34ed5bf93..a7c151f96 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -56,7 +56,10 @@ minimal WM6 HostOps bootstrap with the real `dist/hero-main.js` output. VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, deploys both files, mounts the Solid application in QuickJS, and turns its native tree into a compact draw list. The WM6 host rasterizes backgrounds and -rectangles into an application-owned 480×272 RGB565 framebuffer. It reads the +rectangles into an application-owned RGB565 framebuffer sized from the rotated +WM6 screen metrics. It injects those dimensions into `ui.__viewport` before +the real bundle mounts, and the Hero draw-list adapter derives its layout from +the runtime viewport rather than assuming 480×272. It reads the same Inter font-atlas and RGBA image entries that other PocketJS hosts consume from the demo PAK, alpha-blends glyphs, the logo, and a spinner frame directly into RGB565, then presents the buffer through a locked DirectDraw primary diff --git a/hosts/wm6/quickjs/demo-host.js b/hosts/wm6/quickjs/demo-host.js index d27d8e58a..b3d1de884 100644 --- a/hosts/wm6/quickjs/demo-host.js +++ b/hosts/wm6/quickjs/demo-host.js @@ -26,12 +26,16 @@ "spinner-06.svg": 8, "spinner-07.svg": 9 }; + const viewportWidth = Math.max( + 1, Math.floor(Number(globalThis.__wm6ViewportWidth) || 480)); + const viewportHeight = Math.max( + 1, Math.floor(Number(globalThis.__wm6ViewportHeight) || 272)); globalThis.ui = { __host: "wm6", __hostAbi: 1, __textures: textures, - __viewport: { w: 480, h: 272 }, + __viewport: { w: viewportWidth, h: viewportHeight }, createNode(type) { const id = nextNode++; nodes.set(id, { id, type, style: -1, text: "", image: -1, parent: 0, children: [] }); @@ -71,7 +75,11 @@ }; globalThis.__wm6Snapshot = () => { - const lines = ["PocketJS Hero (real bundle)", "viewport 480x272", ""]; + const lines = [ + "PocketJS Hero (real bundle)", + `viewport ${viewportWidth}x${viewportHeight}`, + "" + ]; const visit = (id, depth) => { const current = node(id); if (!current) return; @@ -84,6 +92,10 @@ globalThis.__wm6DrawList = () => { const out = ["B|248|250|252"]; + const width = viewportWidth; + const height = viewportHeight; + const middleY = Math.max(72, Math.floor((height - 90) / 2)); + const footerY = Math.max(middleY + 118, height - 52); const safe = (value) => String(value).replace(/[|\r\n]/g, " "); const rect = (x, y, w, h, r, g, b) => out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); @@ -110,41 +122,42 @@ (values.find((entry) => entry.indexOf("+ RUST + SCEGU") >= 0) || " + RUST + SCEGU")); - text(348, 20, 10, 5, 150, 105, exact("60", "60")); - text(349, 43, 0, 100, 116, 139, exact("FPS", "FPS")); - text(397, 20, 10, 37, 99, 235, exact("42", "42")); - text(394, 43, 0, 100, 116, 139, exact("NODES", "NODES")); - text(449, 20, 10, 217, 119, 6, exact("9", "9")); - text(438, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); + text(width - 132, 20, 10, 5, 150, 105, exact("60", "60")); + text(width - 131, 43, 0, 100, 116, 139, exact("FPS", "FPS")); + text(width - 83, 20, 10, 37, 99, 235, exact("42", "42")); + text(width - 86, 43, 0, 100, 116, 139, exact("NODES", "NODES")); + text(width - 31, 20, 10, 217, 119, 6, exact("9", "9")); + text(width - 42, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); - text(20, 91, 0, 37, 99, 235, + text(20, middleY, 0, 37, 99, 235, exact("ONE RUST CORE · ONE JSX APP", "ONE RUST CORE · ONE JSX APP")); - text(20, 112, 13, 15, 23, 42, + text(20, middleY + 21, 13, 15, 23, 42, exact("JSX at 60 FPS.", "JSX at 60 FPS.")); - image(420, 108, 40, 40, + image(width - 60, middleY + 17, 40, 40, imageHandles.find((handle) => handle >= 2) || textures["spinner-00.svg"]); - rect(20, 159, 105, 4, 59, 130, 246); - rect(125, 159, 105, 4, 6, 182, 212); - text(20, 174, 1, 71, 85, 105, + rect(20, middleY + 68, 105, 4, 59, 130, 246); + rect(125, middleY + 68, 105, 4, 6, 182, 212); + text(20, middleY + 83, 1, 71, 85, 105, exact("Flexbox, springs and baked type —", "Flexbox, springs and baked type —")); - text(253, 174, 1, 71, 85, 105, + text(width >= 480 ? 253 : 20, + middleY + (width >= 480 ? 83 : 101), 1, 71, 85, 105, exact("running on a 2005 handheld.", "running on a 2005 handheld.")); - rect(20, 220, 132, 32, focused ? 37 : 37, + rect(20, footerY, 132, 32, focused ? 37 : 37, focused ? 99 : 99, focused ? 235 : 235); - text(34, 226, 9, 255, 255, 255, + text(34, footerY + 6, 9, 255, 255, 255, exact("Press Circle", "Press Circle")); const counters = values.filter((entry) => /^\d+$/.test(entry)); - text(172, 228, 1, 71, 85, 105, + text(172, footerY + 8, 1, 71, 85, 105, prefix("Count: ", "Count: ") + (counters[counters.length - 1] || "0")); const reactive = values.find((entry) => entry === "Reactive on real hardware."); if (reactive) - text(250, 228, 1, 5, 150, 105, reactive); + text(250, footerY + 8, 1, 5, 150, 105, reactive); return out.join("\n"); }; })(); diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 5437db6bd..f113c5bf3 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -15,11 +15,13 @@ This solution contains three native Smart Device applications for the HP iPAQ assets into the same buffer, and presents it through DirectDraw. GDI is retained only as a compatibility fallback. The host requests the absolute `DMDO_90` orientation relative to the device's default portrait mode before - creating the window and restores the previous mode when it exits. The - 480x272 logical framebuffer is aspect-fitted and centered on the actual - DirectDraw surface, so QVGA, VGA, and other WM6 display sizes share the same - bundle without cropping. The window title reports whether landscape rotation - succeeded, even when the process was launched without a debugger attached. + mounting the bundle and restores the previous mode when it exits. The + rotated `SM_CXSCREEN` and `SM_CYSCREEN` values become the PocketJS viewport + and the dynamically allocated logical framebuffer dimensions, so VGA uses + 640x480 while QVGA uses 320x240. The Hero adapter derives its middle, footer, + right-aligned statistics, and wrapping positions from that viewport instead + of scaling a fixed 480x272 screenshot. The window title reports whether + landscape rotation succeeded, even without a debugger attached. Pixel masks are queried from the primary surface separately after a display rotation; a missing 16-bit mask falls back to the WM6 RGB565 layout instead of silently converting every source color to black. diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js index ca2ad3637..086aa6a1a 100644 --- a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js +++ b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js @@ -27,12 +27,16 @@ "spinner-06.svg": 8, "spinner-07.svg": 9 }; + const viewportWidth = Math.max( + 1, Math.floor(Number(globalThis.__wm6ViewportWidth) || 480)); + const viewportHeight = Math.max( + 1, Math.floor(Number(globalThis.__wm6ViewportHeight) || 272)); globalThis.ui = { __host: "wm6", __hostAbi: 1, __textures: textures, - __viewport: { w: 480, h: 272 }, + __viewport: { w: viewportWidth, h: viewportHeight }, createNode(type) { const id = nextNode++; nodes.set(id, { id, type, style: -1, text: "", image: -1, parent: 0, children: [] }); @@ -72,7 +76,11 @@ }; globalThis.__wm6Snapshot = () => { - const lines = ["PocketJS Hero (real bundle)", "viewport 480x272", ""]; + const lines = [ + "PocketJS Hero (real bundle)", + `viewport ${viewportWidth}x${viewportHeight}`, + "" + ]; const visit = (id, depth) => { const current = node(id); if (!current) return; @@ -85,6 +93,10 @@ globalThis.__wm6DrawList = () => { const out = ["B|248|250|252"]; + const width = viewportWidth; + const height = viewportHeight; + const middleY = Math.max(72, Math.floor((height - 90) / 2)); + const footerY = Math.max(middleY + 118, height - 52); const safe = (value) => String(value).replace(/[|\r\n]/g, " "); const rect = (x, y, w, h, r, g, b) => out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); @@ -111,41 +123,42 @@ (values.find((entry) => entry.indexOf("+ RUST + SCEGU") >= 0) || " + RUST + SCEGU")); - text(348, 20, 10, 5, 150, 105, exact("60", "60")); - text(349, 43, 0, 100, 116, 139, exact("FPS", "FPS")); - text(397, 20, 10, 37, 99, 235, exact("42", "42")); - text(394, 43, 0, 100, 116, 139, exact("NODES", "NODES")); - text(449, 20, 10, 217, 119, 6, exact("9", "9")); - text(438, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); + text(width - 132, 20, 10, 5, 150, 105, exact("60", "60")); + text(width - 131, 43, 0, 100, 116, 139, exact("FPS", "FPS")); + text(width - 83, 20, 10, 37, 99, 235, exact("42", "42")); + text(width - 86, 43, 0, 100, 116, 139, exact("NODES", "NODES")); + text(width - 31, 20, 10, 217, 119, 6, exact("9", "9")); + text(width - 42, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); - text(20, 91, 0, 37, 99, 235, + text(20, middleY, 0, 37, 99, 235, exact("ONE RUST CORE · ONE JSX APP", "ONE RUST CORE · ONE JSX APP")); - text(20, 112, 13, 15, 23, 42, + text(20, middleY + 21, 13, 15, 23, 42, exact("JSX at 60 FPS.", "JSX at 60 FPS.")); - image(420, 108, 40, 40, + image(width - 60, middleY + 17, 40, 40, imageHandles.find((handle) => handle >= 2) || textures["spinner-00.svg"]); - rect(20, 159, 105, 4, 59, 130, 246); - rect(125, 159, 105, 4, 6, 182, 212); - text(20, 174, 1, 71, 85, 105, + rect(20, middleY + 68, 105, 4, 59, 130, 246); + rect(125, middleY + 68, 105, 4, 6, 182, 212); + text(20, middleY + 83, 1, 71, 85, 105, exact("Flexbox, springs and baked type —", "Flexbox, springs and baked type —")); - text(253, 174, 1, 71, 85, 105, + text(width >= 480 ? 253 : 20, + middleY + (width >= 480 ? 83 : 101), 1, 71, 85, 105, exact("running on a 2005 handheld.", "running on a 2005 handheld.")); - rect(20, 220, 132, 32, focused ? 37 : 37, + rect(20, footerY, 132, 32, focused ? 37 : 37, focused ? 99 : 99, focused ? 235 : 235); - text(34, 226, 9, 255, 255, 255, + text(34, footerY + 6, 9, 255, 255, 255, exact("Press Circle", "Press Circle")); const counters = values.filter((entry) => /^\d+$/.test(entry)); - text(172, 228, 1, 71, 85, 105, + text(172, footerY + 8, 1, 71, 85, 105, prefix("Count: ", "Count: ") + (counters[counters.length - 1] || "0")); const reactive = values.find((entry) => entry === "Reactive on real hardware."); if (reactive) - text(250, 228, 1, 5, 150, 105, reactive); + text(250, footerY + 8, 1, 5, 150, 105, reactive); return out.join("\n"); }; })(); diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 2676c1f39..4fb4d1aef 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -77,8 +77,65 @@ static void ascii_to_wide(WCHAR *output, unsigned int capacity, output[index] = L'\0'; } +static int append_script_text(char **cursor, const char *end, + const char *text) +{ + while (*text) { + if (*cursor >= end) + return 0; + **cursor = *text; + (*cursor)++; + text++; + } + return 1; +} + +static int append_script_number(char **cursor, const char *end, + unsigned int value) +{ + char digits[16]; + int length; + + length = 0; + do { + digits[length++] = (char)('0' + value % 10u); + value /= 10u; + } while (value && length < 16); + while (length > 0) { + if (*cursor >= end) + return 0; + **cursor = digits[--length]; + (*cursor)++; + } + return 1; +} + +static int make_viewport_script(char *buffer, unsigned int capacity, + int width, int height) +{ + char *cursor; + const char *end; + + if (!buffer || capacity == 0 || width <= 0 || height <= 0) + return 0; + cursor = buffer; + end = buffer + capacity - 1; + if (!append_script_text( + &cursor, end, "globalThis.__wm6ViewportWidth=") || + !append_script_number(&cursor, end, (unsigned int)width) || + !append_script_text( + &cursor, end, ";globalThis.__wm6ViewportHeight=") || + !append_script_number(&cursor, end, (unsigned int)height) || + !append_script_text(&cursor, end, ";")) + return 0; + *cursor = '\0'; + return (int)(cursor - buffer); +} + static char *g_draw_list; static int g_framebuffer_ready; +static int g_viewport_width; +static int g_viewport_height; static DEVMODE g_original_display_mode; static int g_display_rotated; @@ -183,8 +240,8 @@ static void paint_demo(HWND window, HDC dc) GetClientRect(window, &client); if (!g_framebuffer_ready) FillRect(dc, &client, (HBRUSH)GetStockObject(BLACK_BRUSH)); - offset_x = (client.right - 480) / 2; - offset_y = (client.bottom - 272) / 2; + offset_x = (client.right - g_viewport_width) / 2; + offset_y = (client.bottom - g_viewport_height) / 2; line = g_draw_list; while (line && *line) { int x, y, w, h, slot, r, g, b; @@ -203,8 +260,8 @@ static void paint_demo(HWND window, HDC dc) b = read_number(&cursor); logical.left = offset_x; logical.top = offset_y; - logical.right = offset_x + 480; - logical.bottom = offset_y + 272; + logical.right = offset_x + g_viewport_width; + logical.bottom = offset_y + g_viewport_height; brush = CreateSolidBrush(RGB(r, g, b)); FillRect(dc, &logical, brush); DeleteObject(brush); @@ -296,6 +353,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s wm6_qjs_destroy_fn destroy_runtime; wm6_qjs_handle runtime; char result[256]; + char viewport_script[128]; char *bundle; char *snapshot_text; unsigned int bundle_length; @@ -307,6 +365,9 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s MSG message_loop; int rotation_ready; int status; + int viewport_height; + int viewport_length; + int viewport_width; (void)instance; (void)previous; @@ -362,8 +423,23 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s L"PocketJS QuickJS Host", MB_OK); return 5; } - status = eval(runtime, bundle, bundle_length, - result, sizeof(result)); + g_display_rotated = 0; + rotation_ready = rotate_display_90(); + viewport_width = GetSystemMetrics(SM_CXSCREEN); + viewport_height = GetSystemMetrics(SM_CYSCREEN); + g_viewport_width = viewport_width; + g_viewport_height = viewport_height; + viewport_length = make_viewport_script( + viewport_script, sizeof(viewport_script), + viewport_width, viewport_height); + status = viewport_length > 0 + ? eval(runtime, viewport_script, + (unsigned int)viewport_length, + result, sizeof(result)) + : -1; + if (status == 0) + status = eval(runtime, bundle, bundle_length, + result, sizeof(result)); if (status == 0) status = drain_jobs(runtime, result, sizeof(result)) < 0 ? -1 : 0; if (status == 0) @@ -374,6 +450,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s FreeLibrary(module); if (status != 0) { + restore_display_orientation(); ascii_to_wide(message, 8192, result); MessageBox(NULL, message, L"PocketJS QuickJS DLL failure", MB_OK); LocalFree(snapshot_text); @@ -381,8 +458,6 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s return 5; } g_draw_list = snapshot_text; - g_display_rotated = 0; - rotation_ready = rotate_display_90(); if (rotation_ready) OutputDebugString(L"PocketJS WM6: landscape display active\r\n"); else @@ -415,7 +490,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s g_framebuffer_ready = 0; if (GetModuleFileName(NULL, pak_path, MAX_PATH) && append_file_name(pak_path, MAX_PATH, L"PocketJS.WM6.Demo.pak") && - wm6_framebuffer_open(window) && + wm6_framebuffer_open(window, viewport_width, viewport_height) && wm6_framebuffer_load_pak(pak_path) && wm6_framebuffer_render(g_draw_list)) { g_framebuffer_ready = 1; diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index 1a83ff3e5..6a3b0f98e 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -5,7 +5,9 @@ static LPDIRECTDRAW g_direct_draw; static LPDIRECTDRAWSURFACE g_primary; -static unsigned short g_pixels[WM6_FB_WIDTH * WM6_FB_HEIGHT]; +static unsigned short *g_pixels; +static int g_width; +static int g_height; static unsigned char *g_pak; static unsigned int g_pak_size; @@ -85,10 +87,10 @@ static void blend_pixel(int x, int y, int red, int green, int blue, int destination_green; int destination_blue; - if (x < 0 || x >= WM6_FB_WIDTH || y < 0 || y >= WM6_FB_HEIGHT || + if (x < 0 || x >= g_width || y < 0 || y >= g_height || alpha == 0) return; - destination = g_pixels[y * WM6_FB_WIDTH + x]; + destination = g_pixels[y * g_width + x]; destination_red = (int)(((destination >> 11) & 31u) * 255u / 31u); destination_green = (int)(((destination >> 5) & 63u) * 255u / 63u); destination_blue = (int)((destination & 31u) * 255u / 31u); @@ -99,7 +101,7 @@ static void blend_pixel(int x, int y, int red, int green, int blue, (unsigned int)destination_green * inverse + 127u) / 255u); blue = (int)(((unsigned int)blue * alpha + (unsigned int)destination_blue * inverse + 127u) / 255u); - g_pixels[y * WM6_FB_WIDTH + x] = rgb565(red, green, blue); + g_pixels[y * g_width + x] = rgb565(red, green, blue); } static void fill_rect(int x, int y, int width, int height, @@ -116,16 +118,16 @@ static void fill_rect(int x, int y, int width, int height, top = y < 0 ? 0 : y; right = x + width; bottom = y + height; - if (right > WM6_FB_WIDTH) - right = WM6_FB_WIDTH; - if (bottom > WM6_FB_HEIGHT) - bottom = WM6_FB_HEIGHT; + if (right > g_width) + right = g_width; + if (bottom > g_height) + bottom = g_height; if (left >= right || top >= bottom) return; for (row = top; row < bottom; row++) { unsigned short *destination; - destination = &g_pixels[row * WM6_FB_WIDTH + left]; + destination = &g_pixels[row * g_width + left]; for (column = left; column < right; column++) *destination++ = color; } @@ -555,12 +557,24 @@ static int draw_image(int x, int y, int width, int height, int handle) return 1; } -int wm6_framebuffer_open(HWND window) +int wm6_framebuffer_open(HWND window, int logical_width, int logical_height) { DDSURFACEDESC description; HRESULT status; + unsigned int pixel_count; wm6_framebuffer_close(); + if (logical_width <= 0 || logical_height <= 0 || + logical_width > 2048 || logical_height > 2048) + return 0; + pixel_count = (unsigned int)logical_width * + (unsigned int)logical_height; + g_pixels = (unsigned short *)LocalAlloc( + LMEM_FIXED, pixel_count * sizeof(unsigned short)); + if (!g_pixels) + return 0; + g_width = logical_width; + g_height = logical_height; status = DirectDrawCreate(NULL, &g_direct_draw, NULL); if (status != DD_OK || !g_direct_draw) return 0; @@ -593,6 +607,12 @@ void wm6_framebuffer_close(void) g_direct_draw->lpVtbl->Release(g_direct_draw); g_direct_draw = NULL; } + if (g_pixels) { + LocalFree(g_pixels); + g_pixels = NULL; + } + g_width = 0; + g_height = 0; if (g_pak) { LocalFree(g_pak); g_pak = NULL; @@ -607,9 +627,9 @@ int wm6_framebuffer_render(const char *draw_list) const char *line; int succeeded; - if (!draw_list) + if (!draw_list || !g_pixels || g_width <= 0 || g_height <= 0) return 0; - fill_rect(0, 0, WM6_FB_WIDTH, WM6_FB_HEIGHT, rgb565(0, 0, 0)); + fill_rect(0, 0, g_width, g_height, rgb565(0, 0, 0)); succeeded = 1; line = draw_list; while (*line) { @@ -629,7 +649,7 @@ int wm6_framebuffer_render(const char *draw_list) red = read_number(&cursor); green = read_number(&cursor); blue = read_number(&cursor); - fill_rect(0, 0, WM6_FB_WIDTH, WM6_FB_HEIGHT, + fill_rect(0, 0, g_width, g_height, rgb565(red, green, blue)); } else if (line[0] == 'R') { x = read_number(&cursor); @@ -683,7 +703,7 @@ int wm6_framebuffer_present(void) int pitch; int y; - if (!g_primary) + if (!g_primary || !g_pixels || g_width <= 0 || g_height <= 0) return 0; memset(&surface, 0, sizeof(surface)); surface.dwSize = sizeof(surface); @@ -707,15 +727,14 @@ int wm6_framebuffer_present(void) g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); return 0; } - if (surface_width * WM6_FB_HEIGHT <= - surface_height * WM6_FB_WIDTH) { + if (surface_width * g_height <= surface_height * g_width) { destination_width = surface_width; destination_height = - WM6_FB_HEIGHT * surface_width / WM6_FB_WIDTH; + g_height * surface_width / g_width; } else { destination_height = surface_height; destination_width = - WM6_FB_WIDTH * surface_height / WM6_FB_HEIGHT; + g_width * surface_height / g_height; } if (destination_width <= 0 || destination_height <= 0) { g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); @@ -744,10 +763,10 @@ int wm6_framebuffer_present(void) int source_y; int x; - source_y = y * WM6_FB_HEIGHT / destination_height; + source_y = y * g_height / destination_height; destination = (unsigned char *)surface.lpSurface + (offset_y + y) * surface.lPitch; - source = &g_pixels[source_y * WM6_FB_WIDTH]; + source = &g_pixels[source_y * g_width]; if (pixel_format.dwRGBBitCount == 16) { unsigned short *pixels; @@ -755,7 +774,7 @@ int wm6_framebuffer_present(void) for (x = 0; x < destination_width; x++) { int source_x; - source_x = x * WM6_FB_WIDTH / destination_width; + source_x = x * g_width / destination_width; pixels[x] = (unsigned short)convert_pixel( source[source_x], &pixel_format); } @@ -766,7 +785,7 @@ int wm6_framebuffer_present(void) for (x = 0; x < destination_width; x++) { int source_x; - source_x = x * WM6_FB_WIDTH / destination_width; + source_x = x * g_width / destination_width; pixels[x] = convert_pixel( source[source_x], &pixel_format); } @@ -778,7 +797,7 @@ int wm6_framebuffer_present(void) DWORD color; int source_x; - source_x = x * WM6_FB_WIDTH / destination_width; + source_x = x * g_width / destination_width; color = convert_pixel( source[source_x], &pixel_format); pixels[x * 3] = (unsigned char)color; diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.h b/hosts/wm6/vs2005/src/wm6_framebuffer.h index 9aa5655cd..1913a2475 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.h +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.h @@ -3,10 +3,7 @@ #include -#define WM6_FB_WIDTH 480 -#define WM6_FB_HEIGHT 272 - -int wm6_framebuffer_open(HWND window); +int wm6_framebuffer_open(HWND window, int logical_width, int logical_height); int wm6_framebuffer_load_pak(const WCHAR *path); void wm6_framebuffer_close(void); int wm6_framebuffer_render(const char *draw_list); diff --git a/tests/wm6-project.test.ts b/tests/wm6-project.test.ts index fe292bafd..4215e4f6e 100644 --- a/tests/wm6-project.test.ts +++ b/tests/wm6-project.test.ts @@ -153,6 +153,9 @@ describe("Windows Mobile 6 VS2005 projects", () => { host.match(/requested\.dmDisplayOrientation = DMDO_90/g), ).toHaveLength(2); expect(host).toContain("restore_display_orientation()"); + expect(host).toContain("make_viewport_script"); + expect(host).toContain("globalThis.__wm6ViewportWidth="); + expect(host).toContain("globalThis.__wm6ViewportHeight="); expect(host).toContain('L"PocketJS Hero Demo [landscape]"'); expect(host).toContain('L"PocketJS Hero Demo [rotation unavailable]"'); expect(host).toContain("paint_demo(window, dc)"); @@ -160,12 +163,16 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(host).toContain('L"PocketJS.WM6.Demo.pak"'); expect(host).toContain("ExtTextOut(dc"); expect(host).not.toContain("\n TextOut(dc"); - expect(host).toContain("wm6_framebuffer_open(window)"); + expect(host).toContain( + "wm6_framebuffer_open(window, viewport_width, viewport_height)", + ); expect(host).toContain("wm6_framebuffer_present()"); expect(host).toContain("DirectDraw RGB565 + PAK assets active"); expect(host).toContain("DirectDraw unavailable; using GDI"); expect(framebuffer).toContain("#include "); - expect(framebuffer).toContain("static unsigned short g_pixels["); + expect(framebuffer).toContain("static unsigned short *g_pixels"); + expect(framebuffer).toContain("g_width = logical_width"); + expect(framebuffer).toContain("g_height = logical_height"); expect(framebuffer).toContain("g_primary->lpVtbl->Lock("); expect(framebuffer).toContain("g_primary->lpVtbl->Unlock("); expect(framebuffer).toContain("g_primary->lpVtbl->GetPixelFormat("); @@ -174,10 +181,10 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(framebuffer).toContain("destination_width"); expect(framebuffer).toContain("destination_height"); expect(framebuffer).toContain( - "source_x = x * WM6_FB_WIDTH / destination_width", + "source_x = x * g_width / destination_width", ); expect(framebuffer).toContain( - "source_y = y * WM6_FB_HEIGHT / destination_height", + "source_y = y * g_height / destination_height", ); expect(framebuffer).not.toContain("DDLOCK_WAIT"); expect(framebuffer).not.toContain("IDirectDrawSurface_"); @@ -219,6 +226,10 @@ describe("Windows Mobile 6 VS2005 projects", () => { expect(demo).toContain("ONE RUST CORE"); expect(demo).toContain("spinner-00.svg"); expect(demo).toContain("globalThis.__wm6DrawList"); + expect(demo).toContain("globalThis.__wm6ViewportWidth"); + expect(demo).toContain("__viewport: { w: viewportWidth, h: viewportHeight }"); + expect(demo).toContain("const middleY = Math.max"); + expect(demo).toContain("const footerY = Math.max"); expect(demo).toContain('const out = ["B|248|250|252"]'); expect(demo).toContain("I|${x}|${y}|${w}|${h}|${handle}"); expect(demoPak.subarray(0, 4).toString()).toBe("DCPK"); From 2e63f448a48e23d89de93b3ac73833d4caa1176b Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 00:21:57 +0900 Subject: [PATCH 29/53] feat(wm6): link the native Rust core --- docs/WM6_IPAQ_212.md | 73 +- engine/symbian/Cargo.toml | 4 +- engine/symbian/src/lib.rs | 50 +- engine/wm6/README.md | 40 + engine/wm6/build-core.sh | 64 ++ engine/wm6/core-sections.ld | 45 ++ engine/wm6/tools/patch_arm_coff_relocs.py | 701 ++++++++++++++++++ hosts/wm6/quickjs/README.md | 37 +- hosts/wm6/quickjs/build-demo.sh | 3 +- hosts/wm6/quickjs/build-runtime.sh | 10 +- hosts/wm6/quickjs/demo-host.js | 163 ---- hosts/wm6/quickjs/src/pocketjs_wm6_core.h | 73 ++ hosts/wm6/quickjs/src/runtime_dll.c | 546 +++++++++++++- hosts/wm6/vs2005/README.md | 31 +- hosts/wm6/vs2005/prebuilt/.gitignore | 1 + .../wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js | 165 +---- .../vs2005/prebuilt/PocketJS.WM6.QuickJS.dll | Bin 802157 -> 1549684 bytes hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h | 17 +- hosts/wm6/vs2005/src/quickjs_deploy.c | 356 ++++----- hosts/wm6/vs2005/src/wm6_framebuffer.c | 622 ++-------------- hosts/wm6/vs2005/src/wm6_framebuffer.h | 8 +- 21 files changed, 1785 insertions(+), 1224 deletions(-) create mode 100644 engine/wm6/README.md create mode 100755 engine/wm6/build-core.sh create mode 100644 engine/wm6/core-sections.ld create mode 100644 engine/wm6/tools/patch_arm_coff_relocs.py delete mode 100644 hosts/wm6/quickjs/demo-host.js create mode 100644 hosts/wm6/quickjs/src/pocketjs_wm6_core.h create mode 100644 hosts/wm6/vs2005/prebuilt/.gitignore diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md index 5ee33c27e..72b0fa844 100644 --- a/docs/WM6_IPAQ_212.md +++ b/docs/WM6_IPAQ_212.md @@ -37,9 +37,9 @@ runtime: - the native PocketJS hosts embed QuickJS; - the retained renderer lives in the Rust `engine/core` crate; - Visual C++ 2005 predates modern C/C++ language features; -- stable Rust has no Windows CE 5.2 / ARMV4I target, and its modern - ARM-Windows object format cannot simply be linked into a VC8 Smart Device - executable; +- stable Rust has no Windows CE 5.2 / ARMV4I target; the implemented build + therefore emits ARMv4T ELF and performs a checked relocation/symbol + conversion to WinCE COFF with dual-target CeGCC binutils; - Windows Mobile 6 has neither a suitable browser runtime nor modern Web APIs, so wrapping the web host is not a viable shortcut. @@ -86,10 +86,9 @@ The CeGCC build targets ARMV4T with interworking rather than the PXA310's ARMv5TE extensions: the WM6 ARMV4I emulator rejects ARMv5-only instructions such as `CLZ`, while the physical PXA310 remains backward-compatible. -Do not begin with the full PocketJS bundle. QuickJS will need a dedicated -WinCE compatibility layer for time, allocation, file APIs, missing CRT calls, -and any missing runtime facilities. Keep those changes as a reviewable patch, -as the Symbian toolchain already does. Gate 1 remains open until the 100-cycle +QuickJS now has a dedicated WinCE compatibility layer for allocation, missing +CRT calls, and the subset used by the Hero guest. Those changes remain a +reviewable patch, as the Symbian toolchain does. Gate 1 remains open until the 100-cycle probe passes on physical iPAQ hardware with before/after free-memory receipts; emulator success validates the binary and ABI but cannot close the hardware gate. @@ -100,7 +99,9 @@ and designated initializers. Compiling it as C++ is also not a shortcut because the C sources rely on implicit `void *` conversions and C linkage rules. Gate 1 therefore uses a separately owned GNU WinCE build. The future VS2005 host will load a CeGCC-built DLL through a narrow C ABI; QuickJS values and allocator -ownership must never cross that boundary. +ownership must never cross that boundary. That DLL boundary is now +implemented as ABI v2; it also owns the linked Rust core so QuickJS values, +Rust allocations, and framebuffer pointers stay on the CeGCC side. ### AOT milestone — Pocket Vapor Todo (implemented) @@ -119,34 +120,34 @@ heap or JavaScript engine, and it gives the real iPAQ a useful memory/input test while QuickJS compatibility work continues. It must not be described as ordinary PocketJS guest compatibility. -### Gate 2 — renderer choice - -The existing Rust core cannot be treated as a linkable WM6 library. Choose one -of these paths only after Gate 1: - -1. **Guest-compatible host (preferred, larger):** port the backend-agnostic - retained UI and software rasterizer to portable C/C++03 behind the existing - `ui_*` ABI. Reuse `hosts/symbian/runtime/pocketjs_symbian_core.h` as the ABI - inventory, but create a platform-neutral header before sharing it. -2. **AOT-first host (implemented as an early milestone, different execution - class):** adapt the C Pocket Vapor runtime to VC8 and compile applications - ahead of time. This puts Pocket-authored UI on the device sooner, but it is - not a PocketJS guest and cannot be advertised as compatible with ordinary - JS bundles. - -For the guest path, start with solid rectangles, clipping, text atlas blits, -and touch hit testing. Use a 240×320 or 480×272 logical viewport rendered to a -16-bit back buffer, then scale/letterbox to the VGA panel. A full 480×640 -32-bit double buffer consumes about 2.34 MiB before textures; RGB565 halves -that cost and is a better first hardware target. - -### Gate 3 — PocketJS HostOps - -After QuickJS and rendering work independently, bind the append-only HostOps -surface. Start with lifecycle, node creation, style/property batches, text, -tick/render, touch, and buttons. Then boot the smallest compiled fixture, not -the gallery or launcher. Add WM6 to the private development profiles only -after its manifest resolver rejects unsupported capabilities. +### Gate 2 — native Rust renderer (implemented; runtime receipt pending) + +The guest-compatible path now reuses the actual Rust core rather than +rewriting it in C: + +1. nightly rustc builds the freestanding core for `armv4t-none-eabi`; +2. ARM ELF ld merges per-item sections and discards unwind/LLVM metadata; +3. dual-target CeGCC binutils converts ELF to WinCE COFF; +4. a repository tool reconstructs all COFF relocation symbol indices and + strictly maps `R_ARM_ABS32`, `R_ARM_CALL`, and `R_ARM_JUMP24`; +5. CeGCC links that object into the QuickJS DLL. + +The final DLL has 16 PE sections instead of thousands of Rust per-item +sections. The core renders its real incremental ARGB32 framebuffer at the +rotated native viewport; the VC8 host converts it to an RGB565 staging buffer +and presents it through DirectDraw. The next emulator run must provide the +runtime receipt before this gate is considered closed. + +### Gate 3 — PocketJS HostOps (implemented; runtime receipt pending) + +The ABI v2 DLL installs native lifecycle, node, style/property batch, text, +texture/font, animation, focus/hit-test, debug, tick, and render operations. +It copies the PAK into QuickJS before evaluating the unmodified Hero bundle, +calls `globalThis.frame` at the WM6 timer cadence, ticks the core, and returns +the incremental framebuffer. The former JavaScript tree and hand-authored +draw-list adapter have been removed. D-pad keys and Enter/Space currently feed +the PocketJS directional/Circle button bits; stylus forwarding remains a +follow-up after the first core-rendered emulator receipt. ### Gate 4 — packaging and production admission diff --git a/engine/symbian/Cargo.toml b/engine/symbian/Cargo.toml index ea5591fa1..b76bf4c11 100644 --- a/engine/symbian/Cargo.toml +++ b/engine/symbian/Cargo.toml @@ -22,8 +22,10 @@ edition = "2021" crate-type = ["rlib", "staticlib"] [features] -default = ["standalone-extension-provider"] +default = ["standalone-extension-provider", "freestanding", "gles2"] standalone-extension-provider = [] +freestanding = [] +gles2 = [] [dependencies] pocketjs-core = { path = "../core" } diff --git a/engine/symbian/src/lib.rs b/engine/symbian/src/lib.rs index 9431c2979..6b3275b7f 100644 --- a/engine/symbian/src/lib.rs +++ b/engine/symbian/src/lib.rs @@ -11,36 +11,36 @@ //! packed, top-left-origin ARGB32 pixels; those pointers remain valid until //! the next capture, viewport change, init, or shutdown call. -#![cfg_attr(target_os = "none", no_std)] -#![cfg_attr(target_os = "none", feature(alloc_error_handler))] +#![cfg_attr(all(feature = "freestanding", not(test)), no_std)] +#![cfg_attr(all(feature = "freestanding", not(test)), feature(alloc_error_handler))] #![allow(static_mut_refs)] #![allow(clippy::not_unsafe_ptr_arg_deref)] extern crate alloc; use alloc::vec::Vec; -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] use core::alloc::{GlobalAlloc, Layout}; -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] use core::ffi::c_void; use pocketjs_core::damage::{DamagePolicy, DamageTracker, DEFAULT_DAMAGE_REGIONS}; use pocketjs_core::raster; use pocketjs_core::Ui; -#[cfg(any(target_os = "none", test))] -mod gles2; pub mod extension; +#[cfg(feature = "gles2")] +mod gles2; -#[cfg(any(target_os = "none", test))] +#[cfg(any(feature = "freestanding", test))] const C_MALLOC_ALIGNMENT: usize = 8; -#[cfg(any(target_os = "none", test))] +#[cfg(any(feature = "freestanding", test))] #[inline] const fn c_allocator_supports_alignment(alignment: usize) -> bool { alignment <= C_MALLOC_ALIGNMENT } -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] unsafe extern "C" { fn malloc(size: usize) -> *mut c_void; fn realloc(ptr: *mut c_void, size: usize) -> *mut c_void; @@ -48,10 +48,10 @@ unsafe extern "C" { fn abort() -> !; } -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] struct CAllocator; -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] unsafe impl GlobalAlloc for CAllocator { unsafe fn alloc(&self, layout: Layout) -> *mut u8 { if !c_allocator_supports_alignment(layout.align()) { @@ -72,17 +72,17 @@ unsafe impl GlobalAlloc for CAllocator { } } -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] #[global_allocator] static ALLOCATOR: CAllocator = CAllocator; -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] #[panic_handler] fn panic(_info: &core::panic::PanicInfo<'_>) -> ! { unsafe { abort() } } -#[cfg(target_os = "none")] +#[cfg(all(feature = "freestanding", not(test)))] #[alloc_error_handler] fn allocation_error(_layout: Layout) -> ! { unsafe { abort() } @@ -145,7 +145,7 @@ fn clear_framebuffer() { /// Reset the single UI instance. `raster_density == 0` selects density 1. #[no_mangle] pub extern "C" fn ui_init(raster_density: u32) { - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] unsafe { // This call may happen without a current GL context, so the backend // only marks its caches stale and defers replacement until render. @@ -160,7 +160,7 @@ pub extern "C" fn ui_init(raster_density: u32) { /// Drop all retained UI, texture, font, and framebuffer allocations. #[no_mangle] pub extern "C" fn ui_shutdown() { - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] unsafe { gles2::invalidate_resources(); } @@ -365,7 +365,7 @@ pub extern "C" fn ui_load_styles(ptr: *const u8, len: usize) -> i32 { pub extern "C" fn ui_load_font_atlas(ptr: *const u8, len: usize) -> i32 { let blob = unsafe { bytes(ptr, len) }; let loaded = ui().load_font_atlas(blob); - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] if loaded { if let Some(&slot) = blob.get(12) { unsafe { @@ -392,17 +392,17 @@ pub extern "C" fn ui_tick() { #[no_mangle] pub extern "C" fn ui_gl_initialize() -> i32 { - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] unsafe { return gles2::initialize() as i32; } - #[cfg(not(target_os = "none"))] + #[cfg(not(feature = "gles2"))] 0 } #[no_mangle] pub extern "C" fn ui_gl_reset_resources() { - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] unsafe { gles2::reset_resources(); } @@ -410,7 +410,7 @@ pub extern "C" fn ui_gl_reset_resources() { #[no_mangle] pub extern "C" fn ui_gl_shutdown() { - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] unsafe { gles2::shutdown(); } @@ -425,7 +425,7 @@ pub extern "C" fn ui_gl_render( window_width: i32, window_height: i32, ) -> i32 { - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] unsafe { return gles2::render( ui(), @@ -437,7 +437,7 @@ pub extern "C" fn ui_gl_render( window_height, ) as i32; } - #[cfg(not(target_os = "none"))] + #[cfg(not(feature = "gles2"))] { let _ = ( target_x, @@ -463,7 +463,7 @@ pub extern "C" fn ui_gl_render_over( window_width: i32, window_height: i32, ) -> i32 { - #[cfg(target_os = "none")] + #[cfg(feature = "gles2")] unsafe { return gles2::render_over( ui(), @@ -475,7 +475,7 @@ pub extern "C" fn ui_gl_render_over( window_height, ) as i32; } - #[cfg(not(target_os = "none"))] + #[cfg(not(feature = "gles2"))] { let _ = ( target_x, diff --git a/engine/wm6/README.md b/engine/wm6/README.md new file mode 100644 index 000000000..2d524f1f2 --- /dev/null +++ b/engine/wm6/README.md @@ -0,0 +1,40 @@ +# PocketJS Core for Windows Mobile 6 + +This target reuses the complete retained `pocketjs-core` through the existing +Symbian C ABI. The two legacy hosts have the same useful boundary: a C/C++ +application owns its event loop and presentation surface, while a freestanding +Rust static library owns the tree, style table, layout, animation, DrawList, +font/image registries, and deterministic CPU rasterizer. + +Rust deliberately emits ordinary `armv4t-none-eabi` ELF first. CeGCC and +Visual Studio 2005 cannot consume that object directly, so `build-core.sh` +performs a narrow, checked conversion to `pe-arm-wince` COFF: + +1. rustc builds the complete core for the ARMv4T soft-float baseline; +2. GNU ARM ELF ld folds Rust's per-item sections into `.text`, `.rdata`, + `.data`, and `.bss`, and removes unwind/LLVM metadata; +3. a dual-target CeGCC binutils `objcopy` writes WinCE COFF; +4. `patch_arm_coff_relocs.py` maps the three emitted ARM relocations and + rebuilds every relocation symbol index from the authoritative ELF tables; +5. WinCE ld performs a second relocatable link as a structural verification. + +The WM6 build disables the Symbian GLES2 backend. It uses `ui_render_incremental` +to obtain the real PocketJS ARGB32 framebuffer, then converts/presents that +buffer through the WM6 RGB565 DirectDraw layer. + +This requires an ordinary `arm-none-eabi` binutils installation and the +CeGCC 9.3 binutils configured with both `arm-mingw32ce` and +`arm-none-eabi` BFD targets. Point the script at those installed tools, or at +the corresponding build-tree executables: + +```sh +WM6_CE_OBJCOPY=/opt/cegcc/bin/arm-mingw32ce-objcopy \ +WM6_CE_LD=/opt/cegcc/bin/arm-mingw32ce-ld \ +WM6_CE_NM=/opt/cegcc/bin/arm-mingw32ce-nm \ + bash engine/wm6/build-core.sh +``` + +The default output is +`hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Core.obj`. The QuickJS runtime build +links that object into `PocketJS.WM6.QuickJS.dll`; the standalone object is a +generated intermediate and is not deployed. diff --git a/engine/wm6/build-core.sh b/engine/wm6/build-core.sh new file mode 100755 index 000000000..ed20889b3 --- /dev/null +++ b/engine/wm6/build-core.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +set -euo pipefail + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +repo_root="$(cd "${script_dir}/../.." && pwd)" +output="${1:-${repo_root}/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Core.obj}" +work_dir="$(mktemp -d "${TMPDIR:-/tmp}/pocketjs-wm6-core.XXXXXX")" +trap 'rm -rf "$work_dir"' EXIT + +arm_ld="${ARM_NONE_EABI_LD:-arm-none-eabi-ld}" +arm_objcopy="${ARM_NONE_EABI_OBJCOPY:-arm-none-eabi-objcopy}" +ce_objcopy="${WM6_CE_OBJCOPY:-arm-mingw32ce-objcopy}" +ce_ld="${WM6_CE_LD:-arm-mingw32ce-ld}" +ce_nm="${WM6_CE_NM:-arm-mingw32ce-nm}" +cargo="${CARGO:-cargo}" + +for tool in "$cargo" "$arm_ld" "$arm_objcopy" "$ce_objcopy" "$ce_ld" "$ce_nm"; do + if ! command -v "$tool" >/dev/null 2>&1; then + echo "Required tool not found: ${tool}" >&2 + exit 2 + fi +done + +export CARGO_TARGET_DIR="${work_dir}/cargo" +RUSTUP_TOOLCHAIN="${RUSTUP_TOOLCHAIN:-nightly}" "$cargo" build \ + --manifest-path "${repo_root}/engine/symbian/Cargo.toml" \ + --release --no-default-features --features freestanding \ + --target armv4t-none-eabi \ + -Z build-std=core,alloc,compiler_builtins \ + -Z build-std-features=compiler-builtins-mem + +rust_archive="${CARGO_TARGET_DIR}/armv4t-none-eabi/release/libpocketjs_symbian_core.a" +aggregate="${work_dir}/pocketjs-core.elf.o" +localized="${work_dir}/pocketjs-core-localized.elf.o" +folded="${work_dir}/pocketjs-core-folded.elf.o" +unpatched="${work_dir}/pocketjs-core-unpatched.obj" +remapped="${work_dir}/pocketjs-core-remapped.obj" +linked="${work_dir}/PocketJS.WM6.Core.obj" + +"$arm_ld" -m armelf -r -o "$aggregate" \ + --whole-archive "$rust_archive" --no-whole-archive +"$arm_objcopy" --wildcard \ + --keep-global-symbol='ui_*' \ + "$aggregate" "$localized" +"$arm_ld" -m armelf -r -x \ + -T "${script_dir}/core-sections.ld" \ + -o "$folded" "$localized" +"$ce_objcopy" \ + --strip-symbol=__aeabi_unwind_cpp_pr0 \ + -O pe-arm-wince-little \ + "$folded" "$unpatched" +python3 "${script_dir}/tools/patch_arm_coff_relocs.py" \ + "$folded" "$unpatched" "$remapped" +"$ce_ld" -m arm_wince_pe -r -o "$linked" "$remapped" + +for symbol in ui_init ui_create_node ui_load_styles ui_render_incremental; do + if ! "$ce_nm" "$linked" | grep -q " T ${symbol}\$"; then + echo "Converted core is missing required export: ${symbol}" >&2 + exit 3 + fi +done +mkdir -p "$(dirname "$output")" +cp "$linked" "$output" +echo "Built ${output}" diff --git a/engine/wm6/core-sections.ld b/engine/wm6/core-sections.ld new file mode 100644 index 000000000..be39f8b02 --- /dev/null +++ b/engine/wm6/core-sections.ld @@ -0,0 +1,45 @@ +/* + * Rust and LLVM emit one section per function/data item. The old CeGCC PE + * linker treats unknown .text.* and .rodata.* inputs as separate output + * sections, creating thousands of 512-byte-aligned PE sections. Fold them + * while the object is still ELF, where GNU ld understands all ARM relocs. + */ +SECTIONS +{ + .text 0 : ALIGN(4) + { + *(.text) + *(.text.*) + } + /* WinCE PE names its read-only data section .rdata. */ + .rdata 0 : ALIGN(8) + { + *(.rodata) + *(.rodata.*) + } + .data 0 : ALIGN(8) + { + *(.data) + *(.data.*) + } + .bss 0 : ALIGN(8) + { + *(.bss) + *(.bss.*) + *(COMMON) + } + .noinit 0 : ALIGN(4) + { + *(.noinit) + *(.noinit.*) + } + /DISCARD/ : + { + *(.ARM.exidx*) + *(.comment) + *(.llvmbc) + *(.llvmcmd) + *(.note.GNU-stack) + *(.ARM.attributes) + } +} diff --git a/engine/wm6/tools/patch_arm_coff_relocs.py b/engine/wm6/tools/patch_arm_coff_relocs.py new file mode 100644 index 000000000..4c74713f3 --- /dev/null +++ b/engine/wm6/tools/patch_arm_coff_relocs.py @@ -0,0 +1,701 @@ +#!/usr/bin/env python3 +"""Repair an ARM ELF object converted to WinCE COFF by BFD objcopy. + +This is intentionally narrow. The PocketJS WM6 core is first linked into one +ARMv4T ELF relocatable object and has all .ARM.exidx sections removed. At that +point rustc currently emits only: + + R_ARM_ABS32 (2) -> ARM_32 (1) + R_ARM_CALL (28) -> ARM_26 (3) + R_ARM_JUMP24 (29) -> ARM_26 (3) + +The CeGCC BFD objcopy can copy all sections from ELF to COFF, but its generic +format converter preserves the ELF relocation numbers *and* the ELF symbol +indices. The latter do not identify the corresponding COFF symbols. This tool +uses the source ELF relocation tables as the authority, appends exact COFF +symbols for their targets, rewrites every relocation, and rejects unexpected +input instead of silently producing a corrupt object. +""" + +from __future__ import annotations + +import argparse +import struct +from collections import Counter +from dataclasses import dataclass +from pathlib import Path + + +COFF_HEADER_SIZE = 20 +COFF_SECTION_SIZE = 40 +COFF_RELOCATION_SIZE = 10 +COFF_SYMBOL_SIZE = 18 +IMAGE_FILE_MACHINE_ARM = 0x01C0 +IMAGE_FILE_MACHINE_THUMB = 0x01C2 +IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 +IMAGE_SYM_CLASS_EXTERNAL = 2 +IMAGE_SYM_CLASS_STATIC = 3 + +ELF_HEADER_SIZE = 52 +ELF_SECTION_SIZE = 40 +ELF_SYMBOL_SIZE = 16 +ELF_RELOCATION_SIZE = 8 +EM_ARM = 40 +ET_REL = 1 +SHT_SYMTAB = 2 +SHT_REL = 9 +SHN_UNDEF = 0 +SHN_ABS = 0xFFF1 + +ELF_TO_WINCE_RELOCATION = { + 2: 1, # R_ARM_ABS32 -> ARM_32 + 28: 3, # R_ARM_CALL -> ARM_26 + 29: 3, # R_ARM_JUMP24 -> ARM_26 +} + + +class CoffError(RuntimeError): + pass + + +@dataclass(frozen=True) +class ElfSection: + index: int + name: str + kind: int + offset: int + size: int + link: int + info: int + entry_size: int + + +@dataclass(frozen=True) +class ElfSymbol: + index: int + name: str + value: int + section_index: int + + +@dataclass(frozen=True) +class CoffSection: + index: int + name: str + header: int + relocation_offset: int + relocation_count: int + + +def read_u16(data: bytes | bytearray, offset: int) -> int: + return struct.unpack_from(" int: + return struct.unpack_from(" None: + if offset < 0 or size < 0 or offset + size > len(data): + raise CoffError( + f"{label} lies outside the COFF object " + f"(offset={offset}, size={size}, file={len(data)})" + ) + + +def read_elf_string(data: bytes, table: ElfSection, offset: int, label: str) -> str: + if offset < 0 or offset >= table.size: + raise CoffError(f"{label} has invalid ELF string-table offset {offset}") + start = table.offset + offset + end = data.find(b"\0", start, table.offset + table.size) + if end < 0: + raise CoffError(f"{label} is not NUL-terminated") + try: + return data[start:end].decode("ascii") + except UnicodeDecodeError as error: + raise CoffError(f"{label} is not ASCII") from error + + +def parse_elf(data: bytes) -> tuple[list[ElfSection], list[ElfSymbol]]: + checked_range(data, 0, ELF_HEADER_SIZE, "ELF header") + if data[:6] != b"\x7fELF\x01\x01": + raise CoffError("expected a little-endian ELF32 input object") + elf_type, machine = struct.unpack_from("= section_count: + raise CoffError("extended ELF section numbering is not supported") + checked_range( + data, + section_table, + section_count * section_size, + "ELF section table", + ) + + raw_sections: list[tuple[int, ...]] = [] + for index in range(section_count): + raw_sections.append( + struct.unpack_from( + "= len(sections): + raise CoffError("ELF symbol table has an invalid string-table link") + string_table = sections[symbol_table.link] + if symbol_table.size % ELF_SYMBOL_SIZE: + raise CoffError("ELF symbol table has a partial final record") + + symbols: list[ElfSymbol] = [] + for index in range(symbol_table.size // ELF_SYMBOL_SIZE): + record = symbol_table.offset + index * ELF_SYMBOL_SIZE + name_offset, value, _size = struct.unpack_from(" str: + if offset < 0 or offset >= limit: + raise CoffError(f"{label} has invalid string-table offset {offset}") + end = data.find(b"\0", offset, limit) + if end < 0: + # GNU BFD permits the final COFF string to end exactly at EOF. + end = limit + return data[offset:end].decode("ascii") + + +def symbol_name( + data: bytearray, + record: int, + string_table: int, + string_table_end: int, +) -> str: + raw = data[record : record + 8] + if raw[:4] == b"\0\0\0\0": + offset = struct.unpack_from(" str: + raw = bytes(data[header : header + 8]).split(b"\0", 1)[0] + if raw.startswith(b"/"): + try: + offset = int(raw[1:].decode("ascii"), 10) + except ValueError as error: + raise CoffError(f"invalid long COFF section name {raw!r}") from error + return read_c_string( + data, + string_table + offset, + string_table_end, + "COFF section", + ) + return raw.decode("ascii") + + +def parse_coff_sections(data: bytearray) -> list[CoffSection]: + checked_range(data, 0, COFF_HEADER_SIZE, "COFF header") + machine, section_count = struct.unpack_from(" tuple[bytearray, list[int]]: + if not symbols: + return data, [] + + symbol_table = read_u32(data, 8) + symbol_count = read_u32(data, 12) + string_table = symbol_table + symbol_count * COFF_SYMBOL_SIZE + checked_range( + data, + symbol_table, + symbol_count * COFF_SYMBOL_SIZE, + "COFF symbol table", + ) + checked_range(data, string_table, 4, "COFF string table") + string_table_size = read_u32(data, string_table) + checked_range(data, string_table, string_table_size, "COFF string table") + string_table_end = string_table + string_table_size + + strings = bytearray(data[string_table:string_table_end]) + if len(strings) < 4: + raise CoffError("invalid COFF string table") + if strings[-1] != 0: + strings.append(0) + + string_offsets: dict[str, int] = {} + cursor = 4 + while cursor < len(strings): + end = strings.find(b"\0", cursor) + if end < 0: + end = len(strings) + if end > cursor: + string_offsets[bytes(strings[cursor:end]).decode("ascii")] = cursor + cursor = end + 1 + + records = bytearray() + indices: list[int] = [] + for name, value, section, storage_class in symbols: + try: + encoded = name.encode("ascii") + except UnicodeEncodeError as error: + raise CoffError(f"COFF symbol {name!r} is not ASCII") from error + if not encoded: + raise CoffError("cannot append an unnamed COFF symbol") + if len(encoded) <= 8: + name_field = encoded.ljust(8, b"\0") + else: + offset = string_offsets.get(name) + if offset is None: + offset = len(strings) + strings.extend(encoded) + strings.append(0) + string_offsets[name] = offset + name_field = b"\0\0\0\0" + struct.pack(" tuple[bytearray, Counter[tuple[int, int]], int]: + elf_sections, elf_symbols = parse_elf(elf_data) + coff_sections = parse_coff_sections(coff_data) + + coff_by_name: dict[str, CoffSection] = {} + for section in coff_sections: + if section.name in coff_by_name: + raise CoffError(f"duplicate COFF section name {section.name!r}") + coff_by_name[section.name] = section + + pending: list[tuple[int, int, int]] = [] + matched_coff_sections: set[int] = set() + for relocation_section in elf_sections: + if relocation_section.kind != SHT_REL: + continue + if relocation_section.entry_size != ELF_RELOCATION_SIZE: + raise CoffError( + f"unsupported relocation size in {relocation_section.name!r}: " + f"{relocation_section.entry_size}" + ) + if relocation_section.info >= len(elf_sections): + raise CoffError( + f"{relocation_section.name!r} has an invalid target section" + ) + target = elf_sections[relocation_section.info] + coff_section = coff_by_name.get(target.name) + if coff_section is None: + # The conversion intentionally removes unwind tables and may omit + # other sections that have no representation in the final object. + continue + if relocation_section.size % ELF_RELOCATION_SIZE: + raise CoffError( + f"{relocation_section.name!r} has a partial relocation record" + ) + elf_count = relocation_section.size // ELF_RELOCATION_SIZE + if elf_count != coff_section.relocation_count: + raise CoffError( + f"relocation count differs for {target.name!r}: " + f"ELF={elf_count}, COFF={coff_section.relocation_count}" + ) + matched_coff_sections.add(coff_section.index) + + for index in range(elf_count): + elf_record = ( + relocation_section.offset + index * ELF_RELOCATION_SIZE + ) + relocation_address, relocation_info = struct.unpack_from( + "> 8 + input_type = relocation_info & 0xFF + if elf_symbol_index >= len(elf_symbols): + raise CoffError( + f"{relocation_section.name!r} references invalid ELF " + f"symbol {elf_symbol_index}" + ) + try: + ELF_TO_WINCE_RELOCATION[input_type] + except KeyError as error: + raise CoffError( + f"unsupported ARM ELF relocation {input_type} in " + f"{target.name!r}, relocation {index}" + ) from error + + coff_record = ( + coff_section.relocation_offset + index * COFF_RELOCATION_SIZE + ) + coff_address = read_u32(coff_data, coff_record) + copied_type = read_u16(coff_data, coff_record + 8) + if coff_address != relocation_address or copied_type != input_type: + raise CoffError( + f"ELF/COFF relocation order differs in {target.name!r} " + f"at index {index}: ELF=(0x{relocation_address:x}, " + f"{input_type}), COFF=(0x{coff_address:x}, {copied_type})" + ) + pending.append((coff_record, input_type, elf_symbol_index)) + + unmatched = [ + section.name + for section in coff_sections + if section.relocation_count and section.index not in matched_coff_sections + ] + if unmatched: + preview = ", ".join(repr(name) for name in unmatched[:3]) + raise CoffError( + f"{len(unmatched)} COFF sections with relocations have no matching " + f"ELF relocation section: {preview}" + ) + if not pending: + raise CoffError("the COFF object contains no relocations to translate") + + referenced = sorted({symbol_index for _, _, symbol_index in pending}) + additions: list[tuple[str, int, int, int]] = [] + for symbol_index in referenced: + symbol = elf_symbols[symbol_index] + if symbol.section_index == SHN_UNDEF: + if not symbol.name: + raise CoffError( + f"relocation references unnamed undefined ELF symbol " + f"{symbol_index}" + ) + additions.append( + ( + symbol.name, + symbol.value, + 0, + IMAGE_SYM_CLASS_EXTERNAL, + ) + ) + elif symbol.section_index == SHN_ABS: + additions.append( + ( + f"e{symbol_index:07x}", + symbol.value, + -1, + IMAGE_SYM_CLASS_STATIC, + ) + ) + elif symbol.section_index < len(elf_sections): + elf_section = elf_sections[symbol.section_index] + coff_section = coff_by_name.get(elf_section.name) + if coff_section is None: + raise CoffError( + f"ELF symbol {symbol_index} targets omitted section " + f"{elf_section.name!r}" + ) + additions.append( + ( + f"e{symbol_index:07x}", + symbol.value, + coff_section.index, + IMAGE_SYM_CLASS_STATIC, + ) + ) + else: + raise CoffError( + f"ELF symbol {symbol_index} uses unsupported section index " + f"0x{symbol.section_index:04x}" + ) + + coff_data, coff_symbol_indices = append_coff_symbols(coff_data, additions) + symbol_mapping = dict(zip(referenced, coff_symbol_indices, strict=True)) + patched: Counter[tuple[int, int]] = Counter() + for coff_record, input_type, elf_symbol_index in pending: + output_type = ELF_TO_WINCE_RELOCATION[input_type] + struct.pack_into( + " tuple[bytearray, list[str]]: + section_count = read_u16(data, 2) + symbol_table = read_u32(data, 8) + symbol_count = read_u32(data, 12) + optional_header_size = read_u16(data, 16) + section_table = COFF_HEADER_SIZE + optional_header_size + string_table = symbol_table + symbol_count * COFF_SYMBOL_SIZE + + checked_range( + data, + symbol_table, + symbol_count * COFF_SYMBOL_SIZE, + "COFF symbol table", + ) + checked_range(data, string_table, 4, "COFF string table") + string_table_size = read_u32(data, string_table) + if string_table_size < 4: + raise CoffError(f"invalid COFF string-table size {string_table_size}") + checked_range(data, string_table, string_table_size, "COFF string table") + string_table_end = string_table + string_table_size + + existing_symbols: set[str] = set() + symbol_index = 0 + while symbol_index < symbol_count: + record = symbol_table + symbol_index * COFF_SYMBOL_SIZE + if data[record + 16] == IMAGE_SYM_CLASS_EXTERNAL: + existing_symbols.add( + symbol_name(data, record, string_table, string_table_end) + ) + auxiliary_count = data[record + 17] + symbol_index += 1 + auxiliary_count + if symbol_index != symbol_count: + raise CoffError("COFF auxiliary symbol records exceed the symbol table") + + ui_sections: dict[str, int] = {} + for section_index in range(section_count): + header = section_table + section_index * COFF_SECTION_SIZE + name = section_name(data, header, string_table, string_table_end) + if name.startswith(".text.ui_"): + ui_sections[name.removeprefix(".text.")] = section_index + 1 + + missing = sorted(set(ui_sections) - existing_symbols) + if not missing: + return data, [] + + strings = bytearray(data[string_table:string_table_end]) + string_offsets: dict[str, int] = {} + cursor = 4 + while cursor < len(strings): + end = strings.find(b"\0", cursor) + if end < 0: + end = len(strings) + string_offsets[bytes(strings[cursor:end]).decode("ascii")] = cursor + cursor = end + 1 + if strings[-1] != 0: + strings.append(0) + + added_symbols = bytearray() + for name in missing: + encoded = name.encode("ascii") + if len(encoded) <= 8: + name_field = encoded.ljust(8, b"\0") + else: + offset = string_offsets.get(name) + if offset is None: + offset = len(strings) + strings.extend(encoded) + strings.append(0) + string_offsets[name] = offset + name_field = b"\0\0\0\0" + struct.pack(" int: + parser = argparse.ArgumentParser() + parser.add_argument("elf_input", type=Path) + parser.add_argument("coff_input", type=Path) + parser.add_argument("output", type=Path) + args = parser.parse_args() + + elf_data = args.elf_input.read_bytes() + data = bytearray(args.coff_input.read_bytes()) + data, patched, mapped_symbols = remap_relocations(elf_data, data) + data, restored = restore_ui_exports(data) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_bytes(data) + + summary = ", ".join( + f"{source}->{target}: {count}" + for (source, target), count in sorted(patched.items()) + ) + print(f"patched {sum(patched.values())} ARM relocations ({summary})") + print(f"mapped {mapped_symbols} ELF relocation symbols") + print(f"restored {len(restored)} PocketJS C ABI exports") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index a7c151f96..c90f7d942 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -7,9 +7,9 @@ uses the SDK's ARMV4I-compatible instruction baseline (`-march=armv4t`), so the same binary runs in the WM6 emulator and on the ARMv5TE PXA310. Visual C++ 2005 remains the windowing, deployment, and debugger tool for the -eventual PocketJS host. QuickJS itself uses CeGCC because current QuickJS is -GNU C99 and cannot be compiled by VC8. The future integration boundary will be -a narrow C DLL API; QuickJS values and allocations must stay on the CeGCC side. +PocketJS host. QuickJS itself uses CeGCC because current QuickJS is +GNU C99 and cannot be compiled by VC8. A narrow C DLL API is the integration +boundary; QuickJS values and allocations stay on the CeGCC side. ## Pinned source @@ -50,23 +50,22 @@ from a Promise job. Success shows `QuickJS 6,10,16,26` under the title ## Hero demo host -`build-runtime.sh` builds `PocketJS.WM6.QuickJS.dll` with a five-function, -versioned C ABI and statically linked libgcc. `build-demo.sh` combines the -minimal WM6 HostOps bootstrap with the real `dist/hero-main.js` output. +`build-runtime.sh` builds `PocketJS.WM6.QuickJS.dll` with a versioned C ABI, +statically linked libgcc, and the native Rust core produced by +`engine/wm6/build-core.sh`. The DLL installs the same `ui` HostOps boundary as +the Symbian host: JavaScript node/style/texture/animation calls go directly to +the real retained Rust `Ui`. It also copies the PAK into QuickJS before mount, +advances `globalThis.frame` and `ui_tick` at the host cadence, and exposes the +core's incremental ARGB32 framebuffer. + +`build-demo.sh` packages the unmodified real `dist/hero-main.js` output; it no +longer prepends a JavaScript tree or hand-authored draw-list adapter. VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, -deploys both files, mounts the Solid application in QuickJS, and turns its -native tree into a compact draw list. The WM6 host rasterizes backgrounds and -rectangles into an application-owned RGB565 framebuffer sized from the rotated -WM6 screen metrics. It injects those dimensions into `ui.__viewport` before -the real bundle mounts, and the Hero draw-list adapter derives its layout from -the runtime viewport rather than assuming 480×272. It reads the -same Inter font-atlas and RGBA image entries that other PocketJS hosts consume -from the demo PAK, alpha-blends glyphs, the logo, and a spinner frame directly -into RGB565, then presents the buffer through a locked DirectDraw primary -surface. The complete GDI renderer remains the fallback when DirectDraw, the -PAK, or the display pixel format is unavailable. The current milestone renders -the Hero first frame; its 60 FPS spinner, underline tween, and reactive button -are the next runtime-loop milestone. +deploys the DLL, bundle, and PAK, and mounts the Solid application. The native +screen size after WM6 rotation becomes `ui.__viewport`. Each Rust ARGB32 frame +is converted to the application-owned RGB565 buffer and presented through a +locked DirectDraw primary surface. Arrow keys and Enter/Space are mapped to the +PocketJS directional and Circle button bits. The compatibility patch: diff --git a/hosts/wm6/quickjs/build-demo.sh b/hosts/wm6/quickjs/build-demo.sh index fdf56a723..f309c674e 100644 --- a/hosts/wm6/quickjs/build-demo.sh +++ b/hosts/wm6/quickjs/build-demo.sh @@ -14,8 +14,7 @@ if [[ ! -f "$bundle" || ! -f "$pak" ]]; then fi mkdir -p "$(dirname "$output")" { - printf '%s\n' '/* PocketJS WM6 bootstrap + real apps/hero bundle. */' - sed -n 'p' "${script_dir}/demo-host.js" + printf '%s\n' '/* PocketJS WM6 native Rust core + real apps/hero bundle. */' sed -n 'p' "$bundle" } > "$output" cp "$pak" "$pak_output" diff --git a/hosts/wm6/quickjs/build-runtime.sh b/hosts/wm6/quickjs/build-runtime.sh index eaee1bfb2..92891a6ac 100644 --- a/hosts/wm6/quickjs/build-runtime.sh +++ b/hosts/wm6/quickjs/build-runtime.sh @@ -7,6 +7,7 @@ quickjs_version="2026-06-04" script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.QuickJS.dll}" +core_object="${WM6_CORE_OBJECT:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Core.obj}" work_dir="$(mktemp -d "${TMPDIR:-/tmp}/pocketjs-wm6-quickjs-dll.XXXXXX")" trap 'rm -rf "$work_dir"' EXIT @@ -20,6 +21,11 @@ if [[ ! -x "$cc" ]]; then echo "arm-mingw32ce-gcc was not found under ${tool_bin}." >&2 exit 2 fi +if [[ ! -f "$core_object" ]]; then + echo "PocketJS WM6 core object not found: ${core_object}" >&2 + echo "Build it first with engine/wm6/build-core.sh." >&2 + exit 2 +fi if [[ -n "${WM6_CEGCC_LIBDIR:-}" ]]; then export LD_LIBRARY_PATH="${WM6_CEGCC_LIBDIR}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" fi @@ -42,6 +48,8 @@ patch -d "$quickjs_dir" -p1 < "${script_dir}/patches/quickjs-wm6.patch" mkdir -p "${work_dir}/obj" "$(dirname "$output")" cp "${script_dir}/src/wm6_math.c" "${work_dir}/wm6_math.c" cp "${script_dir}/src/runtime_dll.c" "${work_dir}/runtime_dll.c" +cp "${script_dir}/src/pocketjs_wm6_core.h" \ + "${work_dir}/pocketjs_wm6_core.h" cp "${script_dir}/../vs2005/runtime/wm6_quickjs_abi.h" \ "${work_dir}/wm6_quickjs_abi.h" @@ -65,6 +73,6 @@ done "${work_dir}/obj/runtime_dll.o" "${work_dir}/obj/wm6_math.o" \ "${work_dir}/obj/quickjs.o" "${work_dir}/obj/cutils.o" \ "${work_dir}/obj/dtoa.o" "${work_dir}/obj/libregexp.o" \ - "${work_dir}/obj/libunicode.o" -lm + "${work_dir}/obj/libunicode.o" "$core_object" -lm cp "${work_dir}/PocketJS.WM6.QuickJS.dll" "$output" echo "Built ${output}" diff --git a/hosts/wm6/quickjs/demo-host.js b/hosts/wm6/quickjs/demo-host.js deleted file mode 100644 index b3d1de884..000000000 --- a/hosts/wm6/quickjs/demo-host.js +++ /dev/null @@ -1,163 +0,0 @@ -(() => { - let nextNode = 2; - let nextAnim = 1; - let focused = 0; - const nodes = new Map(); - nodes.set(1, { id: 1, type: 0, style: -1, text: "", parent: 0, children: [] }); - - const node = (id) => nodes.get(id); - const detach = (id) => { - for (const parent of nodes.values()) { - const at = parent.children.indexOf(id); - if (at >= 0) parent.children.splice(at, 1); - } - const child = node(id); - if (child) child.parent = 0; - }; - - const textures = { - "logo.png": 1, - "spinner-00.svg": 2, - "spinner-01.svg": 3, - "spinner-02.svg": 4, - "spinner-03.svg": 5, - "spinner-04.svg": 6, - "spinner-05.svg": 7, - "spinner-06.svg": 8, - "spinner-07.svg": 9 - }; - const viewportWidth = Math.max( - 1, Math.floor(Number(globalThis.__wm6ViewportWidth) || 480)); - const viewportHeight = Math.max( - 1, Math.floor(Number(globalThis.__wm6ViewportHeight) || 272)); - - globalThis.ui = { - __host: "wm6", - __hostAbi: 1, - __textures: textures, - __viewport: { w: viewportWidth, h: viewportHeight }, - createNode(type) { - const id = nextNode++; - nodes.set(id, { id, type, style: -1, text: "", image: -1, parent: 0, children: [] }); - return id; - }, - destroyNode(id) { - detach(id); - nodes.delete(id); - }, - insertBefore(parentId, childId, anchor) { - const parent = node(parentId); - if (!parent) return; - detach(childId); - const at = anchor ? parent.children.indexOf(anchor) : -1; - if (at >= 0) parent.children.splice(at, 0, childId); - else parent.children.push(childId); - const child = node(childId); - if (child) child.parent = parentId; - }, - removeChild(_parent, child) { detach(child); }, - setStyle(id, style) { const n = node(id); if (n) n.style = style; }, - setProp() {}, - setText(id, text) { const n = node(id); if (n) n.text = String(text); }, - replaceText(id, text) { this.setText(id, text); }, - uploadTexture() { return -1; }, - freeTexture() {}, - setImage(id, handle) { const n = node(id); if (n) n.image = handle; }, - setSprite() {}, - animate() { return nextAnim++; }, - cancelAnim() {}, - setFocus(id) { focused = id; }, - setActive() {}, - measureText(text, fontSlot) { - const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; - return String(text).length * width; - } - }; - - globalThis.__wm6Snapshot = () => { - const lines = [ - "PocketJS Hero (real bundle)", - `viewport ${viewportWidth}x${viewportHeight}`, - "" - ]; - const visit = (id, depth) => { - const current = node(id); - if (!current) return; - if (current.text) lines.push(" ".repeat(depth) + current.text); - for (const child of current.children) visit(child, depth + 1); - }; - visit(1, 0); - return lines.join("\n"); - }; - - globalThis.__wm6DrawList = () => { - const out = ["B|248|250|252"]; - const width = viewportWidth; - const height = viewportHeight; - const middleY = Math.max(72, Math.floor((height - 90) / 2)); - const footerY = Math.max(middleY + 118, height - 52); - const safe = (value) => String(value).replace(/[|\r\n]/g, " "); - const rect = (x, y, w, h, r, g, b) => - out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); - const text = (x, y, slot, r, g, b, value) => - out.push(`T|${x}|${y}|${slot}|${r}|${g}|${b}|${safe(value)}`); - const image = (x, y, w, h, handle) => { - if (handle > 0) out.push(`I|${x}|${y}|${w}|${h}|${handle}`); - }; - const values = []; - const imageHandles = []; - for (const current of nodes.values()) { - if (current.text) values.push(current.text); - if (current.image > 0) imageHandles.push(current.image); - } - const exact = (value, fallback) => - values.indexOf(value) >= 0 ? value : fallback; - const prefix = (value, fallback) => - values.find((entry) => entry.indexOf(value) === 0) || fallback; - - image(20, 20, 40, 40, textures["logo.png"]); - text(72, 21, 9, 15, 23, 42, exact("PocketJS", "PocketJS")); - text(72, 43, 0, 100, 116, 139, - exact("Solid", "Solid") + - (values.find((entry) => entry.indexOf("+ RUST + SCEGU") >= 0) || - " + RUST + SCEGU")); - - text(width - 132, 20, 10, 5, 150, 105, exact("60", "60")); - text(width - 131, 43, 0, 100, 116, 139, exact("FPS", "FPS")); - text(width - 83, 20, 10, 37, 99, 235, exact("42", "42")); - text(width - 86, 43, 0, 100, 116, 139, exact("NODES", "NODES")); - text(width - 31, 20, 10, 217, 119, 6, exact("9", "9")); - text(width - 42, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); - - text(20, middleY, 0, 37, 99, 235, - exact("ONE RUST CORE · ONE JSX APP", - "ONE RUST CORE · ONE JSX APP")); - text(20, middleY + 21, 13, 15, 23, 42, - exact("JSX at 60 FPS.", "JSX at 60 FPS.")); - image(width - 60, middleY + 17, 40, 40, - imageHandles.find((handle) => handle >= 2) || - textures["spinner-00.svg"]); - rect(20, middleY + 68, 105, 4, 59, 130, 246); - rect(125, middleY + 68, 105, 4, 6, 182, 212); - text(20, middleY + 83, 1, 71, 85, 105, - exact("Flexbox, springs and baked type —", - "Flexbox, springs and baked type —")); - text(width >= 480 ? 253 : 20, - middleY + (width >= 480 ? 83 : 101), 1, 71, 85, 105, - exact("running on a 2005 handheld.", - "running on a 2005 handheld.")); - - rect(20, footerY, 132, 32, focused ? 37 : 37, - focused ? 99 : 99, focused ? 235 : 235); - text(34, footerY + 6, 9, 255, 255, 255, - exact("Press Circle", "Press Circle")); - const counters = values.filter((entry) => /^\d+$/.test(entry)); - text(172, footerY + 8, 1, 71, 85, 105, - prefix("Count: ", "Count: ") + (counters[counters.length - 1] || "0")); - const reactive = values.find((entry) => - entry === "Reactive on real hardware."); - if (reactive) - text(250, footerY + 8, 1, 5, 150, 105, reactive); - return out.join("\n"); - }; -})(); diff --git a/hosts/wm6/quickjs/src/pocketjs_wm6_core.h b/hosts/wm6/quickjs/src/pocketjs_wm6_core.h new file mode 100644 index 000000000..165ed4994 --- /dev/null +++ b/hosts/wm6/quickjs/src/pocketjs_wm6_core.h @@ -0,0 +1,73 @@ +#ifndef POCKETJS_WM6_CORE_H +#define POCKETJS_WM6_CORE_H + +#include +#include + +void ui_init(uint32_t raster_density); +void ui_shutdown(void); +void ui_set_viewport(float width, float height); + +int32_t ui_create_node(uint32_t node_type); +void ui_destroy_node(int32_t id); +void ui_insert_before(int32_t parent, int32_t child, int32_t anchor); +void ui_remove_child(int32_t parent, int32_t child); +void ui_set_style(int32_t id, int32_t style_id); +void ui_set_prop(int32_t id, uint32_t prop, double value); +void ui_set_prop_batch(const uint8_t *data, size_t len); +void ui_set_text(int32_t id, const uint8_t *text, size_t len); +void ui_replace_text(int32_t id, const uint8_t *text, size_t len); + +int32_t ui_upload_texture( + const uint8_t *data, + size_t len, + uint32_t width, + uint32_t height, + uint32_t psm); +int32_t ui_upload_img_entry(const uint8_t *data, size_t len); +void ui_free_texture(int32_t handle); +void ui_set_image(int32_t id, int32_t texture); +void ui_set_sprite( + int32_t id, + int32_t atlas, + uint32_t frames, + uint32_t columns, + uint32_t step); + +int32_t ui_animate( + int32_t id, + uint32_t prop, + double to, + uint32_t duration_ms, + uint32_t easing, + uint32_t delay_ms); +void ui_cancel_anim(int32_t animation_id); +void ui_set_focus(int32_t id); +void ui_set_active(int32_t id, int32_t active); +int32_t ui_hit_test(float x, float y); +void ui_set_cursor( + int32_t texture, + float hot_x, + float hot_y, + float width, + float height); +void ui_set_cursor_pos(float x, float y); + +int32_t ui_load_styles(const uint8_t *data, size_t len); +int32_t ui_load_font_atlas(const uint8_t *data, size_t len); +float ui_measure_text(const uint8_t *text, size_t len, uint32_t font_slot); + +void ui_debug_inspect(int32_t id); +int32_t ui_debug_rect_xy(void); +int32_t ui_debug_rect_wh(void); +void ui_debug_pause(int32_t on); +void ui_debug_step(void); + +void ui_tick(void); +const uint8_t *ui_render_incremental(void); +uint32_t ui_framebuffer_width(void); +uint32_t ui_framebuffer_height(void); +uint32_t ui_framebuffer_stride(void); +size_t ui_framebuffer_len(void); + +#endif diff --git a/hosts/wm6/quickjs/src/runtime_dll.c b/hosts/wm6/quickjs/src/runtime_dll.c index ef4799808..e95556d6c 100644 --- a/hosts/wm6/quickjs/src/runtime_dll.c +++ b/hosts/wm6/quickjs/src/runtime_dll.c @@ -2,6 +2,7 @@ #include #include +#include "pocketjs_wm6_core.h" #include "quickjs.h" #include "wm6_quickjs_abi.h" @@ -11,6 +12,38 @@ typedef struct Wm6QuickJS { char printed[256]; } Wm6QuickJS; +typedef enum Wm6HostOperation { + WM6_HOST_CREATE_NODE, + WM6_HOST_DESTROY_NODE, + WM6_HOST_INSERT_BEFORE, + WM6_HOST_REMOVE_CHILD, + WM6_HOST_SET_STYLE, + WM6_HOST_SET_PROP, + WM6_HOST_SET_PROP_BATCH, + WM6_HOST_SET_TEXT, + WM6_HOST_REPLACE_TEXT, + WM6_HOST_UPLOAD_TEXTURE, + WM6_HOST_UPLOAD_IMG_ENTRY, + WM6_HOST_FREE_TEXTURE, + WM6_HOST_SET_IMAGE, + WM6_HOST_SET_SPRITE, + WM6_HOST_ANIMATE, + WM6_HOST_CANCEL_ANIM, + WM6_HOST_SET_FOCUS, + WM6_HOST_SET_ACTIVE, + WM6_HOST_HIT_TEST, + WM6_HOST_SET_CURSOR, + WM6_HOST_SET_CURSOR_POS, + WM6_HOST_LOAD_STYLES, + WM6_HOST_LOAD_FONT_ATLAS, + WM6_HOST_MEASURE_TEXT, + WM6_HOST_DEBUG_INSPECT, + WM6_HOST_DEBUG_RECT_XY, + WM6_HOST_DEBUG_RECT_WH, + WM6_HOST_DEBUG_PAUSE, + WM6_HOST_DEBUG_STEP +} Wm6HostOperation; + static void copy_text(char *output, unsigned int capacity, const char *text) { unsigned int index; @@ -57,6 +90,417 @@ static JSValue runtime_print(JSContext *context, JSValueConst this_value, return JS_UNDEFINED; } +static int int_argument(JSContext *context, int argument_count, + JSValueConst *arguments, int index, int32_t *value) +{ + if (index >= argument_count) { + JS_ThrowTypeError(context, "missing argument %d", index); + return 0; + } + return JS_ToInt32(context, value, arguments[index]) == 0; +} + +static int uint_argument(JSContext *context, int argument_count, + JSValueConst *arguments, int index, uint32_t *value) +{ + if (index >= argument_count) { + JS_ThrowTypeError(context, "missing argument %d", index); + return 0; + } + return JS_ToUint32(context, value, arguments[index]) == 0; +} + +static int float_argument(JSContext *context, int argument_count, + JSValueConst *arguments, int index, double *value) +{ + if (index >= argument_count) { + JS_ThrowTypeError(context, "missing argument %d", index); + return 0; + } + return JS_ToFloat64(context, value, arguments[index]) == 0; +} + +static int nonnegative_uint_argument(JSContext *context, int argument_count, + JSValueConst *arguments, int index, + uint32_t *value) +{ + double raw; + + raw = 0.0; + if (!float_argument(context, argument_count, arguments, index, &raw)) + return 0; + if (raw <= 0.0) + *value = 0; + else if (raw >= 4294967295.0) + *value = 0xffffffffU; + else + *value = (uint32_t)raw; + return 1; +} + +static int string_argument(JSContext *context, int argument_count, + JSValueConst *arguments, int index, + const char **text, size_t *length) +{ + if (index >= argument_count) { + JS_ThrowTypeError(context, "missing argument %d", index); + return 0; + } + *text = JS_ToCStringLen2(context, length, arguments[index], 0); + return *text != NULL; +} + +static int bytes_argument(JSContext *context, int argument_count, + JSValueConst *arguments, int index, + const uint8_t **data, size_t *length) +{ + JSValue buffer; + JSValue direct_error; + uint8_t *base; + uint8_t *direct; + size_t offset; + size_t byte_length; + size_t bytes_per_element; + size_t buffer_length; + + if (index >= argument_count) { + JS_ThrowTypeError(context, "missing argument %d", index); + return 0; + } + direct = JS_GetArrayBuffer(context, length, arguments[index]); + if (!JS_HasException(context)) { + *data = direct; + return 1; + } + direct_error = JS_GetException(context); + JS_FreeValue(context, direct_error); + + offset = 0; + byte_length = 0; + bytes_per_element = 0; + buffer = JS_GetTypedArrayBuffer( + context, + arguments[index], + &offset, + &byte_length, + &bytes_per_element); + if (JS_IsException(buffer)) + return 0; + buffer_length = 0; + base = JS_GetArrayBuffer(context, &buffer_length, buffer); + if (JS_HasException(context)) { + JS_FreeValue(context, buffer); + return 0; + } + (void)bytes_per_element; + if (offset > buffer_length || byte_length > buffer_length - offset) { + JS_FreeValue(context, buffer); + JS_ThrowRangeError( + context, "typed array is outside its backing buffer"); + return 0; + } + *data = base ? base + offset : NULL; + *length = byte_length; + JS_FreeValue(context, buffer); + return 1; +} + +static JSValue runtime_host_operation( + JSContext *context, + JSValueConst this_value, + int argument_count, + JSValueConst *arguments, + int magic) +{ + int32_t a; + int32_t b; + int32_t c; + uint32_t ua; + uint32_t ub; + uint32_t uc; + uint32_t ud; + double da; + double db; + double dc; + double dd; + const uint8_t *bytes; + size_t byte_length; + const char *text; + size_t text_length; + + (void)this_value; + a = b = c = 0; + ua = ub = uc = ud = 0; + da = db = dc = dd = 0.0; + bytes = NULL; + byte_length = 0; + text = NULL; + text_length = 0; + + switch ((Wm6HostOperation)magic) { + case WM6_HOST_CREATE_NODE: + if (!uint_argument(context, argument_count, arguments, 0, &ua)) + return JS_EXCEPTION; + return JS_NewInt32(context, ui_create_node(ua)); + case WM6_HOST_DESTROY_NODE: + if (!int_argument(context, argument_count, arguments, 0, &a)) + return JS_EXCEPTION; + ui_destroy_node(a); + return JS_UNDEFINED; + case WM6_HOST_INSERT_BEFORE: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !int_argument(context, argument_count, arguments, 1, &b) || + !int_argument(context, argument_count, arguments, 2, &c)) + return JS_EXCEPTION; + ui_insert_before(a, b, c); + return JS_UNDEFINED; + case WM6_HOST_REMOVE_CHILD: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !int_argument(context, argument_count, arguments, 1, &b)) + return JS_EXCEPTION; + ui_remove_child(a, b); + return JS_UNDEFINED; + case WM6_HOST_SET_STYLE: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !int_argument(context, argument_count, arguments, 1, &b)) + return JS_EXCEPTION; + ui_set_style(a, b); + return JS_UNDEFINED; + case WM6_HOST_SET_PROP: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !uint_argument(context, argument_count, arguments, 1, &ua) || + !float_argument(context, argument_count, arguments, 2, &da)) + return JS_EXCEPTION; + ui_set_prop(a, ua, da); + return JS_UNDEFINED; + case WM6_HOST_SET_PROP_BATCH: + if (!bytes_argument( + context, argument_count, arguments, 0, &bytes, &byte_length)) + return JS_EXCEPTION; + ui_set_prop_batch(bytes, byte_length); + return JS_UNDEFINED; + case WM6_HOST_SET_TEXT: + case WM6_HOST_REPLACE_TEXT: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !string_argument( + context, argument_count, arguments, 1, &text, &text_length)) + return JS_EXCEPTION; + if (magic == WM6_HOST_SET_TEXT) + ui_set_text(a, (const uint8_t *)text, text_length); + else + ui_replace_text(a, (const uint8_t *)text, text_length); + JS_FreeCString(context, text); + return JS_UNDEFINED; + case WM6_HOST_UPLOAD_TEXTURE: + if (!bytes_argument( + context, argument_count, arguments, 0, &bytes, &byte_length) || + !uint_argument(context, argument_count, arguments, 1, &ua) || + !uint_argument(context, argument_count, arguments, 2, &ub) || + !uint_argument(context, argument_count, arguments, 3, &uc)) + return JS_EXCEPTION; + return JS_NewInt32( + context, ui_upload_texture(bytes, byte_length, ua, ub, uc)); + case WM6_HOST_UPLOAD_IMG_ENTRY: + if (!bytes_argument( + context, argument_count, arguments, 0, &bytes, &byte_length)) + return JS_EXCEPTION; + return JS_NewInt32(context, ui_upload_img_entry(bytes, byte_length)); + case WM6_HOST_FREE_TEXTURE: + if (!int_argument(context, argument_count, arguments, 0, &a)) + return JS_EXCEPTION; + ui_free_texture(a); + return JS_UNDEFINED; + case WM6_HOST_SET_IMAGE: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !int_argument(context, argument_count, arguments, 1, &b)) + return JS_EXCEPTION; + ui_set_image(a, b); + return JS_UNDEFINED; + case WM6_HOST_SET_SPRITE: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !int_argument(context, argument_count, arguments, 1, &b) || + !nonnegative_uint_argument( + context, argument_count, arguments, 2, &ua) || + !nonnegative_uint_argument( + context, argument_count, arguments, 3, &ub) || + !nonnegative_uint_argument( + context, argument_count, arguments, 4, &uc)) + return JS_EXCEPTION; + ui_set_sprite(a, b, ua, ub, uc); + return JS_UNDEFINED; + case WM6_HOST_ANIMATE: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !uint_argument(context, argument_count, arguments, 1, &ua) || + !float_argument(context, argument_count, arguments, 2, &da) || + !nonnegative_uint_argument( + context, argument_count, arguments, 3, &ub) || + !uint_argument(context, argument_count, arguments, 4, &uc) || + !nonnegative_uint_argument( + context, argument_count, arguments, 5, &ud)) + return JS_EXCEPTION; + return JS_NewInt32(context, ui_animate(a, ua, da, ub, uc, ud)); + case WM6_HOST_CANCEL_ANIM: + if (!int_argument(context, argument_count, arguments, 0, &a)) + return JS_EXCEPTION; + ui_cancel_anim(a); + return JS_UNDEFINED; + case WM6_HOST_SET_FOCUS: + if (!int_argument(context, argument_count, arguments, 0, &a)) + return JS_EXCEPTION; + ui_set_focus(a); + return JS_UNDEFINED; + case WM6_HOST_SET_ACTIVE: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !int_argument(context, argument_count, arguments, 1, &b)) + return JS_EXCEPTION; + ui_set_active(a, b); + return JS_UNDEFINED; + case WM6_HOST_HIT_TEST: + if (!float_argument(context, argument_count, arguments, 0, &da) || + !float_argument(context, argument_count, arguments, 1, &db)) + return JS_EXCEPTION; + return JS_NewInt32(context, ui_hit_test((float)da, (float)db)); + case WM6_HOST_SET_CURSOR: + if (!int_argument(context, argument_count, arguments, 0, &a) || + !float_argument(context, argument_count, arguments, 1, &da) || + !float_argument(context, argument_count, arguments, 2, &db) || + !float_argument(context, argument_count, arguments, 3, &dc) || + !float_argument(context, argument_count, arguments, 4, &dd)) + return JS_EXCEPTION; + ui_set_cursor(a, (float)da, (float)db, (float)dc, (float)dd); + return JS_UNDEFINED; + case WM6_HOST_SET_CURSOR_POS: + if (!float_argument(context, argument_count, arguments, 0, &da) || + !float_argument(context, argument_count, arguments, 1, &db)) + return JS_EXCEPTION; + ui_set_cursor_pos((float)da, (float)db); + return JS_UNDEFINED; + case WM6_HOST_LOAD_STYLES: + case WM6_HOST_LOAD_FONT_ATLAS: + if (!bytes_argument( + context, argument_count, arguments, 0, &bytes, &byte_length)) + return JS_EXCEPTION; + if (magic == WM6_HOST_LOAD_STYLES) + return JS_NewBool(context, ui_load_styles(bytes, byte_length)); + return JS_NewBool(context, ui_load_font_atlas(bytes, byte_length)); + case WM6_HOST_MEASURE_TEXT: + if (!string_argument( + context, argument_count, arguments, 0, &text, &text_length)) + return JS_EXCEPTION; + if (!uint_argument(context, argument_count, arguments, 1, &ua)) { + JS_FreeCString(context, text); + return JS_EXCEPTION; + } + da = ui_measure_text((const uint8_t *)text, text_length, ua); + JS_FreeCString(context, text); + return JS_NewFloat64(context, da); + case WM6_HOST_DEBUG_INSPECT: + if (!int_argument(context, argument_count, arguments, 0, &a)) + return JS_EXCEPTION; + ui_debug_inspect(a); + return JS_UNDEFINED; + case WM6_HOST_DEBUG_RECT_XY: + return JS_NewInt32(context, ui_debug_rect_xy()); + case WM6_HOST_DEBUG_RECT_WH: + return JS_NewInt32(context, ui_debug_rect_wh()); + case WM6_HOST_DEBUG_PAUSE: + if (!int_argument(context, argument_count, arguments, 0, &a)) + return JS_EXCEPTION; + ui_debug_pause(a); + return JS_UNDEFINED; + case WM6_HOST_DEBUG_STEP: + ui_debug_step(); + return JS_UNDEFINED; + } + return JS_ThrowInternalError(context, "unknown PocketJS HostOp"); +} + +static int add_host_operation(JSContext *context, JSValueConst object, + const char *name, int arity, + Wm6HostOperation operation) +{ + JSValue function; + + function = JS_NewCFunctionMagic( + context, + runtime_host_operation, + name, + arity, + JS_CFUNC_generic_magic, + (int)operation); + return JS_SetPropertyStr(context, object, name, function) >= 0; +} + +static int install_core_ui(JSContext *context, JSValueConst global, + unsigned int viewport_width, + unsigned int viewport_height) +{ + JSValue ui; + JSValue viewport; + + ui = JS_NewObject(context); + if (JS_IsException(ui)) + return 0; +#define ADD_HOST(name, arity, operation) \ + if (!add_host_operation(context, ui, name, arity, operation)) goto fail + ADD_HOST("createNode", 1, WM6_HOST_CREATE_NODE); + ADD_HOST("destroyNode", 1, WM6_HOST_DESTROY_NODE); + ADD_HOST("insertBefore", 3, WM6_HOST_INSERT_BEFORE); + ADD_HOST("removeChild", 2, WM6_HOST_REMOVE_CHILD); + ADD_HOST("setStyle", 2, WM6_HOST_SET_STYLE); + ADD_HOST("setProp", 3, WM6_HOST_SET_PROP); + ADD_HOST("setPropBatch", 1, WM6_HOST_SET_PROP_BATCH); + ADD_HOST("setText", 2, WM6_HOST_SET_TEXT); + ADD_HOST("replaceText", 2, WM6_HOST_REPLACE_TEXT); + ADD_HOST("uploadTexture", 4, WM6_HOST_UPLOAD_TEXTURE); + ADD_HOST("uploadImgEntry", 1, WM6_HOST_UPLOAD_IMG_ENTRY); + ADD_HOST("freeTexture", 1, WM6_HOST_FREE_TEXTURE); + ADD_HOST("setImage", 2, WM6_HOST_SET_IMAGE); + ADD_HOST("setSprite", 5, WM6_HOST_SET_SPRITE); + ADD_HOST("animate", 6, WM6_HOST_ANIMATE); + ADD_HOST("cancelAnim", 1, WM6_HOST_CANCEL_ANIM); + ADD_HOST("setFocus", 1, WM6_HOST_SET_FOCUS); + ADD_HOST("setActive", 2, WM6_HOST_SET_ACTIVE); + ADD_HOST("hitTest", 2, WM6_HOST_HIT_TEST); + ADD_HOST("setCursor", 5, WM6_HOST_SET_CURSOR); + ADD_HOST("setCursorPos", 2, WM6_HOST_SET_CURSOR_POS); + ADD_HOST("loadStyles", 1, WM6_HOST_LOAD_STYLES); + ADD_HOST("loadFontAtlas", 1, WM6_HOST_LOAD_FONT_ATLAS); + ADD_HOST("measureText", 2, WM6_HOST_MEASURE_TEXT); + ADD_HOST("debugInspect", 1, WM6_HOST_DEBUG_INSPECT); + ADD_HOST("debugRectXY", 0, WM6_HOST_DEBUG_RECT_XY); + ADD_HOST("debugRectWH", 0, WM6_HOST_DEBUG_RECT_WH); + ADD_HOST("debugPause", 1, WM6_HOST_DEBUG_PAUSE); + ADD_HOST("debugStep", 0, WM6_HOST_DEBUG_STEP); +#undef ADD_HOST + + viewport = JS_NewObject(context); + if (JS_IsException(viewport)) + goto fail; + if (JS_SetPropertyStr( + context, viewport, "w", + JS_NewInt32(context, (int)viewport_width)) < 0 || + JS_SetPropertyStr( + context, viewport, "h", + JS_NewInt32(context, (int)viewport_height)) < 0 || + JS_SetPropertyStr(context, ui, "__viewport", viewport) < 0 || + JS_SetPropertyStr( + context, ui, "__host", + JS_NewString(context, "wm6-rust-core")) < 0 || + JS_SetPropertyStr( + context, ui, "__hostAbi", JS_NewInt32(context, 1)) < 0 || + JS_SetPropertyStr(context, global, "ui", ui) < 0) + goto fail_no_viewport; + return 1; + +fail_no_viewport: + /* Ownership of successfully assigned values has already transferred. */ + return 0; +fail: + JS_FreeValue(context, ui); + return 0; +} + __declspec(dllexport) unsigned int __cdecl wm6_qjs_abi_version(void) { return WM6_QJS_ABI_VERSION; @@ -65,6 +509,8 @@ __declspec(dllexport) unsigned int __cdecl wm6_qjs_abi_version(void) __declspec(dllexport) wm6_qjs_handle __cdecl wm6_qjs_create( unsigned int memory_limit, unsigned int stack_limit, + unsigned int viewport_width, + unsigned int viewport_height, char *error, unsigned int error_capacity) { @@ -94,23 +540,55 @@ __declspec(dllexport) wm6_qjs_handle __cdecl wm6_qjs_create( return NULL; } JS_SetContextOpaque(host->context, host); + ui_init(1); + ui_set_viewport((float)viewport_width, (float)viewport_height); global = JS_GetGlobalObject(host->context); if (JS_SetPropertyStr( host->context, global, "print", - JS_NewCFunction(host->context, runtime_print, "print", 1)) < 0) { + JS_NewCFunction(host->context, runtime_print, "print", 1)) < 0 || + !install_core_ui( + host->context, global, viewport_width, viewport_height)) { JS_FreeValue(host->context, global); + ui_shutdown(); JS_FreeContext(host->context); JS_FreeRuntime(host->runtime); free(host); - copy_text(error, error_capacity, "registering print failed"); + copy_text(error, error_capacity, "registering PocketJS HostOps failed"); return NULL; } JS_FreeValue(host->context, global); return (wm6_qjs_handle)host; } +__declspec(dllexport) int __cdecl wm6_qjs_set_pak( + wm6_qjs_handle opaque, + const unsigned char *data, + unsigned int data_length, + char *error, + unsigned int error_capacity) +{ + Wm6QuickJS *host; + JSValue global; + JSValue pack; + + host = (Wm6QuickJS *)opaque; + if (!host || (!data && data_length != 0)) + return -1; + copy_text(error, error_capacity, ""); + global = JS_GetGlobalObject(host->context); + pack = JS_NewArrayBufferCopy(host->context, data, data_length); + if (JS_IsException(pack) || + JS_SetPropertyStr(host->context, global, "__pak", pack) < 0) { + JS_FreeValue(host->context, global); + copy_exception(host->context, error, error_capacity); + return -2; + } + JS_FreeValue(host->context, global); + return 0; +} + __declspec(dllexport) int __cdecl wm6_qjs_eval( wm6_qjs_handle opaque, const char *source, @@ -169,6 +647,69 @@ __declspec(dllexport) int __cdecl wm6_qjs_drain_jobs( return count; } +__declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( + wm6_qjs_handle opaque, + unsigned int buttons, + unsigned int *width, + unsigned int *height, + unsigned int *stride, + unsigned int *byte_length) +{ + Wm6QuickJS *host; + JSContext *job_context; + JSValue global; + JSValue frame; + JSValue arguments[3]; + JSValue result; + const uint8_t *pixels; + size_t length; + + host = (Wm6QuickJS *)opaque; + if (!host) + return NULL; + global = JS_GetGlobalObject(host->context); + frame = JS_GetPropertyStr(host->context, global, "frame"); + if (!JS_IsFunction(host->context, frame)) { + JS_FreeValue(host->context, frame); + JS_FreeValue(host->context, global); + return NULL; + } + arguments[0] = JS_NewUint32(host->context, buttons); + arguments[1] = JS_NewInt32(host->context, 0x8080); + arguments[2] = JS_NewArray(host->context); + result = JS_Call( + host->context, frame, global, 3, arguments); + JS_FreeValue(host->context, arguments[0]); + JS_FreeValue(host->context, arguments[1]); + JS_FreeValue(host->context, arguments[2]); + JS_FreeValue(host->context, frame); + JS_FreeValue(host->context, global); + if (JS_IsException(result)) { + JS_FreeValue(host->context, result); + return NULL; + } + JS_FreeValue(host->context, result); + while (JS_IsJobPending(host->runtime)) { + job_context = NULL; + if (JS_ExecutePendingJob(host->runtime, &job_context) < 0) + return NULL; + } + ui_tick(); + pixels = ui_render_incremental(); + length = ui_framebuffer_len(); + if (width) + *width = ui_framebuffer_width(); + if (height) + *height = ui_framebuffer_height(); + if (stride) + *stride = ui_framebuffer_stride(); + if (byte_length) + *byte_length = length > 0xffffffffU + ? 0xffffffffU + : (unsigned int)length; + return pixels; +} + __declspec(dllexport) void __cdecl wm6_qjs_destroy(wm6_qjs_handle opaque) { Wm6QuickJS *host; @@ -176,6 +717,7 @@ __declspec(dllexport) void __cdecl wm6_qjs_destroy(wm6_qjs_handle opaque) host = (Wm6QuickJS *)opaque; if (!host) return; + ui_shutdown(); JS_FreeContext(host->context); JS_FreeRuntime(host->runtime); free(host); diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index f113c5bf3..fed808c8e 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -9,19 +9,18 @@ This solution contains three native Smart Device applications for the HP iPAQ ahead-of-time compilation to portable C. It is the first application UI on WM6, but it is not a QuickJS host and cannot load ordinary PocketJS bundles. - `PocketJS.WM6.QuickJS` builds a VC8 host and deploys the CeGCC-built QuickJS - DLL plus the real `apps/hero` bundle (`JSX at 60 FPS.`). It mounts Solid, - derives a draw list from the HostOps tree, paints the Hero screen into an - RGB565 framebuffer, rasterizes the PAK's Inter fonts and RGBA logo/spinner - assets into the same buffer, and presents it through DirectDraw. GDI is - retained only as a compatibility fallback. The host requests the absolute + DLL plus the real `apps/hero` bundle (`JSX at 60 FPS.`). That DLL contains + the native ARMv4T Rust PocketJS core. QuickJS HostOps call the core's real + tree, styles, Taffy layout, animation, texture/font, and software-raster + APIs. Each incremental ARGB32 core frame is converted to RGB565 and + presented through DirectDraw. The host requests the absolute `DMDO_90` orientation relative to the device's default portrait mode before mounting the bundle and restores the previous mode when it exits. The rotated `SM_CXSCREEN` and `SM_CYSCREEN` values become the PocketJS viewport and the dynamically allocated logical framebuffer dimensions, so VGA uses - 640x480 while QVGA uses 320x240. The Hero adapter derives its middle, footer, - right-aligned statistics, and wrapping positions from that viewport instead - of scaling a fixed 480x272 screenshot. The window title reports whether - landscape rotation succeeded, even without a debugger attached. + 640x480 while QVGA uses 320x240. PocketJS performs layout directly against + that viewport rather than scaling a fixed 480x272 screenshot. The window + title reports whether landscape rotation succeeded, even without a debugger. Pixel masks are queried from the primary surface separately after a display rotation; a missing 16-bit mask falls back to the WM6 RGB565 layout instead of silently converting every source color to black. @@ -40,8 +39,9 @@ exercises the OS surface that a future full PocketJS host will need: - runtime screen and memory reporting. The hardware and Vapor executables do not embed QuickJS or the PocketJS -retained UI core. A successful QuickJS probe proves the JavaScript runtime, -but does not yet connect PocketJS lifecycle, input, or rendering APIs; see +retained UI core. The QuickJS project does: its v2 DLL ABI owns the Rust core +and forwards native HostOps, PAK loading, fixed-step frames, and framebuffer +capture; see [`docs/WM6_IPAQ_212.md`](../../../docs/WM6_IPAQ_212.md) for the staged port. ## Build @@ -54,9 +54,12 @@ but does not yet connect PocketJS lifecycle, input, or rendering APIs; see Windows Mobile Classic/Pocket PC devices to this SDK; the similarly named Standard SDK is for non-touchscreen Smartphones. 4. Open `PocketJS.WM6.sln`. -5. To rebuild the Hero host assets, run `tools/build.ts hero-main`, then - `..\quickjs\build-demo.sh` and `..\quickjs\build-runtime.sh` under WSL. - Known-good ARM/WinCE and JavaScript files are checked in for deployment. +5. To rebuild the native core and Hero host assets under WSL, run + `engine/wm6/build-core.sh`, `tools/build.ts hero-main`, + `hosts/wm6/quickjs/build-demo.sh`, and + `hosts/wm6/quickjs/build-runtime.sh`. The first and last commands require + the tool paths documented in their adjacent READMEs. Known-good ARM/WinCE + and JavaScript files are checked in for deployment. 6. Select `Release | Windows Mobile 6 Professional SDK (ARMV4I)`. 7. Right-click the project you want to run and choose **Set as StartUp Project**. diff --git a/hosts/wm6/vs2005/prebuilt/.gitignore b/hosts/wm6/vs2005/prebuilt/.gitignore new file mode 100644 index 000000000..a8dca6f3e --- /dev/null +++ b/hosts/wm6/vs2005/prebuilt/.gitignore @@ -0,0 +1 @@ +*.obj diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js index 086aa6a1a..4d36a7f5c 100644 --- a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js +++ b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js @@ -1,167 +1,4 @@ -/* PocketJS WM6 bootstrap + real apps/hero bundle. */ -(() => { - let nextNode = 2; - let nextAnim = 1; - let focused = 0; - const nodes = new Map(); - nodes.set(1, { id: 1, type: 0, style: -1, text: "", parent: 0, children: [] }); - - const node = (id) => nodes.get(id); - const detach = (id) => { - for (const parent of nodes.values()) { - const at = parent.children.indexOf(id); - if (at >= 0) parent.children.splice(at, 1); - } - const child = node(id); - if (child) child.parent = 0; - }; - - const textures = { - "logo.png": 1, - "spinner-00.svg": 2, - "spinner-01.svg": 3, - "spinner-02.svg": 4, - "spinner-03.svg": 5, - "spinner-04.svg": 6, - "spinner-05.svg": 7, - "spinner-06.svg": 8, - "spinner-07.svg": 9 - }; - const viewportWidth = Math.max( - 1, Math.floor(Number(globalThis.__wm6ViewportWidth) || 480)); - const viewportHeight = Math.max( - 1, Math.floor(Number(globalThis.__wm6ViewportHeight) || 272)); - - globalThis.ui = { - __host: "wm6", - __hostAbi: 1, - __textures: textures, - __viewport: { w: viewportWidth, h: viewportHeight }, - createNode(type) { - const id = nextNode++; - nodes.set(id, { id, type, style: -1, text: "", image: -1, parent: 0, children: [] }); - return id; - }, - destroyNode(id) { - detach(id); - nodes.delete(id); - }, - insertBefore(parentId, childId, anchor) { - const parent = node(parentId); - if (!parent) return; - detach(childId); - const at = anchor ? parent.children.indexOf(anchor) : -1; - if (at >= 0) parent.children.splice(at, 0, childId); - else parent.children.push(childId); - const child = node(childId); - if (child) child.parent = parentId; - }, - removeChild(_parent, child) { detach(child); }, - setStyle(id, style) { const n = node(id); if (n) n.style = style; }, - setProp() {}, - setText(id, text) { const n = node(id); if (n) n.text = String(text); }, - replaceText(id, text) { this.setText(id, text); }, - uploadTexture() { return -1; }, - freeTexture() {}, - setImage(id, handle) { const n = node(id); if (n) n.image = handle; }, - setSprite() {}, - animate() { return nextAnim++; }, - cancelAnim() {}, - setFocus(id) { focused = id; }, - setActive() {}, - measureText(text, fontSlot) { - const width = fontSlot === 12 ? 13 : fontSlot === 8 ? 8 : 7; - return String(text).length * width; - } - }; - - globalThis.__wm6Snapshot = () => { - const lines = [ - "PocketJS Hero (real bundle)", - `viewport ${viewportWidth}x${viewportHeight}`, - "" - ]; - const visit = (id, depth) => { - const current = node(id); - if (!current) return; - if (current.text) lines.push(" ".repeat(depth) + current.text); - for (const child of current.children) visit(child, depth + 1); - }; - visit(1, 0); - return lines.join("\n"); - }; - - globalThis.__wm6DrawList = () => { - const out = ["B|248|250|252"]; - const width = viewportWidth; - const height = viewportHeight; - const middleY = Math.max(72, Math.floor((height - 90) / 2)); - const footerY = Math.max(middleY + 118, height - 52); - const safe = (value) => String(value).replace(/[|\r\n]/g, " "); - const rect = (x, y, w, h, r, g, b) => - out.push(`R|${x}|${y}|${w}|${h}|${r}|${g}|${b}`); - const text = (x, y, slot, r, g, b, value) => - out.push(`T|${x}|${y}|${slot}|${r}|${g}|${b}|${safe(value)}`); - const image = (x, y, w, h, handle) => { - if (handle > 0) out.push(`I|${x}|${y}|${w}|${h}|${handle}`); - }; - const values = []; - const imageHandles = []; - for (const current of nodes.values()) { - if (current.text) values.push(current.text); - if (current.image > 0) imageHandles.push(current.image); - } - const exact = (value, fallback) => - values.indexOf(value) >= 0 ? value : fallback; - const prefix = (value, fallback) => - values.find((entry) => entry.indexOf(value) === 0) || fallback; - - image(20, 20, 40, 40, textures["logo.png"]); - text(72, 21, 9, 15, 23, 42, exact("PocketJS", "PocketJS")); - text(72, 43, 0, 100, 116, 139, - exact("Solid", "Solid") + - (values.find((entry) => entry.indexOf("+ RUST + SCEGU") >= 0) || - " + RUST + SCEGU")); - - text(width - 132, 20, 10, 5, 150, 105, exact("60", "60")); - text(width - 131, 43, 0, 100, 116, 139, exact("FPS", "FPS")); - text(width - 83, 20, 10, 37, 99, 235, exact("42", "42")); - text(width - 86, 43, 0, 100, 116, 139, exact("NODES", "NODES")); - text(width - 31, 20, 10, 217, 119, 6, exact("9", "9")); - text(width - 42, 43, 0, 100, 116, 139, exact("DRAWS", "DRAWS")); - - text(20, middleY, 0, 37, 99, 235, - exact("ONE RUST CORE · ONE JSX APP", - "ONE RUST CORE · ONE JSX APP")); - text(20, middleY + 21, 13, 15, 23, 42, - exact("JSX at 60 FPS.", "JSX at 60 FPS.")); - image(width - 60, middleY + 17, 40, 40, - imageHandles.find((handle) => handle >= 2) || - textures["spinner-00.svg"]); - rect(20, middleY + 68, 105, 4, 59, 130, 246); - rect(125, middleY + 68, 105, 4, 6, 182, 212); - text(20, middleY + 83, 1, 71, 85, 105, - exact("Flexbox, springs and baked type —", - "Flexbox, springs and baked type —")); - text(width >= 480 ? 253 : 20, - middleY + (width >= 480 ? 83 : 101), 1, 71, 85, 105, - exact("running on a 2005 handheld.", - "running on a 2005 handheld.")); - - rect(20, footerY, 132, 32, focused ? 37 : 37, - focused ? 99 : 99, focused ? 235 : 235); - text(34, footerY + 6, 9, 255, 255, 255, - exact("Press Circle", "Press Circle")); - const counters = values.filter((entry) => /^\d+$/.test(entry)); - text(172, footerY + 8, 1, 71, 85, 105, - prefix("Count: ", "Count: ") + (counters[counters.length - 1] || "0")); - const reactive = values.find((entry) => - entry === "Reactive on real hardware."); - if (reactive) - text(250, footerY + 8, 1, 5, 150, 105, reactive); - return out.join("\n"); - }; -})(); +/* PocketJS WM6 native Rust core + real apps/hero bundle. */ (() => { // node_modules/solid-js/dist/solid.js var sharedConfig = { diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.dll b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.dll index 871c77bd3b861cf380436b6f207fb0bb8529a463..618e677ac3181df930d4d7de33cc4340498e626b 100644 GIT binary patch literal 1549684 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

R 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

rrYkrSX0DDKeU5id6ZUKV)&^a|i*ftR8miluxB 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�n^g+>IpDEWBX*`P+oV+C82R~ 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

`N>8y)7fv=zbE=df5y-e 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�gB9`23h-xu%VPB~;c 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

*>2aJk9_2=w$1J%cHMiS8SX=oTeu-w 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

;t4&xQ*E}v8^0A)o3l30h4cfjXGJrhlK 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

  • *e|4(zb`EnCEeALOAWB7I~eN_?V{s4ZgYT_rp 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%0DeW<=CTH@5mvr5lsh=_+DfkA%r2{f3~ znV6`lU!t%&9L}Uv{Gf+ZgSsz(_$4Mf99kS<@p_=Q^NF^PMGmcY#i@H-Rfl?-alAe| ze^y~h-mEz|vt{MvcpC#J+hXx3D=)#Rb_qb)-AZ^h(I?_X0nz&uI6)s3$Fsk-4BHkA z&k7xnbt~=DVbGK=8i#tN;vQ)a&_Dxe3*AmepJ*S_yXu+xFf2(fy+kk7$)&kY94E|| z(ENiq9z0Q6LZ#r|{{rz{8+1GXg8ZXblIx68awXT$!%;kBc?PzZ$-g9u-au}bLCR{+04ZpW)g<2BNvufgqgxV;Ye*ZBS#`5uJZn~3`+;I|O= zZNTpUeg}CRB6rifaQ_|L55qtcX!HXrbpC+~mwbfp$0##yu}1$!?p~kMBidJR{|e#0 zK^os8-nZn=JO+EZ=I+%~%hCF4?#BL_D|$BU12nC10AL;PK+UBM!grA7PCW;`CR5X* zFjxmE3Zo4JGhsOF=fPydeFWTG2;%~r19%kdFxvTW9}TzBuwMW-7!42qMlXbYEc`Bl zeH`o)VRysN1K0yN5AY<|VH{BEsX^(4Rsi>z2s29yNAJ+w3A;77<0*}n{0imVi`<{n zT+aRYzM#1rFKP$11Db0kOzaKBeH-E4*51?(X|(c?7S=x0CC zp6PH8ayi^%@*OU%)Zt!U>Y!+q!(CeKaNW7iL3i$QJQ{t@k#lZgN=~#KrZRr;9b9_*5y^i>x<=~$PD=I#-R!e}0RVYFO)VYIv+MifSy)Wh94sfTO$)E=%SKkuPM z_rN^eL(^XD;l7^I+!>doJ*r)r_E;1~n~v}Fw8ym>X-0HLnoFCN<}NKvqZA{}mC}?( zNzG}lq&C3qfLG(Y4&RM%-vak-X}h!?X%yX&_NI0>zIWq$55D){doRBCrn#a!VeW&u zALaqX--Y;(q>*EH8YMiDra7L1*#q+{n5WYoPuZ7Nm9jr=cglgZ>XcXUJ&5mH2!AN; z3GLmq2cz%e`(E0E+V9fdiT*ClMZce=arne?19=k?OgtnLLScpuG`(Z}s@^>JxAeOyr(ZB!qM!f5CB zaW6d|Ze!qfA-*u$ScJW(kGpYPAD82jKJE&4A9qtd+#34Oxd!5`f?38g-{6b@n zGS2GfIXid2%<=9)11Am4J2!J^);Ys3&7M4Rdd`gVr{v>_sasawVBEO0S7X!ShF;fg zz5d!?wB5Y!&Mi05hTGRHI)4owS6+DQhV^)kY71?qt#_P`$5|fVU9|JwUcJvAIB3wY z(HGE;yDu6v9qDLSzSn+-&gTZ)?)+xJ3g&j2E<&E?tdQN;392(~^u^oe9*(@DxSYA;#v8 zCV9&FF=JJ>C*fCx&#b=@|A2OfvE^*{<~!YU-WquNI|Ez(t`XgtXtWr2kO37aPA%&B zw|j5jjOG->{moMM>j}oLoy;h_*J!yh)@ix62OY*^)I0rbIBbMhVnTFP^w#L^uAIU~y1ujNA!A?kcH>{C zMVk{F-S2fVo&eRRO^Bu3nS5Wgb=8swNKY{CYHp3*);Fc`anOH_Ph1q;d*d7FZAlrK zJs*6!&A9!jXAd>DG`8`-XzS2uOw*cn=`rHwd}zz1EzvI;k0JjLZoA*`yk%@XbFgvv z#>0)JfzypiAKvKcZhV*#qg$8!I=bxk*NnA|AD@}#a2o5n8Sb^w^()(q?KiD!xv%j7 zt#7p5SRH*Pt4p*s*|-BO^APpymSSu$mf`P5P0fv8X-=bb)=0yBb9?Ui73r-jZr2R= zjwIEH_ZvH-&l;;6bIEXjXt-B5O-jf_*U8OK@3!Qw(+u~vXzutW+l}?Q;Tadb#d!F} z=Ua9y`Nnv3`3@}_Yuwehi_?f14>oSqZ~B$d8hyAq*4Owwj@*#NM#oL7qq|d$ZKIl= zzp)KXuq^u4Md`*`>dUeUL!aa-)J ztN})IR^xqbn)`W5H{1tYnZ_GyKtOywj8a_2i>YMnGdvmS1`iL$v)xAVTkSV4FFo(Y z)?NjBo1R?Syu|Zu<6TkDhsM+GdsCuq(b7x4&2UAhZ%SD*d)|G~wYdWtn^*MMw8Xut zamtgAEqQS4GGmRtJb#v}y@!_2^s6m~`?h7CfU#$Z=bI+?cTx90w4`oEv*G#m($8+1 zc7Ib%H}vTbPPkbQ3e<)lPo~+aTb}7kjos;zbmOfv+`m6l|5HB->C|V7`-L6uXYbkK zI!+HJdw!Ot9qg%<^wuWz_3r4W4fA?WpdF8R>5tkMS`YfyaH4B_LzfA7nENma?>A!3 zgtZu~o|l%iE;|S0=@luNcrJx+aNEOJ8BMr8F*!#*&A3 zS;M=q%^AkcjVllXP(u1jV|jF~(Q*;{C8TdkX9JckH2veARmO_pXF7VE*4ApYZznx^kKvi_>_N`x4rg?Wuq-!rJEPBTTe0G|-5YZk zpyRJ^dbzP>>B_d7m#tjZ=2-sl9ZuufLrZs1)AO;-yEb)exp&F>N7pt#@`iEv{`Q+5 z-P9J1-MfD4j>g#5XiL*QsXH<DrzNBqX(m&%f zZ}&`iuIM^AqkYG;h3=!nd$w{3A9t--+w79RrMW{I*ENssw&b_{jCY+)_ZaWD-}b-? z&xtGc?k&Bn?b-XHo^FjRV$oIiuh<;@^_|VpPoi(EYR8CPyYb;=5B_QxMO$u-tzEZq z>HW7FEA&`Q-?29Rrd4ax8z1E1Otf5#(Yspzsk@hMMGtB@bb9yhsduy*>y4W=H0QG0zuEtY zCv{`vuKRCm+tjo@wkf)GK*HVbO)Ix9*}CMen;vd$F_tH3m`w1u@!?j_nC3OHn{MHW zVSg6gtEETR#@04(-gmPWTN6Y2+aJ%`Yb?)5-+1@N#*KH3y>-K*aKE{2~?W>J-nJKp|GuGbgao)Tfv-9oW8n5TA|M+k1?&qdmdSv;ek?l9Go3)`Sck-3H zH%2eXMrQPK`tbPpYShrT=Re#401s&1k zNfAWEi!Bdq&ODlvmC`r1R!|SiV_TY=jax98CEU~aWb@s(7+b_t)+N@CH8`hBW3v(K z5?iJLI0rPus@C)tSjVO}uIdttWr`qu8WCcp@#LWNCC$dN*ovmd$i;+&OhQ@HTbDeR z;^Ghp+}`-SGm|F7y6n-GwvLUxtu?o}V!!GR>IPHOu2qVv_-K_8YdtHy=cpx^zLw`c z-PqimciWO%1y!;4wq`B1CB4PH-1t}PlGa%4M9Wi6yJN=2D2Svr%P{G*u4=l!y(QM( z+}bE6sbvqWx+!*J>|g1tF-5tb-<#Vtx+{9K@l9JsW9y~gHM-kCHRNX9_-XV5qqP2< z*nVg1w&<^;9;Oi1o@4wb`ryh~?8cRCEw|pZuI=6>_b*!>YcXQ6`(&NWgJ}98gsvu)4U=2M*H&E!8X)+)$Zj>V(z~$cW;Y5pV=jYqOGxi=ZrFL#rOp+ z&~o1j_wzToZ;CxK_NEoF$JZFk1SOChdq7Va8hbS6Nm&9)^np=LZ7sz|6PXmawO~l> zx3TS@2G+%LPmg)tqQ}lZ2-322`aRLY!dPx1(*gYljl5{7pab%oAM~8)ObUDiLSSig z%u{acS?2lsGWS1IV(vdOE#P@~>1U&3v)9CG5)<8@f0IPPF7!pJdu})SqI>C!Y5Jef zaDR3t_0Zkd->JWMx1N67?N0SPl|FFhX`bJou6^8ByRyIbud4^Pz2Uv^Lk}pF9p2NA#D>%n_2d6qmaK7`^|7Pt?prSaohw1Ci{ zSO;Mkre|1HltGb*3(T;J%DyOW?3>6U2#V3z!>(c!7tpA2-=0w+M#aSFfP#sdM2tyH zLUbfHi7_ve?fH_ty!gL8VDjGi{mysJ_nm)t-@3Kjx^?T;t?KUTr4WNzVO7WubHJQ1 z4)cdusW>bJ%fX7UrC1HN72A%Tz}~{HV*}Vn*hTykY&!ZB`y9J~9%8>^EItNT;-0uK zeu$WihvDJ)96TOR!WZLNcrm^VFUPC#Rk#7)fbYTg;fL@u_(i-Ae;0obAHYAtzrz2H z|A7Ak{}ul?P7+eW2JWj|2nFFu_!8rZ0AdO;lh6~fL>!SsSj*-S3yDl3mnbAkh;pKe zs3q1C2BMKzPi%rau^q%NVlQ!k7_>V=yi2@Cd`f&lJS5D-55!DKf@GKEdkId?CiBQ; zWCdA8zC!*+{z1}|HRVK&p*$!JLr<;gL^c4Cc@d7=aZXr_W^+Y5GEc)F)_?sCZ0)R7N8Tv0+hncW3rfHl*8mR<;)6ZHS-d4kcmZynWM}J zCLNt*PBER#8_axkp6O=ZVvI~L)5p}H>&&~%E#@|}3f*DuGM_M?GxwQC%va3!%umcy z=2r%nQc`QFOzI?ck-AAerT)_C(om^h8YzvD&X%T27fG|EInq37k#woFLb^)2M#@W@ zr0b=drEO9z+9us4-6MTfdO&(unmysYl70J*O1q?&q}Qc8tPWT?TXV?QI?#HP^#SW6 z)+ek_S$A2Vv%YBkwsntnpS7Bu!iKOjSv?!Y#wu;@)USbE?N9?!k z&n&FiV8hxt*=TGg+N`#zvuU(hZ?nl}uT7WDIh#v1y*B+eezyL$TH8ss!L~DOLv8i8 z5w_8`D{Wu2U2prc?RMKewufv_*uG(V*|y*IhV2KopW1$5`^ffN+n;QIv6aZIWX>{$ zOe6D?O_t4+MakyMl4SE_OJupSVp)Z(Mz&T~CtEMuBzskMSaw2oO4cpAEPGdWTlTT+ zGucC#AT!H;lOa2aozzZd=V<3*br}aV{w?^IcZCtQzyu7zfw8uB+U5w^!W` zxm|GUal7vJxtqyt*zIRGFGZjtL@`s5qPU?LRNPmX6nTMacTab3cVG9h?&IBK-Q(R; z+}FE*;QodCkoyz&pWSgKtz?xRO06dK7z+hJ4ny#4f;BLy}m^c7XT5*qWCC7R9#d{EFWu#t&43zD84>{PcS6ZCDbQC z2$qrO(+p{KX)PHBF_g_`8?x)N>$6+3A%E_%d_LchUzguf%oiJq>xv;qS$#QQZYZxS zuP?XcujZ=_)pgY^wUEEIMc<%r(jSj7MAStzN3=$^Mm0n=MKwnqk7|vni)o5!jyX1~ zF19|lA+{;@cx-d*?Bb=f>*gGrYnXd%ZY#{-m2f5ThWKOgt(Wk!gocEsgpJ9DsE=8@83nEwNt&TCoBfbwA`jO!tJYU(YZ;RR-)fT%swk=_ELR<3YBP- zQ;*JS)uZMpbnIi)@DXZAK+O~Jh78nDgbMJbs1nuUFT&|+CHygtYvP)@4cu|Ap4*s< z!v{@h721LG2DGik!1Zy4SagK17@Xivk)f^=TO48yc zF^rM$o|2|9lBTJWrYRDBiY0Zj#E>p&nIIW)Q*<}_N?OKCTJp&{(w9R1Xo7kIn&>$J{Bi2I{c)ag zA5p24Xlp%y?*RBoXGpaGlL4Hi$QSd)eQ96T*Tz@w>*jk|Dn(M)12D{=0hnYp!)hvk z+zR<%K9tXR@W)uETZdYURBG!P)?2MVvA%50zynXlHJVLludpAn{Q$kN6c6JVYBQ4Z zsm%@8Wuya=Imf|Z{+{jYw&H>i4otZ00u0L+U|_x=O9xm8pp%`GEtgdSAVM#DU1pG- zmGJ-uh~Z^hfnpE90f3_bCjquV4sW}OcBEp8LaZx2ilw92dKB9Lwg;Ft8lC|-6d)Wx zkNQzKF#+uH1;X;;YdXyba%qcN2Pa zBpfw|qeJ1S>pDDzM9q=tP$cS#M8_i0DF=*qzzk97R21s;!<(W}a|~*jg_>ufL$grJ zEOcxZIvtBTKR|{#;&EsW>Y9rV1$#8i?V5Wk&JfoecPPF&{!n~Z{Hc$S;Um;C7vtw* zhC~EMbFz3GTHw);jJi@#a|-ye<}9o^$D=tF!Eq=Rb)}+HY3Oho>P$nYiZH`ctR=lZ z{m?vqo?%|gyykg_<~Pr8$!K0sx8Tr%uA;6LEh{(FZpel?_H|gZ9v#x7^}Wc@i}+sA zQ@`J%4#x~Q#^az041!Hj=ui||ABE~~h!3s#8)*FvRNw7U7mL=%qC*MdvHmWCXVd&$ z(NllRqi#QD*pKo1;U)|?V29EW9P7_uhBFv{1_Mw18SGF7;xiDq>oZV&m-vi8#Uqsg zse0QW0Mq}B%D||4&q2UW#oMW1@Ngu?sQ57|!v$j71!6m=;?*jiQyJ7M1E=a$t9m<# zZ5_mRKNSzNn0_k5Se3y~)jL+zdy&|7k=PEmGl42zt1<+t3|duhpsIHlv27QzeX5EN zQSnn%h7grus;W0c)q925c7@okQ}H^LVIPz_OU2Jp8T!DNsNxeJhRefzlQybCH zM(}M!AGZzm-s7lug{toY(RbQHc7f>aSM}{6_zv;tyQ1Q+s0>#`O*CC38g4)-#KrI% z;k&3^l3nNz75|6I@Q13mk7(*68g7cIJ&rw2ec?C5k5ES>N6-Oc`*FlK5?N@Cs_$K* z?|n-l?-IRFRek#i{)Bk+aoch3uk9@Sf@9*uNu0QY+*3Gl2aj3}=lRC4urRec%#wn% z#jx7ilwf!$HGZbw*fK2|j~p~J;i((Uh`^Wtf82y~Nd{g7kC@6Ts#YXdWe4PD2UK;U zh}?kk+<@v%6g>;6fR=lJVG^(S^2DU%fZu-8Q9C*18+~A ze0%DY+f!e-JvH!ltYu42k4=vikJ#Ax^JC}7#?Fn1j4K}5YHEsWip8V2c-5-nRmH{2 za`Q^Hw7EHEN6?C{82&ohOK<{JWFRFEG+(E@gIvTm#kj0ZpqI} z{#at2>6n?AnVngcc{P*C3C@|56ObR2-<;o(e>neQzA0bG|Gt1J^ef~_a!P7T&X(LP zxm)siiENqEvY=%p72_&{E2me6RmN0iR4%N1t+JtNebwNK;T2=5Rn>mg+UkwfTdQko z*4CV^xl;38&F3qJR{pedT5Wgj<=PdiZ?67zb=8_*)&#FhTDM`{+v_l%G#E*1D>7Z)@JBicM!XoqYMm z%eyysZa%lUZA)xhf7`9Lfwq-9_#N);=i4u~f8Czcv7{rXqqyT{$KN}C>cDm$-}(8@ z2Rqy0CFj?69e?HCD-T}r-W{-e((W0%7wi`HRKL3J)g!MWxrd*B>ipue7u%1V`ud;$ za?rv9>XgWosFXR{UEoJ3ZWJes;-pcWGK$ki@w`!-F^U(C;>Dvla};L-&Kva?jN&4| z1}d<1Y0;B$bZ0A_%H1Dw^qqlM@G*x&HiP7xBav+MPzj!LvWzBGx5 zFG*S)uTNnLODckv`4tYdspbj!KMT!vg3GCrFBxT7ydLVC52fl#OQ-*&`u5xnK3goOcx#*9WyI-_MEu*gv3Yjt*Hm#Wx<8M*z6#LC5K?ZVnOU- zE%HrZ!A(%&WWsSUB05zKD3wS(tfdm1srfT#6n#>QLdPgkcv#YFTBMIbF_TVfU(=q} zB4zw3Et)zr0Sk3ZIHmo&7D75=#$*u%B`88g94=RMYEg*xu$GOQ;gw(=GX}+;0e*2F zU0O7U!Kb<6bNml$?U8lNIf!Os#&>GzX%Xn67M}*GGCBfXfcMNCg6wBFx*XPyQ+bU? z+*?|?9!<5mrnQ-hZflXhyW*gB5_0hY&faLoS*;pzQx9l^&@7GLAxOyZKBf(Dw?mO1 zX_1r18SPkP7dPWG?c3UJt;W%fo6KsaW12{$j-(H3Lr{X(J6b1C^ttvY?Ymm1amZn^ z#$ocf!&>-80`xTv#Y|I;pB7_%LF+pMX=j|#g4B@@wBKlNYh`Z8U-1xB^O|-Fa*vsk z=pJ@Z8@|9dd_im^O1i4`MWo+1+Q-_vS{LN^vDVoKIe)7)X7(J`H|5RGwY|=h!^BPk0?(FG)jHOYCwc6tt%LX5^OG7QD4=T#+o( zEg`hF0_n?;{t`UFL;4b=pM%2VP#a*ojPmvCBji%iX7E>03`qgs1!cXzC@IkqS9Pc3O6db@QgMAStW>)>C8DYn zeq({s%TW3yBE1x)m!R}GlwN`6m7#f;h2TsCLUoVbz|%SxA(!B^eOR+Z+I7B4F;UzRwl0`ep##w8|KRi@O; z%Sj(7)epcI;6lErav@(-xsWdo3_^Zk_OjWMxssHK=p-MQ{PsQe!pRam`Q)tDp9^lh z{7&mY*`#L}m++uqhy>uUF}eYak+ZQZLMZ+I|Yl9{#UB|fL}#;V@df41M7pR>qu z>1U;~@_@B3yfml%PVz>6FzHs3`|8VUf2gl+=Qnie(mPVO&QS(3AP#gZ-ADCdsQ>U z{dsLU@3Z;42G1?Cx49%AN`5=_or>O;zioJT$v-k*%spKax~977QT(szUoCudv3u6* zRmCe_Sr^R*ZGGB4t7FX0jR~h~-)QS@f0)%2|5@U93&R%e%Eyb&audSH=8|#`xg+X~}f*(Ip?|e7vS{p-1T(1=BarZHa5&xcx+G(octx;a zK79UHAo}hnjjOs*GoyA%ZGP?M+VqagYu;XmkV6wJe+P4P@Db{ke{V7G{C%h2t~d7H z-*Tb-bi!AOaY^qcKT1wY*_%eC7p3dwAD^EG*OA+^in3qM{xLfte<;7Lps{FWsau%_ z-a;E+saessDzrAXc2;d-ZF=qE+D)}D*XmXqRvTaZd9Cy%{Y#bWNdE7J+Pd1hc@1{! z+t*_oLpFZc%4|BndFqxg+n;qz-&vjYUHF(f+$a8AQc)705S7FyT~Gckd2d=;+OD*r zv<36e&X3GU&B$5cxA4xAPnQ&Dp31zJ6`#$3Kv^JCP|men_q^o1^!ybCE`^H1^upSb zH%s)TpO@VP5j`r(mLFR=rSeSWxT@tVsOss}${JP8jhfGEey*9lQn&KfsxA=q#Wf4p z{=7C6L`|+Y*Vi`d*EfNvS2p~z;pPTx;~yLTz9D4ehK}spox~Bch_VkX= zJDzn|@0`BVVfUVWv;89dKAOCD`WRh^E;jl0q7Pq+*!S|jar^Otf`a0LWujBCY#j#w z^H`Bj%IsxGM!DL{m`}+!NU2|Kum<^Qd%OAa7Sa{snK}qHaSQxhp960^8@iCIQSw?CWTG>Dvp6| zGHg>|bA-(SHfPx6u!&z}DU~iRzP=nc6}C{=!eP_F78^SowuFR4*y3Qz&d$k+rSf2V z>7})6*R7jaSGQ&j&o{${kPoa@1^XG;HLxFmeLw66VgH+D_e8MYvdrcIErn>fwe&<@ zIEB+VgR9`_otK1?&=N+Xl6XqINQzXEo}?E=Q!1LGRSX5sqf|DO4Q<2Nz;~N6l^tbA z+c9=3xF%FNs2nLrl@sNpQcwz7!6;M;PlcB|?XH4n171o@Nx@S92A%?_l%7g24+>`W z84s0*r-zpc*sBbW>0f?z5Y zd}zT!@ti1t=WH))FBS?0ua}oaVGNX{{!?MosRsW%;|5Ot5pKAJ_N)i?Hmumi0 zi~6}z{#1zCqK?^rDno6NM1`xNv7mHPZKJYL+p28UqKZ9KPzNmNZ;25JI#=vKh1RR_jp>o4<@sKFQLqWh{kw~E+I0a59aD^zNMBzs%C6r1jQ7M%k zBphlFiPCbYJ(L;`rCOs@!ht9aE`bBgMuSsoT&cm8YKc-KA;DE!Q)(Mh!;%_XQsXYs zxGOapQlpV*G-6hb8}K2)CEZD-y;7rqpoCOXK&gZ=16&A7pa~@!r9|VZ)F2XQl=c#( zjZ$e%0kLKZg=BkeWP4#kU#aAfJ7xto#@H$yJgiu?(n0CTso~L_Naf^9*(x>9M6zdM z{4+7Zmm-zVNF`EozLeDwr1XbxUvRh>o{rQg49T@FS|84lbHLzFf_`IPT+3)#8wT17 zVG_8#T8I{-P;O+0e+|MeW}gT{?{xTPDGXRRapJw@i}1Czlh#@5=`(Kpgc+eT(IPKz zosN2DjjW%s9EzjBZ;Nc7!2tfu4%t0}`?6;+`L7mN=M%s1l1Sj=FOs5Y*ce6}bHy>( z8aDAOWN|FEwUx>2;AT}Ecg6A73AX3suM2ErU~`2H`aP$HO#_=JY+kT=!{!5EKoA>o7h&qU`oygD(AcHt>FLWl5zlSlBwcsf20 zZ&S|4m*6MxJUj&2`dcs$TcbkKarX_wubcA{rDV3Ir{ zx`Fn-_LBh8VjM#qV;tu>rqwyV>nIX6IKJgbk{ca+9my>aMfQSEjPG^q1|LMEU37ZW z>7r97yr&9pi95aRl$O}-e8%}AK-v^ntt;t~E$(9hRN$%rbJ=RZ8UQu;;j$&Iu(Yr= z7oZp*jnu={{Jequf%yQL17!f^02Khs0V)R|19=hB-UN6H(k}tL1vHlcAWfVf6rtGS z>QO`_EbWKT>^U$kk&u{#Qc}~>=grSpke!nYKg246yBSN4a1@MjV1U@d3gMsU#fv{~EGpwNUZVT{2A)Dw!jRlf+BbAJs}u z`1oC1w-5gE0#ijWM`UGf3zG;=&T^MAZi;Ll?|>JRj&@04oWMwC9E=f!4F@wt?oyeH z^%&X;dNjq_+C^?z8RbX$!!<+gBug3W2jxdnn~r$q=ii3 z3e3F3lSrz;vJy@wyp@0_u1?&Q z_*LQuiLVAtqvDcMlk$>QCb^Rrg9?*2CCwo_k`5=`ihnKXT+)NKeZo{_M&Ubfr`&(61+(>zll571W<%bk1_0`m=sk2gx zQV*s+O|?r)Ny~+&`VDZaa5C*|T5pyk_yk#Y2k&rv7`e-;$Y2ikIX}tyiy^ z+PUQHlJiS$EZKVKk0pVgfu2~MCR3AneQNil&$4qeOESNl`by?|nV)3-nrX}8HaEN@t_HY_v0ZRpOuZ^;%-v((nW>se>?rohl_Ji>dK$k@iTLO z&ne2S&wZ5p!+1?zU+#(AiPMVnUdr2>w=!?pv;_F)m6i6({9g)U3tXqS6)@8uP1~BZ zBMBAmDLBP{8X?{*sSB4BrW9VC96SBD!p6enqQ;`qpqGnOMNY+gr-v6GD*mSU_|ikc zpD!IVLtS!gYHCURjLMRIaCh}q$);)6%HO8NFS|73%Ch&C6)uyPhL)}@)x(IlsSIp3Xcj!Mf=Rz6>BS2R-CHvCZm?;hVNN^ zGQzKNN@Zdt6U|rdsGJgmbMT-^)Cj|a25=tkS2>vHLGYOZ=QL||)yAsVLXT8+hjxd? ztXQ;S`HIFBH&!UZysCrehE{K#TT#7FZC7(3p*tZm@%J!B_jAopi9aT~CQVNASgC@2 z_R0|5#+A{!cAYXcepTzLTdTg*`J|`UzLMUTzPa{EZGc|4diLss)oU`2EjYH|yVZF3 z$%XwdzWbtYIKSx5n*HHlulaHfTHBPFyB3SM4ri;Vmx3bva$<5aB0kMoy)HC&$GYF( zUh=a%&-^U@czy++Ir*cA*LlKV9T{pkx8PXexx#Ie_e{p>Bz3QDE{SZbgSTVr&L(%& zovnMjZn$nniBPAk&#gaI?^*wL{a5w#8dB@Pg?G`Oo{%j<*lI8s|so_M_-TL5BI+tHm0>6 zUvsjxr&Y0O<)(mj66WTnOPjvmbf3BV^3=_D8vow7eajD9?As(%tQUtj&>RdSzf zpM2l+eds9OvL9*=Kke~D%zl19k6;+FY5|1c*N=Q8=d6h%PzTBNljti7MbT&vgW{xU zhBcaLgMwx77Bx4`72R~>epH~VO71oXX9VPb99{k!sv)r7Y%$(W{n!D!>V$>4Vmp=U z!U1fvN&R#foAVe$==BfoqOXZT^fkIC8N_Z709Jz%j2OI*zBl57z1Se%OAH#(*Vv#@ z{}_EE0(yL_bLd*_KqcM~{rLRuPUoa)Hl(cq1C*kwd4;^>B|f zF^V2+@R~?8xEXnN2K5^tv(eDQTcQpkuf0GmGQkIpP?pG8bVrV!&hmcnx1hm}tNc5B zFMsWC_+Y0M&|W=pO)~f%Kav$P;e+7{$SIc9X^rU3NLmLhdOCwG{xil-*5c`$`Clj= zNk?Ov;3boVok1h1GcYMI=$r#E11m(*R-&YHI#wfkR(C3}!B@ok!EvvX(i?cx&_L7~ zP#xccq3`7M;`pQ5jgAa;< ziHP0^=&}*CFlgv$=;4i>u$FgcACh)QKSOS>-|nXdd(Q5G8g~KYT|1u*8Z;g=A`A`I z1K|o$EcR-r-L)>Zr_&wm4_ew8vzP-h*oj0TAtSWQaU|UY8N}C`=uW5JGoT6^@F|eA z1yG138Xn35i3$@9p`*X<8oYQT?bLx$AiCYyImtqE!{WvPU6jQa4!%K)Zvd0l1FI5< z&>(3WAPz~pRsbFtX;?A13X^t+yam<6HcPNhtNu4yFseK9MTB*;JFt5=R)>Zp_nPTJ z!!>Mh@72!S-fnV3KY!cM&-d`xIwu>!w7a6gF0Xdo#J+~gb-pLouh(cWHuW?ZyG~Gp zoiqBN8VLP1#wFb*-N8}L%I$+6Y7kQ~nZYv|5ScS}1 z#*VkegKe!z=Q;9+GPY;PjvYeJwD>ayf988dqsB8c)tYQvjqAhJ;O<)|M&OxYI2oqN z#|V7n5UH(1KcqdIbPy;tnR@&g8k*rfioDaM3!6Z5SsBmt$EI zF?hU$!TiocDZJA@qzHpjp4sJuvB3Y~_#wY%Zn7r7X93SB{Mmf;(1VklA5zQhxd0n9 z>}^lUePE|dNN~)`4>l2R%?-8*4j3lnigaO&M8Jn_9^*CMl(0}v_A6vZy?kT^-jDI9 z0P-n?6eK0chaEW~X_z2Q)MH$59mc$5=@O2bAlMd2hA~OBq=|bHIJzs3pU8is3P|FcBu8$e3YNNcoce0`3FamP-Vh@nLMBB8`u6pD0Rh!hul0 z;9WNhUvJbX@@+y8>q~K@iS`z`%599~QS@IDj8MXK;)o1JpFc&AktaI@2K zF9)WAr*8p$l=kuUAs^%CkNEoJN0Tw$*P{vqsIAX2iliUoF;u`q4}|d;H{>aogbOgV z<#S*F;0kKdas4X{EeSt#5_CCk^;r;e}eBnZ(kFwfOgw2C?vuJ zW22AYMv=S_YQhB<6kX^O11)?kI!mSln-%0-qlpl_vIGavsEm=p#?cz;Oj$2 zL%$PXR@*0rqN9CHs77%A3Jrrj=-MCSx+qbE!@)yX82`|d(?3Nf6fGYn>Hd7`2<1)t zko=I>qZfuq$&lM4nf98Qys;)jqSp0h+uME@jqcLh5+I|Mm9I6Z}*3h#D#ia9ygXwz8-$EO4_-2>ttH&axekt!Cpft15vlvTn~54Gi>O(k3_1WS#{zJ@Mvu#|02ba*l!<$`3>RM* z4bZ4t!@^~304{sNe4_|kY8{Z(y4k;+4S@Xv*6iXRz{&u9%Qu*jXq9Hx{{wJiS+o3G zdo%Z%S!c2}6DFG{LFVWuwq`znHDj!K;)|)xq&wm%pOEWz77l zZ(sZ?;y-=gz95Fa9Rt9xHv4^R6Y!c@#hH2hq2G`noC6-{;UlB4IxiU37vN{sMThY< z*15;lY^OYNta1TtLMoMjsefT_70O}-(Us4_6-5EC8Rt6 z3GtlIL@&}_NR~%}$$KIp9R-w_abb+v!-UD8tGS>jxLN)L$)3>WG2m4J=DUSmQ_WKa zqx~j{P;b_m1E8mIhl2&aL6R;oFkYM3XFen~OFj&P{4*ynA0hM`+~>RreJ6W_O?*aa zo&`&W(7tE5Wa2ty7yN5X z$X6Km72{(PyUzY$t0U>8+*>>&ISr#=K{ibInh3eztcw==nJ;vwn5QI?JjSzv8!3r^ zJ;q_QQy=y9@%1rbQ7}MLG>idUjlf8bB#_X7g>f)ad;2tk@TAGkTM{e~Fpve4UNmLG zk8rS$wAqlSZQc+jnV2;+OHe>bFpSfd;Y2v;4g-xWOBkE=d-JM)?_4GD!<>*~^5`{5 z>Ufe8a2AH6Mi}Y5VHfhglbRWU|I!g!O_&-WOf!Z7nOT$St}X5@j|=dJe~ z2Rk^{B&MSpnB5ZhbQa#ElG_AlLEYAI3iN-xpaG^1j==&h5xl(w7oDX_T$FACylFH6 z$(99}@Pz@KAVGoy60AiDX-=R_ZbB8Gp7q3AXU4vnP-2#jPe5i;Co}n)y(!ab(6=zw zL{m>3vxG4vU<$02fUJ1Iqlp*fNDik80m(O*G!MBUPKXu<-G}a3LlDcEkl+su_K-ji zY1D(%Xox^VH0nhf9VAEu{tR%lg>e{}><*(x8uSP=%{;=9NbrKwFUi5l6--l*1>6)| zOy~(_@)L#THwv~Vb#lRh2QYaE+N|;3PZ;ir4;hVo_yX~l_<}PRokcytj88G6;5;5o zW)A2b$pj~#tc@Q-p%Zl<3$`5aw&uaHGS-+RH%+qyy(!?~coR7^-gr`QFEAm?7@sd8 zAKL1g>?K3CCggA8XFYL2f(H56bKWK8OD6`YYM;?ALFE)Oh->xI9XZ2by-X_oOgWAQ_x<)mh&vMES&S@`=Ou2 z3?m-+`uHN@&r30Huu&hda7Ssf z;3%@AYJoKfVYmUu&bOnez!y7&egeMlMx z3c<~{Nhi`gg=;Cw6bF~CPi)Mn)GRfTa-rVAwB(yY)DDfp&oHgOCS(MIr1i)D#ZX6v zY3Mea9eKfU#q>%bT)#_VqJe!=s9@+a3N9c;R^zF?86O1|1d8z1)2FW6P$uLbC7Rz!m)qBWl=!CSzchCVzMz$ ziXW zS-i-AFrDZh$^1XC6Zg=b9kOQ+{-017_jsJyuxdD3O2b?rXs;x*ME(J)*)pkIM2c@n^f>Bc#QKlCc`YjQ375Q zA1}zoi|Z`8iJuB>83oU-h!NE=gyW z>dd6h%qQi>CS=Cl@VkpiG^n}hFh-6u2Moc&3 zMl)}X%&CuYnW=uQU@Vvq1NxSBPH3k%Vb2K@Ef|JP>)ixHyQy)3u=Of0Km**^@JwNn z|7*T!)i7UVGQQpNZ{w93&f*|syyAcc0S+4-P*JY~dJW(bfd5qoG#6k#Kn1|y3Yv;8UU=Yzw-8X2HCv1WdsSo{GDmE7%Ie zLYM)F0f0}40mECU@WO`_!XLq>WeheE*#L)Aa9ikZp=(2bz^l!xCHBPs-Ty-)%KX#H zM%I4K&qH&o{VhwO<-(GbnR7?hgPyz0-?CuZf5olvPc4R(oc=4W)IV<-BdRN5;oscaKch6xTPZ&bBN>kqBaCR~7wtT$O)9MSj_T$L0G+Ky~u}JF?h6 zc4Vpe|Bf#3hXo3=m;HC-bBX@5^aWKGwdH4~TUeQ0 z0b2NzFv3!$6_w@7{BvQk$z>=4iWQd)Ux6ZkE$FDc5dKYzBFg;}N7jVSOoR1M=SKKP zfLY`{Z_K%)>PK;)=E@RKQzPSI zfT%d=ZCB!au&(JqGf}ic=~}dcD1xX1&G-+ie_V~J{8t}f zRt%)YD~JKtOCsqEvACk3Cyw~l$q=jvg5X`ToDaYu25QZ21GT{2>;~M60Tr*nW1vWg z(mEBb071f=Bm=d1%^RJ7t{5VLU?60N$a9+`6#sWe{4)@iC=NO!7B>*G&5?K?GJ(uu zHpp}p9EKcf-i`w7zkmS zC8CxfLnlGCWxic`T>f$JNh%rSD{H7Eveh{gTt z15R-e0}bp{3^qs%WGGz+GQh?l{sYk|3WBB_2oW7ukmVE51X#;R^EiQ+Gep%CIf-p# z;Q%~}MvSQ_h?nD47O_LXR|K{WCIT#{j?@g~Jtykmy^&&koq=Qrm@XIYU7ZWPnKxAlqvHBof_Xv|vN9Z}DrVJ_RjB@MWOjy@M)ScEQh!EPR~2ok3?n@`YH~&26G1s?Z=- z@cj@lx6ehUMbPxX8Cqtg$TVK$C-#3lUgYwrNHXXOPN?X+C?JOWaIN=pg93i&Ff#%V%ve*d^mXF^C`M^w?z<6-RNns6{ zq0w%Lded+JdIuD5DH)srS7`cQn}E%LtHnZQib)?s31E^1VpkAN9sHsJL&=a>0bHT_ z7RxCU>st&B01+0oTF9z*ShD9egEUaG6aGMy_=Z^Bx{(Z^#UdwYyI-3urGZoAB#zah zmhJ+vrN>x`Unyn?5%UkYLKiF(3l}v5x+xZQGvEp;uHIo$-RQ|;z!iGJ15wmEQ2~*T zPh9XX#2OVjS^812sGCD0Eex5XMc;WjG<}g1sMtr;*IhC9N-=kc=zBrTEmjQ%9?|+N zw3f~YoqI$#pq&9%Fv%h(=vT!f+WA7vd)3imjbddiMgxS0#8&)Vtdl4a2mrw;@{=&^ zi2XHOzQcfD6Whw!=}lLtEDV-nWr2CIsIwPDu2my?1f87|#h(JqMn@TFvb<*Kn0d{$ zZou%86Z8nnP|_@Bi34hjky(`cxyb5MQIKn50;dQDR!FiKZ8;Pz8R;<=y8x5BwGFb* z5sUN@8GQozV9AJ)eG3dgaD!3Rd%vrgt z3gW_HvCiDgsM7MK#mM4j&dIOM&8~oJ*yYu5{hp7KV`4|rGylBh_+QeZmt`0JZ+T#4 z<^L^u!Mxf3OEk!1fY)3)5d2k>ABQ@OhkgyvtVNNMmr%GZkHQVjD6)Ays+YWm zT!{0i9`8m@_-)`h0C$yNpbq{%;`s+4=R*{#e~5VFLv$G)4Va|!T9t8d=SY&-L zz*H=PB^1j64zSSm4~FiAs057oe5qZ)eNr#S331^lUcVh*jkHkYnBuqL=y02Tw7l*J-N+xMFB^~2kv7Na$o;2j4Q8Yx>y3bW0rvvFMn~3N z1Kba|pANNu2k>nO-vN9F@Liz0ONY+=nC5kZ^ksgK=8b^S7ZCme!hnr{(R~QthcI9x zVDtdO4`_}t0Xzcun!Zea3u)g$nwjpkliV0PdOA$<{~F9P~SK))Emiy^!i z=)sSc0R0l6Ujp}LGn9I64!1c^!Y(3M6HZonhjZC8v zFlvRgEs)m6Tj*n7FcN^8x0}_qYJIYJC%jhHZw(*s!HcgPKY=Wc)ewy?ws<+yO_F8r5 z_FCbIWIXtE}hUs_LS`N7%% zD=pU7*{}`Pj%-7?E33iWSxpasLCM0;*&wW98<02a+2g}D@V;!L(HCgP18pFr1pzI9 zVG7U&L-+-toyl^&Gl4b?Xv5eEv*)s^s3dmZjTH8ja|TN^=dpU4XV>%f?AV@q_JqEH zU5^^svHC{#L~kSbo7v5}W_AmMv&#(t1o$L|)>ud))%kI*hW#Mn;>@MS3_LR#T zAlDW4EM{c8j7Ih>>R|)*J?uGS5BPi8E`2XM8N12`8m_X9=o;IlyT(p7Tmyd}drsHK zUf=;6``9kj&rZ?zvuBO{Y!`MN@O6;q9gyc8w#)Di8xa03@Vx=FH-Ppg#NTAk@i(E& zn`{7f3;eer4`B2jl<^*f-vhb8kG~JJAFy5g2M`8~-3GebfCqrr0DBhQVH*yH$Gs);QfqUXo%gd8)C2253#P{k61EXV8bGY*}$H!faljx*4Ka^v$Wwc zwAD9khwdBJweA~sFaLzyWPHMgG2gNz_C33s|DNsW5%CY8_a9gn@<(hKA{TLeKPG z3vJL}4?QJ$C)A+35h|&_5xSqa6}lgPKeU1WAQa9Qpg(f7`Zn2D`mF|^$gRe4kq(AAkq$j~BDeOKBDeBiMsC$TigXD7A=06DVw8iSENUx? zk9LThHGeC%V4-T$lqwZDqiSpYycG^t%T}mtP_=3kRjsnIsoq!bSgl&`41PC=sUbfw55e&M*BKm3w^YGucb8q z-?_3J#X!qzOa8L&J?A_7eCK@Qp7{#my@D|Rfp~8s-dnK0jd(wS`BTJu2Vp)yybloX zBiMh5c)x`CYsC9C!hGUSlYZ}?+V-h`s{ALI{|oaon4kL(OQwy7UC|p4%P||pb8#Eb zydJ+%q!Tx$3G8MZqIR>G(|NNp*mZMSe)r9y)OWMOw%#nhGjMa7eB|ac&)<4;Fz<`Ejrx)v=h@BVpgrj4|6AmHmiLIBXKe6?E z!4t8M)jUC$4i*SY8CI19aJ1Z@a84kGRw2jUCJbtsKA?Bnne}NQU~RRwTb~u47hV)z z7CMA(>#IVqb*puob&IuA;K$Jg?AZS)N@9<|>^iX(=f|$K3kHq2$GXpY2n$#Z;t{J! zj24}`STSC_)q0zCP=DNdyY-Z{SLhSA2u|F-k|#2;U)W+lr|r~t>$ln$iKneZy2qNM zyU!{}-?KWUJn2Dej&#mCXnorHto3=TQ$HvT2rpWnmR`1=lU}#JYTYJm7j_6c1*e=N z>kPYu9rir=X>G55i+)hE&7P;z*$g%&n{2J}R{b`8v@IaV+uG$$d91Bh9&g*D@0O?7 zw#pXUKK&NiZnN6<3j472ZV>y)pOy~@r|r+m&&$thcj$Lv;qNJXvh78ArY*(hwB^|H zY>R9!%S&xbY(=(W+X~ym_JhK!@)LHGVWo{|9^BkGpCW5QVh zOP~$MgnSNcVH7> z(2jfaL|MF3Q0#iKP2Zuv#x5GP;$G{1>tQR^8^xp6C^1HK>EduI+%fA(>skE?>mAlR zt;}{>I3wI8xWrsBU%XrBw?C!r()Z{G?2E-SRw}jX?zQIX?zf8416G%mFFj<yeR6_ruf9i~YEx_ja*}PozF(e({hE&m z-xnSg&dN{8&&ZDnXY9|(FUZencj|ZRsrF9$blXdEs%?hNWy`hY+ZNkikqd1Fwt#J! zZMp4g+avbJh1cXK?NNpj+mpiM_Mq)iyGygmmWy>#Yi!rpXcjY(^hNeO`%?Q7JJIFf z9Art?X>GT++Pm$Y_PeZm?7Qp-?ECD*rZEUM$*@TOs`f?g^V*lSi|zULLVJOo>T>n@ zdRfn`g~>u#%L!@g~s)|P0SU^Ck$+8nktTe>a7M(nrRkJxXsAGhCbKW0B_KWRT< zzr%iy{Vx0W?DyFpwBKvL+x~$4e)~iAfR5=DouCtS2doFJ*eh!Y>YT=Ihhpk-bUK{V zT+>Jz4yTTCCcBbZI*och`GsVX(V8Jd1v3H}&Zr+Jzn$EkB}F->yQY(@_DoGwTV`vf zE6SNdW@)3Ar>sa}vsxWu`kIuSD8<1XgZ8ubc1O@Ln35YcIPL5-=Zw6l!Q`{aa=MT{ zI3qtw&X6)#)a%JVNM;$%nSrRG}Z#5Uoa@k+dNjB8Bpn4B?rd>`xB!7;yJxa1!o3m`W^yMY3otI*Zf7ECI`)<*bDyJ#2jh zyY=I2lWdc1MfTP9W%f1pUVESYko_=LWeL-yX@jYBnmA3Kb~g1~>Qkvtr#_SVZ0d8V zY+7Ji>$K-nm1)6gZPQ*zeKGZ=)R$9VNqsf-wN#QUB-3OunI#93mE>UZx#XvlpH0S8 zd-5~M&m~ib;1C^>Lw0B!TE~mYFDJj6taH4S{7Uj`$$E#uVRV=rQI2RwjN^^uHJkz<*o z*s#a^sdK4oDO;*69b9^L>0sg6LY%f*=qz*sLYvR|8T{C`-b4|{gJoTv3!8K>skhOHJbFFJFTdS-k*U)Q( zYs71u*9>kU{e%7I`pH)3R@YXxRoObY_1so6;2a1Huz}#f*@3}W{&TR|bGK%X*F>1F0mz0*2x^fH4it>y3<h(!R+ zUOq?PK=NulxYoG2rosUmQExP^#C$z0I^q><#w{vS5rSy*bqR9d{s3#1gmU$Bg%uTmMgpsd=lSL zv^*bYXI85B=ORwz1hxbFe6ggUe&k+Q_*Y^UAE`GxigWqx!Ye$@&ECd(tR~<$_hPQS znOjGk*HqUuV>%wI8@#IDni6ug-`A`zA5a%RIIdQgK&aH?)$nVHk(Ju|%R#%DWt&V)yM!A(?gcs{P_APJ3jv4Ub-WarBWDJKS#-SAI%g z?**oELvURKdU9y#3`gN;$8ZEvP@kIv(z?mp$kzddRtXUvkBk&4w48{njm!r?uIdtM zAb=$}*gkZ5y5rhSn>Gqfp;BoRr_GW3vC0EsIBqTmo2IBVu?y^OG9;&V@a+5 zCgMU5;B5#4_BwApLIJ`7cCHOx@J9d}nwl}MP>TgJC@Hr9s`J;uTIc5z4o#l2)t+jA zO-%rsJ?mj@UQcqoAd<5D#&w9~ZCnSqz6y~6VAdk1+EcT>$-f?8^?F3}HTdd$>wFGw zAvukn>N@zq;P#r@S|kCJKag$znb^AdT;{N&sFYg1oP#z4!0(Fpb+)2 zH`c)J2eQ>rwdI~rMXRdId5>6M=RuhDb=+R(;4j#Ksr6ngL4pMkNTsPxO{=;Q>H6yG zzyz;tX=#BS9I*n6cp91=S9?4aBo~*s*Q~>`AjjG!|3;GA($HArYj)%|phM)gG@?E{ zcne=X1TSCNvYL7yFJuF-o(Cj1dYc`2O$eOl-GGW!q41Cq8$1vaXp=J6dViyzi;49l zj}y0pze%3Iq1M-eWVnUoSGAx}qZ*t$l6=&?3BkAtpry`(!f=!1%1BYNCi?RHv z#lhcXvDepF#jDOOWHF|O(3yCZxs@#D_pQSYgOf^qbF~K~;;9GV^{$82yPhoe-++Xg zYaFm31%Lewo?1`YVjs9QBBDPm_BYn~*H`lZjeZXKv4*V>w1~9ePL?2dJT=@><*()T zDsBgVE?ep2_r14x9I&X4{(7H}hwvc;zoZ=Y=0=Fo@<#7X4sMVoHCWpP)H=9@6x2bI z)Z^Inajems7i1eQZ{zxAgu4mR z@q(?zQ(acXArzqylGWE#ttQTeY+-dBR0zDe)prAkjT^AnfUe6*>O8fzWhH8T9ECMF z>aDQaU+K9Cgyblxsjno3$h5g^r3cYC@fCS|4m>_s!1Q2kt|vv_h6*${H%Jk#X7^(q zU0pe>^xcDDd3}2Ob|O_BU1g z9mRN&;udfd@MWk#o{DO}w`>WxTa{x8j#ekjt2j?wUIm`GytXX2x(5Add2Pjd4lU=5 z7B3%w%CaRO+7Q3xHr1)1*~6I~H&nRT2fE;NR?e$m>}f1lomX%Lt-`^LFw7aXV{HSp zQl4~)uS)G8FvAZ1h=fYQ36=UA*CV0jjo=wP-l~?WYJa0+xgQ*Id1DQj#PY@#4_V&i zsq#9OH&uCIt@G4#cbL#Wt35YWU#NW*Tx#oDu=17bp^&L7JpQs=D9KAaemM9m$ck!D zRTDS?m;iX;ifSJusM@VpRM&4LE1EpD%}|>oI7I`LRdnbo$I2Ukqm_JW-+^}{De<7W zIb}LvHsKFyRMLftiU>Tf{hXnwa7HIW804+XJ!h4&_!nlot{+rM_xk*Y| zYJJT$W$1|LjvRms*eO;gw}3RTV!(qlWgVqewN)H|97C`8rYX9`A_EKJpBF_7` z&*~b8!BWqLW)-@|2RjN<>RFFm_#0LnQVVNcEv%3VJTy>R>aF!x`Juq0*CRzF=immn zBO+d;v<8YRum=-~Lxg~GsvV{4c;uSKYJW3gz*JLhg1x>8v3-@*JY!!aGWOMiI?75o zCBWVUhh`KHFH-8S^_P{_pvs&!Oa0ANWEH0gE-kr*tVSX5)R5H>0_*)Z0)mCC@!)I8 z=U9Um?2uVi=w^_Y+)l3XZo*fjgB#=;n7BfKT#I^@dp3c~mfYy~GtcbZnx^Cc1MI zY2QSYO{8@b?NnU?n>2wFAZadTF57 z_y{iNFz-KXR|*L$B&~&Hw`$o{NMVOddm-s6q`|_e&mAGhj)=GMH`#K8v>yqYl_U0{ zh29f5s%ECdX3|qLnK?Lf=;t&zKH1f}NiqWy7HiF;x7)lK{?JUiL9dj*wwOt8k#N);b!0*G2~a0;1W~i1eR#H- zZ!Zd%#SiA0$90>>ez?#)bU5~dF=je6!~9Hpy=@0yeLW|JRh8;AVa6Ly$!!3CZ@=FaTk0%dlGIhY+ZlegwkWr1Q2%wy)aT`*nJ zsc7=?h5ixDIE32Ov7mtk56l)` zxr%_bTqP=39rBU~6LftEv@3xI6ApXN?MZ0ev+Fv2TMAYGhbwss?5-1y5iC;7;%kX# zuA^Po$)8Njoo(DTTfAp>L+r8lqq6CcK6_ewk+D^l_Rb}(a|xSE6!pJr?)!a`Vjjwn zruIwy3sAJa1I}=JuArG6=a)wchi;?v~NYyka>lKc06qsI?b=9lU}pH($i0)d%2SitQ77U8_gE% zGmFO>b%Dlx4(U|0bnte{+XOKqItkc3w$4uH1Ho)N#c?KoblY+XKs=-#F*K8%_7!sA;?L zAF{9 z#A7i!7ISW)o-L$%w&4DB`FrEZz`oqm1IjL>8_N& zUm$fA$iXzykw%p?x-*Tmrx7KMw5AcZpi^}Vq*0b8voxtajkc!=t!aj?lZ2h5>?ApH zl8o4cs$Ds$RZdR&=?$dyhRM&}s_nYfo&P`=J<*l)w8zlpk$cPIAK52&?UT2AC+-vI z7D3!4xYs^vbBk}BHnP+0R?4ij!%7q@Imq9%$BLP){EljhtGc?Y&ClJfeWTyhKjz`@ zYPynEb#$ybIuO-0Aa_QQ(@~@^N`D|qID8G=c@62iW=Z?CM7fsSd9A=yOXs!Pu50DC zOrm6xWgmiVYg9W(HJ!r1~Z0LYlc)!Ff?=nYkHAjP|?^>W68e?8Cw9~A=%}gIR2NrBKcYt%X zFF0rpE_lp5_L+3|gzaV{{(orJ?J>KP-!zkF%|tPSqAA{Bc0Fb=98fN_DG)sEQ0@D< zowRZ#)>MkOl1f@rrN^gO*c5ln z={ljWj&{|FN}c2HWiEWo?DhmDvQHw4L>QQnM7ks_WQ867GLuBr!ofg9m=Q-< zLJ<+AU5yxui$u0c5~8$nOSU4p&)jJiheWe+iXc^IXKV;T|hn_TR4}uYzMFj3NClCFPS=(o(2-|HI z9_CmT`&I8Qvu0=(@T)Ob9RFn3ceAH{LLSeipJ>wXGQFN1{XtZAjqCl#v%ShE!mqQX zPhwxl-t=fPGf#fc?4CN*zkm=nhmcs!*ok(WiJa+3&n_xi)!eBBaW|o9N>b6)xJ#E1 zA-V`J^-YALt8sdzP;?k`IB=PULmU$)PDw9n9@qsNEH@AAI!>g-DMd$#oLV%n{V*|( zLkI_awjVuCG!v6k9j+oG^EgL|exiMDQS>$VS%Uw#qT?bl(IOG&)=o@^0!V}@&3IC&Fr|o_j3JafGnFBtR+_Q?vh9b? zL|w4rbpP##;H9I(ep3n2Q)$iGmcV6w+x5gCNOChP&X-nJj{UJz~DW4G%V@gWP z$Z{5~uD)SY$Nq!2lBlr54VwVs{Nr(^BwOaSJkYAu)eV~pdbjQ4;Sz?OXJt8yBR%v| zl5OECKXNmT-v&d-s^ssC#mrBlgtYzaMtC`^PX=CtIo`XAWuj^`Q;XW_i9lNy;RxRN zIXic-r9eeFYEAHNEdZ)fEGMB!!xnKEl1)iBpfI8-=^zo4Zs_3NHyk8FQU}o_Iai|! zh(iHVMCGo6DTxQXRR%03VW0|8;hJ>AaN0L?i10D;+*Vg_>OFYtNqD9a3GhkEBU2NS zOCz+JaD6w2U-1{l+qe7DvI0dQTw0 z#G(YeH5-W*p>AAQ(uVNVj*ZPCm2Twqo{|ct6eDCG0HBSYojuQ0eizY&EbJ~Kt2W+| zvhfVNAGwR_RrjmQkK83|RO?-c9}27;b`V3L9*dHqvynmwl!SS%k)Y^_B66fOdo4oE za|tNWJl8d-(r}u97;Y-1*;C0hn$4*)`#=VnPO~q^#C3KwG1BZ=yliVoBF)B*Zkk<2 zrqJxctdG^Iu^6HivWp=qT8C>q#Ld>@w^?jjF@KRUUW~^gDzH zzyp&=FV0TToF_Tf{wTH+Y3e9OC5VD+HngpiIR%{?fz_KLW39>F9%zwx4I4wto&{ zrtR;ISB;R<;B|#)Rr{_5SYMHS=z4UU>{nk&BQ=#9F`HfC^Vc`~)}`>-C2UNo-%!@f zXZo^cAnwSI^4|zFV&P7f5eR!qMt;MNdFoI4k{=HcOO~iVesRa>Uqq^3ZT*rWeRbe} z!sj&m8_WACTe*p0ZF{lAaz0@0SJpA-?d*r_U6$Jr$M))#>!z}Ofo^skvZQW%>Cxzo9tPNOUYOd(Xc@=M#J`t5*g22CCVPQ zhaI~3(JJ?@I-j@?`vX`PXgVbkeFFf;0VPI_C=%Aiwpt~&H8+nP=*?M(GEnkd_uajk ze)duJ1S7kZ9qj*k_eX|KLHreav}b(V_6PJ^sI^Nu5O^d@uXHihW}2c1nXw55CtCOSoDSaIbDW*) z>(MHw1NV|R6T8#Sod4C~UOtO0S>3v*E!Gsw9TOa6E~oNxz$FB}*LNCuobK#oj|GnP z3@8r=?(XeVe%h%^(K!!v?Fxnw@*kZW^3cng~{#RD}0p$l<$gjG8(TBUXoqtNv zw1bO&G3k1v_=@?pXo1>z%E| zQ^|wb?V#Kj$563v>OUGwWdMd+dI;jIpBh zCwke@<2m=RUe@31e4{^i`QF6?ihI*!#rXqv-mK($f}PBL-8dS12kUhIxcPB+Qdxg) z{$9_^WonY7;Bj4~4I!^y{iUd=XTAM5RAKTM46rX~Z4jl+?kliK?G z`#YKQs7`VIkK&sB*4};j7WRw4N2spC+bx~F!Frr;-NC*`0`KYB&)7Zh2KwGR#7=hH z1%$gB_g~brmhE&!>4?$=MKJJ`@~d-Xw*(Huesjci!@!fu11Ea}dw1?ode}A*8oje! z#}4mx2FFE38OCc^=i&|v@0H*CD7Yf)SYAbYU&oVeIahr(19aJxdzWN9zHH!YalD+| z?$$%dFK{dSU7+{QU}sjr!7le-<($du<@cAL2lCvu35xS&eCJ`S(+=g{o>Oca>(we- zO)(PNp#h0&L}fpN+7}Ckup7NR_gdvXk$Ijz!<;WL=i{`C)68~i3G7guXO8rAvS--N zo>P;0w#EjYMRmWgJkguDdw}g#df8iV-u+BUym3r-bf@!!o~h{Nva(*@oqoi2vbWo|D6Y-Sd4e5?H3gi{GUqSQtvcBwhSp9hixk?f5Hl7- z%((BJ4N$g?Boc$HRdz!6W;Zw&ar9e+Y9KI0*nK@r0f&Q5? zWyGC4i8+75`h%XAH?T+JXy6a}?j4DJv1TEYfTuifWIIG4D8BU#)*t9(-7M!Ss=bnR zb{QUGkLh%5YizIcqre@VCc-s10b+~dz+r7vB4E-5X{K}rdt(XJ>Sn}ZJh>Z(`$UgR z40dUV(uaHNiAd~3P9kK+Rsy{V=t%5gy}|@DXaZvlom{E3bQ+)=39^n*y(KBp%4sJt zr3-l2ibn5~QK(LKt1NZh-F4aCHh3WC_bpVFdzVOH!02Pq*bftkk{p z7T-l~4+oEdmGrP<%(){l7`%^t*xDI5ueg_Iuw2sbiXvdTr|*jk3GdoI@zh#UnuVc+`e%v|Bo#9EC?H6f5Ubt?o#NR zF-rc6Y@f*To@FjO`&4oLK9Kh+%U#Ia%c_*T{W{jCxNlsnFIn2^PMSg77Nb(Uu=OvkOFxcd?yY~; z6NM})(KBa278KWzE*=ui{rPK$bD|XYc@*Jac*v10UF~}l+1}t$+{{aiqQG_`^|FNB z9b1%btjm>|^P2N;j{jiZde`~$E;eS*7El=4R8k1(Y#m@9va$|kw}NZuQ9Sh6vTt?l zQHnLp^?a~5;C|H-bUr4sw-w?}|L$J)V+b|SwdeOg-+Kfdv7hBHVa{y<=l$$d!1+h^ z7(w;y%AyaI+;O6kD>3IYit~VST4JtwP%VSbqe_<^dMudwpptux?NT}eMRx^USHbJ?7J6(X|uJ!RzxD%0uL2=!wxSRi?xFF^}Xbod;R{+@i8?X{a z-@~y%pf6OULCW&Lu2^0hgJg7FrZ{)EJ=ON(VD3XIPTN1efYa6xN&`KL%WJ+EsYbA(pv+ z{&9bufYXN2E}_1}A!Y{%JB{vJd`ocgbxOg0d{sSw zZ%pSs%=x5wreH`+Bx0w94cIz$WbR?3rBlBxsWZvATj^i0JzB}TqVENos2e*ez7L<1 zQLJz7WwDc}DN)dO%}{!_i8_3%B+cBdbQ=@(##1ruq=k&NCXOY}^DIX&>y$oy*QpNI zsje9Jt5-M_bn|eTh)!|;Xaib3^oM$I`S`mps3`T|@=#Ltbekh|ltkz#R6nAmNIl&l zEkzkfAqEpQD%~b*_#w)6Q_2L9(iBxsks+71P?76f-OAn26#DSzYT_!(Hm-Q(y$#|~ z^_ItLR1NGfw3j~G_2OQ-3+hQH*TRk}AL|9>4Fhv&*c06;yR%|?=mb&e)nBB%ymj|8 z(~W_ySQ@KzeWg04*0<~p=6sX6-<`?apT4!%^_SNCyMwiw_3wE;{Y&eY>OI^3&uY)V zK@WX#FBGkRpCXF3{t{jE|5HQX7W}Yhi?Rih@Oan9p$6af(7r8Qyv4=NU2PaA2sOFb z>iqm4w7If1R#tkQZ=dK1KGf0GcCzE3(lep2^R}LlHvXfIKIee*eD3F{KiI+%mh%!T zbcMdc7XPJnZ|gn%D?VlJm-qEMf5)7M@#X4%?6zR(s~xrJt@xtIsH<sx&5{TY?s4c=N`1C~)YXEgXK)_a?8Xv)BfDy)ahsK6$GjHbqlj7lu@s`92|6)}f! zybHHxV4b#iIFD`!KffbqFrt}(LTGqVT^D5TOt(a4O zS@~s`UA``(*|Tn4OIl`nR#tkZ8l$PXrPiBKS%bnfVROV6GHLWTHTxSfnti@nESs#U zZ_22zsj6b${Qkx}QXRCD}ian$I!>0gPDrE^$!_k}wDTM%1;RdW7jZ$_=xv+kSCVO_0vW4UkR z7c%*GH{D3rY{FtqbW$wR%)r`z3>atJ=&z|*&mI216vAKs4~y|{X;Oc4O)coH$yd8U zCCq=8w8O;wPxks|@5V3U`QK8(W~{{zv4}EmRU7l4E#$u#A3LMg5A(l&ndvoQKU;npiHgE|KXx$R=f_04gn=Ee-{tpZd3q9psKD8zu>gx-yol$s{X z;KUi0rfQ$Rw$f7W<@0ORHCSD)&azoj2IFT~u-(Uk`(mqQT}Cu`wA_Ci$qUF za~U?vRy9}iemh78>4s6A|EYQ2@;EXiL$y=uFJO%0BRof4NY!*%Ow zGAhcD?Ip|;8zdWjA>I1Y^st+n*UcUI9QY=)9MNKVj+YRlm!kbf>K4+_LtlenvtuDW zyx3w0I#u05!Ybh+VRfa2pJAX%F*<{cZ@LM`fi{B7H*ncABH+ef6z8HS@oH#K?bi%G z&h2S-Tbdx6xU?I|;O`acBDwU<@$z+bszyZ8>ixAUM}yeLb|#e4f_=Cfuyv}^Qt4^- zSUk;^2Hc~-@j4%(JX>`f2?7nXnSU@_JRIv#NopYcN0JQ1MXYa@O^);klmKiC$G$d& zsce+k{dePYBxj&Aquw9VlrITk51)gZF>IFcX8FbmeWbdmYDP_6L&mz==2_6r!`S{t z`|cMqN5->I0O-PvO`*@YOM-dc)a8Dtrx@$Hgc$b@S5y^{gO{pbH)G66MzmzcO}TFTbd`aEA8g!#tnTaK-|my(r2&(Emyw3K_xz)W$U&ZQ&jOQM~P z@J-IR!eh~wgj0q)aF|iUtieeOWli22IgaD-vESGnQa(b;(O`0TXuyME1y7@;oa-bQ z!CGM93RDwRj3#I%7;~|tgucQCjr^l5^tCdB#Nb$hZ#2E>ybu^n;+d*t!*?JQo>2bW zG4$0Bjb|J$pM~#U_QD(Wgo@Oxemx>KiWvgG3_j=_{C_k7e@<)|FWo;1~(Pn+S-g-&!*6z>?I+? z(03BJTt)Ra|8+gWZAKG+t+%eG@e-wT@{lPi1;&}Ml3)Qsj^ntc97lp&PuFwagIOr2q=^kHa^k4@tqyNYT{CC>fAkr?Wr z!l=L)Ke#j;qns`oY^T!F6uyu!)LXf%fbNjuYqEIxnS_=>wC5n5&;M2P5;ZRWsA*DHM~t9* zkfsm+6Z)+|;d&GZCY=_t4r(naS(YoVPz!9Xso#J@g(@xn=5=XvEzqmfi)}b&qzZ(=T&m08?6UwVe$a6RP80(vW0nfTROlc63LIf(xe15NSa3p{ zx6y(KO=K17Qi(jD!Gl|139bmj&7#dM7K{ou;uGj5xP2dCZiM++3?bMSiv16vU)aP# zYxNg4t&grYZ0?-CxU+3Xg|>6^^vtYT*|RU3bNSqPp7IKuwS}_s9C+!}VKM7^iZORgXV&egA1e9#ao$A$b{Ik|cH zi_}A4=oH? zhn@_XpA5tQJ8WX};_I*F{^s){e(h%X=M*3QVBy?~-(K~Tn1Y4h-gEQ9pTxYdu;%j9 zS=C9_?C-^l&8|+mHTyh%JOaljxAR{Z=5CJvh$lRg)j;sX2)G<@(kK|)5=X*c3x7uh zydE(3$802qZ!AqXFx49paOfmi5O0k>e^s?*HiF>C)Ow8%0sQUcZk!G@=Uv!?O344< znSf^@?<5hw@0>sX-7u&I3zn+1k<>+Ua;0}&E)+$~J)yr>wxEc7 z2}%ppc|K#|tz7=7N3J^k?!v^hywcB-ezkD_pOiO@O&<@#e_r^3H^chf)J<1tuN#}4 ze4BE`<1c-(sZ-l93=dpU3w*jzmJfhj8Rmu>?@bL@*%HD9PSoPx4}8!UmXT#sO@xHw z{dzc_ioiJT^(HJTsi$Y`|#|>0LGo zz8Y|3eO3Y<7ZJW>6kG~85(#x1->HN*9Vx> z{MVHUccE{45WWWwPuKq@?&*fP4A0aEcrol8&wqh`JIuLwcs|Noq4>Ov98Y05Zxqa# z1otohVMu;tpkMQT8-|^LX90c={=EP4y>z@hA0mCuAn(M(^RI*azKRbVz-}E5dl&4y zO~NpjOOge%LvV!)d1s<17qsMW0TI@c%2|=@BqC5~+PM9R50# zJvqYv-BJDz0M3B_c{~>k*aQJ7NReRJUMX9G3EwE_S*I;@L#} zF7mq+Kp0=I0UuTrBn+Pc%=oD2Ga`soG9 zG(5Rh1(Bs{Xcr{atjjJ7r;&g*<9#Fy*NrMuBjD5s{}#ZU4~4_O0#s*5!0!N#ti$gC zM~44T)Pa}zJfSM8asP^}(dzUD6*8VbZ;FbJ`5KK78yA0m%-C_`zba_L`SXbrzRDBs z=82OgPnmlDyd}wc-e#ZncS3$MUSa$tLXdJE5{9jSBWZ3Y+9$G)>;@d^e*!S)KjHY} z(LOkDVFaEu3cdyH5gC6I;&Xm;3Os@Hn^l05BH&EGoTr8Tt48_XI1Gn*%rd~dykYpa zuw!50h;B82_P0mCQ&Ha}z{5W$*OfSr3jLT9rqeVG5i$ta>C}wC1Tb63`F`kk#L4}+ zoDThBU4$HQY5_Qgb-@8$NSBL*7me~SQ6q=+xKKJ5?BRGDfY-=+OhBP{zYhCznA1fh z?2LemN8zCoaC(G4hZl^3mqftT@aJ?HPM^!i{88}AQE*uVd=tWRI_3CNjf-Ai?H11O z_rN2UHNQr`0g}o6Xm_r&hT#VRUp5Nn8HN2Hhrcrdeg-ht7sCF}1Lm?a66W;}!!N*} z(@i9tGYT#OycFf*^}Zb8Z7{=f6&o8>UK)lM0p{fo!>NF|4j+d3Hz=2VVR$OwqzKps zn9Jp`|6IV<2>32r#GPaQrui{mX~-gf=0Rei-Jvba{SZcnx6wO%aAm z(LZ^5VR+>zI2Z63_@5f4`#rGp_~G__ALZx%VVLXuk?@D3;EzVZpQC^9`iA4LhmhfP z9fsdTd3pI9KaM9(m|V`O`47XqEn@M6{W;9T*TLTf^S|+MdI`ft$e;Vy4u7LKQ9qF2 zMKJF_VgDE5&&v~rUm69sehJL^WH|gb_;bD%hPRJ`cZ`B}j)M0Cj?ACKk?G$KnA2A{ z{Zpgj-#H3CJqqT!1TWv+!}vN3JBA@fV6H22I2L+rCCoht&*?1;zYD(1^@1?02QpIt zhs*OT*tzZ)hTn&MW(53G*rV`-``>f0b9xHHFMkQl_1v)kIoNrh2#;BmV4?alPlIK> zx5eUb!V=1eABwL2{#_=zlKQ(;X1Ls;T-ic_g#Lz$p&DU4KLRKVPZ+)jb}pa8@V%qp z`$oa{1Lo}-4u1l6-cDiowo&lOQSj}});8B*{E-h)V&tn4 zd56o(`4+EF%-iv#8Rlzfw98?J`%w^ZBwzdvU~`23@lpOqM!^S0!JH39#(#GdJZ2Oh zjvj_#s6TE>!*)a^ttdC|%=~+m^8^0l{`_ej(h|8c(i;ITa7bpYU!x@xi|t}$IEE{feGWAxJ0DV;$G=(LSxLI@2|fJ zcfF*{a9c3?h%XIyeq*CMG=v(Cs*cOO^OA{t{N&?byP#`+7Ec9C!X+cYp$1qjgo|+P~ZGL+BiD`=3_)W&kmIF zMwoA-%$ycKL>-!VIOM_oJ?Qj}m|9Xt{xBEFS2ghAcs>9anq|U;C;mnd8E=Wu%*0K& zxj`LK!%_%uV{Ho`G{j&wHl$!^u9A--6H@Yi2zUKxbFMS1%f&+p4zE+c&@YmP`$Yjx zMa#v^C@&xXp~xeBH4jCr=L{Ni@qCaP>pdHI-WDIf`U<6M^wuJIj1FS79XGt-?ie5L zfQXol$eJ_Xf}`OvUVZVz%jht^N>ssLSB_6xzNUgtS$uKbeW(r?$gl7~VyMU%-g#Jw zLH^<4dN1zd!aWw1!`|rR>VW$6CcZtV2DkKF6#wE(Fah)h#Dfe_TfPMLOIEv%tZ^me zebX3{1l(~Mnz!CWOv8AzylNt`ui%Jw(0-A+1xZcuqA=VqG7g9NGdpUGYI6JYKMJMs zzc4Q@&T!-K<+hj};n#X$ej_)$8fAECE)Y`ht53rW(cBPv!+mlA7!&7znBxpzS-EA~k zpqd%eqxtv_{-|!EBuzHTbE!6Z9o0!XNi>K8jm?bmCMM|-T}~9njG3S{%868~rMj60 zlc?1c(O4=?~olYlbev?3|w&+`%_84%LcqEvAjqe%5A z8IO(dBDV`7jgiJlh!;+m`>5%nEU-t>SQH;;@kl5nYJjU{MbRY5aKXQZrbHo?1R5*q zU?L(8!cJrLLIeBW29JW&%GS6?^2{Z5{jX*JU z9_+c(Vq;h1bRnG6NX>GgXw;51jx&u_%O#j*3uAET8qK{%n<_6dOr<7CpD;y`jSk5? zXOgr~7(0t52u3k$HjSaW?3sdOa8P6P<>N(zT`{Fe^aQ2bG0-! zL9azhk$)D9xr!6?S{%wGt=5S2S}Mt@^xJWk%vk@# z<7iUiY*QYk4n&}$AxXAHO%}7MDTc>e zj+hc82pr*tWUWb-O{famNbTpfNhIDW%tw3(r{@pj2BrRZjxjKDPSufwJ|8|OofH|P>IbSBm3YtTU) z9N$8MAwfUYg;WjW4ahBdu10VIr84hnlV?sAC);#%(!@FN9TOE_UvPPLRCZK~brM=C z;V(0JzmC<+62-{|svAEuK7HK81pT5^*)UH}qb4L|$4NRHh{uV8R(T^)TRgRbETpT{ zeufenwDS_s=Z9%?goZeU$l6JWf^sH<8n}s4arWTILCK`C;*=at!w=69v=cPeg`9OP zm?O}|6NTt;+DGP9Ij4fC(1Qdz1(XHax?U%w3%rvE6SDpvL4t!M=;P=NQS{N}WSuYWY2t|?aheHSu45=$J2h^3 z+?4ptSZV4wc??PW52s~yPi9y=O$3YuDdJ$($zTrAILU*om!m|z z)*w*~xh+PvyvPzxv84#<0`=)&PC^;bOGGWkx+l;H;Gq{kIx_4+056lOwm`()D|2cccPZKgYQbX?Ck^eZv zOE0Mb3^WduDAPECo}+;vu&CcE{7X{RbvWLKf2z}0y+ULCi2Hy0eZBBdo4)Gzcf7tT z%KyzByo&eqvEZ%A!Yp*(%OS-yMnbO;ywMAUEFp$Y0!odtRsQV=6+l7>IGs)aL32qW zOhCMgq!VIr`2;z_<&!qfaFKihp`lUHypmvoAiPLIsp*QGi6Y&2!&gZtctc){gAh|? zl)xpPq#c$~f^HrrmHheWwtYC&YBA*a|)1D6ZQH!Se(&TBV1bPma zPzhW{F zl1ZZC%#ciiNWV&O(aC}lVWPnoOk~5>GKQ|!V?bTJTu;V6 ztb2Ft6{0~iSGP!K(li^Vh{e<>C2>h27=)_CNrnp&CdnA{io!Qku9HwV)a40Z5aWNs?W!$`d+Gik^80`3%bwqv`9) z6S_pF&xAaYlf;Sg#N@fsSYcLJo?w2*pw(-gmg$m7KS!J_Oq9)9$)sJO$`x(8&Y(#a zC+mdQr$S1J0%VI$pOmhfIo_N+X>5YN7^TZIP+@}Bpt+33>!$17bgVI+W{k)aqh^6@ z&|D-@(62x%yhqDgK`Y9}(NYBo;<)JRs61tf&T!itA=#R5G-#s6%tzlCJ87a2BPBd? zMP-R8Ql6OfhDBVS7$+{#l|&V24Xbr)t4n!y~pF1rvV8pU}~C1T-b&~B$yUyxbkc2%@NKni3Kr_fS8 zi0CuzYap;JP&XtXU?{H|gAw`+HH?d;ULBX4N${L9@mt3EMlM_v6H`S8)e5qH#(b#S z6yGb5+y)^EMV=4h)X}kEkb=Nf>ku!W0=8o0FqCl#zR>Rx5}6^aRxk=v=#@|iW`U_9 zJ&|)b)1_@nVb>gKSgg6ET|wA=OPG-B+iGn=hUneq4Pp~;Uh+vwJ?fWy##(nG#>s0 zldOX{0jlLJnQMPs)6d4;05^)apmc5vban^|QI_fTn(IYEF}P35B_48;v;xX;F-;KH zLG$NItVAb3!0Z;x@liBcH^G=LW&*(iK4ZoSIU25>nDEhMgQA>`5(t6}lurbs=Vqm> z7h6yc=w)9gQf|&bR0_Y0mbRDs(wwNH_1|pDA5xFk&^Mj zM4_}L(%G6t#w_V(IwxiZFl`XCP!68DfzA@`GSyuLp)y+!LZM~gSUAiTc^$;(;W)Ic zNT-2&Ez(4BWTSkmbR3-tv=sdW5rp4KQ0j$=+#NA*Kp3v=dbtU`5m!xM7#ShyR^%yB ziy=kBH4ME*5Yy4@5VlC|1zs(>a=fZR3Y+-X4O*YlB|IzYLLH34Y+#+|3&l5vm~cqC zyg;j$h?pV}x{&L+LKNzZSUf+8faefVA1i35NSFn=T$-h$(R4iLBo}F_N1_S6QX=x- zgim>vXfZt{+BzMWA)Vr8pAd}WX~_ryE-_|u!qY=+ z2eKlX8s2mUi-0Q>P|wk%1I9N@JOXsI+!5l*h#;MrAiCdi#DQc;Y-}v#Mu;#jA_*7t zt7Tt83|e|+1R+3Q43PqK#|wmjhEQ7~8sw0xc5;q>48=qc1#pdy%o~CVzd@USfi!fH zgz-m6+JA*GhRH$%QP2xS0dj!+HuBjUP6V>3(dqsk8C23ET9pW-3q$}C&=TJL?*l~$ zA~CcZo;47|27{!j#e0K6(9}mY8FbnzL$y{rrq1Ao+oG`q3Ihfc#gCx_k4JcBJOSH- zhSi9#F`#KR8pE^Mf=sR`9*>D`6nla`8Xc|MFhxgWEQaYZ#PFDbX!aSBk>7a4gIZ!B zX{LE`0-0!+CWB+P%P$&;Zi05Yz7S(kN1&_;=}!G@VTxENSL+gWGqgmL$#a`}$S_lC z(6&!uhARwP4cf7vsWl*mbdf+Z7E7igV{((2NmD&lI z6on5l{Eva?nSm_eeY7YIyo9SwXLyeTiz31*naE~23x{5l*pKNEx*R8C6FxSLAe!-X zkY*v+3LcmTgM=aU&*0xN2(AVM$H9s+bRCR65cSdxuKhyj@Ppzpbr2Pe^WgvPmmt1J zzW4)4#PDJmzvva38u&7IKG8156RjAn(GZPBkWHEx&ENa!ztmH!iP9LMf_|B&?#moi zw^;s$KFtdj{#fQ~m-(+UWRPEC-h%&P`GN@ij{_s1-{yPj@FfB>9VyRd1$&?v0QyppP85h>O&tGuGl~*lvhL*iAUQ)2MuxMHF z@)cLFEGb>Jdd=EvuKm_K*MGar?NOKES5?>Cu)emg-q&zrBTj(aaMQ+?O*e18;kb+2XLww^(jAI1DK%1_M7CuC9Uabiv$QXu8qj!5mmaXinEs?u8?E z^EEf|B^ZQk`6x8UISs_f%X?A$avZ#hSz*la-J~Xgc}g6K#kbJ#4ZXvAiTI2p-@e<> z=-p7`^J9l}z4t=8Z=+A~bcv|ZN5zgwFi%dhPftzHx@_(OBKx*E{cu?2$bjvLc^_`w>xFuwtF~gCbuDagx|A>1Nc&wWDaroT!C3|SWeOoHovM)(? zl{O`kl0Ey9B})t0m5}UFl%0wavP6^=Az307q9R+R$adcA9QWPR^ZdTg@BjV0|M&BG z5BD{5&6$}qXXcu@=FD8zHBwS$*j+QTzr6;WYwh4^Pp$@B0SI>WfPx(`6(j7GAa6=N z1d{84f|rnSi1K@H4;!;6ztivzE^u!E8dD!!3O)=tCig>-dL<3JtI%5iZ+6~S#_mPf zd#C%ziJXS~uskvOx>>+6If;$r9|Z>z!Q~JBC%wY%s55M5LU)A%A)C1 zpx~G+7KVR<`##`C{wtlXC{b-E{fAEG>b9b)@;?i)(%ZmpAhv%_8JFV8eT9M_C-*t? z&zuO>HgV7f*uFNUOd(Jv`2P=M%WcGcEI!9As=R7iJ1Hbc46ERUKgh?%6&M)25%GCgm-bk z^|&w@aZu#?o8s6BOq>cd3Vqx>oc`1v`y-MiGz$z3*q%N)6y$k8*vHlrGp>Mb_fjw{ ziX}xqjFPF1n~$rNhno{fB)B`c+d|jD#MCKTO18dWq}dab6j%{G@L4eu3AT`(@Z3ON z!2>qs!KfbWGF$$I{SL-u4Y0w>4^w-RbaMrX15E75(+^A-yMXY)Z!I_%TN?*&mp|?~ zyScez5kOE0e+Z^Z=j`AD0v4jSQg%`#Pd^tBUUCAN1UL81pkfRnNR*etasjm^R~zTw zdUX!2VAdELAwaJQGipT^Y{0hPF^f1hn6j1+9A$4y^2el~Y;Bz|;TbT|3qD*q5zF(W zw;S{}idX{v6tFN&at4hrkf9)}AX|BR`q}#0TH^{{w)oqEIRsB2dK;($tm>cyme_-@ z34oPspbKe&1I#E9WRIIQUd@!b&ptOVJbKRI$HeN@#Gz6wrh!xib^aAl<&)=GA&d|)jT;Nqe#p|!;#wCM1 zyfM}TH30@WaZ>Ykwe@v}R)b{G-HHMgz$BZEIxOg7q9I>&Ig5UWEUi=UI6pYuHJQXEAhKmAj zamddd1h+sL*1^`<#?yiXYNgQHm^Pj*_;Fz>FztcyLU=Jrj6RUfFdxIl&YSSL0NMPN zhbNT$zsdn*oXB~^{4GB6W> zX%|DsvGK-=PO=7z=&s)GYHEUNxFrEwP}>EgC@axV03GAHzFzhi;jCyWgBTu+U4J}h zl>A&wCUeD_3&==e(pO;l$`*{|lH9DVLAJ`)Mi%BT_!P_y8`D=xf{TxVT-A!c5D+Y7 z2*XvQNsmZKpap{G{8xS;=49h-ZELd~SPW>D+hI~@xD}bdKX)sM!Xo~&SSOx018&m= zhWV8z0h^SOmX(&1mX}tLR+LtfR+d(gk(QB>k(H5?k(a@Yi7Ck_%c#go%gV^g%F4;g z%PPn!$|}h!%c{sp%gM;e%E`&e%PGhy$|=by%c;mq%ge~i%FD^i%PYt$$}7n$%d03z zE66CwD#$6wD<~)^Dkv!^E2t<+gOxH_ML9)zMFmAgMI}XLMHMA!B^f1Iuwo{!q@bjz zq@<**q@paXETb%|ET=55te~u@tfZ{0tfB%%RDs9C=>m|E3Pe&-q0CQgfS$1Vhot!F zqu7$x|DP8W`yy7_-5ZmBBa@ZoL^-0j7Kl;KL*~U2t>o zgw6#7-ZH+@uL7U~v3{jKvGV;90)9+4fP!a$AM0o2i99ws*f?N@DM5@4XS)`57>jTP z`JC3D_gSW(>x+FjoIZLg)o#TLNS|0e{>h7j(tc!2i5WmV#dSkos+B;E(jKwsu&F z{w@9gT4svbfDuEdJNx{*}-F8tr#xl<~?E#w)C^QE)3V{s)b~@yM8sT9{r@i2pwj z5=`Zw6T__ke^Tdfb6u1bB3NfRDs4vEPO{o0jeRRo)-5W)kClajKOp1(VVy@1TdQ&K zG{-*)L^uDHru-jyFp=4*zN48TTr!xk zc=u5zQcbvtbPC?g>9)*5-V^d;hXxDVhX-#Xla_a+zYfBuu29uL&QO&=1y%L!R;}v6 zFG1DEC+n+`IjS0gd7&Bv(XQFeWnJSh9}K_F8d!gaD}&1j;2ak%GKabs?nk8UXH>Wl z?7P)jk_+dJ@XGi_aqB>9h=ja`?OqbLC<2?Rvar!aKvZB)k$~vKzB~c(g}lR2KRo=eWNa1eyuRI~;z+L%!kp`~?4XbQWL}ItSYp z1cU^Yb`BMy!s2fQzqptxKmxAQVTNu8zo?id9)hh_s-ZdnbrD^FI}knC#3LZ?*d8>3 z>9!J(0DxXd7{HB41T__`WJG~q1BnLlL3QLZH9JB=Zo+YCBm~oAXFy(4^FZ1e@IOXp z0TK|{VL^VO^SFNrayW+~G;D|g0@9L@$^xX53CIN+d4P350&K`58W4X(+G&mhl%d@K z`l%W08xRY=r|j@8#PK%@s+TLWswbEqipSH|H^Jmd(GjxdMX;~^0^OvYgz4l6)reGaVzScX=^Ldz`L zM5IOv&=%bP8o%2IFb(~T`^NyrqT_J)7di+2Ky)5p5W0xR-zbQUq+$Ry--`pRd@l=- z53vwrgRP}t@WXRN)?(825?kQiEnta_fLH-!?6wBD?yC*JwcU0S82!6|f4IvPAa%DJ zz`-tefJ0p#011dU4$nytkVjpC5>^oZiv-rP-|%pa9IV#_=BxuKl#A85Z02gNM%&^YL(GK@T|r`4hl(0GA3}XK<m94XwFQ?OTqkgO7WU!cynwp^o(6RcRE;RBbKyG6l)9$4_u<|rssR}32hcef z=?8E#PJSRBBn3tyFwU_Cm4mSsMYqDJkD|L_)JIW&JR|__b}k13Y(RoxTtv|by#Awb z7>7g5hJq!Mg8Nee-bAhf)XcdCFbK)S^U1^S!fr9Ncrgx3@!THZer(qTMQZ^nWfk>i`cnD_YYId_TK+SA7 zJp3fUrOh4y#Zhm7Vkl-k;?w3pfE&>ufZEx?xIY}AST?4Uz7dTCScP7IvTZ`6!2bY^ z1GoWA2gsd$4IpPWMy-dClfZ3I)Cc@1dK&mc5Q1qj_o27I{{}4q4l{t(L&zZ70DNWu zZ2^BB`U3dRBeWg-_2^50Pth)bFVSv*&(R)$b7(K{A{3nle*ubV-4&zX0MaAh0Y;%e z0A`?b08tdPp@O2)z>x+}1K>`@s3q_v6uk(12}SFHBcW&;aHp^6OW;c=Y6*O)9mRTg z9W&Ou>zG$&Gl9U1;y#@Rc;!Fiu%Ep z49$hJ06(%u1600101k$tSAl~)K{J7aL07;>33lLD320t`g_0lFh+0G>mN0Wu&DVLW;B0c38$KY+s#2%$&z2?AF^-GL)b zqaol&(RScSA5m%GNbRU4a1Ru<1=!Vf0^sW|d*DSV>WPP+!r^(~HYhp{+yMv!F)R7gCq_$f&ZZBdEh@l|GReF zS@qP#)Y-U;jiv`-lu8uXiO9hHB!NS41T1L83mit6z)cZ2g1e~#n#e<-UISt_H5Y^* zTyd!n;VyyN7Ico zk0htRKu&*=oIZ-2{t`KTG&y|?Iejcq6wl`}aWn455yf!#3Q-()}qQ_IN&-LccXNoYxSLCK!`(b``h0Tw0&@C7a{3~2`dj4mx5?@6kkeya5v%`uzzs1MmrS9qCf~=nC3e37xFqIcToZE}ajpsD3+|>+w~+65Ky087>Q}f+pza1&3*z_S zxEA#g&;fS;1MU*2hl!auy?g{5i}wi+*P_O_G4`DAz=bgv7UOOT^&2Ib7p;RCRvqdNGpqr$4rW*bs0GZh z2GA;)VU3_dqk_mg6vTQoxDf37{Dck{KCejJ@%K5FFTABREeTyk^*f zc4pWPy}>ZVQZO8`*9=#2JRh#%k{R9|b^gNioxv#KlJl1q?^;G9)tNC!%cGdmR>EcY zp1s`CW0?}wmzjdRA54iII-lA;{3!k8`1xzdwC0W8pPGdx^Om<^E?qK^6I3ctaijEh z>rm<77oq#dC#~)yb2sh_%-6$|<-`5mT-0U$^1@}ys5SiJ%Zg!iFypcyaPkh2YKSDk zGZLgNw9*!G+!+J%b6FOOt8y|F1r`Prk>vrcC4!}PAidxY0@L6Q5thuIg{*@5Th<8f zR$V)2`dz^CsI+{hwSc9d?X+X2t%i%>iT!SaC#LUM+ND=#+9Pe24t6gG9gsdtM`R$= z>GqJI%a>t6xAxDOZVTTnPZE&HlhXus4+QEtn1+O0rnP`_WgwiqB;qQP1#wEkLR?IG zK-?`SLxL)gBq^{!l0ud(6tAHfic17RB?6PBk_d~Sav^J`3Y2NEPuGY=zuf+kRoBT$Z`Agi=aTDs~~a4&5}6Xl1Z%V7$mm#2$D1g2T9XIf`Ze-mV!?|X9}Ji7ZgIiW(rL& z3<}RL$cpTT`r@OrK+HKZkW$_OgqcJl*vMoMpl+x#sxzrPUuHs#Nos^$iUwgfr-7*| z63bwLu&%KnFp~xd=rW0_hFy>v+KxJ-T9C%`r6mmkxlI#@pfuRmeFTw&ED>Qot3jwB zlo9R`iU@gxOhOzXmJmgVAcRoGQN>ajQkzjqArCTJWqx?fPRxuC$HvY;R+1FvQ59u_yRps>KG5RcipSw>`^ znB;+vSewB^zhL+O^`g`QIRZPY%HN{GGUnedm`MF~F>r1F3jv?51fn1#CxnGD;&1l* zF3>I}5%v38{o98vMIeaAA2{a47|kD-Fvl82C0S{D5pjfn6$z8{Q&CYtczJj5ZdkW= zBSO0q5n$Wd|C@>D!}4BIFu!mj_@i+i-il$mujL5V|a zANTG(G*UEag!x^CeL{WuN1yN^F$5F4Qxl03c zLhQoYAHJ>-_{R~TcB~)J6Al^S*AG)8*zzYqC^;@h7?8qzk=!q!FJS!vj{rATQZ18l z-N52c@3EIWy%J9Ayy7B`u~`NBMn)Y*Mxwe#MrX}ef&mtakz+t2%!lQB$moz!!Ag0= zyIbFsbamY3fF&`|zJlM%#YQeZC}1G%Ht*E&w6vl$c**h7sUrnI_=rZ&GK$%p#$IA2 zO+WyS%_`wJ`QuN76&4bX;`u-^3PO}OZ8uP3tHVOm$2Qa~O$oUDY6L|LY zN-A^~o`rWf2?<(ZiQgA30{Cxi#UqM492{C4;{0oP0U?QS^RTf9fsa{W6Lyo4K@xL* zUmN(efBXM8kIJ7nWz_$~BqTI7Bv!Ms(_n$Jf4id~Awm2zKvC*XOiqGvi-efq?;v?D zYECBU->8KAMvnD=VG4PLc!pHa$@T(W9bv(w@?R($UIk%7w~R$}JjiHKsJEc5(08 zyleXb!vhWn0uLk~DL(S-$Op?M%QaT=js}h{ju#yZJf3-sdN7?9KfU*~d+?Ru^5Fhp zswmN@{ZT&g*W;VwzoqffuKa=N15j52(Q-^hgMfK3g)cC4fq<95hzB#$(_uGgK!pLj z2YO}%;CNU^w64HUr*h*?p2_n$1>*I$ znGzU57>R~~4%62Hg*i}^pa*RZkUGa6NKeNAnya7>hChUg8uaKGXz5`S1}`W9)bkKV zDh5VcS_CgNEtn>wp`)Rprze-6ije^U^-oAhPq*?aV2l73lR!O$5i(nOEqWTz7yw-( zMmk1_h!=wzbdabR5l9ZoCyeBmWdJQ)(9Z*F2Gj^6?aF&IV%pa5b`T9p%dk=fz^*ZU zPX-XOqNk^3B-bdE1HJ{oBn2H*03E1atyByY1~jx_`GWy$L_kGgy1Q5O$}yG*CD2hX5IY-X*Apl1UWPlS3GwbWlYIOwTcuXiOW9ftF0U^q>&}Mo_4s zrm$HMP#Obhzk#+Oly{|1(9(i#926fa41oy&Bak#Lvw=# z=;-LFsL34##4QjS8X$KdFK9|?tV*!-AZY=sK;-@dQYBzS8LYN|3KT|~v`{fv4$#O9 zu*6L6RkJGqB4AVlq>VK?kQj^#@IFA< z@YXB+6^Ne^-V+ED8yYYQ25Nw=%K#mS9tKY69c1ExQ3R?7$P}mvCukU@V1U4MV!>(; z&?Y^(b2EUC4ix(^!otZLguS5i11TWz9C!@KnXh#Dzs74%AP7vpmkngy&w&dcg*a~7 zts2*DI5VlPnn}00K%HaG)^`1gQj-MwCn8x#or|1EG--k7qD;#jL4#)1Jy&?0wtarke@m@)y_m>D{rA3aLw8$!Htc1& zb3^`?3xAJOft;J#$5TO%4#HXdPg2}pC)rDyr|YlsK#EV0_}tgKs_npW-n_U^=n z^);MSE?&vY38%6{4)3;@l`h*&h`7A{oN8xlw&ZbTg_@h!G{+QL&GaL++8%g^1r_a~ zJ9u|6!@o5l^86LX_?KU%v^|OIcCFP~_>wut{OifbFRR&eEUsSXoImmW=RO~wfsN}r z+m(ZMBvl|wr9wst$;G6|AnTH-Z-Uw@R{7*9dnTn$2!yK9x;WuI#ktNOF1Rsx`9b& z=U0{u&$Y+g>FS=pu{j(j_99XA@NvgDIvV9_&g~PMyaTJhjsKugVxVnwO1kvGf}v$gUne`NqI9{b#Sl z=Vz|8cdi%7Y>MnSCbX4-Pv+tC#?+_0%kG7AGX*=DtZQ7(`ksG~uC}+Ep`@#?rAmTv z-*h;6!lsn=jzQj#raYrxG6(fgJ3U)e@hon2Z^d}Q9zll5 z$0J|wgW68rI>z!*n!3sP1-?#^Tui~Mx}7wqE*n2I>@se2N^TL3X>R0jQXHSiyD(lJ z_OMn$MV;>p)s1`c`Q6`TSNF`Grr-Y|JNUxD1H+bL_1=~reb0oB#faQ8`D~A-#jt7I zd-*USrB~5e>2fBq{sAKcyRhT}8l$r#^!|lhSYW1bDs=OHIflMcHkBD_VDLAM@?BS2X+ah^m2yO zhs7^5`I&q!8@O-+jp5Dq$WwW^H_6rNL$ag>>S@**!`UP$sK&Gq9l#e6U_T$2!kk_$ zf8ygAkL$vY*Qr!81NS}t@(3mJ?F%o`*`Xc&jAV8H#9egLO`-fA?zO8&7xF5tKqBGm z?)%SjZp9RxOwTV>vuIHFaT7Yjo^p@3_3QRb|)?%}cSD%#1T7T;e+A?(vh6~F^9GB-KuA5X(UQwHVzNzwDp^<{$ed}@s z?=u?{-)Xu>x1DA8{YP2j6&CKqL10pWR zB&wPQTnv3RF7Il&y~Z`db9QvzWT$;%?2n@Xeb*u#4ZO2d?nn}j`}?KDL{KMc9ehR? z;^KS$$LpSedj-L&uX0W^j5Ku*%C@~Qx9GBAiil0s7g*T%A|P`>^;l>Col$DWbhgcGOME^RGb1ziA+zN@XUwz}RDZo1%o*8u z>CpVOJ1*<=2~SQxPG!IDUOZaSxSlaHO|vXjp{}zriciFD&T98F>JDo{!<^1y&*f7Z zSNYq_w5;C^_$eAM>{X0suOHU>!MVtNB>Azp|Dg7R_;2Y~?(&{K>bBkV=(zLq?`cU| zX>F4dDYUsV9-A0yq(f>9gM-C<(ME%seKPvv+eXGkZA27|Yv-~QUmm~BrNaHP2P8$u0j%@U*JNNeRr?$wEEq!C_(jlhUk2kv8##~c`uwV9_-ER*h1{iMy;X%hk|%A( z)8!vas00?@Yb!|H>vyTf?uq6PpB)+f8No)289meE7VCHYDv%hC)bY5V{y2MXVVcY(n!0<%Z1HSf^!{lap|kjFBM z;iK1d=)>NF#wQNAe?IE>;vzB5d6QJE-Ou;3dMA6G0?Q2F+j=l2w6Ittye3_>X<)o&OkaG=;UX;PNs1(ry;FamDWp9 z`a|=gMU78E>`X)21v(C$#WxRC9~5zSm42Pkk=)5`v=BG>UABfHM7p}HSM(O7%mdyO=gmxl0VbLb24%vjJ3$0^?F!fLdIUT+aDFoIyn!o z?a<2`sASA+Ibsp)71>jCJF4DYxbxET-_}y`LDABtJw(A5 zd)lra7q@i}X$kl0B-%M3q=p@*RMi_h-gh>Icn)YHGri-R8QXlG@-i)C$C?~OPO{t2 zwA33tNN@3LE1f){acOnX$=Z~zD?`Mh^U_8dJ74el+PDR2R(`XI_r@7V15?(FTNSEx zOLQGy)1LE%4o`D1^ycVG*F@+^=`302@VoHn$HYo)KgB(srhjcYT$W~E^pVuc7q8ZB z(s}!2X|sCh;MXY)(MJ)3(g}xV&&))BJTfW%@`3MeVGF5nmsrZfb7$sM9}Ep3BW<@gwm;-Q4l5?1h`(WpljYthihK zX}av^&Q5MGW47+gyeHm&5xiw1e{|P+j)Z3$s#>o*U6CJui1f0QJYP_qa;Oj2tI*1w z)YyN(Ol_XYiRRvBlaHJS#5itdm#*snSU<$JZZ@XSqjD_t)AWuj8J=&h49wg!W^=H$ z6P!3w5n<3#vF6)=gki(>M-KMVo<<(Qp8J!c7Pz)PU8AKb&^ETu#z45{&U`Y%uWNBH zM}o7h&Wbn}y-}&vFV~yZeeaQL)|%L`J2JRDS~jZkqSJnkALq}MUMsY*l~v!8?@D*W z$m7OU%dqa6hD=SN-r>50C9W_%@!Xr7`lHXB#pFcc&B`wW9qks|AKiOd&OWK0 z*pjy~g`W1;B^hGlNc?D96?)J;V3(fH*QHli*_OUqc3qdtnVPsbR<_&}WO&B4^7+%c z7^hLGY@6lN*7oa}9BO_Qdp6$mZ(UN8+%9+^$C4*)AH%VnRhbXzDlR#Uu+6V;uwwe& zwttuF&W&Fi-d&j+`aa(>)o}Aoq-pu7txm_@xFqupc$?~NPMot{%@`(kF!G_W3D?)8 zdsROJj$E{>%MqWHkTRJ#o8jm+#aphSyz@D{a&kEnJNO&g1lSz?^ha&aK)vZXZdJR z+r_z7_=AJ1&^!{CrXWj5DpdRk+8lTQ)s>J2)iGu0C!2xi!D->T5NY;p8qq`5-^v(#Tg0 z_4_Wd^P~FB7GHNavnz&FsvIy8^LXF7TrnZA9Iu@%8euzGx-Y4I`=jxH&lYYC6lFf{@+uySrraL%v&Irh3BhzSH)&-!-PQ zuWYBQ6|{eL@#v%XdG+>6WvTNd62?+=_eIyfY~5|3a;fd=!g-sz?!l8=!s?F?N4Pfx z`QJD@y~lK4)h5qVW=0z;FGq#$OLUuK@0z1`+&Xqgv}|hQP}N06Bc|C%n#hqicW)LJ z_l-$~jJ0?b>598O+pp(zyD2U`juUxyky*95>H{xbpMSZI60b&;Yb#?-L4SI9?2!>} zT7Gs%CaspTvHbc&^M_+3g*o+u^zyIU*dF>mIwyJWS7BnmQ1X=>HRm?Fi}?I{KWkil zMf{xa5yh#sji<&IE}E7ZZF{rt%VBD#44>5_^S8eWJ2A%zeVlk48j*11+JnA{aouRe zLi5q9hTcoFRHYHCOTVn4YJS6UKCff(KJ{S1+RTmD>uU~n-#AEr=B7?cm-((~Jvo<8 zyR)x^NPc`C5c)>ac$G$$yIXX{NX7M<_c;e2II$VL*wcJ>BQcl$R#JOzt{ztwLOQp_ z*Rx5a<#! z-oiT&r0;!N>J*$R>C&w6Gg&pz*E(UvjGQ2#j5SjFPu$ERj+IsU9yM4Ng3 zoY>{oBInP^aGBGNtv_(a#Gv>NN{v?Yh1- zJW$t4@fe!VUd!lIY4Id!U8mi%>)|i@*({oAM=Q!|NY5Tsg^wbKxRkf=5VjMUuvfiX zFe*&g%={s2)u}qgctP7cOde$!zgn;6#awaMdEl`9=q1)+hPnFsIM0fxgikcAccnS` znadtLP~G|6rzW<3r`vJyZ;d6QdHU<7yT(huuVYp$yR9rBd+;sEnOStGc<@q#bzkEK zbHfYq!t_TjvEEWPJ-0LMu+rxuzww=SiVwVQoK80lmedhile}sDn||BqIcHs&;W;O6 zw%WOAh6||4dYk5J(d(b|bxbNsUMy1IBBXXs&tu5va(F?=+^rtAD#sT7*Q`g!D&xlv zR<(qUmeybA+%cM*J*twuX)GX5#OmITo@8NlR-1_ElHuzex3*@iWeFIMj@-`uYjW~t zaFGa&w0)c5TJdPp@`ACbtR6|)ZCVX^=4CQ6wniI@U+ndxYv!DZQ{t%IZf?XI9oWu1 z{P5!Is-bRI)^f4*l8nc!>9=pUIv%~q)M4XI^RCJJppL0&knT6BOLPz8Lb(?>?YgF? zhq@=#);umd?KzR=WD%O!y;sj@kAQcUX}jp-u!@b__6#N!ytj?pdy+=(N8SnP-Pe27 zx(WkMw>J){r)<_(j;7Aj8%Z=z4e@;wQ!CeA<3V#U`Q4e>x@_YP&nXQZmzdBK+Y@i4 zCT}`rotKcOpXJAee0qE2(YX@CGn`ci%~(v<)L9taIr%Q#etpkqPAR*qz;s0c3w@!L z;K_|~pWUC+a3$V*{<6ua%7LZ0Oo(OaNz!QxHCk11vB&Jkh8+#gl%Gwli26WtG}ZsY zgJ`Y0x8kBLzWeYse$`kzVR!eHz!9ap%F{+Sm8344eV}eXG8tZQ~)^IhdzZ zzna!qzMXHc*}W+zy6eT*g=qFZe~$?x5T~H^F6KZ;qh%_ zfijD$kI$NG-MB=xH{UOKL*{nXRD~b29nYn;Gq_BKT^U)PBf;P9hc7J}Myzp7e|~Z2 zxq-{&FTJjvlQ(L!xpCa5FWuzS20G5hYv;wNm-Q7B4m_EBbvrz9mR9ITaLwD`tp`=T zbzZD~n5wPd=aJ|b_juEVxCA8CI;m2lyz?ZFe)QXZ^j=NJsEeU z{kpc5lq|Y+S80}_Y=KWjLwM)>gXM>eM+f&lei)zdu{1x@&;Fs*p5CJ3t+QwNV>y_9 z?j|Uuv$4HC#;DLQQkoF;{o13D5JN83(%o8IQiGLl#dP1YZAF_S4BQx7s-rq}rF6=} z)qgD)h%_^!U+(PcQQ^*Zh?#xZHBr;L{P7Ln-Uw4x9nbqo*`Q%oCC!o)s>T&DQJ4V)o;y#EKDA(L9Gn-T6c^tvka6W+GVb8>E~{#O?>`tmcyWVlb4YzPcL2GmLt9mo|*7i{8H$m)Bq@Y%_bP z)Ye|{aw-nHKk_`&^cHL$ZE7sU)X6lisp)@R`&7HJxIA$L@OIi4X)bQZ#!k1&o{Ite zhAp6)71o{-~^@?p_z@k z-3i*Pw3jyD0ZHrt@e=pMJ*PVl=uLm`Lo_(dPrY5WjqQcVckxrNBakM?1qY^xY(r#n zs_Y7DA>yy=Ps1`6Z67#Vn5Ep&75KV4SvNMzLv#A%mlM`ELk)I>1&H_M>^R`OFGpkB zs$7v?JM*&G*c4m(p*DlvZS5{?nzJ8DXVB|96X!W&&Ie@)M*6dUovVGCU@z43P4Fg* zqxjl`lCyVIs;It1xs5f)>YTcsGdFXU!Leb3JM+kLX_w)ScExX0xGOJ_vS;siOGX%n-(5-%G|J?c)NSjIib-pQZyZQ^W=nDm1u@THHWZJT~ATos#bfJ zFE>{rT z4{vNMWIVp~@kN;1@%tO8_DuL%GB=tYFAglFJt|{ze*d9vm1v)@-u)SZPfOHp!>Q(b znof4PT;X~)sx0tg?bd2)^R2D=yL?R+grC}KWb7=YIXzt0D!H3C{ZyK|s13^(t5p7z zTEF)jom#t~fRz+-CuK3t`{qVE-aBf^D<~hmybCqMQeM+;yzBaClDd#?)8gkT~ zs;@nlBiQhILjBr})mNYJ6yBQ>U?2OwZ?x^n$atXYq<(t>r@n{D%deSLL{ZD<`DQv* zN&V5cbzLurZS?rHZM8S|Sj`pLbv=xdKTJNY&yjH08)uwm?!Iy3wj)x5H`;s}2Fjd+ zeO483x#;GfaD->=rYeaT@VtayoIG1$yaGAvT z*u>BVX@2dnh|gN16E(6Wt4e0nJd3N=s*E?=k+7gdb?{9 z$6h{qF*MS-?isy%(VA<{*JOoL>Ta=x7QdxwbZQ%-))T6s%yIqNeCpf&rB8OE{0A}#3f+2* z6$I`>OM~a{+GaCq)n9x)yHRUh{uxstqB*^u!;!;z0$j$drqk+$MR9;aclqfpOxi#`m3lCQH=2e7fn(6F7m@D|l zoqNUDUws_8?8SYgjwL6KYxwE9G40qbZ|rX=B{zlptaD5-U}NeVTiG?}vEgJESeR8m^`}C5E!}3~gxR3Tdd+w_h8|^<(*E)X}N> zHMTPjX7%PLOzxheQcmge+ftis>EFAc?z3fzIt%T0F-qMVw_Y8T+6=SlR@7_m$o3$M!O)(p8zrO2wcU9kS_ePsP zcbinD3G5agzi`NeW#@y_?>3C;(~?>wa&I}_W>3vsXM86solX>;W$&fwiw``IDZV~T zh{g|1EeO|QFq`hsS%?)C*F9XTnUHU&?^Q(4vsK}nH;?3&xcOI~k6liRyc(fZ&M0-p z?CO~ij=sue1G$zJsre)t!%E;UJbo`L-hG_e;c)T%;~efcc?xoG~Zp^ z-r1mY(6jGY;VsKzLhV#~uFbq7R|LaWp0)mb^|zg#v@ccYt|_>{aP)feO^?*ZpSo(B z4qrQT>q3gPdQLcLTk7sG-=9N=iWCF3wZ-I%HrKt)TGIx6wzj`e^bn=3+m$#KI?bFa* z`$FuDCBuI@zvQfX*r=TQ#?qEhG$&g6G_=RTb&l@k!ODk(9!0sqw0j$=bdP2QdCK!z z>QU8=hgcMA@p$aL8A~wx)k8JCDckqhtE;V~mKn{`*-O;pGOdYnOWswuH{Ko7`blJ(s$`pfxyG<4^U9x491{^7AbQb+36?Dty5W#i5_d1J!!y`S6kJ1dS)7q>UQ z>!udEpE781dDZ4b^l(9PHO=k(y zK{7pv!IQ5V3y}!F~ReRY(>J3|^iAnwUGluxP*+Oh?>qv>5^L&?oGV4;u zNMy(I_}H;qX6(kRqghIJm`j9j&)eX&#yj3A<*UKlwLY_=`#86}-12PO2Q=~E1-F9K zUU#ROpwkP?{k7XZ6)_tT*!MO%Tbs_azM5hde7&!LaA;t5$2Q+%qaVC;SBIZuIxjyy zUu2tj@53>}m%Vu`dowk2Rn`QY$>5XE(`A2Ukip2wvGbk4-r>unNb#{?SsJ}UrV0Hk z7G`DkPG!Sc>Y=>Gd-M3`9?X2uq8sLKjXsfHXu-Kb@w;#9Xz=Zhz_k`yPG`h>9!c|R z4U3r4XA>Tc}-?rtg?f#x~ zIc4)y-aw|y^CI=Pt}VsvKWo2>y)t29T;h$6zkv3~f1fJ;K|i%;_u|{$v@#--+FU~P zFB@+5J2m=jI$61U_MEEvs`PMO=Q@{kE~85?&EFf2O+0ZCjI?YDkuaJYy6WT=S9*20 z^vAX(Ss%x;H$h<><(c*TLUK{n>fE$hal)UwhV|vL$JFl>vPlN#sPdH1#;|JSehc5* zym?MI_W4o%r*}Eo4@`}cwtM}QkgvHr?E9YQ&;}=w{JodgrD>E+MHgO-J~Ufj7TLaz z)X;vj&?E77$>#f>B1IvYpT9qjGG^P>C*XA>Rd1bi3y39@}2!0hMJVBTJ*?P6vvugz! z`m!|2iZeS~ht3=+J>A&V-oKr;QM;t?{Q7>k%yn~2wDHkl zG8KQa;_0i zvHw>{>CXwtK#QNhN)Fg`R2eGg40<}KWXyT`9>06e+DQHb{iV-?!ZxROGQTlDUhPQe z-&JhYC!v1X;j#V&cHb6_OwCi3o2}Om-g^+4&eR;xL^GPdc}CT$mn2%G z^P=YZysq^jxv$SF**44eBxu~);m3O>zpndXXa13ZFteR4Errn&yWFEDcdeEt=6RW- zwZ`ANYMF>{)JB-y36Q5?pu=ePXyI)3o7-Z2NaFsVt-80p)pT zwpY5{Revnax%I^t1@n=P^{t|zZMpu(ck2Y+JAbsz`emTsiG~Af6^|Qb5Upezs%Zy% zG~{!xH{5q@%AH^SF21AplEI^xaCz&{`2!D@r++5zFX?#wpc6TMCGC~mb>r09m#*~t zKQo?JsAyW1z-(;NtH^m^vBhLf^Q!k$2mKEwG=0%tB@n2@w$zpw{Bccg zW#z|1F&ivsUo8cn5h1-d7`>B2A9zlVRvdAwlyX(sLt^%X?D>&PmSe{F|r-L54N%}1psWpiU)pR zuhT>FkK-v_z+@$6XN&aP#GH+r?aC3JV0Z{Kz6tiYexEo>vIGNIU?k%uW+T#e&OWciflMLry-$cubj6v1(d z{06clf#Wk|d5ZN*@;E+1mTyp4+J@uNWO)OFB^?~6?EgD0?ZI)%ethWCAskO6?~i9J z9mDYu@_u#Yk`0dkB<~-0Eji;jWj}Xn$qUCR`>RaLXKVnl$8pO3oY!(1j>nMq%VL(ZaGbJ#mA_ns<89>qq{qvpI8NE$dB0qZMr>Cs{)ZqHLplMHDk9m#j<01%U zedHT*43AG)uV5kA;P@DM{a_Qp8OQa>-}71oFB}gge_tOXoWXI*_pT2i1ji}gpK%0O zQiO~0Jy=AD$MJjQ@3W_bG#saVFAWm1aGdh}vPdYx@nhug2_C9a9H-3hWvHrgoHF0u zL-iQPDf8bGR4q9Eo;)8tPt}Rzl=1$8mP@eC7+)431Og z7j)E%I8NdBBv2H<0ydNRuPXH_9H;O@BWgI754%t1Pwv!Uq5&=nzqm*(g5#3p@jDyN zbHeUZ#?v}#c^ucQh)PT6mFw)I-iG7(>pzsny;*zh2el54_xilAbgfPN!bY7fQS!lL^8c%RzziYe1IHczJtIm!u-K00L&1yx z5BY++)=H^BXX|%EKpIMVY_kR{7X`;C@z1tk1N_gn&?4hnQ=CWyq+=ns1qEmQ2acu3 z@~7Nq{|C0vdb_NNY zKk~@!TbMA!IX_htdQ{Uza*_tp5*=%8CX`(#l5+cIeyNXA?_YxuwkJq2ro5+KQs!pc zGVCQh{-f;`LqE;qzTy|vYXjtRs5cTv_d&lQoRLaC8vg2`$MxRV;aj*l8x7t$xx4DO zvAs^{ay@x>WATZ`TOx|w{HCw8wy_>Ut?N9ET6m{^*?tqPHky6fAJ{+PI@3DUZ$4`X z3PaVb2#NfY23O-BIE98r;JF*&9VqzMf8eeEz|TVEKz00%?+!Rtr&F~xzt0wD?hGTSUZGOrPtfu-}L&w8TZ1=EqwZqSC2Wzb!UYKE1un7zY$y;M*!T%Qrj2m0- z0sG&OFJ)ZH}8RhWLM7)9NdJ5sel1 z$cn2Gv*JcHthkPIxEmNErHR1R&S{OiAw5aBYy08_=90`asIljQ8bq}xGtrOR^m#%F(PzUn;|Ky_B$Igb_6ySHz*4@_9>-Pu4ik)qekLAiI zf(00{wza^l=v$nyboR8h&~^iRpuYcTYwX+$A4?}&4+F57@8#yA?M608zQ^H&EoS{( z=$JI+x!9~i4SxGQ0l-C}m&aPGaGU@T`^A^A;yC3#_6(Q*hrMqBi>o;MpIsK%BqTyY z5|R*I6Ov#g$=>e^#E?iVCYTU|iiIRVh}pn~OM;3P6%`egC|a~=QBhH`qM~BUR{X@4 zTCAwFMMcGmii(Pg79-XF@12>mKrXhQfBo9}$iwWJcjlZqb9v{z&3k6B9sIVPIcvo( z?~~6(z;4ppzZ#y&_Ts5`5Wq&50{<29B?wx%M|td1I##}G5mV7k_*337dd&>Bqrh9T zCx30xj%~i2)kQmY?K*Ut(3bVsqZ`a-*B;fV{$(RCJpJ6I*^Ex*u#8c?@`b2a|tLL8xrRf^3y9s*RH`f z&=4&++9>aO81Ets;~Sxa7V6Mac?5wtXa~pFV6Rs+8r!O4zh>_?pO3bWrqd*L

    3B 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 aS-6Zfy9UV+joA=s0J5+)xhkQ>;@$tlYqm=O delta 97843 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%0Dgora|)yw#*=;_+L0%)61`6n?ZFew)_MDh=JBVL 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 QK?6MB?9LQ9&$(0oABE1oHvj+t diff --git a/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h b/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h index 0e1d1ed14..5bb9286b5 100644 --- a/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h +++ b/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h @@ -1,7 +1,7 @@ #ifndef POCKETJS_WM6_QUICKJS_ABI_H #define POCKETJS_WM6_QUICKJS_ABI_H -#define WM6_QJS_ABI_VERSION 1u +#define WM6_QJS_ABI_VERSION 2u #if defined(__cplusplus) extern "C" { @@ -13,6 +13,14 @@ typedef unsigned int (__cdecl *wm6_qjs_abi_version_fn)(void); typedef wm6_qjs_handle (__cdecl *wm6_qjs_create_fn)( unsigned int memory_limit, unsigned int stack_limit, + unsigned int viewport_width, + unsigned int viewport_height, + char *error, + unsigned int error_capacity); +typedef int (__cdecl *wm6_qjs_set_pak_fn)( + wm6_qjs_handle handle, + const unsigned char *data, + unsigned int data_length, char *error, unsigned int error_capacity); typedef int (__cdecl *wm6_qjs_eval_fn)( @@ -25,6 +33,13 @@ typedef int (__cdecl *wm6_qjs_drain_jobs_fn)( wm6_qjs_handle handle, char *output, unsigned int output_capacity); +typedef const unsigned char *(__cdecl *wm6_qjs_frame_fn)( + wm6_qjs_handle handle, + unsigned int buttons, + unsigned int *width, + unsigned int *height, + unsigned int *stride, + unsigned int *byte_length); typedef void (__cdecl *wm6_qjs_destroy_fn)(wm6_qjs_handle handle); #if defined(__cplusplus) diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 4fb4d1aef..3a97ed973 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -23,18 +23,20 @@ static int append_file_name(WCHAR *path, unsigned int capacity, return name[index] == L'\0'; } -static char *read_demo_bundle(unsigned int *length) +static unsigned char *read_neighbor_file( + const WCHAR *name, + unsigned int *length) { WCHAR path[MAX_PATH]; HANDLE file; DWORD size; DWORD read; - char *bytes; + unsigned char *bytes; *length = 0; if (!GetModuleFileName(NULL, path, MAX_PATH)) return NULL; - if (!append_file_name(path, MAX_PATH, L"PocketJS.WM6.Demo.js")) + if (!append_file_name(path, MAX_PATH, name)) return NULL; file = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); @@ -45,7 +47,7 @@ static char *read_demo_bundle(unsigned int *length) CloseHandle(file); return NULL; } - bytes = (char *)LocalAlloc(LMEM_FIXED, size + 1); + bytes = (unsigned char *)LocalAlloc(LMEM_FIXED, size + 1); if (!bytes) { CloseHandle(file); return NULL; @@ -77,65 +79,12 @@ static void ascii_to_wide(WCHAR *output, unsigned int capacity, output[index] = L'\0'; } -static int append_script_text(char **cursor, const char *end, - const char *text) -{ - while (*text) { - if (*cursor >= end) - return 0; - **cursor = *text; - (*cursor)++; - text++; - } - return 1; -} - -static int append_script_number(char **cursor, const char *end, - unsigned int value) -{ - char digits[16]; - int length; - - length = 0; - do { - digits[length++] = (char)('0' + value % 10u); - value /= 10u; - } while (value && length < 16); - while (length > 0) { - if (*cursor >= end) - return 0; - **cursor = digits[--length]; - (*cursor)++; - } - return 1; -} - -static int make_viewport_script(char *buffer, unsigned int capacity, - int width, int height) -{ - char *cursor; - const char *end; - - if (!buffer || capacity == 0 || width <= 0 || height <= 0) - return 0; - cursor = buffer; - end = buffer + capacity - 1; - if (!append_script_text( - &cursor, end, "globalThis.__wm6ViewportWidth=") || - !append_script_number(&cursor, end, (unsigned int)width) || - !append_script_text( - &cursor, end, ";globalThis.__wm6ViewportHeight=") || - !append_script_number(&cursor, end, (unsigned int)height) || - !append_script_text(&cursor, end, ";")) - return 0; - *cursor = '\0'; - return (int)(cursor - buffer); -} - -static char *g_draw_list; static int g_framebuffer_ready; -static int g_viewport_width; -static int g_viewport_height; +static HMODULE g_quickjs_module; +static wm6_qjs_handle g_quickjs_runtime; +static wm6_qjs_frame_fn g_quickjs_frame; +static wm6_qjs_destroy_fn g_quickjs_destroy; +static unsigned int g_buttons; static DEVMODE g_original_display_mode; static int g_display_rotated; @@ -191,126 +140,50 @@ static void restore_display_orientation(void) g_display_rotated = 0; } -static int wide_length(const WCHAR *text) -{ - int length; - - length = 0; - while (text[length] != L'\0') - length++; - return length; -} - -static int font_pixels_for_slot(int slot) -{ - static const int pixels[] = { 12, 14, 16, 18, 20, 24, 36 }; - int index; - - index = slot >= 7 ? slot - 7 : slot; - if (index < 0 || index >= 7) - return 16; - return pixels[index]; -} - -static int read_number(char **cursor) +static unsigned int button_for_key(WPARAM key) { - int value; - - if (**cursor == '|') - (*cursor)++; - value = 0; - while (**cursor >= '0' && **cursor <= '9') { - value = value * 10 + (**cursor - '0'); - (*cursor)++; + switch (key) { + case VK_UP: + return 0x0010u; + case VK_RIGHT: + return 0x0020u; + case VK_DOWN: + return 0x0040u; + case VK_LEFT: + return 0x0080u; + case VK_RETURN: + case VK_SPACE: + return 0x2000u; } - return value; + return 0; } -static void paint_demo(HWND window, HDC dc) +static int render_core_frame(void) { - RECT client; - RECT logical; - char *line; - char *next; - char *cursor; - char saved; - int offset_x; - int offset_y; - - GetClientRect(window, &client); - if (!g_framebuffer_ready) - FillRect(dc, &client, (HBRUSH)GetStockObject(BLACK_BRUSH)); - offset_x = (client.right - g_viewport_width) / 2; - offset_y = (client.bottom - g_viewport_height) / 2; - line = g_draw_list; - while (line && *line) { - int x, y, w, h, slot, r, g, b; - HBRUSH brush; - COLORREF color; - - next = line; - while (*next && *next != '\n') - next++; - saved = *next; - *next = '\0'; - cursor = line + 1; - if (line[0] == 'B' && !g_framebuffer_ready) { - r = read_number(&cursor); - g = read_number(&cursor); - b = read_number(&cursor); - logical.left = offset_x; - logical.top = offset_y; - logical.right = offset_x + g_viewport_width; - logical.bottom = offset_y + g_viewport_height; - brush = CreateSolidBrush(RGB(r, g, b)); - FillRect(dc, &logical, brush); - DeleteObject(brush); - } else if (line[0] == 'R' && !g_framebuffer_ready) { - x = read_number(&cursor); - y = read_number(&cursor); - w = read_number(&cursor); - h = read_number(&cursor); - r = read_number(&cursor); - g = read_number(&cursor); - b = read_number(&cursor); - logical.left = offset_x + x; - logical.top = offset_y + y; - logical.right = logical.left + w; - logical.bottom = logical.top + h; - brush = CreateSolidBrush(RGB(r, g, b)); - FillRect(dc, &logical, brush); - DeleteObject(brush); - } else if (line[0] == 'T' && !g_framebuffer_ready) { - LOGFONT font_spec; - HFONT font; - HFONT previous_font; - WCHAR text[256]; + const unsigned char *pixels; + unsigned int width; + unsigned int height; + unsigned int stride; + unsigned int byte_length; - x = read_number(&cursor); - y = read_number(&cursor); - slot = read_number(&cursor); - r = read_number(&cursor); - g = read_number(&cursor); - b = read_number(&cursor); - if (*cursor == '|') - cursor++; - ascii_to_wide(text, 256, cursor); - memset(&font_spec, 0, sizeof(font_spec)); - font_spec.lfHeight = -font_pixels_for_slot(slot); - font_spec.lfWeight = slot >= 7 ? FW_BOLD : FW_NORMAL; - font = CreateFontIndirect(&font_spec); - previous_font = (HFONT)SelectObject(dc, font); - color = RGB(r, g, b); - SetTextColor(dc, color); - SetBkMode(dc, TRANSPARENT); - ExtTextOut(dc, offset_x + x, offset_y + y, 0, NULL, - text, wide_length(text), NULL); - SelectObject(dc, previous_font); - DeleteObject(font); - } - *next = saved; - line = saved ? next + 1 : next; + if (!g_quickjs_runtime || !g_quickjs_frame || !g_framebuffer_ready) + return 0; + width = height = stride = byte_length = 0; + pixels = g_quickjs_frame( + g_quickjs_runtime, + g_buttons, + &width, + &height, + &stride, + &byte_length); + if (!pixels || + !wm6_framebuffer_copy_argb( + pixels, width, height, stride, byte_length) || + !wm6_framebuffer_present()) { + g_framebuffer_ready = 0; + return 0; } + return 1; } static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, @@ -323,18 +196,35 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, HDC dc = BeginPaint(window, &paint); if (g_framebuffer_ready && !wm6_framebuffer_present()) g_framebuffer_ready = 0; - paint_demo(window, dc); + if (!g_framebuffer_ready) + FillRect( + dc, &paint.rcPaint, + (HBRUSH)GetStockObject(BLACK_BRUSH)); EndPaint(window, &paint); } return 0; + case WM_TIMER: + render_core_frame(); + return 0; case WM_KEYDOWN: + g_buttons |= button_for_key(wparam); if (wparam == VK_ESCAPE) { DestroyWindow(window); return 0; } - break; + return 0; + case WM_KEYUP: + g_buttons &= ~button_for_key(wparam); + return 0; case WM_DESTROY: + KillTimer(window, 1); wm6_framebuffer_close(); + if (g_quickjs_destroy && g_quickjs_runtime) + g_quickjs_destroy(g_quickjs_runtime); + g_quickjs_runtime = NULL; + if (g_quickjs_module) + FreeLibrary(g_quickjs_module); + g_quickjs_module = NULL; PostQuitMessage(0); return 0; } @@ -343,22 +233,22 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int show) { - static const char snapshot[] = "__wm6DrawList()"; static const WCHAR class_name[] = L"PocketJSWM6Demo"; HMODULE module; wm6_qjs_abi_version_fn abi_version; wm6_qjs_create_fn create_runtime; + wm6_qjs_set_pak_fn set_pak; wm6_qjs_eval_fn eval; wm6_qjs_drain_jobs_fn drain_jobs; + wm6_qjs_frame_fn frame; wm6_qjs_destroy_fn destroy_runtime; wm6_qjs_handle runtime; char result[256]; - char viewport_script[128]; - char *bundle; - char *snapshot_text; + unsigned char *bundle; + unsigned char *pak; unsigned int bundle_length; + unsigned int pak_length; WCHAR create_error[256]; - WCHAR pak_path[MAX_PATH]; WCHAR *message; WNDCLASS window_class; HWND window; @@ -366,7 +256,6 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s int rotation_ready; int status; int viewport_height; - int viewport_length; int viewport_width; (void)instance; @@ -386,10 +275,14 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s eval = (wm6_qjs_eval_fn)GetProcAddress(module, L"wm6_qjs_eval"); drain_jobs = (wm6_qjs_drain_jobs_fn)GetProcAddress( module, L"wm6_qjs_drain_jobs"); + set_pak = (wm6_qjs_set_pak_fn)GetProcAddress( + module, L"wm6_qjs_set_pak"); + frame = (wm6_qjs_frame_fn)GetProcAddress( + module, L"wm6_qjs_frame"); destroy_runtime = (wm6_qjs_destroy_fn)GetProcAddress( module, L"wm6_qjs_destroy"); - if (!abi_version || !create_runtime || !eval || - !drain_jobs || !destroy_runtime) { + if (!abi_version || !create_runtime || !set_pak || !eval || + !drain_jobs || !frame || !destroy_runtime) { FreeLibrary(module); MessageBox(NULL, L"QuickJS ABI export missing", L"PocketJS QuickJS Host", MB_OK); @@ -402,62 +295,67 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s return 3; } - runtime = create_runtime(8u * 1024u * 1024u, 256u * 1024u, - result, sizeof(result)); + g_display_rotated = 0; + rotation_ready = rotate_display_90(); + viewport_width = GetSystemMetrics(SM_CXSCREEN); + viewport_height = GetSystemMetrics(SM_CYSCREEN); + + runtime = create_runtime( + 8u * 1024u * 1024u, + 256u * 1024u, + (unsigned int)viewport_width, + (unsigned int)viewport_height, + result, + sizeof(result)); if (!runtime) { + restore_display_orientation(); ascii_to_wide(create_error, 256, result); FreeLibrary(module); MessageBox(NULL, create_error, L"QuickJS create failed", MB_OK); return 4; } - bundle = read_demo_bundle(&bundle_length); - snapshot_text = (char *)LocalAlloc(LMEM_FIXED, 8192); - message = (WCHAR *)LocalAlloc(LMEM_FIXED, 8192 * sizeof(WCHAR)); - if (!bundle || !snapshot_text || !message) { - if (bundle) LocalFree(bundle); - if (snapshot_text) LocalFree(snapshot_text); + bundle = read_neighbor_file( + L"PocketJS.WM6.Demo.js", &bundle_length); + pak = read_neighbor_file( + L"PocketJS.WM6.Demo.pak", &pak_length); + message = (WCHAR *)LocalAlloc(LMEM_FIXED, 1024 * sizeof(WCHAR)); + if (!bundle || !pak || !message) { + if (bundle) + LocalFree(bundle); + if (pak) + LocalFree(pak); if (message) LocalFree(message); destroy_runtime(runtime); FreeLibrary(module); + restore_display_orientation(); MessageBox(NULL, L"Demo bundle allocation failed", L"PocketJS QuickJS Host", MB_OK); return 5; } - g_display_rotated = 0; - rotation_ready = rotate_display_90(); - viewport_width = GetSystemMetrics(SM_CXSCREEN); - viewport_height = GetSystemMetrics(SM_CYSCREEN); - g_viewport_width = viewport_width; - g_viewport_height = viewport_height; - viewport_length = make_viewport_script( - viewport_script, sizeof(viewport_script), - viewport_width, viewport_height); - status = viewport_length > 0 - ? eval(runtime, viewport_script, - (unsigned int)viewport_length, - result, sizeof(result)) - : -1; + status = set_pak( + runtime, pak, pak_length, result, sizeof(result)); if (status == 0) - status = eval(runtime, bundle, bundle_length, + status = eval(runtime, (const char *)bundle, bundle_length, result, sizeof(result)); if (status == 0) status = drain_jobs(runtime, result, sizeof(result)) < 0 ? -1 : 0; - if (status == 0) - status = eval(runtime, snapshot, sizeof(snapshot) - 1, - snapshot_text, 8192); LocalFree(bundle); - destroy_runtime(runtime); - FreeLibrary(module); + LocalFree(pak); if (status != 0) { restore_display_orientation(); - ascii_to_wide(message, 8192, result); + ascii_to_wide(message, 1024, result); MessageBox(NULL, message, L"PocketJS QuickJS DLL failure", MB_OK); - LocalFree(snapshot_text); + destroy_runtime(runtime); + FreeLibrary(module); LocalFree(message); return 5; } - g_draw_list = snapshot_text; + g_buttons = 0; + g_quickjs_module = module; + g_quickjs_runtime = runtime; + g_quickjs_frame = frame; + g_quickjs_destroy = destroy_runtime; if (rotation_ready) OutputDebugString(L"PocketJS WM6: landscape display active\r\n"); else @@ -469,7 +367,10 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s window_class.lpszClassName = class_name; if (!RegisterClass(&window_class)) { restore_display_orientation(); - LocalFree(snapshot_text); + destroy_runtime(runtime); + FreeLibrary(module); + g_quickjs_module = NULL; + g_quickjs_runtime = NULL; LocalFree(message); return 6; } @@ -483,31 +384,34 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s NULL, NULL, instance, NULL); if (!window) { restore_display_orientation(); - LocalFree(snapshot_text); + destroy_runtime(runtime); + FreeLibrary(module); + g_quickjs_module = NULL; + g_quickjs_runtime = NULL; LocalFree(message); return 7; } g_framebuffer_ready = 0; - if (GetModuleFileName(NULL, pak_path, MAX_PATH) && - append_file_name(pak_path, MAX_PATH, L"PocketJS.WM6.Demo.pak") && - wm6_framebuffer_open(window, viewport_width, viewport_height) && - wm6_framebuffer_load_pak(pak_path) && - wm6_framebuffer_render(g_draw_list)) { + if (wm6_framebuffer_open( + window, viewport_width, viewport_height)) { g_framebuffer_ready = 1; OutputDebugString( - L"PocketJS WM6: DirectDraw RGB565 + PAK assets active\r\n"); + L"PocketJS WM6: Rust core ARGB32 -> DirectDraw active\r\n"); } else { wm6_framebuffer_close(); - OutputDebugString(L"PocketJS WM6: DirectDraw unavailable; using GDI\r\n"); + OutputDebugString(L"PocketJS WM6: DirectDraw unavailable\r\n"); } ShowWindow(window, show); UpdateWindow(window); + if (g_framebuffer_ready) { + render_core_frame(); + SetTimer(window, 1, 16, NULL); + } while (GetMessage(&message_loop, NULL, 0, 0)) { TranslateMessage(&message_loop); DispatchMessage(&message_loop); } restore_display_orientation(); - LocalFree(snapshot_text); LocalFree(message); return 0; } diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index 6a3b0f98e..c137624d9 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -8,131 +8,17 @@ static LPDIRECTDRAWSURFACE g_primary; static unsigned short *g_pixels; static int g_width; static int g_height; -static unsigned char *g_pak; -static unsigned int g_pak_size; -#define WM6_MAX_FONT_SLOTS 16 -#define WM6_MAX_IMAGES 10 -#define WM6_PAK_MAGIC 0x4b504344u -#define WM6_PAK_ENTRY_SIZE 24u -#define WM6_FONT_MAGIC 0x41464344u -#define WM6_FONT_HEADER_SIZE 16u -#define WM6_FONT_CMAP_SIZE 8u - -typedef struct Wm6FontAtlas { - const unsigned char *cmap; - const unsigned char *bitmap; - unsigned short glyph_count; - unsigned char cell_width; - unsigned char cell_height; - unsigned char density; -} Wm6FontAtlas; - -typedef struct Wm6Image { - const unsigned char *pixels; - unsigned short width; - unsigned short height; - unsigned char format; -} Wm6Image; - -static Wm6FontAtlas g_fonts[WM6_MAX_FONT_SLOTS]; -static Wm6Image g_images[WM6_MAX_IMAGES]; - -static unsigned short read_u16(const unsigned char *bytes) -{ - return (unsigned short)(bytes[0] | ((unsigned short)bytes[1] << 8)); -} - -static unsigned int read_u32(const unsigned char *bytes) -{ - return (unsigned int)bytes[0] | - ((unsigned int)bytes[1] << 8) | - ((unsigned int)bytes[2] << 16) | - ((unsigned int)bytes[3] << 24); -} - -static int range_valid(unsigned int offset, unsigned int length, - unsigned int total) -{ - return offset <= total && length <= total - offset; -} - -static int read_number(const char **cursor) -{ - int value; - - if (**cursor == '|') - (*cursor)++; - value = 0; - while (**cursor >= '0' && **cursor <= '9') { - value = value * 10 + (**cursor - '0'); - (*cursor)++; - } - return value; -} - -static unsigned short rgb565(int red, int green, int blue) +static unsigned short rgb565( + unsigned int red, + unsigned int green, + unsigned int blue) { - return (unsigned short)(((red & 0xf8) << 8) | - ((green & 0xfc) << 3) | + return (unsigned short)(((red & 0xf8u) << 8) | + ((green & 0xfcu) << 3) | (blue >> 3)); } -static void blend_pixel(int x, int y, int red, int green, int blue, - unsigned int alpha) -{ - unsigned short destination; - unsigned int inverse; - int destination_red; - int destination_green; - int destination_blue; - - if (x < 0 || x >= g_width || y < 0 || y >= g_height || - alpha == 0) - return; - destination = g_pixels[y * g_width + x]; - destination_red = (int)(((destination >> 11) & 31u) * 255u / 31u); - destination_green = (int)(((destination >> 5) & 63u) * 255u / 63u); - destination_blue = (int)((destination & 31u) * 255u / 31u); - inverse = 255u - alpha; - red = (int)(((unsigned int)red * alpha + - (unsigned int)destination_red * inverse + 127u) / 255u); - green = (int)(((unsigned int)green * alpha + - (unsigned int)destination_green * inverse + 127u) / 255u); - blue = (int)(((unsigned int)blue * alpha + - (unsigned int)destination_blue * inverse + 127u) / 255u); - g_pixels[y * g_width + x] = rgb565(red, green, blue); -} - -static void fill_rect(int x, int y, int width, int height, - unsigned short color) -{ - int left; - int top; - int right; - int bottom; - int row; - int column; - - left = x < 0 ? 0 : x; - top = y < 0 ? 0 : y; - right = x + width; - bottom = y + height; - if (right > g_width) - right = g_width; - if (bottom > g_height) - bottom = g_height; - if (left >= right || top >= bottom) - return; - for (row = top; row < bottom; row++) { - unsigned short *destination; - - destination = &g_pixels[row * g_width + left]; - for (column = left; column < right; column++) - *destination++ = color; - } -} - static DWORD pack_component(unsigned int value, DWORD mask) { DWORD shifted; @@ -151,7 +37,9 @@ static DWORD pack_component(unsigned int value, DWORD mask) return (((DWORD)value * maximum + 127u) / 255u) << shift; } -static DWORD convert_pixel(unsigned short source, const DDPIXELFORMAT *format) +static DWORD convert_pixel( + unsigned short source, + const DDPIXELFORMAT *format) { unsigned int red; unsigned int green; @@ -165,8 +53,9 @@ static DWORD convert_pixel(unsigned short source, const DDPIXELFORMAT *format) pack_component(blue, format->dwBBitMask); } -static int resolve_primary_pixel_format(const DDSURFACEDESC *surface, - DDPIXELFORMAT *format) +static int resolve_primary_pixel_format( + const DDSURFACEDESC *surface, + DDPIXELFORMAT *format) { HRESULT status; @@ -196,367 +85,6 @@ static int resolve_primary_pixel_format(const DDSURFACEDESC *surface, format->dwBBitMask; } -static int parse_font_atlas(const unsigned char *blob, unsigned int length) -{ - Wm6FontAtlas *atlas; - unsigned int glyph_count; - unsigned int coverage_width; - unsigned int coverage_height; - unsigned int bitmap_offset; - unsigned int bitmap_length; - unsigned int slot; - unsigned int density; - - if (length < WM6_FONT_HEADER_SIZE || read_u32(blob) != WM6_FONT_MAGIC) - return 0; - glyph_count = read_u16(blob + 6); - slot = blob[12]; - density = blob[14]; - if (read_u16(blob + 4) != 3 || glyph_count == 0 || - slot >= WM6_MAX_FONT_SLOTS || blob[8] == 0 || blob[9] == 0 || - density == 0) - return 0; - if (glyph_count > (length - WM6_FONT_HEADER_SIZE) / WM6_FONT_CMAP_SIZE) - return 0; - bitmap_offset = WM6_FONT_HEADER_SIZE + - glyph_count * WM6_FONT_CMAP_SIZE; - coverage_width = (unsigned int)blob[8] * density; - coverage_height = (unsigned int)blob[9] * density; - if (coverage_width == 0 || coverage_height == 0 || - glyph_count > (length - bitmap_offset) / - coverage_width / coverage_height) - return 0; - bitmap_length = glyph_count * coverage_width * coverage_height; - if (!range_valid(bitmap_offset, bitmap_length, length)) - return 0; - atlas = &g_fonts[slot]; - atlas->cmap = blob + WM6_FONT_HEADER_SIZE; - atlas->bitmap = blob + bitmap_offset; - atlas->glyph_count = (unsigned short)glyph_count; - atlas->cell_width = blob[8]; - atlas->cell_height = blob[9]; - atlas->density = (unsigned char)density; - return 1; -} - -static int name_equals(const unsigned char *name, unsigned int length, - const char *expected) -{ - unsigned int index; - - index = 0; - while (expected[index]) { - if (index >= length || name[index] != (unsigned char)expected[index]) - return 0; - index++; - } - return index == length; -} - -static int image_handle(const unsigned char *name, unsigned int length) -{ - static const char *names[] = { - "", - "ui:img.logo.png", - "ui:img.spinner-00.svg", - "ui:img.spinner-01.svg", - "ui:img.spinner-02.svg", - "ui:img.spinner-03.svg", - "ui:img.spinner-04.svg", - "ui:img.spinner-05.svg", - "ui:img.spinner-06.svg", - "ui:img.spinner-07.svg" - }; - int handle; - - for (handle = 1; handle < WM6_MAX_IMAGES; handle++) { - if (name_equals(name, length, names[handle])) - return handle; - } - return 0; -} - -static int parse_image(int handle, const unsigned char *blob, - unsigned int length) -{ - Wm6Image *image; - unsigned int width; - unsigned int height; - unsigned int required; - - if (handle <= 0 || handle >= WM6_MAX_IMAGES || length < 8) - return 0; - width = read_u16(blob); - height = read_u16(blob + 2); - if (width == 0 || height == 0 || blob[4] != 3 || - width > (length - 8) / 4 / height) - return 0; - required = width * height * 4; - if (!range_valid(8, required, length)) - return 0; - image = &g_images[handle]; - image->pixels = blob + 8; - image->width = (unsigned short)width; - image->height = (unsigned short)height; - image->format = blob[4]; - return 1; -} - -int wm6_framebuffer_load_pak(const WCHAR *path) -{ - HANDLE file; - DWORD size; - DWORD received; - unsigned int entry_count; - unsigned int directory_offset; - unsigned int names_offset; - unsigned int index; - int font_count; - - if (g_pak) { - LocalFree(g_pak); - g_pak = NULL; - g_pak_size = 0; - } - memset(g_fonts, 0, sizeof(g_fonts)); - memset(g_images, 0, sizeof(g_images)); - file = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (file == INVALID_HANDLE_VALUE) - return 0; - size = GetFileSize(file, NULL); - if (size == INVALID_FILE_SIZE || size < 32) { - CloseHandle(file); - return 0; - } - g_pak = (unsigned char *)LocalAlloc(LMEM_FIXED, size); - if (!g_pak) { - CloseHandle(file); - return 0; - } - if (!ReadFile(file, g_pak, size, &received, NULL) || received != size) { - CloseHandle(file); - LocalFree(g_pak); - g_pak = NULL; - return 0; - } - CloseHandle(file); - g_pak_size = (unsigned int)size; - if (read_u32(g_pak) != WM6_PAK_MAGIC) { - wm6_framebuffer_close(); - return 0; - } - entry_count = read_u32(g_pak + 8); - directory_offset = read_u32(g_pak + 12); - names_offset = read_u32(g_pak + 16); - if (entry_count > g_pak_size / WM6_PAK_ENTRY_SIZE || - !range_valid(directory_offset, entry_count * WM6_PAK_ENTRY_SIZE, - g_pak_size)) { - wm6_framebuffer_close(); - return 0; - } - font_count = 0; - for (index = 0; index < entry_count; index++) { - const unsigned char *entry; - unsigned int blob_offset; - unsigned int blob_length; - unsigned int name_offset; - unsigned int name_length; - int handle; - - entry = g_pak + directory_offset + index * WM6_PAK_ENTRY_SIZE; - blob_offset = read_u32(entry + 4); - blob_length = read_u32(entry + 8); - name_offset = read_u32(entry + 12); - name_length = read_u16(entry + 16); - if (!range_valid(blob_offset, blob_length, g_pak_size)) - continue; - if (blob_length >= 4 && - read_u32(g_pak + blob_offset) == WM6_FONT_MAGIC && - parse_font_atlas(g_pak + blob_offset, blob_length)) - font_count++; - if (!range_valid(names_offset, name_offset, g_pak_size) || - !range_valid(names_offset + name_offset, name_length, g_pak_size)) - continue; - handle = image_handle( - g_pak + names_offset + name_offset, name_length); - if (handle) - parse_image(handle, g_pak + blob_offset, blob_length); - } - if (font_count == 0) { - wm6_framebuffer_close(); - return 0; - } - return 1; -} - -static unsigned int next_codepoint(const unsigned char **cursor) -{ - const unsigned char *text; - unsigned int codepoint; - - text = *cursor; - if (text[0] < 0x80) { - *cursor = text + 1; - return text[0]; - } - if ((text[0] & 0xe0) == 0xc0 && - (text[1] & 0xc0) == 0x80) { - codepoint = ((unsigned int)(text[0] & 0x1f) << 6) | - (unsigned int)(text[1] & 0x3f); - *cursor = text + 2; - return codepoint; - } - if ((text[0] & 0xf0) == 0xe0 && - (text[1] & 0xc0) == 0x80 && - (text[2] & 0xc0) == 0x80) { - codepoint = ((unsigned int)(text[0] & 0x0f) << 12) | - ((unsigned int)(text[1] & 0x3f) << 6) | - (unsigned int)(text[2] & 0x3f); - *cursor = text + 3; - return codepoint; - } - *cursor = text + 1; - return (unsigned int)'?'; -} - -static const unsigned char *find_glyph(const Wm6FontAtlas *atlas, - unsigned int codepoint) -{ - unsigned int left; - unsigned int right; - - left = 0; - right = atlas->glyph_count; - while (left < right) { - unsigned int middle; - const unsigned char *entry; - unsigned int candidate; - - middle = left + (right - left) / 2; - entry = atlas->cmap + middle * WM6_FONT_CMAP_SIZE; - candidate = read_u32(entry); - if (candidate < codepoint) - left = middle + 1; - else - right = middle; - } - if (left < atlas->glyph_count) { - const unsigned char *entry; - - entry = atlas->cmap + left * WM6_FONT_CMAP_SIZE; - if (read_u32(entry) == codepoint) - return entry; - } - return atlas->cmap; -} - -static unsigned int logical_coverage(const Wm6FontAtlas *atlas, - unsigned int glyph, int x, int y) -{ - unsigned int density; - unsigned int coverage_width; - unsigned int coverage_height; - unsigned int glyph_size; - unsigned int sample_x; - unsigned int sample_y; - unsigned int sum; - - density = atlas->density; - coverage_width = (unsigned int)atlas->cell_width * density; - coverage_height = (unsigned int)atlas->cell_height * density; - glyph_size = coverage_width * coverage_height; - sum = 0; - for (sample_y = 0; sample_y < density; sample_y++) { - unsigned int row; - - row = glyph * glyph_size + - ((unsigned int)y * density + sample_y) * coverage_width + - (unsigned int)x * density; - for (sample_x = 0; sample_x < density; sample_x++) - sum += atlas->bitmap[row + sample_x]; - } - return (sum + density * density / 2) / (density * density); -} - -static int draw_text(int x, int y, int slot, int red, int green, int blue, - const char *value) -{ - const Wm6FontAtlas *atlas; - const unsigned char *text; - int pen_x; - - if (slot < 0 || slot >= WM6_MAX_FONT_SLOTS) - return 0; - atlas = &g_fonts[slot]; - if (!atlas->bitmap) - return 0; - text = (const unsigned char *)value; - pen_x = x; - while (*text && *text != '\n') { - const unsigned char *glyph_entry; - unsigned int codepoint; - unsigned int glyph; - int glyph_x; - int row; - int column; - - codepoint = next_codepoint(&text); - glyph_entry = find_glyph(atlas, codepoint); - glyph = read_u16(glyph_entry + 4); - if (glyph >= atlas->glyph_count) - glyph = 0; - glyph_x = pen_x - glyph_entry[7]; - for (row = 0; row < atlas->cell_height; row++) { - for (column = 0; column < atlas->cell_width; column++) { - unsigned int coverage; - - coverage = logical_coverage( - atlas, glyph, column, row); - if (coverage) - blend_pixel(glyph_x + column, y + row, - red, green, blue, coverage); - } - } - pen_x += glyph_entry[6]; - } - return 1; -} - -static int draw_image(int x, int y, int width, int height, int handle) -{ - const Wm6Image *image; - int destination_y; - int destination_x; - - if (handle <= 0 || handle >= WM6_MAX_IMAGES || - width <= 0 || height <= 0) - return 0; - image = &g_images[handle]; - if (!image->pixels || image->format != 3) - return 0; - for (destination_y = 0; destination_y < height; destination_y++) { - unsigned int source_y; - - source_y = (unsigned int)destination_y * image->height / - (unsigned int)height; - for (destination_x = 0; destination_x < width; destination_x++) { - unsigned int source_x; - unsigned int offset; - - source_x = (unsigned int)destination_x * image->width / - (unsigned int)width; - offset = (source_y * image->width + source_x) * 4u; - blend_pixel(x + destination_x, y + destination_y, - image->pixels[offset], - image->pixels[offset + 1], - image->pixels[offset + 2], - image->pixels[offset + 3]); - } - } - return 1; -} - int wm6_framebuffer_open(HWND window, int logical_width, int logical_height) { DDSURFACEDESC description; @@ -575,9 +103,12 @@ int wm6_framebuffer_open(HWND window, int logical_width, int logical_height) return 0; g_width = logical_width; g_height = logical_height; + status = DirectDrawCreate(NULL, &g_direct_draw, NULL); - if (status != DD_OK || !g_direct_draw) + if (status != DD_OK || !g_direct_draw) { + wm6_framebuffer_close(); return 0; + } status = g_direct_draw->lpVtbl->SetCooperativeLevel( g_direct_draw, window, DDSCL_NORMAL); if (status != DD_OK) { @@ -613,79 +144,37 @@ void wm6_framebuffer_close(void) } g_width = 0; g_height = 0; - if (g_pak) { - LocalFree(g_pak); - g_pak = NULL; - g_pak_size = 0; - } - memset(g_fonts, 0, sizeof(g_fonts)); - memset(g_images, 0, sizeof(g_images)); } -int wm6_framebuffer_render(const char *draw_list) +int wm6_framebuffer_copy_argb( + const unsigned char *pixels, + unsigned int width, + unsigned int height, + unsigned int stride, + unsigned int byte_length) { - const char *line; - int succeeded; + unsigned int row; - if (!draw_list || !g_pixels || g_width <= 0 || g_height <= 0) + if (!pixels || !g_pixels || width != (unsigned int)g_width || + height != (unsigned int)g_height || stride < width * 4u || + height > byte_length / stride) return 0; - fill_rect(0, 0, g_width, g_height, rgb565(0, 0, 0)); - succeeded = 1; - line = draw_list; - while (*line) { - const char *cursor; - int x; - int y; - int width; - int height; - int slot; - int handle; - int red; - int green; - int blue; - - cursor = line + 1; - if (line[0] == 'B') { - red = read_number(&cursor); - green = read_number(&cursor); - blue = read_number(&cursor); - fill_rect(0, 0, g_width, g_height, - rgb565(red, green, blue)); - } else if (line[0] == 'R') { - x = read_number(&cursor); - y = read_number(&cursor); - width = read_number(&cursor); - height = read_number(&cursor); - red = read_number(&cursor); - green = read_number(&cursor); - blue = read_number(&cursor); - fill_rect(x, y, width, height, rgb565(red, green, blue)); - } else if (line[0] == 'T') { - x = read_number(&cursor); - y = read_number(&cursor); - slot = read_number(&cursor); - red = read_number(&cursor); - green = read_number(&cursor); - blue = read_number(&cursor); - if (*cursor == '|') - cursor++; - if (!draw_text(x, y, slot, red, green, blue, cursor)) - succeeded = 0; - } else if (line[0] == 'I') { - x = read_number(&cursor); - y = read_number(&cursor); - width = read_number(&cursor); - height = read_number(&cursor); - handle = read_number(&cursor); - if (!draw_image(x, y, width, height, handle)) - succeeded = 0; + for (row = 0; row < height; row++) { + const unsigned char *source; + unsigned short *destination; + unsigned int column; + + source = pixels + row * stride; + destination = g_pixels + row * width; + for (column = 0; column < width; column++) { + /* PocketJS exposes little-endian ARGB32: B, G, R, A bytes. */ + destination[column] = rgb565( + source[column * 4u + 2u], + source[column * 4u + 1u], + source[column * 4u]); } - while (*line && *line != '\n') - line++; - if (*line == '\n') - line++; } - return succeeded; + return 1; } int wm6_framebuffer_present(void) @@ -729,12 +218,10 @@ int wm6_framebuffer_present(void) } if (surface_width * g_height <= surface_height * g_width) { destination_width = surface_width; - destination_height = - g_height * surface_width / g_width; + destination_height = g_height * surface_width / g_width; } else { destination_height = surface_height; - destination_width = - g_width * surface_height / g_height; + destination_width = g_width * surface_height / g_height; } if (destination_width <= 0 || destination_height <= 0) { g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); @@ -768,41 +255,40 @@ int wm6_framebuffer_present(void) (offset_y + y) * surface.lPitch; source = &g_pixels[source_y * g_width]; if (pixel_format.dwRGBBitCount == 16) { - unsigned short *pixels; + unsigned short *output; - pixels = (unsigned short *)destination + offset_x; + output = (unsigned short *)destination + offset_x; for (x = 0; x < destination_width; x++) { int source_x; source_x = x * g_width / destination_width; - pixels[x] = (unsigned short)convert_pixel( + output[x] = (unsigned short)convert_pixel( source[source_x], &pixel_format); } } else if (pixel_format.dwRGBBitCount == 32) { - DWORD *pixels; + DWORD *output; - pixels = (DWORD *)destination + offset_x; + output = (DWORD *)destination + offset_x; for (x = 0; x < destination_width; x++) { int source_x; source_x = x * g_width / destination_width; - pixels[x] = convert_pixel( + output[x] = convert_pixel( source[source_x], &pixel_format); } } else { - unsigned char *pixels; + unsigned char *output; - pixels = destination + offset_x * 3; + output = destination + offset_x * 3; for (x = 0; x < destination_width; x++) { DWORD color; int source_x; source_x = x * g_width / destination_width; - color = convert_pixel( - source[source_x], &pixel_format); - pixels[x * 3] = (unsigned char)color; - pixels[x * 3 + 1] = (unsigned char)(color >> 8); - pixels[x * 3 + 2] = (unsigned char)(color >> 16); + color = convert_pixel(source[source_x], &pixel_format); + output[x * 3] = (unsigned char)color; + output[x * 3 + 1] = (unsigned char)(color >> 8); + output[x * 3 + 2] = (unsigned char)(color >> 16); } } } diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.h b/hosts/wm6/vs2005/src/wm6_framebuffer.h index 1913a2475..8f23732af 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.h +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.h @@ -4,9 +4,13 @@ #include int wm6_framebuffer_open(HWND window, int logical_width, int logical_height); -int wm6_framebuffer_load_pak(const WCHAR *path); void wm6_framebuffer_close(void); -int wm6_framebuffer_render(const char *draw_list); +int wm6_framebuffer_copy_argb( + const unsigned char *pixels, + unsigned int width, + unsigned int height, + unsigned int stride, + unsigned int byte_length); int wm6_framebuffer_present(void); #endif From 77d0a71dcf0ee4c27955876b6d748d328e8e9ca0 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 00:27:31 +0900 Subject: [PATCH 30/53] feat(wm6): forward stylus frames --- docs/WM6_IPAQ_212.md | 9 +- hosts/wm6/quickjs/README.md | 3 +- hosts/wm6/quickjs/src/runtime_dll.c | 44 +++++++++- hosts/wm6/vs2005/README.md | 2 +- .../vs2005/prebuilt/PocketJS.WM6.QuickJS.dll | Bin 1549684 -> 1550196 bytes hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h | 8 +- hosts/wm6/vs2005/src/quickjs_deploy.c | 77 +++++++++++++++++- 7 files changed, 131 insertions(+), 12 deletions(-) diff --git a/docs/WM6_IPAQ_212.md b/docs/WM6_IPAQ_212.md index 72b0fa844..b5945efef 100644 --- a/docs/WM6_IPAQ_212.md +++ b/docs/WM6_IPAQ_212.md @@ -100,7 +100,7 @@ the C sources rely on implicit `void *` conversions and C linkage rules. Gate 1 therefore uses a separately owned GNU WinCE build. The future VS2005 host will load a CeGCC-built DLL through a narrow C ABI; QuickJS values and allocator ownership must never cross that boundary. That DLL boundary is now -implemented as ABI v2; it also owns the linked Rust core so QuickJS values, +implemented as ABI v3; it also owns the linked Rust core so QuickJS values, Rust allocations, and framebuffer pointers stay on the CeGCC side. ### AOT milestone — Pocket Vapor Todo (implemented) @@ -140,14 +140,15 @@ runtime receipt before this gate is considered closed. ### Gate 3 — PocketJS HostOps (implemented; runtime receipt pending) -The ABI v2 DLL installs native lifecycle, node, style/property batch, text, +The ABI v3 DLL installs native lifecycle, node, style/property batch, text, texture/font, animation, focus/hit-test, debug, tick, and render operations. It copies the PAK into QuickJS before evaluating the unmodified Hero bundle, calls `globalThis.frame` at the WM6 timer cadence, ticks the core, and returns the incremental framebuffer. The former JavaScript tree and hand-authored draw-list adapter have been removed. D-pad keys and Enter/Space currently feed -the PocketJS directional/Circle button bits; stylus forwarding remains a -follow-up after the first core-rendered emulator receipt. +the PocketJS directional/Circle button bits. Stylus down/move/up snapshots use +the wide 10-bit PocketJS touch wire format so VGA coordinates are not +truncated. ### Gate 4 — packaging and production admission diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index c90f7d942..27f023fc1 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -65,7 +65,8 @@ deploys the DLL, bundle, and PAK, and mounts the Solid application. The native screen size after WM6 rotation becomes `ui.__viewport`. Each Rust ARGB32 frame is converted to the application-owned RGB565 buffer and presented through a locked DirectDraw primary surface. Arrow keys and Enter/Space are mapped to the -PocketJS directional and Circle button bits. +PocketJS directional and Circle button bits. Stylus contacts use the wide +PocketJS touch encoding so the full 640×480 VGA coordinates are preserved. The compatibility patch: diff --git a/hosts/wm6/quickjs/src/runtime_dll.c b/hosts/wm6/quickjs/src/runtime_dll.c index e95556d6c..042c99266 100644 --- a/hosts/wm6/quickjs/src/runtime_dll.c +++ b/hosts/wm6/quickjs/src/runtime_dll.c @@ -650,10 +650,14 @@ __declspec(dllexport) int __cdecl wm6_qjs_drain_jobs( __declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( wm6_qjs_handle opaque, unsigned int buttons, + const unsigned int *touches, + unsigned int touch_count, unsigned int *width, unsigned int *height, unsigned int *stride, - unsigned int *byte_length) + unsigned int *byte_length, + char *error, + unsigned int error_capacity) { Wm6QuickJS *host; JSContext *job_context; @@ -663,20 +667,42 @@ __declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( JSValue result; const uint8_t *pixels; size_t length; + unsigned int touch_index; host = (Wm6QuickJS *)opaque; - if (!host) + copy_text(error, error_capacity, ""); + if (!host || (!touches && touch_count != 0)) { + copy_text(error, error_capacity, "invalid frame arguments"); return NULL; + } global = JS_GetGlobalObject(host->context); frame = JS_GetPropertyStr(host->context, global, "frame"); if (!JS_IsFunction(host->context, frame)) { JS_FreeValue(host->context, frame); JS_FreeValue(host->context, global); + copy_text(error, error_capacity, "globalThis.frame is missing"); return NULL; } arguments[0] = JS_NewUint32(host->context, buttons); arguments[1] = JS_NewInt32(host->context, 0x8080); arguments[2] = JS_NewArray(host->context); + if (touch_count > 8) + touch_count = 8; + for (touch_index = 0; touch_index < touch_count; touch_index++) { + if (JS_SetPropertyUint32( + host->context, + arguments[2], + touch_index, + JS_NewUint32(host->context, touches[touch_index])) < 0) { + JS_FreeValue(host->context, arguments[0]); + JS_FreeValue(host->context, arguments[1]); + JS_FreeValue(host->context, arguments[2]); + JS_FreeValue(host->context, frame); + JS_FreeValue(host->context, global); + copy_exception(host->context, error, error_capacity); + return NULL; + } + } result = JS_Call( host->context, frame, global, 3, arguments); JS_FreeValue(host->context, arguments[0]); @@ -685,18 +711,30 @@ __declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( JS_FreeValue(host->context, frame); JS_FreeValue(host->context, global); if (JS_IsException(result)) { + copy_exception(host->context, error, error_capacity); JS_FreeValue(host->context, result); return NULL; } JS_FreeValue(host->context, result); while (JS_IsJobPending(host->runtime)) { job_context = NULL; - if (JS_ExecutePendingJob(host->runtime, &job_context) < 0) + if (JS_ExecutePendingJob(host->runtime, &job_context) < 0) { + copy_exception( + job_context ? job_context : host->context, + error, + error_capacity); return NULL; + } } ui_tick(); pixels = ui_render_incremental(); length = ui_framebuffer_len(); + if (!pixels || length == 0) { + copy_text( + error, error_capacity, + "PocketJS Rust core returned an empty framebuffer"); + return NULL; + } if (width) *width = ui_framebuffer_width(); if (height) diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index fed808c8e..fbee318b3 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -39,7 +39,7 @@ exercises the OS surface that a future full PocketJS host will need: - runtime screen and memory reporting. The hardware and Vapor executables do not embed QuickJS or the PocketJS -retained UI core. The QuickJS project does: its v2 DLL ABI owns the Rust core +retained UI core. The QuickJS project does: its v3 DLL ABI owns the Rust core and forwards native HostOps, PAK loading, fixed-step frames, and framebuffer capture; see [`docs/WM6_IPAQ_212.md`](../../../docs/WM6_IPAQ_212.md) for the staged port. diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.dll b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.dll index 618e677ac3181df930d4d7de33cc4340498e626b..9e101630c8443b9acf337399bdc29f545e494744 100644 GIT binary patch delta 128629 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

      vfG--l3j+Pz0qhyhk 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 z

      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 diff --git a/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h b/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h index 5bb9286b5..fa1289ef4 100644 --- a/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h +++ b/hosts/wm6/vs2005/runtime/wm6_quickjs_abi.h @@ -1,7 +1,7 @@ #ifndef POCKETJS_WM6_QUICKJS_ABI_H #define POCKETJS_WM6_QUICKJS_ABI_H -#define WM6_QJS_ABI_VERSION 2u +#define WM6_QJS_ABI_VERSION 3u #if defined(__cplusplus) extern "C" { @@ -36,10 +36,14 @@ typedef int (__cdecl *wm6_qjs_drain_jobs_fn)( typedef const unsigned char *(__cdecl *wm6_qjs_frame_fn)( wm6_qjs_handle handle, unsigned int buttons, + const unsigned int *touches, + unsigned int touch_count, unsigned int *width, unsigned int *height, unsigned int *stride, - unsigned int *byte_length); + unsigned int *byte_length, + char *error, + unsigned int error_capacity); typedef void (__cdecl *wm6_qjs_destroy_fn)(wm6_qjs_handle handle); #if defined(__cplusplus) diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 3a97ed973..48b9d71a5 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -85,6 +85,12 @@ static wm6_qjs_handle g_quickjs_runtime; static wm6_qjs_frame_fn g_quickjs_frame; static wm6_qjs_destroy_fn g_quickjs_destroy; static unsigned int g_buttons; +static int g_viewport_width; +static int g_viewport_height; +static int g_touch_active; +static int g_touch_x; +static int g_touch_y; +static int g_frame_error_shown; static DEVMODE g_original_display_mode; static int g_display_rotated; @@ -158,28 +164,69 @@ static unsigned int button_for_key(WPARAM key) return 0; } +static void update_touch_position(LPARAM position) +{ + int x; + int y; + + x = (short)LOWORD(position); + y = (short)HIWORD(position); + if (x < 0) + x = 0; + else if (x >= g_viewport_width) + x = g_viewport_width - 1; + if (y < 0) + y = 0; + else if (y >= g_viewport_height) + y = g_viewport_height - 1; + g_touch_x = x; + g_touch_y = y; +} + static int render_core_frame(void) { const unsigned char *pixels; + unsigned int touches[1]; + unsigned int touch_count; unsigned int width; unsigned int height; unsigned int stride; unsigned int byte_length; + char error[256]; if (!g_quickjs_runtime || !g_quickjs_frame || !g_framebuffer_ready) return 0; + touch_count = 0; + if (g_touch_active) { + touches[0] = 0x80000000u | + (((unsigned int)g_touch_y & 0x3ffu) << 10) | + ((unsigned int)g_touch_x & 0x3ffu); + touch_count = 1; + } width = height = stride = byte_length = 0; pixels = g_quickjs_frame( g_quickjs_runtime, g_buttons, + touches, + touch_count, &width, &height, &stride, - &byte_length); + &byte_length, + error, + sizeof(error)); if (!pixels || !wm6_framebuffer_copy_argb( pixels, width, height, stride, byte_length) || !wm6_framebuffer_present()) { + if (!g_frame_error_shown && error[0]) { + WCHAR message[256]; + + ascii_to_wide(message, 256, error); + g_frame_error_shown = 1; + MessageBox( + NULL, message, L"PocketJS frame failed", MB_OK); + } g_framebuffer_ready = 0; return 0; } @@ -206,6 +253,28 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, case WM_TIMER: render_core_frame(); return 0; + case WM_LBUTTONDOWN: + update_touch_position(lparam); + g_touch_active = 1; + SetCapture(window); + render_core_frame(); + return 0; + case WM_MOUSEMOVE: + if (g_touch_active) + update_touch_position(lparam); + return 0; + case WM_LBUTTONUP: + if (g_touch_active) { + update_touch_position(lparam); + render_core_frame(); + g_touch_active = 0; + ReleaseCapture(); + render_core_frame(); + } + return 0; + case WM_CAPTURECHANGED: + g_touch_active = 0; + return 0; case WM_KEYDOWN: g_buttons |= button_for_key(wparam); if (wparam == VK_ESCAPE) { @@ -299,6 +368,8 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s rotation_ready = rotate_display_90(); viewport_width = GetSystemMetrics(SM_CXSCREEN); viewport_height = GetSystemMetrics(SM_CYSCREEN); + g_viewport_width = viewport_width; + g_viewport_height = viewport_height; runtime = create_runtime( 8u * 1024u * 1024u, @@ -352,6 +423,10 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s return 5; } g_buttons = 0; + g_touch_active = 0; + g_touch_x = 0; + g_touch_y = 0; + g_frame_error_shown = 0; g_quickjs_module = module; g_quickjs_runtime = runtime; g_quickjs_frame = frame; From d82ae36169ed5444231c48f4f82bccc595e1858a Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 00:36:42 +0900 Subject: [PATCH 31/53] build(wm6): verify Rust core artifacts --- engine/wm6/README.md | 6 +++++- engine/wm6/build-core.sh | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/engine/wm6/README.md b/engine/wm6/README.md index 2d524f1f2..994db384b 100644 --- a/engine/wm6/README.md +++ b/engine/wm6/README.md @@ -16,7 +16,10 @@ performs a narrow, checked conversion to `pe-arm-wince` COFF: 3. a dual-target CeGCC binutils `objcopy` writes WinCE COFF; 4. `patch_arm_coff_relocs.py` maps the three emitted ARM relocations and rebuilds every relocation symbol index from the authoritative ELF tables; -5. WinCE ld performs a second relocatable link as a structural verification. +5. WinCE ld performs a second relocatable link as a structural verification; +6. the build rejects a core that is not ARMv4T, does not contain exactly the + four folded COFF sections, loses a required `ui_*` entry point, or imports + anything beyond the four allocator/abort functions supplied by the host. The WM6 build disables the Symbian GLES2 backend. It uses `ui_render_incremental` to obtain the real PocketJS ARGB32 framebuffer, then converts/presents that @@ -29,6 +32,7 @@ the corresponding build-tree executables: ```sh WM6_CE_OBJCOPY=/opt/cegcc/bin/arm-mingw32ce-objcopy \ +WM6_CE_OBJDUMP=/opt/cegcc/bin/arm-mingw32ce-objdump \ WM6_CE_LD=/opt/cegcc/bin/arm-mingw32ce-ld \ WM6_CE_NM=/opt/cegcc/bin/arm-mingw32ce-nm \ bash engine/wm6/build-core.sh diff --git a/engine/wm6/build-core.sh b/engine/wm6/build-core.sh index ed20889b3..e97d0febc 100755 --- a/engine/wm6/build-core.sh +++ b/engine/wm6/build-core.sh @@ -9,12 +9,16 @@ trap 'rm -rf "$work_dir"' EXIT arm_ld="${ARM_NONE_EABI_LD:-arm-none-eabi-ld}" arm_objcopy="${ARM_NONE_EABI_OBJCOPY:-arm-none-eabi-objcopy}" +arm_readelf="${ARM_NONE_EABI_READELF:-arm-none-eabi-readelf}" ce_objcopy="${WM6_CE_OBJCOPY:-arm-mingw32ce-objcopy}" +ce_objdump="${WM6_CE_OBJDUMP:-arm-mingw32ce-objdump}" ce_ld="${WM6_CE_LD:-arm-mingw32ce-ld}" ce_nm="${WM6_CE_NM:-arm-mingw32ce-nm}" cargo="${CARGO:-cargo}" -for tool in "$cargo" "$arm_ld" "$arm_objcopy" "$ce_objcopy" "$ce_ld" "$ce_nm"; do +for tool in \ + "$cargo" "$arm_ld" "$arm_objcopy" "$arm_readelf" \ + "$ce_objcopy" "$ce_objdump" "$ce_ld" "$ce_nm"; do if ! command -v "$tool" >/dev/null 2>&1; then echo "Required tool not found: ${tool}" >&2 exit 2 @@ -39,6 +43,12 @@ linked="${work_dir}/PocketJS.WM6.Core.obj" "$arm_ld" -m armelf -r -o "$aggregate" \ --whole-archive "$rust_archive" --no-whole-archive +if ! "$arm_readelf" -A "$aggregate" | + grep -Eq 'Tag_CPU_arch:[[:space:]]+v4T[[:space:]]*$'; then + echo "Rust core does not advertise the required ARMv4T baseline" >&2 + "$arm_readelf" -A "$aggregate" >&2 + exit 3 +fi "$arm_objcopy" --wildcard \ --keep-global-symbol='ui_*' \ "$aggregate" "$localized" @@ -59,6 +69,30 @@ for symbol in ui_init ui_create_node ui_load_styles ui_render_incremental; do exit 3 fi done + +section_names="$( + "$ce_objdump" -h "$linked" | + awk '/^[[:space:]]*[0-9]+[[:space:]]+\./ { print $2 }' | + paste -sd ' ' - +)" +if [[ "$section_names" != ".text .data .rdata .bss" ]]; then + echo "Unexpected converted core sections: ${section_names}" >&2 + "$ce_objdump" -h "$linked" >&2 + exit 3 +fi + +undefined_symbols="$( + "$ce_nm" -u "$linked" | + awk '{ print $2 }' | + sort | + paste -sd ' ' - +)" +if [[ "$undefined_symbols" != "abort free malloc realloc" ]]; then + echo "Unexpected converted core imports: ${undefined_symbols}" >&2 + "$ce_nm" -u "$linked" >&2 + exit 3 +fi + mkdir -p "$(dirname "$output")" cp "$linked" "$output" echo "Built ${output}" From 923ef78fe70bda6046a1dec8cd1c37adf39c530a Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 00:39:45 +0900 Subject: [PATCH 32/53] fix(wm6): distinguish the runtime executable --- hosts/wm6/quickjs/README.md | 4 ++-- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index 27f023fc1..b1c133655 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -60,8 +60,8 @@ core's incremental ARGB32 framebuffer. `build-demo.sh` packages the unmodified real `dist/hero-main.js` output; it no longer prepends a JavaScript tree or hand-authored draw-list adapter. -VS2005 builds the compatibility-named `PocketJS.WM6.QuickJS.Probe.exe`, -deploys the DLL, bundle, and PAK, and mounts the Solid application. The native +VS2005 builds `PocketJS.WM6.QuickJS.exe`, deploys the DLL, bundle, and PAK, +and mounts the Solid application. The native screen size after WM6 rotation becomes `ui.__viewport`. Each Rust ARGB32 frame is converted to the application-owned RGB565 buffer and presented through a locked DirectDraw primary surface. Arrow keys and Enter/Space are mapped to the diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index 527b9ced5..f7544cf8a 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -48,10 +48,10 @@ Name="VCLinkerTool" AdditionalOptions="/subsystem:windowsce,5.02" AdditionalDependencies="ddraw.lib coredll.lib" - OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.Probe.exe" + OutputFile="$(OutDir)\PocketJS.WM6.QuickJS.exe" LinkIncremental="1" GenerateDebugInformation="true" - ProgramDatabaseFile="$(OutDir)\PocketJS.WM6.QuickJS.Probe.pdb" + ProgramDatabaseFile="$(OutDir)\PocketJS.WM6.QuickJS.pdb" SubSystem="0" TargetMachine="0" /> @@ -70,7 +70,7 @@ AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.pak|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" /> From 90067f18ab6ca5444d8787d6ddb878019e0d4712 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 00:52:34 +0900 Subject: [PATCH 33/53] test(wm6): exercise the native Rust runtime --- hosts/wm6/quickjs/README.md | 13 ++ hosts/wm6/quickjs/test-runtime-native.sh | 75 ++++++++ hosts/wm6/quickjs/tests/runtime_smoke.c | 214 +++++++++++++++++++++++ hosts/wm6/quickjs/tests/windows.h | 19 ++ 4 files changed, 321 insertions(+) create mode 100755 hosts/wm6/quickjs/test-runtime-native.sh create mode 100644 hosts/wm6/quickjs/tests/runtime_smoke.c create mode 100644 hosts/wm6/quickjs/tests/windows.h diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index b1c133655..d937ae1ae 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -78,3 +78,16 @@ The compatibility patch: The UTC fallback is intentionally conservative and must be replaced with a WinCE `SYSTEMTIME`/timezone implementation before shipping a general runtime. + +## Native integration smoke test + +`test-runtime-native.sh` compiles the exact WM6 QuickJS bridge against the +same Rust core on the development host, evaluates the checked-in Hero bundle, +installs its PAK, forwards one wide touch frame, and verifies a non-empty +640×480 ARGB32 framebuffer. This does not replace ARMV4I emulator acceptance, +but it catches JS/HostOps/core integration regressions before deployment: + +```sh +WM6_QUICKJS_SOURCE=/path/to/pinned/quickjs-rs \ + hosts/wm6/quickjs/test-runtime-native.sh +``` diff --git a/hosts/wm6/quickjs/test-runtime-native.sh b/hosts/wm6/quickjs/test-runtime-native.sh new file mode 100755 index 000000000..6b43f75c1 --- /dev/null +++ b/hosts/wm6/quickjs/test-runtime-native.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +set -euo pipefail + +quickjs_repo="https://github.com/pocket-stack/quickjs-rs" +quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61" +quickjs_version="2026-06-04" + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +repo_root="$(cd "${script_dir}/../../.." && pwd)" +bundle="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Demo.js}" +pak="${2:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Demo.pak}" +work_dir="$(mktemp -d "${TMPDIR:-/tmp}/pocketjs-wm6-native-test.XXXXXX")" +trap 'rm -rf "$work_dir"' EXIT + +cargo="${CARGO:-cargo}" +cc="${CC:-cc}" +for tool in "$cargo" "$cc" git patch; do + if ! command -v "$tool" >/dev/null 2>&1; then + echo "Required tool not found: ${tool}" >&2 + exit 2 + fi +done +for asset in "$bundle" "$pak"; do + if [[ ! -f "$asset" ]]; then + echo "Required Hero asset not found: ${asset}" >&2 + exit 2 + fi +done + +if [[ -n "${WM6_QUICKJS_SOURCE:-}" ]]; then + if [[ "$(git -C "$WM6_QUICKJS_SOURCE" rev-parse HEAD)" != "$quickjs_rev" ]]; then + echo "WM6_QUICKJS_SOURCE is not at the pinned revision ${quickjs_rev}." >&2 + exit 2 + fi + cp -R "$WM6_QUICKJS_SOURCE" "${work_dir}/quickjs-rs" +else + git init -q "${work_dir}/quickjs-rs" + git -C "${work_dir}/quickjs-rs" remote add origin "$quickjs_repo" + git -C "${work_dir}/quickjs-rs" fetch -q --depth 1 origin "$quickjs_rev" + git -C "${work_dir}/quickjs-rs" checkout -q FETCH_HEAD +fi + +quickjs_dir="${work_dir}/quickjs-rs/libquickjs-sys/embed/quickjs" +patch -d "$quickjs_dir" -p1 < "${script_dir}/patches/quickjs-wm6.patch" +export CARGO_TARGET_DIR="${work_dir}/cargo" +RUSTUP_TOOLCHAIN="${RUSTUP_TOOLCHAIN:-nightly}" "$cargo" build \ + --manifest-path "${repo_root}/engine/symbian/Cargo.toml" \ + --release --no-default-features +core_archive="${CARGO_TARGET_DIR}/release/libpocketjs_symbian_core.a" + +mkdir -p "${work_dir}/obj" +common_flags=( + -std=gnu99 -O2 -funsigned-char -Wall -Wextra -Werror + "-DCONFIG_VERSION=\"${quickjs_version}\"" + "-I${script_dir}/tests" + -isystem "$quickjs_dir" + "-I${script_dir}/src" + "-I${script_dir}/../vs2005/runtime" +) +for source in cutils dtoa libregexp libunicode quickjs; do + "$cc" "${common_flags[@]}" -w -c "${quickjs_dir}/${source}.c" \ + -o "${work_dir}/obj/${source}.o" +done +"$cc" "${common_flags[@]}" -c "${script_dir}/src/runtime_dll.c" \ + -o "${work_dir}/obj/runtime_dll.o" +"$cc" "${common_flags[@]}" -c "${script_dir}/tests/runtime_smoke.c" \ + -o "${work_dir}/obj/runtime_smoke.o" + +"$cc" -o "${work_dir}/runtime-smoke" \ + "${work_dir}/obj/runtime_smoke.o" "${work_dir}/obj/runtime_dll.o" \ + "${work_dir}/obj/quickjs.o" "${work_dir}/obj/cutils.o" \ + "${work_dir}/obj/dtoa.o" "${work_dir}/obj/libregexp.o" \ + "${work_dir}/obj/libunicode.o" "$core_archive" \ + -lgcc_s -lutil -lrt -lpthread -lm -ldl +"${work_dir}/runtime-smoke" "$bundle" "$pak" diff --git a/hosts/wm6/quickjs/tests/runtime_smoke.c b/hosts/wm6/quickjs/tests/runtime_smoke.c new file mode 100644 index 000000000..aa352c5aa --- /dev/null +++ b/hosts/wm6/quickjs/tests/runtime_smoke.c @@ -0,0 +1,214 @@ +#include +#include +#include +#include + +#include "wm6_quickjs_abi.h" + +unsigned int wm6_qjs_abi_version(void); +wm6_qjs_handle wm6_qjs_create( + unsigned int memory_limit, + unsigned int stack_limit, + unsigned int viewport_width, + unsigned int viewport_height, + char *error, + unsigned int error_capacity); +int wm6_qjs_set_pak( + wm6_qjs_handle handle, + const unsigned char *data, + unsigned int data_length, + char *error, + unsigned int error_capacity); +int wm6_qjs_eval( + wm6_qjs_handle handle, + const char *source, + unsigned int source_length, + char *output, + unsigned int output_capacity); +int wm6_qjs_drain_jobs( + wm6_qjs_handle handle, + char *output, + unsigned int output_capacity); +const unsigned char *wm6_qjs_frame( + wm6_qjs_handle handle, + unsigned int buttons, + const unsigned int *touches, + unsigned int touch_count, + unsigned int *width, + unsigned int *height, + unsigned int *stride, + unsigned int *byte_length, + char *error, + unsigned int error_capacity); +void wm6_qjs_destroy(wm6_qjs_handle handle); + +static unsigned char *read_file(const char *path, unsigned int *length) +{ + FILE *file; + long raw_length; + unsigned char *bytes; + + *length = 0; + file = fopen(path, "rb"); + if (!file) + return NULL; + if (fseek(file, 0, SEEK_END) != 0) { + fclose(file); + return NULL; + } + raw_length = ftell(file); + if (raw_length < 0 || (unsigned long)raw_length > 0xffffffffUL || + fseek(file, 0, SEEK_SET) != 0) { + fclose(file); + return NULL; + } + bytes = (unsigned char *)malloc( + raw_length > 0 ? (size_t)raw_length : 1u); + if (!bytes || + fread(bytes, 1, (size_t)raw_length, file) != + (size_t)raw_length) { + free(bytes); + fclose(file); + return NULL; + } + fclose(file); + *length = (unsigned int)raw_length; + return bytes; +} + +static uint64_t hash_bytes(const unsigned char *bytes, unsigned int length) +{ + uint64_t hash; + unsigned int index; + + hash = UINT64_C(0xcbf29ce484222325); + for (index = 0; index < length; index++) { + hash ^= bytes[index]; + hash *= UINT64_C(0x100000001b3); + } + return hash; +} + +static int fail( + const char *step, + const char *detail, + wm6_qjs_handle runtime, + unsigned char *bundle, + unsigned char *pak) +{ + fprintf(stderr, "%s failed: %s\n", step, detail ? detail : ""); + if (runtime) + wm6_qjs_destroy(runtime); + free(bundle); + free(pak); + return 1; +} + +int main(int argument_count, char **arguments) +{ + unsigned char *bundle; + unsigned char *pak; + unsigned int bundle_length; + unsigned int pak_length; + wm6_qjs_handle runtime; + char message[512]; + const unsigned char *pixels; + unsigned int width; + unsigned int height; + unsigned int stride; + unsigned int byte_length; + unsigned int touch; + unsigned int index; + unsigned int nonzero_alpha; + unsigned int changed_pixels; + uint64_t hash; + + if (argument_count != 3) { + fprintf(stderr, "usage: runtime_smoke BUNDLE PAK\n"); + return 2; + } + if (wm6_qjs_abi_version() != WM6_QJS_ABI_VERSION) { + fprintf(stderr, "unexpected WM6 runtime ABI\n"); + return 1; + } + bundle = read_file(arguments[1], &bundle_length); + pak = read_file(arguments[2], &pak_length); + if (!bundle || !pak) + return fail("reading Hero assets", "", NULL, bundle, pak); + + runtime = wm6_qjs_create( + 8u * 1024u * 1024u, + 256u * 1024u, + 640u, + 480u, + message, + sizeof(message)); + if (!runtime) + return fail("runtime creation", message, NULL, bundle, pak); + if (wm6_qjs_set_pak( + runtime, pak, pak_length, message, sizeof(message)) != 0) + return fail("PAK installation", message, runtime, bundle, pak); + if (wm6_qjs_eval( + runtime, + (const char *)bundle, + bundle_length, + message, + sizeof(message)) != 0) + return fail("Hero evaluation", message, runtime, bundle, pak); + if (wm6_qjs_drain_jobs(runtime, message, sizeof(message)) < 0) + return fail("initial job drain", message, runtime, bundle, pak); + + touch = 0x80000000u | (240u << 10) | 320u; + pixels = wm6_qjs_frame( + runtime, + 0, + &touch, + 1, + &width, + &height, + &stride, + &byte_length, + message, + sizeof(message)); + if (!pixels) + return fail("first frame", message, runtime, bundle, pak); + if (width != 640u || height != 480u || stride != 2560u || + byte_length != 1228800u) + return fail( + "frame geometry", "expected 640x480 ARGB32", runtime, bundle, pak); + + nonzero_alpha = 0; + changed_pixels = 0; + for (index = 3; index < byte_length; index += 4) { + if (pixels[index] != 0) { + nonzero_alpha++; + } + if (pixels[index - 3] != pixels[0] || + pixels[index - 2] != pixels[1] || + pixels[index - 1] != pixels[2]) + changed_pixels++; + if (nonzero_alpha >= 16 && changed_pixels >= 16) + break; + } + if (nonzero_alpha < 16) + return fail( + "frame contents", "framebuffer is transparent", runtime, bundle, pak); + if (changed_pixels < 16) + return fail( + "frame contents", "framebuffer is a flat color", runtime, bundle, pak); + hash = hash_bytes(pixels, byte_length); + + wm6_qjs_destroy(runtime); + free(bundle); + free(pak); + printf( + "WM6 native runtime smoke passed: %ux%u stride=%u bytes=%u " + "fnv1a=%08x%08x\n", + width, + height, + stride, + byte_length, + (unsigned int)(hash >> 32), + (unsigned int)hash); + return 0; +} diff --git a/hosts/wm6/quickjs/tests/windows.h b/hosts/wm6/quickjs/tests/windows.h new file mode 100644 index 000000000..c40b866ac --- /dev/null +++ b/hosts/wm6/quickjs/tests/windows.h @@ -0,0 +1,19 @@ +#ifndef POCKETJS_WM6_NATIVE_TEST_WINDOWS_H +#define POCKETJS_WM6_NATIVE_TEST_WINDOWS_H + +/* + * The WM6 runtime only needs these Win32 spellings for its DLL entry point. + * Native integration tests compile the exact production source on Linux and + * replace no runtime behavior beyond the unused loader callback. + */ +typedef int BOOL; +typedef void *HANDLE; +typedef unsigned long DWORD; +typedef void *LPVOID; + +#define WINAPI +#define TRUE 1 +#define __cdecl +#define __declspec(value) + +#endif From a8db7ecfcb3b7dd3c160225faf8945b133b8cac3 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 01:01:39 +0900 Subject: [PATCH 34/53] fix(wm6): avoid stale runtime ABI modules --- engine/wm6/README.md | 2 +- hosts/wm6/quickjs/README.md | 4 +- hosts/wm6/quickjs/build-runtime.sh | 6 +- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 4 +- hosts/wm6/vs2005/README.md | 9 ++ ...uickJS.dll => PocketJS.WM6.QuickJS.v3.dll} | Bin 1550196 -> 1550196 bytes hosts/wm6/vs2005/src/quickjs_deploy.c | 121 +++++++++++++++--- hosts/wm6/vs2005/src/wm6_framebuffer.c | 20 +++ 8 files changed, 142 insertions(+), 24 deletions(-) rename hosts/wm6/vs2005/prebuilt/{PocketJS.WM6.QuickJS.dll => PocketJS.WM6.QuickJS.v3.dll} (99%) diff --git a/engine/wm6/README.md b/engine/wm6/README.md index 994db384b..dd66d8622 100644 --- a/engine/wm6/README.md +++ b/engine/wm6/README.md @@ -40,5 +40,5 @@ WM6_CE_NM=/opt/cegcc/bin/arm-mingw32ce-nm \ The default output is `hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Core.obj`. The QuickJS runtime build -links that object into `PocketJS.WM6.QuickJS.dll`; the standalone object is a +links that object into `PocketJS.WM6.QuickJS.v3.dll`; the standalone object is a generated intermediate and is not deployed. diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index d937ae1ae..cbfbb0b1f 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -50,7 +50,7 @@ from a Promise job. Success shows `QuickJS 6,10,16,26` under the title ## Hero demo host -`build-runtime.sh` builds `PocketJS.WM6.QuickJS.dll` with a versioned C ABI, +`build-runtime.sh` builds `PocketJS.WM6.QuickJS.v3.dll` with a versioned C ABI, statically linked libgcc, and the native Rust core produced by `engine/wm6/build-core.sh`. The DLL installs the same `ui` HostOps boundary as the Symbian host: JavaScript node/style/texture/animation calls go directly to @@ -67,6 +67,8 @@ is converted to the application-owned RGB565 buffer and presented through a locked DirectDraw primary surface. Arrow keys and Enter/Space are mapped to the PocketJS directional and Circle button bits. Stylus contacts use the wide PocketJS touch encoding so the full 640×480 VGA coordinates are preserved. +The ABI suffix is part of the deployed filename so Windows CE cannot satisfy a +new host from an older process's shared/cached runtime module. The compatibility patch: diff --git a/hosts/wm6/quickjs/build-runtime.sh b/hosts/wm6/quickjs/build-runtime.sh index 92891a6ac..6c751c03e 100644 --- a/hosts/wm6/quickjs/build-runtime.sh +++ b/hosts/wm6/quickjs/build-runtime.sh @@ -6,7 +6,7 @@ quickjs_rev="0fc946fb670c0c29bc0135f510bcb0f595415a61" quickjs_version="2026-06-04" script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.QuickJS.dll}" +output="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.QuickJS.v3.dll}" core_object="${WM6_CORE_OBJECT:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Core.obj}" work_dir="$(mktemp -d "${TMPDIR:-/tmp}/pocketjs-wm6-quickjs-dll.XXXXXX")" trap 'rm -rf "$work_dir"' EXIT @@ -69,10 +69,10 @@ done -o "${work_dir}/obj/runtime_dll.o" "$cc" -shared -static-libgcc -march=armv4t -msoft-float \ - -o "${work_dir}/PocketJS.WM6.QuickJS.dll" \ + -o "${work_dir}/PocketJS.WM6.QuickJS.v3.dll" \ "${work_dir}/obj/runtime_dll.o" "${work_dir}/obj/wm6_math.o" \ "${work_dir}/obj/quickjs.o" "${work_dir}/obj/cutils.o" \ "${work_dir}/obj/dtoa.o" "${work_dir}/obj/libregexp.o" \ "${work_dir}/obj/libunicode.o" "$core_object" -lm -cp "${work_dir}/PocketJS.WM6.QuickJS.dll" "$output" +cp "${work_dir}/PocketJS.WM6.QuickJS.v3.dll" "$output" echo "Built ${output}" diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index f7544cf8a..8b5376440 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -67,7 +67,7 @@ ForceDirty="-1" RemoteDirectory="%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS" RegisterOutput="0" - AdditionalFiles="PocketJS.WM6.QuickJS.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.pak|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" + AdditionalFiles="PocketJS.WM6.QuickJS.v3.dll|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.js|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0;PocketJS.WM6.Demo.pak|$(SolutionDir)prebuilt|%CSIDL_PROGRAM_FILES%\PocketJS.WM6.QuickJS|0" /> hR%Wc1l9Mx?d$y?T_Qg|#q8Qtz3AIfVZks03Hchl`n%K5!;w6FrZT3-* delta 252 zcmexzF7C^@xCtFhiz_B}`7!m&PrRkX_+#T=Wk$vy&5BIzicE|^45FEVm<5PgftU@5 z*@2h?h&h3n3y8Uam= 2000u) { + fps_tenths = + (DWORD)((g_frame_window_count * 10000u) / elapsed); + wsprintfW( + receipt, + L"PocketJS WM6 receipt: %lu.%lu FPS " + L"(%lu frames/%lu ms)\r\n", + fps_tenths / 10u, + fps_tenths % 10u, + (DWORD)g_frame_window_count, + elapsed); + OutputDebugString(receipt); + g_frame_window_started = now; + g_frame_window_count = 0; + } +} + static int render_core_frame(void) { const unsigned char *pixels; @@ -215,21 +276,23 @@ static int render_core_frame(void) &byte_length, error, sizeof(error)); - if (!pixels || - !wm6_framebuffer_copy_argb( - pixels, width, height, stride, byte_length) || - !wm6_framebuffer_present()) { - if (!g_frame_error_shown && error[0]) { - WCHAR message[256]; + if (!pixels) { + WCHAR message[256]; - ascii_to_wide(message, 256, error); - g_frame_error_shown = 1; - MessageBox( - NULL, message, L"PocketJS frame failed", MB_OK); - } - g_framebuffer_ready = 0; - return 0; + ascii_to_wide( + message, + 256, + error[0] ? error : "QuickJS/Rust frame returned no pixels"); + return stop_frame_rendering(message); } + if (!wm6_framebuffer_copy_argb( + pixels, width, height, stride, byte_length)) + return stop_frame_rendering( + L"Rust framebuffer geometry or byte length is invalid"); + if (!wm6_framebuffer_present()) + return stop_frame_rendering( + L"DirectDraw could not present the Rust framebuffer"); + report_successful_frame(width, height, stride, byte_length); return 1; } @@ -324,6 +387,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s MSG message_loop; int rotation_ready; int status; + unsigned int loaded_abi; int viewport_height; int viewport_width; @@ -332,9 +396,13 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s (void)command; (void)show; - module = LoadLibrary(L"PocketJS.WM6.QuickJS.dll"); + module = LoadLibrary(L"PocketJS.WM6.QuickJS.v3.dll"); if (!module) { - MessageBox(NULL, L"LoadLibrary failed", L"PocketJS QuickJS Host", MB_OK); + MessageBox( + NULL, + L"PocketJS.WM6.QuickJS.v3.dll was not deployed or could not load", + L"PocketJS QuickJS Host", + MB_OK); return 1; } abi_version = (wm6_qjs_abi_version_fn)GetProcAddress( @@ -357,9 +425,15 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s L"PocketJS QuickJS Host", MB_OK); return 2; } - if (abi_version() != WM6_QJS_ABI_VERSION) { + loaded_abi = abi_version(); + if (loaded_abi != WM6_QJS_ABI_VERSION) { + wsprintfW( + create_error, + L"QuickJS ABI mismatch: expected %lu, loaded %lu", + (DWORD)WM6_QJS_ABI_VERSION, + (DWORD)loaded_abi); FreeLibrary(module); - MessageBox(NULL, L"QuickJS ABI version mismatch", + MessageBox(NULL, create_error, L"PocketJS QuickJS Host", MB_OK); return 3; } @@ -427,6 +501,9 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s g_touch_x = 0; g_touch_y = 0; g_frame_error_shown = 0; + g_first_frame_reported = 0; + g_frame_window_started = 0; + g_frame_window_count = 0; g_quickjs_module = module; g_quickjs_runtime = runtime; g_quickjs_frame = frame; @@ -435,6 +512,16 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s OutputDebugString(L"PocketJS WM6: landscape display active\r\n"); else OutputDebugString(L"PocketJS WM6: display rotation unavailable\r\n"); + wsprintfW( + message, + L"PocketJS WM6 receipt: ABI v%lu, viewport=%lux%lu, " + L"bundle=%lu bytes, pak=%lu bytes\r\n", + (DWORD)WM6_QJS_ABI_VERSION, + (DWORD)viewport_width, + (DWORD)viewport_height, + (DWORD)bundle_length, + (DWORD)pak_length); + OutputDebugString(message); memset(&window_class, 0, sizeof(window_class)); window_class.lpfnWndProc = DemoWindowProc; window_class.hInstance = instance; diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index c137624d9..429bb1b97 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -8,6 +8,7 @@ static LPDIRECTDRAWSURFACE g_primary; static unsigned short *g_pixels; static int g_width; static int g_height; +static int g_surface_reported; static unsigned short rgb565( unsigned int red, @@ -103,6 +104,7 @@ int wm6_framebuffer_open(HWND window, int logical_width, int logical_height) return 0; g_width = logical_width; g_height = logical_height; + g_surface_reported = 0; status = DirectDrawCreate(NULL, &g_direct_draw, NULL); if (status != DD_OK || !g_direct_draw) { @@ -144,6 +146,7 @@ void wm6_framebuffer_close(void) } g_width = 0; g_height = 0; + g_surface_reported = 0; } int wm6_framebuffer_copy_argb( @@ -240,6 +243,23 @@ int wm6_framebuffer_present(void) g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); return 0; } + if (!g_surface_reported) { + WCHAR receipt[256]; + + wsprintfW( + receipt, + L"PocketJS WM6 receipt: DirectDraw surface=%ldx%ld " + L"pitch=%ld rgb=%lu masks=%08lx/%08lx/%08lx\r\n", + (LONG)surface_width, + (LONG)surface_height, + (LONG)surface.lPitch, + pixel_format.dwRGBBitCount, + pixel_format.dwRBitMask, + pixel_format.dwGBitMask, + pixel_format.dwBBitMask); + OutputDebugString(receipt); + g_surface_reported = 1; + } for (y = 0; y < surface_height; y++) memset((unsigned char *)surface.lpSurface + y * surface.lPitch, 0, surface_width * bytes_per_pixel); From a5f329f0d31f2338d6d9cc46f8594ffa5088f57f Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 01:04:43 +0900 Subject: [PATCH 35/53] fix(wm6): latch short button presses --- hosts/wm6/vs2005/src/quickjs_deploy.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index a49e7aba8..984046794 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -85,6 +85,7 @@ static wm6_qjs_handle g_quickjs_runtime; static wm6_qjs_frame_fn g_quickjs_frame; static wm6_qjs_destroy_fn g_quickjs_destroy; static unsigned int g_buttons; +static unsigned int g_pressed_buttons; static int g_viewport_width; static int g_viewport_height; static int g_touch_active; @@ -249,6 +250,7 @@ static int render_core_frame(void) const unsigned char *pixels; unsigned int touches[1]; unsigned int touch_count; + unsigned int frame_buttons; unsigned int width; unsigned int height; unsigned int stride; @@ -257,6 +259,8 @@ static int render_core_frame(void) if (!g_quickjs_runtime || !g_quickjs_frame || !g_framebuffer_ready) return 0; + frame_buttons = g_buttons | g_pressed_buttons; + g_pressed_buttons = 0; touch_count = 0; if (g_touch_active) { touches[0] = 0x80000000u | @@ -267,7 +271,7 @@ static int render_core_frame(void) width = height = stride = byte_length = 0; pixels = g_quickjs_frame( g_quickjs_runtime, - g_buttons, + frame_buttons, touches, touch_count, &width, @@ -339,7 +343,14 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, g_touch_active = 0; return 0; case WM_KEYDOWN: - g_buttons |= button_for_key(wparam); + { + unsigned int button; + + button = button_for_key(wparam); + if (button && !(g_buttons & button)) + g_pressed_buttons |= button; + g_buttons |= button; + } if (wparam == VK_ESCAPE) { DestroyWindow(window); return 0; @@ -348,6 +359,13 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, case WM_KEYUP: g_buttons &= ~button_for_key(wparam); return 0; + case WM_KILLFOCUS: + g_buttons = 0; + g_pressed_buttons = 0; + g_touch_active = 0; + if (GetCapture() == window) + ReleaseCapture(); + return 0; case WM_DESTROY: KillTimer(window, 1); wm6_framebuffer_close(); @@ -497,6 +515,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s return 5; } g_buttons = 0; + g_pressed_buttons = 0; g_touch_active = 0; g_touch_x = 0; g_touch_y = 0; From b287823c4aa3881c5bb8a09de3128348fe958c08 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 01:08:49 +0900 Subject: [PATCH 36/53] fix(wm6): refresh legacy debugger alias --- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 16 ++++++++++++---- hosts/wm6/vs2005/README.md | 5 +++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index 8b5376440..bcbb03650 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -62,12 +62,16 @@ - + - + Date: Tue, 28 Jul 2026 01:21:31 +0900 Subject: [PATCH 37/53] fix(wm6): normalize ARM branch relocations --- engine/wm6/README.md | 4 +- engine/wm6/tools/patch_arm_coff_relocs.py | 59 +++++++++++++++--- .../prebuilt/PocketJS.WM6.QuickJS.v3.dll | Bin 1550196 -> 1550196 bytes 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/engine/wm6/README.md b/engine/wm6/README.md index dd66d8622..5398cffc1 100644 --- a/engine/wm6/README.md +++ b/engine/wm6/README.md @@ -15,7 +15,9 @@ performs a narrow, checked conversion to `pe-arm-wince` COFF: `.data`, and `.bss`, and removes unwind/LLVM metadata; 3. a dual-target CeGCC binutils `objcopy` writes WinCE COFF; 4. `patch_arm_coff_relocs.py` maps the three emitted ARM relocations and - rebuilds every relocation symbol index from the authoritative ELF tables; + rebuilds every relocation symbol index from the authoritative ELF tables. + It also clears the ELF branch instruction's `-8` PC-bias addend because + WinCE `ARM_26` uses the CeGCC convention of a zero immediate; 5. WinCE ld performs a second relocatable link as a structural verification; 6. the build rejects a core that is not ARMv4T, does not contain exactly the four folded COFF sections, loses a required `ui_*` entry point, or imports diff --git a/engine/wm6/tools/patch_arm_coff_relocs.py b/engine/wm6/tools/patch_arm_coff_relocs.py index 4c74713f3..de94e652c 100644 --- a/engine/wm6/tools/patch_arm_coff_relocs.py +++ b/engine/wm6/tools/patch_arm_coff_relocs.py @@ -11,10 +11,13 @@ The CeGCC BFD objcopy can copy all sections from ELF to COFF, but its generic format converter preserves the ELF relocation numbers *and* the ELF symbol -indices. The latter do not identify the corresponding COFF symbols. This tool -uses the source ELF relocation tables as the authority, appends exact COFF -symbols for their targets, rewrites every relocation, and rejects unexpected -input instead of silently producing a corrupt object. +indices. The latter do not identify the corresponding COFF symbols. ELF ARM +branches also carry a -8 instruction addend for the architecture's PC bias, +while WinCE ARM_26 expects a zero immediate and applies that bias itself. This +tool uses the source ELF relocation tables as the authority, appends exact +COFF symbols for their targets, normalizes branch addends, rewrites every +relocation, and rejects unexpected input instead of silently producing a +corrupt object. """ from __future__ import annotations @@ -83,6 +86,8 @@ class CoffSection: index: int name: str header: int + data_offset: int + data_size: int relocation_offset: int relocation_count: int @@ -312,6 +317,8 @@ def parse_coff_sections(data: bytearray) -> list[CoffSection]: sections: list[CoffSection] = [] for index in range(section_count): header = section_table + index * COFF_SECTION_SIZE + data_size = read_u32(data, header + 16) + data_offset = read_u32(data, header + 20) relocation_offset = read_u32(data, header + 24) relocation_count = read_u16(data, header + 32) characteristics = read_u32(data, header + 36) @@ -320,6 +327,12 @@ def parse_coff_sections(data: bytearray) -> list[CoffSection]: f"section {index + 1} uses unsupported relocation overflow" ) if relocation_count: + checked_range( + data, + data_offset, + data_size, + f"contents for section {index + 1}", + ) checked_range( data, relocation_offset, @@ -331,6 +344,8 @@ def parse_coff_sections(data: bytearray) -> list[CoffSection]: index + 1, section_name(data, header, string_table, string_table_end), header, + data_offset, + data_size, relocation_offset, relocation_count, ) @@ -421,7 +436,7 @@ def append_coff_symbols( def remap_relocations( elf_data: bytes, coff_data: bytearray, -) -> tuple[bytearray, Counter[tuple[int, int]], int]: +) -> tuple[bytearray, Counter[tuple[int, int]], int, int]: elf_sections, elf_symbols = parse_elf(elf_data) coff_sections = parse_coff_sections(coff_data) @@ -432,6 +447,7 @@ def remap_relocations( coff_by_name[section.name] = section pending: list[tuple[int, int, int]] = [] + normalized_branches = 0 matched_coff_sections: set[int] = set() for relocation_section in elf_sections: if relocation_section.kind != SHT_REL: @@ -498,6 +514,32 @@ def remap_relocations( f"at index {index}: ELF=(0x{relocation_address:x}, " f"{input_type}), COFF=(0x{coff_address:x}, {copied_type})" ) + if input_type in (28, 29): + if relocation_address > coff_section.data_size - 4: + raise CoffError( + f"ARM branch relocation at 0x{relocation_address:x} " + f"lies outside {target.name!r}" + ) + instruction_offset = ( + coff_section.data_offset + relocation_address + ) + instruction = read_u32(coff_data, instruction_offset) + if instruction & 0x0E000000 != 0x0A000000: + raise CoffError( + f"ARM branch relocation at 0x{relocation_address:x} " + f"in {target.name!r} targets non-branch instruction " + f"0x{instruction:08x}" + ) + # ELF REL stores A=-8 in imm24 so S+A-P compensates for the + # ARM PC value (P+8). WinCE ARM_26 performs that compensation + # itself and follows CeGCC's convention of imm24=0. + struct.pack_into( + " tuple[bytearray, list[str]]: @@ -682,7 +724,9 @@ def main() -> int: elf_data = args.elf_input.read_bytes() data = bytearray(args.coff_input.read_bytes()) - data, patched, mapped_symbols = remap_relocations(elf_data, data) + data, patched, mapped_symbols, normalized_branches = remap_relocations( + elf_data, data + ) data, restored = restore_ui_exports(data) args.output.parent.mkdir(parents=True, exist_ok=True) args.output.write_bytes(data) @@ -692,6 +736,7 @@ def main() -> int: for (source, target), count in sorted(patched.items()) ) print(f"patched {sum(patched.values())} ARM relocations ({summary})") + print(f"normalized {normalized_branches} WinCE ARM_26 branch addends") print(f"mapped {mapped_symbols} ELF relocation symbols") print(f"restored {len(restored)} PocketJS C ABI exports") return 0 diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.v3.dll b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.v3.dll index 71d524bebd9982d50dae09f869d629281ec37be7..9d866ddec0babbdc8f87f0c1889106e4d715a5e9 100644 GIT binary patch delta 114588 zcmZ^MeSD4e|NptpZq9Wb4m-`v%xp8mFf4@JZAlU`Ar#rd$Gx_YByE$0vf5-`q~)xV zB-IK_qEr$k5g~Uwo0FSS6iIIOdp@u0I(Fsf`^O&F^?JWwckkEh^?to?uJ`-w;*XDA z{PD5;`SuNS3toIMpvV`Vb2#^~l6%;mdpIEXaA5A?pxnd3>km7&?eCWzY^w~kdAw?f zr{d`tPsQ#(ZIyGAbIV!w(0-$?BcAzY*;_}9vH+C5ZkBy!mNk%bzc`|!x|w9bcs|^J zp3bW6b%SiGBph%=j(-nQ)|u3aCVD8I?plxxO+uhaF>pd`27Fg5Pel>n#wJaDQ)}Wj z2JRBnbxAAq*=!G21lerPj>&~Sw%~-Ug}AH*sJ>XQ<5A^78T_kbi1M+l{nZieo@uvL zwr$v_JP1MqV?5sJa`ab6xY9%}{puK~^pW0&9c`7XGW)Qjh0<15A4Xw-Tt5u1<<%PBv%LAaWlJD^zmMcdbk;)SicGS^9`BwTJb+icE1jJ86 z`jl%BNW{4VcKJ3)-ciSpsLr9b%4Az!xy_d63$ZQtIYK<%VCWRs#^b##$}vZ1*kX#Y zEhr}kQZG*3;d@0AjzLVS^gM=EZj=n^Hf++<@CEP=Dl2?Si#Zj+VA)Sn zjys}VTTUpIwp5ST0YzrX)@3ZB7u)dacXU=fvK6JuCD~7$ujEp>BTnfq5fzAuyCtsz_GuzVD`2!}xl#e& zJS<5k9DS4`nSBDG@q+9>;TRb4z!SDgn=Q4%g^+hb!JrVs9dVN41L^lN!snP8RW-$k z*t2-r(mdYAaG;irrsjLRC*_r*b9u8ZHrHl*UPr-Q;Y!eoMi)LOp%YU z6L5~K{SBsVBi`R&%w-aP5)X%rKZ)3DC7Vw=)*uAOpK^>;{+1o5fVo<(p8`sOq@0Fc z^<~6qw0f7!K8=<=F6&RD@k`{;X~gUSi8zD02GZ#aLU)y{JmcsQF|u5#YzeK=f4xi% zLCFY;RF8L2WvcW%>v%%>P1c`<`^&_4)-g*N zF6rkS9l~CVu6Ck=rqPkhW$ig2E|sI_98DwsJ!`w^W`FV^)-4Pz~yQSKnidcP0 z`mwtFmg<&Joz+KVHmiTRrCK$sf0DJo!__0@%J0zRj3oTw=w7?&Zo`QoeK()7?Y7DB zbB+kf|HIKmIU>9MaP-$M{%s(%llb$FUh%*Eh;)QD9mLaSL#MQ5R0JSQ*gKA+jL$t% zaNf~5g(!

      rXO_A+H_GnzOqtl&>%ai`9+}#Kd0|bG7oJRAXX=vrN}y2#3FANp zWUjxT()&1?qn(-b&BT-o&uu(}^Y3}jWpM30!x8tlx^w8na#3hzFhOGhP3KVzMY7G* z>^2sAu%FX%QH?680LyS;jwptR*~}onmd)9eTTSI4BCP@~w_b8Fn~v`%nR5f<$W+;I z10$~eypg4;bIPu$O?la6%h?-DiRp(N_pIS1PVzFec#e?2HMc^0vM_{1<;f4O0(WG1 z|2X91F7l&RM8SMHlebJs%wb5@LR#mTNf`}@=Tlb*N8or@$k3Pu$F-ry$;=#j_DQlK z#~j;wuI7|-Qn@p5cc*$hA(Kj*hlG6V%svXi^=<8`%1cromb^}8T;W7Js0zJL-36BZ zs_rz`i22uA9%0jz@115AuGKRPT+LK{cr{Et{_7FF7P|UXb6&Oi73-^V!1cNX1$$30 zP#?h2G#;NFP+NaB1ZjGEXn-81%qk?;s?BF?ftr|3&~-&1+)k`w9@|}mNV4q+FG*f! zmg!i7>CCL)N#)3gv%r$53LKtn={zHOSW>>YIpp+%8L$C+GRxU^gX`nuZ%ITK2GZ|K zdKU(9_aN};afzmsG?5hu2r5ASJW2Kcd zneTw@lnpnTu^Dl$s5N83e$j>Lz(-Aq0mc`6RB%9Ix|#`TmwRBAn+7ux9GPFl?_@~T zT0^}gd0oxeh+iNbk}+K|gx|~Ru1t=`$;qx5j0^HWH*-)_7liBP zz*s+M<__+E6$KfBmYODCX=AAq)Ga$zimk8$9xOh`34M{Ow~ zjImXc_MZ)89ziO73F*4-)=uNLUSlRuSJ+KFx3cNiM_S*?Qo?((;8tdYb7U=` zFQ8?TYZ*#se(@F`*Pw|_mYCi&u>w0njZ76#ll^YDkkdmO+aYtvn&iRCD#iHT+UNrd zdYez_(`Si!#QUY><$-=86Z6cD#xy%Zjckf+%`?YxT0i|ZTIGu}>NeWYAF|{&3Uj_} zRo_uQaY5i+V%*N!-2=qyE<$bIe6JRg@mAOJx%!(j>UNgR`zd!mc_V*1+0_2(W?2e1 z=R-E#PRXp4lG|A(=84;NN`r$6#CiN&PL`~Jj97oPNI?~G z)?~_Dm{U{7z%J-AOFnxiEtqN+F@^^_19k>~nk$T|nwHa7VEdu(hn`pg{nML5WXC`= zzHlc*XIaOrfN=|$uJIHjs8R*=jbKxtPl0~r#_|etl;?Hms!SoQgJ@-HEBXVz;O z6VI&hGJ?Gb7DXzw8Q(4|2cginz^>{Q1?1$9V+N2~->7jz(xTF_gf{fKDlvIE6EA3P%-fzY-Uwa8Oe2hLngxrG$ME^&&vP0^(>Mv*490<4-&(|UiTP$++C9MRvIpV2 z?I=BrHlDYmR7La4R#+3C0UGI&(BEbc^`sqtLeAx5{O3sgFtdGOdz+%AdcO)HKCKZg z@m4lX)0Kt$z6MrVDLn(fPL#Vf4>`4}Dk~9aKY3{EgiX`1E?I*$-=k;=!x-2jI}!Sw z4MMKJRzC3>0D@L~FFQvXajYFtuliPH^sGe*J>TH;5Vv(m=ca@x|O zRzuRwTAd+i{KKKu!JW^SdDsW;&*yr~u`%Pd%5a;Vf838b<98)Rg1i@ z`g3UhRD&k(6OAv~vVQNY+m_@hU?agr3*e4`Pc6F#cP)NB(%?s?mRU#1x{I#&AL)A+ zrtpl0{FfIsn8GAkc^9V8Cx`CB6z=I%ZVDr8PR(I78Xpi& zr7G|58Y^yX+J89id@K&`;P5-wU-C0<9e!`H!)Y0u>>ScLIQ|atTQ;E#raCaKv6(c3 z$H3GSzGP!+3jMZQ?ZH9WbGI4S>ucCFom%bMj2FS8<*wygj9b^fc0&sqv4V0Vb^vS@ zG_9NMxYg**maNfcY`g!ny)!g6#As@Cps^8LqnHdnQiDR%VtB*GC(4Y`4C&U$^3i6u z2LC>qGsAT>C!7#dSqr$clRUh^LZG0oToyCJv{G?w(y2ajduRo6~f6+0o@xFX3RkOYNMLzLmZ7KwAIGH? z`pN}yJo;XVWWhTDDeh@k|p*9M58oIr1fN=r@ zEE6mf|MLiPQmoA|oD}zfUJH6H=!+_#cY+?GGNC_F0lgjc6OC7tow%MY`&kt*WWg{! zow@b(ykZ3XW0+N4cH&nxcM{SNzKzf}f={eKju!Va=*yswsem4rQy6l3HVm_27*+v; z7Xjm-kApt20(xcWeW3S&o>u|=s$!I=TKfn}Pc4;>oFg+iVh=4`$IM#e%%3OHV$Vvu ziBxqj88VTMY`-j+$f=5bFfMLL3FKnp+E`Uor)WXhr{J@}XM_1PB4lZU)`+y4c7Tn8 zJ`TE30sTF&KG6F>kEnqDHdu#-D;kt_fZ_5D{~N(;Fw{ptedy<<*L@hH7l9&yB7r!f za37f|l_mEviT%zcz)}5qvim;fre8ps#Xa!Qm=s=9XE>%e;&^r86Z$_kR8Bcq2j0@g zo_!$c{3SNhBx8Db#Gs0rA1zxoKiV)jzJEXS)qyhgei{%Lc+^*yTgzti_)Z$mE~*1VNYpWu>V16(^{(-Kbj*3=> zJ{S62=y?^;uYwgoFM!^o0{UNI1E3FRy&|-Xg@^}8$62r(upGj)sUS=lSR?3-pf|68 zegv!<^lH!>RzN=hcA@@?vJ0(v9nVEqBTgsOxMYtDbf$DZ7v^Mshm<^kjrk9x*O8~i zxdxe9qz+2}+OyD}RlEWbZ-Ny;FM@tik2oh=O74Vz1^Q^{qoJRxfWG2}keg5E!jKEY zNf@++1P2EQQne8TRKgtr{w(gM@HU0_s7sj6g!Ht-A?~1KTt9b_RD_O4rpx6AX|h`- zV=@z>(Foee(!oZS4&M3~w+=1xp)Z5J4En1T&<8-D4ShEB7b~FWLLUcx9Q5b@mtL== zI}8Vz{OfVfr~j9MO{}w%(WG{;B_k&pIkPHY%Yq&WJreq~3h3$3ejjR8)_V5p5+hYIiBfeY~Pn`66~>_kVlXE-z+-z2|=~ZY=Pz;c_k<>;x!4L zVs5wKk4Q$3GTEmhDeD_?FRU#`17+=W3@C3iPsfTqCFiG`?TzjlxWE#8S+ZwPi$REF zsXR6OI`|r*Y+#xmO~VZJLsOpdxX;8{cI+AXM=?lS&`m|e+vG}E}o8HqrpO5*!5roz%I9U z5!SPHmSzUE#RjMT3s`GahD7)?4X z`yR%QeM5*!TyUw9<6o#$6E3&fL_kvsO8*RA<%xht572}|)0OuSzkjCk?1ZkYVG!P5!VgcKGwq&({fNwJ^AR_6`KCsNew?KTrH|C0IL7LuU(gmOFIR$To=O1RRM8X=0oiwjlMuBohJit(>g#{;;_xOnOCM-s;?O3!Bj!U12BvxR2E zm=Eo69U@kgeSmw1q!pPB3%A%Xx>vFZ_d%bfYj5G!Q&11sS=TMstY zg}nsk2fNFKy#Q7WHVkY&|F$X>mOKlg2w;$lc@bCvSU(r`Bv?LJo(r1?mJ4=^3!4p= z1J=!j6@qEGYU5IqJ`KNC_zmq-%LyN#OAja`1TDLjREP$c$b;rAq}*kbv_0RA`(w`L zR4SsL@>!F_zXg8-J5CLDC)n#?DK2av*fOv>F02pOe6Tnd)*Ea(Salnt@avY`3^)$Z z01PJ)njviun(jzRd4wJ4Fqe$>usd0)3@dxpkC+_`&s=Z8n(Uy>fTYRQ;?R30ImDn@ zOvK$5_c5Da>%SIQBe3sWSS(mAu&-U12^I;q4=i|usmN-rksVlOy-HJW9vl(g3 zQb=nq-(NbHB^52x&4en#J>3<{Mz8{~$u8_ouzaxlT-d8%xnSd6*lMspSO6LA!u()O zWAw;%kyR1P0CYWksEbL!s)60%!kz{T0qg6+7J&Uq1i3D3E|{9?o{HsIaj058qT$J~ z)=zk~IBswN=sdcU9aszJhCq)w<_?b$)W&?P1Luj~$IP#cGaBA+$vYXi_!t+QjHQa% zY|jL4nrBXq;E3tgC)rzXD4wUx4|wNf`%~r$Px@2s%2P96-S!jgIt-kPUpKpSW+(;F*Ku62^IVUT}7X)b=g(=F)J^E%=f ztNvmu=c5Ccmzb$xyy2Cylp(_Ja&aj`gp-o;96sJ}28{gX!>gyShJ+lK{07mrxWyIZ zJZo{5TAbfnocsQZ^F`VB9E()`=gep>|CPIo)t$-(N&XT7)t)!~p~f`5aYX*KHl_r& zE@udAG*v90;S5-M;NlBRy_f{X_}R1F6By$+?+-WDw}QoQ)yq0Lxr&!jo>mA+s=!YL zhOO36J^1o38?St8;AL``*p)2-RRvFhWnXmM9iB{(OkE#6_X?|3oK#w4_KsPvocWe~ zZAY*3s0uU3m9lh=nd%!Id~?uxEHF6do=+z9l>pk-xw$6jcd!CZA_ss8&Dti8%?NX$^oMv}vR(H~_9M``$;V=E%wS%}-es-}Hg`80wO} zjj2UWEn*<7hp<}C+Hs}I#BId%wJg{M<0A2GH#_=%)TG#qPNdCb%yx5H{L#4bBGM}n z!SXHU0H$2tZniYu)R4JEQN+;`$^H+b$H~C|P&W6CaAoSVLXG4Ff0(u_wanQ#>f4%~G59ocM_kq6Xf9ZFWbb_G+3>{#2;(r-R+Cg{E ztsimmX#b;~W>a`n>n}07)j|(ttFt*@1vcYC(;7?N9J40(ASZszpxy`PyR418%i74$ z3M3iO{m}i;`&U4ZfIb)cTE>H$Nyz0ISZBp zJqLQ53h1hLji9e@$*LIcWZcQ{^2~eidQUA*HfWK22Q3;}G_Zpx-RW4>TW0FC3k+ zpl5+50ZjrrZb8LBgMkJEeJh(kVHe|3pc{d11lr3dlFi$Vdx6v(>PqvwR=~S}bb(Zt z8P*4(s5^nUAsQ+hkYH4S9Esp?goXw7eP+JoNt~xrv7?-OtG$I{4W#d0 zP5{6;8($tR%iH_Z&{tA=!OqB5-7$Ck>(eMI{;EY8)g z?_?oROcIb=KN4iqJ~Ju)cq}J;>FPDpmDzvPjB9lpau%{DB4B)JhI#0PV!kpHLJJzo z3j?q|cgam(G4^9K|10|6<+`{*nBb8!KM5;l(N?y9#o|n7S2pypk{(p*M7zl4Olo>IR2Sd6xWJF=l0E^pP|&wP-;^vpf_w7BDe47$XPOsdaHOF zjQ3Q)SPS|Z=xd-4uYg_+x^rgh4j0`qJ(1A0o+4>UT4xa<+-HC&!JJ$IJFpSAX0Dh%_NEw917O)#1ENP_xwG) zs)1@b(s65>Q*At=GH~myFHM$KX^JdAU?!QL*+G=8W&`=Vx!KIKT`nFlPc!^0``Y}4 zp~-=7xI9uTFykP)uVaNnW>RSFG^^LyA^Q#i^Z3Xivw7mX>;!2(w4q<&tP94G#z@TG@1OYwu5ORUUbpbAn6{!QknNHbLfSTa@fUF73siEo~rwN zuvTEL@PAE=j%ck3HB_^q*MVLK`sWqUr$Y~i9uED(3h0xdpJ9vhOuH5J%HFSlVH^zm zVc6epMcF&j<2%g!a3C!Owdp(~_8pCC6(Q>+liSSYWqmYC$l5x&j7f+gHv@&*_l<*t z(qamzh?{o=b6B6m9pu3T>z!nBiYZ=DHWys2w#L>0IZg?LhY&?I8jYkJX6?P1v_8!C zbpu!03S`(}j9?ugM?lb?<#Jn277{3}rc0jMbZulYU?b;Z&shD|IHP1Yf_)wrt46KX zu!meG0-gzsKf-kG3<<47LN(vDX!(4KzKj9r5i=>KDI|?r7dmzDJVj<6F%vqaC`@)W zlt!f${uNk#N>X)vFYa2nwbR?9yzr@BB_pN|dh@XyK}^hcNYO=ltran_Y?i2_p?#eYjXCA|#k-$nAXj5*4w?Z>3#D8)HI&L8D0KTltLZw}>K+$G-=EQeqke|_TC zwCHLBuMi$%>`w6?V}4RiwjQHIZj(a_@?IsfjDJ{(bVf`Z>@PvmSzVk&f=Y8LvbFRo zArSYYOR%F2T^u2Pt85N{{Xq8^Qp8#@eW}`uyZ#CEoZn!UoRQQIfeIzl5$9Afn6>HRn=CL_mT`d zPNq-lmJg6-+NqF5vQSBjU4ot3eM+_~X|{{xg!)X*9Y=j1c9DX0L7Y>;+`S(6ZA!T@ z@~D@%3#_=4`J$6{pVg?wkus!|UN28(lycXtzf0gPvaZx@*lrPtzHHBo^|+4Hf^uNJ zkuIbLUC86Ej5)R0R*WCaxYpOH#C+l{Dz9iQ7HuR=pgF4F2)CO16PWrm8TbQcrml-T zT4n4nUoguubA#|#pKwzaM`0FFn5ITb*g~lv}B#6?H-rD{1qN? zaRl|Hh;wsb!IxI3vKl(xDZti&MKj*f@lT>FjFUsnwe!-7uLAlGFz2Neqnv*8wJFkj zfc8@>WfA2J*XVD9IWMeSPA)HE&A9djJdSXRDfTMZim3A<>ilOHo0HCE&__cb4gJRo z=!>D}LeGVMv;z8k=xw35h5q&b(nC2Rc!YFts}vw85gqvjMCQ*d!PBI#@K=1Q+%S*riy8p)Tx2urpwzT-b83!(jPf2V-?X zpJZ!90^u_Vcet3J2HOJG*M%(rdmSv-h0O(92G-MsX$zST*42eQ45o|xoop;3q#-YO z0cvhXhOH=j2=^ zQd;3%6SJc1uOus*8mu|kvtYluu*P7zqjT1UrGZTWJK@5T!A66Xy08SW0bobL`ta{0 zkH%c-ba#M*JnGBHw<>(v-adDQtprvXY_|*ZfTB26NMIDTN;KKd_(@DVpxv<~B zw2n6^mP0e}ke>V~eM&+Ke=#EpPuXR4t`b*LLyJn)-!%m0T+Anhqm83Xc?xjj*GONq zBdCo3Tczb&qkc`~m+I$V!#)dNOO=IR3;GLaDsMOc_R}_juwTt~9v;xmKF40eSUy*2 z#-%qSoU=EhiEpfay6pkzVkr8j@q~JcN(ae?a~R%!h`WVijfh$JQ!Pyz$@xi_Nq#!p3TnwO#4%o678$`k3PS;DYA0 zwGxXgqE>3qUtp~=XoY4#-)IYJj9Xt*I*SmetkP`ZTBZ%uoo|KJgw<6)vOKI0Uh{)1 zZ)|dcrA6_!08QOD2-bo-AZLGL$@mM2_}whbepSna#hJ>kD?DY2A<8+oegyxm6tix0 z3>4+$^RcNzB4l8PqSxXJyKPjI@WV7-$B;uhzJQeR>#Km(U=3^^HppxCn3jtRxV3F zaYe;9&QC>zgda0q;XWeV!?wIgS3KLnr&#h#T6D-Uk1g;W>H8NGq2+SqFM8}}Wab6N zMI$Bgg4r!`8i6KE;e1!|f-=v<$4bNbkK`9!u%K*`#o1X_U*KV(Kp^U(`MXCSt@s;j zz{`67ux+_k=KaIw;!)Z3kNGy2%f?(XoAi1ap}Ex2m^$V4wh}A{Y@`cY29{~px$4cc z__bvWvU#+PKP4rX*leC4X_w90(_27Mj!??4xpJW`s!6K$OZ?@wxTp>D1{1w(SJuX&_=rRphRZo+WB?GU}vok-1g{uZeD;j~NA5g;Gu;=#K zL`_5#!~z0T!OT{{t%-`{UlXOD)2+gTKjHZGO^HxX@|T=(IUY_abu>f)92SE=p?mh|#A%&rS_XiCKKD-9muq3=h6>mqlluzYHQT+hN?S0`vW zloHKLg=%{aVg2OmB^$g+o`XyFc@uo6HH>RxPuGH<6_3Xo=R2>YWW;4!b5}JV*^=S$ zCa{&?!{Z&wndP+}ZK>~D`x%c6g)L;;j^`YKy<4JI5QhzXr z$2O_ZD25}Vp(|J;+)hFqIvc^^RLDPkrq-L}8&bQR!>MuJa}W1+A!+k!w)TZ>317$ z)pp0f#pVsJ9KgfsdL?g14_geqDtn*eo&6(~y}f;zmV}`GsgkIAHIYt{-UOpQq*Y9f zR%P*uqLf6UCv|}41I-7zD+uYmaF{)YY}PQ9V9=$B8)4vNu7lUN^uHL#;b$cT7Sn z@O&0FMrQJcrYlj}{piTBsVh$BZ2Kh1i}pUjGfhXLy{W#du29-+-OK#+<;$q*Orv0&Fkzz0l*!>DOIb z0Q?B>T^MwCFQ%N~8vO$>KXgCzD7kES6ACv0%>|kZbd>`ePQg2AS_i!VdI9vmDxj~1 zJ^=av=)Y7zUk*J7dJgoT{+HgkWC;w7U}yxx_bvuCC8{pr`J4x%5TB6krZ+b6D`oMc zzm%tL)TrjGNeIvMmlVo5WqAmRk@;3rie_O#Ro;=dO;WtHxO-u7a_W%SQt;AbheJ}0 z*3N^se}K4Ww!rI63hftfZN%^e61=Rnm+?2`F;|*Z>r|VvkfE{a4GE1#=V+~5QEI|9 z(NkPuAF$oQ2MGwPTHlZlIeXjqTy-53rG07*SyzojupU;86nf+&e~Eu1!);Ex;IC}w zg-5z#XhA<)(UfX~Z7ZE(yg!9rsVR-CdvA?d`LEDF%Dn2{CVT;CQ+00_7St|Q_jWTT z*x~g?(n#qQOQ-rq&GN!jwb5G3hfUj_mSSI-7wc^v^PI93S%u-r;jL}i9qUa>f3kwm zZLLUx#wz&H*=h^Q+DJ?dZ){2nNV+kp?JT5)wRo2Sb^!x*0RuHzR>Eea0UZN61~efE z@%-%68q{x1C>x<{gpzMDn?TEe^s(6i7E}pnHqdM!3^yWuS4gPaN~>w=Dp5Z2aIS(p zoB@kSwn`wR7=`tt1AI9fTXkGU`Mjx}4!J_<{+lj>r?^7Z#T|tNHI!f4yw2M&TE;bH zH<26LA*sS@jaChu_j$b@om|Fwn`_Np7w2uz`VW;#h=7kO$mg)NN-MTng-*mbshj7cyL%vfQV#C3gBYLCah}UMYUup2DNY&S% zKgaTG;`c&V{Bz|i(vc8dbur5b@asHsr{ej{;}y_eW*fk0JL0Xl^KlnxexPZD?}F*b zeVSsqRz#ZTw^R`S9@Z#4o}$vAKcC{Vp(WW{fpoV@{?d-|{zNVUWjqMvwrL+A zOt&ah(dNSDDYC|b+JTOhP6^)FPH$@(AnTk&)2nKr#waS2U1G#Jr!xk-65{CTD#G$e zbAq=gA66|vTKWxe?Ips!M5c$Cl~Z?vHAh+{&aTQ#Nvwk@&X9Ke84aM!C6p$S-QPMG zkh-quRGGA**!qAwQ7b?n^w(5+afkCCL23t*ngTv?@9m#*9_KhLk~S(`-S_19OMV5* z2g}EQy|hat-XDRSO{Yv52E<*R8T|PUKvDUT$ko$4Is)7)>ma4?hUCf9zUr|q1B@8tx4 zNl{2%DFr-Jwf_fMkmOA&T&-+5R_F7xCa>614P8KZ!6o8Lr4cN|&z_LuCc3@22gg`i zw+FW_As5@>R3SbFyHV){mgU)rUmtyV%;G5wnj2MJP17R^=35C+yRaGD$-_IiwG1_n zQ|t(Is-tCkrka%it&Z32FxuhX3!jD=$G=w7T9>@L!QQPFOTZi}_b)(H%^N0LlfCWv zs?Wt_Z}X@*R*=$Zl9l2e$m)9&La$Vp>+5^##-tPG$25QG zvDTz6<&n~RWlViekD522Dn`qp2F!w|Yf5q~n|YY8 z*E+4%;hv&&Ql?Gu{TK!;_I|l@{yGxFHCB0Y;mPMZjr3|rAvcmS4H@A!t}aKvFl%RI zD~G*6;|ZC4+~2$C*v?{0e@;MiFCcJ^z9F4cSK!f%%SN~0EUKJqNbCJeQW|+%M%07C zMsFiB!4Rww)~+ThsX zd`o0`*%@-^;Mz!3Z8(6R&KT>cj7s-5Y<;i-j<3M9_9|uiOFpZBP7S7$SgvX#D81%s zzTFCU1l+1q+No@Ig>pKMjgr{dd$;eGYUK9Z)zc5rt{ak1{ZEsnjlG2)Cc90%BUn0} z(Zt)ED&NzDIq!4gX-ea1B^ga=5$JDI@2r@Q5TX`HWotJxMlLs{G~mY-Y+=a>dT~Vnn3y7b)aez!W_RY0v0&J z^Le6K#%H2!$7Eh61$YuD?_l(3ey@R_Y%#^VpoKImgb(FvxrpcTSdftT9&W zj||gEa02#nmiNu{4hoS()x&n`=8ec?zPYC+q_z5UDG%H&0tZ@nD|`5s;gOc!=Z)Q3 z7m$?gLz&acTbjPWhLrnpb%zYRcERaU_2*dZvjPiSGgePoWR@40*4tsD+^+@5s^WF5 zjLw10(REF?>iQlzdmZIDRZ80M_n@S;VbLw$^09diX!IjkM6#vqx61|~Uw0r!qbrk` z$O0Yd1x4h@|vC!5xHyJX$q?Uvp{DdbKosjIrR zlBjMi+0J$-wJ05BaKKl zbi>=bV==Y_VtRO!s?y(P_3<{0f3Y&$6jg+4=a333T_zLz(1mZ5J$>k08w6tddMAe) zbCjF%R+I8bV97u_JEN^)BvUipIl0j#$!Da(WuBe3#0#Tw_55yx; zznJ$1#WV2)ZJ4*Ro&Iq)z#Jg9j#;~i%tRd0RhN? zGQA^&(>y{Pz7O|$F^tmH5%PERi@nU$L|@8jKl<+(R_PU`>^;%NWG^u`(QoCnAN_wA zR_Qk=wyC0PK&1I-)5*_#@>{U~vEP7eDS5i+HfZ(_TCzE3weTwvY_HJfKU7Yk7(LEc zd@%zaWB^4vL>EJk6*N6BxFf=ne>s4SpcM`=W%4J-wY)t}Ho=CNPS;q>#3M~OhC501 z_gkUOZzaid8-K#Vrp=Wc`gMlrXsF1cr+LA@N2t7Fmgrm;~Df)gnGL(#_A zZ+Uv}C0=BM}@)rPj9i?x5mBOr<8W&Oy)QQ_LJO#<)bM zqx?M4gYtG;T3GkxHu1ioiaDZ-n5u(?VJw(17TyQ(2@{M(^g~yDO*=@P7`xuJJ6=SSNIYdQkS%5>dB3Ep%wUYsyMp`L z<5d>!hGCrc`=WNRT7$QCrD!dhY=8WVuL`Dr$Z0?NdkjM&roThC^2JT8^C}A9n~F2I z2U}D3LJ_2o^5SSfq3DcL+$I%@u3-t1=Nk{$Yp!@cw5Je5`a0b&g!Bc}_e-$~#~_{h z60>5q624AsGK58BH`xkz^Sgj4r$of+GnBSpi7A2hV-I|i@pN~X)9SIxtn&kay*tfF zJ88>ian-(rNf!E4yVy%UwmxE^&sNhI_I64B^^d4zi>QzM@iT4xz4mKi9G1NmVas6( zFUH*aJq;}uWAt%KUNIgq;Tcm@i73Xut1C*xRsC%$*^Xzx_x7TMg&vPOhWX7&ufyI? z)!Py3j8<$r#Oy$WE`wgLv9_n@d&Mh;|E1H&YHM#pNjfd5wvNUdw()z#o2K-1C?lxW z8mpg7)q6!BLqR&#fXR@YPQTVzM;iKP(8yYAYo$ODf7GXCN>1QOk+v=Ge5Hk(Z`H!T z%hSSJB>Kk^+)K;f!@XFVx8B;IEzqH5a92~xKJljEWH$Xg58DE+v1X z&!4c3T$9>4R+9ULB&TkTw%m;peUv2TJnft?+TH!Iwg9)5z@0A@aKvxEW`XCHYx%p9 z(~0e}EQ%?Gdo7{(QtW=TxYK0k9JzO+MWwK{y>y`zfy@I6*e?dYW@I9-zcRUWoR0Oy zfy{8`wzhx=fTuAIP6=-;s7G1b_DPY+L*?uJ;+!7OzEjG?G0PC3q#Dy?_?(G{&Fo?x61ti-8l$nIf-nCM3QwUoRCYG?GB2~ zzP?vUIV3KbqtE?}@-aTWa|hCi4&F)}?;WEYRG;8{w2qt9dGK%NYR=dh;7K{w}d z8%Ocy#kA;6T>3;_j+k50k39Q#<_C5xa*7e%O1 zf73%J+}0>6xF`nT*8!Cm(U{SszXZL+Q8eFX)3{3_Gp*`|r=gj{>|*6{FJ1=BP2d98 zAq}zdtSGU*9V+4cay9=Oz5^cyJU8*Uir=Q<@yfZE{xHKRgK5fC8ZP@&q|NwVaKdHL z*S=C^!hYp%t;<$%&4FVEZt-*~y9`C0CR-(@r~Q;riH0;#N~M^cFitJJzsiR_(RP6o zP2Th3Myq)}{qndmBN%r0go{^c7$1TU`d|{NlyL=mTRc69*H3%SWGG{_stRZ3@7@A!hDs6TZgZt>cl|Xxg}bs+CZo3M3P0XdYU37<{GqYZOwXFk6$t(Ob?|| z_1LcsW>l=N;1)EqUUY~yswj@!be!fr5!IhPN8P+n#17XCSN%kB)?-sZk7wgCK z5Aun=4Ua`g7hrQ%ho>;Sr4j`4k2oLAVAd36-z{u}=yR2d2C>Ov&vN-B;cAy~S`8-I zb$-Gys%00OMn#XrrI_BeKJq|afa_IGhxq!j3(^~EJp9g=D_X_3#~t5&{(@*RgkF0r zC~dVA0mMnm&+*5#3SBP20}8bHW$U#tam+T{_ahyiuAoSw(H1F=?N6;5;af6kP^0M7a=4Vc zDuY@#ia%iR7BN*good8{X`$$+!V_gd_pr@*bnEMtpoNGf0$nD?sa@!-@-*P3t7jr^ zRG&<(R3t@oA<`zr1u2s2C&_i0Zau?{pQH?WF5V8rHh7*PB#9q08bT&mJXgIk)bFNb zV@L Date: Tue, 28 Jul 2026 01:45:45 +0900 Subject: [PATCH 38/53] test(wm6): verify ARM branch addends --- engine/wm6/tools/patch_arm_coff_relocs.py | 49 +++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/engine/wm6/tools/patch_arm_coff_relocs.py b/engine/wm6/tools/patch_arm_coff_relocs.py index de94e652c..e94533c29 100644 --- a/engine/wm6/tools/patch_arm_coff_relocs.py +++ b/engine/wm6/tools/patch_arm_coff_relocs.py @@ -38,6 +38,7 @@ IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 IMAGE_SYM_CLASS_EXTERNAL = 2 IMAGE_SYM_CLASS_STATIC = 3 +IMAGE_REL_ARM_BRANCH24 = 3 ELF_HEADER_SIZE = 52 ELF_SECTION_SIZE = 40 @@ -52,8 +53,8 @@ ELF_TO_WINCE_RELOCATION = { 2: 1, # R_ARM_ABS32 -> ARM_32 - 28: 3, # R_ARM_CALL -> ARM_26 - 29: 3, # R_ARM_JUMP24 -> ARM_26 + 28: IMAGE_REL_ARM_BRANCH24, # R_ARM_CALL -> ARM_26 + 29: IMAGE_REL_ARM_BRANCH24, # R_ARM_JUMP24 -> ARM_26 } @@ -618,9 +619,48 @@ def remap_relocations( output_type, ) patched[(input_type, output_type)] += 1 + verified_branches = verify_wince_branch_addends(coff_data) + if verified_branches != normalized_branches: + raise CoffError( + "normalized/verified ARM branch count differs: " + f"{normalized_branches}/{verified_branches}" + ) return coff_data, patched, len(additions), normalized_branches +def verify_wince_branch_addends(data: bytearray) -> int: + """Reject an ARM_26 relocation whose instruction still carries an addend.""" + verified = 0 + for section in parse_coff_sections(data): + for index in range(section.relocation_count): + record = ( + section.relocation_offset + index * COFF_RELOCATION_SIZE + ) + if read_u16(data, record + 8) != IMAGE_REL_ARM_BRANCH24: + continue + address = read_u32(data, record) + if address > section.data_size - 4: + raise CoffError( + f"ARM_26 relocation at 0x{address:x} lies outside " + f"{section.name!r}" + ) + instruction = read_u32(data, section.data_offset + address) + if instruction & 0x0E000000 != 0x0A000000: + raise CoffError( + f"ARM_26 relocation at 0x{address:x} in " + f"{section.name!r} references non-branch instruction " + f"0x{instruction:08x}" + ) + if instruction & 0x00FFFFFF: + raise CoffError( + f"ARM_26 relocation at 0x{address:x} in " + f"{section.name!r} retains non-zero instruction addend " + f"0x{instruction & 0x00FFFFFF:06x}" + ) + verified += 1 + return verified + + def restore_ui_exports(data: bytearray) -> tuple[bytearray, list[str]]: section_count = read_u16(data, 2) symbol_table = read_u32(data, 8) @@ -736,7 +776,10 @@ def main() -> int: for (source, target), count in sorted(patched.items()) ) print(f"patched {sum(patched.values())} ARM relocations ({summary})") - print(f"normalized {normalized_branches} WinCE ARM_26 branch addends") + print( + f"normalized and verified {normalized_branches} " + "WinCE ARM_26 branch addends" + ) print(f"mapped {mapped_symbols} ELF relocation symbols") print(f"restored {len(restored)} PocketJS C ABI exports") return 0 From 2d26ebd75f87b6571c70beca07d6d8f5b93828f7 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 01:47:43 +0900 Subject: [PATCH 39/53] fix(wm6): trace stalled first frames --- hosts/wm6/quickjs/src/runtime_dll.c | 22 +++++++ hosts/wm6/vs2005/README.md | 5 ++ .../prebuilt/PocketJS.WM6.QuickJS.v3.dll | Bin 1550196 -> 1550744 bytes hosts/wm6/vs2005/src/quickjs_deploy.c | 57 ++++++++++++++++++ hosts/wm6/vs2005/src/wm6_framebuffer.c | 3 + 5 files changed, 87 insertions(+) diff --git a/hosts/wm6/quickjs/src/runtime_dll.c b/hosts/wm6/quickjs/src/runtime_dll.c index 042c99266..c46188d72 100644 --- a/hosts/wm6/quickjs/src/runtime_dll.c +++ b/hosts/wm6/quickjs/src/runtime_dll.c @@ -10,6 +10,7 @@ typedef struct Wm6QuickJS { JSRuntime *runtime; JSContext *context; char printed[256]; + int first_frame_traced; } Wm6QuickJS; typedef enum Wm6HostOperation { @@ -72,6 +73,16 @@ static void copy_exception(JSContext *context, char *output, JS_FreeValue(context, exception); } +#ifdef _WIN32 +static void trace_first_frame(Wm6QuickJS *host, const WCHAR *message) +{ + if (host && !host->first_frame_traced) + OutputDebugStringW(message); +} +#else +#define trace_first_frame(host, message) ((void)(host)) +#endif + static JSValue runtime_print(JSContext *context, JSValueConst this_value, int argument_count, JSValueConst *arguments) { @@ -675,6 +686,8 @@ __declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( copy_text(error, error_capacity, "invalid frame arguments"); return NULL; } + trace_first_frame( + host, L"PocketJS WM6 trace: QuickJS frame call begin\r\n"); global = JS_GetGlobalObject(host->context); frame = JS_GetPropertyStr(host->context, global, "frame"); if (!JS_IsFunction(host->context, frame)) { @@ -716,6 +729,8 @@ __declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( return NULL; } JS_FreeValue(host->context, result); + trace_first_frame( + host, L"PocketJS WM6 trace: JavaScript frame complete\r\n"); while (JS_IsJobPending(host->runtime)) { job_context = NULL; if (JS_ExecutePendingJob(host->runtime, &job_context) < 0) { @@ -726,8 +741,14 @@ __declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( return NULL; } } + trace_first_frame( + host, L"PocketJS WM6 trace: pending jobs complete\r\n"); ui_tick(); + trace_first_frame( + host, L"PocketJS WM6 trace: Rust tick complete\r\n"); pixels = ui_render_incremental(); + trace_first_frame( + host, L"PocketJS WM6 trace: Rust raster complete\r\n"); length = ui_framebuffer_len(); if (!pixels || length == 0) { copy_text( @@ -745,6 +766,7 @@ __declspec(dllexport) const unsigned char *__cdecl wm6_qjs_frame( *byte_length = length > 0xffffffffU ? 0xffffffffU : (unsigned int)length; + host->first_frame_traced = 1; return pixels; } diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 646606d58..731e6f7f9 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -82,6 +82,11 @@ The VS2005 Output window reports the loaded ABI, viewport and asset sizes, the first Rust framebuffer geometry, the actual DirectDraw surface format, and a rolling measured FPS. Any runtime, framebuffer-copy, or DirectDraw failure also appears in a message box instead of silently leaving a black screen. +The first frame additionally emits one-shot `trace` lines around the +JavaScript frame call, pending jobs, Rust tick, software raster, ARGB32 +conversion, and DirectDraw primary-surface lock. It also reports the number of +non-transparent and colored Rust pixels. If startup stalls, the final trace +line identifies the exact stage without adding per-frame logging overhead. ## Pocket Vapor Todo controls diff --git a/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.v3.dll b/hosts/wm6/vs2005/prebuilt/PocketJS.WM6.QuickJS.v3.dll index 9d866ddec0babbdc8f87f0c1889106e4d715a5e9..0f11a597f122d30ab7fa21a0e944c7d9480cf0a5 100644 GIT binary patch delta 137016 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

      W4yXgB2uh-Wf}S(5Xkit)WWoKuyDV&f zrmG>yr`1U>&wQYxm1TdHJ+Iugu)|%h{vD!P9rzpHJp~Ipe9c&8rfX2h28e>%kWJbH zsrRG&Ag_r@kbfluww%AQ%W$a$XS(h*51RfEC3g}(0GA5xw9P@7zoQcN*fF2IrpZkrj zF4#Br7fL(3K1%$Q4dewwUa&L!H{6S)fP`-e`IWnpUaYWRXfn-!$&%$7F+N-K&yt~B zwc~4j`npy0mJ@^|LVptyRmYNMYiXWPX-N~bRUWkg>ROLF@#U*_kJXDLqjA2=a!pLW zzye&ZF|Qo5pKu5AB8F!OQ9mf?H6fo`D$yrfe;_k1sC_lgVgK;Q_-!C0DeGSxL}Vqco#+BNZWZH6bxl-H};l2l3@ zvnZ(t{lO%l&ISdqO?uMcn=%)zHII_b?|Mj`?~!@)3##7CR<-q>lxEKe3`|YKeE^1o zL{Qg62Be3A{WGGew%Zehr8a0ky43=0R+%v_cNwBBrKEg`hpC*BJ4uG$9IzSwB~9Gv zFXI<2EeL*h9BuVZo#Gz!)TY}&&Hyu9AEkMFy$K)bl9QRdK_(aMOG8iku%JukBUJO$ zU%?F5Aw~O#r)x)$#Wd|%< zqgEybXURKA3d&6zk(muyhG{N1y8Jfl`5mJD6YO+Te-^D`O(K*H`X1YwFL)r zPpQ5mzoH}oq<~bA)kOMN1;wAuVCwi!DdCr2Gq!Xkww4aiAFbBwVj_xbi|J5>iOS;B<9Z6p*Sp2o1tSH+x zXnQgHCfnt+qmOn1*HV@38nq)@`wi;Z?1E)GMp1h`^hTh4=)MUWcJ5%BzenG_dp4EV z9k+KLM8ToG6PPm^UOhk`5DVfyEEw`lEp=}FkrK)2qZma&{ZZG5ZwGnBHksogM}zUM zFTQ=ynFmd>1S|)+KNe`k7NxnmeGcyS+VC5?7H+Fj+*Yy!tt~iz@L6r<$Vy7W&QMZw z@?Vkmh$fr#H&vmMz<8{Rjss~+IgQE(dz+B9{}2Tk7Ze{IW~R$s?JDl03tUfBbkv5R z9x!mtt{8$9@edUp>4btC6^~ILS+$_uC+KB#<_UU%K7?Cf>6 zO0mjIjlu$fhUJ_(;=1?bWAu<~?#X-Tcdqp(pQK;9XjOMTw@SH)mD(ve*{pUwP<0nw z>3XJW6`kU`UG*V)`3I*yq#>?*Pk%_M>j(TTbG>rr4O-|rbLKtzf$O!ied)WdFV1qT zxE}uPJsRu!@wcv+dkyEh%2@d8=X&8Br?sxz=lYI1Td7=p=7eWO_!2H}Gbjg_fMYpU zhTtC16FdbT2Yta1P!7y1yhtxF6|4t80I!wkGAj#~o!@QrCATpQHeiw^jEn?xKqXt;6A-}e%9(;6?*5oEZG zgSVHJSgcyMJ6I>vWnaH`J74&HE9FSAk%>INZ z2(Msq) zES*MAQ0mVoPp9wc%NH<`3kpFSp}$SvVgCIQXDWCJyaiH$OxUr`i?mtCH_fC|>?Q9p zQUs2J)9;DMR62$>&9P$HELvs_jX-F5#IUMy>zMk!8_fh0YV5 zKBRvz`(sE*=3IxFJULf{uB4GI{AV{A*S$%|7tnJd4?wPmEYB6wKBG*fSH#<2;NU=O za0eF0^63ype-a(Or1L5LM0~b|KCjRc?zN3}q?vrzHhK^Jia)cBK2LKzE-ub&qi?BN z>-Dk-V%$!Oq4GYr1B>8J*qf~vhl*&09CF2`-EX%+bB{()fl;^Nb z87;*Aa+=TB(Ya#U3F_lkGEY(;jgI5%e?v2j;s<}DztCX5{v2HG_`!3uEA`^H&(X)& z?HoSjJe|Ul1>b+39#WHq7vULKXd9k)fu5sD{DX^V&u93qi}YjJ9OJ6#ergb1en%4e zmQ|Qga&k__V8>b@Ub-Z^$NNZNp%Aa9Y9+Q;|d{`)zD3pZs8Br(pOoY z;9F|xYWf;~>N<)wUc7yszD#{<5mW|uZpA)1D5t&=TjIt>LdaImZlH7I@{>1cU)Fi6 z2)s$xGWF7j%0-^?xfZ~y>!}~>zg1XnQ;o7Gw+d$i-DK1zA|Z6Q{RVb{whL&b5J`1Q zg%kxSWVE+JS~l4N#6ctb#pGM=r;ujqpvQx~pxRIDcCcX9wg)0gR3H<{@K;EfvfJC%e<|B1gY=w?*({Yy@K!U-KD5*$l6*=Ajp*;?M^7fhje~QOxyW zxPslh=P)*aX7O3WSnF0RWgwgd;5M?zt$T_W&hEr#!`Q3T{s&UM2I|1guSMu^hViyl zAvVy3e9;qZq8bC8$1bKVd7BYzGm9_eheog&kYdP_%!jfug?!vdHpV^$;fQ0^nZdZN z<`#;>BcXRtqVrMllPu(g(&5{A z^h<1pJ$|x6Qb8W5oXmH>#4gE^GCzrJau1nflUcA-c-kv$9GkzAUwwtm3-3QoAyGie z;UE!A0&~C;um)@fd%@9ZeC-5wiN4I2zRFhl*Sv*J4;D;EhD}oHlKQvAuoU#kXC^&~ zRpY@_|erppYQ=^?w%Z#L*J`ZIG#uM7l9` z+xWrP*r(bHsEjwZiy0G{owE10^F^<-GWN-Ko-~Qg);@!03g=fRu}$`?&}I9zs%yO9 zwL@&0%+gqMGxV9t?2NVFA%;w2;gkjK5HsFlRn*>p2Uc4k1-!dMOn95Erfl^N;hf1f zP`jMk!*+U+t{{4+C{ATlH0%LHzxhm4SkIk&P#W97;&<}eH1wZDgp&E^UTwVa?oK}T zJvM}GTEp|-V-0SZ&W5qgm6WrwJB$ck&*E+(|Xu64PFfoWy?>>>e5{ z=vMX^!<;g78|yA_hk4uBZUY;+OAIQ){lVVY#e3~xharW1FB?InVcb5pq1E0W&<{Z! zs638)0J5d%u%Eq7Tg4wy$W*WfNWU0Jm4EgP`!6YyTlmZ@5 z%>0B}%z98dl=uD)XV9;vOpe?sg4H+j`Ok-Hp+12MeObQl@jL72OnfP zS_Z0Q{Vs9!Ae%^gr~IOjfndSO|2Yu|9}9YjkG^Mn480=|xBq_-U*!#uOuUH6FM2yJ z>w6$q(KV3ephZVKliH1~59kE$1^vO3AOTF?EpAq`VTLZI2DA{6(hr1y2+#xc2gAX5 zFbOOWZ(e2d4fIh#>sUv1W+oC^06547Ip7me0OW#uJLFz)4Ezi#fM-XKsRg>e2g`d9 z3_1ZhI^7TXAb1!&2A%?P_45McD_|mMk5MIkkJn>l2^`sA1y}`EgRS5PZ~&Bno8T-k z?DZn@WT7QwYY+lDgRbB{5W82@*0W=bb{7X5*)J-sSO{{67lD|^aTI{eYcB*H=GZ&1P@Skl;0o%D(EYg+3 zl$G!0V_PW0W)|M15~3&KGC?`)$;fRN5Hb<=yC7#l21D}i_@%{4w6+m$taL*&m0mXbg?M45 zvQweohz_fjJ&gK@^J|pOlzt~#tyNxS?ECNdyj-VZ8;+y}<$bA@gz~A}(JKJ)E&ugL*Qqpq2hyIX~>7WqQ0XcNN z{*`jW8s3OD2q^KiUmT?D1nq#sN5rWxLbZy zG)h0>+mE4YE*|3Jep2$EP*0=Mny5eJ(QS9wq+iRwxSPZKHQ9q8!|n(ZC0;qM;MBqR zJ*LU;#r~g_K}_omN5AidPq|`O>`%k77&I9pPbg_-pWs|CvK_{sKqCk%#Z+D@4xdvp zsn4eYo|W=H@B+bk>;y-`^O;gU?Sis_&JZ0gDz}(rJZv(>S*0TMlCptOC;#!X@;O^u zD&}2LZYs_%5#R`@0d0Q3s^$ltc}?lXp8SCyx~9xvlYihtYLy+V%@5puUGbL@!>=o8 z)cGj_*MW8zL77HKzr(z^P6=+Cr5ebZzYt(FkSJlkp&U`{s}cTNPz~NV%rDd{$1FZa zkTDo_gcsjdw$M~Qt3i2Bn+g*~S!bhiiE2yX*my)}R2^&XFYBeT(LwgX_&Xp+@!|sL z1Y~^$>~xZkvCGB_41MEZBUm~Of=mDt!D7H8GFeOZV5z(=AIteauob%9cmdZ}Wl^^& z3>mMqt5}&I^%aY})YXh(8i;JEmMM{S_ZUc6kb#syI_{9A(CfiqkO&rlHQ;gw(Wi~N zpQ!~h+dQVU67B9%KgUCwRs4{jI*68uw(Zn)j7ErE?bYv?_8r2N9u=8^s=sF&-_*Ca z-J`Ci?#b+5`!^<7HQYdFiWQ;iv&_9+KYo<6F6xLbEqkG?O+>{Q$ng6OBmoqG(Qr#! z%bo_JLi&lhUDQ*Gb^_U-Jt`)2Q|GDvb#VL+l7lfQ{D@8hB069l2ATXLcSftL&8g6* zf+(>)TD?bWmx$-ja!AfOj-we&l?f{~a_(oWMnQjZJ4Ril1jZ+7BzHUp4x^FSsFCEA z<2)Cn&y<}>B?BwOj##x1HE*rJaX4@YLqGLOr?G(rrE4@2gTX5H3}!8m3JSZ4evhcwx<&jZvInb4%p#vo z4F3%?=5O5on0i%{?zesuTD&^KV9$U@ZR7Pu*=KWq<4I4bq4aCM^a=F{+x44B8iBnT zi&-b4pHgvVie2}Gr`0lRQowSB(6)q}L+o(B9AF?6k5B6^qM54U2O@sQ zfCENGVVR0B=k}pLUO~b8wIGhGxKlt65CLp6um$=9%>?RddH8s>80V`u#;e^Q2%2ml zHK0cm^^;J^cVL4(3{-v0J zT4j{oz9`lfs=g`<-z9bzsl^KIA{Opd-?0YD+2(1y)pP{G&jQOe&uq1F36><#yI5<*11khX=8}P`B0tM(bjO2 zvT=1{+g*k##+KBHmHr01UE5dZMSiUl`C*2BvWa+YxZx(Ns}ond8t~lcQLaZBp4VF6 zK$pECrbHQ>%)NSk;)YlhZ9os%T_Y+UFfdgrRSy~F*|aAS79;tDVTMbJ_7oi0os1n} z7;9fXRwI%C3`3ir7l%g}DyTCF0j9YF;R)t2LO#BM)wm(Qwg2c!j3@6X#M4afdBy!= zoP6lF_aTv)V(>Sz!c>v}2Fj`Jb0;AVzh#)m*xWT@)C@zUiG7b!&NBp4?1sObZ}`~c z{1OLao~H)b(cn$H16M^-hGC-J{a#8P(lFi>XIC0V$v1~YzmE)fB(a2FS#7u|7jYFI zql$cP^1wBQQ4c5NX=FG^ZXy-32n2nhk&T5KS+HFrr}uc|K-jXr!q~e*Beq=_Yj@*O z4g8J+li0V$(3;Zq;@3|MFShWPoxbZ$&u0BWDZymG!Phs%*e?w}20B~3xy?{O*-tk` zc%h+Kkv;9^PD3zbbvH%eZo?vt-E~XkA29eD&>Q)ogNE5bq)a1@Gbq3>9y#aNCU=!b z)|}D^PyOByAeJ05jI`Q2-uko7abSA$XTuKMM7Q|1Uk$t423^od&1H?0;yq3&i+=aW zfnsTe;T@elc}w_Kqoh8sAr-m8ocIP_u7f@YazMR^yJ85`3{g%anJQknZg_;USL(&K zIzuldG_~FnW9c+PK7pPK8GhS~d=8lgSp>NcAQk_5!#wrzRWQmdI!z_ykp>(WLQaH? zf}8_+AEefZ;TD+Q!e#~13^@VP2`QgydPDjEKX9PY>&xrfP-du}uaQLYsG@zyf=?l^ z%;Z-*_H2ND5;BrFNfqP}$WxFn5^mSDMcN#=vCCPlX-?L;Iie9omJuzGGNKhyMzldj z^{28_;)F??OIw+IjHINshk-_vACip=r4Hi5Tb9 zd<^!xsFU0eTH@K@#+xFowKj@sQy;@yA35Se8||!>CWs$`wChY8icn8eaj2t)EpZ|o zD73wk7T(q(Uk8v!UlXW^>!mqcpmPuI#6+0f)hS>w%qjRFB_ z?FHKRCZE}`$qwjPOvpm$UXa@jVs)WrcQ`9yxDMn3KSFbohc&UgMC;=fHw_LKI0|Y( zd!v&K2UEa8Pyh~s8W3!9x{pgnK~4nA!DrxWlZdO(&f1)%a1gVT1cAQbX|w2aQR_q7 zh140za4-qv0>2wZG8!a<>EeTG%}DkB&Bnt2c1Hd~LF|k3*HrsQ( z5g8PL5^wHnGG4N5M1XHVkyAL$#+8_=Eh1kx)+(&ERc!Dwj!-OJtWNR-Fe$>)${6bK znGVNtAP-6MAoqZOSjC_Y#z6`@7bup67O-4Q)eZ0~M-74LW4Bf{@BViBm`!{d4w8>Atwr?G-bLvV~SU&^u= zW3iNLdmD$jAO0E(6ncVx_JHv&8NT=dBc|ac;z~c`9@_SvLF}R_VP4fqywz<*hPkcr z?FHUEYbOr&Hy%-GmH6mkWHn?EWEIZ04tEe~gNfz9WqN zRQi>8W|Z+oI&=I>s5sESiNs_RISzte!P8-o{IZ90kdiP^jj$5+Z4+5A9uj(+2_Etw z2fk(^Art?Vj1)B3q<1*pU*I3TZuD-K(1%?#llYVJ-3q)8>nmS_GzZ}6 zII8hk{=@6W&uMo)Ym)H|939`7Wc*sT{$%5WG+Er3Z2VqjsU1b}G^4*t)A;!r#`c|N z-;Z|3!*itNJ`hfCx$4Z@O*Xt<;kHeOZ7T0J)A)R=XPdmx2yQP2yhe%jGmRIO5wi5l zQSt(C7*vAazy(kb@Qi`91|gs`NXDsQ&}~#fLR!-f5|^JFOMZEH!pC%`9JUBL5w>4JL9YMF{_Q{NKXd z>EEo^uQ!Dg{P`ybpi53S(VUTtAa$GQw$iwV^=ZWQ2ZTCFPv8Z{fMhTOJOW%`1NaGC zMObrZPk)njH?*^e{K%L@TYVfUdjmdeLXR>yQY$SawQ`O4Vzm+HXtD*8Lbzp(F_LhP)<{AtfQ8vnoGD(?=0zBG|oFdl3L zM?qZ^@moxI()+}EqYDQCVdBE4#$hZlCJd{oC?|2?Gmtd@*;O{jtg5bEW>>Y1$T_tZ zhk(dv%qC+fO%d;IG9F>tz#dKl+t@FRk=k(Rr7=AF3u7-9)0-dr!Z>2)@EsV;{|!rE zm(=|Y17RDy^Y6)l{l6m?ajOx=ugIj4gd!8xL|^0^PcTc=U=;8nCkadD*osYSH{4$8~0%l zE=KRzZz4UuL50BG67H7b_E*MV4B_X}on$7llNJqx-1-COURNmbd&fx{aZBgjz-!#_ zFT>!a2jDfabgmT{2eJBeKCH-?X-_Rd+8_fgFA-OZjJ@z!PITFAe4eVZrFrs1W02Uo z$2iA*$$j=2XVXftYoGB+MOK0Dx5j8ZR2}-Q@pb={A2FtbsADMO9VGvRw0{y+-x{-7 zcnZE!3(awo*(emn-VgOpT7ZGD`9j_Wo`l{Ra$FAIP-2XJV()Qu&7aXVA#1>N=*xe> zL;~W$W{?8<1GUUVVn7M>nmg!$I4waUD1m>Xxc8v(S%po_5z9(3XZu`UgB2wT*YFjF z=S>)%w_(WLA;ugrCMg}HM?`i2`mvL|iBpJ%9iA(wDKueSpL3F7+Ida%Ei z9Tmovir2hAc7Y7+a$e8FnquJga|`$@RmRSEr||Y9__9B4>e(+smEUGpYKP2Oa$ zNgN9_jiAoGa7g1|Fd8IlqEC=%Hod3Kb*we(FmZu+um%Bxz<3z}?u0rg?;B)lE9yI# zVyMqwgL{IAAstQqsJ0y8ml*l75Yr;&r-|TBCV!?C!nm=HSA>~*i8-B3!)cR6z_O^> z!FzQ#W&3aKWhODb%_JbkOqPR``!VG8felp0h|sPkyUI%HJb_dDnu*%aOwPrcN#X-$ z(gX4U-0Fj7viSjyz#9aXmx)SqjCKS2n@LHWndCiWCSi~SGGhR2V7mCKhpB~3T@=Td zE|~o5QEa~(@_M|9ysj|lHc$<{+#SeA73Ur{9aaBtLCc1iwwQdI)AK{+|7%*j&vT~z zB4wm0%M?8tIZOx3K_Msy)u0~CN=;2If!qkvK{6N&Vr~eeFvk49jO@ui>*fD__Pozb z(;*Qx*)&NF4ZDd#fn<;lmIGPv>5!vA4DbWCo1R!X)Bdwq0(tc_{0G^H4RcJ48D$fq zDfy>!Op`^(d{cUJZx!1Xn3CiRU$YjPI2DEOnKn~riRw)XQA$QB-3VEzii!-=GAi1< z|L?sADSs1>AL6EC!m-q}l{MWS0+vNevt#UsCVxfVEVEadMp(2GWL9%iROFhfG=`gZ z_vfaok!=$%;eG(4!4i-Milkc{tTJ8nxjRdjg|vI zklC9|hinPC<`#OF!JE_r8*JG0sDBO+a`eDBa7}D5nBz>EC$gy3&EXGPWK0#byd}bi zni&p||7qYbY!c@lHxH+GSVi0uX6#9WZi%x`nWwe(k*W1Z5u(7KS@J2bnTNP5A?g+{ ze$70_t@lSJ6V2n8y9h1KB72hA;xNgo8jf6f>|ArasGnnYnC&vvMA&4ClWuX}MdnLv z$t_`d-`q!GdAG!%OmigFN)e*ymYD4_&#<$R*9BW`-l3_LGOfZ5<`7YxYfi=4;w>>@ zllc(E7Z##Vo;j0hj(V&@>&3Az%ndm9hEibO&)A$>V&xWdril$Vi^!d3jCgsso#gaw zF=Ch5-yB#2huVOe0#h;8robJKgc2msW9!ATVsk&me-ErFk|BA|kEQTx-xaqwho!G4HH-6Jz}ek3Mf+J#+bW z3z<`AA%nqQa1HvAnbY~>C53h3i;Q9mB1DTzv;ja zVb}akn7_vPcka_O5qUWhDgl#_*k;Io7x@1Vd(XWnz(z0!nU4mA(5q31ma;I=`$L9- zC15&82T>qK=+)+~Y$mC=3mP~RkqHus0LMWa@IQ_G|3$c7At-X#MCq1jD}JKIo78}#cu%m6 zWp`US)TTvR4t2Ejz`#5SK5K{=JIbQn)5ni`lLNKbv;z}7k3*gVqhYTG<)9FhfQ?`| zm=4lGG8Jpzw)8SvV&E7I!l<|~&oa@-{FoTC$ii5=k;|>b2K+z_XbA>`;h;Z%JHzs_ z{}QN@_!U-?0@gtHTWKZ9;M@wlH*Z|O z%M#08%1W5nztpmcYUS{(W_%jAEMoOcSh6f?3UipW}v)5?~sB927vCcNIHJTXbu=*(WJGV*8>qMHjb&8^uBTBU@wANN%`qvQQZLA|$ ztB_zD$>?Y!C6K92dK>Y9ueCLcoQ_pkI#>=if-B!243Z7JD3~YVBiFJ!6g0zIuXO zOxO6B`>cIfx+YfMXT78ZuEBmshTjai7aRqrK@Ctbr?)hTP4`>1ykEtxxPA*uw2{4FI><@nD@R%n`Aon)$N`ScZ5j{NwC&3Ey3zd;_<}fdFu?jO@@y76)Sio!3R&ahKTyt ztVdNAZ{dfhSXV=eDR1C+YNWDls&xX>9=D(`T15C;)<|Yq4o5slw}_;-ty4nm(&2{; zHbUC0;?gJ9GJ__Kg%)w>Q)`@JDS@LUP%Yg5bL(u}2F-4<;d5)WVyTAVL}PnWZ{Zj6 zadlxxF4oFJ3#_9I@voxd@kxsHK24Uqx{~iNu=a9aqyI^)RIS{y*&1z>enU?>`FjP{ zZk8$0u@II1U0` z=ct2@;)9*m_LSXSCAJk=H&7O%^KrYafoxB@NZV~4!dRj%%J$+mVGDG==^N_?wni7D z4p`SJ>KYWCr+;US;87*k2=(qNYyeWjtZjH|i8aw(C4p7^LWy;(yGn+^yHw{R4qE-$ zA3C3M(3-|t+BrL94fmIoaOZ`G;KJnrj(=m;M zW*oDw{~5DzZ5 z7PH(Sakbp)L+v#P9Tegz#HEhHr@}gx`ZOmYOC?Jbg#gn-#G(_{V^rIUYgllNC!MsG zHS2?_ti{TLYfk>yDQh?Fp-^&hYX?5$lr@?iaLY)o6Kuyj@ExbD!S4E}r^JO*)|;9= zwHD(ANC$bfe99$jA0Bbhx+HjDFvbTk9c%;%-Mz_kU=Q@&U?(UH<`*tncj*1=Y}iHE zaLi>RllYg_*6;tP(Kq~#=;}=yjx{hwfha!tlJ&^{H2Q>pShuy{vNP0W7?9UMAR8cWfjZE1JsYlAx9Oz8Mhbxqj1;e3wf3d| zo3v26aPFwFrrUcEoz#K;AcKevH5jY@H!1qpTDRyaOvge&C+8rii<7lheA_KsD+X88 ze5E9{v9YdgHFmJQ&e7j(;C1lu39lH+_0AYC#j)C;XLZ5 zb%8!o(@6~|1&QL@oBv_4Zr-w%*;7n9X=BD^L6(~M1ZtbW<8NDw+;uev*C2c2k~^-m zx%K|+kyuW`|7b_vufbZTZ?))Tv{fg2AzO-0jn>YddjAj8Lg9ujJ#Jf|*V}ZmM%Rf6 zj25p@Ti5?hdg2hXEn+M^M2s=mE>WorG1_n<0>$5Kn_%&p-d-nRU^o~JqQnYs+W_V~ zdbdvIfQ?`?NWWXuwz93&1Lf55@LA84eEf`)%)y|RCD+%Gi2yhJj(cpYm8Ky>jO%DS ztXhgNu;hW95YaEpc1UC64-02^8%CLG#3}E@FGbmQTk4_vh2qu;72EEGCyNQ?nfKY& zO4+N2ZKW0i&%vR*qKBc~woqwH>t!1ODXMzerciBGlV^-=hxGLC z?M_VW?`<1o^snoH0WQ*;n9$a3KnOSo+stKIBqx-IKV)lQ3nE2$oNYgKl%n*%f=cic z;PG#?z*pG=ZBsRAIvFCC4Yc`EmKVzNAGYnc%dqFbDG+7i^9I?rY3JQG9`}fCEGt6s zAF=sr3%X)>>&lCz-ZH|Q42<9xq~0I)sa?5cF!U1WY6K4*Y}>?2LwVU?+XgA;J!;F= zNt%sZ#Zmz&lGw{>!HBubtU!N-lTopoGoihC3C8dx^M z)}P%B5v!lHZKIm3@Vrnl_9>f%`uuA)7$XrptP`I-%C_1fvy<+aPCWc+TM{Z(WIv5a zO*JMqjJ9E~HMo=5GDa$n&SH0htq*f14D}{e;Pg%Wg29vCB%rf!K5v`Cw201F-*o1S zUO;WccNS+~utih$e0SmhqAg!D<-j)q@Yq*vBSpjnTM1)%okc^6ZK9$T!2^ydlWe1y zo;+J83&13h%72|=+oO)fe8tPh*<#t)?&9nlXkIN3)w>{)51D35lSMC^X0t2W>2SC4 z(%ZI7b~;?lo?#oSSZZL5LJJ3V<(FpJ&T1<3mR)(-Y+IEj2ld*+gmruuvHu+#ULIW+ zA%@JuYuWztK5S;i1-$eF`d-AVUf`pP;=;S=jKMNM1q?+?P(`Cd1kw9w|uHh1Im79!8R-T2yt zwn%rHXS(qUY4eZd4GV33+_rloMZZP1>@azIR&2AyF?&2(Kz1#;a!BYdBDdS(RF>FX zOxuOVfWj;G;6_S}!l)i48ur+57QGpcHBmfizsv2woGZW5YPw;>Ph^lh0Z;&jKQF$!Vrk&jecht8LcF3R3DR8FnS>M=N8(xK) z>4}L{RGuee7Pt+TN0G~O@GrYh96n&Pt3ITMH_86sgSPGGUL1Ny3)Pm`k_>hSJpVNE z35U^Z1NaqLrqcaLIp?rVm6hwR)H9d zAleh{4^+T_j9}`?w;i+P<0Fda4&WM7e?l9Cc=YAa*{Gg;?N7EtmIVmkh)v&MJD+jf zR-q;L!q_!XjQ!ab$XIzFKJORX7E^qzG-81L#nzH9|HT%>r~UZA<>8d1$3=KToMZfz}7|n{Ze{9`SgV z1oGmOa1U>CUk?=7Rkld#GybrXNP3_K8v3?(>zL%LPT9i$)${hAM(PPHg3s7Csah-s z>-eFf?7VG@!W>VE%-=E1X{9qUbU(@CF59MQmC(ad`Tonc4O;wMJkdHVrd+Y%A!0fl zd0^uL>?li0N-Ck3f+8TR`!Zw#m_Aoj)uO+}$z@&rJnUoVV`2d^QZnRdFc@rxUo}Vu zYd|a*4ICf>$i&Dzky&rEXnka^^@wDHEP<>BAdKFUpwi zZ|EaSl#B%WJ?eNg9dbFC4rED2L&`)3L&`*AAY~$9kTMa!1w7iM@9^CS_sMGpaul*0 zoCEbB=v`qq>myXT9vY|Xc##+r{BFCBlZw1|u^0mx?}`S89?mR9aJaklyFA)k_YA$A zFY^iBdboSY#hZH2LoFXwG`f!u;6CQ9_j3D9xXgW8HtFjw^AXMZ_m}yyW?j1?jvD)x7R8SfY&h!~9IZZ_S>-cTa=5(Z-kj94v=tJ0>X?%5nK8{UKuw#tP6TDfJ$i+~UWlY}fQ*%w#*;effvhA=Eb64!ws1&e9r7hu1CVsg^8;7u zemt+Ip35BRVpK03PY`|5d0=ln(tR1^4_rp&YkC_#ska_)>5C`>!N_!R2tlwzzs6Z# zG{H0JBDyb%XBlb2VRQ#vjEOILKu^-vVB$<)DjFU@?rkR{Djs2z1vz$i1v9t2(v`paA(3&B9>3n0@$EcA`( zy!Huwf_5D4vUGfDre9LEL^-2Yi7`*>%kZ{YsHlBLuTZpV1SwDFWzXqxdf_W}5;eh2 z>LLAjm$5qk=i;H=AL7th9g8(tUcB5?@w}ezQ{Kf>gu%$tu@E;sWWYkcHW9TDyin9a zQr2xDj~fTWGYk1LNHqxodBBUPa`i>M$aETMye3WZ5QsMSRq&`b4=RKlG{|_h;d761T=(VF_n>S&BYS7G~^gdV^krSj}yC zli&Ta{wyz!qG$pDc;w07~->O0%=6MCAQ{7P)qkzLsj8U~s(8 zS5MJ1*?{+X^c#9w%M{qAg5k2GKxP4+HCGQ{E8iEjZ|GyFUG6*XsJyXn>N7M?Z*0X7IPuny@$5+oy(Hc_qil!(W`XQb-`_603c^j=;Ia@DP zx5&~=AE1Yb@^|!d%67dkw$0T?P}}7UJE`7cCx>yZJR_z>fQXr|<8`Imi173KeAxos zpE)!5mIZnlh76whu71e=0P5#?balB~ITykwr0Emgqlg14_49V2=`lOZL=jqA5Hz`!qjUqh7b(Y zeetQK1-cC!d33C!#bQ2fu|7p}!X2=f*Dk)}Ud)tZ20Fq@7rM{O2oSNDm$~%A!Rj*1 zIOz7x%U1cynF&9D(MA6BFitMdi^dDjXY#{K^k5nP<`R93B_k699r!epk6o%y_^)@9 ziPtRE!({ltWqOr;6T<#kIl{?xM%@>-F8wW?@-`pn$tKTDf@_U^TYrUjS*2UKnyqI! zze3!9?L&CPq(>VP(5LoruYA4rvJdsqrUSSPKOhqu&5J(7ZP(OOj(w>2Q?vs}=6ELe zU!`wp?lonr^kIfb*%*0f1UYTUdojS(+_60k6$^KN5CLS^-Zf&(CpvbZP2J6Zou0&o zyLj3<)VAj$c*8o(d;wY5yl@_!s~0yFMdt3q{nqQ3+1BgazCphbCTk@N2c)vw{Ivzz zG_}AJ`HdHzk^|H6PxS~f{8PP>nmj`+Z0ODbV)SSFRLZh4ctf7Pn`eEl$Fsa9$HqK3 z4rB=UIH@Yf6kZyJAunf;wIz?AuD9dAW}&JR^YtJcrtq|Uy_YJNRlG7!-Y5CGD)+`` z^YyAY)+SpN-_Xe*IFKSL67A8^Y-=s|`OqFH zWiKgnYxx+D#FI{YWM^j&Joha@lQ%Z@1t%Uj{(;!P-|n=rf%szfuszMmM%MCiXYBp7 z@d!B;U&5ZTAJVis`Plfnm|bnhhn{MSRu3Cz4u))K5;~D=dz?%)h~`!g-GGg0n+1oHBG$lX<*57P;61g^(91e}uF| zP^;tFV0wr@*UizDUgL|qIiAPw%0YMwQ>3GivYgMv{_c(nl}7VVdN|&r-n?5+)Qz2g z(9_YGDq>$xM_-*52*Uu!Dn`E*pFHe%+Dh@e%1=1Hrb29g!m-mp2k^I_cKp@~AKc@2 z!eguO6yZz_sz?69QCI%vXva@8175|i1tfVOO?vf&KW)u^YhatxWKV<~+@x=AirXCS zKa?}wnJ;L{IKD{^gp38LDV~D-AI820F0SHSe|A|mNJz4rvq>;Pvq?}P7AtM3Qbk2Ym-bSNii(PgN-Zi{Y|)~nl_>Ud zd#V1PcjlbsEVlRF^J6&kyz~9_&O7hS&Z*Ge6nWkMkYJ0!pPrGKyDLm=c&=nE5LNZ3=G+SgB>83z#CW*68Gx2YU(L#zb{H(U~&-q1l0*P4t1Z ztga7K^_7ckf5tCQpSakz)okiZyuH)5gRTtSTy6W*bb2Ctm+exs)Q6s9TKwv(5xj?B zMjukYeVOgorf;ez)Y#mnbJeSB&?WrpPituKBo5hQ`&L?_t=2YcGUX+%+-Li~NuAnf ztADc2)@L!5CmyZ0RpV}kJ^QZNS-Yp&vHQTzy}KMc4_tQj-d+3ZuTp<}jV({z)L>KA z?A!0CJFsV8y<`8?^>tU*Cr)p$m6;P=*W0jm-tDTr`mF70#>(uY6F0PGb_T|j(15;;;vh4&zR#=SDV??f(hr>Osr{znHB#xzNS%x%eV3F zh8c#bS;Wc%rUzymrWI!?r(kf-lqoQEFwJSWYZ`A0-XkzM7Bg#rnSrUZ;$~}@48-q& z$xX)_xHTOo!6pD^Gt3NH25!ap=8@}C-;eFRtYl)Q&o(F%8@8cO$Gb|ld0Sx%=`w_HQBO;gv*eBuWfny`gAZUFBhzzFlSTi)h zh-@3G6sFmaCa6P#Fyk;2Fq1G-nyEV4jJ+6PN{>NUgsJu*Q6Ky(C=~4RUay(WgHR6R zK!h0qWCF&9elcE;_S4J|-t#+=C`{?4uwP!r>n0c7o z&1gE92ADpW85qYF#0S#@GaJW0Wh+Vr(*n~EGX>*7M`?r^glUPOz0vNu)b{8HQ|Jea zE70~C$e?D5QTj5NDwuj0KCJ%_Z>#W_IOjIotJch6{5G-dSlrZ7lGt{K?eLXp!`12Z zA-2QT*zQMq^qc}VaVaMrXYQ<0O^&te)u%gca=iP8xH&vvV)qMw{C^MrH-bI``Y#Rk z2MqQH4fbBx^?1lWaUbF=G_gkvetrSF{`A4p`*ScVzbVcLR3N~#A0Lu{Jr@Z#BVn=+ z{J_KlK@)q_;O8;2gWdo?kHc<*ot}P}D%@E}&l3jwldyN+fy6E_v4p`s!0qTr`xi&zctv04ECoD_Gb+CXEBhHRsB5d<89#Ar2-ts z4cIa9v58U>dlUAq`%NqsH8E;S3+Nur4#=P0kI{56_D?W0J&9xPwVl7>k_J1rwP4~h z1X(<{Xzw^^^xUMqoALe*486Y((+)!qg})1?UkmqZ?fta&eojt&bf4{kjLau6M-IV^ zRYW>F2zGvXVEhZvv@%Cyysw_{u$=q3(&QTch>JB4-X*wdPYWH zHnE2_OhG2&;2s*r&kC8nH;rZ6mi#xaw6F}0u~bC>%X}K!VF=%NFr5u>j1)BYVZw)? zYmviOc*eMgtw|4)93%HyfR8yweQWrat0)8RB>p>hcP8;6YsuY}#JL<(Q6Zfn!`lc` z*QSR`;Nu>k2}J_KpQW*=z&rxNr|J=C?&onVGDz;1aBNHZ-^cOhB)*1YM-txz98Y5+ z#}vVB+=G(za2LlXB=JufFu`W&#)+Gt& z2@h!&&BG-kf+XI@u@gVJ5*fILV>_m=5e1yNLyCVbB z&*Bbz9eDncbk@kR@K5eHYnW7m!2WG5B@5h{dg50|Dq4Xp2A&iGW}Ek^@abRz1g>hm{;7 zdJT6WLQ@8=Lfnk&5Rhouf&F{;T(yf0>3jnICKj!1gkzBr!mk4CaK*GYm2Q`bZa~o3w5HY=_5n?08>f=y%9U!}qXAgRuA( z>am*pMYJLzN^QDJlj#SX`h?Kk1ff&+S7n0)k^3YgW>3X9ncVeX^`OtrWcPOmxG z$L~q|T0AG9rYYXxlW^$_o*f*6bB^93_+t+upec@S3#8|C@?gdSPQ&MMjOkm$mvW4o z6Eu7|$F?Lsz%euF?l*GmNV?xjIBt$532h)y(o`{YZQ-37rq0*>Njkg7;NIj-WkmhO z7WOlP|Cv2j_PD|S`0-Zui~%>CVP)gM;G81C!2(<~Xoz6`Y+NLvRVnTp$5GFv&iy(3 z(bK*jSNF+Q7L%;3FALYIu0)tERyK*ujU8ge_O+GadS}*SwbBr8;37A|xt7w2Gv%ms zzRKvo9bb9Da)_P?c>sUtKs%=cXX*?H_Plm{qd~*ud+Y~kjL(MKuim|T*8xy)+W==! zqF^oMrmyvd3#pIcCs(n{dHJ!P(g;0RJJ55DhU+xkL>Q?x<04slz5|?wAF2^;9wMFK zxHvupTpF>mySO_%0y~byAvKNxG^~%hg*a}hrRS`godno{M7rtsG}=7^Tz zScAx*QNEa~u%yTr;fvN}5oAnI9z3I9%2pmg{s{Ac{i9^R!L%4`WtSJFBoRqkL z7jVnIkhu7y7Uu*Za((p`RWW(^9U^34(}4W>vz`FZ+0ir$o*~ggSkhfgB}*7Qi$72Y>^x`Bu4^@z z?Bw&8rgrkC_%1=vdwGAgz*~5R*6~i$XtS_mI9{K`ZjN)3IKuIvNqjQL84&K0JwU;CNFKw{Yx8;vaInjx(0QCoJs89IsE}ZjN)3_#uuD zjVB2SPS}vdLmY2R;+HtiP2#sWJ}im<#PQ)t{5Os_CGmf8>_}q4g3*9YAF7|cYI`bf z;ev=51-TD{QD~StWyeivY=gnQ;yY>VXbsb%x1HZ9>PQLi8EblrUZN7K^L=itaC0Me@l-L{v*g>ivhR%D2?5%VM<`OIh{SOyCXw6 zE$QqP-5uE80rlvZfiQv^_`Mzg5%lj$XOkQYVU+Nn4DK^$;)6d1cfw!j?lcTKt<0pY zoM;q9kRjtrsx1CMy2d!jH{>)((?;!>2iK(^YFLc6+>*}n4LERJI`bKD-_7al8^Bas zQw{jCE1K+V&7Eqb8FRsIj)m+QC&IOQ1n|&y6TSnWd7wxL8zgz2$sg(df%*;!gE5Ty&DG(^JF>Nw>fiUW;c^8Oy-ryMGvwFrGw)Js+ zbxux|msnC}>z0?T>?1vXgr56HIumn|SUwOID?PCoCoJYJw3O!ma~@vIRpc(_LeT@t zKDNfSxk)UpL11Ds#AWt~fG}4NuoX$1T)glkKls?Vu3{78S6@0l2NnZkw1n2m2d0*kvqt=gmpC#`hOfT*H2zjL^d3Z@s-zlM+Y#SMg!SJBo6-0}*(BWDp}}67t*=tT&*vqvHb@BV=tz$ z>vfDGle^Aus0K#bp!d5;_W(i;0(?)yfUK?!bC3bIejnfJ(_K8)(iOZuEvmPINP7cS2i?vs)1Pi=`{AK9srb*aVz^zj>Vip*o@69U0R=cF`XU4 zF**_a6P7qew*qdxJ&mpB7|CgP6Jd-ZqEp8_n!Cdhe{l-n);y2{dC)r@H9>4y=OG+1 zL{QO+&na>Y&xnw4`7-z2%iINv1}io}dqe8K2F(MNsOz>gzWqlfra!{84VXrY3k`pV zV^Lyqznxs$(b^%|6KYHFK{}A;j;)hCX8wl@fgqd9ErGU@6Zto@g zYq4L!Bj)ik+b_-R69XPm@lBdvfYl;jA5pA$4#J)Ap9SQdoA8W=sdE$lSi^DZd_?#} zBT#QAjB|JVq25k-R>S|$68NiztxzYD``!YF3~v0<=K!?M{LZE6*u*jB|D=9X^Poq#k1~d5 z$F6<54(zPoe_)yDru!Sf7jx*@zUQ)2_SNG$V1%QjxzPNMh5ejkF`Q?CjRl-MY&4ZO z=i(DTdc;$oCq8@EcHa^44>V;J#TfWS8vBrA5hLM`b!8T2ve^cFvdMrKfIl~2%XRp^ zj{*08!^FNcU>n@i&?%_|_{|B+y)HY>G7N-#cvxk?9$-nsW(=tqaE`&f6gby_D}Wsa zTn(IO2tWV0iRByI>#oC*!2$!J5djnfww!>kB^vO+6($xo;1>9g8E`xBNd}y|9bYOp z;DHnIMH>SijDv8FfzW&s&LkRe3-BcdJo$}mR%5`eXX0C{2Hb@VTxGz$aBt8sO%lUD zPh&S~7?8z#E;g}S4FMJ}G_l(axC2Kn?leS@(T8bMcSi(6kEF3K10MXrlGI9^h@J=G zPLj}`bM4>F{B3&dAq}rP`-yY^ATHJ}Ix3oQX=Ck^ZRP@gGQ)^GCBr5?!&-iYf6DJPkDq&IZ6~i_pBwN%G1MMk8VLE@SFn}X?4hzF zezp)ec;>`>^2Qkn2Ehhn~=26Lk}%ORtR~FW7?25Vrn4+ zj`KqS1_D<@7%?3RFk(`X8!@TKjhJ@0jhOTzMoi0+C0q<%n?hh*r@rI?V#G3c+HyC# z|20d!J2SgRI~Sh7x$qCujEBV4+%?&r%=u$+A2m#VLE`*1*{7ZxcMRcPXBf-VxKaNZ zTo3px?s$f2h3SPEfEj~{6yhQ^ye-3Uhw;Fa!{j_K;W~VYRlR^WO#TS2+lKML#9$g> z+F{CHLi{k}FcUCSFw-wdm$HJFaU&Z{45kdG17;j%3Wkj$Loha&8JNH;@b@ZiH-l+{ z>3}JD4fHW208;_e1><=g<_*vS2>EwnTi?Wu z9f;r@bnlIL>-ZAj&C77mfN|EE6>yw*>HX~0xbE>y^_@Rt`{*rAWryOUi1-9}_!K#y zZB89G!cNB`bc_?kOj(90L%RES;ht;2p8>Bo;Ln%gd4c1}2)+P;)-8I3e+Q;2GvciV zyoiBJBUg9-C$KTWFM;z6?u0`I{1x{fUy6V>d#I}P2nlaDU=y%00rN8dgpK~wfaymR zdVKgr4?E6)y@Zi|(!&`b7)u20HNzJulI~|M!{xxn8iFD)1)sAFpSuiWCzSb&IjjTW z2t$Gmz{VVdZEJ0;-uTCCUwrkr#CF2}cVWoi?|_@}J`HA*0q=mFYVQ2sN$lHr2VkfZ ze*jG3DNQQ4j*FLJ94+DQ&%A}3uVFtPeHDE%&U8Wy1Q#5R`n?z>bRe5DbRq&o@qQ47 zGO!oForyYXckP4yX1GxYei(*oS;x=8PD4}2Ps5%Aa~a~M=Diw*D(%F#szl`Zs1+)W zo>&_?ZoUC80v~0-G;2{m)BRT>^G6!+dr9|%G>svh6~+55I69WrqBi_s(S$sDUs&Op-9{n6orJcGYOt)k=T?u4mbj5ub%r}GRfxmN>| z=%xE79A1V?&_GEK_}((_76*YeX-dL}* z!wvXJVDB6M33j6@ZJQV=H z6=7TP*7?f`z%;USd@?W1Ftz=p$5OJ%TI1v4{=pcpMp~47Q>V#qcJ^ z$1|W|Y7QHW?hYL10bbEM-Dhy5-mhb5K)Cy;CJ@C?LJX+n>`NG(D2ZPJrVQ!+v6Yg7 zo4G8m)vra&O^Mo;iv1fX7%{|8()o4sZG^N5&)JX+152eWGt5w+DpbZ@r- z(*lIr?$4-`EAht1$#|zY@qKms=h?f>kAI*(@Hy6Sm%OLG`g!(|rpCkf>KzZ#JL!e&Ve!vTt0snf%d1X_EOGPF$TOtue*FM*kP#(*7hGWe4hl z8d1klVCoM#E?S0(nHt?s&~QECy8+>jXH3O`xueaW{Yl-nT8h$p-)bpD?*~>(+ojLo zk(Q_@qT|s>1pUj^l5dMnr{$=i3x9)XWNJ+KJ7E^#ps~@eA&Y^eICT-bL zjazE3g1T za}nM#qkfq!T~er5bh}n=9bW`Y<^JsqK7NPy50Ky0Jez9TVqt81Rd*A7Q{1u+w5l-7HH*Tb28f z3=Qg)=#s=!=%L=J_sjb~PTVX@Thh+d%X6_-o6suJGP2B zBm3h=>fhH%+s)tkqZ(Q--Z&e7GU4Ynj04{spP3_V+pgEgDx^>Ku47y&!0T7XxQ-yj zoqm8V{HxF8NFm8KE4bbVh=bb2Hmj~aRN8H}%_gonRJz+_PWw|r+9+)|Z7KMx@QE{V z+~>W(#Fm<2NVvK8uZe4NC47ZUubQ1&R?_~YzOhNVJ~>1N;F*#_*T2XixlYxGNFqrW zLnKp6NOxbU;aw-~I_{+7D7^4@NYY>89fx$LDYG2+O;Ur69+&WKk#<|8RuFnY7(WiD z)A4SPCLTUgy2O;Z7?t^S)=`w$kS~3-LaK|&{KwGG7t3rneExk$LQa3e`Uj`YILvUI!|~0gH{|Jdr^%v(shhm4tNXd7`GLq;HhQdA5{15lXC5Q z_Fa7yC1;4Kms~bx*3}9ZWaRLD=wf*9##_=8cmzSHy+D6zpA?Pj^hc9)QLZc`Y|Q8y zVCrhR|Lq$78S0@0^i^6$b-a2Rrtp-m?rsw}o+OZx)99fdIL{E^I$$vFr2lUNO9os6 zOuSN00Ke$rGrNu(;AV`U_*FVdmbwRGghmg+9BQ^Mrq9nkDVBdpi#hv))FBCL){;bFwDF2gsVpv3fa|8>BWk57O5o8%q z%vBhRjq2KZX)D1{y>$5I!D13F#5NYvWUY@A?>9{S>UH(fMt%{Y;#4lV=%A2f{tPci z!(4PweYjrQW}a(Hyk9RxO^E)mYb3uE{v3B(!Tk>8fhNhZgX->UF!aKotIu2`-JJb3 z$suv}wU8*zAi8c4j8AIBICPpGE(Y4aqLajwLRX(?ko*v={@Nhzr`%n5y>zUk&ndUA z6s>aq$LihJOD7*WhSJfLaW^KIBkA!G z&ERIazry?%j0Km(RpVm1H9u6Zzd_ot?yB#}>_;$9!c4-LaRX!i?dk*M_Bbx#8-@8Z zj2U4!!JO~|^_?4}hvOYzV505k5io9;5}0zBi(%?vz5~+% zb05sFVEzEJ{y1D-2eSj_ESO4|5yZC}?;Bvg3-cqG`(OrP^0vvxvLf8cHUUqk;e9Dg z1I#TjKZ3ar=24honAf(ct~fG0i+~w_hk%3%XomSA%+Fx@VV;9|9VQ3v@8JC*%%?Dm zFxGaN$uOH>6qxNWWiY#84#3PK-W%}#Hq0F`oiM+Ic>?BXm_@k1*^Uf<0Pt5Lz^uV# zc^hDkfN{YT!sH|I9e9`CnYgV<3avFi*{oXcLh}u7z|kEWWO^(g2VjQ4IQ!Qpw%;W^ zvm!vU)u40H%X}7JhA+q0@9XjR`uqG{f$o4kSRL#RHiQPKpF41Z950V6;EK3nF16`V zsX)E&1!;?A*fWB=9e*n2s|UIy$wul>4}7*L&*ydsdxNdlH)Dm)^Ka2ErRcaa8+-u zr_NLFY4A`^nmsL^R!^I!-P7Ue^mKW;Jw2XYPoKw9lu^XG#0r1HHR&4g4tj^Z)nU47 z#eozf!C0_3SQ0D^mIcd$<2ZqS@bZkMP1P)WvjzI(z^JJZ#>Wy zoC;0{b3=|0m9RP75-y3BM#rcaWB9omUKPrSYt%L78h1^&#ysPm3D2Zw%2VJ~ydH1B z8}T-w?pjcLZQjm6S75woqG+;cYN=L4rA*=2Fydm0MafXI6q{mKatf7P#i8UW`AUJJ zC>|xCM3k6PtduCFN|{owpvFSu;fe5Mcse{2M&LQ2suWpJ=kJxa#HS-Ok=e*xWInPG zS&UE$CO(fEYrf7~@1-Ud8HE>zi7R`mJk_2Wk6!(t$8gpOuTFQDyW8F4?sX5khup*N z5%;Kj%uU^8#yv}`)+*eSf>*t}G45`1H^Xb6n_(hyfEaTXyGmT8t}<6!pgk}Y9uCh$ zXQT5`)@0&5x-~%bjzDhM5zY(ehYP|=*b@$f`@;RkWYT5a9a#sHjmwt<8gTMJOv)b zzlmNcxL=}~J9f+(XTuRNyaG?_ZQ=`XRqQ|#- zdcEy|&LFdyxe~e5S>}wmWA0*iiM!NY<}P?!Ik>MQD}nyA7pVR+e{InGvR1%|`i4tJTS(o^rP^)>h# z{Z0O?fGyAy=ta9(f@6i_R1rG;gM<%Jc6mS{#ahl&SggA2UyYET-L z0%yQU-F3p7;hzo6p$jYoIzv=zWs!0!a2u|^!fVtu?rri-`DT3)e+2z;JkS&@2n~dD zz?H@dJBm7sx{A7sdcbi|L2(2aROY}i+k>nR7q$UU`KSHGp~k}b=t7iOAhD;cB3qH2 zGBkuM$S90!$YnP)W2L*wUG1)M+kE5U;b=z@8^hgM@HeM)I=h_R&K_s4v(K65&UY8M z6}QJ7a0}kKj+keiw=7T|s0dUBssh!42CA{V0m(trz?3LIK3gC;c3CI`bGV`muOXMH z<1+7@Z=Un?r8sH=wSl@oeV`%G7-$MK2PO(93#SUF3ug*vIbUBWTr6Z!3x*EvVL@E| z{sI4>f5<=VAMuZ>MSap4YV1BKqY_TGG(M5lDs@V|(x41D2c1LCVdsc*)H&uHcTPAb zom0*nZ?3n)+v)A{c6+OQ)xH{EtuN1??=SExevd!kkN9K$VtV z9f>kW8n4nkPd)}8g|7EE_~(N2!G+*ruqred8i|fZ$D&M0wi zo(eUTMj`|goiO6g{~zXMVkU#0AWAbs7-Dl; zaXq4GE5LwA+UgDVVGgjNz!n}u7Lp-OmFuiPC+u(yxQaa`2vfdH(9nm15FI)~ouO6| zPEcPKYTG!Q_v+$YmX9Q)9G}CN?rK98>y{Ww3AQ^*_FVd3nt!@V?t_PP7r1IcN$ z%~ug94d+C2qmiOmQ86{JBErllvx?}iErHg+bYKP(nBZUP!;eW>XU$`Jr&_UameJ&F zcD8^8w>jIL9nMZ?jL*5LBf2G!A1R0^5p@0J?9o!#TG&=tRa9M6Q&g)y+9%05tjxkY zhc1WG<+afKf9NZfzDSrgS-2h>;tV7K3!kDoIOjmxT^2qN=anpvBa+8UI7}0Kp9quT ziA32D4}*I?6=E=@5jG|Qb%wjcJ>g!68YE~S(3FV0LZMdgkFYu6ufeIf=6&_S2C&&` zY9uWDbMU{@J@4tpL{}Ub4F56z_ zo?>)mRwv?P5lbW^k`>9NKGGz@N8;`Zf2Dsq$l3%U$2A?Er&4!`KsBM-P+e#=QiJ)O z^`&z@mK06@N68d%45f31Ii`#&6UwAQ@)LF80e^G2mohz;&f*TdBc6)jB$u#fg0n%L zW5Z!el&S%;b8#>Og03xO59Ne%A&0X$k-={NU}PvVf)xk+Gb#B%(UpF9N4(S0EG##X`lQl91r(6`ZSAgRd{iImFAW z!Od&I&+Ea_5wJ-lIONR_vo>LGa!-0#mzB?b`Ce^hqQ252ZKQQ!R)qD5j3tGXA%SxO zxq&>$ulS-NFRVUGmIjc{l$CSsyB?Kt;zL*hjs!=8V>KfA1hOFZ z*#i`vgCYznK~FFcoI;mh!6$BgMbn{lDqTvqGKD2qN{6uF3@xJ8Str$PrzaBhP=OsQ zw(@FiRoawx65kYDs)N^%GOUa!qY8CGhev(jC(_|%4ZcQS6JNu&`r3T$z7AifuaWvd z4Ck)#8c@dEW1c>LbwCN0Q{-hUc*z(2EMN&xLF@rmwSsR!lTfB!o{-Lq*R9|gsPI*C z(FL~_^QvxkmirtZ$huZ=ZM+SOog8hslOGf{nH2~|lIvU5^PChYXo@sPS|Y8OsM;eP zk5cS7`Xd98!3c>EtZxM^fAM{U7ch@=iklY z^?qvdnV>yHOH4;$9{S=y;UHFD!-XS-qv-HUBF=KTF(aB4wMFewn(G|Vyl8$rS`byD zo@gKn2935`!3ROE(*ZGn#4Z|Vxt=Pp%2Eis^@jCob+`e`@;0o3>mv1$hDc*17qYWx zq7kLrQ|2vC)idzk=s>sj7=&E)%=a!%CpmZTIFtq%HQAM*E|=MJ;?OlEKTA;mmb4xn^7z z2&=^?QKKi|o$@Na9$!HmilFkqa9}7HfFM&4ZVy|)t2&}x(E<|pY#BU(n9>iH8Ueqr zb7i>OA%6{dvI-&CI5PMk8HWa&J2kJeAHWXSK7& zS?e5jjU=@f@m#E5`#fX5abIvp*Fl8cHH2mjl zl2!nV)EE}2rM@y>xsQgTUiQ(Vv7+%5oeOJ1VhHQu`Waelk`P($jaNV)wN%;xG{R75 zI5ZMsZKCbO!XXEgJoqF zP4;~moNLe=!r711<$> zmwAtZ6=QM05^4+Ese{ZN!b;50a$+GhwqV#dYWli> zFUvm}YKCIcUdZ|~c^6W!^jIteTjgApv|vLbd#%tywqvEu#zfYe{TNA8!ro2?Oy-2W zitPBsFwKb`P3_q49KhNg(w1!{=R=~;RcWjBxiB@qjZ_?tmAtU6t~M9VCH?OB0JIu* zER3jG^L$HU#FD~+_)Tpf1}UN$+!CoOD|s8xjEb+yb1vKsu9@%7@jLu^2Gu|XS9#O~ z%Au4&xH1tgA6gPtwURGX^Wv_2h;^cuV6b8}wCH9YVs?38!kXUKo8is!2B2xkg^<$9 z#hLNYL})TJ#wVo$$sz&FcRWvp){@6@%eC0Scv#`Qw;lLI-R!#@YLdn;F5 z&4(63i=pDkTp{}3*h#9hvR;A7D_3j3DBNWyx z&=|L2gpo*8?y0~!pvqIjm2CA%EjbM&eX`L@By=>S=4|$p8jgCjdj50Lh75i7R67Tx z4RM{niqR=#o@Gqmmc@tO3{;{$o}8lGA|XdIM;7M+qFXg$)$(=Ok||l7)z7--T*IV} z^LIvBEQ^nzdMMx`aVJg2xlr8G)Z_6I%d$gHG3}r6_XNsU$ z5``?Tfzd^fF^DpA&IxSWOu43A1@0NBhV&H|CDMmovH_?A6-aC`=;vFbZPAV>N>wLn z$qp?}owLVP8LSGnL>7x!Qx+dVOsRBeixyQW|-fCL4$AeiRv0AE%R!4;}j(*W5 zNXF|80uO4>|(X1Agqt0 z6ErGKO0LV{%KI8;T!2zq0e8&c8af;AK;?lvEHxH`77WG7P%n038nM18g{D0hvU>$z z#?%zm5?`4U9aQuk>N!-CxxrEB>`S3#UxdzPD;cng@iETJU z;aJ6)buPADDwQgw-bG!S#!W8N>7qetc{LOi6TxJ-0E?;`NIM9ttm0#hdh8rTkDNG7 z{V{yGp0eh(^F_e4w-;;}JFM7wtO&M3q_h><3v&va3tONPSjFekCfHk{d!sQzU1DC} zDy>?@7Y*pjNr`=F@Kbl0_RaX3f}{oL#bP8*vYHSatD(e0F6!_-aJ;B=y3E?7j5!^U zM9Q#zG==$s_**qLKO4M)PdA~H=VF%C*XdOHVr-taaa~`hwjLmUToLXHS3%aDjc7eE zURV>Y#a`YjR*poeI+NW_>vc2}54lRUy{k&F+bPd9?`yTRu){>rj@>^`C=j9*Yz;IU zBnd~bI9|mk^I~VGs|yNt;zBV`E`+T)uAr&))%ogu@djThXGS#76o*T~b>SK0ZUG(7 zQrKA7#OH~8zUpROt2h@5K)k6`nl%j-RdcVi4I0i4jK3~7HR93|gOVWmoj5+NiK@c1 z#Vj&5pbRQQaf8lbBB}W5cJ*LX5%(O#y1Etn*B#zw?4!4$qKB~Fs|wYJTOys9$jhR2 z=+&!P7HY4Y`jTTc?;lfI_VlH!KH!-m{7#a*7F*5YB(QaR$FNV?z&G5Q$)RkukR17T zVP#Ugps&{Kv>K^e%|)9&?Bvn1k=5a763F^&sW&C-68^fN*_nal$;JdGp{mSP4W-)L zYCa_96c2XWNMllfZn%a=UIyub1XZR89OF_2QfU*o4*Kc=r^Us(1fB_Gfr~a`{bJ)a z;-C&~v+>bYiY>Qp>@1IhAqKGA?7~@qY0p*~i3ME9?Z*}#Q$)a#NLdl9vT=3CqEQpSWum216Q6fT>QsCC zq=LXK9na8NPM3|*&jgwAD8j$d_o~xf(sq1kUiv65R%-~>XXCf;VCULHnxh#Halrzd zh6vy+L^0N|w1TA>mPD$0C~`=Y>cHM#x3|aJ=k3SIjUjBE(^mTwMmGrpBx~5PfXLN$ zRy@7{*80V~_f!a_TbvL7Mkx1aSdn6nrfZt4Ne?*;E#xFNbZP9)W2=+-E&eRO&7b4X z&+;6S`#w#P`170L^LWm@|B%)DohunGCgfE#GNu!@SnTXQ)Bw z2S=eBoWy=Iaj`}0BWFPum;=>cjB7nApu4Ju5L1UmQX@_>w8U|cp&b%mSF}6Yi*?fg zloun|&Rx>f&0<8*;xh+waz1pe0c@X@U|m%KPA}92O_)^Muxr|dZTmj1ml?%sizEQ* z`;ZwSC)rqc8s7Z)4b7JYICT@jiJL=8aomO&V2%3y=cV=Qdz60S^-wO4VRvI1I~(&# zhSRRD8I{)Wq4gdu+uE_2K#Pk$>~c?FhkFJh?gBP-@%2VmE+nr4ejuX^ip46Z73*9L z5cpcKV#cK7>UH%&^c#X^ZVZPgrf?c-&b5d&W(Kwza-kn9fP@xM3&*6babkayn8jzI zF3=OphPf1mSTIm67zd44pB8?qn0M0PB6<}PoHNHio-E}SZNm03&Zl) z2A!pY4_4~7Wf-J&d~kO0p*gUuvo3m>deSS>=J@}$yXIqsG4EgSTcAm|V>=*^bJqah zc`xT2wuYZMXy#nD16$=iTvR66n&j$f&TSWPY$t=O!SjOow2@HGr4tgahzZqm*4x52 z@w++urG7pPF?^geVZFEKgz`f9Ardr-vBgpzs=(fQ4R*X5LQSETP@8)EtCD{cje<6e zgATqmNQ=%PoIn}Jp{r@y22yW&RgzU)8j&BLfsm1bF^~g2xEKK?h7mxb2g!F`kkN+F z`=`+J8G3y#wBH2~+9O)uC%Lv3CwQ81dZ!&7p1M1UuA}JgQ=APE^QW$!i>^)#pBB7O zA()FQ)jMC7Hl=pyIUActkN$d>)_ZgNbfnt$s$^MJf(^VHu%Z^Q zp&s?0FG>E*IO)Z?$G@(}x@d#C^JQ!`3vN-u_gqLWu7?7V#BAaS-QWoQ;0VJ|laJ$Y z-ZYLY&SNe_-W=Ji11}4XY$-ja?#uNJ3ITCsW13nlt|$O0`<9?tO7`pIkG+T2~yZZW@lDwxFea3=T$%78M z7_Cu_O}=UH;asS_BiLuC#MVY5jzDxmnjgebqe<+#6hKp73Wi(jYQ#C6PO#ZQY<*0E zy)I&noeQ=a!J)cJcP&=htm{g431!IS2} zkL-~CJYYk$SnrRcE6)dQ*x*>Ifl;iRXQ8gk3g?Dn;j(ZQ7A8&LAX(U*u11N8KQv?Y z*HzeU*isti`)E+_K{j=W-$1oP%Y;sVM@I7? ztab(Z0z=qujes{+V*alNcN~E*I*HBpTnM2NtmXQ!ARU96#)boz3eQ{@B+#MoG-OQ+ z^pknmxr{f6<4KCdHM$NB~C0@tpfksF>&1jNV$UG$Rki0{UQ-g93h8T_n zG!QSrmgqQynb}BgVI|mZH&`q>8YSL_D}~V0Xk_>DIe%C?(J;%;xD;S9O1#j43Ay+f zH%YUNT#hB#uHQR=W}4u#9qHI~jhWq-qaKlv&Q*8!NypGJxdQs2W$s-Qk`kYmve_^R z-`Yd_KKPESRs0qK*QDF=0b$({Z{c2yA9z?ebq?;dh|nM5z6HNd5bgtO#ehzAS8%S1 zyW{(&>Z23Vrp@i^ve_&NL)s(axd5`Rh^I+C2yZ)kHfHmMeyX=HeuyKyEyBGQ;;{aR zXz;TG&AsPvd^=fp#9O#;wCnCA>XmOxn@;H7l+A2ktChvIy0?BX>N=4kk4!`}i?jEF zn5VvuXiPEnAiav!>~~Pa*=@LJ@oSNW@!J^@s6agf-b^<2N_rKjchIXueUx5y^>unx zst4)Sq-MX12*+I6toUoWSmDznw5w;po2g8_l3pe19rUVFAEj5d`Z``Gj7D%9<=67` zMzJ2nbRq6){91iod$R6csyZhTTe*4$y_(f4>19{%pqE8`lwSCyG+rmrwULIrYBe7| zSC45B?sT<<{)j4l;ym5GS#`dL*jm&x@QTwNk~l+>e1z|-F4cY0osy2EtKQDRYTcdg zl%(Ij>5mBi-etP`ba^&Y4%c1v@M8^{JHC>u9z;G)>Z{MD@QNjwHNkrS-tTu(lP7CVUJ%{=`JSYE}GZ)RA7vt=?H_tF;!^9=m$ctaPuH zn9rO&k@i=q&EypzoBaS0p8&I}5vljW$0UsD*wqgKuKpSQqsw*H2p4taZ_?ySVp7D2 zI@6f?^p}!Hz4s$&z50(&C2u-8DXM2qidq%;=vb>Z%t@zNJ76DJtG+xZJ(*4+o7Hb0 zlxD1Coms2aeoCg?yfH+ z*Q&9HWPG*JdMQ3f#LTMcQz=)y;0tNx2BLF4hMB#Fabhv4=-w2rNp1Q<`ir$`1L|d? zdgb4xPprfR7dNUq{}XoNcs+-!XDmpcq!V{5QDgrF?D~DlNNU_7Uua<1v!b)+?ZcF?jT~;g_P}gS4 z=Ysw0&6MNm!^eWJs0TCU3)0JuLm3litdtKiS&2m!DC!xjU=t zR?B}}a~db!1%7RFQkMg9HoXAW67Fuhn!CRNMqL7;-NmD_eTP%yV9$0J?xxkK_i$?7 zdZ>*-ZE{fsy{mp8$!}yffk52##r3>8R8+_L>XmkRmsPl^lXiI~lYH3y+3d0$t8=fOzIhy{hBwG@YpEA~*{eRXLH@b5&jYUENmOi#!O#_!6rapSA+^#kqBOhZGM78f2`3LFbSgP(gR(@Qwes!$;=k(GjX6nRW3glBw z!mft4$$PE6AP+>Xsv`ND)-jOBPgE}{lAp<> zyO!yGjKz_2QPgn&}o!Bn_YV#O8Ou($Xtd>gl zLn_&gbc+bs=nf3z9qMBz%E!g0xEb6snFpL)DO$xGxh+QxjAucVcaSEnhR4iMqqdZ9B z@?yEglu4zcsos4|vSjz$YxiH~tYemKX5NUxi+auu`Nt*m@V)?ZJGJ6vybybg8Cum` zit2=UWXVHQiidGHPM4~|64_<#EJHra5?7YUb*4Aav*i=hi_fNU5I=bbtde;3 z`4w`RdGSKEw?aNPz2;(?H76_Nx2#H4Hk+?f2hNi(fEZ{$UyfPlK^otwo_{__HucH# z<&&-BJ5g7=Rr3XMpS8If%&J-)xIp%&ckQN#<}Z*dj~Ij1a~Y;`XL|0>v3|(ypnt9O z?`HhV=kDs&mGVHkQiH;(t_$VQO&;~gi{vfl?km(&FOogTK^!k@EA$nEb?UD!lE0m4 zzY3yaJ=)c?)JN30OXQX6-BogyRXD4?RdQi^KD;XG->T%tGARTJZ>l#n)OxFMQCD3m zpJE+=ufck?@>2OdEBT(eHc?b9A24yydySgdB?qj%aG1JA{bHAVqjgGnx^B0eYsw_y zF9Y|_I|E6v!J7EZW%4&n>D(!?YLD#SY@U`9C*LN=OlF8hE#H-IG|$=9j8^##^T67~ zWUE|cGBqc1ZaVhOPFUb!3VmA-rBpJBanR+oH_ zdCaAL)+K*wvL_DyRCbt5WeMr$@=6oJ9NvvYtJGh2%XeaBQuYh^BlBoP4csSxV4f~a zY`kAyVKSAfTYKbBP2~ysmk>oz=Gq5je9_yUxavV!HkmAm|JN(qO{UyL=R=^I2Tn|M zKMcAVob~=kPi{{=l6IVVVpKdZ^ zm_Gfa{IC^q*ZoGuwX%KniKeHJsJZQ$#5=#0yG-VpYt_c5$D$3$^!+4L~<}T zP9sdhIIRha@d-KGEPA;)k-WD>CR@rGC2i-}7?U?)0+?pL3YHylcW zwaws8c5*LMP0z}5I?2ru^}-PuN9;#ri!~2Xpu{SV!II82EYnJM^DwcKV<2p*hdn3z)vjSV0}cDj zVfk2U*tdq|?P&EwpOa5SdtUgQd{jCK5tZuG$egM?FXQOrbFw9!FF4hkUXs_UuRbSl zK=Z1fJST5M>mK^Nd_2bQDbLGpqaDDF!hpb zQRkkQEm(Gbfv{M19`}NLJi38;(F-UKdcln^$RR#0T11es7f^y0_3anrB6J3I!-yQE zzHt7Cd?fmUdNc50#8xTAlGRH!N0r_K;k;OVZv=V8kBeTEw;oPBwFfT6t20VhXNhX2 z<|LoswP(I4A7iReZ+KC5o55ordl7Y8qy7#d(}{x)t2aF(ua!$zI}n6A3I!uRI>jB- z&`a`aGkEH$FUc-580n2K$w!(L^%pOpy6x)6FUfv%QgzGAa!4XRL|u+|JLqY^hW5RT z8UPEr9q#D5iI-lMqvfVe>LCvMBk?!LFH)mlOH;>S>_eD=6v}6y^sg}bF;n+~08ODV zPvcn&N)FOnq8tHAO$xVS=))epf?1{ItTr0c$YkKpadxaKu`>I=R_?rg_S&&TX>in2uIY z*<#;%R4d%clbP+_yAvyav}2NzjLpH+%N%PrQv@fdo0{w^Olj&r5gI*t^H%$&_&rE# zev6(7isVsHCbt?XPlJ+$Mi+^ZpLalMPNC3JyETPEqqseVk^@SoMiFh|ii6ah;;9&v z-V_Smy4{~b*$c{03Z)U0krc{3piHDt9s*@5h4LFS^vE+Qq*vf+F@^F6P%@4%mY#0Y zwxv*3pg1`xl(nGbr%<+nqNGrK_)-!p(MX~~it)-i(pdRtgVL>0kS?AoP)1WI^reXT z6iOo~7HIC4n(Pix6paEa9(*F3#k*5T_~9!XN(uHGP^MG-{2r7Ba1M$ZRy?2L)to}H zT2QYklntQFr%>`i3B->!Mic|7GlfF8YR{)ot^mbyjIm_j0>z4a#^* zs01i;$DsX}s^|rf?8h22GzH2;3S|M5`T}DpYdR83p{xZZ<2a+ABSCSbP{N=TABXl| zO8#V!s#84e1f?#8vJaHT6be3}!a7qZ-vwnLNxA&0i|ekgzZCa_84LDf_?ZU<+)Z!A zevmx4if4)P5-710$|NW?DU|;Pr8$Ly&w(=!ZlYR>2Vb>hrI?kLC?QaaouI^d^1Ju! ztG@V}od<@Al+4hn@Kok9QYt~oatn$W3s-}JbL~8optOQgl0xYQr6z^)8&ER9k@5X9 zeNK55Bo8O)_33n7JjY*1vi$6v@rhg+zL{qPU4gwg3^;h zxtAisQNX1v_JfkAQAE_kpp>Ujeg{f#3gtgR8A!&%(E8p=!V(FTM?h)Vp7aFD3!vaGa6@A6 zf>K{BD5CVAg3_WI7lBlHvN7t@L8(olTm(vE3S}QCttpf^ zD4i*k?}IXsLcuR~*tn4rryuCBydB2mp9ZBqg@WJau%;9Wexbu!Qz-bI4(mvvn6N7E zPN8Ij(w9Ps9|qF+smA0BDA+fQlo%+(NlN|x-E~gvVHKC^es&+&zn5ser|A?l7W*bb zEv8VaK*>7Y=;z8fNKGlETR@pgq1*{d@i&dZ?gynOh4LgQon=NpFMu+qQAGdvJt&ql zjD9{@iT3YEA$#$p^(zZuH{=rTJ_l;k1c#m{x1%%=Fc z6_lJkA|4UyN1#+`6wwm*fijvxc>%K!pa;TPgD(JkFRiFrwnF-}wqB7w zNYZU`_`e|;B!e+4@F#r~4z)=!nE+{3nw<#gRAd1p<#su|4>Dbm61^Wq)#=E5a3~3?3So;1a zrQ%T6%A$10fFhG1?RU!>JEZU)Dd#};C{hYZkII?|q)rIN*S{s6xLy`*f^1Oa9Z0Jp zKSDYb8H#V6XWu9L83if6-w@-tj)#(sD>*`=Nb{ni8dE`4yNS zO3g2*3D(Qull7l0=y_Dq1c>KxDGo@(6H-ovv_2)}e8`@-gqAKTTeQ4XOKOxgMX1SC zJ^B#SxN^aS&=V~#Qe`ys1HSJ6!{y{ ztH_~8;YIp0vg^r^^;@O5A>E41h4efpYZgEvdCyC_1k}|mWd)@E1t}GfZbfP#SudJ3 zL0?&D(X!=N)VySheka(7ns!AtLGmIkvgjpHl_GCK`W4v)$$eS2`W8~DNJ2UmZLi3h z6iB5a;~*Pe#rfw4t^?Hhs+9QB=j!Z$DqVpWwRgjjuc5a22+p3=qL@cU8$J_=~il7kb&D}&!<5a)R5r% z!=H;lId{mSWsqt`)t)eFNCrMpk~LQB?AzELsa`QKS}9-6(4w(&cGGjMMidq@Bc=Pp?9XH_28VV=)T{RpeSXtEczbOLt@nYrq?vdni1nLRTViJGJtR1@==@$Nx{cEvgAM_{R*7}YT71? zf{^vkNx1@&(=4SD(*L5AjgZopq_jYa@X=2^{2oY2naoxzCo|hKDh4(N!qgjvwo1SqE9LLrN6VrpV)Zt9DuQ zGQ{zolwFYNJEeR9>Dh^gu`w846P~kr*(vj~JB=daO#g(UTtyPb<4k`jYf>P&d!&qo z6euzsQcPk@#yOCrPw-|0@9V{&%unSuu7CvhNx2o$MPh8?y^wyT<_Sp47jlDIA!T1m zc^6WpOGGnQ1D}Ixl%ifppCW@MV5`599UTfuQRHYyo+1+=r6k7QJ0JyL>-|K`w_Z*I zWgRfOHi|BVR4cLylKqXWxd{?fV@S0Ps)gi znwHrkWfG)KkrN;p-^-daAW1(+@j?YMOpAYjk-LlKiWbU67zD5xqwH98_;oOb$Xi6!{x6{Wr5CeR$u>#oE5O=*xuAFdg*Suxiz!KyfH=+0?^L(K|XHH91E}SpuoW zhc@yRbS0$fNGVZB8Gh1*Yqmhv9~~Ec{OzFraRv?2$I?0>_2c73kS`$ZiX4QrWXV?l zKo(Attwv13M4K#SETnM?x5D_-K%GQ`W5dsaT%o=E-^@(BG*Ft z6}cUfGhMX8M_PeOh>YQzAWe$Argx;sPDt5Ixj~;o3N2E8&}$SKfK*szP2}*&nE5VA zS&$kM<8;^|Jxa|yNS{)3E~MHm`w2p7yq?;hyPnU8x z#Iit2BP96@LyS#)1L7euj^bC4=Cfq0Um$h)venQjIRATyjAqA9!42eW+3YMxp(3S_ z8WLmp>mV&k%{`EX=g7exhIEk_V>Rm^#N2eQ9PDirbu01%q)(9{Q*rk$kgX;`iWE5k zvQ3fmAQk7yR;7?g`T3G=099TfdwJW6$1)G$}QoLy|6(J@-ON zBMKcl4cDt87D&!Tve{XXHboXg>MxcxDZ(JaVzMJ|O5D6$%o6PB%R zhLkDN07+deYu1}V`+U;h|W=4w#Ja#^$v(yz#Rh^5r18Khy&IRA2AiB=gG{q9|lnidke%=A_( zWX~T$vSSio|MY;?D@8-5<4h|u8j`q5b~FRhuE<c~ zm9pr5$aWIr;6DZFS8CpXR9+=p?S<4S@*|`WKM~3Yf5;5Xvuh2Z^-ro!%C&GDq_jdd zn+s`E``P1q)U-&AW7@Yj`UVFkV-{1LaG#b z1!B25-bx?;ZBWZCae{O~GODHg0LfHj(DB%4MUI4Y-YQ#7fi&JO#SUq$VZr#Pfco!b z!gPT&-DQX|^+J&CB*sOx3gWq2wz?jYyI#uukoEUU*$TdvS-d_Z1B{BBC7?M;c zTdjr^lNhaTgXBLfYaWI4D)M{;)cv?DdIQqbAY~6E?@1}&LMon?(yzDLWQZ~RU@J}; ziLudX5IufO-+QBGk`?EFJ&{r5MA7suvS=P8hs3BU(7S#{)+~agZ#BfISpjiulQnB0 zwIoK({Z_1hQlFE}o(3zRBu3YLkPbzL*)U^Xl>Ll`L~34= zGzGLrkrNq^yS2zbfTcNMEazjgX4S+mbecs&`0v1Jd%ol%0^~ z52btw>HJvA_mGCqr2Gv@`drGPcAUg7Ba+5|68B4)0jcVik`1ZsmvRnd`tODq)2c{s zrAR4cKZ$XIA`r`;%KGPC(3(GG*H1u-2c*0J$^To*+mJp*_UZj#Rl!&JFOaE2qzrT5 zemV@la==BSL6snu$&mixQci%hA8LrPuV+Du50esxSW;!Ht8~HdKyc6ck5ZQ$3E}n6 ziZdg&_kZ z#$YQTE#qZJ>mY?$QXYb&Pm%I0WWiJ^??N_Ai;21Z`5M$cT^9WUDVZTXb!OVmt<2Pb>_*swz^JUiyAe|&eKbJ!K zm73L%sd;9r*!b%}y>Y_9(e8)rJJl@G7%Q?JH1#!E^Z}$=kuM=NughkA z5XT!*hMj<}NsNO(1yb;q?0GgM>AzAgjDT7cDud*<$)a_TzPIII4?uc$$ePWNj&><; zL3-bnqJN-N{Z1)Aoq+S-q0j(|k~(D3@Ds88QX~UXrpU37-1lWGC!|%897y6WS#$b{ zSpO6$bPw4lkfQyj zELpXvBvghYbifo`PTE1#^eU2&jf?YJS(5?j?2%%Hq(;7%lnu%}C}k03p(58ox)gZ; zvf(G$>S;)eBJV&7`(({Wkn(=q|M@D{Kg_f6cPYO@>i#gqxL}6O!Vdo_MgR4kd=g{k z9|x%&ko}yf*WmX6d8{)ar9<(fzDxm7Q<5yY7BY31l-nWGhZ|ySP#vV4#2Ee+Nc{*| zvkOw2Ec^Kjk})z-u7C93C+Y#|8)S4n0WuxG3(uQ41G4=vDJMfpQly0RR)MGe1Mt%z)I97)NL>By+4@ z6ERmimw@ud$&Rju3}niVqL7yHvSur!ae}Pb30Xf;N)MzcOSbw8QiI?4#Bnu$7$-dk zH-{Or=r~C4@v@`2kUFcB^C1gtQWit1J+hx`AowV2aS|VZ)OZcS`d|OE4YVLzcC-Uh zJ4?zwNa<`Tzd?F(q$JNlKXavILP`~x4OwqWMAQFV1nM~1Xl9(DHIS)!Qtp6kI8Dl9 zklNFwJP+y5H^kVnH+4B%$}ULCIi^JPA0M;f#q)Hc!CFl4a;YgU`X=r}vx;-&V1Gll z7f2a57e^Amq|4XKOi1|!QgR`Ag>ljM{}RyD3k@2ij}`lMx0ZmE8&Ojgj5kBgosgoi zl&AE57E9RysZ``^$i8B(!T5iHJWH4m4loZ-_y0(l0`Vv^3(`O`D7MjOL2~d5$-MVV zAbUuRnhHpHiKxM6Ux8{?2-2Q{G_91f15&k0%2$x=GAVtK9z~AI#Y>TLS#u(!_ev>| zGeL>hNGgJKMx?BQG~OWPCP>RoQZ_)Q-z?>6NcpW&UV;qNNcnFBRC}kS{g9MeDTmBQ z*NRMpjgzdos9KQ-$Sx!Jc?5B`{~^EOvr-ArObu2JRv0?lCw#QAJWw%Wff%q zRw-*Ck?vF6CxO_McLskfs4C z+aNiEhKO19uHMgJe9SOUwC_Q+hsdHsPQ~{wh8tp>#ls=ZB!gpjy>Sq2gly%66ew~k zq<*BVxd5{LFbJ=IN5-n1`fn?aE`~}H%7=rb`{wMi#+^c8Fq6}T; zNO3{>=1VyPGH`~J3n9&C8Di|lQi%Sc+}{4ULXH?Q1A-bY$v2gk#0zPxmgoiqTwC>?ki2v zH}QAWEJOkbAL>zO;F7*Z$}~vRwJaFl3(Af#;bMVgTqmUv(xS*^5UpC)tc4WaCgmPT z;$2dnhIG^liD+%0vik&S-{>77lZ5x03s)GkQdv$7@^ z((=6QCvpKO*eq!|r0OLp`tRg7y)2~`QunHqdPv@ODbGO`zAfcFNY#f@zKMYHKbG`2 zr0EMOhntwT|hA`e3bev&oK zki0%AALy-qlkyW}LBEvY`MAXm7-F2V(fOGFEkwpSv!JN!Z&`E_r2HS*kq=UrFjUNs zD7or;x}tg$6*K!(~zC*?8WMkm7;#jg)dBBppdNJYg?~l&4C$ z5wiU#DR)D1BS%ZB2Nh*Xc>}U=qLi;7by-q+A>EUuj5r4~f0~prkpAgXtdOa;h@|Pn2>yq;r;(2OzaMQl5vD%pWS>|9KPCe2Ogk5VGJ@DPKW4 zPM7i%r1b(rjA=FaT+IASWK9|*>ryEbAwh^(|F}UVep!?UDGW+EAF_S1l%;N-3W}+HREcD%YN64L#xl$#;@zmxI=MEgU^ ztB|_HL-Y+Y*FW!pQisGyGwuXmLKZ602gw;GYlfYN8<8TJ5YI?iGXt_dMM^egPo^QX z{y81A53@%f+8Evk$;4k-mO`=*k#aqxX1J8wAlpVrc^I<(P$|zry3ksX9Q0|ek z=sieGv@D?IV)mOg*#AQ>z;j6uJ|O_op~xgi2EOBEHq$iyvmmk* zIUSN47k#i`D4=b_JLuf%V$^KIThDQcXkk!4-t&l)b`8XWw+~qEf)pvz04Y(V1yZ5N z4oH(CpF!&IGLL(Xe6JTNG^h~Qf+Axf-FSV(&1OKR;$;NOT)pNFDVIQ+uq5T0Wsn>! zt}T!}Mdm@870JI4=YNkvi&3QACOf)H z@91_Zw?c|*q&y1QqsYsUsmk&A7*eRnFBf9|_bS65dJ%@l(uwzDEF@DA2P7X06|T7m zQmV*GNP{A4Ao1fb_g6mNG~y?)xlNkX}VLLUM5D&F7Fp{rofi0!qi0vy5Db z!>GtOh<*gP#tm7ImMrJ%HHxf;^eb{FBz+;yKR0UvdGH@gEBL!3WFn;3hx5;a%>||SW!Gmy_N4U=6gs|P|9HJRreAphe7sVB_#`@|H1Pe{g`361>^PK zj*q@|WolT@(w%u#>V$;jqi0{0I&pCB_(P(;$!SMNYpzO7id2s`mI``vO>?2MPDSQG z3MR;!vvrv$B>>4n_9L$VSL!v2R6>dssfBEaDD*g}Ns;Fv`xV&%=~rYgWcnmI{P&Pt zMgE4YSLBFAI3trHX0w$mRxMvyhN(4K?pY>^Qm0Ef7Luok6H*bE(p6BBfHTv~kt#P(lWBhhiP|L_OMepZg^izJ9JUd~C z9)-lW6f8a?TB|}UQM6x?wUG2$+3X%jy(0Qjw@r~o)a2eHTfGh`R%9n+R8ySH`BE5- zMp7?JPBgb7p>ME}_I+D)N=53pL%Ptc^+_$On+R<+7izAO$O={06B~ zWSAe*r%|D!{J7Vzl+7kW9Evz0YgWmcQz82l2|>EbWK9_)Wwn&+Ad!WaOS%J89=~a8 z`13eKtCTgbLpH>vV5ZIPM#=h{WX(sY$yz6+8&Z0+DS9gpS~W)Egnwy&qi8^pQ31S6 zeb8*C*XV13^$!^`NC(XUsfo%_uektcb1{7HYnYuxF;aUR9iWixeQ_I=Ws_Rq# zb6CH5p(W%FLD$j4D^k-E{)iq`iA(A#wCsF@E~zT~qoiJL^9D%8<5Hf4R3c)TpARoW zik^`B^Em?-oz3Y(@3l&X&Qnvauf@U6t^mWjBlEJY<)(`1bBoQm4HBZS6 zIs($yC?x}u^0XXmI%KLMvxB&#f<(q(1$xmI*--#8pvX0P*IQ-HEs(5jaBAnmQP*=$I|b}6SqlHQd4Tm;E(lQoMWmUbzZLwX|b zNxBtOx=VIcr+2hLUL0E>SsSIi4yk)YN(UshUdnfnPDK*KSkTnt{Ofye?EPfWz~fT# zAbAZ^&VdvtvJBGEC~IzpWIrwCNr=`YWd|g;3Fn`O-=}xdDl!(5 z@rkTC9@6%ilpM(ZAEcZM$+X~IQ67FNC>z9b3nbAhWizDBCS?~S*)HW5NQNR~i}g3B zWQ`tr+o%hUKOOwbLCs3h{g4ht-hu2_$~==^KiU7&QA z>}V^bL6Hw2MQ&L$=s&1YWCmoaN7kGVnXbr{5Qib=yTbQ^a+IPikTr_zgw!h111UH` z4wiHoPLLv#Af1Yw4%tIO?+UL3?Nf^GgX~x21<3Rh&R^&8@XO`JdZ2Xm=oRdt_$B#lv z6?qv_p-2~Gy&``>@@C6^j$DSpa-?`61uXjb7lR6!AlE_a6ls7s=E#oT*JZAhgylH* zKgz3IUr1#4N=Zjeu@Hu!mnEqJob0JVH|G3e* zp+|qt7#oMV2I+fXgpjE#FuSHose?35kuq*29`f_0G(mbIlO^S?!sJ$pK7<67j<8hv z*I>Uw97@g2tFeiQx95%Sh72@IIpcEF{4cg9Huvnj%prrBXIQYHt}XYJP<@?~^?Tuf%2ZRqTxnbNCNHDSKqmBD`hQJ}yag^gN{a zfUKE*HCCm{@Fzm{d?st2(PgsiCuI%pSzjNbf2-3Rz7kaZYO)yY6-W&}dxC4UYtXDk ziVdRf{ai@VGI>1C)@7-bMUX1JM!%@_r>Lea1NAFiKMcvkHuCTZ*XsKr&*Dl*?GaM8 zKyn|Kn>Yl6c$6cQ2FZ*G{$dQDg}*g@CkN|o^f8drgfT{(*nL;Amzty0!vT0JOR zT>vRmWCNtrIIiYH?Q>Age%Vp}b-3_ulBc6e7iB;0g|t5^_kI_oS*iH~lJ|?8jK^G$ ze)z|av>q+kY$|g2IDt5}6 z&m*7)Ar{Y^AyTL>cfq=%#^`gk6@xH zYoxa!b!W&!eIj1I*Uy&nEoA>qa;)1P#U{?irwb+E!WfMI@a-0?04*0wSp{ibBb)7d z9EbW^DV`@V8!nWseu8u;r!3=141bcWc^6W!0G}?z!yoY!Zo^~cfqfaGKDpn8bbTf} zI;0UtXuNE7F{H*WnS@k-kYeJG-{~Yr)4#Baq*_Dv~*W}cD6H@%Tlp{9bmBdWh zsuYryCFM%!lNRBf;^^A(V7 z%5&ihNFP1~kmtvQSFoyAB={=c;@KsS*-A*+$8pieuK-mkgB^r4TrD?f>1%kFFEF=S zKV~mM3a^wk$G(9BJ3-c@youG-*;2|OU1B#dez#6X$&Qx2g&F&klrBi+Fe&%`7hNmI z?5j4+>Q%BPaR(-&^6VG|>5vl9Cg`LzJNX?v7$(ZCzOfxMf1JGSY=#W1mVt0L{P5S`SbF%Cx>oYtjuaKMA@Htx9Wz9wVaLhciX51He zC@VFsU*P_maiT1`_e*qik|~Q8;d}b4me?BcNnU)JUHcWLUV&MIVYI~k*dTmHCD-hN zWF9SL+t;{%DB?bV^-tLtSv2+=97cS!C3lqEjrlQFN-d;lnv{v(;zhVc$}5nj@lx`> z!|50&<$Z`F(j#Z}r2pYs7%hu_gQRCj+0lc0++->B-{UeEZTMuuZ@&P&YO?|Wuu4xgzLp7TkVEq&yn)L&-gBjL&~*%xarLu zCf7fOzu-_iWzqa!anOdySv~PL+#BZ0nm-_I^Q3&+k0;)ADLa41y&+G^i+^BYck(c~ z{(1RN9HN=B==lNc{n=7V{zBL1NJ;)1kCSty+zFYk$c%rm{F)?dUV?PyLva0RgYoI) z%Y$M3t@Tqm&u3#A2D9ZwH6bBEYr0By)HWzV>zXBNHVjVC5?9EYF+&nG&mQ>>$Qh8S zu~r!0SpS?bG(k(=B8y5P1AVfic1Ye}Dc2p6pl!Qfo}er6mhGOSrMv@4{8_fL55x7f zDK?h5{_%lIHp}7ffHW(Mi-#cj^|GVn;n*O2tSMiv*^mrnqo0Oscuck$G6EZPxpB;B z{c{>TTs6; z*up~-v;}5StfmdpsC48xEJ3SQ_Vo$KHs#EpivO1>*jkc3e<_q(N>1WCVF zc6}A3NomyrslHp*B;Z>E`|gu+5+vsy7L0!bs1~0U%#-N9kfaS!6VWCenV@Cu7o_AU|)C24XTA~TPtfmhx92onJj$6tLne9l@GGvSt;uwP09^^CnVB2Ad3>l z;r?}{lzEW4-BMOU+S{dUgH$=BXqgFkStG>_N$--ou^Q4B!ADv1)O#9KkSe7gl3yvC z%^Qzfb&jmL8`6D(l>LzM>!eJXfZ>NpSq{lRQF;GoKgiN2i_#}z&*n+F08*4HH^`BN zhpAVd*U%&!YDFTGF=6-0ezrim(vEA3|!C7j&0T!xLwe^8U|ee2;X2^6uAHkp1{Tay~)M<8XqMN6y2L4CM{F-y!J_ z$X2taLpIAJv<_l97oy+)jRnX-Q0pnOC^7?wQIW|rvGhov2U~JHE@`FaX-LU% zc|W}dKf96|+f|Hj48IxVIYAEpsuhouVX|3+4TB{~xyO#1H-6iVkI*Cs_BH-^#olQT zLaLP4*BMSs*oIgubN#abRBgT~qPIfMBrcC9WY>Q}Qk3UHt_x3rcV*2=NS?AJc^9%L zQEs#!KZTO}wK0ci{ZkKW&zF1O11TLUCDVf=^q3s%8OWO7rF;e1uFQ`m-UMy>qq62V zNDZc5?3n52A0Nti0v?n{%2_=cKhRNdgxu;IAjN;lj+!Bfk4y1pV>guV7vBNdro0)c z|Air;on@RDW5VAiE(8R!TWy9Ds}H|1jZG%3sRllz@Q zF#cI5V_(md`+5r`S9zb}J4ni@vgW~4&`Oar@^F(mP1bw`*>|ISa*jF`cMJJ8Rz$l4 zRG0A$-Ia$oO;)Lkm&7f9oiQk-WbXl=@+ctr%XUHP8nMo78xJ>1=pvPH6^ z&(6XPq)5uwXX8ns^mD{HxWy`SC;;i+B3qqzZUmRmR!OH6U|K0MwFUgwqkp0Tf6Ldf#>X}aQW5y~=#PcEL{QYWNoc{}8#jKp^iV#*iOXXlM zLHY~i24#hDO|6zSrI7wesiY=Q#nn>>T2HW!_>O{1z$Ikp6NhdmybFrHn5|&ugTV zLIyrne*WhHkmo5`^gg8eBYAZkvjoHMmJ)(Y{Y=V}kkZek{0J%hREqsScm(fGmhb;u z0~$~!$jHlZs5@n|iy`^SMO6o>n<;C4ggBI+{~2F`OHnzl%ONRGjF9jDw17&KA13(+ zQuv^GJn$P@C81?__e)C=&-*z`ai|xXHJBdSvycJhuJ<)$+eEpE6PMw^y%wV1|BVI6 zxgg8OvZx-iO}Sq8L)I(zhSAIM2v+v>T!{KpG6BfI4RSI*0|`cT!T84T`$3I9V6ekW8Z^+70h2%#W94t5`x)?H`{4_-|q{kHf{A=23P{|m%XKj$;Yvu62LsCDKn^=4~-X$3> zTWy8(D)+b^$khF^)!Zxaocz+1*!XvYs+FQ|AfB(xB7GBGS zr(TJhZb?FvZ8?^3>nqz*{A_*!h@p>ogaA!Xl7`4!Uto)kBpx6OwM ziD+v;Nrwy4Ueh1SN=GRbSTuIXnzJFz`=mS!sk>ClKal)|QWmboCi<&5DrJ(H}NO=j;mm~)};&$AI&y*cq4C$C6 zr5;j$u9SVcd@Or*)?i5z*(2$8P|;M`Y!9UDcqyaqz)J{a4ljXZt&}wzA^FOk@gSse zv8?gliRa`z3d4WX&~F^6$bTWtZHIR><~4UB3ufpv<8@NOiVsWxWR%c~!Dp z|EvIYCk{-iw2e!>#vW^m8es@MS4mAVn`p`3F)H6O3;(JL|p#?Ixw8I*6rJ zHv1W}{uL>6?#D4x>WtyPg2G|fcxOz zQpzCJ$~R-*fMhEDWITvTH$tAEwU9LyqaRxTw1KLVWs&6}ocq(|VC9gc1yWie+Xu^5 z$#uAWohoZCf^1Xd0Z8|MsFi;HHSI@`MH$TXF!uE{+0m7dyj@b7^qM>=e?qcS4cO_k{guuB&O$uQX*?W#X(8> z$J+PWr2GvjQQm6HdkQmOd2{7XNT%|W?mHp{s5#vTVZDu};=}xe4o^x})VmD`~Jd68(POj|wif8eh9wOy+NW;6bqcP9n zMbGNoHxRjS5k!Eo*Xxi{*+%A^MqI)2fXG_@$={iTs*cWhK z_sLCM45?T8c^xvfShgDTB4$h^UvBkM(0;!xdK6L~kn%UAO&RP|Jjn)>Lmh=w7Rgq- zAyvvdpEFu;&plUJ|J(#>Qx*;#kPS++$#}G`xj=4o1*B-ZlxHBlWpeoMAeC*hCIe5+ z`YV<7&v~Hkt7WrWA-P9O*$&yZTOR7kui^+DA#1LNY*3EJyO3h#m}RtLNm8h+f673W zx5|#5hEyx}{9|5&l*s)khLkJE>{&>`M{*O3U&ryNkv-Qz`t)~6^!vZD0QnfybEGUf z;SFr#Mky;Hc@0vYf|UL)7Z<-mDik?oJI-{Oyu+Rg>E5CX#y5s90&R$qE{hf+D5orJ z&wfxgTZ)?LFU#TUAjL09`2dpmij+g%#9*&UITMokMoi50&pn{*4q5aWBz>_Qe!^RL zpWsbdvl7z0UCQf_iZ&^u{)@-kPlsY(&0W0^Qt^UOL+hVcK^Eml4B8=e%6mI|Aj$Ff zf5JT2R#>+0mPj!rx@G5pQF9 z4wg0NLXs1u+y`lxEae-BW2lswJMavQzeN=r|3py1>vFIPNcIjXZ$RqalQQ%jJi2yC zITccyBnPX3G<_j!c0qz)#YG?gsCI1ik+NA4r1v-}n<3kelF|>U{WIPX`kDPMW=yw~ z8z3cPWUKcetvy_W@khOfOGr7>;~+UdauI$l1Cl>hcC-o7n=a)yNM*llb;3?ODMreg zwU7Z>gQ#y%`4O_{@D7M_7B7WVy)SDngS79FQVz*e)=@V?T1U&8osfQIHzMip<67Jz zFPQToEsE4aO0JW8whPj|PD;uyya6*q4i<*2nQ6+RMZRDVca);|RkmnRXhm5hY|~oS znnn7x@G_ctG6uzNOUA9~@DFf2Y_euCq~tj{{OgdEZE`o}bz*+pC~MY2imRo(+KKf~ z#WqQaA7aV8Rm!Q5(#=xVK^iwnc^i@vm2${OSdKm*Wj>_sSt->Y;r{P7C~Ddw zi$?9n1}SnbWWoKi<_<{1!%}uaJX>YY>3eWmAC)y1Ln4;PBs~b){*i3<2_#WzHuhs& z_n*p|OCZTzQZ_(3K9lkZr09JqNA1Nm6;Ya<4{B88Zb+RnSSKVy>3Y;BIMc7ot}lZ0 zDe^F+-+1KE1Mgc%_4bHtX6?d3Q}%utq_|VoY=-nH(hJG|P}W#K#qroJWf`Ptvy>)? zr%74={0!<-+^e6FCukLkcw+FS2GeBsWRcybNhROv=!&F<~=eVy=JkL8W75(S4B2`BJ`y zWFIbN<^eol#z`rM^eV01faFb-H6y>lGH#L~wEnpOl$2){Ez&>FQMoZMTC{4lA7^^s zlkzsa5v_{9mV4g~Y5G;l@!eSGH%qw>l5!{Yqo03Gdkj>#&FmV(m;HPA#W8W*Yu4zk zwxCt|@3QNDNYyZNH}smEZ!w4F%2o#;p3}^l*!b4(uth$T^k&yUQbSVSfq1TvGWvh0 zDUcF^6#AuXfuv8B@+YLTFfRJ|C--3KJv~m48c4~{Qa*;%Dy!J>-{TfLLe?ySRHjOK z29oNMG5|^PuweX?f53FOm`T&_fb2_?vKP|em6G)%)<`ExSq4d6DCGr6-bwNV^+K9w z35jS^dU1z;TfSUc3vnpl3-%qv75u!c$@vL0UukvN&sgE_kTv@tMaPK2v^jlv6HgAW zMan^q*|O*@NQ$!6e?bN^WX(Ch;2yV0%0@`F()B?|rtA~4#c@1 z^c!xC*U6$~ko+g4?1tn%DdnVobbY;)Cm}(lX4LPPo=?e|tA3Awlx7D|RIU`A^#>+n zqipsZq)ury{!i?^QnL?Dfm%4vnXVV{jqYY1BtD8ZuGv+R7Zq^ zck)MNjNCF(hLlWd59+D6T@sNb|ARalq&B8f6Mvcv?=kQ>%@;2IR9K=IK z_J8la&A~xDRO93z9uik9h)4G9<{TcX@x*d?^qaMLh-_XC;-MlR2l0^jIf#cOz`xE< z5;TH%M9(44;h~zak;8-W&Ef494&pJ2>{brqA+d1~4~dL`h-z^-DcujUY)51YKBv#JhA+d1|Pbd<*KRfLl#6v}nf8Vm5P7dOs z8W#ugkhnRBhs47UY*HSoJU0HdpoWnykw$?TAUsflwa}W=SgM)ZT zoE*eM;^H745;uZ)lm&>_!#O-uDhl*?*#6x1|ARZD22l0?NV?jJ(Y2$No4iDA1V>vu>{p0g+ z5Dyi3If#eE$3Z+Keh%Ux2^c{T3`7Ip8Lt^D19ugY| z@sQXlh$p_Z@jEz&hiaUZ!^7(zzl(!-sL0JhJR}|t;vw;J5D$sZ4B|1DHhw?n@K8;_ z%;AZzfBZoX;-R7t2l0@EIf%!QfQ5s2NUZT79$MN2Y@EYGHTHN8kGcK{I5>!hikuw8 zL*n8f9uhYP@sM~ph=;_>IXomj&f%f;Pr%PXJX93mARdw+2l0@EIEaTN%t1Vc1TCDy zLt^C|9$NndZ5+fyMRpG2A#rdJ4~dh5ct~6v#6#ld93B!6=kU<_C+OuM9xC#25D$r; zgLp^+9K=Hs=6#)A#!jK4~dh5ct~6v z#6#ldARZErBmPsABwo(pA@QY0;z2w_eh%Ux32+b(NsxnhNJ1RMLlSOTVE*!}Ayy0L z@Q_%mH^;wOMP%b39uhkT@sKz;h=;_mREvz&Sir z6Et#oc>QCwg*b?ZiozVkV~E|tK|CZ@4&ouPQ4o*0{;}HaoWnyk4$9$)uYas|CkOFR zk&A{yc&Nq}&*7oKh=(M|K|CZO4&osRa}JLoP7CMo80#Oa)5<|SRAl2I9uhkT z@sKz;h=;_EF8o`V&xzn5*r8ckk~nhhs41-JS0xe;n5{xvASFw#6v}H4&ov4 za1alPmxFjnd>q6>;^!P5k^txM#3W*M1#8qdV63hX2k}s|FbDA%;#1`Qo9wIvj@sKz;h=;_q6>;^!b9k^l$skOVo1ha{ALqVfie)f46%9;3!!h#EBptWdY)KaSjjFxRJx7u7A894&tFAF9-3E_&A7%#Lq!IBmq5$ zN3MUoLC)c!nvkBuqpW|tVGiOkihLFh;vune5D$rsgLp{nu^=9?{_#0DhlgsMu^b+` z{_(juh=+>Y9K=K7;UFFoF9-3E_>3SPUjO*~oWnyk0V9V;tbcq#4&tGr5C`#)ggJ=E z5Wj_kcu1@i#1mit_-&lSLp65F;oK|CZr4&ov4a}W!Z|##8k@x$;UFF&8wc@_ z*g1%Y#KA#4Bu)uIEaTNI1rC+ zA_;L04@tQCqxdgt8DzC^5D$r!gLp`69K=In=O7*u2ZDIy0>ox@at;sGxRAr6tbc4) zHwW=hk%xnLNW2`xL*nBg9umJE#3R-}Hfw-$c&H|*=kUn&kIfq5ARa0Ta}bXqHVX&w zkXSj0hr|{O;^Fm=&1UBu9;$J~a(Kl0$7XYK5Dyi(IEaVj-#;Z|vw1j(hibe=5Knyl zW3%}bLX#InaPv#sRs_~jRJm&hxX7_Or4;A@2h=(M= zK|CZu4&osR#e;Z^^^eUS<{TcQ#$k!)@X-3l=CE=Q4;9%sh=;_^K|CZ54&otkau5%R zi*tBL+?>N>tbc3{4+rs3k(YybNPHZ`L*nNk9+ChD@sI>LhleD@IXuSt$L0ug5RXyh zv~Um)iIszRNNgO$Lt^J39uf!V@Q^q;hsRj|*qkm7;-Mlp2l0@2IEaVD%RxLOJ`Um` z@pBFjNq}>BAXxv{oIwuap`s86@sNZ$h{q6@g@brVtQ^EcV&fbh5zH^@OeR21SM9+EHz@fhN>a1alPH5SAp);~TQ=kQRC zJ(j~G*FQc72k}smlY@9jTpYwh;^rV85|0tY!|NZPmveZi#%JX4i1m-p&p|v?6yP8p zk{}21kc2phha^lvJn{99-@-XOMvdP}IXt}n@!L3vhl=bR#6#lXARZDY2l0@&%pe|f z{o{9Y4iD9M%p9Kh`p56(ARa36aS#uQpM!Wv0vyCc5{w7&(E7(8;v62T3CDAI%=J&e z!a+PnQNYSUJR~*_;vunf5D$rigLp`soWn!n;v61Y{{-9|#6v|M4&ov4au5%RkArwf z{2atX65t#jk|5{s(E2A3;vgO>3Ud&TAwdfV@sL>R{HMGg+)A#rjL4~dI|cu3qF#6#lY93B!c=kUZNVhi~= zh=+>&9K=Hs;2<87AP4b~ggA(YB+NNHhJ-Dg!(&J!Y~>&xDzb494~d89K>UY)xtqMBvuaMA+aHdM=n6@Ry*hLP>lmQ zJj(jVZgp}H4;8sMh=;_@K|CZL4&ov4>OnkW{bRTKIERO7{CWsdu0S@A!q96zH zkc2phha}8FJcigTu^=8^|JZF-&f%dNTP%l1tbgn_I|uPlk%NPHNSqwRL*n8f9ul_^ z#1mit*lixp;h`F@k;B95AG^)RK|ECC=O7-E00;4q1UZO@Bt$_x=K9BO3v&*SQDe7I z4o`gjW4Bv5h=+=79K=In=O7*u2M6(xIL#m)TL0MXE{pmT26nsK%;7QDKX$u^gLtST zF9-3E_&A7%#Lq!IB!PGkkFox-+k>3LLp7mz4iBw=?DjAR@fbz;WwUq?4~dn7ct~s< z#6x1|ARZD2=kSm?Ifuts|JWTa4&tFAHwW>McsPiM#LGcEBt8z}A@Oq#4@rP?c#QRr z-4Wy<9x4iP5D!V1gLn*aS~!S@#L7WDBsR|BA+d7~kFox-I~^RvLq$#w;vsQy5D$r) zgLp_h9K=K7P?-{T#$YMF9@tAqjF24@roFcu2w=#AArd!Z|!7R?gwk zC1SC=Y#hWxMRpG2A#rdJ4~dh5ct~6v#6#ld93B!6=kUZNVt08th=+=N9K=K7=O7-E z00;4q1UZO@B*Zy9Bw^0sF(l%)a1f6{ZYu}zkk~kghs4f7JR}Yd;vsQz4iAZob9hK1 zZVuuh@^BCjiI;xg#90^lR9z-`TpYwhMQ#q_A@Oh!4~dt9cu0KJ@enr>Kj-j}1d2QV zwf^x0If#dfLL9_H66PQtL%bFa;vumjh(}p~cx{}+Lp65f@Tlt_uY-elsL07dJR~j- z;vsQ!5D$q*58{#QAFr2lc&Nsw=kO@&AFrQ-c&I4AK|CZu4&osRaS#tlI2Obs);~TA z=kORcK5Hz8N3MT-HV)#UB0C51kT^Jqhs4Q2JR~k7h=sjP;SuW}pO=Gp zsL01bJS2V&;vore5D!U^f_UQVA76-bc&H{!IXt}n@mn~E$0+h!If#eE#z8zJb`Ihp zahO3o=K9C)s37{tyT8P*IqJcnk?xIEaVD%0WCNHV)z;v2zX&iGy=^X#Ep#au5#{xj2Z2#LYoG zBpwdpA@On$4~dU+cu4%5!$a$zK!AgIs3^!mJR~6w;vorh5RV~23kUI#SUHD>#Kt*1 zwEhX&If#df92~?$;^ZJ65*G*YkhnRBhs47>R{H;@}`25+?`okhnO9hs4b} zJTZybLmm#|p&~B_@sRj9h=;__K|CY@4&osRat;qkh;w)hiG;!&#A8s{!a+PFRu1AJ zv2hR&iJgOZNF1EQGc&xTB!uU|m_s$~?|(FHae}WbRKBEaX7tr#(heIM89+$!plH*K zw6T%f@b_etCdM8givo-EI<0Sz{s~E$+91vNH$HehE-2LQN2}Dq@tWn!Vy)K4MXz}r zH7WRN^lWT^rZp-xThBmIXPg!VV*O}2iDuWvzwwdoanZYe1+7ZrG86k&2E{JDl93ip zXpc@BlQuD7Z}e3C%Yo=pd>Qo9K=jTrX%hzhGZ1|aUlWE$Ki2>6=;&W#(xwb@9vaP= zl$IJjVQkv)q0|0CR90fN?oyQF>$0)2K0h2A>+^U0%Yo>aacL8W{)ElQN{GG^OdG5B z8y*+ycOCxMkkRNPCz_xapB?>hT-vyy^B}#6v4cM8V*K4Q#N0=Hk5)m}D{@VARwlL# zO~RS64R|**wgCtAF9)J&oR~J@uz#@U za}c|C7&d)y!c%vQPs7-YC(_sz#@N?Iw?YP04vihkgv#ij6VnzS){dt0FegUDnqI0m z-5b3rD>l?q_@a-|k(D-K=x}UvC?UG<%(StwJ*qQ$EsV~dgsR%1(Z5emJ2|>+LfY`? zbD3#J;!Lic2xwY$(SS{F@Dn-JMB)I15Xbkkti zUKbbrv^-Kk z=aZsMS!tuAV`rr$B~(P;pO&^bwvYQ_`xq@6mzFqG`v)Xi`4BlPyM zX;Vft#D>$aj)LgfC#797RKFu=3DJ~!X=8_uL>B`i^eH$lvMOv(Og4{0Y!*V2;-Vib zeHP}7)NAA{oT`XE3rk|H%$nFNR79VJ+ZCDdH(rr6DWuQBTBU1!7Vc4M^jTP^)Et97 z+8z^g7EXh-E8>LoC^GM#gcNN+p}o<~)9Hwg7-G)3-=<^E;ech%NDIdfWF{TRv(RP3 zq2{^RIfGh`i?=*#CR(B*XC}4GF358o)X*Mp=srGeNKsQQMOm`7nRCe?_vXuch1UB8Y_i4SnKC2dM_{b5G) z!3ik|(cVDXLOhU0Sh305QjEuQHO8ntLXOb@DLGuqcF1}~_Cd5!vSt91r}UGKyG4^C z4oIrfD*qzTK)fiH7K?jiW~|8E#S+wPOO=CFK`Irghcqg(H+q~6ckA}(S^Ad)(N#8M zuQ%A}MAgwLZbj3qH1ianZjUuuu75cYy~~c1lofr+PA91~AzFjSQ^JbqNLSjJqn9oZ z2A9}#()4Z9x7K{p__&Oz5RV_m1GpzDtR*LBB)X#1SB zaBO*&Jj`64Wk(Y-)AR+}1#@E~U5zjLl&zaHXZ;v^{k28mftvop|X=){)kFyJG!G~x&f4z(yu>Gz-i-m~|>&cONiyZ`wg=lthC zubtddQH_p^--v_oyUo@sf?`E$%Hh+Os%M4k{)6mpsVUaGxJZxL~~o2E29 zlptC+bJw4JNSZz*$I6SHq&rol{nQ)~-qECcTNE3D@i1Q2CgpPUAgp#VRzE$iG)xy1Vr_0WW=N5%lT5_jrmgHWE4_iPt51X^QFQT;=r7f z4~2uom-u#j?wz)R!o~BaO@ZLnQTDqQY?ZlUa)FGC=L)2vLsayMQw10*t)s-?1z3&H z9A{vcYc=w`1yW)40@y-JRaZZrO2>#p3ox)N;aZ_Mg{Q*`C)ozr>LenzrkTS;&rCBH z4n`MBy)RPHC;ozhvc}nkoHddQv4y0pF%nxy1IPQ75ZMHPe6wyLt!YDL1T&J=@ z94M3?j(S*XnoC8W@S%{iw^v*(;@NxO!_u*j@q`z0miUEY)FL?61o0_iF33Bc2N`nP z&cQ6>6(C0yV!N9nHZGF7FD#O}&BappOcdnhql>K#^5HS|2Dy&6pD%$!+E8!VutHn_ zG_>DjTdA$0pBPspRctAeD&C+1TX7Vm;z|)Wq-%+_Pi{+)`(!D+)e^p5Y*_-~sZ*{M zo+^$kk-{e~mBI_C=o70@$f!t3R8jHvQrUQ?=n?fzrzQJ2F>x78>9|X7?Grohf)4R3 zmpNPISM)0a-)!Ij-vRx=-LfQXgJE5eBxan3x@nWSH;?bOhlN~IyCOvBDH4-`2 zyTw{SIH=f#BC%oGwN6bak$UE%kh{gdj}zmI%^yk6S~brOmPies6Q>+amWESeLMi&B zkwj~rHHxxQYe_nDsAw*iOVV@TMaSG+1}W5for&TKo>0>*Et3kKz$4^`-Bi3Uj+7xy z{2XBM!dn~s~ z6L~*NGf9V>Nyfz8EMCLoVNE}~R=-5V$BSb@lINAGtEuP{+fk6Rx4f+EGnDA1IG?4g z-fF|~A`j5$w(AryLJrQrL5PZuufUB^9OAbejAq&nj*$+^d=U_r%Q;`H^Gmh6z|O;o zeMIwq;YafpiXqE!pmqS6;dGWfP#YEP!k4W3*k67Z#c@g{_dAiVfMh@5L=xlUjq@5Z z6iCrSPM$G9dUBn}bRdEGP9(1ckUQTAJqqNahExJMR^a4m0Mfe1iEJl1MU2EYOQ*Ah zJ0Pb?5s(e}Co1~H=K-wt+wG|*&V>|5y_XT>-pfUa-U|n1L(FdCGO+axkiIYKd z-1L>V*ay_Uk}^-YHgKnh@~--{!=x0?wI-#AnJZ)h+r2_sbcBjN@g)i};ii>V0?x^@ z6L2oCV+V_eS6cS;TG7-XcCR$khIc|yyZ2f}?Ot(wrSyGv2+>1Jx5;bqjzQR$5Z5Z+ z8H2TPpV)wBq_-`^uJ@pni{cAn31rJCGH_tV?%z{^DB2@D73SE4Wz~e;E~hB8q~{*jveFbfZKMd__-3h#_G(PUCc7 zf8lOIN4z8!hhfPW5e>t}6Hs+#IcM`T%VC5lm>ZkUCsj#B3#sT6btp*D&MH>aiBeAI z_aX=KbUxNGo%g5YI#Mpz;s%P{5p$aOXSJD)y^^F$Ye2i0{*35Mri*Jq&tUol(OFCv zML_2h{RGyPQbge@Kmn%zMs$Sf{Kr7oGyM_KO-$$3f!@LN`$X?$I(s$fcBbDW`XJL; zYe081{VvhRn4a@E=w7DZCi*PXv(|#X#PnN4_Y+%J!|fUCKqrg!>tK2+LsOpsl)?1t zL{DYf{d3TBnBGTpF4LJ&&_zuDj%Y8_8TFv6M0GtxuVW~EJ)lOW_Yl2}Y1fmWTbce1 z(QQnpJ_Wji>F0^=VtRN3=pLq@CHfPlQ+@&Z4AajLeUWJ|b*>@G8sKsAFF_|U{WQ_T znNHdOI-TiF8?bbDub`#-3Q^u@W?Nr^!rX}UyPLT>HlhZ$qnqI1ED_y=9p)Ee*Culd z78{c`b9hpL@I)cQbF&qmC}nukkmB&nkl`tJt48c(7rALd6OOLG$5`mG5?j3CFDtL5 znr8#{&BoPNh=7mcAQ+x|zxx-PJ5%|@*vC7IMen26X6Xiy=Tx>Rt`Yp-HQK(-(scshS@woo0A z4oyx25c<$%HBRXYbTD~k31=4!e*?o79 zpz9;2O9wDY`8v+-^^Z`i8z~`{SpO|0JG0+KAamlJBW_T108G;QI1NaK@{$by36L2I zf!~p!XQk1rGJS2Nrp6PfF(O)PWusO^)gn2CKz3?K*#L}`B$=~qKWf0VO=BVxW5MgM zstHy`{6;`iMz7W7D{+!T{TPAtoOwO~(gY;d_`N`~)$HiUWd)hgq>RSIOMns0)uQ)nQl_#bb)Af#%sQK$0#vV`wZ8uf{V8h!Iu!jzr%>ko94T-bKv6J|JIfgO&1W zl`^_4QdUWadvg>*3^|${9!-Xksk!k8c#1BiIc=-})Tr6GPR!qKn$a0r&0m8p*0!)o zE@8GQ3up;L=~X{Z-$S*Oa4e1{;~d#&Rkg_OecG&1f$Y@;)d4xC zvOB!5^EO{F@QG)*)Ed!WwJJh~AH~XBpVgbQG<7Rb z>yld7lAN_b=rySF!~K%cY~VL4&iva5rditJ`#B(IG!tJ0k}hw{ZExFwq(E+Ll>8Y8 zyl}M9Ngz^xjOo0DoJ?^yAhm1W-vq>^Aub@1czc^e-b?|KuNj?n9Z~?K>zp=}iUB2Q zGfORydQDjrh`t%w4y0S-*#o3Q&BkQVJ|Hfw@kgSivoR*3sA-Ml!(gIMY;c_fQmTnQ za~+S7gzcId+f;ujkXEhMC?K=6mFxr{GP6l9BI{I_cJzD?YGrFJ)Bz;I%fwvE`z}EChpA&gnl<&OfXq^e+_0dEOBsDu jys*>!Akkk_R^bx|pS|Ud4KKHt_;>4@FSiW)_J;oh;}(WG diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index 984046794..f4206d7f1 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -200,6 +200,52 @@ static int stop_frame_rendering(const WCHAR *message) return 0; } +static void report_first_frame_pixels( + const unsigned char *pixels, + unsigned int width, + unsigned int height, + unsigned int stride, + unsigned int byte_length) +{ + WCHAR receipt[256]; + DWORD alpha_pixels; + DWORD colored_pixels; + unsigned int row; + + if (g_first_frame_reported || !pixels || width == 0 || + height == 0 || stride < width * 4u || + height > byte_length / stride) + return; + alpha_pixels = 0; + colored_pixels = 0; + for (row = 0; row < height; row++) { + const unsigned char *source; + unsigned int column; + + source = pixels + row * stride; + for (column = 0; column < width; column++) { + const unsigned char *pixel; + + pixel = source + column * 4u; + if (pixel[3] != 0) + alpha_pixels++; + if (pixel[0] != 0 || pixel[1] != 0 || pixel[2] != 0) + colored_pixels++; + } + } + wsprintfW( + receipt, + L"PocketJS WM6 receipt: Rust pixels alpha=%lu color=%lu " + L"first BGRA=%02lx/%02lx/%02lx/%02lx\r\n", + alpha_pixels, + colored_pixels, + (DWORD)pixels[0], + (DWORD)pixels[1], + (DWORD)pixels[2], + (DWORD)pixels[3]); + OutputDebugString(receipt); +} + static void report_successful_frame( unsigned int width, unsigned int height, @@ -269,6 +315,9 @@ static int render_core_frame(void) touch_count = 1; } width = height = stride = byte_length = 0; + if (!g_first_frame_reported) + OutputDebugString( + L"PocketJS WM6 trace: host frame call begin\r\n"); pixels = g_quickjs_frame( g_quickjs_runtime, frame_buttons, @@ -289,10 +338,18 @@ static int render_core_frame(void) error[0] ? error : "QuickJS/Rust frame returned no pixels"); return stop_frame_rendering(message); } + if (!g_first_frame_reported) + OutputDebugString( + L"PocketJS WM6 trace: host frame call complete\r\n"); + report_first_frame_pixels( + pixels, width, height, stride, byte_length); if (!wm6_framebuffer_copy_argb( pixels, width, height, stride, byte_length)) return stop_frame_rendering( L"Rust framebuffer geometry or byte length is invalid"); + if (!g_first_frame_reported) + OutputDebugString( + L"PocketJS WM6 trace: ARGB32 conversion complete\r\n"); if (!wm6_framebuffer_present()) return stop_frame_rendering( L"DirectDraw could not present the Rust framebuffer"); diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index 429bb1b97..bda376d61 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -199,6 +199,9 @@ int wm6_framebuffer_present(void) return 0; memset(&surface, 0, sizeof(surface)); surface.dwSize = sizeof(surface); + if (!g_surface_reported) + OutputDebugString( + L"PocketJS WM6 trace: DirectDraw primary lock begin\r\n"); status = g_primary->lpVtbl->Lock( g_primary, NULL, &surface, 0, NULL); if (status == DDERR_SURFACELOST) { From acc005e4e1224448e8867f5da049eb46ec72cdb3 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 01:55:33 +0900 Subject: [PATCH 40/53] test(wm6): cover QVGA runtime output --- hosts/wm6/quickjs/README.md | 11 ++++- hosts/wm6/quickjs/test-runtime-native.sh | 5 +- hosts/wm6/quickjs/tests/runtime_smoke.c | 58 ++++++++++++++++++++---- 3 files changed, 63 insertions(+), 11 deletions(-) diff --git a/hosts/wm6/quickjs/README.md b/hosts/wm6/quickjs/README.md index cbfbb0b1f..45174701f 100644 --- a/hosts/wm6/quickjs/README.md +++ b/hosts/wm6/quickjs/README.md @@ -86,10 +86,17 @@ WinCE `SYSTEMTIME`/timezone implementation before shipping a general runtime. `test-runtime-native.sh` compiles the exact WM6 QuickJS bridge against the same Rust core on the development host, evaluates the checked-in Hero bundle, installs its PAK, forwards one wide touch frame, and verifies a non-empty -640×480 ARGB32 framebuffer. This does not replace ARMV4I emulator acceptance, -but it catches JS/HostOps/core integration regressions before deployment: +ARGB32 framebuffer. It defaults to 640×480; optional third and fourth +arguments select the exact viewport so the 320×240 emulator path can be +checked as well. This does not replace ARMV4I emulator acceptance, but it +catches JS/HostOps/core integration regressions before deployment: ```sh WM6_QUICKJS_SOURCE=/path/to/pinned/quickjs-rs \ hosts/wm6/quickjs/test-runtime-native.sh + +WM6_QUICKJS_SOURCE=/path/to/pinned/quickjs-rs \ + hosts/wm6/quickjs/test-runtime-native.sh \ + hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.js \ + hosts/wm6/vs2005/prebuilt/PocketJS.WM6.Demo.pak 320 240 ``` diff --git a/hosts/wm6/quickjs/test-runtime-native.sh b/hosts/wm6/quickjs/test-runtime-native.sh index 6b43f75c1..5488f5767 100755 --- a/hosts/wm6/quickjs/test-runtime-native.sh +++ b/hosts/wm6/quickjs/test-runtime-native.sh @@ -9,6 +9,8 @@ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" repo_root="$(cd "${script_dir}/../../.." && pwd)" bundle="${1:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Demo.js}" pak="${2:-${script_dir}/../vs2005/prebuilt/PocketJS.WM6.Demo.pak}" +viewport_width="${3:-640}" +viewport_height="${4:-480}" work_dir="$(mktemp -d "${TMPDIR:-/tmp}/pocketjs-wm6-native-test.XXXXXX")" trap 'rm -rf "$work_dir"' EXIT @@ -72,4 +74,5 @@ done "${work_dir}/obj/dtoa.o" "${work_dir}/obj/libregexp.o" \ "${work_dir}/obj/libunicode.o" "$core_archive" \ -lgcc_s -lutil -lrt -lpthread -lm -ldl -"${work_dir}/runtime-smoke" "$bundle" "$pak" +"${work_dir}/runtime-smoke" \ + "$bundle" "$pak" "$viewport_width" "$viewport_height" diff --git a/hosts/wm6/quickjs/tests/runtime_smoke.c b/hosts/wm6/quickjs/tests/runtime_smoke.c index aa352c5aa..fd9a63ce3 100644 --- a/hosts/wm6/quickjs/tests/runtime_smoke.c +++ b/hosts/wm6/quickjs/tests/runtime_smoke.c @@ -89,6 +89,21 @@ static uint64_t hash_bytes(const unsigned char *bytes, unsigned int length) return hash; } +static int parse_dimension(const char *text, unsigned int *value) +{ + char *end; + unsigned long parsed; + + if (!text || !text[0]) + return 0; + end = NULL; + parsed = strtoul(text, &end, 10); + if (!end || *end != '\0' || parsed == 0 || parsed > 1024) + return 0; + *value = (unsigned int)parsed; + return 1; +} + static int fail( const char *step, const char *detail, @@ -121,10 +136,24 @@ int main(int argument_count, char **arguments) unsigned int index; unsigned int nonzero_alpha; unsigned int changed_pixels; + unsigned int viewport_width; + unsigned int viewport_height; + unsigned int expected_stride; + unsigned int expected_length; uint64_t hash; - if (argument_count != 3) { - fprintf(stderr, "usage: runtime_smoke BUNDLE PAK\n"); + viewport_width = 640u; + viewport_height = 480u; + if (argument_count != 3 && argument_count != 5) { + fprintf( + stderr, + "usage: runtime_smoke BUNDLE PAK [WIDTH HEIGHT]\n"); + return 2; + } + if (argument_count == 5 && + (!parse_dimension(arguments[3], &viewport_width) || + !parse_dimension(arguments[4], &viewport_height))) { + fprintf(stderr, "viewport must be 1..1024 pixels per axis\n"); return 2; } if (wm6_qjs_abi_version() != WM6_QJS_ABI_VERSION) { @@ -139,8 +168,8 @@ int main(int argument_count, char **arguments) runtime = wm6_qjs_create( 8u * 1024u * 1024u, 256u * 1024u, - 640u, - 480u, + viewport_width, + viewport_height, message, sizeof(message)); if (!runtime) @@ -158,7 +187,9 @@ int main(int argument_count, char **arguments) if (wm6_qjs_drain_jobs(runtime, message, sizeof(message)) < 0) return fail("initial job drain", message, runtime, bundle, pak); - touch = 0x80000000u | (240u << 10) | 320u; + touch = 0x80000000u | + (((viewport_height / 2u) & 0x3ffu) << 10) | + ((viewport_width / 2u) & 0x3ffu); pixels = wm6_qjs_frame( runtime, 0, @@ -172,10 +203,21 @@ int main(int argument_count, char **arguments) sizeof(message)); if (!pixels) return fail("first frame", message, runtime, bundle, pak); - if (width != 640u || height != 480u || stride != 2560u || - byte_length != 1228800u) + expected_stride = viewport_width * 4u; + expected_length = expected_stride * viewport_height; + if (width != viewport_width || height != viewport_height || + stride != expected_stride || byte_length != expected_length) { + snprintf( + message, + sizeof(message), + "expected %ux%u stride=%u bytes=%u ARGB32", + viewport_width, + viewport_height, + expected_stride, + expected_length); return fail( - "frame geometry", "expected 640x480 ARGB32", runtime, bundle, pak); + "frame geometry", message, runtime, bundle, pak); + } nonzero_alpha = 0; changed_pixels = 0; From ee2793cb797b700db2a48b252e3cde26fb5cf13b Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 02:00:20 +0900 Subject: [PATCH 41/53] fix(wm6): defer DirectDraw until first frame --- hosts/wm6/vs2005/README.md | 5 +++++ hosts/wm6/vs2005/src/quickjs_deploy.c | 23 ++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index 731e6f7f9..b939732be 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -87,6 +87,11 @@ JavaScript frame call, pending jobs, Rust tick, software raster, ARGB32 conversion, and DirectDraw primary-surface lock. It also reports the number of non-transparent and colored Rust pixels. If startup stalls, the final trace line identifies the exact stage without adding per-frame logging overhead. +Opening DirectDraw does not by itself mark a frame as presentable: the initial +`WM_PAINT` fills the window through GDI and waits until the first Rust frame +has been copied. Later paint requests finish and release their GDI paint DC +before locking the DirectDraw primary surface, avoiding a Windows CE display +driver deadlock between the two access paths. ## Pocket Vapor Todo controls diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index f4206d7f1..a4c8d8e6f 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -80,6 +80,7 @@ static void ascii_to_wide(WCHAR *output, unsigned int capacity, } static int g_framebuffer_ready; +static int g_frame_available; static HMODULE g_quickjs_module; static wm6_qjs_handle g_quickjs_runtime; static wm6_qjs_frame_fn g_quickjs_frame; @@ -197,6 +198,7 @@ static int stop_frame_rendering(const WCHAR *message) MessageBox(NULL, message, L"PocketJS frame failed", MB_OK); } g_framebuffer_ready = 0; + g_frame_available = 0; return 0; } @@ -347,6 +349,7 @@ static int render_core_frame(void) pixels, width, height, stride, byte_length)) return stop_frame_rendering( L"Rust framebuffer geometry or byte length is invalid"); + g_frame_available = 1; if (!g_first_frame_reported) OutputDebugString( L"PocketJS WM6 trace: ARGB32 conversion complete\r\n"); @@ -365,13 +368,24 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, { PAINTSTRUCT paint; HDC dc = BeginPaint(window, &paint); - if (g_framebuffer_ready && !wm6_framebuffer_present()) - g_framebuffer_ready = 0; - if (!g_framebuffer_ready) + int should_present; + + should_present = + g_framebuffer_ready && g_frame_available; + if (!should_present) FillRect( dc, &paint.rcPaint, (HBRUSH)GetStockObject(BLACK_BRUSH)); EndPaint(window, &paint); + /* + * Never lock the DirectDraw primary surface while a GDI paint DC + * is active. Some Windows CE display drivers serialize those two + * access paths and otherwise deadlock inside DirectDraw::Lock. + */ + if (should_present && !wm6_framebuffer_present()) { + g_framebuffer_ready = 0; + g_frame_available = 0; + } } return 0; case WM_TIMER: @@ -426,6 +440,8 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, case WM_DESTROY: KillTimer(window, 1); wm6_framebuffer_close(); + g_framebuffer_ready = 0; + g_frame_available = 0; if (g_quickjs_destroy && g_quickjs_runtime) g_quickjs_destroy(g_quickjs_runtime); g_quickjs_runtime = NULL; @@ -630,6 +646,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s return 7; } g_framebuffer_ready = 0; + g_frame_available = 0; if (wm6_framebuffer_open( window, viewport_width, viewport_height)) { g_framebuffer_ready = 1; From 1af681b178faa735ed1f707dd62b6d28e4ffa424 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 09:40:11 +0900 Subject: [PATCH 42/53] fix(wm6): blit through a lockable surface --- hosts/wm6/vs2005/README.md | 13 +- hosts/wm6/vs2005/src/quickjs_deploy.c | 4 +- hosts/wm6/vs2005/src/wm6_framebuffer.c | 448 +++++++++++++++++++------ 3 files changed, 354 insertions(+), 111 deletions(-) diff --git a/hosts/wm6/vs2005/README.md b/hosts/wm6/vs2005/README.md index b939732be..4b1d73aed 100644 --- a/hosts/wm6/vs2005/README.md +++ b/hosts/wm6/vs2005/README.md @@ -12,8 +12,10 @@ This solution contains three native Smart Device applications for the HP iPAQ DLL plus the real `apps/hero` bundle (`JSX at 60 FPS.`). That DLL contains the native ARMv4T Rust PocketJS core. QuickJS HostOps call the core's real tree, styles, Taffy layout, animation, texture/font, and software-raster - APIs. Each incremental ARGB32 core frame is converted to RGB565 and - presented through DirectDraw. The host requests the absolute + APIs. Each incremental ARGB32 core frame is converted to RGB565, written to + a lockable DirectDraw offscreen surface, and blitted to the primary surface. + Drivers without a usable DirectDraw path fall back to a 32-bit GDI DIB + backed by the same software framebuffer. The host requests the absolute `DMDO_90` orientation relative to the device's default portrait mode before mounting the bundle and restores the previous mode when it exits. The rotated `SM_CXSCREEN` and `SM_CYSCREEN` values become the PocketJS viewport @@ -84,14 +86,15 @@ rolling measured FPS. Any runtime, framebuffer-copy, or DirectDraw failure also appears in a message box instead of silently leaving a black screen. The first frame additionally emits one-shot `trace` lines around the JavaScript frame call, pending jobs, Rust tick, software raster, ARGB32 -conversion, and DirectDraw primary-surface lock. It also reports the number of +conversion, and DirectDraw offscreen-surface lock. It also reports the number of non-transparent and colored Rust pixels. If startup stalls, the final trace line identifies the exact stage without adding per-frame logging overhead. Opening DirectDraw does not by itself mark a frame as presentable: the initial `WM_PAINT` fills the window through GDI and waits until the first Rust frame has been copied. Later paint requests finish and release their GDI paint DC -before locking the DirectDraw primary surface, avoiding a Windows CE display -driver deadlock between the two access paths. +before presenting. Windows CE drivers that reject direct primary-surface +locking are handled through offscreen-surface Blt, with `StretchDIBits` as a +last-resort presenter. ## Pocket Vapor Todo controls diff --git a/hosts/wm6/vs2005/src/quickjs_deploy.c b/hosts/wm6/vs2005/src/quickjs_deploy.c index a4c8d8e6f..d0e08437b 100644 --- a/hosts/wm6/vs2005/src/quickjs_deploy.c +++ b/hosts/wm6/vs2005/src/quickjs_deploy.c @@ -355,7 +355,7 @@ static int render_core_frame(void) L"PocketJS WM6 trace: ARGB32 conversion complete\r\n"); if (!wm6_framebuffer_present()) return stop_frame_rendering( - L"DirectDraw could not present the Rust framebuffer"); + L"WM6 could not present the Rust framebuffer"); report_successful_frame(width, height, stride, byte_length); return 1; } @@ -651,7 +651,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s window, viewport_width, viewport_height)) { g_framebuffer_ready = 1; OutputDebugString( - L"PocketJS WM6: Rust core ARGB32 -> DirectDraw active\r\n"); + L"PocketJS WM6: Rust core ARGB32 presenter active\r\n"); } else { wm6_framebuffer_close(); OutputDebugString(L"PocketJS WM6: DirectDraw unavailable\r\n"); diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index bda376d61..4c0b63fc9 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -5,10 +5,16 @@ static LPDIRECTDRAW g_direct_draw; static LPDIRECTDRAWSURFACE g_primary; +static LPDIRECTDRAWSURFACE g_offscreen; static unsigned short *g_pixels; +static DWORD *g_gdi_pixels; +static BITMAPINFO g_bitmap_info; +static HWND g_window; static int g_width; static int g_height; static int g_surface_reported; +static int g_directdraw_disabled; +static int g_gdi_reported; static unsigned short rgb565( unsigned int red, @@ -54,7 +60,8 @@ static DWORD convert_pixel( pack_component(blue, format->dwBBitMask); } -static int resolve_primary_pixel_format( +static int resolve_surface_pixel_format( + LPDIRECTDRAWSURFACE target, const DDSURFACEDESC *surface, DDPIXELFORMAT *format) { @@ -62,7 +69,7 @@ static int resolve_primary_pixel_format( memset(format, 0, sizeof(*format)); format->dwSize = sizeof(*format); - status = g_primary->lpVtbl->GetPixelFormat(g_primary, format); + status = target->lpVtbl->GetPixelFormat(target, format); if (status != DD_OK || format->dwRGBBitCount == 0) *format = surface->ddpfPixelFormat; if (format->dwRGBBitCount == 16 && @@ -86,6 +93,22 @@ static int resolve_primary_pixel_format( format->dwBBitMask; } +static void release_directdraw(void) +{ + if (g_offscreen) { + g_offscreen->lpVtbl->Release(g_offscreen); + g_offscreen = NULL; + } + if (g_primary) { + g_primary->lpVtbl->Release(g_primary); + g_primary = NULL; + } + if (g_direct_draw) { + g_direct_draw->lpVtbl->Release(g_direct_draw); + g_direct_draw = NULL; + } +} + int wm6_framebuffer_open(HWND window, int logical_width, int logical_height) { DDSURFACEDESC description; @@ -100,22 +123,45 @@ int wm6_framebuffer_open(HWND window, int logical_width, int logical_height) (unsigned int)logical_height; g_pixels = (unsigned short *)LocalAlloc( LMEM_FIXED, pixel_count * sizeof(unsigned short)); - if (!g_pixels) + g_gdi_pixels = (DWORD *)LocalAlloc( + LMEM_FIXED, pixel_count * sizeof(DWORD)); + if (!g_pixels || !g_gdi_pixels) { + wm6_framebuffer_close(); return 0; + } + memset(&g_bitmap_info, 0, sizeof(g_bitmap_info)); + g_bitmap_info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + g_bitmap_info.bmiHeader.biWidth = logical_width; + g_bitmap_info.bmiHeader.biHeight = logical_height; + g_bitmap_info.bmiHeader.biPlanes = 1; + g_bitmap_info.bmiHeader.biBitCount = 32; + g_bitmap_info.bmiHeader.biCompression = BI_RGB; + g_bitmap_info.bmiHeader.biSizeImage = + pixel_count * sizeof(DWORD); + g_window = window; g_width = logical_width; g_height = logical_height; g_surface_reported = 0; + g_directdraw_disabled = 0; + g_gdi_reported = 0; status = DirectDrawCreate(NULL, &g_direct_draw, NULL); if (status != DD_OK || !g_direct_draw) { - wm6_framebuffer_close(); - return 0; + g_directdraw_disabled = 1; + OutputDebugString( + L"PocketJS WM6: DirectDraw unavailable; using GDI DIB\r\n"); + release_directdraw(); + return 1; } status = g_direct_draw->lpVtbl->SetCooperativeLevel( g_direct_draw, window, DDSCL_NORMAL); if (status != DD_OK) { - wm6_framebuffer_close(); - return 0; + g_directdraw_disabled = 1; + OutputDebugString( + L"PocketJS WM6: DirectDraw cooperative level failed; " + L"using GDI DIB\r\n"); + release_directdraw(); + return 1; } memset(&description, 0, sizeof(description)); description.dwSize = sizeof(description); @@ -124,29 +170,69 @@ int wm6_framebuffer_open(HWND window, int logical_width, int logical_height) status = g_direct_draw->lpVtbl->CreateSurface( g_direct_draw, &description, &g_primary, NULL); if (status != DD_OK || !g_primary) { - wm6_framebuffer_close(); - return 0; + g_directdraw_disabled = 1; + OutputDebugString( + L"PocketJS WM6: DirectDraw primary unavailable; " + L"using GDI DIB\r\n"); + release_directdraw(); + return 1; + } + memset(&description, 0, sizeof(description)); + description.dwSize = sizeof(description); + description.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT; + description.dwWidth = (DWORD)logical_width; + description.dwHeight = (DWORD)logical_height; + description.ddsCaps.dwCaps = + DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY; + status = g_direct_draw->lpVtbl->CreateSurface( + g_direct_draw, &description, &g_offscreen, NULL); + if (status != DD_OK || !g_offscreen) { + /* + * Some CE drivers choose the only lockable heap themselves and + * reject an explicit SYSTEMMEMORY request. + */ + if (g_offscreen) { + g_offscreen->lpVtbl->Release(g_offscreen); + g_offscreen = NULL; + } + description.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; + status = g_direct_draw->lpVtbl->CreateSurface( + g_direct_draw, &description, &g_offscreen, NULL); + } + if (status != DD_OK || !g_offscreen) { + WCHAR receipt[128]; + + wsprintfW( + receipt, + L"PocketJS WM6 DirectDraw: offscreen create failed " + L"hr=%08lx\r\n", + (DWORD)status); + OutputDebugString(receipt); + g_directdraw_disabled = 1; + release_directdraw(); + return 1; } return 1; } void wm6_framebuffer_close(void) { - if (g_primary) { - g_primary->lpVtbl->Release(g_primary); - g_primary = NULL; - } - if (g_direct_draw) { - g_direct_draw->lpVtbl->Release(g_direct_draw); - g_direct_draw = NULL; - } + release_directdraw(); if (g_pixels) { LocalFree(g_pixels); g_pixels = NULL; } + if (g_gdi_pixels) { + LocalFree(g_gdi_pixels); + g_gdi_pixels = NULL; + } + memset(&g_bitmap_info, 0, sizeof(g_bitmap_info)); + g_window = NULL; g_width = 0; g_height = 0; g_surface_reported = 0; + g_directdraw_disabled = 0; + g_gdi_reported = 0; } int wm6_framebuffer_copy_argb( @@ -158,163 +244,317 @@ int wm6_framebuffer_copy_argb( { unsigned int row; - if (!pixels || !g_pixels || width != (unsigned int)g_width || + if (!pixels || !g_pixels || !g_gdi_pixels || + width != (unsigned int)g_width || height != (unsigned int)g_height || stride < width * 4u || height > byte_length / stride) return 0; for (row = 0; row < height; row++) { const unsigned char *source; unsigned short *destination; + DWORD *gdi_destination; unsigned int column; source = pixels + row * stride; destination = g_pixels + row * width; + gdi_destination = + g_gdi_pixels + (height - row - 1u) * width; for (column = 0; column < width; column++) { /* PocketJS exposes little-endian ARGB32: B, G, R, A bytes. */ destination[column] = rgb565( source[column * 4u + 2u], source[column * 4u + 1u], source[column * 4u]); + gdi_destination[column] = + ((DWORD)source[column * 4u + 2u] << 16) | + ((DWORD)source[column * 4u + 1u] << 8) | + (DWORD)source[column * 4u]; } } return 1; } -int wm6_framebuffer_present(void) +static int present_directdraw(void) { - DDSURFACEDESC surface; + DDSURFACEDESC offscreen; + DDSURFACEDESC primary; DDPIXELFORMAT pixel_format; + RECT source_rect; + RECT destination_rect; HRESULT status; - int offset_x; - int offset_y; int destination_width; int destination_height; - int surface_width; - int surface_height; + int primary_width; + int primary_height; int bytes_per_pixel; int pitch; int y; - if (!g_primary || !g_pixels || g_width <= 0 || g_height <= 0) + if (!g_primary || !g_offscreen || !g_pixels || + g_width <= 0 || g_height <= 0) return 0; - memset(&surface, 0, sizeof(surface)); - surface.dwSize = sizeof(surface); + memset(&offscreen, 0, sizeof(offscreen)); + offscreen.dwSize = sizeof(offscreen); if (!g_surface_reported) OutputDebugString( - L"PocketJS WM6 trace: DirectDraw primary lock begin\r\n"); - status = g_primary->lpVtbl->Lock( - g_primary, NULL, &surface, 0, NULL); + L"PocketJS WM6 trace: DirectDraw offscreen lock begin\r\n"); + status = g_offscreen->lpVtbl->Lock( + g_offscreen, NULL, &offscreen, 0, NULL); if (status == DDERR_SURFACELOST) { - g_primary->lpVtbl->Restore(g_primary); - status = g_primary->lpVtbl->Lock( - g_primary, NULL, &surface, 0, NULL); - } - if (status != DD_OK || !surface.lpSurface) - return 0; - if (!resolve_primary_pixel_format(&surface, &pixel_format)) { - g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); - return 0; + g_offscreen->lpVtbl->Restore(g_offscreen); + status = g_offscreen->lpVtbl->Lock( + g_offscreen, NULL, &offscreen, 0, NULL); } + if (status != DD_OK || !offscreen.lpSurface) { + WCHAR receipt[128]; - surface_width = (int)surface.dwWidth; - surface_height = (int)surface.dwHeight; - if (surface_width <= 0 || surface_height <= 0) { - g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + wsprintfW( + receipt, + L"PocketJS WM6 DirectDraw: offscreen lock failed " + L"hr=%08lx\r\n", + (DWORD)status); + OutputDebugString(receipt); return 0; } - if (surface_width * g_height <= surface_height * g_width) { - destination_width = surface_width; - destination_height = g_height * surface_width / g_width; - } else { - destination_height = surface_height; - destination_width = g_width * surface_height / g_height; + if (!resolve_surface_pixel_format( + g_offscreen, &offscreen, &pixel_format)) { + g_offscreen->lpVtbl->Unlock( + g_offscreen, offscreen.lpSurface); + return 0; } - if (destination_width <= 0 || destination_height <= 0) { - g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + if ((int)offscreen.dwWidth != g_width || + (int)offscreen.dwHeight != g_height) { + g_offscreen->lpVtbl->Unlock( + g_offscreen, offscreen.lpSurface); return 0; } - offset_x = (surface_width - destination_width) / 2; - offset_y = (surface_height - destination_height) / 2; bytes_per_pixel = (int)pixel_format.dwRGBBitCount / 8; if (bytes_per_pixel != 2 && bytes_per_pixel != 3 && bytes_per_pixel != 4) { - g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + g_offscreen->lpVtbl->Unlock( + g_offscreen, offscreen.lpSurface); return 0; } - pitch = surface.lPitch < 0 ? -surface.lPitch : surface.lPitch; - if (surface_width * bytes_per_pixel > pitch) { - g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + pitch = offscreen.lPitch < 0 + ? -offscreen.lPitch + : offscreen.lPitch; + if (g_width * bytes_per_pixel > pitch) { + g_offscreen->lpVtbl->Unlock( + g_offscreen, offscreen.lpSurface); return 0; } - if (!g_surface_reported) { - WCHAR receipt[256]; - - wsprintfW( - receipt, - L"PocketJS WM6 receipt: DirectDraw surface=%ldx%ld " - L"pitch=%ld rgb=%lu masks=%08lx/%08lx/%08lx\r\n", - (LONG)surface_width, - (LONG)surface_height, - (LONG)surface.lPitch, - pixel_format.dwRGBBitCount, - pixel_format.dwRBitMask, - pixel_format.dwGBitMask, - pixel_format.dwBBitMask); - OutputDebugString(receipt); - g_surface_reported = 1; - } - for (y = 0; y < surface_height; y++) - memset((unsigned char *)surface.lpSurface + y * surface.lPitch, - 0, surface_width * bytes_per_pixel); - - for (y = 0; y < destination_height; y++) { + for (y = 0; y < g_height; y++) { unsigned char *destination; const unsigned short *source; - int source_y; int x; - source_y = y * g_height / destination_height; - destination = (unsigned char *)surface.lpSurface + - (offset_y + y) * surface.lPitch; - source = &g_pixels[source_y * g_width]; + destination = (unsigned char *)offscreen.lpSurface + + y * offscreen.lPitch; + source = &g_pixels[y * g_width]; if (pixel_format.dwRGBBitCount == 16) { unsigned short *output; - output = (unsigned short *)destination + offset_x; - for (x = 0; x < destination_width; x++) { - int source_x; - - source_x = x * g_width / destination_width; + output = (unsigned short *)destination; + for (x = 0; x < g_width; x++) output[x] = (unsigned short)convert_pixel( - source[source_x], &pixel_format); - } + source[x], &pixel_format); } else if (pixel_format.dwRGBBitCount == 32) { DWORD *output; - output = (DWORD *)destination + offset_x; - for (x = 0; x < destination_width; x++) { - int source_x; - - source_x = x * g_width / destination_width; + output = (DWORD *)destination; + for (x = 0; x < g_width; x++) output[x] = convert_pixel( - source[source_x], &pixel_format); - } + source[x], &pixel_format); } else { unsigned char *output; - output = destination + offset_x * 3; - for (x = 0; x < destination_width; x++) { + output = destination; + for (x = 0; x < g_width; x++) { DWORD color; - int source_x; - source_x = x * g_width / destination_width; - color = convert_pixel(source[source_x], &pixel_format); + color = convert_pixel(source[x], &pixel_format); output[x * 3] = (unsigned char)color; output[x * 3 + 1] = (unsigned char)(color >> 8); output[x * 3 + 2] = (unsigned char)(color >> 16); } } } - g_primary->lpVtbl->Unlock(g_primary, surface.lpSurface); + status = g_offscreen->lpVtbl->Unlock( + g_offscreen, offscreen.lpSurface); + if (status != DD_OK) + return 0; + + memset(&primary, 0, sizeof(primary)); + primary.dwSize = sizeof(primary); + status = g_primary->lpVtbl->GetSurfaceDesc(g_primary, &primary); + if (status == DDERR_SURFACELOST) { + g_primary->lpVtbl->Restore(g_primary); + status = g_primary->lpVtbl->GetSurfaceDesc( + g_primary, &primary); + } + primary_width = (int)primary.dwWidth; + primary_height = (int)primary.dwHeight; + if (status != DD_OK || + primary_width <= 0 || primary_height <= 0) + return 0; + if (primary_width * g_height <= primary_height * g_width) { + destination_width = primary_width; + destination_height = g_height * primary_width / g_width; + } else { + destination_height = primary_height; + destination_width = g_width * primary_height / g_height; + } + destination_rect.left = + (primary_width - destination_width) / 2; + destination_rect.top = + (primary_height - destination_height) / 2; + destination_rect.right = + destination_rect.left + destination_width; + destination_rect.bottom = + destination_rect.top + destination_height; + source_rect.left = 0; + source_rect.top = 0; + source_rect.right = g_width; + source_rect.bottom = g_height; + + status = g_primary->lpVtbl->Blt( + g_primary, + &destination_rect, + g_offscreen, + &source_rect, + 0, + NULL); + if (status == DDERR_SURFACELOST) { + g_primary->lpVtbl->Restore(g_primary); + status = g_primary->lpVtbl->Blt( + g_primary, + &destination_rect, + g_offscreen, + &source_rect, + 0, + NULL); + } + if (status != DD_OK) { + WCHAR receipt[128]; + + wsprintfW( + receipt, + L"PocketJS WM6 DirectDraw: primary Blt failed " + L"hr=%08lx\r\n", + (DWORD)status); + OutputDebugString(receipt); + return 0; + } + if (!g_surface_reported) { + WCHAR receipt[256]; + + wsprintfW( + receipt, + L"PocketJS WM6 receipt: DirectDraw offscreen=%ldx%ld " + L"pitch=%ld rgb=%lu masks=%08lx/%08lx/%08lx " + L"primary=%ldx%ld\r\n", + (LONG)offscreen.dwWidth, + (LONG)offscreen.dwHeight, + (LONG)offscreen.lPitch, + pixel_format.dwRGBBitCount, + pixel_format.dwRBitMask, + pixel_format.dwGBitMask, + pixel_format.dwBBitMask, + (LONG)primary_width, + (LONG)primary_height); + OutputDebugString(receipt); + g_surface_reported = 1; + } return 1; } + +static int present_gdi(void) +{ + HDC dc; + RECT client; + int client_width; + int client_height; + int destination_width; + int destination_height; + int offset_x; + int offset_y; + int status; + + if (!g_window || !g_gdi_pixels || + g_width <= 0 || g_height <= 0) + return 0; + if (!GetClientRect(g_window, &client)) + return 0; + client_width = client.right - client.left; + client_height = client.bottom - client.top; + if (client_width <= 0 || client_height <= 0) + return 0; + if (client_width * g_height <= client_height * g_width) { + destination_width = client_width; + destination_height = + g_height * client_width / g_width; + } else { + destination_height = client_height; + destination_width = + g_width * client_height / g_height; + } + offset_x = (client_width - destination_width) / 2; + offset_y = (client_height - destination_height) / 2; + dc = GetDC(g_window); + if (!dc) + return 0; + status = StretchDIBits( + dc, + offset_x, + offset_y, + destination_width, + destination_height, + 0, + 0, + g_width, + g_height, + g_gdi_pixels, + &g_bitmap_info, + DIB_RGB_COLORS, + SRCCOPY); + ReleaseDC(g_window, dc); + if (!status) { + WCHAR receipt[128]; + + wsprintfW( + receipt, + L"PocketJS WM6 GDI: StretchDIBits failed error=%lu\r\n", + GetLastError()); + OutputDebugString(receipt); + return 0; + } + if (!g_gdi_reported) { + WCHAR receipt[160]; + + wsprintfW( + receipt, + L"PocketJS WM6 receipt: GDI DIB fallback=%ldx%ld " + L"client=%ldx%ld\r\n", + (LONG)g_width, + (LONG)g_height, + (LONG)client_width, + (LONG)client_height); + OutputDebugString(receipt); + g_gdi_reported = 1; + } + return 1; +} + +int wm6_framebuffer_present(void) +{ + if (!g_directdraw_disabled) { + if (present_directdraw()) + return 1; + g_directdraw_disabled = 1; + release_directdraw(); + OutputDebugString( + L"PocketJS WM6: DirectDraw presentation failed; " + L"using GDI DIB\r\n"); + } + return present_gdi(); +} From 5d0c7647da5ec1dd31d87d37572cd12b185368cc Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 09:42:27 +0900 Subject: [PATCH 43/53] fix(wm6): define legacy offscreen surface flag --- hosts/wm6/vs2005/src/wm6_framebuffer.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hosts/wm6/vs2005/src/wm6_framebuffer.c b/hosts/wm6/vs2005/src/wm6_framebuffer.c index 4c0b63fc9..90d5ab48c 100644 --- a/hosts/wm6/vs2005/src/wm6_framebuffer.c +++ b/hosts/wm6/vs2005/src/wm6_framebuffer.c @@ -3,6 +3,14 @@ #include "wm6_framebuffer.h" +/* + * The WM6 Professional SDK's legacy ddraw.h omits this public DirectDraw + * capability spelling even though CreateSurface accepts its documented value. + */ +#ifndef DDSCAPS_OFFSCREENPLAIN +#define DDSCAPS_OFFSCREENPLAIN 0x00000040L +#endif + static LPDIRECTDRAW g_direct_draw; static LPDIRECTDRAWSURFACE g_primary; static LPDIRECTDRAWSURFACE g_offscreen; From dac9bdfb102d5b74f6570cd4a9f130111ea8f438 Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 09:48:17 +0900 Subject: [PATCH 44/53] fix(wm6): hide the shell chrome --- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 4 +- hosts/wm6/vs2005/README.md | 3 ++ hosts/wm6/vs2005/src/quickjs_deploy.c | 43 ++++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index bcbb03650..d0e0b5f44 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -47,7 +47,7 @@ +#include #include "wm6_quickjs_abi.h" #include "wm6_framebuffer.h" @@ -98,9 +99,48 @@ static DWORD g_frame_window_started; static unsigned int g_frame_window_count; static DEVMODE g_original_display_mode; static int g_display_rotated; +static int g_shell_hidden; static void restore_display_orientation(void); +static void enter_fullscreen(HWND window) +{ + DWORD state; + + MoveWindow( + window, + 0, + 0, + GetSystemMetrics(SM_CXSCREEN), + GetSystemMetrics(SM_CYSCREEN), + TRUE); + SetForegroundWindow(window); + state = SHFS_HIDETASKBAR | + SHFS_HIDESTARTICON | + SHFS_HIDESIPBUTTON; + if (SHFullScreen(window, state)) { + g_shell_hidden = 1; + OutputDebugString( + L"PocketJS WM6: shell chrome hidden\r\n"); + } else { + OutputDebugString( + L"PocketJS WM6: shell chrome could not be hidden\r\n"); + } +} + +static void leave_fullscreen(HWND window) +{ + DWORD state; + + if (!g_shell_hidden) + return; + state = SHFS_SHOWTASKBAR | + SHFS_SHOWSTARTICON | + SHFS_SHOWSIPBUTTON; + SHFullScreen(window, state); + g_shell_hidden = 0; +} + static int rotate_display_90(void) { DEVMODE current; @@ -438,6 +478,7 @@ static LRESULT CALLBACK DemoWindowProc(HWND window, UINT message, ReleaseCapture(); return 0; case WM_DESTROY: + leave_fullscreen(window); KillTimer(window, 1); wm6_framebuffer_close(); g_framebuffer_ready = 0; @@ -530,6 +571,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s } g_display_rotated = 0; + g_shell_hidden = 0; rotation_ready = rotate_display_90(); viewport_width = GetSystemMetrics(SM_CXSCREEN); viewport_height = GetSystemMetrics(SM_CYSCREEN); @@ -657,6 +699,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE previous, LPWSTR command, int s OutputDebugString(L"PocketJS WM6: DirectDraw unavailable\r\n"); } ShowWindow(window, show); + enter_fullscreen(window); UpdateWindow(window); if (g_framebuffer_ready) { render_core_frame(); From 481d0c92820e7eb9a232556bbf652f1db3822cbc Mon Sep 17 00:00:00 2001 From: kyokuheishin Date: Tue, 28 Jul 2026 12:18:44 +0900 Subject: [PATCH 45/53] fix(wm6): load shell fullscreen dynamically --- hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj | 4 +- hosts/wm6/vs2005/README.md | 6 ++- hosts/wm6/vs2005/src/quickjs_deploy.c | 49 +++++++++++++++++--- 3 files changed, 48 insertions(+), 11 deletions(-) diff --git a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj index d0e0b5f44..bcbb03650 100644 --- a/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj +++ b/hosts/wm6/vs2005/PocketJS.WM6.QuickJS.vcproj @@ -47,7 +47,7 @@

      wP9yCw^I2u@lzx{Sajv^9vj33Tmyr278=_Nh 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 delta 114580 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